Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Disusun Oleh :
Nama : Dhea Kristina
NIM : 203010503008
Kelas : A
Modul : V (STRING MATCHING)
// Cari kecocokan
for (i = 0; i <= n - m; i++) {
if (p == t) {
for (j = 0; j < m; j++) {
if (txt.charAt(i + j) != pattern.charAt(j))
break;
}
if (j == m)
System.out.println("Pattern ditemukan pada posisi: " + (i
+ 1));
}
if (i < n - m) {
t = (d * (t - txt.charAt(i) * h) + txt.charAt(i + m)) % q;
if (t < 0) t = (t + q);
}
}
}
public static void main(String[] args) {
String txt = "ABCCDDAEFG"; String pattern = "CDD";
int q = 13;
search(pattern, txt, q);
}
}
// Fungsi Main
public static void main(String[] args) {
char[] pat = "Saya mau makan".toCharArray();
char[] txt = "ma".toCharArray();
search(txt,pat);
}
}
D. Knuth Morris Pratt (KMP)
Berikut ini adalah 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:
a. Karakter dipattern dan di teks yang dibandingkan tidak
cocok (mismatch).
b. Semua karakter di pattern cocok. Kemudian algoritma
akan memberitahukan penemuan di posisi ini.
3. Algoritma kemudian menggeser pattern berdasarkan tabel next,
lalu mengulangi langkah 2 sampai pattern berada di ujung teks.
Gambar 1
Gambar 2
Gambar 3
Gambar 4
Gambar 5
Gambar 6