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 Suggestion

  67 ix x

  

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 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-4

  76 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