SlideShare a Scribd company logo
1 of 5
Download to read offline
MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam
Proses Pencarian String
Rama Aulia
Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung
Jl. Ganesha 10, Bandung
e-mail: if16023@students.if.itb.ac.id
ABSTRAK
Makalah ini membahas tentang analisis algoritma
pencocokan string. Pembahasan pada makalah ini
lebih ditekankan pada pembahasan beberapa
algoritma pencocokan string yang sering digunakan
dalam implementasi pencarian suatu kata atau
kalimat pada program aplikasi komputer.
Algoritma pencarian string merupakan suatu bagian
penting dalam pemrosesan teks. Algoritma pencarian
string merupakan komponen utama dalam
implementasi software sistem operasi. Pencarian deret
karakter tertentu dalam teks merupakan bahasan
yang tidak akan pernah habis di dalam ilmu
komputer.
Algoritma yang digunakan dalam proses pencocokan
string antara lain Algoritma Brute Force, Algoritma
Knuth-Morris-Pratt (KMP), Algoritma Boyer-Moore
(BM), Algoritma Karp-Rabin, dan Algoritma Shift Or.
Karena algoritma untuk pencarian string atau kata di
dalam teks banyak, maka hendaknya kita seharusnya
mempertimbangkan kompleksitas algoritma yang ada
dengan menganalisis kelebihan dan kekurangan dari
algoritma pencarian string agar diperoleh efisiensi di
dalam pencarian kata pada program aplikasi.
Kata kunci: string matching algorithm, application
program, Brute Force algorithm, Knuth Morris Pratt
algorithm, Boyer Moore algorithm, Karp Rabin
algorithm, Shift Or algorithm
1. PENDAHULUAN
Pencarian string merupakan kegiatan yang sangat sering
dilakukan oleh pengguna komputer. Dalam kehidupan
sehari-hari, user (pengguna komputer) pasti berhubungan
dengan yang namanya pencarian string. Untuk mencari
suatu kata misalnya di dalam program Microsoft Word
atau pun di web browser seperti Mozilla Firefox atau
Internet Explorer, user akan berhubungan dengan bagian
find yang merupakan penerapan langsung dari algoritma
pencarian string di dalam program aplikasi.
Pencarian string di dalam teks disebut juga dengan
pencocokan string (string matching atau pattern
matching). Perumusan persoalan pencarian string yaitu
dengan diberikannya teks atau long string dengan panjang
n karakter dan pattern yaitu string yang akan dicari di
dalam teks dengan panjang m karakter, dengan m lebih
kecil dari n karakter.
2. ALGORITMA KNUTH MORRIS PRATT
2.1 Deskripsi Algoritma Knuth Morris Pratt
Algoritma Knuth Morris Pratt (KMP) dikembangkan
oleh D. E. Knuth, bersama dengan J. H. Morris dan V. R.
Pratt. Untuk pencarian string dengan algoritma Brute
Force , setiap kali ditemukan ketidakcocokan dengan teks,
maka pattern akan digeser satu karakter ke kanan. Berbeda
dengan algoritma Brute Force, informasi yang digunakan
masih dipelihara untuk melakukan jumlah pergeseran.
Algoritma menggunakan informasi tersebut untuk
membuat pergeseran yang lebih jauh, tidak hanya satu
karakter
Perbandingan antara algoritma brute force dengan
algoritma KMP ditunjukkkan dengan perpindahan posisi
pattern terhadap posisi teks. Dimana dalam hal
pencocokan string, pattern yang dicocokkan berawal dari
kiri teks.
Kompleksitas algoritma pencocokan string dihitung dari
jumlah operasi perbandingan yang dilakukan.
Kompleksitas waktu terbaik dari algoritma brute force
adalah O(n). Kasus terbaik terjadi jika pada operasi
perbandingan, setiap huruf pattern yang dicocokkan
dengan awal dari teks adalah sama. Kompleksitas waktu
terburuk dari brute force adalah O(mn).
MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
Jika dibandingkan dengan algoritma brute force, maka
algoritma KMP mempunyai kompleksitas algoritma
O(m+n).
Definisi yang digunakan, Y adalah suatu alfabet dan
z = z1z2…zk, k N,
adalah string dengan panjang k, yang dibentuk dari
karakter di alfabet di dalam alfabet A. Awalan prefix dari
z adalah upa-string w, dengan
w = zk-bzk-b+1…zk, k {1, 2, .., k-1}
Pinggiran dari z adalah substring r, sehingga
r = z1z2…zk, dan r = zk-bzk-b+1…zk, k {1, 2, .., k-1}
2.1.1 Fungsi Pinggiran
Algoritma KMP melakukan proses awal terhadap
pattern dengan menghitung fungsi pinggiran Dengan
adanya fungsi pinggiran ini, maka dapat dicegah
pergeseran yang tidak berguna, seperti yang terjadi pada
algoritma brute force.
Fungsi pinggiran hanya bergantung pada karakter yang
ada di dalam pattern, tidak bergantung kepada karakter di
dalam teks. Berikut adalah algoritma untuk mencari fungsi
pinggiran di dalam pattern.
Adapun algoritma KMP yang lebih lengkap, sebagai
berikut.
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, i : 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
procedure KMPsearch (input m, n : integer,
input P : array[1..m] of char, input T :
array[1..n] of char, output idx : integer)
{Mencari kecocokan pattern P di dalam teks T
dengan algoritma Knuth-Morris-Pratt. Jika
ditemukan P di dalam T, lokasi awal kecocokan
disimpan di dalam peubah idx
Masukan : pattern P yang panjangnya m dan teks
T yang panjangnya n. Teks T direpresentasikan
sebagai string (array of character)
Keluaran : posisi awal kecocokan (idx). Jika
ditemukan, idx = -1
}
Deklarasi
i, j : integer
ketemu : boolean
b : array[1..m] of integer
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]}
Algoritma
HitungPinggiran(m, P, b)
j 0
i 1
ketemu false
while(i n and not ketemu) do
while((j > 0) and (P[j+1] T[i]) do
j b[j]
endwhile
if P[j+1] = T[I] then
j j + 1
endif
if j = m then
ketemu = true
else
i i + 1
endif
endwhile
if ketemu then
idx i-m+1
else
idx = -1
endif
MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
3. ALGORITMA BOYER MOORE
3.1 Dekripsi Algoritma Boyer Moore
Algoritma pencarian string Boyer Moore merupakan
algoritma pencarian string yang paling efisien dalam
aplikasi sehari hari. Algoritma tersebut dikembangkan
oleh Bob Boyer dan J Strother Moore pada tahun 1977.
Pada proses pencarian string, algoritma Boyer Moore
membaca karakter-karakter dari pattern dari kanan ke kiri.
Dalam kasus dimana jumlah karakter pada pattern lebih
sedikit daripada jumlah karakter pada teks maka algoritma
tersebut menggunakan 2 buah fungsi precomputed. 2 buah
fungsi pengubah ini disebut good-suffix shift.
Aturan pada good-suffix shift bertujuan untuk
menangani kasus dimana terdapat pengulangan karakter
pada pattern.
3.1.1 Prinsip Dasar
Algoritma Boyer Moore mempunyai empat konsep
dasar di dalam proses pencarian string, yaitu :
1. Preprocessing
2. Right-to-left-scan
3. Bad-character-rule
4. Good-suffix-rule
Precomputation dari algoritma Boyer Moore terdiri dari
bad-character preprocessing dan good-suffix
preprocessing. Prinsip dasar yang pertama dari algoritma
Boyer-Moore adalah melakukan perbandingan antara
pattern yang dicari dengan teks. Perbandingan pattern
dengan teks dilakukan dari arah kanan ke kiri.
Perbandingan dimulai dengan membandingkan antara
karakter paling kanan dari pattern dengan teks. Jika terjadi
kecocokkan, maka perbandingan akan dilanjutkan dengan
karakter yang di sebelah kiri dari yang dibandingkan
sampai ke karakter pertama dari pattern. Jika terjadi
ketidakcocokkan maka akan dilakukan pergeseran yang
ditentukan oleh 2 fungsi pergeseran yaitu bad character
shift dan good suffix shift. Aturan dari bad character shift
dibutuhkan untuk menghindari pengulangan perbandingan
yang gagal dari suatu karakter dalam teks dengan pattern.
Aturan dari good suffix shift dibutuhkan untuk menangani
kasus yang di dalamnya terdapat pengulangan karaker
pada pattern.
Penjelasan algoritma Boyer Moore sebagai berikut.
Anggap sebuah string
B = B[1], …, B[i]
dan diperiksa string lain
M = M[1], …, M[j], j i
apakah string M merupakan substring dari string B atau
terdapat substring
B’ = B[k], …, B[k+j], k + j i
dengan hubungan bahwa B’ M. Algoritma Boyer –
Moore adalah algoritma yang memanfaatkan fakta bahwa:
1. Jika terdapat setidaknya satu elemen dalam
{s | s B’} yang tidak berada dalam T maka
B’ M
jika kondisi tersebut yang didapat, maka lakukan
perubahan nilai
k k + j
selama k + j i, sehingga B’ diganti seluruhnya
2. Jika terdapat simbol a = B[k + l] dan a’ = M[m]
dimana a = a’ , namun l m terdapat kemungkinan
ada k’ dan substring lain dari B,
B’’ = B[k’], …, B[k’ + j], k’ + j i
dimana
B’’ M
Masih terdapat masalah bila hanya kedua langkah
tersebut yang digunakan, karena bila string yang
kita hadapi misalnya adalah
abbabbabababbabababbbaaaa
dan string yang ingin dicari yaitu
aaaa
lalu pencocokan linear dilakukan dari indeks
terkecil, maka pergeseran indeks k akan terlalu
sering dilakukan; batas bawah unjuk kerja
pencarian dengan cara ini mendekati unjuk kerja
algoritma brute-force. Langkah optimasi lebih
lanjut adalah memulai pencocokan dari elemen
dengan indeks terbesar (S[k + j] dan T[j]), yang
berakibat meminimalkan pergeseran indeks k.
MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
Untuk asumsi dimana terjadi mismatch antara karakter
x[i] = a pada pattern dengan karakter y = [i+j] pada teks.
Maka akan menghasilkan
x[i+1 .. m-1]=y[i+j+1 .. j+m-1]=u dan x[i] y[i+j]
Good suffix shift terdapat pada segmen
y[i+j+1 .. j+m-1]=x[i+1 .. m-1]
Gambar 1. good suffix shift
Jika tidak terdapat segmen, maka pergerakan terjadi
dalam perbandingan dari akhiran v pada y[i+j+1 .. j+m-1]
Gambar 2. Good suffix shift, hanya akhiran u terdapat
kembali pada x
Bad character shift terjadi pada perbandingan karaker
teks y[i+j]
Gambar 3. bad character shift, a terdapat pada x
Gambar 4. bad character shift, b tidak terdapat pada x
Analisis kompleksitas algoritma Boyer Moore
menyangkut 3 hal yaitu komplekstitas waktu,
kompleksitas ruang, dan waktu pemrosesan. Kasus terbaik
pada algoritma Boyer Moore terjadi jika pertama kali
masing-masing percobaan membandingkan simbol teks
tidak cocok dengan yang ada di pattern. Sehingga
kompleksitas waktu yang terbaik dengan notasi big O
yaitu O(N/M). Kompleksitas waktu untuk kasus terburuk
adalah O(Nm). Pada umumnya, kompleksitas waktu yang
dibutuhkan untuk kasus rata-rata adalah O(N/M).
Waktu yang dibutuhkan oleh algoritma Boyer Moore
dalam preprocessing fungsi good suffix shift adalah O(M).
Sedangkan untuk kompleksitas preprocessing aturan bad
character adalah O(M + |alphabet|) untuk kompleksitas
ruang dari algoritma Boyer Moore adalah O(m +
|alphabet|).
Untuk perbandingan dengan algoritma lain seperti
algoritma Brute force. Kelebihan algoritma Boyer Moore
terdapat pada kecepatan untuk pattern yang panjang.
Selain itu, algoritma Boyer Moore lebih cepat daripada
algoritma Brute Force. Sedangkan untuk kekurangan yang
dimiliki oleh algoritma Boyer Moore yaitu antara lain
tidak bagus untuk binary string dan lebih lambat untuk
pattern yang pendek.
4. KESIMPULAN
Proses pencarian string merupakan hal yang sangat
fundamental di dalam program aplikasi karena mencari
kata di dalam suatu teks merupakan hal yang sangat sering
dilakukan. Algoritma pencarian string jenisnya bermacam
– macam. Untuk algoritma Knuth Morris Pratt, pergeseran
pattern dilakukan tidak hanya satu karakter seperti pada
Algoritma Brute Force, hal tersebut bergantung pada
informasi yang disimpan untuk pergeseran. Untuk
Algoritma Boyer Moore, terdapat keunikan dimana
perbandingan pattern dilakukan mulai dari kanan ke kiri.
MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
REFERENSI
[1] Munir, Rinaldi. (2007). Diktat Kuliah IF2251 Strategi
Algoritmik. Program Studi Teknik Informatika, Institut
Teknologi Bandung.
[2] Boyer R.S., Moore J.S., 1977, A fast string
searching algorithm. Communications of the
ACM. 20:762-772.
[3] http://en.wikipedia.org/wiki/Boyer-
Moore_string_search_algorithm.html
[4] http://en.wikipedia.org/wiki/
Knuth_morris_pratt_algorithm.html

More Related Content

More from Fajar Baskoro

Cara Membuat Kursus Online Wordpress-tutorstarter
Cara Membuat Kursus Online Wordpress-tutorstarterCara Membuat Kursus Online Wordpress-tutorstarter
Cara Membuat Kursus Online Wordpress-tutorstarterFajar Baskoro
 
PPT-Kick Off Double Track 2024 melaksanakan Festival Ramadhan
PPT-Kick Off Double Track 2024 melaksanakan Festival RamadhanPPT-Kick Off Double Track 2024 melaksanakan Festival Ramadhan
PPT-Kick Off Double Track 2024 melaksanakan Festival RamadhanFajar Baskoro
 
Buku Inovasi 2023 - 2024 konsep capaian KUS
Buku Inovasi 2023 - 2024 konsep capaian  KUSBuku Inovasi 2023 - 2024 konsep capaian  KUS
Buku Inovasi 2023 - 2024 konsep capaian KUSFajar Baskoro
 
Pemaparan Sosialisasi Program Dual Track 2024.pptx
Pemaparan Sosialisasi Program Dual Track 2024.pptxPemaparan Sosialisasi Program Dual Track 2024.pptx
Pemaparan Sosialisasi Program Dual Track 2024.pptxFajar Baskoro
 
Executive Millennial Entrepreneur Award 2023-1a-1.pdf
Executive Millennial Entrepreneur Award  2023-1a-1.pdfExecutive Millennial Entrepreneur Award  2023-1a-1.pdf
Executive Millennial Entrepreneur Award 2023-1a-1.pdfFajar Baskoro
 
1-Executive Millennial Entrepreneur Award 2023-1-cetak.pptx
1-Executive Millennial Entrepreneur Award  2023-1-cetak.pptx1-Executive Millennial Entrepreneur Award  2023-1-cetak.pptx
1-Executive Millennial Entrepreneur Award 2023-1-cetak.pptxFajar Baskoro
 
Executive Millennial Entrepreneur Award 2023-1.pptx
Executive Millennial Entrepreneur Award  2023-1.pptxExecutive Millennial Entrepreneur Award  2023-1.pptx
Executive Millennial Entrepreneur Award 2023-1.pptxFajar Baskoro
 
Pemrograman Mobile - JetPack Compose1.pptx
Pemrograman Mobile - JetPack Compose1.pptxPemrograman Mobile - JetPack Compose1.pptx
Pemrograman Mobile - JetPack Compose1.pptxFajar Baskoro
 
Evaluasi KPP Program Dual Track Provinsi Kaltim
Evaluasi KPP Program Dual Track Provinsi KaltimEvaluasi KPP Program Dual Track Provinsi Kaltim
Evaluasi KPP Program Dual Track Provinsi KaltimFajar Baskoro
 
foto tenda digital skill program dari sekolah
foto tenda digital skill program dari sekolahfoto tenda digital skill program dari sekolah
foto tenda digital skill program dari sekolahFajar Baskoro
 
Meraih Peluang di Gig Economy yang cocok bagi remaja
Meraih Peluang di Gig Economy yang cocok bagi remajaMeraih Peluang di Gig Economy yang cocok bagi remaja
Meraih Peluang di Gig Economy yang cocok bagi remajaFajar Baskoro
 
Membangun aplikasi mobile dengan Appsheet
Membangun aplikasi mobile dengan AppsheetMembangun aplikasi mobile dengan Appsheet
Membangun aplikasi mobile dengan AppsheetFajar Baskoro
 
Transition education to employment.pdf
Transition education to employment.pdfTransition education to employment.pdf
Transition education to employment.pdfFajar Baskoro
 
Proposal-Penawaran-Business-Analytics-and-Intelligence.pdf
Proposal-Penawaran-Business-Analytics-and-Intelligence.pdfProposal-Penawaran-Business-Analytics-and-Intelligence.pdf
Proposal-Penawaran-Business-Analytics-and-Intelligence.pdfFajar Baskoro
 

More from Fajar Baskoro (20)

Cara Membuat Kursus Online Wordpress-tutorstarter
Cara Membuat Kursus Online Wordpress-tutorstarterCara Membuat Kursus Online Wordpress-tutorstarter
Cara Membuat Kursus Online Wordpress-tutorstarter
 
PPT-Kick Off Double Track 2024 melaksanakan Festival Ramadhan
PPT-Kick Off Double Track 2024 melaksanakan Festival RamadhanPPT-Kick Off Double Track 2024 melaksanakan Festival Ramadhan
PPT-Kick Off Double Track 2024 melaksanakan Festival Ramadhan
 
Buku Inovasi 2023 - 2024 konsep capaian KUS
Buku Inovasi 2023 - 2024 konsep capaian  KUSBuku Inovasi 2023 - 2024 konsep capaian  KUS
Buku Inovasi 2023 - 2024 konsep capaian KUS
 
Pemaparan Sosialisasi Program Dual Track 2024.pptx
Pemaparan Sosialisasi Program Dual Track 2024.pptxPemaparan Sosialisasi Program Dual Track 2024.pptx
Pemaparan Sosialisasi Program Dual Track 2024.pptx
 
Executive Millennial Entrepreneur Award 2023-1a-1.pdf
Executive Millennial Entrepreneur Award  2023-1a-1.pdfExecutive Millennial Entrepreneur Award  2023-1a-1.pdf
Executive Millennial Entrepreneur Award 2023-1a-1.pdf
 
1-Executive Millennial Entrepreneur Award 2023-1-cetak.pptx
1-Executive Millennial Entrepreneur Award  2023-1-cetak.pptx1-Executive Millennial Entrepreneur Award  2023-1-cetak.pptx
1-Executive Millennial Entrepreneur Award 2023-1-cetak.pptx
 
Executive Millennial Entrepreneur Award 2023-1.pptx
Executive Millennial Entrepreneur Award  2023-1.pptxExecutive Millennial Entrepreneur Award  2023-1.pptx
Executive Millennial Entrepreneur Award 2023-1.pptx
 
Pemrograman Mobile - JetPack Compose1.pptx
Pemrograman Mobile - JetPack Compose1.pptxPemrograman Mobile - JetPack Compose1.pptx
Pemrograman Mobile - JetPack Compose1.pptx
 
Evaluasi KPP Program Dual Track Provinsi Kaltim
Evaluasi KPP Program Dual Track Provinsi KaltimEvaluasi KPP Program Dual Track Provinsi Kaltim
Evaluasi KPP Program Dual Track Provinsi Kaltim
 
foto tenda digital skill program dari sekolah
foto tenda digital skill program dari sekolahfoto tenda digital skill program dari sekolah
foto tenda digital skill program dari sekolah
 
Meraih Peluang di Gig Economy yang cocok bagi remaja
Meraih Peluang di Gig Economy yang cocok bagi remajaMeraih Peluang di Gig Economy yang cocok bagi remaja
Meraih Peluang di Gig Economy yang cocok bagi remaja
 
Membangun aplikasi mobile dengan Appsheet
Membangun aplikasi mobile dengan AppsheetMembangun aplikasi mobile dengan Appsheet
Membangun aplikasi mobile dengan Appsheet
 
epl1.pdf
epl1.pdfepl1.pdf
epl1.pdf
 
user.docx
user.docxuser.docx
user.docx
 
Dtmart.pptx
Dtmart.pptxDtmart.pptx
Dtmart.pptx
 
DualTrack-2023.pptx
DualTrack-2023.pptxDualTrack-2023.pptx
DualTrack-2023.pptx
 
BADGE.pptx
BADGE.pptxBADGE.pptx
BADGE.pptx
 
womenatwork.pdf
womenatwork.pdfwomenatwork.pdf
womenatwork.pdf
 
Transition education to employment.pdf
Transition education to employment.pdfTransition education to employment.pdf
Transition education to employment.pdf
 
Proposal-Penawaran-Business-Analytics-and-Intelligence.pdf
Proposal-Penawaran-Business-Analytics-and-Intelligence.pdfProposal-Penawaran-Business-Analytics-and-Intelligence.pdf
Proposal-Penawaran-Business-Analytics-and-Intelligence.pdf
 

Recently uploaded

demontrasi kontekstual modul 1.2.a. 6.pdf
demontrasi kontekstual modul 1.2.a. 6.pdfdemontrasi kontekstual modul 1.2.a. 6.pdf
demontrasi kontekstual modul 1.2.a. 6.pdfIndri117648
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxFuzaAnggriana
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfTaqdirAlfiandi1
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxarnisariningsih98
 
Model Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsModel Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsAdePutraTunggali
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfChrodtianTian
 
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxadap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxmtsmampunbarub4
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxBambang440423
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASreskosatrio1
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxnerow98
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...Kanaidi ken
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaNadia Putri Ayu
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]Abdiera
 
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxPrakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxSyaimarChandra1
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxDwiYuniarti14
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
Materi Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxMateri Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxc9fhbm7gzj
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisNazla aulia
 

Recently uploaded (20)

demontrasi kontekstual modul 1.2.a. 6.pdf
demontrasi kontekstual modul 1.2.a. 6.pdfdemontrasi kontekstual modul 1.2.a. 6.pdf
demontrasi kontekstual modul 1.2.a. 6.pdf
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
 
Model Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsModel Manajemen Strategi Public Relations
Model Manajemen Strategi Public Relations
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
 
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxadap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional Dunia
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
 
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxPrakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
Materi Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxMateri Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptx
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara Inggris
 

Penggunaan array

  • 1. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String Rama Aulia Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jl. Ganesha 10, Bandung e-mail: if16023@students.if.itb.ac.id ABSTRAK Makalah ini membahas tentang analisis algoritma pencocokan string. Pembahasan pada makalah ini lebih ditekankan pada pembahasan beberapa algoritma pencocokan string yang sering digunakan dalam implementasi pencarian suatu kata atau kalimat pada program aplikasi komputer. Algoritma pencarian string merupakan suatu bagian penting dalam pemrosesan teks. Algoritma pencarian string merupakan komponen utama dalam implementasi software sistem operasi. Pencarian deret karakter tertentu dalam teks merupakan bahasan yang tidak akan pernah habis di dalam ilmu komputer. Algoritma yang digunakan dalam proses pencocokan string antara lain Algoritma Brute Force, Algoritma Knuth-Morris-Pratt (KMP), Algoritma Boyer-Moore (BM), Algoritma Karp-Rabin, dan Algoritma Shift Or. Karena algoritma untuk pencarian string atau kata di dalam teks banyak, maka hendaknya kita seharusnya mempertimbangkan kompleksitas algoritma yang ada dengan menganalisis kelebihan dan kekurangan dari algoritma pencarian string agar diperoleh efisiensi di dalam pencarian kata pada program aplikasi. Kata kunci: string matching algorithm, application program, Brute Force algorithm, Knuth Morris Pratt algorithm, Boyer Moore algorithm, Karp Rabin algorithm, Shift Or algorithm 1. PENDAHULUAN Pencarian string merupakan kegiatan yang sangat sering dilakukan oleh pengguna komputer. Dalam kehidupan sehari-hari, user (pengguna komputer) pasti berhubungan dengan yang namanya pencarian string. Untuk mencari suatu kata misalnya di dalam program Microsoft Word atau pun di web browser seperti Mozilla Firefox atau Internet Explorer, user akan berhubungan dengan bagian find yang merupakan penerapan langsung dari algoritma pencarian string di dalam program aplikasi. Pencarian string di dalam teks disebut juga dengan pencocokan string (string matching atau pattern matching). Perumusan persoalan pencarian string yaitu dengan diberikannya teks atau long string dengan panjang n karakter dan pattern yaitu string yang akan dicari di dalam teks dengan panjang m karakter, dengan m lebih kecil dari n karakter. 2. ALGORITMA KNUTH MORRIS PRATT 2.1 Deskripsi Algoritma Knuth Morris Pratt Algoritma Knuth Morris Pratt (KMP) dikembangkan oleh D. E. Knuth, bersama dengan J. H. Morris dan V. R. Pratt. Untuk pencarian string dengan algoritma Brute Force , setiap kali ditemukan ketidakcocokan dengan teks, maka pattern akan digeser satu karakter ke kanan. Berbeda dengan algoritma Brute Force, informasi yang digunakan masih dipelihara untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter Perbandingan antara algoritma brute force dengan algoritma KMP ditunjukkkan dengan perpindahan posisi pattern terhadap posisi teks. Dimana dalam hal pencocokan string, pattern yang dicocokkan berawal dari kiri teks. Kompleksitas algoritma pencocokan string dihitung dari jumlah operasi perbandingan yang dilakukan. Kompleksitas waktu terbaik dari algoritma brute force adalah O(n). Kasus terbaik terjadi jika pada operasi perbandingan, setiap huruf pattern yang dicocokkan dengan awal dari teks adalah sama. Kompleksitas waktu terburuk dari brute force adalah O(mn).
  • 2. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 Jika dibandingkan dengan algoritma brute force, maka algoritma KMP mempunyai kompleksitas algoritma O(m+n). Definisi yang digunakan, Y adalah suatu alfabet dan z = z1z2…zk, k N, adalah string dengan panjang k, yang dibentuk dari karakter di alfabet di dalam alfabet A. Awalan prefix dari z adalah upa-string w, dengan w = zk-bzk-b+1…zk, k {1, 2, .., k-1} Pinggiran dari z adalah substring r, sehingga r = z1z2…zk, dan r = zk-bzk-b+1…zk, k {1, 2, .., k-1} 2.1.1 Fungsi Pinggiran Algoritma KMP melakukan proses awal terhadap pattern dengan menghitung fungsi pinggiran Dengan adanya fungsi pinggiran ini, maka dapat dicegah pergeseran yang tidak berguna, seperti yang terjadi pada algoritma brute force. Fungsi pinggiran hanya bergantung pada karakter yang ada di dalam pattern, tidak bergantung kepada karakter di dalam teks. Berikut adalah algoritma untuk mencari fungsi pinggiran di dalam pattern. Adapun algoritma KMP yang lebih lengkap, sebagai berikut. 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, i : 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 procedure KMPsearch (input m, n : integer, input P : array[1..m] of char, input T : array[1..n] of char, output idx : integer) {Mencari kecocokan pattern P di dalam teks T dengan algoritma Knuth-Morris-Pratt. Jika ditemukan P di dalam T, lokasi awal kecocokan disimpan di dalam peubah idx Masukan : pattern P yang panjangnya m dan teks T yang panjangnya n. Teks T direpresentasikan sebagai string (array of character) Keluaran : posisi awal kecocokan (idx). Jika ditemukan, idx = -1 } Deklarasi i, j : integer ketemu : boolean b : array[1..m] of integer 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]} Algoritma HitungPinggiran(m, P, b) j 0 i 1 ketemu false while(i n and not ketemu) do while((j > 0) and (P[j+1] T[i]) do j b[j] endwhile if P[j+1] = T[I] then j j + 1 endif if j = m then ketemu = true else i i + 1 endif endwhile if ketemu then idx i-m+1 else idx = -1 endif
  • 3. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 3. ALGORITMA BOYER MOORE 3.1 Dekripsi Algoritma Boyer Moore Algoritma pencarian string Boyer Moore merupakan algoritma pencarian string yang paling efisien dalam aplikasi sehari hari. Algoritma tersebut dikembangkan oleh Bob Boyer dan J Strother Moore pada tahun 1977. Pada proses pencarian string, algoritma Boyer Moore membaca karakter-karakter dari pattern dari kanan ke kiri. Dalam kasus dimana jumlah karakter pada pattern lebih sedikit daripada jumlah karakter pada teks maka algoritma tersebut menggunakan 2 buah fungsi precomputed. 2 buah fungsi pengubah ini disebut good-suffix shift. Aturan pada good-suffix shift bertujuan untuk menangani kasus dimana terdapat pengulangan karakter pada pattern. 3.1.1 Prinsip Dasar Algoritma Boyer Moore mempunyai empat konsep dasar di dalam proses pencarian string, yaitu : 1. Preprocessing 2. Right-to-left-scan 3. Bad-character-rule 4. Good-suffix-rule Precomputation dari algoritma Boyer Moore terdiri dari bad-character preprocessing dan good-suffix preprocessing. Prinsip dasar yang pertama dari algoritma Boyer-Moore adalah melakukan perbandingan antara pattern yang dicari dengan teks. Perbandingan pattern dengan teks dilakukan dari arah kanan ke kiri. Perbandingan dimulai dengan membandingkan antara karakter paling kanan dari pattern dengan teks. Jika terjadi kecocokkan, maka perbandingan akan dilanjutkan dengan karakter yang di sebelah kiri dari yang dibandingkan sampai ke karakter pertama dari pattern. Jika terjadi ketidakcocokkan maka akan dilakukan pergeseran yang ditentukan oleh 2 fungsi pergeseran yaitu bad character shift dan good suffix shift. Aturan dari bad character shift dibutuhkan untuk menghindari pengulangan perbandingan yang gagal dari suatu karakter dalam teks dengan pattern. Aturan dari good suffix shift dibutuhkan untuk menangani kasus yang di dalamnya terdapat pengulangan karaker pada pattern. Penjelasan algoritma Boyer Moore sebagai berikut. Anggap sebuah string B = B[1], …, B[i] dan diperiksa string lain M = M[1], …, M[j], j i apakah string M merupakan substring dari string B atau terdapat substring B’ = B[k], …, B[k+j], k + j i dengan hubungan bahwa B’ M. Algoritma Boyer – Moore adalah algoritma yang memanfaatkan fakta bahwa: 1. Jika terdapat setidaknya satu elemen dalam {s | s B’} yang tidak berada dalam T maka B’ M jika kondisi tersebut yang didapat, maka lakukan perubahan nilai k k + j selama k + j i, sehingga B’ diganti seluruhnya 2. Jika terdapat simbol a = B[k + l] dan a’ = M[m] dimana a = a’ , namun l m terdapat kemungkinan ada k’ dan substring lain dari B, B’’ = B[k’], …, B[k’ + j], k’ + j i dimana B’’ M Masih terdapat masalah bila hanya kedua langkah tersebut yang digunakan, karena bila string yang kita hadapi misalnya adalah abbabbabababbabababbbaaaa dan string yang ingin dicari yaitu aaaa lalu pencocokan linear dilakukan dari indeks terkecil, maka pergeseran indeks k akan terlalu sering dilakukan; batas bawah unjuk kerja pencarian dengan cara ini mendekati unjuk kerja algoritma brute-force. Langkah optimasi lebih lanjut adalah memulai pencocokan dari elemen dengan indeks terbesar (S[k + j] dan T[j]), yang berakibat meminimalkan pergeseran indeks k.
  • 4. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 Untuk asumsi dimana terjadi mismatch antara karakter x[i] = a pada pattern dengan karakter y = [i+j] pada teks. Maka akan menghasilkan x[i+1 .. m-1]=y[i+j+1 .. j+m-1]=u dan x[i] y[i+j] Good suffix shift terdapat pada segmen y[i+j+1 .. j+m-1]=x[i+1 .. m-1] Gambar 1. good suffix shift Jika tidak terdapat segmen, maka pergerakan terjadi dalam perbandingan dari akhiran v pada y[i+j+1 .. j+m-1] Gambar 2. Good suffix shift, hanya akhiran u terdapat kembali pada x Bad character shift terjadi pada perbandingan karaker teks y[i+j] Gambar 3. bad character shift, a terdapat pada x Gambar 4. bad character shift, b tidak terdapat pada x Analisis kompleksitas algoritma Boyer Moore menyangkut 3 hal yaitu komplekstitas waktu, kompleksitas ruang, dan waktu pemrosesan. Kasus terbaik pada algoritma Boyer Moore terjadi jika pertama kali masing-masing percobaan membandingkan simbol teks tidak cocok dengan yang ada di pattern. Sehingga kompleksitas waktu yang terbaik dengan notasi big O yaitu O(N/M). Kompleksitas waktu untuk kasus terburuk adalah O(Nm). Pada umumnya, kompleksitas waktu yang dibutuhkan untuk kasus rata-rata adalah O(N/M). Waktu yang dibutuhkan oleh algoritma Boyer Moore dalam preprocessing fungsi good suffix shift adalah O(M). Sedangkan untuk kompleksitas preprocessing aturan bad character adalah O(M + |alphabet|) untuk kompleksitas ruang dari algoritma Boyer Moore adalah O(m + |alphabet|). Untuk perbandingan dengan algoritma lain seperti algoritma Brute force. Kelebihan algoritma Boyer Moore terdapat pada kecepatan untuk pattern yang panjang. Selain itu, algoritma Boyer Moore lebih cepat daripada algoritma Brute Force. Sedangkan untuk kekurangan yang dimiliki oleh algoritma Boyer Moore yaitu antara lain tidak bagus untuk binary string dan lebih lambat untuk pattern yang pendek. 4. KESIMPULAN Proses pencarian string merupakan hal yang sangat fundamental di dalam program aplikasi karena mencari kata di dalam suatu teks merupakan hal yang sangat sering dilakukan. Algoritma pencarian string jenisnya bermacam – macam. Untuk algoritma Knuth Morris Pratt, pergeseran pattern dilakukan tidak hanya satu karakter seperti pada Algoritma Brute Force, hal tersebut bergantung pada informasi yang disimpan untuk pergeseran. Untuk Algoritma Boyer Moore, terdapat keunikan dimana perbandingan pattern dilakukan mulai dari kanan ke kiri.
  • 5. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 REFERENSI [1] Munir, Rinaldi. (2007). Diktat Kuliah IF2251 Strategi Algoritmik. Program Studi Teknik Informatika, Institut Teknologi Bandung. [2] Boyer R.S., Moore J.S., 1977, A fast string searching algorithm. Communications of the ACM. 20:762-772. [3] http://en.wikipedia.org/wiki/Boyer- Moore_string_search_algorithm.html [4] http://en.wikipedia.org/wiki/ Knuth_morris_pratt_algorithm.html