String Matching
String Matching
(String Matching)
Contoh 1:
Pattern: hari
Teks:
kami pulang hari kamis
target
Contoh 2:
Pattern: not
Teks:
nobody noticed him
target
Contoh 3:
Pattern: apa
Teks:
Siapa yang menjemput Papa
dari kota Balikpapan?
Contoh 10.4:
Teks:
10010101001011110101010001
Pattern: 001011
s=0
s=1
s=2
s=3
s=4
s=5
s=6
s=7
s=8
10010101001011110101010001
001011
001011
001011
001011
001011
001011
001011
001011
001011
Algoritma Knuth-Morris-Pratt
(KMP)
Dikembangkan oleh D. E. Knuth,
bersama-sama dengan J. H. Morris dan V.
R. Pratt.
Pada algoritma brute force, setiap kali
ditemukan ketidakcocokan pattern dengan
teks, maka pattern digeser satu karakter
ke kanan.
123456789
Teks:
bimbingan belajar atau bimbel
Pattern: bimbel
j = 5
Teks:
Pattern:
j = 2
123456789
bimbingan belajar atau bimbel
bimbel
Definisi:
Misalkan A adalah alfabet dan x = x1x2xk
adalah string yang panjangnya k yang dibentuk
dari karakter-karakter di dalam alfabet A.
Awalan (prefix) dari x adalah upa-string
(substring) u dengan
u = x1x2xk 1 , k {1, 2, , k 1}
dengan kata lain, x diawali dengan u.