BAB 2
LANDASAN TEORI
2.1. Algoritma
Algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai yaitu seperangkat nilai sebagai input dan output yang
menghasilkan nilai Sedgewick Wayne, 2011. Secara umum algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat
diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus
dipenuhi sebelum menjalankan algoritma.
Menurut Donald E. Knuth, algoritma yang baik memiliki kriteria sebagai berikut Sitorus, 2015:
1. Input
Suatu algoritma harus memiliki 0 nol atau lebih masukan input. Artinya, suatu algoritma itu dimungkinkan tidak memiliki masukan secara langsung dari
pengguna tetapi dapat juga memiliki beberapa masukan. Algoritma yang tidak memiliki masukan secara langsung dari pengguna, maka semua data dapat
diinisialisaikan atau dibangkitkan dalam algoritma. 2.
Output Suatu algoritma harus memiliki satu atau lebih algoritma. Suatu algoritma yang
tidak memiliki keluaran output adalah suatu algoritma yang sia sia, yang tidak perlu dilakukan. Algoritma dibuat untuk tujuan menghasilkan sesuatu yang
diinginkan, yaitu berupa hasil keluaran.
Universitas Sumatera Utara
3. Finiteness
Setiap pekerjaan yang dikerjakan pasti berhenti. Demikian juga algoritma harus dapat dijamin akan berhenti setelah melakukan sejumlah langkah proses.
4. Definiteness
Algoritma tersebut tidak menimbulkan makna ganda ambiguous. Setiap baris aksipernyataan dalam suatu algoritma harus pasti, artinya tidak menimbulkan
penafsiran lain bagi setiap pembaca algoritma, sehingga memberikan output yang sesuai dengan yang diharapkan oleh pengguna.
5. Effectiveness
Setiap langkah algoritma harus sederhana sehingga dikerjakan dalam waktu yang wajar.
2.2. Pengurutan
Algoritma pengurutan adalah proses menyusun kembali rentetan objek-objek untuk meletakkan objekdari suatukumpulan data ke dalam urutan yang logis Cormen,
2009.Pada dasarnya, pengurutansorting membandingkanantar data atau elemen berdasarkan kriteria dankondisi tertentu Indrayana Ihsan, 2005.Pengurutan dapat
dilakukan dari nilai terkecil ke nilai terbesar ascending atau sebaliknya descending.
Ada dua kategori pengurutan Suarga, 2012: 1.
Pengurutan internal Pengurutan internal adalah pengurutan yang dilaksanankan hanya dengan
menggunakan memori komputer, pada umumnya digunakan bila jumlah elemen tidak terlalu banyak.
2. Pengurutan eksternal
Pengurutan eksternal adalah pengurutan yang dilaksanakan dengan bantuan memori virtual atau harddisk karena jumlah elemen yang akan diurutkan terlalu
banyak.
Universitas Sumatera Utara
2.3. Klasifikasi Algoritma Pengurutan
Klasifikasi algoritma-algoritma pengurutan dibedakan berdasarkan Erzandi,2009: 1.
Kompleksitas perbandingan antar elemen terkait dengan kasus terbaik, rata-rata dan terburuk
2. Kompleksitas pertukaran elemen, terkait dengan cara yang digunakan elemen
setelah dibandingkan 3.
Penggunaan memori 4.
Rekursif atau tidak rekursif 5.
Proses pengurutannyametode penggunaannya Klasifikasi algoritma pengurutan berdasarkan proses pengurutannya sebagai berikut
Putranto, 2007: 1. Exchange Sort
Dalam prosesnya, algoritma-algoritma pengurutan yang diklasifikasikan sebagai exchange sort
melakukan pembandingan antar data, dan melakukan pertukaran apabila urutan yang didapat belum sesuai. Contohnya: bubble sort, cocktail sort,
comb sort, gnome sort, quick sort .
2. Selection Sort Prinsip utama algoritma dalam klasifikasi ini adalah mencari elemen yang tepat
untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan. Contohnya: selection sort, heap sort,
smooth sort, strand sort. 3. Insertion Sort
Algoritma pengurutan yang diklasifikasikan ke dalam kategori ini mencari tempat yang tepat untuk suatu elemen data yang telah diketahui ke dalam subkumpulan
data yang telah terurut, kemudian melakukan penyisipan insertion data di tempat yang tepat tersebut. Contohnya: insertion sort, shell sort, tree sort, library sort,
patience sorting. 4. Merge Sort
Dalam algoritma ini kumpulan data dibagi menjadi subkumpulan-subkumpulan yang kemudian sub kumpulan tersebut diurutkan secara terpisah, dan kemudian
digabungkan kembali dengan metode merging. Dalam kenyataannya algoritma ini melakukan metode pengurutan merge sort juga untuk mengurutkan subkumpulan
Universitas Sumatera Utara
data tersebut, atau dengan kata lain, pengurutan dilakukan secara rekursif. Contohnya: Merge sort.
5. Non-Comparison Sort Sesuai namanya dalam proses pengurutan data yang dilakukan algoritma ini tidak
terdapatpembandingan antardata, data diurutkan sesuai dengan pigeon hole principle
. Dalam kenyataanyaseringkali algoritma non-comparison sort yang digunakan tidak murni tanpa pembandingan, yangdilakukan dengan menggunakan
algoritma-algoritma pengurutan cepat lainnya untuk mengurutkan subkumpulan- subkumpulan datanya. Contohnya: Radix sort, Bucket sort, Counting sort,
Pigeonhole sort, Tally sort. Berdasarkan klasifikasi algoritma pengurutanyang sudah dijelaskan maka yang
akan dianalisis pada penelitian ini adalah algoritmacocktail shaker sort dan 4 ways mergesort.
2.4. AlgoritmaCocktail Shaker Sort