8
melakukan perulangan dengan melakukan pemanggilan terhadap dirinya sendiri. Contoh algoritma pengurutan yang termasuk dalam skema iteratif, yaitu pengurutan
apung bubble sort dan selection sort, Contoh algoritma pengurutan yang termasuk dalam skema rekursif, yaitu pengurutan merge merge sort, pengurutan heap heap
sort dan pengurutan cepat quick sort. Tidak semua algoritma tersebut hanya memiliki satu skema, misalnya algoritma pengurutan seleksi atau selection sort yang
dapat menggunakan skema rekursif, namun di dalam penelitian ini selection sort yang dibahas menggunakan skema iteratif Fanani 2008.
2.3 Kompleksitas Algoritma
Efisiensi sebuah algoritma tergantung dari beberapa hal, diantaranya adalah : Kinerja CPU
Kinerja Memori Kinerja Disk
Kinerja Jaringan
Menurut Rao dan Ramses 2012, bahwa Algoritma memiliki kompleksitas yang merupakan acuan utama utama untuk mengetahui kecepatan dari sebuah algoritma.
Kompleksitas dibagi menjadi tiga, yaitu: 1.
Best case Ω, yaitu kompleksitas algoritma dimana algoritma tersebut berjalan dalam kondisi terbaik.
2. Average case �, yaitu kompleksitas algoritma dimana algoritma tersebut
berjalan dalam kondisi sedang, biasanya inputnya secara acak. 3.
Worst case Ο, yaitu kompleksitas algoritma dimana algoritma tersebut berjalan dalam kondisi terburuk.
2.4 Growth Fuction
Kinerja sebuah algoritma biasanya di ukur dengan mengacu pada kondisi terburuknya, yaitu worst case yang dilambangkan dengan notasi Big O. Notasi Big O adalah fungsi
yang berkaitan dengan kelajuan proses dan kelajuan pertambahan data Suryani 2013.
Universitas Sumatera Utara
9
Tabel 1.1 Tabel Notasi Big O Notasi
Nama Contoh Aplikasi
O1 Konstan
Menentukan apakah suatu bilangan ganjil atau genap
Olog n Iterasi Logaritmik
Algoritma pencarian Hopcraff dan Ullman untuk himpunan disjoint
Olog n Logaritmik
Pencarian dalam list terurut dengan Binary Search Algorithm
Olog n
c
Polilogaritmik Menentukan bilangan prima dengan AKS
primality test On
Linear Pencarian dalam list tidak terurut
On log n Linearitmik
Mengurutkan list dengan Heapsort On
2
Kuadratik Mengurutkan list dengan Insertion Sort
On
c
,c1 Poliomial
Pencarian shortest path dengan algoritma Floyd Warshall
Oc
n
Eksponensia Pencarian solusi untuk traveling salesmen
problem On
Faktorial Menyelesaikan traveling salesmen problem
dengan menggunakan brute force O2
cn
Dobel Eksponensial Pencarian himpunan lengkap dari AC-unifiers
associative-commutative unifiers
Universitas Sumatera Utara
10
2.5 Notasi Asimptotik
Notasi asimptotik digunakan untuk menentukan kompleksitas suatu algoritma dengan melihat waktu tempuh running time sebuah algoritma. Waktu tempuh algoritma
merupakan fungsi : N → R suatu algoritma dengan algoritma lainnya. Notasi asimptotik dapat dituliskan dengan beberapa simbol, yaitu :
Notasi Big O, yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas. Notasi Little o, yaitu notasi asimptotik sebuah fungsi algoritma untuk batas
atas namun tidak secara ketat terikat not asymptotically tight. Notasi Theta �, yaitu notasi asimptotik sebuah fungsi algoritma untuk batas
atas dan bawah. Notasi Omega , yaitu notasi asimptotik sebuah fungsi algoritma untuk
batas bawah, notasi ini berlawanan dengan notasi little-o.
2.6 Algoritma Bucket Sort