Kompleksitas Algoritma Growth Function Notasi Asimptotik

Algoritma memiliki dua skema, yaitu iteratif dan rekursif. Iteratif yaitu algoritma yang melakukan perulangan biasa, sedangkan rekursif adalah algoritma yang 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 Algoritma memiliki kompleksitas, kompleksitas merupakan acuan utama utama untuk mengetahui kecepatan dari sebuah algoritma. Kompleksitas dibagi menjadi tiga, yaitu Rao and Ramesh 2012 : 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. Universitas Sumatera Utara

2.4. Growth Function

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. Tabel 2.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 Sumber : Mcgeoch, 2012 Universitas Sumatera Utara

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. Pengertian Selection Sort