AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

dokumen-dokumen yang mirip
Kompleksitas Algoritma

Kompleksitas Algoritma

Kompleksitas Algoritma (1)

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Kompleksitas Algoritma

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Kompleksitas Algoritma

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

Algoritma dan Kompleksitas Algoritma

Algoritma Brute Force

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Pengurutan (Sorting) Algoritma Pemrograman

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

Kompleksitas Algoritma

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

ALGORITMA PENGURUTAN & PENCARIAN

Algoritma Divide and Conquer (Bagian 2)

Algoritma Divide and Conquer. (Bagian 2)

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

Pendahuluan. Ukuran input (input s size)

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

BAB VI SEARCHING (PENCARIAN)

Algoritma Brute Force

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

STRATEGI DIVIDE AND CONQUER

*** SELAMAT MENGERJAKAN

Design and Analysis Algorithm

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Searching [pencarian] Algoritma Pemrograman

MODUL IV PENCARIAN DAN PENGURUTAN

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian. Versi 1 (Pembandingan elemen dilakukan sebagai kondisi pengulangan)

SORTING. Brigida Arie Minartiningtyas, M.Kom

BAB 2 LANDASAN TEORI

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

BAB VII ALGORITMA DIVIDE AND CONQUER

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Algoritma Brute Force Oleh: Rinaldi Munir

Algoritma dan Pemrograman Searching/Pencarian

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

JARINGAN UNTUK MERGING

BAB V SORTING (PENGURUTAN) INTERNAL

Algoritma dan Struktur Data

BAB II TINJAUAN PUSTAKA

Algoritma Divide and Conquer (Bagian 1)

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

BAB 3 ANALISA SISTEM

Decrease and Conquer

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

Algoritma dan Pemrograman 2 PENGURUTAN

Logika dan Algoritma Yuni Dwi Astuti, ST 2

ANALISIS ALGORITMA BINARY SEARCH

Analisis Algoritma Bubble Sort

CCH1A4 / Dasar Algoritma & Pemrogramanan

Sorting Algorithms. Buble Sort

Algoritma dan Pemrograman 2 PENGURUTAN

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Array. Teknik Informatika Politeknik Negeri Batam

ALGORITMA DIVIDE AND CONQUER

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

Langkah Awal menuju Analisis Kompleksitas Algoritma

Pertemuan XII ALGORITMA. Algoritma & Pemrograman Ken Kinanti P 1. {Pencarian Beruntun / Sequential Search}

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

MAKALAH ALGORITMA DIVIDE AND CONQUER

Array (Tabel) bagian 2

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 14 & 15

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

Algoritma Brute Force

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

Kompleksitas Algoritma Sorting yang Populer Dipakai

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

ALGORITMA & PEMROGRAMAN

Algoritma dan Pemrograman 2 PENCARIAN

Algoritma Brute Force (lanjutan)

PERSEGI ANGKA-HURUF VERTIKAL

PERTEMUAN 11 TEHNIK SEARCHING

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

BAB 2 LANDASAN TEORI

Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Kompleksitas Algoritma Quick Sort

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Identitas dosen POKOK BAHASAN. Suherman,, ST Address. : Cilegon Mobile : Ym Blog

LATIHAN UTS Tim Pengajar KU1071 Sem

Analisa Algoritma. Konsep Algoritma

Algoritma Brute Force

Transkripsi:

AnalisisFramework

Review Tujuan analisa : mengukur efesiensi algoritma Efisiensi diukur dari diukur dari: waktu (time) dan memori(space). Dua besaran yang digunakan: kompleksitas algoritma 1. Kompleksitas waktu T(n) 2. Kompleksitas ruang S(n)

AnalisisFramework Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

Measuring Input Space (n) (Mengukurjumlahinput) Ukuran masukan(n): jumlah data yang diproses oleh sebuah algoritma. Hampirsemuaalgoritmamembutuhkanwaktuyang lebih lama untuk menyelesaikan jika inputannya lebih banyak Contoh pengurutan1000 elemenlarik, makan= 1000 pencarianelemenpadamatriks3 x 4, makan=12 algoritmatsppadasebuahgraflengkapdengan100 simpul, makan= 100. Dalam praktek perhitungan kompleksitas, ukuran masukandinyatakansebagaivariabel n.

Measuring Running Time (PengukuranRunning Time) Dapat menggunakan satuan waktu standar(s/ms), tapi tergantung pada kecepatan komputer, kualitas program, compiler. Running time ditentukan oleh operasi dasar, yaitu operasi yang paling mendominasi sebagian besar running time algoritma. Operasi tersebut memakai waktu yang paling banyak dari keseluruhan running time. Operasi dasar dapat berupa: penjumlahan/pengurangan pengurangan perkalian pengaksesan memori pembacaan penulisan Menghitung jumlah waktu yang diperlukan untuk mengeksekusi operasi dasar. Framework yang telah ada untuk analisis efisiensi waktu suatu algoritma : menghitung jumlah waktu eksekusi operasi dasar dalam algoritma dengan inputan ukuran n.

Contoh operasi khas di dalam algoritma Algoritma pencarian di dalam larik Operasi khas: perbandingan elemen larik Algoritma pengurutan Operasi khas: perbandingan elemen, pertukaran elemen Algoritma penjumlahan 2 buah matriks Operasi khas: penjumlahan Algoritma perkalian 2 buah matriks Operasi khas: perkalian dan penjumlahan 6

Contoh : Algoritma untuk mencari elemen terbesar di dalam sebuah larik (array) yang berukuran n elemen. procedure CariElemenTerbesar(input a 1, a 2,..., a n : integer, output maks : integer) { Mencari elemen terbesar dari sekumpulan elemen larik integer a 1, a 2,..., a n. Elemen terbesar akan disimpan di dalam maks. Masukan: a 1, a 2,..., a n Keluaran: maks (nilai terbesar) } Deklarasi k : integer Algoritma maks a 1 k 2 while k n do if a k > maks then maks a k endif i i+1 endwhile { k > n } Kompleksitas waktu algoritma dihitung berdasarkan jumlah operasi perbandingan elemen larik (A[i] > maks). Kompleksitas waktu CariElemenTerbesar : T(n) = n 1. 7

Tingkat Pertumbuhan Untukn denganjumlahbesar, yang diperhitungkan adalah fungsi tingkat pertumbuhan Abaikan pengali yang konstan Exp : ½ n n, 50 n log n n log n Fungsipenting: log₂ n, n, n log₂ n, n 2 n 3 2 n n!

Order of Growth n log 2 n n n log 2 n n 2 n 3 2 n n! 10 3.3 10 3.3x 10 10 2 10 3 10 3 3.6 x10 6 10 2 6.6 10 2 6.6 x 10 2 10 4 10 6 1.3 x 10 30 9.3 x 10 157 10 3 10 10 3 1.0 x 10 4 10 6 10 9 10 4 13 10 4 1.3 x 10 5 10 8 10 12 10 5 17 10 5 1.7 x 10 6 10 10 10 15 10 6 20 10 6 2.0 x 10 7 10 12 10 18

Worst case, best case, average case Kompleksitas waktu dibedakan atas tiga macam : 1. T max (n) : kompleksitas waktu untuk kasus terburuk (worst case), kebutuhan waktu maksimum. 2. T min (n) : kompleksitas waktu untuk kasus terbaik (best case), kebutuhan waktu minimum. 3. T avg (n): kompleksitas waktu untuk kasus rata-rata (average case) kebutuhan waktu secara rata-rata

Contoh 2. Algoritma sequential search. procedure PencarianBeruntun(input a 1, a 2,..., a n : integer, x : integer, output idx : integer) Deklarasi k : integer ketemu : boolean { bernilai true jika x ditemukan atau false jika x tidak ditemukan } Algoritma: k 1 ketemu false while (k n) and (not ketemu) do if a k = x then ketemu true else k k + 1 endif endwhile { k > n or ketemu } if ketemu then { x ditemukan } idx k else idx 0 { x tidak ditemukan } endif 11

Jumlah operasi perbandingan elemen tabel: 1. Kasus terbaik: ini terjadi bila a 1 = x. T min (n) = 1 2. Kasus terburuk: bila a n = x atau x tidak ditemukan. T max (n) = n 3. Kasus rata-rata: Jika x ditemukan pada posisi ke-j, maka operasi perbandingan (a k = x)akan dieksekusi sebanyak j kali. 1 n(1 + n) ( 1+ 2 + 3 +... + n) ( 1) T avg (n) = 2 n + = = n n 2 12

Contoh 3. Algoritma pengurutan seleksi (selection sort). procedure Urut(input/output a 1, a 2,..., a n : integer) Deklarasi i, j, imaks, temp : integer Algoritma for i n downto 2 do { pass sebanyak n 1 kali } imaks 1 for j 2 to i do if a j > a imaks then imaks j endif endfor { pertukarkan a imaks dengan a i } temp a i a i a imaks a imaks temp endfor 13

(i) Jumlah operasi perbandingan elemen Untuk setiap pass ke-i, i = n jumlah perbandingan = n 1 i = n 1 jumlah perbandingan = n 2 i = n 2 jumlah perbandingan = n 3 M i = 2 jumlah perbandingan = 1 Jumlah seluruh operasi perbandingan elemen-elemen larik adalah T(n) = (n 1) + (n 2) + + 1 = i= n 1 n k n( n 1) = 1 2 Ini adalah kompleksitas waktu untuk kasus terbaik dan terburuk, karena algoritma Urut tidak bergantung pada batasan apakah data masukannya sudah terurut atau acak. 14

Latihan Contoh 4.Hitung kompleksitas waktu algoritma berikut berdasarkan jumlah operasi kali. procedure Kali(input x:integer, n:integer, output jumlah : integer) {Mengalikan x dengan i = 1, 2,, j, yang dalam hal ini j = n, n/2, n/4,,1 Masukan: x dan n (n adalah perpangakatan dua). Keluaran: hasil perkalian (disimpan di dalam peubah jumlah). } Deklarasi i, j, k : integer Algoritma j n while j 1 do for i 1 to j do x x * i endfor j j div 2 endwhile { j > 1 } jumlah x 15

Jawaban Untuk j= n, jumlahoperasiperkalian= n j= n/2, jumlahoperasiperkalian= n/2 j= n/4, jumlahoperasiperkalian= n/4 j = 1, jumlahoperasiperkalian= 1 Jumlah operasi perkalian seluruhnya adalah = n+ n/2 + n/4 + + 2 + 1 deretgeometri 2 log n 1 n(1 2 ) = = 2( n 1) 1 1 2 16

Next Kompleksitas Waktu Asimptotik