260 likes | 1.33k Views
Kompleksitas Waktu Asimptotik. Anna Kurniawati. Kompleksitas Waktu Asimptotik. Definisi : Notasi asimtotik merupakan himpunan fungsi yang dibatasi oleh suatu fungsi n N yang cukup besar. Fungsi : N → R (sering R + )
E N D
KompleksitasWaktuAsimptotik Anna Kurniawati
Kompleksitas Waktu Asimptotik Definisi : • Notasi asimtotik merupakan himpunan fungsi yang dibatasi oleh suatu fungsi n N yang cukup besar. • Fungsi : N → R (sering R+) • Notasi Asimtotik digunakan untuk menentukan kompleksitas suatu algoritma dengan melihat waktu tempuh algoritma. Waktu tempuh algoritma merupakan fungsi : N → R+
Kompleksitas Waktu Asimptotik Terdapat tiga macam yaitu : • Keadaanterbaik (best case) • Dilambangkan dengan notasi (...)dibaca Theta • Keadaan rata-rata (average case) • Dilambangkan dengan notasi (...)dibaca Omega • Keadaanterburuk (worst case) • Dilambangkan dengan notasi O(...)dibaca Big-O Kinerjasebuahalgoritmabiasanyadiukurdenganmenggunakanpatokankeadaanterburuk (worst case) yang dinyatakandengan Big-O
Notasi Big Oh • Definisi 1 : waktu terburuk iff ada dua bilangan konstanta c dan no Theorema : Misal adalah suatu polinom derajat n. Maka
Notasi Theta • Definisi 2 : waktu tercepat iff ada dua konstanta c dan no
Notasi Omega • Definisi 3 : waktu rata-rata iff ada tiga konstanta positif c1, c2, dan no
MENGHITUNG WAKTU PROSES (1) • Contoh : Pseudocode Selection Sort (pseudocode 3.6) 1 for i=1 to N-1 do 2 min=i 3 for j=i+1 to N do 4 if A[j]<A[min] then 5 min=j 6 end if 7 end for 8 swap(A[i],A[min]) 9 end for • Hitung waktu proses algoritma yang diperlukan untuk mengurutkan deretan yang berisi 8 angka acak ! • Bagaimana jika ukuran input belum diketahui? • Dinyatakan dengan N • Waktu proses dinyatakan dengan sebuah persamaan N, selanjutnya disebut Fungsi Kompleksitas • Fungsi Kompleksitas menyatakan seberapa kompleksnya sebuah algoritma
MENGHITUNG WAKTU PROSES (2) • Asumsi bahwa nilai N belum diketahui • Bisa dihitung bahwa untuk setiap perulangan i akan terjadi perulangan j sebanyak N-1, N-2, N-3, ..., 1 kali • Misalkan nilai N adalah 5, berarti kita perlu menghitung 5+4+3+2+1 (rumus deret hitung) • Dengan nilai a dan b = 1 diperoleh :
FUNGSI KOMPLEKSITAS • Fungsi Kompleksitas algoritma Selection Sort di atas • Dengan rumus Fungsi Kompleksitas N(N+1)/2 berarti jika N=5 maka waktu proses adalah 15. • Jika nilai N diperbesar menjadi 8, maka waktu proses menjadi 36. • Nilai N dan waktu proses bisa dipetakan dalam sebuah koordinat Cartesius dengan N di sumbu x dan waktu proses di sumbu y. • Terlihat bahwa waktu proses algoritma Selection Sort bertumbuh (growth rate) secara linear.
MEMBACA BIG-OH • O(1) artinya algoritma konstan • O(n) artinya algoritma linear • O(n2) artinya algorritma quadratic • O(n3) artinya algoritma qubic • O(log n) contohnya pada full balanced Binary Search Tree • O(nm) artinya algoritma eksponensial • Notasi Big-O bisa berisi kombinasi dari contoh di atas • Penyederhanaan Big-O dilakukan pada komponen yang “less important”
LATIHAN • Hitunglah Fungsi Kompleksitas untuk algoritma bilangan Fibonacci