Kompleksitas Waktu Kompleksitas Waktu Asimptotik

Data biner hasil substitusi kode Shannon-Fano memiliki ukuran 79 bit setara 9,875 byte, sedangkan tanpa kompresi dibutuhkan 36 bytes, sehingga Algoritma Shannon-Fano dapat mereduksi penggunaan memori sebanyak 26,125 byte. Sehingga rasio kompresinya adalah 100 – 9,87536 x 100 = 72,569 .

2.10 Kompleksitas Algoritma

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus efisien. Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah waktu dan ruang space memori yang dibutuhkan untuk menjalankannya. Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan n, yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang terbaik. Ada dua macam kompleksitas algoritma, yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu, Tn, diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n. Kompleksitas ruang, Sn, diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. Dengan menggunakan besaran kompleksitas waktu ruang algoritma, kita dapat menentukan laju peningkatan waktu ruang yang diperlukan algoritma dengan meningkatnya ukuran masukan n.

2.10.1 Kompleksitas Waktu

Dalam praktek, kompleksitas waktu dihitung berdasarkan jumlah operasi abstrak yang mendasari suatu algoritma, dan memisahkan analisanya dari implementasi. Kompleksitas waktu dibedakan atas tiga macam: 1. T max n : kompleksitas waktu untuk kasus terburuk worst case,yaitu berdasarkan kebutuhan waktu maksimum. Universitas Sumatera Utara 2. T min 3. T n : kompleksitas waktu untuk kasus terbaik best case, yaitu berdasarkan kebutuhan waktu minimum. avg n: kompleksitas waktu untuk kasus rata-rata average case, yaitu berdasarkan kebutuhan waktu secara rata-rata

2.10.2 Kompleksitas Waktu Asimptotik

Tinjau Tn = 2n 2 + 6n + 1 Tabel 2.6 Perbandingan pertumbuhan Tn dengan n 2 N Tn = 2n 2 n + 6n + 1 2 10 100 1000 10.000 261 2061 2.006.001 1.000.060.001 100 1000 1.000.000 1.000.000.000 1. Untuk n yang besar, pertumbuhan Tn sebanding dengan n 2 . Pada kasus ini, Tn tumbuh seperti n 2 tumbuh. 2. Tn tumbuh seperti n 2 tumbuh saat n bertambah. Kita katakan bahwa Tn berorde n 2 dan kita tuliskan Tn = On 2 3. Notasi “O” disebut notasi “O-Besar” Big-O yang merupakan notasi kompleksitas waktu asimptotik. DEFINISI. Tn = Ofn dibaca “Tn adalah Ofn” yang artinya Tn berorde paling besar fn bila terdapat konstanta C dan n sedemikian sehingga Tn ≤ Cf n untuk n ≥ n . Universitas Sumatera Utara fn adalah batas atas upper bound dari Tn untuk n yang besar. TEOREMA. Bila Tn = a m n m + a m-1 n m-1 + ... + a 1 n+ a adalah polinom derajat m maka Tn = On m TEOREMA. Misalkan T . 1 n = Ofn dan T 2 a T n = Ogn, maka 1 n + T 2 b T n = Ofn + Ogn = Omaxfn, gn 1 nT 2 c Ocfn = Ofn, c adalah konstanta n = OfnOgn = Ofngn d fn = Ofn Contoh: Misalkan T 1 n = On dan T 2 n = On 2 a T , maka 1 n + T 2 n = Omaxn, n 2 = On 2 b T 1 nT 2 n = On.n 2 = On 3 Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik 1. Jika kompleksitas waktu Tn dari algoritma diketahui, Contoh: a. pada algoritma cari_maksimum Tn = n – 1 = On b. pada algoritma pencarian_beruntun T min T n = 1 = O1 max T n = n = On avg n = n + 12 = On, c. pada algoritma pencarian_biner, T min T n = 1 = O1 max n = 2 log n = O 2 log n Universitas Sumatera Utara d. pada algoritma selection_sort 2 1 2 n O n n n T = − = e. Tn = n + 2 logn 2 + 1 + 5n 2 = On 2 Penjelasannya adalah sebagai berikut: Tn = n + 2 logn 2 + 1 + 5n = fngn + hn, 2 Kita rinci satu per satu: ⇒ fn = n + 2 = On ⇒ gn = logn 2 logn + 1 = Olog n, karena 2 + 1 ≤ log2n 2 = log 2 + log n 2 = log 2 + 2 log n ≤ 3 log n untuk n 2 ⇒ hn = 5n 2 = On 2 maka: Tn = n + 2 logn 2 + 1 + 5n 2 = OnOlog n + On 2 = On log n + On 2 = Omaxn log n, n 2 = On 2 2. Menghitung O-Besar untuk setiap instruksi di dalam algoritma dengan panduan di bawah ini, kemudian menerapkan teorema O-Besar. a. Pengisian nilai assignment, perbandingan, operasi aritmetik, read, write membutuhkan waktu O1. b. Pengaksesan elemen larik atau memilih field tertentu dari sebuah record membutuhkan waktu O1. Contoh : readx; O1 x:=x + a[k]; O1 + O1 + O1 = O1 writelnx; O1 Universitas Sumatera Utara Kompleksitas waktu asimptotik = O1 + O1 + O1 = O1 Penjelasan: O1 + O1 + O1 = Omax1,1 + O1 = O1 + O1 = Omax1,1 = O1

c. if C then S1 else S2; membutuhkan waktu