Algoritma Pencarian String (String Matching) - PowerPoint PPT Presentation

About This Presentation
Title:

Algoritma Pencarian String (String Matching)

Description:

(String Matching) Bahan Kuliah IF3051 ... string yang panjangnya n karakter pattern, yaitu string dengan ... Pattern: aaaab * Algoritma Knuth-Morris-Pratt (KMP) ... – PowerPoint PPT presentation

Number of Views:327
Avg rating:3.0/5.0
Slides: 19
Provided by: acid150
Category:

less

Transcript and Presenter's Notes

Title: Algoritma Pencarian String (String Matching)


1
Algoritma Pencarian String(String Matching)
  • Bahan Kuliah IF3051 Strategi Algoritma
  • Oleh Rinaldi Munir

2
Persoalan pencarian string
  • Diberikan
  • teks (text), yaitu (long) string yang panjangnya
    n karakter
  • pattern, yaitu string dengan panjang m karakter
    (m lt n) yang akan dicari di dalam teks.
  • Carilah (find atau locate) lokasi pertama di
    dalam
  • teks yang bersesuaian dengan pattern.

3
  • 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?

4
Algoritma Brute Force
  • Contoh 4
  • Teks nobody noticed him
  • Pattern not
  • nobody noticed him
  • s0 not
  • s1 not
  • s2 not
  • s3 not
  • s4 not
  • s5 not
  • s6 not
  • s7 not

5
  • Contoh 5
  • Teks 10010101001011110101010001
  • Pattern 001011
  • 10010101001011110101010001
  • s0 001011
  • s1 001011
  • s2 001011
  • s3 001011
  • s4 001011
  • s5 001011
  • s6 001011
  • s7 001011
  • s8 001011

6
Kompleksitas algoritma brute-force
  • Kompleksitas kasus terbaik adalah O(n).
  • Kasus terbaik terjadi jika yaitu bila karakter
    pertama pattern P tidak pernah sama dengan
    karakter teks T yang dicocokkan
  • Pada kasus ini, jumlah perbandingan yang
    dilakukan paling banyak n kali misalnya
  • Teks String ini berakhir dengan zz
  • Pattern zz

7
  • Kasus terburuk m(n m 1) O(mn)
  • Teks aaaaaaaaaaaaaaaaaaaaaaaaaaaaab
  • Pattern aaaab

8
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.

9
  • Sedangkan pada algoritma KMP, kita memelihara
    informasi yang digunakan untuk melakukan jumlah
    pergeseran.
  • Algoritma KMP menggunakan informasi tersebut
    untuk membuat pergeseran yang lebih jauh, tidak
    hanya satu karakter seperti pada algoritma brute
    force.

10
  • 123456789
  • Teks bimbingan belajar atau bimbel
  • Pattern bimbel
  • ?
  • j 5
  • 123456789
  • Teks bimbingan belajar atau bimbel
  • Pattern bimbel
  • ?
  • j 2

11
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 x1x2xj 1 , j ? 1, 2, , k
  • dengan kata lain, x diawali dengan u.
  • Contoh 6. Misalkan x abacab.
  • Awalan dari x adalah
  • ?, a, ab, aba, abac, abaca

12
  • Akhiran (suffix) dari x adalah upa-string
    (substring) u dengan
  • u xj b xj b 1 xk , j ? 1, 2, , k
  • dengan kata lain, x di akhiri dengan v.
  • Contoh 7. Misalkan x abacab.
  • Akhiran dari x adalah
  • ?, b, ab, cab, acab, bacab
  • Akhiran ? mempunyai panjang 0, ab mempunyai
    panjang 2, dan seterusnya.

13
  • Pinggiran (border) dari x adalah upa-string r
    sedemikian sehingga
  • r x1x2xj 1 dan
  • u xj b xj b 1 xj ,
  • j ? 1, 2, , k
  • dengan kata lain, pinggiran dari x adalah
    upa-string yang keduanya awalan dan juga akhiran
    sebenarnya dari x.
  • Contoh 8. Misalkan x abacab.
  • Pinggiran dari x adalah ?, ab

14
Fungsi Pinggiran (Border Function)
15
  • Contoh 7 T ababbabaaba dan P ababaa
  • Iterasi 1 ababbabaaba
  • ababaa
  • upastring yang cocok abab, panjangnya 4
  • pinggiran terpanjangnya ab, panjangnya 2
    b(4)
  • jumlah pergeseran 4 2 2
  • Iterasi 2 ababbabaaba
  • ababaa
  • ?

j 1 2 3 4 5 6
Pj a b a b a a
b(j) 0 0 1 2 3 1
16
Contoh 8
b
a
c
b
a
b
a
b
a
a
b
c
b
a
T
s
a
b
a
b
a
c
a
P
q
b
a
c
b
a
b
a
b
a
a
b
c
b
a
T
s
a
b
a
b
a
c
a
P
k
a
b
a
b
a
Pq
Longest prefix of Pq that is also a suffix of P5
is P3 so b5 3
Pk
a
b
a
17
Border Function
i 1 2 3 4 5 6 7 8 9 10
P i a b a b a b a b c a
bi 0 0 1 2 3 4 5 6 0 1
18
Kompleksitas Waktu Algoritma KMP
  • Menghitung fungsi pinggiran O(m),
  • Pencarian string O(n)
  • Kompleksitas waktu algoritma KMP adalah O(mn).
Write a Comment
User Comments (0)
About PowerShow.com