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
Universitas Sumatera Utara
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.lengthT Int m = pattern.length p
T = text.char P = pattern.char
i = 0 j = 0
i n
i = i + 1 j = j + 1
return i
– m + 1 j 0
Start
tidak ya
P[j] = T[i]
ya j = fail
[ j – i ]
i = i + 1 tidak
Universitas Sumatera Utara
3.7.3. Hasil Analisis Algoritma Knuth-Morris-Pratt KMP Pada Pencarian Word