UNIVERSITAS BINA NUSANTARA Program Studi Ganda Teknik Informatika - Statistika Skripsi Sarjana Program Ganda Semester Ganjil Tahun 2005/2006
ANALISIS PERBANDINGAN KINERJA PENCARIAN STRING DARI ALGORITMA MAXIMAL SHIFT, OPTIMAL MISMATCH DAN QUICK SEARCH
Wira Handika 0500596993
Abstrak Masalah yang paling umum dari pemrosesan data adalah proses pencarian dan pengurutan. Teknik pencarian string yang memiliki kinerja baik akan menjadi pilihan untuk digunakan. Algoritma yang digunakan pada aplikasi pencarian string menentukan kinerja yang dilihat dari segi hasil pencarian, waktu pencarian dan kapasitas pemakaian memory. Dengan mengetahui algoritma mana yang lebih memadai akan membantu dalam pengembangan aplikasi pencarian string dengan lebih baik. Penelitian ini bertujuan untuk membandingkan kinerja antara ketiga algoritma. Manfaat penelitian ini adalah dapat digunakan sebagai dasar pertimbangan dalam pengembangan aplikasi pencarian string. Metode yang digunakan adalah dengan studi pustaka, analisis dan perancangan aplikasi. Data didapat dari pengujian program aplikasi terhadap 20 file teks dengan masing-masing perulangan sebanyak 5 kali sehingga diperoleh 100 data. Hasil penelitian ini menyatakan tidak ada perbedaan yang signifikan antara ketiga algoritma dalam jumlah hasil pencarian dan waktu pencarian. Algoritma Quick Search membutuhkan memory yang paling banyak dibandingkan algoritma Maximal Shift dan algoritma Optimal Mismatch. Algoritma Maximal Shift membutuhkan memory yang lebih banyak dibandingkan dengan algoritma Optimal Mismatch.
Kata kunci Pencarian String, file teks, Algoritma Maximal Shift, Algoritma Optimal Mismatch, Algoritma Quick Search, Hasil Pencarian, Waktu Pencarian, Pemakaian Memory
iv
PRAKATA Segala puji dan syukur saya panjatkan kepada Tuhan Yang Maha Esa atas segala berkat, kasih, dan penyertaan-Nya dalam pembuatan skripsi ini, sehingga penulisan skripsi ini dapat terselesaikan dengan baik. Penulisan skripsi ini tidak terlepas dari keterlibatan pihak-pihak yang telah banyak membantu. Untuk itu penulis mengucapkan banyak terima kasih antara lain ditujukan kepada: 1. Rektor Universitas Bina Nusantara, Bapak Prof. Gerardus Polla, Drs., M.App.Sc., Dr., yang telah memberikan kesempatan kepada penulis untuk mendapatkan pengajaran dan juga memberikan kesempatan untuk membuat penulisan skripsi ini. 2. Bapak Wikaria Gazali, S.Si., MT., selaku Dekan Fakultas MIPA yang telah memberikan bantuan dan kesempatan penulisan skripsi ini. 3. Bapak Ngarap Imanuel Manik, Drs., M.Kom., selaku Ketua Jurusan MIPA yang banyak membimbing saya selama dalam proses perkuliahan. 4. Dosen Pembimbing, Bapak Yaya Jakaria, S.Si., MM., dan Bapak Saulus Silitonga, Drs., M.Sc. yang telah banyak memberikan pengarahan selama penulisan skripsi sehingga penulisan skripsi ini dapat terselesaikan dengan baik. 5. Para dosen yang selama ini telah memberikan bimbingan pengajaran kepada penulis dimana bimbingan ini merupakan bekal bagi penulis dalam melakukan penulisan skripsi ini. 6. Orang tua beserta keluarga penulis yang telah banyak memberikan dorongan, baik dorongan spiritual maupun material selama penulisan skripsi ini. 7. Deviyana Limawan yang telah banyak memberikan dorongan dalam menyelesaikan penulisan skripsi ini. 8. Teddy, Riana, Violison, Jessica dan Frida yang telah banyak mengajari penulis selama masa perkuliahan. 9. Semua pihak yang telah membantu penulis dalam menyelesaikan penulisan skripsi ini yang tidak dapat penulis sebutkan satu per satu. Saya menyadari bahwa skripsi ini masih jauh dari sempurna. Oleh karena itu, dengan segala kerendahan hati, saya mengharapkan adanya kritik dan saran yang membangun untuk skripsi ini. Akhir kata, saya berharap agar skripsi ini dapat memberikan manfaat bagi semua pembaca dan semua pihak yang berkepentingan, serta bagi ilmu pengetahuan. Terima kasih.
Penulis
v
DAFTAR ISI
Halaman HALAMAN JUDUL LUAR ............................................................................
i
HALAMAN JUDUL DALAM ........................................................................
ii
HALAMAN PERSETUJUAN HARDCOVER ............................................
iii
ABSTRAK……………………………………………………………………..
iv
PRAKATA…………………………………………………………………….
v
DAFTAR ISI………………………………………………………………….
vi
DAFTAR TABEL…………………………………………………………….
ix
DAFTAR GAMBAR………………………………………………………….
x
DAFTAR LAMPIRAN……………………………………………………….
xi
BAB 1 PENDAHULUAN …………………………………………………...
1
1.1
Latar Belakang…………………………………………………..
1
1.2
Ruang Lingkup Penelitian.………………………………………
3
1.3
Rumusan Masalah…………………………………………….....
3
1.4
Tujuan Penelitian...……………………………………………...
5
1.5
Manfaat Penelitian……...……………………………………….
5
1.6
Metodologi………………………………………………………
5
1.7
Penelitian Yang Relevan ……………………………………….
6
BAB 2 LANDASAN TEORI ………………………………………………
7
2.1
Algoritma Optimal Mismatch …….…………………………..
7
2.2
Algoritma Maximal Shift ………….….….……………………..
12
2.3
Algoritma Quick Search……………………………………….
16
2.4
Hipotesis Statistik..…………………………………………….
20
2.4.1
Pengacuan Hipotesis…………………………………..
20
2.4.2
Uji Perbedaan Nilai Tengah…………………………...
21
2.5
Analisis Algoritma…….….….………………………………..
22
2.6
Siklus Hidup Pengembangan Sistem.........................................
26
vi
BAB 3 METODOLOGI..............................................…………………….
30
3.1
Metodologi Penelitian…………..…………………………….
30
3.2
Desain Penelitian…..………………………………………….
32
3.3
Hipotesis…………………...……………………………….....
32
3.4
Teknik Pengumpulan Data...………………………………….
34
3.5
Teknik Analisis Data.………………………………………...
34
3.6
Perancangan Aplikasi………………………………………...
34
3.7 Perancangan Modul…………………………………………..
35
3.8
3.9
3.7.1
Modul Menu Utama…………………………………..
35
3.7.2
Modul Menu Search…………..………….…………..
35
3.7.3
Modul Menu Database…..…………………………...
36
Form………………….....……………………………………
36
3.8.1
Form Menu Utama……………………………………
36
3.8.2
Form Menu Search……………………………………
37
3.8.3
Form Menu Database…………………………………
38
Cara Kerja Program…………………………………………..
39
3.9.1 Perancangan Diagram Alir…………………………...
39
3.9.2
Perancangan Diagram Transisi……………………….
41
3.10 Spesifikasi Perangkat Keras dan Piranti Lunak……………...
43
BAB 4 ANALISIS DAN PEMBAHASAN…………..…………………… 4.1
4.2
44
A Priori Analysis……………………………………………...
44
4.1.1
Algoritma Maximal Shift……………………………..
45
4.1.2
Algoritma Optimal Mismatch………………………..
52
4.1.3
Algoritma Quick Search……………………………..
57
A Posteriori Testing…………………………………………..
59
4.2.1
Data Hasil Percobaan………………………………...
59
4.2.2
Uji Normalitas Data Hasil Percobaan………………..
63
4.2.3
Uji Perbedaan Nilai Rata-rata Untuk Waktu Pencarian
64
4.2.4
Uji Perbedaan Nilai Rata-rata Untuk Pemakaian Memory
65
vii
4.3
Kelebihan dan Kekurangan Penelitian…………………….....
BAB 5 KESIMPULAN DAN SARAN …………………………………
67
68
5.1
Kesimpulan…………………………………………………..
68
5.2
Saran………………………………………………………….
68
DAFTAR PUSTAKA ………………………………………………………..
69
DAFTAR RIWAYAT HIDUP……………………………………………….
70
LAMPIRAN
viii
DAFTAR TABEL
Halaman
Tabel 2.1.
Frekuensi Karakter Pada Teks...............………………………..
8
Tabel 2.2.
Pola Awal....................................................................................
8
Tabel 2.3.
Pola Setelah Diurutkan………………….……………………...
8
Tabel 2.4.
PreQsbc Pada Algoritma Optimal Mismatch ..………………...
9
Tabel 2.5.
PreAdaptedGs Pada Algoritma Optimal Mismatch ..………….
9
Tabel 2.6.
Nilai MinShift Pada Algoritma Maximal Shift…….........……..
12
Tabel 2.7.
OrderPattern Pada Algoritma Maximal Shift ...………………
13
Tabel 2.8.
PreQsbc Pada Algoritma Maximal Shift ……………………...
13
Tabel 2.9.
PreAdaptedGs Pada Algoritma Maximal Shift ……………….
14
Tabel 2.10
PreQsbc Pada Algoritma Quick Search.....................................
17
Tabel 4.1.
Tabel Hasil Percobaan…………………………………………
60
Tabel 4.2.
Tabel Uji Normalitas…………………………………………..
63
Tabel 4.3
Tabel Uji Kruskal-Wallis untuk Waktu Pencarian.....................
64
Tabel 4.4
Tabel Uji Kruskal-Wallis untuk Pemakaian Memory………….
65
Tabel 4.5
Tabel Perbandingan…………………………………………
66
ix
DAFTAR GAMBAR
Halaman
Gambar 2.1.
Contoh Tiga Bagian Program……….…………………………
23
Gambar 3.1.
Rancangan layar form1………………………………………...
37
Gambar 3.2.
Rancangan layar form2………………………………………...
38
Gambar 3.3.
Rancangan layar form3………………………………………...
39
Gambar 3.4.
Flowchart perancangan form.....................................................
40
Gambar 3.5.
STD Form Menu Utama ……………………………………….
41
Gambar 3.6.
STD form Menu Search………………………………………..
42
Gambar 3.7.
STD form Menu Database………………………...…………...
43
Gambar 4.1.
Bar Perbandingan Rata-rata Hasil Pencarian…………………..
61
Gambar 4.2.
Bar Perbandingan Rata-rata Waktu Pencarian…………………
61
Gambar 4.3.
Bar Perbandingan Rata-rata Pemakaian Memory………………
62
x
DAFTAR LAMPIRAN
Halaman
LAMPIRAN A
LAMPIRAN B
LAMPIRAN C
LISTING PROGRAM…………………………………
L.1
A.1.
Form Utama (form 1) Delphi 7.0…………….
L.1
A.2.
Form Search (form 2) Delphi 7.0…………….
L.2
A.3.
Form Database (form 3) Delphi 7.0………….
L.13
LAMPIRAN DATA HASIL PERCOBAAN……..…….
L.16
B.1.
LAMPIRAN HASIL PERCOBAAN...………
L.16
B.2.
LAMPIRAN WAKTU PENCARIAN……….
L.18
B.3.
LAMPIRAN PEMAKAIAN MEMORY……..
L.26
LANGKAH – LANGKAH PEMAKAIAN PROGRAM
L.35
xi