AlgoritmaCocktail Shaker Sort Perbandingan Algoritma Cocktail Shaker Sort dan 4 Way Merge Sort Dalam Pengurutan Data

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

Algoritma cocktail shaker sort adalah variasi kecil dari bubble sortKnuth, 1973. Pada cocktail shaker sort setiap iterasi dari algoritma terdiri dari dua arah sedangkan pada bubble sortsetiap iterasi dalam satu arah sehingga bubble sorthanya dapat memindahkan mundur satu langkah setiap iterasi.Oleh karena itu, algoritma cocktail shaker sort disebut jugabidirectional bubble sortBlack Bockholt, 2009. Langkah-langkah algoritma cocktailshaker sortsecara ascendingyaitu: 1. Iterasi dari algoritma ini terdiri dari dua arah. 2. Tahap pertama loopdimulai dari data sebelah kiri. 3. Kemudian dibandingkan antara data pertama dengan data kedua yang berada disebelah kanan data pertama. Jika pada nilai di sebelah kiri lebih besar dari nilai di sebelah kanan maka kedua data tersebut ditukar. Sebaliknya jika nilai data sebelah kiri lebih kecil dari data sebelah kanan maka tidak perlu dilakukan pertukaran. 4. Pada akhir iterasi pertama, nilai terbesar akan berada di akhir. Kemudian nilai tersebut disimpan dan tidak masuk lagi ke dalam data yang ingin diurutkan. 5. Tahap kedua loop melalui kumpulan data dalam arah yang berlawanan yaitu sebelah kanan. 6. Kemudian dibandingkandua data yang diambil dari sebelah kananmenuju kiri. Universitas Sumatera Utara 7. Lakukan pertukaran data jika data sebelah kanan lebih kecil dari data sebelah kiri. Sebaliknya jika data sebelah kanan lebih besar dari data sebelah kiri maka pertukaran data tidak dilakukan. 8. Lakukan kembali proses tersebut sampai bergerak kembali menuju awal data sehingga diperoleh data pertama yang terkecil. Kemudian nilai tersebut disimpan dan tidak masuk lagi ke dalam data yang ingin diurutkan. 9. Ulangi kembali proses tersebut berulang-ulang sehingga diperoleh data dalam keadaan terurut dengan benar. Contoh proses pengurutan data menggunakan cocktail shaker sort dapat dilihat pada Gambar 2.1. Data yang ingin diurutkan: 31 98 72 14 8 22 Iterasi pertama mulai dari membandingkan 2 data awal yang berwarna merah 31 98 72 14 8 22 31 98 72 14 8 22 Data yang berwarna biru adalah data yang sudah ditukarswap 31 72 98 14 8 22 31 72 98 14 8 22 31 72 14 98 8 22 31 72 14 8 98 22 31 72 14 8 98 22 31 72 14 8 22 98 Data yang berwarna hijau adalah data yang sudah benar letak posisinya sehingga disimpan dan tidak ikut lagi dalam proses pengurutan data. Data di sebelah kanan merupakan data terbesar. 31 72 14 8 22 98 Universitas Sumatera Utara Iterasi kedua dari arah yang berlawanan. 31 72 14 8 22 98 Lakukan terus proses perbandingan sehingga diperoleh nilai data terkecil di sebelah kiri. 31 72 14 8 22 98 31 72 8 14 22 98 31 72 8 14 22 98 31 8 72 14 22 98 31 8 72 14 22 98 Maka diperoleh data terkecil di sebeleh kiri yang berwarna hijau. Data tersebut akan disimpan dan tidak ikut lagi dalam proses pengurutan data. Ulangi kembali proses tersebut berulang-ulang sehingga diperoleh data dalam keadaan terurut dengan benar. 8 31 72 14 22 98 8 31 72 14 22 98 8 31 72 14 22 98 8 31 14 72 22 98 8 31 14 72 22 98 8 31 14 22 72 98 8 31 14 22 72 98 8 14 31 22 72 98 8 14 31 22 72 98 Data yang sudah terurut: 8 14 22 31 72 98 Universitas Sumatera Utara Gambar 2.1. Proses pengurutan data menggunakan cocktail shaker sort 2.5. Algoritma4 WayMerge Sort Algoritmamerge sort merupakan algoritma yang dicetuskan oleh John von Neuman pada tahun 1945 Knuth, 1998. Merge sortmenggunakan prinsip divide and conquer. Divide and conquer adalah metode pemecahanmasalah yang bekerja dengan membagi masalah problem menjadi beberapa sub-masalah subproblem yang lebih kecil, kemudian menyelesaikan masing-masing sub-masalah secara independen dan akhirnya menggabung solusi masing-masing sub-masalah sehingga menjadi solusi masalah semula Munir, 2005. Pada umumnya, merge sortmembagi data menjadi 2 bagian. Namun pada algoritma 4 way merge sort membagi datamenjadi 4 bagian sehingga diperoleh subdata yang terpisah. Kemudian subdata tersebut diurutkan secara terpisahlalu menggabungkannya hingga diperoleh data dalam keadaan terurut. Proses pengurutan menggunakan 4 way merge sortdapat dilihat pada Gambar 2.2. Gambar 2.2. Proses pengurutan menggunakan algoritma 4 way merge sort 2.6. Pseudocode Skema lain untuk menyusun algoritma adalah pseudocode. Pseudocode merupakan bentuk informal untuk mendeskripsikan algoritma yang mengikuti struktur bahasa pemrograman.Pseudocode adalah kode yang mirip dengan kode pemrograman sebenarnyaUtami Raharjo, 2004. Universitas Sumatera Utara Tujuan dari penggunaan pseudocode: 1. Lebih mudah dibaca oleh manusia 2. Lebih mudah dipahami 3. Lebih mudah dalam menuangkan idehasil pemikiran 2.6.1. Pseudocode cocktail shaker sort Pseudocode algortima cocktail shaker sort sebagai berikut: procedure cocktailShakerSortA:list of sortable items; do swapped := false for each i in 0 to length A - 2 do: if A[ i ] A[ i + 1 ] then menguji apakah kedua elemen dalam urutan yang benar swap A[ i ], A[ i + 1 ] jika urutannya salah maka tukar posisi swapped := true end if end for if not swapped then keluar dari proses looping jika tidak terjadi swap break do-while loop end if swapped := false for each i in length A - 2 to 0 do: if A[ i ] A[ i + 1 ] then swap A[ i ], A[ i + 1 ] swapped := true end if end for while swapped jika tidak ada lagi proses swap maka data sudah dalam keadaan terurut end procedure Universitas Sumatera Utara 2.6.2. Pseudocode 4 way merge sort Pseudocode algortima4 way merge sort sebagai berikut: MergeSort ArrayFirst,FirstOne,Last,LastOne Begin if Array contains only one element then Return Array Else Middle=Last+LastOne+First+FirstOne4 rounded down to nearest integer LeftHalfArray=MergeSortArrayFirst..Middle RightHalfArray=MergeSortArrayMiddle+1..Last ResultArray=MergeLeftHalfArray,RightHalfArray Return ResultArray Endif End MergeSort

2.7. Flowchart