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