SlideShare a Scribd company logo
2
Most read
4
Most read
6
Most read
Algoritma PencarianAlgoritma Pencarian StringString
((String MatchingString Matching))
Persoalan pencarianPersoalan pencarian stringstring
Diberikan:
1. teks (text), yaitu (long) string yang panjangnya
n karakter
2. pattern, yaitu string dengan panjang m
karakter (m < n) yang akan dicari di dalam
teks.
Carilah (find atau locate) lokasi pertama di dalam
teks yang bersesuaian dengan pattern.
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?
AlgoritmaAlgoritma Brute ForceBrute Force
Contoh 4:
Teks: nobody noticed him
Pattern: not
nobody noticed him
s=0 not
s=1 not
s=2 not
s=3 not
s=4 not
s=5 not
s=6 not
s=7 not
Contoh 10.4:
Teks: 10010101001011110101010001
Pattern: 001011
10010101001011110101010001
s=0 001011
s=1 001011
s=2 001011
s=3 001011
s=4 001011
s=5 001011
s=6 001011
s=7 001011
s=8 001011
Kompleksitas algoritmaKompleksitas algoritma bbrrute-forceute-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
• Kasus terburuk: m(n – m + 1) = O(mn)
• Teks:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaab
• Pattern: aaaab
Algoritma Knuth-Morris-PrattAlgoritma Knuth-Morris-Pratt
(KMP)(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.
• Sedangkan pada algoritma KMP, kita
memelihara informasi yang digunakan
untuk melakukan jumlah pergeseran.
Algoritma menggunakan informasi
tersebut untuk membuat pergeseran yang
lebih jauh, tidak hanya satu karakter
seperti pada algoritma brute force.
123456789…
Teks: bimbingan belajar atau bimbel
Pattern: bimbel
↑
j = 5
123456789…
Teks: bimbingan belajar atau bimbel
Pattern: bimbel
↑
j = 2
DefinisiDefinisi::
• Misalkan A adalah alfabet dan x = x1x2…xk
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 = x1x2…xk – 1 , k ∈ {1, 2, …, k – 1}
dengan kata lain, x diawali dengan u.
• Akhiran (suffix) dari x adalah upa-string
(substring) u dengan
• u = xk – b xk – b + 1 …xk , k ∈ {1, 2, …, k – 1}
dengan kata lain, x di akhiri dengan v.
• Pinggiran (border) dari x adalah upa-string
r sedemikian sehingga
r = x1x2…xk – 1 dan
u = xk – b xk – b + 1 …xk ,
k ∈ {1, 2, …, k – 1}
• dengan kata lain, pinggiran dari x adalah
upa-string yang keduanya awalan dan
juga akhiran sebenarnya dari x.
Contoh 6. Misalkan x = abacab.
Awalan sebenarnya dari x adalah
, a, ab, aba, abac, abaca
Akhiran sebenarnya dari x adalah
, b, ab, cab, acab, bacab
Pinggiran dari x adalah
, ab
Pinggiran mempunyai panjang 0, pinggiran ab
mempunyai panjang 2.
Fungsi Pinggiran (Fungsi Pinggiran (Border Function)Border Function)
Fungsi pinggiran b(j) didefinisikan sebagai ukuran awalan
terpanjang dari P yang merupakan akhiran dari P[1..j].
Sebagai contoh, tinjau pattern P = ababaa. Nilai F untuk
setiap karakter di dalam P adalah sebagai berikut:
j 1 2 3 4 5 6
P[j] a b a b a a
b(j) 0 0 1 2 3 1
procedure HitungPinggiran(input m : integer, P : array[1..m] of char,
output b : array[1..m] of integer)
{ Menghitung nilai b[1..m] untuk pattern P[1..m] }
Deklarasi
k,q : integer
Algoritma:
b[1]←0
q←2
k←0
for q←2 to m do
while ((k > 0) and (P[q] ≠ P[k+1])) do
k←b[k]
endwhile
if P[q]=P[k+1] then
k←k+1
endif
b[q]=k
endfor
Contoh 7:
Teks: abcabcabd
Pattern: abcabd
Mula-mula kita hitung fungsi pinggiran untuk pattern
tersebut:
j 1 2 3 4 5 6
P[j] a b c a b d
b(j) 0 0 0 1 2 0
Teks: abcabcabd
Pattern: abcabd
↑
j = 3
Kompleksitas Waktu Algoritma KMPKompleksitas Waktu Algoritma KMP
• Menghitung fungsi pinggiran : O(m),
• Pencarian string : O(n)
• Kompleksitas waktu algoritma KMP
adalah O(m+n).

More Related Content

What's hot (20)

PDF
5. Doubly Linked List (Struktur Data)
Kelinci Coklat
 
PPT
Metode pencarian heuristik
Baguss Chandrass
 
DOCX
Graf
Alvin Setiawan
 
PPTX
Ragam Dialog :: Interaksi Manusia dan Komputer
Auliaa Oktarianii
 
PPT
linear programming metode simplex
Bambang Kristiono
 
PDF
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
Lucha Kamala Putri
 
PPT
Modul 4 representasi pengetahuan
ahmad haidaroh
 
DOCX
Tugas mandiri struktur data
Asep Jaenudin
 
PPT
Modul 05 Pemodelan Konseptual
Arif Rahman
 
PPTX
Jenis dan proses interupsi
laurensius08
 
PDF
Konsep Data Mining
dedidarwis
 
DOCX
Diagram Konteks dan DFD Sistem Informasi Penjualan
Ricky Kusriana Subagja
 
PPTX
Algoritma Greedy (contoh soal)
Ajeng Savitri
 
PPT
Tugas IMK : Ragam Dialog
Pio
 
PDF
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Adam Mukharil Bachtiar
 
PPT
Algoritma brute force
Vocational High School 3 Tegal
 
PDF
PENELITIAN OPERASIONAL - PROGRAMA LINIER - METODE PRIMAL DUAL
Universitas Qomaruddin, Gresik, Indonesia
 
PDF
01 02-pseudocode
Evert Sandye Taasiringan
 
PDF
Analisis Algoritma - Pengantar Kompleksitas Algoritma
Adam Mukharil Bachtiar
 
DOCX
Penjelasan Program
Reynes E. Tekay
 
5. Doubly Linked List (Struktur Data)
Kelinci Coklat
 
Metode pencarian heuristik
Baguss Chandrass
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Auliaa Oktarianii
 
linear programming metode simplex
Bambang Kristiono
 
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
Lucha Kamala Putri
 
Modul 4 representasi pengetahuan
ahmad haidaroh
 
Tugas mandiri struktur data
Asep Jaenudin
 
Modul 05 Pemodelan Konseptual
Arif Rahman
 
Jenis dan proses interupsi
laurensius08
 
Konsep Data Mining
dedidarwis
 
Diagram Konteks dan DFD Sistem Informasi Penjualan
Ricky Kusriana Subagja
 
Algoritma Greedy (contoh soal)
Ajeng Savitri
 
Tugas IMK : Ragam Dialog
Pio
 
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Adam Mukharil Bachtiar
 
Algoritma brute force
Vocational High School 3 Tegal
 
PENELITIAN OPERASIONAL - PROGRAMA LINIER - METODE PRIMAL DUAL
Universitas Qomaruddin, Gresik, Indonesia
 
01 02-pseudocode
Evert Sandye Taasiringan
 
Analisis Algoritma - Pengantar Kompleksitas Algoritma
Adam Mukharil Bachtiar
 
Penjelasan Program
Reynes E. Tekay
 

Viewers also liked (20)

PDF
Commander Wish Kapolri
Kukuh Setiawan
 
PDF
PAPARAN KARODALOPS SOPS POLRI
Kukuh Setiawan
 
PPTX
Algoritma Knuth-Morris-Pratt
Fajar Sany
 
PDF
Tindak lanjut penjabaran program prioritas kapolri
Kukuh Setiawan
 
PPT
String Matching with Finite Automata,Aho corasick,
8neutron8
 
PPTX
A very brief history of GITJ
Kukuh Setiawan
 
PPTX
207 p11
itranus
 
PPTX
Team Building and Teamwork
dodonlubis
 
PPT
Pattern matching in ds by m anoj vasava=mca
Manoj_vasava
 
PPTX
String matching algorithms(knuth morris-pratt)
Neel Shah
 
PPT
Algoritmo de Rabin-Karp
Lorran Pegoretti
 
PPTX
Sop upt terminal bandung
Kukuh Setiawan
 
PDF
Algoritma dan Struktur Data - Binary Search
KuliahKita
 
PPT
Naive String Matching Algorithm | Computer Science
Transweb Global Inc
 
PDF
Paparan perkap pangkat sangat oke
f1tri
 
PDF
Kmp
akruthi k
 
PPTX
String Match | Computer Science
Transweb Global Inc
 
PDF
Diktat Algoritma Pemrograman Java
Muhammad Yunus
 
PDF
06. string matching
Onkar Nath Sharma
 
Commander Wish Kapolri
Kukuh Setiawan
 
PAPARAN KARODALOPS SOPS POLRI
Kukuh Setiawan
 
Algoritma Knuth-Morris-Pratt
Fajar Sany
 
Tindak lanjut penjabaran program prioritas kapolri
Kukuh Setiawan
 
String Matching with Finite Automata,Aho corasick,
8neutron8
 
A very brief history of GITJ
Kukuh Setiawan
 
207 p11
itranus
 
Team Building and Teamwork
dodonlubis
 
Pattern matching in ds by m anoj vasava=mca
Manoj_vasava
 
String matching algorithms(knuth morris-pratt)
Neel Shah
 
Algoritmo de Rabin-Karp
Lorran Pegoretti
 
Sop upt terminal bandung
Kukuh Setiawan
 
Algoritma dan Struktur Data - Binary Search
KuliahKita
 
Naive String Matching Algorithm | Computer Science
Transweb Global Inc
 
Paparan perkap pangkat sangat oke
f1tri
 
String Match | Computer Science
Transweb Global Inc
 
Diktat Algoritma Pemrograman Java
Muhammad Yunus
 
06. string matching
Onkar Nath Sharma
 
Ad

Similar to Algoritma Pencarian String matching (9)

PPT
String Matching ingormatika kelas xi.ppt
Girl38
 
PPT
String Matching.pptscscacacsccccccccccccccccccccccccccccccc
AfifKurniawanSupriya
 
PPTX
HANDWRITING RECOGNITION
anonymous anonymous
 
PDF
Penggunaan array
Fajar Baskoro
 
PPTX
Kelomp12321321321312321312323213ok 5.pptx
MIDaniRahmatPutra
 
PPTX
String+algorithm+%28 kel+7%29
Suprionidas
 
PPTX
Slide Presentation Final Project (S1)
Asep Rojali
 
DOCX
Algoritma a
kemprut
 
DOCX
Algoritma a
kemprut
 
String Matching ingormatika kelas xi.ppt
Girl38
 
String Matching.pptscscacacsccccccccccccccccccccccccccccccc
AfifKurniawanSupriya
 
HANDWRITING RECOGNITION
anonymous anonymous
 
Penggunaan array
Fajar Baskoro
 
Kelomp12321321321312321312323213ok 5.pptx
MIDaniRahmatPutra
 
String+algorithm+%28 kel+7%29
Suprionidas
 
Slide Presentation Final Project (S1)
Asep Rojali
 
Algoritma a
kemprut
 
Algoritma a
kemprut
 
Ad

More from Kukuh Setiawan (15)

PPTX
CPM (Network Planning CPM) - Manajemen proyek
Kukuh Setiawan
 
PPTX
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
Kukuh Setiawan
 
PPTX
Manajemen Proyek (CPM, PIM, EVM)
Kukuh Setiawan
 
PPTX
Standar pelayanan publik ( s p p ) point
Kukuh Setiawan
 
PDF
Shottcut Word 2013
Kukuh Setiawan
 
DOCX
Hidden Markov Model Classification And Gabor Filter Preprocessing
Kukuh Setiawan
 
PDF
Seajarah upt dishub kota bandung
Kukuh Setiawan
 
PDF
Mekanisme penyetoran retribusi parkir dishub kota bandung
Kukuh Setiawan
 
PPTX
Analisis penerimaan pengguna smile di unit planning deployment pt. telkom den...
Kukuh Setiawan
 
PPTX
Ekspose kadishub review renstra
Kukuh Setiawan
 
PDF
Publikasi Karya Ilmiah Tahun 2014 (Jurnal Internasional)
Kukuh Setiawan
 
PDF
3 Jam Menguasai Pemrograman C/C++ Edisi 1
Kukuh Setiawan
 
DOCX
System Informasi Rental Komik
Kukuh Setiawan
 
PPTX
Sistem inferensi fuzzy metode mamdani
Kukuh Setiawan
 
PPSX
Robotika
Kukuh Setiawan
 
CPM (Network Planning CPM) - Manajemen proyek
Kukuh Setiawan
 
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
Kukuh Setiawan
 
Manajemen Proyek (CPM, PIM, EVM)
Kukuh Setiawan
 
Standar pelayanan publik ( s p p ) point
Kukuh Setiawan
 
Shottcut Word 2013
Kukuh Setiawan
 
Hidden Markov Model Classification And Gabor Filter Preprocessing
Kukuh Setiawan
 
Seajarah upt dishub kota bandung
Kukuh Setiawan
 
Mekanisme penyetoran retribusi parkir dishub kota bandung
Kukuh Setiawan
 
Analisis penerimaan pengguna smile di unit planning deployment pt. telkom den...
Kukuh Setiawan
 
Ekspose kadishub review renstra
Kukuh Setiawan
 
Publikasi Karya Ilmiah Tahun 2014 (Jurnal Internasional)
Kukuh Setiawan
 
3 Jam Menguasai Pemrograman C/C++ Edisi 1
Kukuh Setiawan
 
System Informasi Rental Komik
Kukuh Setiawan
 
Sistem inferensi fuzzy metode mamdani
Kukuh Setiawan
 
Robotika
Kukuh Setiawan
 

Recently uploaded (9)

PDF
peta konsep keterbatasan fasilitas koding
ErvinaAriyanti1
 
PPTX
Cara mengoperasikan radio amatir bagi para pemula
muhmukhtar53
 
PPTX
MATERI PENGENALAN JURUSAN TJKT 2025.pptx
rahmadi2245
 
PPTX
MATERI PENGENALAN JURUSAN TJKT 2025.pptx
rahmadi2245
 
PDF
ANALISIS SENTIMEN REVIEW WISATAWAN TERHADAP SEKUMPUL WATERFALL MENGGUNAKAN ME...
I Made Putra Sedana
 
PPTX
Materi Konsentrasi Keahlian Routing .pptx
rahmadi2245
 
PPTX
Analisis_Penyadapan_Telegram_Forensik.pptx
dimasma16
 
PPTX
1727160446_PPT_Kelompok_3_Pemrograman_Web_Dasar
mhfaizalardillia22
 
PDF
Peran Artificial Intelligence sebagai Force Multiplier dalam Network-Centric ...
sprgirllsasa
 
peta konsep keterbatasan fasilitas koding
ErvinaAriyanti1
 
Cara mengoperasikan radio amatir bagi para pemula
muhmukhtar53
 
MATERI PENGENALAN JURUSAN TJKT 2025.pptx
rahmadi2245
 
MATERI PENGENALAN JURUSAN TJKT 2025.pptx
rahmadi2245
 
ANALISIS SENTIMEN REVIEW WISATAWAN TERHADAP SEKUMPUL WATERFALL MENGGUNAKAN ME...
I Made Putra Sedana
 
Materi Konsentrasi Keahlian Routing .pptx
rahmadi2245
 
Analisis_Penyadapan_Telegram_Forensik.pptx
dimasma16
 
1727160446_PPT_Kelompok_3_Pemrograman_Web_Dasar
mhfaizalardillia22
 
Peran Artificial Intelligence sebagai Force Multiplier dalam Network-Centric ...
sprgirllsasa
 

Algoritma Pencarian String matching

  • 1. Algoritma PencarianAlgoritma Pencarian StringString ((String MatchingString Matching))
  • 2. Persoalan pencarianPersoalan pencarian stringstring Diberikan: 1. teks (text), yaitu (long) string yang panjangnya n karakter 2. pattern, yaitu string dengan panjang m karakter (m < 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. AlgoritmaAlgoritma Brute ForceBrute Force Contoh 4: Teks: nobody noticed him Pattern: not nobody noticed him s=0 not s=1 not s=2 not s=3 not s=4 not s=5 not s=6 not s=7 not
  • 5. Contoh 10.4: Teks: 10010101001011110101010001 Pattern: 001011 10010101001011110101010001 s=0 001011 s=1 001011 s=2 001011 s=3 001011 s=4 001011 s=5 001011 s=6 001011 s=7 001011 s=8 001011
  • 6. Kompleksitas algoritmaKompleksitas algoritma bbrrute-forceute-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-PrattAlgoritma Knuth-Morris-Pratt (KMP)(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 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. DefinisiDefinisi:: • Misalkan A adalah alfabet dan x = x1x2…xk 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 = x1x2…xk – 1 , k ∈ {1, 2, …, k – 1} dengan kata lain, x diawali dengan u.
  • 12. • Akhiran (suffix) dari x adalah upa-string (substring) u dengan • u = xk – b xk – b + 1 …xk , k ∈ {1, 2, …, k – 1} dengan kata lain, x di akhiri dengan v.
  • 13. • Pinggiran (border) dari x adalah upa-string r sedemikian sehingga r = x1x2…xk – 1 dan u = xk – b xk – b + 1 …xk , k ∈ {1, 2, …, k – 1} • dengan kata lain, pinggiran dari x adalah upa-string yang keduanya awalan dan juga akhiran sebenarnya dari x.
  • 14. Contoh 6. Misalkan x = abacab. Awalan sebenarnya dari x adalah , a, ab, aba, abac, abaca Akhiran sebenarnya dari x adalah , b, ab, cab, acab, bacab Pinggiran dari x adalah , ab Pinggiran mempunyai panjang 0, pinggiran ab mempunyai panjang 2.
  • 15. Fungsi Pinggiran (Fungsi Pinggiran (Border Function)Border Function) Fungsi pinggiran b(j) didefinisikan sebagai ukuran awalan terpanjang dari P yang merupakan akhiran dari P[1..j]. Sebagai contoh, tinjau pattern P = ababaa. Nilai F untuk setiap karakter di dalam P adalah sebagai berikut: j 1 2 3 4 5 6 P[j] a b a b a a b(j) 0 0 1 2 3 1
  • 16. procedure HitungPinggiran(input m : integer, P : array[1..m] of char, output b : array[1..m] of integer) { Menghitung nilai b[1..m] untuk pattern P[1..m] } Deklarasi k,q : integer Algoritma: b[1]←0 q←2 k←0 for q←2 to m do while ((k > 0) and (P[q] ≠ P[k+1])) do k←b[k] endwhile if P[q]=P[k+1] then k←k+1 endif b[q]=k endfor
  • 17. Contoh 7: Teks: abcabcabd Pattern: abcabd Mula-mula kita hitung fungsi pinggiran untuk pattern tersebut: j 1 2 3 4 5 6 P[j] a b c a b d b(j) 0 0 0 1 2 0 Teks: abcabcabd Pattern: abcabd ↑ j = 3
  • 18. Kompleksitas Waktu Algoritma KMPKompleksitas Waktu Algoritma KMP • Menghitung fungsi pinggiran : O(m), • Pencarian string : O(n) • Kompleksitas waktu algoritma KMP adalah O(m+n).