IMPLEMENTASI ALGORITMA BRUTE FORCE DAN ALGRITMA KNUTH-MORRIS-PRATT (KMP) DALAM PENCARIAN WORD SUGGESTION SKRIPSI ADLI ABDILLAH NABABAN 131421065
IMPLEMENTASI ALGORITMA BRUTE FORCE DAN ALGORITMA KNUTH-MORRIS-PRATT (KMP)
DALAM PENCARIAN WORD SUGGESTION SKRIPSI Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer Oleh :
ADLI ABDILLAH NABABAN 131421065
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2015 ii
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA BRUTE FORCE DAN ALGORITMA KNUTH-MORRIS-PRATT (KMP) DALAM PENCARIAN WORD SUGGESTION
Kategori : SKRIPSI Nama : ADLI ABDILLAH NABABAN Nomor Induk Mahasiswa : 131421065 Program Studi : EKSTENSI S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA Diluluskan di
Medan, 27 Agustus 2015 Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Dian Rachmawati, S.Si, M.Kom Drs. Poltak Sihombing, M.Kom NIP. 19830723 200912 2 004 NIP. 19620317 199103 1 001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001 iii
PERNYATAAN
IMPLEMENTASI ALGORITMA BRUTE FORCE DAN
ALGORITMA KNUTH-MORRIS PRATT (KMP)
DALAM PENCARIAN WORD SUGGESTION
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 27 Agustus 2015 Adli Abdillah Nababan 131421065
PENGHARGAAN
Alhamdulillah segala puji dan syukur atas nikmat yang luas kepada Allah Yang Maha Esa sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih Penulis sampaikan kepada semua pihak yang telah membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa orangtua penulis yang sangat mengasihi dan menyayangi penulis dan memberi dukungan tiada henti. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada: 1.
Bapak Prof. Subhilhar, Ph.D selaku Pejabat Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan sebagai Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skrisi ini .
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
5. Bapak Dr. Poltak Sihombing, M.Kom selaku Dosen Pembimbing I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Ibu Dian Rachmawati, S.Si, M.Kom selaku Dosen Pembimbing II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. iv
7. Bapak Amer Sharif, S.Si, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
8. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
9. Keluarga besar penulis, Orang tua yang senantiasa mendoakan dan mendukung serta abang dan adik tersayang Arif Hamied Nababan, Alwi Ihsan Nababan.
10. Teman-teman seperjuangan mahasiswa Ekstensi S1-Ilmu Komputer stambuk 2013 teruntuk Ryan Dhika Priyatna, Teuku Ighfar Hajar, Ade Rizka, Satrio Wibowo, teman-teman D3 Mipa teruntuk Padlian dalam diskusi pembuatan program. Dan kakak-kakak senior yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.
11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini. Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.
Medan, 27 Agustus 2015 Penulis, ( Adli Abdillah Nababan ) v
IMPLEMENTASI ALGORITMA BRUTE FORCE DAN
ALGORITMA KNUTH-MORRIS PRATT (KMP)
DALAM PENCARIAN WORD SUGGESTION
ABSTRAK
Mesin Pencarian (Search Engine) didalam sistem komputer memudahkan pengguna komputer dalam mencari berbagai informasi. Untuk memudahkan penggunanya,
Search Engine menambahkan fitur pencari saran hasil terdekat dengan pencarian yaitu
fitur Word Suggestion, dimana dalam perancangannya membutuhkan algoritma pencocokan string (String Matching) yang dapat dijadikan alternatif dalam menyelesaikan permasalahan tersebut. Algoritma Brute Force, dan algoritma Knuth-
Morris-Pratt (KMP) merupakan algoritma string matching yang memiliki cara kerja
berbeda, sehingga jika diimplementasikan akan membuat kecepatan dalam pencariannya berbeda dan kecepatan pencarian informasi juga berbeda pula. Sehingga dapat dilihat algoritma mana diantara kedua algoritma tersebut yang paling tepat digunakan dalam perancangan Word Suggestion. Dalam hasil penelitian ini didapat bahwa Algoritma Knuth-Morris-Pratt (KMP) menyimpan sebuah informasi yang digunakan untuk melakukan jumlah pergeseran, sehingga algoritma ini melakukan pergeseran lebih jauh (tidak hanya bergeser satu karakter seperti dalam Brute Force). Dengan ini penggunaan algoritma Knuth-Morris-Pratt (KMP) dapat mempersingkat waktu dengan hasil rata-rata runtime 0,42717 ms dibandingkan dengan algoritma
Brute Force yang memiliki hasil rata-rata runtime 0,44683 ms dalam pencocokan
string -nya.Kata-kata Kunci : Brute Force, Knuth-Morris-Pratt, String Matching, Word Suggestion, Search Engine. vi
IMPLEMENTATION OF BRUTE FORCE AND
KNUTH-MORRIS-PRATT(KMP) ALGORITHMS
IN THE WORD SEARCH SUGGESTION
ABSTRACT
Search Engines in the computer system facilitates computer users in finding information. To facilitate users, Search Engine add a search suggestion feature closest to the search results that is Word Suggestion feature, which in its design requires a string matching algorithm which can be used as an alternative in resolving these problems. Brute Force and the Knuth-Morris-Pratt (KMP) algorithms are string matching algorithm which has a different way of working, so if implemented would make a different speed in search and information retrieval speed is also different. So the algorithm can be seen which of the two algorithms are most appropriately used in the design of Word Suggestion. In the results of this study found that the Knuth- Morris-Pratt (KMP) algorithm stores an information which is used to perform the number of shifts, so the algorithm is to shift even further (not just shifted one character as the Brute Force algorithm). With the use of the Knuth-Morris-Pratt (KMP) algorithm can shorten the time with an average runtime 0.42717 (ms) compared with Brute Force algorithm which has an average runtime 0.44683 (ms) in its string matching. Keywords: Brute Force, Knuth-Morris-Pratt, String Matching, Word Suggestion, Search Engine. halaman Persetujuan ii
Pernyataaan iii
3.2.1. Persyaratan Fungsional
11
2.4.1. Algoritma Pencocokan String (String Matching)
11
2.4.2. Klasifikasi Algoritma Pencocokan String (String Matching)
11
2.4.3. Algoritma Brute Force
12
2.4.4. Algoritma Knuth-Morris-Pratt
16 BAB III. ANALISIS DAN PERANCANGAN SISTEM
21
3.1. Analisis Sistem
21
3.2. Analisis Persyaratan
22
22
10
3.3.3. Sequence Diagram
3.5.1. Cara Kerja Pencarian Word Suggestion
29
3.5. Analisis Pencarian Word Suggestion
29
3.4. Analisis Data
27
26
3.2.2. Persyaratan Non-Fungsioanal
3.3.2. Activity Diagram
23
3.3.1. Use-Case Diagram
23
3.3. Pemodelan Sistem
22
2.4. Algoritma
2.3.1. Cara Kerja Word Suggestion
Penghargaan iv
3
Abstrak v
Abstract vi
Daftar isi vii
Daftar tabel ix
Daftar gambar x
BAB I. PENDAHULUAN
1
1.1. Latar Belakang
1
1.2. Rumusan Masalah
3
1.3. Ruang Lingkup Penelitian
3
1.4. Tujuan Penelitian
1.5. Manfaat Penelitian
10
2.2. Search Engine
2.3. Word Suggestion
9
2.2.2. Cara Kerja Mesin Pencari (Search Engine)
8
2.2.1. Jenis-Jenis Mesin Pencari (Search Engine)
7
7
4
2.1. Query
7
6 BAB II. LANDASAN TEORI
1.7. Sistematika Penulisan
5
1.6. Metodologi Penelitian
30 vii
3.5.2. Flowchart Pencarian Word Suggestion
4.2.2. Halaman Hasil Iterasi Saran Brute Force
3.10.5. Rancangan Halaman Tambah Data
47
3.10.6. Rancangan Halaman Tentang
48 BAB IV. IMPLEMENTASI DAN PENGUJIAN
50
4.1. Implementasi
50
4.1.1. Spesifikasi Perangkat Keras dan Perangkat Lunak
50
4.2. Antarmuka Pengguna (User Interface)
51
4.2.1. Halaman Awal User
51
52
3.10.4. Rancangan Halaman Tambah Kata
4.2.3. Halaman Hasil Iterasi Saran KMP
52
4.2.4. Halaman Tambah Kata
53
4.2.5. Halaman Tambah Data
54
4.2.6. Halaman Tentang
54
4.3. Pengujian
55 BAB V. KESIMPULAN DAN SARAN
5.1. Kesimpulan
85
5.2. Saran
46
3.10.3. Rancangan Halaman Hasil Iterasi Saran Knut-Morris-Pratt 45
31
37 Pada PencarianWord Suggestion
3.5.3. Hasil Analisis Word Suggestion
32
3.6. Analisis Algoritma Brute Force Pada Pencarian Word Suggestion
32
3.6.1. Cara Kerja Algoritma Brute Pada Pencarian
33 Word Suggestion
3.6.2. Flowchart Algoritma Brute Pada Pencarian
35 Word Suggestion
3.6.3. Hasil Analisis Algoritma Brute Pada Pencarian
36 Word Suggestion
3.7. Analisis Algoritma Knuth-Morris-Pratt (KMP) Pada Pencarian
36 Word Suggestion
3.7.1. Cara Kerja Algoritma Knuth-Morris-Pratt (KMP)
3.7.2. Flowchart Algoritma Knuth-Morris-Pratt (KMP)
44
38 Pada Pencarian Word Suggestion
3.7.3. Hasil Analisis Algoritma Brute Pada Pencarian
40 Word Suggestion
3.8. Perancangan Sistem
40
3.8.1. Flowchart Sistem
41
3.9. Perancangan Database (Basis Data)
42
3.10. Perancangan Antarmuka (Interface)
42
3.10.1. Rancangan Halaman Awal User
42
3.10.2. Rancangan Halaman Hasil Iterasi Saran Brute Force
86 DAFTAR PUSTAKA
DAFTAR TABEL
47 Tabel 3.10. Keterangan Rancangan Tambah Data
78 Tabel 4.7. Hasil Rata-Rata Runtime Sampel Word Suggestion
73 Tabel 4.6. Sampel 5 Word Suggestion
67 Tabel 4.5. Sampel 4 Word Suggestion
63 Tabel 4.4. Sampel 3 Word Suggestion
56 Tabel 4.3. Sampel 2 Word Suggestion
55 Tabel 4.2. Sampel 1 Word Suggestion
49 Tabel 4.1. Sampel Data Word Suggestion
48 Tabel 3.11. Keterangan Rancangan Halaman Tentang
46 Tabel 3.9. Keterangan Rancangan Halaman Tambah Kata
halaman
44 Tabel 3.8. Keterangan Rancangan Halaman Hasil Iterasi Saran KMP
43 Tabel 3.7. Keterangan Rancangan Halaman Hasil Iterasi Saran Brute Force
42 Tabel 3.6. Keterangan Rancangan Halaman Awal User
34 Tabel 3.5. Rancangan Database
29 Tabel 3.4. Simulasi Pencarian Word Suggestion
27 Tabel 3.3. Sampel Dara Word Suggestion
25 Tabel 3.2 Keterangan Bagian-Bagian Rancangan Halaman Utama
Tabel 3.1. Tabel Use Case Proses Pencarian Word Suggestion67 ix x
DAFTAR GAMBAR
halaman
Gambar 2.1. Ilustrasi Tahap Pencarian Algoritma Brute Force14 Gambar 2.2. Ilustrasi Tahap Pencarian Algoritma Brute Force (Lanjutan)
15 Gambar 2.3. Ilustrasi Tahap Pencarian Algoritma KMP
18 Gambar 2.4. Ilustrasi Tahap Pencarian Algoritma KMP (Lanjutan)
19 Gambar 3.1. Diagram Ishikawa Untuk Analisis Masalah
21 Gambar 3.2. Use Case Diagram Sistem
24 Gambar 3.3. Activity Diagram Sistem
26 Gambar 3.4. Squence Diagram Sistem
28 Gambar 3.5. Flowchart Cara Kerja Word Suggestion
31 Gambar 3.6. Pergeseran Algoritma Brute Force
33 Gambar 3.7. Flowchart Cara Kerja Algoritma Brute Force Pada Pencarian
35 Word Suggestion
Gambar 3.8. Pergeseran Algoritma Knuth-Morris-Pratt37 Gambar 3.9. Flowchart Cara Kerja Algoritma KMP Pada Pencarian
39 Word Suggestion
Gambar 3.10. Flowchart System41 Gambar 3.11. Rancangan Halaman Awal User
43 Gambar 3.12. Rancangan Halaman Iterasi Saran Brute Force
44 Gambar 3.13. Rancangan Halaman Iterasi Saran KMP
45 Gambar 3.14. Rancangan Halaman Tambah Kata
46 Gambar 3.15. Rancangan Tambah Data
47 Gambar 3.16. Rancangan Halaman Tentang
48 Gambar 4.1. Halaman Awal User
51 Gambar 4.2. Halaman Hasil Iterasi Saran Brute Force
52 Gambar 4.3. Halaman Hasil Iterasi Knuth-Morris-Pratt
53 Gambar 4.4. Halaman Tambah Kata
53 Gambar 4.5. Halaman Tambah Data
54 Gambar 4.6. Halaman Tentang
54 Gambar 4.7. Data Informasi Sampel 1 Pencarian Huruf Ke-1
56 Gambar 4.8. Data Informasi Sampel 1 Pencarian Huruf Ke-2
57 Gambar 4.9. Data Informasi Sampel 1 Pencarian Huruf Ke-3
57 Gambar 4.10. Data Informasi Sampel 1 Pencarian Huruf Ke-4
58 Gambar 4.11. Data Informasi Sampel 2 Pencarian Huruf Ke-1
63 Gambar 4.12. Data Informasi Sampel 2 Pencarian Huruf Ke-2
64 Gambar 4.13. Data Informasi Sampel 2 Pencarian Huruf Ke-3
64 Gambar 4.14. Data Informasi Sampel 3 Pencarian Huruf Ke-1
67 Gambar 4.15. Data Informasi Sampel 3 Pencarian Huruf Ke-2
68 Gambar 4.16. Data Informasi Sampel 3 Pencarian Huruf Ke-3
69 Gambar 4.16. Data Informasi Sampel 3 Pencarian Huruf Ke-4
69 Gambar 4.17. Data Informasi Sampel 4 Pencarian Huruf Ke-1
74 Gambar 4.18. Data Informasi Sampel 4 Pencarian Huruf Ke-2
74 Gambar 4.19. Data Informasi Sampel 4 Pencarian Huruf Ke-3
75
Gambar 4.20. Data Informasi Sampel 4 Pencarian Huruf Ke-476 Gambar 4.21. Data Informasi Sampel 5 Pencarian Huruf Ke-1
79 Gambar 4.22. Data Informasi Sampel 5 Pencarian Huruf Ke-2
79 Gambar 4.23. Data Informasi Sampel 5 Pencarian Huruf Ke-3
80 Gambar 4.24. Grafik perbandingan Hasil Runtime Word Suggestion
83