Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion

(1)

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

MEDAN

2015


(2)

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


(3)

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


(4)

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


(5)

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.


(6)

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,


(7)

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.


(8)

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.


(9)

DAFTAR ISI

halaman

Persetujuan ii

Pernyataaan iii

Penghargaan iv

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 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. Analisis Pencarian Word Suggestion 29 3.5.1. Cara Kerja Pencarian Word Suggestion 30


(10)

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


(11)

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

Tabel 3.6. Keterangan Rancangan Halaman Awal User 43 Tabel 3.7. Keterangan Rancangan Halaman Hasil Iterasi Saran Brute Force 44 Tabel 3.8. Keterangan Rancangan Halaman Hasil Iterasi Saran KMP 46 Tabel 3.9. Keterangan Rancangan Halaman Tambah Kata 47 Tabel 3.10. Keterangan Rancangan Tambah Data 48 Tabel 3.11. Keterangan Rancangan Halaman Tentang 49

Tabel 4.1. Sampel Data Word Suggestion 55

Tabel 4.2. Sampel 1 Word Suggestion 56

Tabel 4.3. Sampel 2 Word Suggestion 63

Tabel 4.4. Sampel 3 Word Suggestion 67

Tabel 4.5. Sampel 4 Word Suggestion 73

Tabel 4.6. Sampel 5 Word Suggestion 78


(12)

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


(13)

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


(14)

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.


(15)

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.


(16)

BAB I

PENDAHULUAN

1.1. Latar Belakang

Perkembangan dunia IT (Information Technology) dengan hadirnya mesin pencarian (Search Engine) di dalam sistem komputer yang merupakan salah satu fasilitas internet melalui browser telah memudahkan pengguna komputer untuk mencari informasi yang diinginkan pada masa sekarang ini, seperti pada situs-situs terkenal Google, Yahoo dan Youtube untuk mencari situs-situs yang isinya berupa berita, artikel, gambar, video dan lainnya serta pada berbagai situs jejaring sosial dimana pengguna mencari informasi tentang interaksi dari antar penggunanya. Atau dapat dikatakan suatu program yang dirancang untuk membantu pengguna menemukan file-file yang disimpan dalam komputer.

Beberapa Search Engine tersebut, untuk memudahkan penggunanya melakukan pencarian yaitu dengan menambahkan fitur Word Suggestion (Saran Kata) yaitu fitur pencarian sugesti hasil terdekat pada kata yang ingin kita cari (Januardi, A. 2013)

Dalam perancangan Word Suggestion ini membutuhkan algoritma yaitu algoritma pencocokan string (String Matching) dapat dijadikan alternatif dalam menyelesaikan permasalahan tersebut. Terdapat banyak algoritma string matching

yang telah dikembangkan diantaranya seperti Brute Force, Knuth-Morris-Pratt,

Boyer-Moore, Karp-Rabin dan lain sebagainya (Lubis, M. R. 2014).

Beberapa penelitian yang berkaitan dengan masalah ini diantaranya yaitu penelitian yang pernah dilakukan oleh Januardi, A. (2013). Dalam melakukan pencarian Word Suggestion, Algoritma Brute Force dan Algoritma Boyer Moore dapat diterapkan dengan baik. Pada penerapannya algoritma Brute Force melakukan pencocokan karakter dengan melakukan pemeriksaan terhadap setiap karakter yang


(17)

dimulai dari sebelah kiri ke sebelah kanan, sedangkan algoritma Boyer Moore

melakukan pencocokan karakter dengan melakukan pemeriksaan karakter dari sebelah kanan. Hal ini membuktikan bahwa dalam perancangannya Word Suggestion dapat dibuat menggunakan algoritma String Matching baik itu yang mencari karakter dari sebelah kiri dan dari sebelah kanan. Dan hasil dari penelitiannya tersebut di peroleh bahwa Algoritma Boyer Moore yang tercepat dalam melakukan pencarian Word Suggestion, hal ini ditunjukkan dengan kecilnya nilai yang didapat oleh algoritma tersebut sehingga jumlah rata-rata iterasinya kecil.

Penelitian berikutnya adalah yang berkaitan dengan penelitian ini membuat aplikasi pencarian string Knuth-Morris-Pratt dalam permainan Word Search Oleh Ekaputri, G.H. , Sinaga, .Y.A.(2006) dimana hasil penelitian menggunakan Algoritma

Knuth-Morris-Pratt adalah algoritma 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 KMP dapat mempersingkat waktu pencocokan

string.

Dalam penelitian ini, penulis menggunakan dua variasi dari algoritma string matching yaitu algoritma Brute Force dan algoritma Knuth-Morris-Pratt sehingga jika diterapkan dalam pencarian Word Suggestion akan membuat kecepatan dalam pencariannya berbeda, dan kecepatan pencarian informasi juga menjadi berbeda pula.

Masalah yang akan timbul dalam penelitian ini adalah manakah algoritma yang paling cepat dalam pencarian Word Suggestion, untuk itu perlu adanya sebuah implementasi algoritma string matching ini dalam pencarian Word Suggestion.


(18)

1.2. Rumusan Masalah

Adapun Rumusan Masalah pada Penelitian ini adalah bagaimana Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) melakukan pencarian dalam Word Suggestion?

1.3. Ruang Lingkup Penelitian

Untuk mengurangi ruang lingkup terjemahan yang terlalu besar, maka batasan masalah dalam penelitian ini, yaitu:

1. Peneliti hanya menerapkan dua algoritma yaitu, algoritma Brute Force dengan algoritma Knuth-Morris-Pratt pada Word Suggestion dalam Search Engine.

2. Kata yang digunakan berdasarkan kamus istilah komputer 1715 kata dan dapat di tambah.

3. Untuk analisis perbandingan penelitian hanya mengkaji pada sisi running time, jumlah iterasi dan jumlah huruf pada pattern dari setiap proses.

4. Perancangan aplikasi untuk implementasi algoritma menggunakan pemrograman PHP (Hypertext Prepocessor) dan Mysql sebagai Database Management System (DBMS)

1.4. Tujuan Penelitian

Adapun tujuan yang dapat diperoleh dari penelitian ini adalah membuat aplikasi untuk mensimulasikan algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP)

dalam pencarian Word Suggestion agar dapat membantu pengguna ketika mengetikkan kata atau informasi yang ingin dicari.


(19)

1.5. Manfaat Penelitian

Penelitian ini diharapkan dapat memberikan manfaat bagi peneliti, pembaca dan para peneliti lainnya, yaitu:

1. Untuk dapat mengetahui perbedaaan kecepatan antara Algoritma Brute Force

dan Algoritma Knuth-Morris-Pratt (KMP) dalam pencarian Word Suggestion.

2. Dapat dijadikan sebagai acuan dalam memilih antara Algoritma Brute Force

atau Algoritma Knuth-Morris-Pratt (KMP) untuk dijadikan sebagai algoritma dalam pencarian Word Suggestion

3. Untuk menghasilkan aplikasi yang dapat mengimplementasikan algoritma

Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) dalam pencarian Word Suggestion.


(20)

1.6. Metodologi Penelitian

Metode yang digunakan dalam penulisan skripsi ini meliputi lima bagian pokok yaitu Kepustakaan, Analisis dan Perancangan Sistem, Implementasi Sistem, Pengujian Sistem dan Dokumentasi.

1. Kepustakaan

a. Library Research, yaitu membaca dan mempelajari buku-buku sumber literatur yang berhubungan dengan Algoritma Brute Force, Algoritma

Knuth-Morris-Pratt,Word Suggestion, dan Running Time.

b. Internet Browsing, yaitu melakukan pencarian sumber referensi pada situs-situs dan dokumen-dokumen elektronik (e-book/e-journal) yang berkaitan dengan pembahasan Algoritma Brute Force, Algoritma Knuth-Morris-Pratt, Word Suggestion, dan Running Time.

2. Analisis dan Perancangan Sistem

Pada tahap ini hasil analisis akan menjadi dasar perancangan aplikasi sistem operasi pada komputer. Rancangan sistem dibuat menggunakan Unified Modeling Language (UML) dalam bentuk use case diagram, activity diagram, dan sequence diagram disertai pembuatan flowchart dan design interface.

3. Implementasi Sistem

Mengimplementasikan sistem sesuai hasil analisis dan perancangan ke dalam program komputer menggunakan bahasa pemrograman PHP (Hypertext Prepocessor) dan Mysql sebagai Database Management System (DBMS).

4. Pengujian Sistem

Pada tahap ini dilakukan pengujian sistem, apakah implementasi telah sesuai dengan tujuan penelitian.

5. Dokumentasi

Metode ini dilaksanakan dengan membuat dokumentasi dalam bentuk laporan tugas akhir.


(21)

1.7. Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama sebagai berikut:

BAB I PENDAHULUAN

Bab ini berisi mengenai latar belakang pemilihan judul skripsi “Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt dalam Pencarian

Word Suggestion”, rumusan masalah, batasan masalah, tujuan penelitian,

manfaat penelitian, metodologi penelitian, dan sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini berisi tentang teori-teori yang berkaitan dengan penelitian, antara lain definisi Algortima, Algoritma String Matching, Algoritma Brute Force, Algoritma Knuth-Morris-Pratt dan Word Suggestion.

BAB III ANALISIS DAN PERANCANGAN

Bab ini berisi tentang uraian analisis mengenai proses kerja dari Algoritma

Brute Force dan Algoritma Knuth-Morris-Pratt dalam pencarian Word Suggestion yang terdiri dari flowchart ,Unified Modeling Language (UML) dan perancangan interface aplikasi.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi implementasi sistem dan coding berdasarkan hasil analisis dan perancangan. Pengujian dilakukan untuk membuktikan perangkat lunak berjalan sesuai dengan spesifikasi yang telah ditentukan pada tahap analisis.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi mengenai kesimpulan dari keseluruhan uraian dari bab-bab sebelumnya dan saran-saran dari hasil yang telah diperoleh yang kedepannya diharapkan dapat bermanfaat dalam pengembangan selanjutnya.


(22)

BAB II

LANDASAN TEORI

1.8. Query

Query adalah satu atau beberapa kata atau frase / kalimat yang di masukan / di ketikan oleh pengguna saat melakukan pencarian pada search engine (google atau search engine lainnya).

1.9. Search Engine

Mesin pencari (search engine) adalah salah satu program komputer yang di rancang khusus untuk membantu seseorang menemukan file-file yang disimpan dalam komputer, misalnya dalam sebuah web server umum di web (www) atau komputer sendiri (Supriyadi, Eko. 2009). Mesin pencari memungkinkan kita untuk meminta

content media dengan kriteria yang spesifik ( biasanya berisikan frase atau kata yang kita inginkan) dan memperoleh daftar file yang memenuhi kriteria tersebut.

Mesin pencari biasanya menggunakan indeks ( yang sudah di buat sebelumnya dan di mutakhirkan secara teratur ) untuk mencari file setelah pengguna memasukan kriteria pencarian. Mesin pencari yang akan saya bahas adalah mesin pencari khusus yang di gunakan untuk mencari informasi dan berbagai file di Internet, sehingga mesin pencari sangat berguna bagi para penggunanya untuk mencari berbagai bahan referensi atau lainnya.

Untuk memudahkan pencarian di database yang begitu besar, mesin pencari menggunakan indeks untuk memilah-milah informasi yang ada di database. Sedangkan untuk memudahkan dan mempercepat pencarian, mesin pencari mempunyai metode pencarian tertentu yang sering di sebut algoritma pencarian,


(23)

kecepatan dan ketepatan pencarian sebuah mesin pencarian tergantung kepada cara pengindeksan dan algoritma pencarian yang digunakan.

Adapun struktur umum sebuah mesin pencari adalah sebagai berikut : 1. Kotak teks pencari

Kotak ini digunakan sebagai tempat memasukan kata kunci yang akan dijadikan acuan dilakukan pencarian.

2. Tombol pencari

Tombol ini yang akan menjalankan perintah pencarian.

2.2.1. Jenis – Jenis Mesin Pencari (Search Engine)

Berdasarkan cara mengumpulkan data halaman-halaman web, mesin pencari dapat di kelompokkan menjadi 4 kategori yaitu :

1. Human Organized Search Engine

Mesin pencari yang di kelola sepenuhnya oleh tangan manusia. Mesin pencari ini menggunakan metode dengan memilah-milih informasi yang relevan dan dikelompokan sedemikian rupa sehingga lebih bermakna dan bermanfaaat bagi penggunannya. Situs ini dalam prakteknya memperkerjakan para pakar dalam bidang-bidang tertentu, kemudian para pakar tersebut dapat mengkelompokan situs-situs tertentu sesuai dengan bidangnnya atau kategori situs itu sendiri.

2. Computer Created Search Engine

Search engine kategori ini banyak memiliki kelebihan karena banyak menyajikan informasi walaupun kadang-kadang ada beberapa informasi yang tida relevan tidak seperti yang kita ingin kan. Search engine ini telah menggunakan software laba-laba atau spider software yang berfungsi menyusup pada situs-situs tertentu, kemudian mengunpulkan data serta mengelompokan dengan sedikit bantuan tangan manusia.


(24)

3. Hybrid Seacrh Engine

Merupakan gabungan antara tangan manusia dengan komputer, sehingga menghasilkan hasil pencarian yang relatif akurat. Peran manusia dalam hal ini adalah sebagai penelaah dalam proses pengkoleksian database halaman web. Sebenarnya tipe ini lah yanag paling mudah pembuatannya karena dapat di desain sesuai dengan keinginan kita.

4. MetaCrawler / Meta Search

Merupakan perantara dari mesin pencari yang sebenarnya. Mesin ini hanya akan mengirimkan permintaan pencarian ke berbagai mesin pencari serta menampilkan hasilnya satu di layer browser sehingga akan menampilkan banyak sekali hasil dari berbagai mesin pencari yang ada.

2.2.2. Cara Kerja Mesin Pencari (Search Engine)

Mesin pencari web bekerja dengan cara menyimpan informasi tertang banyak halaman

web, yang diambil secara langsung dari www. Halaman ini di ambil dengan web crawler-browser, web yang otomatis mengikuti setiap pranala yang di lihatnya. Isi setiap halaman lalu dianalisis untuk menentukan cara mengindeksnya (misalnya kata-kata di ambil dari judul, subjudul, atau field khusus yang di sebut meta tag ). Data tentang halaman web disimpan dalam sebuah database indeks untuk di gunakan dalam pencarian selanjutnya. Sebagian mesin pencari seperti Google, menyimpan seluruh atau sebagian halaman sumber ( yang di sebut cache) maupun informasi tentang halaman web itu sendiri. Ketika seorang pengguna menggunakan mesin pencari dan memasukin query, biasanya dengan memasukan kata kunci, mesin mencari akan meng-indesk dan memberikan daftar halaman web yang paling sesuai dengan kriterianya. Daftar ini biasanya di sertai ringkasan singkat menggenai judul dokumen dan terkadang sebagian teks dari hasil pencarian yang kita cari.


(25)

2.3. Word Suggestion

Word suggestion merupakan kata berbahasa inggris yang berarti “Sugesti Kata”.

Jika kita uraikan menurut Kamus Umum Bahasa Indonesia, “Kata” berarti unsur bahasa yg diucapkan atau dituliskan yg merupakan perwujudan kesatuan perasaan dan pikiran yg dapat digunakan dalam berbahasa, sedangkan “Sugesti” adalah pendapat yg dikemukakan (untuk dipertimbangkan); anjuran; saran; (2) pengaruh yg dapat menggerakkan hati orang ; dorongan. (KBBI Online, 2015)

Word suggestion merupakan fungsi dari Aplikasi Auto Text yang digunakan untuk memberikan saran terhadap kata yang akan diketik atau dicari. Dengan mengetikkan beberapa huruf atau seluruh huruf maka sistem akan mencari ke dalam

database apakah ada sebuah kata yang memenuhi kriteria dari huruf-huruf yang dimasukkan. Jika setelah dicek dan ternyata di dalam database ada, maka akan muncul list yang menunjukkan sugesti kata yang ada. Pengecekan itu sendiri berdasarkan dari kecocokan huruf dari kata yang dimasukkan user dengan list kata-kata yang ada di database (Pradhana, F. 2012)

2.3.1. Cara Kerja Word Suggestion

Menurut Fandi Pradhana (2012) cara kerja word suggestion dalam sistem pencarian adalah sebagai berikut:

a. User menentukan informasi yang akan dicari, Misalnya informasi yang akan dicari User adalah “Play” dalam sebuah database kamus, maka setiap User

melakukan input, word suggestion mencocokan teks input dengan database

informasi yang akan dicari.

b. Jika User meng-inputkarakter “P”, maka word suggestion akan menampilkan beberapa data yang cocok dengan database kamus, misalnya ”Play”, “Pool”,

Pluto”, dan “Plan”. Biasanya word suggestion membatasi jumlah opsi yang akan ditampilkan.

c. Dengan adanya word suggestion User bisa dengan mudah menemukan kata “Play” dengan cepat. (Pradhana, F. 2012)


(26)

2.4. Algoritma

Istilah algoritma digunakan dalam ilmu komputer untuk menggambarkan metode pemecahan masalah yang terbatas, deterministik, dan efektif yang cocok untuk implementasi sebagai program komputer (Sedgewick et al, 2011).

Algoritma yang akan di implementasikan pada penelitian ini adalah algoritma

String Matching yaitu algoritma Brute Force dan algoritma Knuth-Morris-Pratt (KMP) . Hal ini dikarenakan menurut banyak peneliti komputer menganggap bahwa

String matching adalah pencarian sebuah pattern pada sebuah teks. Menurut Munir (2004) algoritma string matching adalah algoritma yang ditujukan untuk melakukan pencocokan sub string pada string besar.

2.4.1. Algoritma Pencocokan String (String Matching)

Algoritma pencocokan string merupakan komponen dasar dalam pengimplementasian berbagai perangkat lunak praktis yang sudah ada. String matching digunakan untuk menemukan satu atau lebih string yang disebut dengan pattern (string yang akan dicocokkan ke dalam text) dalam string yang disebut dengan text (string yang

di-input) (Charras & Lecroq, 2004).

Menurut Singla dan Garg (2012), ada dua teknik utama dalam algoritma string matching yaitu exact matching dimana hasil pencocokannya mengandung string yang sama persis dengan string yang di-input, contohnya pada algoritma Needleman Wunsch, algoritma Smith Waterman, algoritma Knuth-Morris-Pratt, algoritma Boyer-Moore-Horspool dan approximate matching dimana hasil pencocokannya mengandung string yang tidak harus persis dengan string yang di-input, contohnya pada algoritma Fuzzy String Searching, algoritma Rabin Karp, algoritma Brute Force.

2.4.2. Klasifikasi Algoritma Pencocokan String (String Matching)

Menurut Christian Charras dan Thierry Lecroq (2004:12-14) yang diterjemahkan oleh Serupa Creative Commons yang dilansir dari situs Wikipedia (2013) tentang Algoritma Pencocokan String, Algoritma pencocokkan string dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya, yaitu :

a. Dari arah yang paling alami, dari kiri ke kanan, yang merupakan arah untuk membaca, algoritma yang termasuk kategori ini adalah:


(27)

1. Algoritma Brute Force

2. Algoritma dari Morris dan Pratt, yang kemudian dikembangkan oleh Knuth, Morris, dan Pratt.

b. Dari kanan ke kiri, arah yang biasanya menghasilkan hasil terbaik secara praktikal, contohnya adalah Algoritma dari Boyer dan Moore, yang kemudian banyak dikembangkan, menjadi algoritma turbo Boyer Moore, Algoritma

TunedBoyer Moore, dan algoritma Zhu-Takaoka.

c. Dan kategori terakhir, dari arah yang ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik secara teoritis, algoritma yang termasuk kategori yaitu Algoritma Colussi dan Algoritma Crochemore-Perrin.

2.4.3. Algoritma Brute Force

Charras dan Lecroq (2004) meneliti bahwa algoritma Brute Force digunakan dalam pengecekan pada setiap kedudukan dalam text dari karakter pertama hingga karakter akhir. Seusai pengecekan karakter pertama terjadi, maka proses shift dilakukan dengan berpindah tepat satu posisi ke arah kanan (berpindah ke karakter kedua, ketiga dan seterusnya). Algoritma Brute Force tidak memerlukan tahap praproses. Selama tahap pencarian, pembadingan karakter pada text dapat selesai pada posisi manapun.

Berikut merupakan coding algoritma Brute Force dalam bahasa C. void BF (char *x, int m, char *y, int n) {

int i, j;

/* Searching */

for (j = 0; j <= n – m) {

for (i = 0; i < m && x[i] == y[i + j]; ++i); if (i >= m)

OUTPUT(j); }


(28)

Pada algoritma Brute Force, diberikan y sebagai text dan x sebagai pattern. Maka dilakukanlah proses pencocokan pattern pada text-nya. Untuk tahap pencocokan pertama, dilakukan pencocokan terhadap text sepanjang karakter dari pattern. Apabila

match karakter pertama pada text dan karakter pertama pada pattern, maka dimulailah proses pencocokan pertama. Pada pencocokan pertama ini, dilakukanlah pencocokan pada karakter kedua untuk masing-masing text dan pattern. Apabila ditemukan match

pada pencocokan ini, maka lakukanlah pencocokan untuk karakter-karakter selanjutnya. Jika mismatch terjadi, maka proses berlanjut pada tahap pencocokan kedua.

Tahap pencocokan kedua dilakukan dengan berpindah satu karakter ke arah kanan dari tahap pencocokan pertama. Dilakukanlah pencocokan karakter kedua dari

text dan karakter pertama pada pattern awal pada tahap sebelumnya. Jika ditemukan match pada pencocokan ini, maka dimulailah proses pencocokan kedua. Selanjutnya lakukan pencocokan pada karakter ketiga pada text dan karakter kedua pada pattern. Apabila match, lanjutkan ke karakter-karakter berikutnya dan apabila mismatch, lakukan tahap pencocokan ketiga. Untuk memulai tahap pencocokan ketiga, berpindahlah satu karakter ke arah kanan terhadap text.

Tahap demi tahap dilakukan pada proses pencocokan hingga ditemukan match

pada text yang karakternya sama panjang terhadap karakter pada pattern. Proses berakhir saat karakter terakhir pada text telah dilakukan pencocokan ditemukan atau tidaknya pattern pada text.

Sebagai contoh, diberikan sejumlah karakter sebagai text = GCATCGCAGAGAGTATACAGTACG dan yang akan dicocokkan adalah pattern = GCAGAGAG sebagaimana dikutip pada Carras dan Lecroq (2004). Gambar 2.1 dan gambar 2.2 berikut akan menggambarkan proses pencocokan yang telah dijelaskan sebelumnya pada algoritma Brute Force dimana y merupakan text dan x merupakan

pattern. Setelah dilakukan tahap pencocokan sepanjang karakter pada pattern, proses


(29)

(30)

(31)

Menurut Fandi Pradhana (2012) pseudocode pada Algoritma Brute Force adalah sebagai berikut :

Public static int BruteForce (string text, string pattern) {

Int n = text.length(); //cari panjangnya text

Int m = pattern.length(); //cari panjangnya pattern Int j;

For (int i = 0; i <= (n-m); i++) {

J = 0;

While ((j< m) && (text.charAt(i+j) == pattern.charAt(j))) J++;

If(j == m)

Return i; //kecocokan ditemukan di i

}

Return -1; //tidak ada yang cocok

}

Pada fungsi Brute Force Panjang teks di masukkan ke dalam variabel n, Panjang pattern dimasukkan ke variabel m, dilakukan pengulangan untuk membandingkan karakter dimulai dari 0 sampai (n-m), di dalam pengulangan tersebut dilakukan perbandingan karakter pada text dan pattern. Jika ditemukan kecocokan di kembalikanlah nilai i, jika tidak di kembalikan nilai -1.

2.4.4. Algoritma Knuth-Morris-Pratt

Algoritma Knuth Morris Pratt merupakan salah satu algoritma yang sering digunakan untuk menyelesaikan masalah pencocokan string. Algoritma ini adalah penyempurnaan dari algoritma pencocokan string dengan menggunakan algoritma

brute force. Pada algoritma bruteforce, setiap kali ditemukan ketidak cocokan pattern

dengan teks, maka pattern akan digeser satu ke kanan. Sedangkan pada algoritma Knuth-Morris-Pratt, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran angka lebih jauh, tidak hanya satu karakter seperti pada algoritma brute force. Dengan algoritma Knuth Morris Pratt ini, waktu pencarian dapat dikurangi


(32)

secara signifikan. Algoritma Knuth Morris Pratt ini dikembangakan oleh D. E. Knuth, bersama-sama dengan J. H. Morris dan V. R. Pratt (1997).

Algoritma Knuth-Morris-Prath memelihara informasi yang digunakan saat melakukan pergeseran. Informasi ini digunakan untuk melakukan pergeseran yang lebih jauh, tidak seperti brute force yang melakukan pergeseran perkarakter. Pergeseran dilakukan berdasarkan suffix kesamaan suffix dan prefix dalam pattern dan yang ditemukan di dalam teks. Secara sistematis, langkah-langkah yang dilakukan algoritma Knuth-Morris-Pratt pada saat mencocokkan string :

1. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal teks. 2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter

pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:

1. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch). 2. Semua karakter di pattern cocok. Kemudian algoritma akan

memberitahukan penemuan di posisi ini.

3. Algoritma kemudian menggeser pattern berdasarkan tabel, lalu mengulangi langkah 2 sampai pattern berada di ujung teks.

Pencocokan karakter dari kiri ke kanan mencari prefix terpanjang dari P[0..j-1] yang juga merupakan suffix dari P [1..j-1], untuk menghindari pergeseran yang tidak perlu. Hasil dari pencarian prefix terpanjang disimpan dalam tabel yang disebut juga sebagai failure function. Misalkan panjang string yang telah diperiksa dan cocok = n


(33)

Gambar 2.3 dan gambar 2.4 berikut akan menggambarkan proses pencocokan yang telah dijelaskan sebelumnya pada algoritma Knuth-Morris-Pratt dikutip Carras dan Lecroq (2004), dimana y merupakan text dan x merupakan pattern. Setelah dilakukan tahap pencocokan sepanjang karakter pada pattern, proses shift dilakukan dengan berpindah tidak hanya satu karakter seperti pada algoritma brute, pada algoritma

Knuth-Morris-Pratt, algoritma ini dapat memelihara informasi yang digunakan untuk melakukan jumlah pergeseran.

Gambar 2.3 Ilustrasi tahap pencarian algoritma Knuth-Morris-Pratt

y

x

y

x

y

x

y


(34)

Gambar 2.4 Ilustrasi tahap pencarian algoritma Knuth-Morris-Pratt (lanjutan) y

x

y

x

y

x

y


(35)

Menurut Fandi Pradhana (2012) berikut merupakan pseudocode pada algoritma

Knuth-Morris-Pratt :

public static int kmpMatch (string text, string pattern) {

Int n = text.length(); Int m = pattern.length();

Int fail[] = computeFail (pattern);

Int i = 0 ; Int j = 0 ;

While (i < n) {

If (pattern.charAt(j) == text.charAt(i)) { i++;

j++;

Return i - m + 1; //match }

else if (j > 0) { J = fail[j-i]; }

else { i++; } }

Return -1; // no match } // end of kmpMatch()

Pada fungi KMP panjang teks di masukkan ke dalam variabel n, panjang pattern

dimasukkan ke variabel m, i=0 dan j=0, jika i lebih kecil dari pada n jika pattern pada karakter j sama dengan teks pada posisi i jika cocok.. i + 1, j+1 (j > 0 ) maka i –m + 1 (match). Jika tidak sama maka j menyimpan (j-i) sebagai failure Function dan i+1. jika j tidak sama dengan i dan j tidak lebih besar daripada 0 maka dikembalikan -1 (no macth).


(36)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Bab ini akan membahas tentang analisis serta perancangan sistem fitur Word Suggestion dengan menggunakan Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt, membuat pemodelan sistem seperti merancang alur kerja sistem (flowchart). Mempelajari konsep dan proses kerja Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt, serta merancang antarmuka.

Gambar 3.1. merupakan diagram Ishikawa yang dapat digunakan untuk menganalisis masalah. Bagian kepala atau segiempat yang berada di sebelah kanan merupakan masalah. Sementara di pada bagian tulang merupakan penyebab.

Gambar 3.1 Diagram Ishikawa Untuk Analisis Masalah

Bagaimana Algoritma Brute Force dan Algoritma

Knuth-Morris-Pratt (KMP) melakukan pencarian dalam

Word Suggestion

Mencari kata atau informasi dengan waktu yang cepat

Tidak dapat melakukan pencarian kosa kata yang bukan istilah komputer

Belum ada acuan dalam memilih algoritma yang cocok dalam pencarian Word Suggestion

Kurangnya sistem aplikasi berbasis web

PEOPLE MATERIAL


(37)

3.2.Analisis Persyaratan

Untuk membangun sebuah sistem, perlu dilakukan sebuah tahap analisis kebutuhan sistem. Analisis kebutuhan sistem dapat dikelompokkan menjadi dua bagian yaitu: kebutuhan fungsional dan kebutuhan non-fungsional.

3.2.1. Persyaratan Fungsional

Persyaratan fungsional sistem adalah aktifitas dan pelayanan yang harus dimiliki oleh sebuah sistem berupa input, proses, output, maupun penyimpanan data (Harahap, 2013).

Adapun Persyaratan fungsional yang dibutuhkan yaitu: 1. Pengguna memasukkan input berupa huruf.

2. Sistem melakukan pencocokan string melalui setiap huruf yang diketikkan.

3. Sistem harus mampu menampilkan word suggestion yang mendekati seperti input yang dimasukkan.

3.2.2. Persyaratan Non-Fungsional

Persyaratan non-fungsional sistem merupakan persyaratan apa yang harus dilakukan sistem. Beberapa persyaratan non-fungsional yang harus dipenuhi oleh sistem yang dirancang adalah sebagai berikut.

1. Performa

Sistem yang akan dibangun harus dapat menunjukkan hasil dari proses pencarian word suggestion.

2. Mudah dipelajari dan digunakan

Sistem yang akan dibangun harus sederhana dan mudah di pelajari oleh pengguna (user).

3. Dokumentasi

Sistem yang akan dibangun dapat menyimpan saran kata yang ditambahkan oleh pengguna (user) ke dalam database.

4. Kontrol

Sistem yang akan dibangun harus memiliki pesan not found jika kata yang di ketikkan pengguna (user) tidak ada di dalam database kata.


(38)

5. Hemat biaya

Sistem yang akan dibangun tidak memerlukan perangkat tambahan dalam proses eksekusinya.

3.3. Pemodelan Sistem

Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja yang harus dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai dengan kegunaannya.

Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai bahasa pemodelan untuk mendesain dan merancang Sistem Pencarian Word Suggestion dengan algoritma Brute Force dan algoritma Knuth-Morris-Pratt (KMP). Model UML yang digunakan antara lain use case diagram, activity diagram, dan

sequence diagram.

3.3.1. Use-Case Diagram

Use case merupakan fungsionalitas dari suatu sistem, sehingga customer atau pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun.

Use case berperan menggambarkan interaksi antar komponen-komponen yang berperan dalam sistem yang akan dirancang.


(39)

Gambar 3.2 Use Case Diagram Sistem

Use case pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh user,

user dapat melakukan pencarian word suggestion dan akan mengecek kata tersebut ada atau tidak ada pada search engine serta dapat menambahkan word suggestion atau saran kata istilah baru pada aplikasi search engine tersebut.

System

Menampilkan list saran kata Algoritma Brute Force, Algoritma Knuth Morris-Pratt

Input Karakter huruf

Menampilkan Hasil iterasi dan

Running Time

User

Menambah saran kata <<include>>


(40)

Tabel 3.1. Tabel Use Case Proses Pencarian Word Suggestion

Name Proses Pencarian Word Suggestion

Actors User yang telah ditentukan.

Description Use Case ini mendeskripsikan Pencarian Word Suggestion dengan algortima Brute Force dan algoritma Knuth-Morris-Pratt.

Basic Flow User memasukkan inputan karakter berupa huruf. Alternate

Flow

User dapat memilih alternatif saran Brute Force,

Knuth-Morris-Pratt, tambah kata dan tampilan lainnya. Pre

Condition

-

Post Condition

User mengetahui hasil iterasi, running time alternatif


(41)

3.3.2. Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang atau menggambarkan proses parallel yang mungkin terjadi dalam beberapa eksekusi. Gambar 3.3 merupakan activity diagram dari sistem yang dibangun.

Gambar 3.3 Activity Diagram Sistem

Mulai Input Karakter Menampilkan halaman awal Input Karakter Selanjutnya

Menampilkan Hasil Iterasi dan Running Time

Pencarian Kata

User System

= brute force

=KMP

≠ brute force or KMP

= list_katalist_kata

Menampilkan kata

Kata tidak ditemukan

(not found)

Pilih Tentang

Menampilkan Halaman Tambah Kata Pilih Tambah kata

Menampilkan Halaman Tentang


(42)

Tabel 3.2 Keterangan Bagian-Bagian Rancangan Halaman Utama

3.3.3. Sequence Diagram

Sequence diagram merupakan diagram yang menggambarkan interaksi antar objek dan menjelaskan bagaimana suatu operasi dilakukan.Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh objek. Dalam sistem yang akan dibangun, interaksi dilakukan antara pengguna dan sistem. Sequence diagram sistem dapat dilihat pada Gambar 3.4.

Name Activity Diagram Activity diagram Sistem

Actors User

Deskripsi Activity ini mendeskripsikan proses Sistem pada Aplikasi Pencarian Word Suggestion

Prakondisi Sudah Masuk ke tampilan utama Bidang Khas Suatu

Kejadian

Kegiatan User Respon system 1. Menginputkan kata yang

ingin dicari

2. Menekan tombol kata saran Brute Force

3. Menekan tombol kata saran Knuth-Morris-Pratt

4. Menekan tombol tambah kata

5. Menambahkan kata yang baru

6. Menekan tombol tentang

1. System menampilkan halaman yang dipilih 2. System akan melakukan

searching pada database

3. Tampilkan Hasil iterasi

dan Running Time

dalam pencarian word Suggestion

4. Menyimpan kata yang baru.


(43)

Gambar 3.4 Sequence DiagramSistem

Dari keterangan diatas dapat digambarkan dengan sequence diagram mengenai informasi sistem yang berjalan saat ini, sehingga dengan diagram ini dapat menggambarkan pergerakan sebuah objek dan pesan yang terjadi di dalam sistem penyampaian informasi.

Halaman awal

Halaman hasil iterasi Brute Force

Halaman hasil iterasi KMP Halaman tambah kata Halaman tentang Menampilkan halaman hasil iterasi KMP

Menambah kata baru Halaman awal

Memilih tombol saran kata Brute Force Menampilkan halaman hasil iterasi Brute Force Menyimpan ke database Menampilkan halaman awal Memilih tombol saran kata KMP Memilih halaman tambah kata Menampilkan halaman tambah kata Memilih halaman tentang Menampilkan halaman tentang User


(44)

3.4. Analisis Data

Data word suggestion yang digunakan pada sistem ini berdasarkan data kata yang ada dan telah disimpan pada database, dimana database tersebut berisi kata berdasarkan kamus istilah komputer. Pada tabel 3.3 akan diberikan beberapa data kata pada

database yang akan digunakan sebagai word suggestion.

Tabel 3.3 Sampel Data Word Suggestion

No. Word Suggestion

1. aku

2. kiat

3. kita

4. kata

Dapat dilihat pada tabel 3.3 bahwa data yang telah disimpan dalam database adalah sebanyak 4 data kata, dimana data tersebut akan dijadikan sebagai word suggestion

yang akan di implementasikan pencariannya dalam search engine dengan algoritma

Brute Force dan algorima Knuth-Morris-Pratt.

3.5. Analisis Pencarian Word Suggestion

Dalam pencarian sebuah informasi, kecepatan merupakan salah satu faktor yang penting. Dalam mempercepat pencarian informasi, beberapa mesin pencarian menambahkan fitur Word Suggestion, yang digunakan untuk mencari hasil saran kata terdekat dengan kata yang akan dicari. Pengguna tidak perlu pengetikkan kata yang akan dicari secara lengkap, sehingga hal ini sangat efektif untuk meningkatkan kecepatan pencarian sebuah informasi.


(45)

3.5.1. Cara Kerja Pencarian Word Suggestion

Adapun cara kerja pencarian Word Suggestion adalah sebagai berikut: 1. Misalnya seorang useringin mencari kata “kita”.

2. Usermenggetikkan huruf pertama yaitu “k”.

3. Word Suggestion kemudian memeriksa semua data pada database informasi yang huruf pertamanya mengandung huruf “k”.

4. Misalnya di dalam database informasi terdapat 4 data yaitu “aku”, “kiat”,

“kita”, “kata”.

5. Maka word suggestion akan menampilkan seluruh kata pada database yang diawali oleh huruf “k” sebagai saran dari kata yang dicari oleh user.

6. Jika user mengetikkan huruf-huruf berikutnya dari kata “kita” tadi, maka ini akan membuat hasil saran semakin cepat.

7. Misalnya user mengetikkan kata “kit”, maka word suggestion akan menampilkan saran “kita” sehingga user tidak perlu mengetikkan huruf selanjutnya karena saran dari kata yang akan dicari telah ditemukan, hal ini disebabkan karena tiga huruf pertama pada hasil saran adalah “kit”, sementara kata-kata lain di dalam database tidak ditampilkan karena tiga huruf pertamanya tidak mengandung kata “kit”.


(46)

3.5.2. Flowchart Pencarian Word Suggestion

Berdasarkan analisis cara kerja diatas, berikut adalah Flowchart dari cara kerja

Word Suggestion.

Gambar 3.5 Flowchart Cara Kerja Word Suggestion Mencari kata

dalam database

Kata Ditemukan ?

Hitung jumlah kata yang ditemukan

pada database

Seleksi kata

Kembali lakukan pencarian ?

Start

End

ya

tidak tidak

ya Input kata

yang akan dicari

Tampilkan hasil pencarian


(47)

3.5.3. Hasil Analisis Word Suggestion

Dari analisis Word Suggestion di atas, saat mencocokan kata yang diketikkan oleh

user dengan data yang ada pada database informasi, word sugestion membutuhkan algoritma string matching yang berkerja untuk melakukan pencocokan karakter, sehingga dapat menghasilkan sugesti yang tepat.

3.6. Analisis Algoritma Brute Force Pada Pencarian Word Suggestion

Pada analisis tentang Word Suggestion sebelumnya, ketika proses pecocokan kata

Word Suggestion membutuhkan algoritma string matching untuk mencocokkan karakter-karakter input dari user dengan database informasi agar menghasilkan sugesti yang tepat. Untuk itu berikut merupakan analisis terhadap pencarian Word Suggestion

dengan menggunakan Algoritma Brute Force dalam mencocokan karakter.

Charras dan Lecroq (2004) meneliti bahwa algoritma Brute Force digunakan dalam pengecekan pada setiap kedudukan dalam text dari karakter pertama hingga karakter akhir. Seusai pengecekan karakter pertama terjadi, maka proses shift dilakukan dengan berpindah tepat satu posisi ke arah kanan (berpindah ke karakter kedua, ketiga dan seterusnya).Algoritma Brute Force tidak memerlukan tahap praproses. Selama tahap pencarian, pembadingan karakter pada text dapat selesai pada posisi manapun.

Sebagai contoh, diberikan sejumlah karakter sebagai text= “adiadlaadliii” dan

yang akan dicocokkan adalah pattern = “adli”. Pada karakter pertama “a” dan kedua

“d” pada pattern terjadi kecocokan (match) pada teks, akan tetapi pada karakter ketiga “l” terjadi ketidakcocokan (mismatch) pada teks maka proses shift dilakukan dengan berpindah tepat satu posisi ke arah kanan, setiap pencocokan karakter yang mismatch

akan terjadi proses shift tersebut (berpindah ke karakter kedua, ketiga dan seterusnya) sampai semua karakter pada patternmatch dengan karakter pada teks.

Gambar 3.6 berikut akan menggambarkan proses pencocokan yang telah dijelaskan sebelumnya pada algoritma Brute Force dimana t merupakan text dan p merupakan


(48)

Gambar 3.6 pergeseran algoritma brute force

3.6.1. Cara Kerja Algoritma Brute Force Pada Pencarian Word Suggestion

1. Menentukan pattern dan teks

Algoritma Brute Force adalah algoritma pencocokan string yang tediri dari dua komponen utama, yaitu pattern dan teks. Pattern adalah kata yang akan dicari, sedangkan teks adalah kata-kata yang akan dicocokan dengan pattern. Jika diimplementasikan kedalam pencarian Word Suggestion, maka yang menjadi

pattern adalah kata yang diketikkan oleh user, sedangkan teks adalah kata-kata didalam database.

Berdasarkan dari contoh kasus analisis pencarian Word Suggestion

sebelumnya, maka pengelompokan pattern dan teks dapat dilihat pada tabel berikut.


(49)

Tabel 3.4 Simulasi Pencarian Word Suggestion

2. Proses pencarian Word Suggestion

Setelah pattern dan teks terbentuk maka proses selanjutnya adalah pencocokan karakter. Algoritma Brute Force adalah algoritma yang melakukan pencocokan karakter dari sebelah kiri ke kesebelah kanan dan jika antara pattern dan teks terdapat kecocokan (match) maka algoritma akan menghasilkan nilai true.

Percobaa n Ke-

Teks yang di ketik oleh user

Teks di database

Teks yang menjadi sugesti

1 k

aku -

kiat kiat

kita kita

kata kata

2 ki

aku -

kiat kiat

kita kita

kata -

3 kit

aku -

kiat -

kita kita


(50)

3.6.2. Flowchart Algoritma Brute Force Pada Pencarian Word Suggestion

Berdasarkan analisis cara kerja diatas, berikut adalah Flowchart dari cara kerja Algoritma Brute Force pada Pencarian Word Suggestion dimana N didefinisikan sebagai panjang teks dan M didefinisikan sebagai panjang pattern.

Gambar 3.7Flowchart Cara Kerja Algoritma Brute Force pada pencarian

Word Suggestion End

Start

tidak

ya ya

Int n = text.length(T) Int m = pattern.length (p) T = text.char

P = pattern.char

i = 0 j = 1

i ≤ (n-m)

j = j + 1

i = i + 1 j = m

tidak

j < m and T[i + j] = P[j] tidak

Input text & pattern

match


(51)

Cara Kerja Algoritma Brute Force :

1. Mula-mula pattern dicocokan pada awal teks.

2. Dengan bergerak dari kiri ke kanan, bandingkan setiap karakter di dalam pattern dengan karakter yang bersesuaian di dalam teks sampai :

a. Semua karakter yang dibandingkan cocok atau sama (pencarian berhasil), atau b. Dijumpai sebuah ketidakcocokan karakter (pencarian belum berhasil).

3. Bila pattern belum ditemukan kecocokannya dan teks belum habis, geser pattern satu karakter ke kanan dan ulangi langkah 2.

3.6.3. Hasil Analisis Algoritma Brute Force Pada Pencarian Word Suggestion

Berdasarkan analisis cara kerja diatas, menunjukkan bahwa Algoritma Brute Force

dapat digunakan dengan baik pada pencarian Word Suggestion.

3.7. Analisis Algoritma Knuth-Morris-Pratt (KMP) Pada Pencarian Word

Suggestion

Pada analisis tentang Word Suggestion sebelumnya, ketika proses pecocokan kata

Word Suggestion membutuhkan algoritma string matching untuk mencocokkan karakter-karakter input dari user dengan database informasi agar menghasilkan sugesti yang tepat. Untuk itu berikut merupakan analisa terhadap pencarian Word Suggestion

dengan menggunakan Algoritma Knuth-Morris-Pratt dalam mencocokan karakter.

Algoritma Knuth Morris Pratt (KMP) dikembangkan oleh D. E. Knuth, bersama dengan J. H. Morris dan V. R.Pratt (1997). Untuk pencarian string dengan menggunakan algoritma Brute Force , setiap kali ditemukan ketidakcocokan pattern dengan teks, maka pattern akan digeser satu karakter ke kanan. Sedangkan pada algoritma Knuth Morris-Pratt, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter seperti halnya pada algoritma Brute Force.


(52)

Sebagai contoh, diberikan sejumlah karakter sebagai text = “adiadlaadliii” dan yang akan dicocokkan adalah pattern = “adli”. Pada karakter pertama “a” dan kedua “d” pada pattern terjadi kecocokan (match) pada teks, akan tetapi pada karakter ketiga “l” terjadi ketidakcocokan (mismatch) pada teks maka proses shift dilakukan dengan berpindah tiga posisi ke arah kanan teks dikarenakan huruf “ad” dijadikan prefix

terpanjang yang akan disimpan kedalam tabel failure function. Selanjutnya berpindah empat posisi ke arah kanan teks menghasil kan prefix “adl”, berpindah lagi empat

posisi ke arah kanan menghasilkan prefix pattern “adli” sehingga terjadi kecocokan

pada teks.

Gambar 3.8 berikut akan menggambarkan proses pencocokan yang telah dijelaskan sebelumnya pada algoritma Knuth-Morris-Pratt dimana t merupakan text dan p

merupakan pattern.


(53)

3.7.1. Cara Kerja Algoritma Knuth-Morris-Pratt (KMP) Pada Pencarian Word

Suggestion

1. Menentukan Pattern dan Teks

Algoritma Knuth-Morris-Pratt adalah algoritma pencocokan string yang juga tediri dari dua komponen utama, yaitu pattern dan teks, dan untuk penentuan pattern

dan teks untuk analisa data diambil dari analisa percobaan Algoritma Brute Force, yaitu pada Tabel 3.4.

2. Proses Pencarian Word Suggestion

Setelah pattern dan teks terbentuk maka proses selanjutnya adalah melakukan pencocokan karakter. Berbeda dengan algoritma Brute Force, algoritma Knuth Morris-Pratt ini dapat memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma Knuth-Morris-Pratt menggunakan informasi tersebut untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter

Adapun cara kerja algoritma dalam melakukan pencarian word suggestion adalah sebagai berikut :

1. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal teks. 2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter

pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:

3. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch). 4. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan

penemuan di posisi ini.

5. Algoritma kemudian menggeser pattern berdasarkan tabel, lalu mengulangi langkah 2 sampai pattern berada di ujung teks (Soleh, 2011)


(54)

3.7.2. Flowchart Algoritma Knuth-Morris-Pratt (KMP) Pada Pencarian Word

Suggestion

Pada gambar 3.9 merupakan penjelasan dari algoritma Knuth Morris Pratt, flowchart ini menjelaskan bagaimana metode Knuth Morris Pratt mendapatkan output yang berupa posisi karakter yang cocok. Terlihat pada gambar, metode knuth Morris Pratt

menyimpan nilai pergeseran dalam variable (i), pergeseran dilakukan sebanyak nilai (i) itu sendiri.

Gambar 3.9 Flowchart Cara Kerja Algoritma Knut-Morris-Pratt pada pencarian

Word Suggestion End

Input text & pattern match mismatch tidak ya ya

Int n = text.length(T) Int m = pattern.length (p) T = text.char

P = pattern.char

i = 0 j = 0

i < n

i = i + 1

j = j + 1 i return m + 1 j > 0 Start

tidak ya

P[j] = T[i]

ya

j = fail [ j – i ]

i = i + 1 tidak


(55)

3.7.3. Hasil Analisis Algoritma Knuth-Morris-Pratt (KMP) Pada Pencarian Word

Suggestion

Berdasarkan analisis cara kerja diatas, menunjukkan bahwa Algoritma Knuth-Morris-Pratt juga dapat digunakan dengan baik pada pencarian Word Suggestion.

3.8. Perancangan Sistem

Berdasarkan gambaran dari hasil analisis proses maka dibangun suatu model rancangan flowchart sistem dan juga rancangan antar muka sistem.


(56)

3.8.1. Flowchart Sistem

Adapun alur kerja yang terdapat pada sistemdapat dilihat pada gambar 3.10.

Gambar 3.10 Flowchart System End

Start

Input string

Halaman awal user

Apakah memilih 1. Saran Brute Force

Apakah memilih 2. Saran KMP

Apakah memilih 3. Tambah kata

Apakah memilih 4. Tentang Menampilkan Hasil iterasi, Running Time Menampilkan Hasil iterasi, Running Time Menampilkan Halaman Tambah kata Menampilkan Halaman Tentang ya ya tidak tidak ya tidak ya tidak tidak


(57)

3.9. Perancangan Database (Basis Data)

Dalam penelitian ini, database yang dirancang dibuat dalam file tersendiri menggunakan MySQL. Kata yang digunakan berdasarkan kamus istilah komputer 1715 kata (dapat di tambah) yang telah tersimpan dalam database sebagai Word Suggestion yang digunakan dalam pencarian dengan algoritma Brute Force dan algoritma Knuth-Morris-Pratt. Database hanya memiliki satu table yang terdiri atas dua atribut yaitu id_kata, dan kata. Table yang akan digunakan pada aplikasi ringkasannya diberikan pada Tabel 3.5.

Tabel 3.5. Rancangan Database

3.10. Perancangan Antarmuka (Interface)

Antarmuka (Interface) berguna untuk mempermudah pengguna ketika mengakses sebuah aplikasi, antarmuka sistem juga merupakan suatu alur komunikasi antara user

dengan sistem (Khadijah, 2013). Antarmuka dapat disebut juga sebagai wajah dari suatu aplikasi, sehingga ketika seorang user atau pengguna pertama kali mengakses suatu aplikasi, maka bagian pertama yang akan muncul adalah antarmuka (interface). Berikut ini akan digambarkan tentang rancangan tampilan halaman pada sistem yang akan dibuat.

3.10.1.Rancangan Halaman Awal User

Halaman awal user berisi menu utama aplikasi yaitu berisi inputan teks dan menu list box yang akan dipilih dalam pengujian word suggestion. Gambar 3.11 menunjukkan rancangan interface halaman awal user.

No Atribut Type Null Keterangan

1 id_kata Int(11) No Nomor kata 2 kata Varchar(30) No Kata Istilah Komputer


(58)

Gambar 3.11 Rancangan Halaman Awal User

Tabel 3.6 Keterangan Rancangan Halaman Awal User

No Keterangan

1 Merupakan Menu Bar dari aplikasi antara lain menu word suggestion, menu

tambah kata dan menu tentang.

2 Merupakan Text Field untuk menginput kata yang ingin dicari

3 Merupakan List box tempat Output dari hasil saran yang di berikan menggunakan Algoritma Brute Force.

4 Merupakan List box tempat Output dari hasil saran yang di berikan menggunakan Algoritma Knuth-Morris-Pratt.

5 Merupakan Static Text untuk menampilkan judul skripsi Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP)

Dalam Pencarian Word Suggestion

Word Suggestion Tentang

Input Pattern :

Saran Brute Force Saran Knuth-Morris-Pratt Tambah Kata 1

2

3 4


(59)

3.10.2.Rancangan Halaman Hasil Iterasi Saran Brute Force

Halaman hasil iterasimerupakan halaman yang menampilkan hasil iterasi saran brute force dan running time pada proses pengujian word suggestion. Gambar 3.12 menunjukkan rancangan interface halaman hasil iterasi saran brute force.

Gambar 3.12 Rancangan Halaman Hasil Iterasi Saran Brute Force

Tabel 3.7 Keterangan Rancangan Halaman Hasil Iterasi Saran Brute Force

No Keterangan

1 Merupakan Menu Bar dari aplikasi antara lain menu word suggestion, menu

tambah kata dan menu tentang.

2 Merupakan List View, tempat Output dari hasil iterasi yang lakukan oleh algoritma Brute Force dalam melakukan pencarian Word Suggestion

Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion

Hasil Iterasi Saran Brute Force

Running Time: Word Suggestion Tambah Kata Tentang 1

2

3 4


(60)

3 Merupakan Static Text untuk menampilkan teks Running Time

4 Merupakan Static Text untuk menampilkan judul skripsi

3.10.3.Rancangan Halaman Hasil Iterasi Saran Knuth-Morris-Pratt

Halaman hasil iterasi merupakan halaman yang menampilkan hasil iterasi saran

Knuth-Morris-Pratt dan running time pada proses pengujian word suggestion. Gambar 3.13 menunjukkan rancangan interface halaman hasil iterasi saran KMP.

Gambar 3.13 Rancangan Halaman Hasil Iterasi Saran Knuth-Morris-Pratt

Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion

Hasil Iterasi Saran Knuth-Morris-Pratt

Running Time: Word Suggestion Tambah Kata Tentang 1

2

3 4


(61)

Tabel 3.8 Keterangan Rancangan Halaman Hasil Iterasi Saran Knuth-Morris-Pratt

No Keterangan

1 Merupakan Menu Bar dari aplikasi antara lain menu word suggestion, menu

tambah kata, menu tentang,dan menu bantuan

2 Merupakan List View, tempat Output dari hasil iterasi yang lakukan oleh algoritma KMP dalam melakukan pencarian Word Suggestion

3 Merupakan Static Text untuk menampilkan teks Running Time

4 Merupakan Static Text untuk menampilkan judul skripsi

3.10.4.Rancangan Halaman Tambah Kata

Halaman tambah kata merupakan halaman yang menampilkan data word suggestion

yang dapat di edit atau dihapus serta dapat menambahkan data kata . Gambar 3.14 menunjukkan rancangan interface halaman tambah kata.

Gambar 3.14 Rancangan Halaman Tambah Kata

Word Suggestion Database

No. Word Suggestion Action

1 Edit Hapus

2 Edit Hapus

3 Edit Hapus

4 Edit Hapus

Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion

Word Suggestion Tambah Kata Tentang

Tambah Data 1

2

6

4

5 3


(62)

Tabel 3.9 Keterangan Rancangan Tambah Kata

No Keterangan

1 Merupakan Menu Bar dari aplikasi antara lain menu word suggestion, menu

tambah kata, menu tentang,dan menu bantuan

2 Merupakan Static Text untuk menampilkan judul Word Suggestion Database

3 Merupakan Button UPDATE untuk mengubah informasi dari sebuah table pada database

4 Merupakan Button DELETE untuk menghapus informasi dari sebuah table pada database

5 Merupakan Push Button untuk menampilkan tambah data 6 Merupakan Static Text untuk menampilkan judul skripsi

3.10.5.Rancangan Halaman Tambah Data

Halaman tambah data merupakan halaman yang menampilkan text field yang dapat disimpan kedalam database word suggestion. Gambar 3.15 menunjukkan rancangan

interface halaman tambah data.

Gambar 3.15 Rancangan Tambah Data

Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion

Tambah Data

Word Suggestion

Simpan Word Suggestion Tambah Kata Tentang 1

2

3

5


(1)

</script> <?php

} ?>

result.php <?php

if( $_REQUEST["kata"] ) {

$kata = $_REQUEST['kata']; echo "Welcome ". $kata; }

?>

tambah_data.php <!DOCTYPE html> <html>

<head>

<title>Adli Abdillah Nababan</title>

<link rel="stylesheet" type="text/css" href="css/style.css"> <style type="text/css">

#table_kata table{

border:1px solid #000000; }

#table_kata th{

background-color:#000; color:#FFFFFF;

}

#table_kata tr:hover{

background-color:#CCCCCC; }

#table_kata a{

text-decoration:none; color:#333;

} </style> </head>

<body>

<div id="wrapper"> <div id="header">

Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP)

Dalam Pencarian Word Suggestion </div>


(2)

<div id="menu"> <ul>

<li><a href="index.php">Word Suggestion</a></li> <li><a href="tambah_data.php">Tambah Kata</a></li> <li><a href="tentang.php">Tentang</a></li>

</ul> </div>

<div id="pattern-wrap">

<form action="proses_tambah.php"> Kata Baru: <br/>

<input type="text" name="kata" id="pattern" /><br/> <input type="submit" value="Tambah Kata" /> </form>

</div>

<div id="result">

<h3>Data Kata</h3> <?php

include "koneksi.php";

$file = "tambah_data.php"; $page = "";

// Memanggil dan menginisiasi class include "class_paging.php";

$p = new Paging;

// Tentukan limit atau batas $batas = 100;

// Cek halaman dan posisi data $posisi = $p->cariPosisi($batas);

$warna1 = ""; //baris ganjil $warna2 = ""; //baris genap

$warna = $warna1; //warna default

?>

<table id="table_kata"> <tr>

<th>No.</th> <th>Kata</th> <th>Action</th> </tr>

<?php $no=$posisi+1;


(3)

{

if($no%2==0) $warna=$warna2; else

$warna=$warna1;

//mencari sisa

$id_kata=$row['id_kata']; $kata=$row['kata']; ?>

<tr bgcolor="<?php echo $warna ?>"> <td><?php echo $no?></td>

<td><?php echo $kata ?></td> <td>

<a href='edit_data.php?id=<?php echo $id_kata?>' onClick="return confirm('Anda ingin mengubah data?')"><acronym title='Edit Data'><img src='images/edit.png' width='20' height='20' alt='edit'></a>&nbsp;&nbsp;

<a href='proses_hapus.php?id=<?php echo $id_kata?>' onClick="return confirm('Anda ingin menghapus data?')"><acronym title='Hapus

Data'><img src='images/delete.png' width='20' height='20'

alt='delete'></acronym></a>&nbsp;&nbsp;

</td> </tr> <?php $no++; }

?>

</table> <?php

// Dapatkan jumlah data keseluruhan $jmldata = mysql_num_rows($sql2);

// Dapatkan jumlah halaman

$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);

// Cetak link navigasi halaman

$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman, $page); echo $linkHalaman;

?> </div> </div>

</body> </html>


(4)

tentang.php

<!DOCTYPE html> <html>

<head>

<title>Adli Abdillah Nababan</title>

<link rel="stylesheet" type="text/css" href="css/style.css"> <style type="text/css">

#tentang-right{

font-family: Times; font-size: 20px; }

table td{

vertical-align: top; }

</style> </head>

<body>

<div id="wrapper"> <div id="header">

Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP)

Dalam Pencarian Word Suggestion </div>

<div id="menu"> <ul>

<li><a href="index.php">Word Suggestion</a></li> <li><a href="tambah_data.php">Tambah Kata</a></li> <li><a href="tentang.php">Tentang</a></li>

</ul> </div>

<div id="pattern-wrap"> Tentang Saya </div>

<div id="tentang">

<div id="tentang-left"> <br><br><br>

<center><img src="images/word-suggestion.png"></center> </div>

<div id="tentang-right"> <table>

<tr>

<td width="125">Nama</td> <td>:</td>


(5)

<td>131421065</td> </tr>

<tr>

<td>Judul Skripsi</td> <td>:</td>

<td>Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam

Pencarian Word Suggestion. </td>

</tr> <tr>

<td>Pembimbing I</td> <td>:</td>

<td>Dr. Poltak Sihombing, M.Kom</td> </tr>

<tr>

<td>Pembimbing II</td> <td>:</td>

<td>Dian Rachmawati, S.Si, M.Kom</td> </tr>

</table>

<center><img src="images/logo-usu.png"></center> </div>

</div> </div>

<script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" language="javascript">

$(document).ready(function() {

$("#pattern").keyup(function(event){ var kata = $("#pattern").val();

$("#brute_force").load('brute.php', {"cari":kata} ); $("#kmp").load('kmp.php', {"cari":kata} );

}); }); </script> </body> </html>


(6)

DAFTAR RIWAYAT HIDUP

Saya yang bertanda tangan dibawah ini :

DATA PRIBADI

Nama : Adli Abdillah Nababan

Alamat : Jl. Pintu Air Gg. Langgar No.7A Medan

Hp : 082168444649

E-Mail : [email protected]

Tempat/ tanggal lahir : Padangsidimpuan, 13 Juni 1992 Jenis Kelamin : Laki-laki

Status : Belum Menikah

PENDIDIKAN

1998 - 2004 : SD Negeri 200110 Padangsidimpuan

2004 - 2007 : SMP Negeri 1 Padangsidimpuan

2007 - 2010 : SMA Negeri 1 Padangsidimpuan

2010 - 2013 : DIII Teknik Informatika Universitas Sumatera Utara 2013 - 2015 : S-1 Ekstensi Ilmu Komputer Universitas Sumatera Utara

SEMINAR

 Seminar Nasional Literasi Informasi (SENARAI) 2014 Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Demikianlah Daftar Riwayat Hidup ini saya perbuat dengan sebenarnya.