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

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi Sistem

Implementasi merupakan tahapan akhir dari proses pembuatan perangkat lunak. Pada tahap implementasi sistem ini akan dibahas bagaimana penerapan dari analisis dan perancangan sistem yang telah dilakukan dan dipaparkan pada bab sebelumnya dan juga akan dibahas bagaimana jalannya aplikasi, serta perangkat yang dibutuhkan untuk menjalankan aplikasi yang telah dibuat. Sistem yang dibangun menggunakan bahasa pemrograman Microsoft Visual Basic 2010. 4.1.1. Menu utama Menu utama digunakan untuk menampilkan menu-menu aplikasi yang telah dirancang dan merupakan halaman awal saat program dijalankan. Pada menu utama terdapat 3 bagian yaitu: File, Algoritma dan Chart. Tiap bagian dari menu utama memiliki bagian-bagiannya juga. File memiliki beberapa bagian yaitu: About us dan keluar. Algoritma terdiri dari: Cocktail Shaker Sort dan 4 Way Merge Sort. Chart juga mempunyai beberapa bagian yaitu: Cocktail Shaker Sort, 4 Way Merge Sort dan perbandingan. Tampilan menu utama dapat dilihat pada Gambar 4.1. Universitas Sumatera Utara Gambar 4.1. Tampilan Menu Utama 4.1.2. Sorting dengan algoritma cocktail shaker sort Sorting dengan algoritma cocktail shaker sort merupakan salah satu bagian dari menu utama yaitu algoritma. Pada halaman ini akan dilakukan proses pengurutan data acak menggunakan algoritma cocktail shaker sort dapat dilihat pada Gambar 4.2. Gambar 4.2. Tampilan Sorting dengan Algoritma Cocktail Shaker Sort Universitas Sumatera Utara Pertama-tama user memasukkan jumlah angka yang ingin diurutkan kemudian saat user menekan button ”jalankan”. Dalam hal ini user menginputkan jumlah data sebanyak 10, 50, 100, 500, 1000, 5000, 10000, 50000 dan 100000. Maka sistem akan meng-genarate data setelah itu muncul data sebelum diurutkan, sesudah diurutkan dan waktu eksekusi ditunjukkan pada Gambar 4.3, Gambar 4.4, Gambar 4.5, Gambar 4.6, Gambar 4.7, Gambar 4.8, Gambar 4.9, Gambar 4.10 dan Gambar 4.11. Gambar 4.3. Sorting Algoritma Cocktail Shaker Sort n = 10 Universitas Sumatera Utara Gambar 4.4. Sorting Algoritma Cocktail Shaker Sort n = 50 Gambar 4.5. Sorting Algoritma Cocktail Shaker Sort n= 100 Gambar 4.6. Sorting Algoritma Cocktail Shaker Sort n=500 Universitas Sumatera Utara Gambar 4.7. Sorting Algoritma Cocktail Shaker Sort n=1000 Gambar 4.8. Sorting Algoritma Cocktail Shaker Sort n = 5000 Universitas Sumatera Utara Gambar 4.9. Sorting Algoritma Cocktail Shaker Sort n = 10000 Gambar 4.10. Sorting Algoritma Cocktail Shaker Sort n = 50000 Universitas Sumatera Utara Gambar 4.11. Sorting Algoritma Cocktail Shaker Sort n = 100000 Setelah melakukan proses pengurutan dengan jumlah data 10 sampai 100000 maka saat user menekan tombol “Chart Cocktail Shaker Sort” akan muncul grafik algoritma cocktail shaker sort seperti yang ditunjukkan pada Gambar 4.12. Gambar 4.12. Grafik Algoritma Cocktail Shaker Sort Universitas Sumatera Utara 4.1.3. Sorting dengan algoritma 4 way merge sort Sorting dengan algoritma 4 way merge sort merupakan salah satu bagian dari menu utama yaitu algoritma. Pada halaman ini akan dilakukan proses pengurutan data acak menggunakan algoritma 4 way merge sort dapat dilihat pada Gambar 4.2. Gambar 4.13. Tampilan Sorting dengan Algoritma 4 Way Merge Sort Pertama-tama user memasukkan jumlah angka yang ingin diurutkan kemudian saat user menekan button ”jalankan”. Dalam hal ini user menginputkan jumlah data sebanyak 10, 50, 100, 500, 1000, 5000, 10000, 50000 dan 100000. Maka sistem akan meng-genarate data setelah itu muncul data sebelum diurutkan, sesudah diurutkan dan waktu eksekusi ditunjukkan pada Gambar 4.14, Gambar 4.15, Gambar 4.16, Gambar 4.17, Gambar 4.18, Gambar 4.19, Gambar 4.20, Gambar 4.21 dan Gambar 4.22. Universitas Sumatera Utara Gambar 4.14. Sorting Algoritma 4 Way Merge Sort n = 10 Gambar 4.15. Sorting Algoritma 4 Way Merge Sort n = 50 Universitas Sumatera Utara Gambar 4.16. Sorting Algoritma 4 Way Merge Sort n = 100 Gambar 4.17. Sorting Algoritma 4 Way Merge Sort n = 500 Universitas Sumatera Utara Gambar 4.18. Sorting Algoritma 4 Way Merge Sort n = 1000 Gambar 4.19. Sorting Algoritma 4 Way Merge Sort n = 5000 Universitas Sumatera Utara Gambar 4.20. Sorting Algoritma 4 Way Merge Sort n = 10000 Gambar 4.21. Sorting Algoritma 4 Way Merge Sort n = 50000 Universitas Sumatera Utara Gambar 4.22. Sorting Algoritma 4 Way Merge Sort n = 100000 Setelah melakukan proses pengurutan dengan jumlah data 10 sampai 100000 maka saat user menekan tombol “Chart Cocktail Shaker Sort” akan muncul grafik algoritma cocktail shaker sort seperti yang ditunjukkan pada Gambar 4.23. Gambar 4.23. Grafik Algoritma 4 Way Merge Sort Universitas Sumatera Utara Grafik dari hasil perbandingan antara kedua algoritma tersebut dapat dilihat pada Gambar 4.24 terdapat perbedaan waktu yang cukup jelas di antara algoritma tersebut. Pengurutan data dengan algoritma 4 way mergesort lebih cepat jika dibandingkan dengan cocktail shaker sort. Hal ini dibuktikan dengan keadaan grafik waktu perbandingan antara kedua algoritma tersebut, dimana grafik waktu cocktail shaker sort perubahannya lebih besar jika dibandingkan dengan 4 way mergesort. Gambar 4.24. Grafik Perbandingan 4.2. Pengujian Sistem Dalam sistem ini terdapat dua proses utama, antara lain: proses pengurutan dan kompleksitas waktu berdasarkan algoritma cocktail shaker sort dan 4 way merge sort . 4.2.1. Analisis proses algoritma cocktail shaker sort Langkah-langkah proses pengurutan data dengan algoritma cocktail shaker sort: 1. Data yang ingin diurutkan sebanyak n=10 8055 18720 70822 83447 76754 95968 36288 21469 94905 28852 2. Iterasi pertama mulai dari sebelah kiri dengan membandingkan 2 data awal yang berwarna merah 8055 18720 70822 83447 76754 95968 36288 21469 94905 28852 8055 18720 70822 83447 76754 95968 36288 21469 94905 28852 Universitas Sumatera Utara 3. Jika data pertama lebih besar dari yang kedua maka ditukar swap data tersebut. Data hasil proses swap adalah data yang berwarna biru. 8055 18720 70822 83447 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 36288 95968 21469 94905 28852 8055 18720 83447 70822 76754 36288 95968 21469 94905 28852 8055 18720 83447 70822 76754 36288 21469 95968 94905 28852 8055 18720 83447 70822 76754 36288 21469 95968 94905 28852 8055 18720 83447 70822 76754 36288 21469 94905 95968 28852 4. Lakukan proses tersebut terus menerus sampai ditemukan nilai terbesar di sebelah kanan. Kemudian data terbesar yang diperoleh diberi warna hijau sehingga data tersebut disimpan dan tidak ikut lagi dalam proses pengurutan data. 8055 18720 83447 70822 76754 36288 21469 94905 95968 28852 8055 18720 83447 70822 76754 36288 21469 94905 28852 95968 8055 18720 83447 70822 76754 36288 21469 94905 28852 95968 5. Iterasi kedua lakukan dari arah yang berlawanan dan lakukan proses swap. 8055 18720 83447 70822 76754 36288 21469 94905 28852 95968 8055 18720 83447 70822 76754 36288 21469 28852 94905 95968 8055 18720 83447 70822 76754 36288 21469 28852 94905 95968 8055 18720 83447 70822 76754 36288 21469 28852 94905 95968 8055 18720 83447 70822 76754 21469 36288 28852 94905 95968 Universitas Sumatera Utara 8055 18720 83447 70822 76754 21469 36288 28852 94905 95968 8055 18720 83447 70822 21469 76754 36288 28852 94905 95968 8055 18720 83447 70822 21469 76754 36288 28852 94905 95968 8055 18720 83447 21469 70822 76754 36288 28852 94905 95968 8055 18720 83447 21469 70822 76754 36288 28852 94905 95968 6. Lakukan terus proses perbandingan sehingga diperoleh nilai data terkecil di sebelah kiri. Data tersebut akan disimpan dan tidak ikut lagi dalam proses pengurutan data. 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 7. Ulangi kembali proses tersebut berulang-ulang sehingga diperoleh data dalam keadaan terurut. 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 70822 83447 76754 36288 28852 94905 95968 8055 18720 21469 70822 83447 76754 36288 28852 94905 95968 8055 18720 21469 70822 76754 83447 36288 28852 94905 95968 8055 18720 21469 70822 76754 83447 36288 28852 94905 95968 8055 18720 21469 70822 76754 36288 83447 28852 94905 95968 8055 18720 21469 70822 76754 36288 83447 28852 94905 95968 Universitas Sumatera Utara 8055 18720 21469 70822 76754 36288 28852 83447 94905 95968 8055 18720 21469 70822 76754 36288 28852 83447 94905 95968 8055 18720 21469 70822 76754 36288 28852 83447 94905 95968 8055 18720 21469 70822 76754 36288 28852 83447 94905 95968 8055 18720 21469 70822 76754 36288 28852 83447 94905 95968 8055 18720 21469 70822 76754 28852 36288 83447 94905 95968 8055 18720 21469 70822 76754 28852 36288 83447 94905 95968 8055 18720 21469 70822 28852 76754 36288 83447 94905 95968 8055 18720 21469 70822 28852 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 76754 36288 83447 94905 95968 8055 18720 21469 28852 70822 36288 76754 83447 94905 95968 8055 18720 21469 28852 70822 36288 76754 83447 94905 95968 8055 18720 21469 28852 70822 36288 76754 83447 94905 95968 8055 18720 21469 28852 70822 36288 76754 83447 94905 95968 8055 18720 21469 28852 70822 36288 76754 83447 94905 95968 Universitas Sumatera Utara 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8. Data yang sudah terurut: 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 Universitas Sumatera Utara 4.2.2. Analisis kompleksitas waktu algoritma cocktail shaker sort No Code C C. Public Function CocktailSortNumber ByVal ListofNumber As List Of Integer As List Of Integer 1 Dim swaps As Boolean = True C1 1 C1 2 While swaps = True C2 n C2n 3 swaps = False C3 n C3n 4 For i As Integer = 0 To ListofNumber.Count - 2 C4 nn-1 C4n2- n 5 If ListofNumberi ListofNumberi + 1 Then C5 nn-1 C5n2- n 6 Dim temp As Integer = ListofNumberi C1 nn-1 C1n2- n 7 ListofNumberi = ListofNumberi + 1 C6 nn-1 C6n2- n 8 ListofNumberi + 1 = temp C6 nn-1 C6n2- n 9 swaps = True C3 nn-1 C3n2- n 10 End If 11 Next 12 swaps = False C3 n C3n 13 For i As Integer = ListofNumber.Count - 2 To Step -1 C4 nn-1 C4n2- n 14 If ListofNumberi ListofNumberi + 1 Then C5 nn-1 C5n2- n 15 Dim temp As Integer = ListofNumberi C1 nn-1 C1n2- n 16 ListofNumberi = ListofNumberi C6 nn-1 C6n2- Universitas Sumatera Utara Cara untuk menganalisis kompleksitas waktu algoritma cocktail shaker sort adalah sebagai berikut: 4.2.3. Analisis proses algoritma 4 way merge sort Cara untuk menganalisis kompleksitas waktu algoritma 4 way merge sort adalah sebagai berikut: Langkah-langkah proses pengurutan data dengan algoritma 4 way merge sort: 1. Data yang ingin diurutkan sebanyak n=10 8055 18720 70822 83447 76754 95968 36288 21469 94905 28852 2. Bagi data tersebut menjadi 4 3. Data yang sudah dibagi 4. Pisahkan data tersebut satu per satu. Jika data kurang dari 4 maka data tidak perlu lagi dibagi menjadi 4 bagian. + 1 n 17 ListofNumberi + 1 = temp C6 nn-1 C6n2- n 18 swaps = True C3 nn-1 C3n2- n 19 End If 20 Next 21 End While 22 Return ListofNumber C7 nn-1 C7n2- n 23 End Function Tn=C1+C2+C3n+C4+C5+C1+2C6+C3n 2 -n+C3n+C4+C5+C1+2C6+C3+C7n 2 -n Tn=C1+C2+2C3n+2C4+2C5+2C1+4C6+2C3+C7n 2 -n Maka Tn dari algoritma cocktail cocktail shaker sort θ n 2 Universitas Sumatera Utara 4. Kemudian gabungkan dan urutkan data tersebut sesuai dengan pengelompokannya. 5. Gabungkan dan urutkan kembali data tersebut maka diperolehlah keseluruhan data dalam keadaan terurut. Universitas Sumatera Utara 4.2.4. Analisis kompleksitas algoritma 4 way merge sort Gambar 4.25. Analisis kompleksitas algoritma 4 way merge sort Universitas Sumatera Utara Pada Gambar 4.25. menunjukkan n adalah banyak data yang akan diurutkan, h d adalah tingkatan berapa kali proses divide h c adalah tingkatan berapa kali proses conquer, H adalah gabungan dari proses divide dan conquer dan h d =h c . Oleh karena itu, maka diperoleh Tabel 4.1. Tabel 4.1. Tabel Proses Algoritma 4 Way Merge Sort n h d h d‟ 10 3 2 4 2 1 1 1 Dari Tabel 4.1. diatas maka diperoleh: h d‟ = h d -1 n = 3 hd‟ +1 log n = h d‟ log 3 + log 1 h d‟ = 3 log n h d‟ = h d – 1 3 log n = h d – 1 h d = 3 log n + 1 H = h d + h c – 1 = 3 log n + 1+1 – 1 = 3 log n + 1 Tn = w. H = n. 3 log n + 1 = n log n + n = θ n log n Maka Tn dari algoritma 4 way merge sort adalah θn log n. Universitas Sumatera Utara

4.3. Hasil Pengujian Sistem