Implementasi Sistem Generated Data Algoritma QuickSort

BAB 4 IMPLEMENTASI SISTEM

4.1. Implementasi Sistem

Pada tahap implementasi sistem ini akan dibahas bagaimana penerapan dari analisis dan perancangan sistem yang telah dilakukan dan dipaparkan pada bab sebelumnya, membahas bagaimana jalannya aplikasi dalam laptop dengan spesifikasi Intel Pentium P6300, RAM 3GB, HDD 320 GB, dan juga perhitungan analisis setiap algoritma .

4.2. Generated Data

Generated data merupakan proses untuk membangkitkan data acak. Dalam hal ini, kita ambil contoh dengan n = 100 strings. Dalam proses compile Gambar 4.1, akan terlihat berapa lama proses yang dibutuhkan untuk mengeksekusi data tersebut. Hasil generated data .txt juga dapat dilihat pada Gambar 4.2 Gambar 4.1 Tampilan Compile Generated Data Universitas Sumatera Utara 36 Gambar 4.2 Tampilan Hasil Generated Data Universitas Sumatera Utara 37

4.3. Algoritma QuickSort

Dalam tahapan ini, compiler melakukan pengurutan secara QuickSort berdasarkan jumlah data yang telah dibangkitkan. Dalam hal ini, kita ambil contoh dengan n = 100 strings. Dalam proses compile Gambar 4.3, akan terlihat berapa lama proses yang dibutuhkan untuk mengeksekusi data tersebut. Hasil pengurutan berdasarkan algoritma QuickSort .txt juga dapat dilihat pada Gambar 4.4. Gambar 4.3 Tampilan Compile Algoritma QuickSort Universitas Sumatera Utara 38 Gambar 4.4 Tampilan Hasil Algoritma QuickSort Universitas Sumatera Utara 39 4.3.1. Analisis algoritma Quicksort Tahapan dalam melakukan partisi pada Algoritma QuickSort sebagai berikut: 1. Pilih x Є {A1, A2, ... , An} sebagai elemen pivot x 2. Lakukan scanning tabel dari kiri ke kanan sampai ditemukan Ap≥ x 3. Lakukan scanning tabel dari kanan ke kiri sampai ditemukan Aq≤ x 4. Swap Ap↔ Aq 5. Ulangi langkah ke-2, sampai kedua scanning bertemu di tengah tabel. Berdasarkan Tabel ASCII. Maka: s=115 m=109 t=116 u=117 r=114 r=114 1=049 p=112 z=122 n=110 1. Menentukan pivot 2. Melakukan scanning tabel dari kiri ke kanan sampai ditemukan Ap≥ x dan scanning tabel dari kanan ke kiri sampai ditemukan Aq≤ x 115 109 116 117 114 114 049 112 122 110 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 115 109 116 117 114 114 049 112 122 110 x A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 115 109 116 117 114 114 049 112 122 110 P x q Universitas Sumatera Utara 40 3. Swap Ap↔ Aq 4. Mengulangi langkah ke-2 dari posisi p+1 dan dari posisi q-1, sampai kedua scanning bertemu ditengah tabel. 5. Swap Ap↔ Aq 6. Mengulangi langkah ke-2 dari posisi p+1 dan dari posisi q-1, sampai kedua scanning bertemu ditengah tabel. 7. Swap Ap↔ Aq A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 110 109 116 117 114 114 049 112 122 115 P x q A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 110 109 116 117 114 114 049 112 122 115 p x q A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 110 109 112 117 114 114 049 116 122 115 p x q A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 110 109 112 117 114 114 049 116 122 115 P x q A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 110 109 112 049 114 114 117 116 122 115 P x q Universitas Sumatera Utara 41 8. Mengulangi langkah ke-2 dari posisi p+1 dan dari posisi q-1, sampai kedua scanning bertemu ditengah tabel. 9. Proses berhenti dan bagi partisi menjadi 2 tabel, karena p≤q di tengah tabel Hasil partisi pertama: A1 A2 A3 A4 A5 110 109 112 049 114 10. Menentukan pivot A1 A2 A3 A4 A5 110 109 112 049 114 x 11. Melakukan scanning tabel dari kiri ke kanan sampai ditemukan Ap≥ x dan scanning tabel dari kanan ke kiri sampai ditemukan Aq≤ x A1 A2 A3 A4 A5 110 109 112 049 114 x p q 12. Swap Ap↔ Aq A1 A2 A3 A4 A5 110 109 049 112 114 x A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 110 109 112 049 114 114 117 116 122 115 p x q Universitas Sumatera Utara 42 13. Mengulangi scanning, karena pivot telah berubah A1 A2 A3 A4 A5 110 109 049 112 114 p x q 14. Swap Ap↔ Aq A1 A2 A3 A4 A5 049 109 110 112 114 x 15. Mengulangi scanning, karena pivot telah berubah. Namun, karena tidak ditemukan syarat Ap≥ x dan Aq≤ x. Maka, proses partisi pertama selesai. A1 A2 A3 A4 A5 049 109 110 112 114 Hasil partisi kedua: A6 A7 A8 A9 A10 114 117 116 122 115 16. Menentukan pivot A6 A7 A8 A9 A10 114 117 116 122 115 x 17. Melakukan scanning tabel dari kiri ke kanan sampai ditemukan Ap≥ x dan scanning tabel dari kanan ke kiri sampai ditemukan Aq≤ x A6 A7 A8 A9 A10 114 117 116 122 115 P x q Universitas Sumatera Utara 43 18. Swap Ap↔ Aq A6 A7 A8 A9 A10 114 115 116 122 117 P x q 19. Mengulangi scanning hingga bertemu di tengah tabel A6 A7 A8 A9 A10 114 115 116 122 117 x p q 20. Proses berhenti dan bagi partisi menjadi 2 tabel, karena p≤q di tengah tabel Hasil partisi kedua bagian pertama: A6 A7 A8 114 115 116 21. Menentukan pivot A6 A7 A8 114 115 116 x 22. Karena tidak ditemukan syarat Ap≥ x dan Aq≤ x. Maka, proses partisi kedua bagian pertama selesai. A6 A7 A8 114 115 116 Hasil partisi kedua bagian kedua: A9 A10 122 117 Universitas Sumatera Utara 44 23. Menentukan pivot A9 A10 122 117 x 24. Melakukan scanning tabel dari kiri ke kanan sampai ditemukan Ap≥ x dan scanning tabel dari kanan ke kiri sampai ditemukan Aq≤ x A9 A10 122 117 p x q 25. Swap Ap↔ Aq A9 A10 117 122 x 26. Mengulangi scanning, karena pivot telah berubah. Namun, karena tidak ditemukan syarat Ap≥ x dan Aq≤ x. Maka, proses partisi kedua bagian kedua selesai. A9 A10 117 122 27. Hasil akhir keseluruhan proses partisi A1 A2 A3 A4 A5 049 109 110 112 114 A6 A7 A8 114 115 116 A9 A10 117 122 Universitas Sumatera Utara 45 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 049 109 110 112 114 114 115 116 117 122 1 m n p r r s t u Z Namun, proses belum berhenti karena ditemukan 2 angka yang sama huruf s dalam tabel ASCII. Untuk mengetahui urutan mana yang terlebih dahulu, maka pengurutan dilanjutkan pada karakter kedua pada kedua string tersebut r4rf8j dan rstau0. Berdasarkan Tabel ASCII. Maka: 4=052 s=115 052 115 28. Menentukan pivot A5 A6 052 115 x 29. Karena tidak ditemukan syarat Ap≥ x dan Aq≤ x. Maka, proses selesai. A5 A6 052 115 30. Hasil akhir untuk pengurutan karakter kedua pada kedua string tersebut r4rf8j dan rstau0 A5 A6 052 115 4 s Universitas Sumatera Utara 46 31. Maka hasil pengurutan 10 string tersebut dapat dilihat pada Gambar 4.5. A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 049 109 110 112 114 114 115 116 117 122 1 m n p r r s t u z Gambar 4.5 Hasil Pengurutan Algoritma QuickSort A5 A6 052 115 4 s Universitas Sumatera Utara 47 4.3.2. Analisis kompleksitas waktu Tn dan grafik perbandingan algoritma QuickSort Berikut dipaparkan analisis kompleksitas waktu Tn dan running time Tabel 4.1 dan grafik running time algoritma QuickSort Gambar 4.6 h dc h c n 10 5 3 1 h dc 4 3 2 1 h dc’ 3 2 1 h dc’ = h dc -1 2 hdc’ +1 = n h dc’ log 2 + log 1 = log n h dc’ = 2 log n h dc’ = h dc – 1 2 log n = h dc – 1 h dc = 2 log n + 1 H = h dc + h c = 2 log n + 1+1 = 2 log n + 2 115 109 116 117 114 114 049 112 122 110 109 049 112 110 115 116 117 114 122 109 049 112 110 114 114 116 117 122 049 112 110 114 114 115 116 117 122 049 109 110 112 114 114 115 116 117 122 109 H 114 115 Universitas Sumatera Utara 48 Tn = w. H = n. 2 log n + 2 = n log n + 2n = θ n log n Tabel 4.1 Running Time Perbandingan Algoritma QuickSort a. Intel Core I5 2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB n QuickSort satuan waktu milidetik 60 1 600 3 6000 16 60000 58 b. Intel Pentium P6300, RAM 3GB, HDD 320 GB Gambar di bawah ini menunjukkan grafik perbandingan algoritma QuickSort a. Intel Core I5 2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB n QuickSort satuan waktu milidetik 60 600 3 6000 31 60000 120 Universitas Sumatera Utara 49 b. Intel Pentium P6300, RAM 3GB, HDD 320 GB Gambar 4.6 Grafik Running Time Perbandingan Algoritma QuickSort

4.4. Algoritma 3 Way QuickSort