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