Deklarasi: i, j, next : integer
kmpNext : array[0..n] of integer
Algoritma: preKMPn, P, kmpNext
i:=0 while i= m-n do
j:=0 while jn and T[i+j] = P[j] do
j:= j+1 endwhile
ifj = n then ketemu[i]:= true;
endif next := j - kmpNext[j]
i:= i+next endwhile
2.3.3. Kompleksitas Waktu Algoritma Knuth-Morris-Pratt
Untuk menghitung fungsi pinggiran dibutuhkan waktu Om, sedangkan pencarian string
membutuhkan waktu On, sehingga kompleksitas waktu algoritma KMP adalah Om+n Guntur, 2008.
2.3.4. Kelebihan Algoritma Knuth-Morris-Pratt
Pada algoritma Knuth-Morris-Pratt ini akan menyimpan informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut
untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter. Algoritma Knuth-Morris-Pratt ini menjanjikan karena memiliki waktu pencarian yang linier,
baik dalam kasus terbaik atau terburuk Rizki, 2008. Implementasi algoritma Knuth-Morris-Pratt akan meningkatkan kemampuan
dalam pencarian query dalam dokumen. Algoritma Knuth-Morris-Pratt cocok untuk pencarian string dengan alphabet sedikit seperti biner Yusup, 2011.
Adapun kelebihan Algoritma Knuth-Morris-Pratt telah digunakan dalam
penelitian-penelitian. Penelitian oleh Mulyana 2014 yang menerapkan algoritma Knuth-Morris-Pratt pada game puzzle untuk mencari kecocokan pola warna telah
dihasilkan bahwa kemampuan pencarian Knuth-Morris-Pratt dalam mencari suatu pola blok warna di dalam blok warna utama pada permainan puzzle dalam hal sumber
daya memori yang digunakan dapat diketahui dengan menghitung peubah-peubah
Universitas Sumatera Utara
yang berperan pada saat pencarian yang dilakukan. Sedangkan dalam hal kecepatan, sangat tergantung pada spesifikasi perangkat keras pengujian. Hal lain yang dapat
diukur adalah skalabilitas waktu pencarian atau kompleksitas waktu. Penelitian oleh Wibowo 2012 yang menerapkan algoritma Knuth-Morris-Pratt
pada pembuatan aplikasi untuk mendeteksi kebenaran perintah SQL Query menggunakan metode Knuth-Morris-Pratt telah dihasilkan dari pengujian dan analisa
kuisioner yang diberikan kepada user dan dosen bahwa pencocokan ataupun pendeteksian kebenaran perintah SQL Query dengan menggunakan algoritma Knuth-
Morris-Pratt dapat diimplementasikan. Penelitian yang dilakukan oleh Fadillah 2008 dalam pengenalan pola sidik jari
menggunakan algoritma Knuth-Morris-Pratt yang telah dihasilkan dari analisa bahwa akurasi algoritma Knuth-Morris-Pratt dalam pengenalan pola sidik jari memberikan
nilai toleransi nol dalam hal noise, dikarenakan dengan adanya noise sedikitnya akan memberikan perubahan pola warna, hal ini juga akan menyebabkan perubahan nilai
intensitas warna yang dikonversi pada citra yang baru dan akan adanya ketidaksesuaian dengan nilai string yang ada pada database, dan sidik jaripun tidak
dapat dikenali.
2.4. Eclipse