IMPLEMENTASI ALGORITMA BRUTE FORCE DAN
ALGRITMA KNUTH-MORRIS-PRATT (KMP)
DALAM PENCARIAN WORD SUGGESTION
SKRIPSI
ADLI ABDILLAH NABABAN
131421065
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
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
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,
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.
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
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,
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.
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.
DAFTAR ISI
1.3. Ruang Lingkup Penelitian 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 4
1.6. Metodologi Penelitian 5
1.7. Sistematika Penulisan 6
BAB II. LANDASAN TEORI 7
2.1. Query 7
2.2. Search Engine 7
2.2.1. Jenis-Jenis Mesin Pencari (Search Engine) 8 2.2.2. Cara Kerja Mesin Pencari (Search Engine) 9
2.3. Word Suggestion 10
2.3.1. Cara Kerja Word Suggestion 10
2.4. Algoritma 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
3.2.1. Persyaratan Fungsional 22 3.2.2. Persyaratan Non-Fungsioanal 22
3.3. Pemodelan Sistem 23
3.3.1. Use-Case Diagram 23
3.3.2. Activity Diagram 26
3.3.3. Sequence Diagram 27
3.4. Analisis Data 29
3.5.2. Flowchart Pencarian Word Suggestion 31 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) 37 Pada PencarianWord Suggestion
3.7.2. Flowchart Algoritma Knuth-Morris-Pratt (KMP) 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 44 3.10.3. Rancangan Halaman Hasil Iterasi Saran Knut-Morris-Pratt 45 3.10.4. Rancangan Halaman Tambah Kata 46 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
4.2.2. Halaman Hasil Iterasi Saran Brute Force 52 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 86
DAFTAR TABEL
halaman
Tabel 3.1. Tabel Use Case Proses Pencarian Word Suggestion 25 Tabel 3.2 Keterangan Bagian-Bagian Rancangan Halaman Utama 27 Tabel 3.3. Sampel Dara Word Suggestion 29 Tabel 3.4. Simulasi Pencarian Word Suggestion 34
Tabel 3.5. Rancangan Database 42
DAFTAR GAMBAR
halaman
Gambar 2.1. Ilustrasi Tahap Pencarian Algoritma Brute Force 14 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-Pratt 37 Gambar 3.9. Flowchart Cara Kerja Algoritma KMP Pada Pencarian 39
Word Suggestion
Gambar 3.10. Flowchart System 41
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