String Matching Algoritma Knuth Morris Pratt String Matching

2.2 String

String dalam ilmu komputer dapat diartikan dengan sekuens dari karakter. Walaupun sering juga dianggap sebagai data abstrak yang menyimpan sekuens nilai data, atau biasanya berupa bytes yang mana merupakan elemen yang digunakan sebagai pembentuk karakter sesuai dengan encoding karakter yang disepakati seperti ASCII, ataupun EBCDIC. Hubungan string dengan tulisan ini adalah bahwa karakteristik dari musik yang akan disimpan dalam database dapat dianggap serupa dengan string. Hal ini akan memudahkan desainer dalam membangun sistem pencocokan audio dari sampel audio yang akan dikonversi terlebih dahulu menjadi serupa dengan string ataupun deretan bytes. Konversi inilah yang nantinya akan dibandingkan langsung dengan informasi karakteristik yang disimpan dalam database.

2.2.1. String Matching

String matching adalah pencarian sebuah patternpada sebuah teks Ronald L. Rivest dkk. 1994. Prinsip kerja algoritma string matching adalah sebagai berikut: 1. Memindahkan teks dengan bantuan sebuah window yang ukurannya sama dengan panjang pattern. 2. Menempatkan window pada awal teks. 3. Membandingkan karakter pada window dengan karakter dari pattern. Setelah pencocokan baik hasilnya cocok atau tidak cocok, dilakukan shift ke kanan pada window. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks. Mekanisme ini disebut mekanisme sliding-window. Rama, 2013. Algoritma string matching mempunyai tiga komponen utama, yaitu: 1. Pattern, yaitu deretan karakter yang akan dicocokkan dengan teks, dinyatakan dengan x[0..m-1], panjang patterndinyatakan dengan m. 2. Teks, yaitu tempat pencocokan patterndilakukan, dinyatakan dengan y[0..n-1], panjang teks dinyatakan dengan n. 3. Alfabet, yang berisi semua simbol yang digunakan oleh bahasa pada teks dan pattern , dinyatakan dengan Σ dengan ukuran dinyatakan dengan Asize. Universitas Sumatera Utara

2.2.2 Algoritma Knuth Morris Pratt String Matching

Algoritma Knuth Morris Pratt merupakan salah satualgoritma yang sering digunakan untuk menyelesaikan masalah pencocokan string. Algoritma ini adalah penyempurnaan dari algoritma pencocokan string dengan menggunakan algoritma brute force. Pada algoritma bruteforce, setiap kali ditemukan ketidak cocokan patterndengan teks, maka patternakan digeser satu ke kanan. Sedangkan pada algoritma Knuth-Morris-Pratt, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran angka lebih jauh, tidak hanya satu karakter seperti pada algoritma brute force. Dengan algoritma Knuth Morris Pratt ini, waktu pencarian dapat dikurangi secara signifikan. Algoritma Knuth Morris Pratt ini dikembangakan oleh D. E. Knuth, bersama-sama dengan J. H. Morris dan V. R. Pratt. Algoritma Knuth-Morris-Prath memelihara informasi yang digunakan saat melakukan pergeseran. Informasi ini digunakan untukmelakukan pergeseran yang lebih jauh, tidak seperti brute force yangmelakukan pergeseran perkarakter. Pergeseran dilakukan berdasarkan suffix kesamaan suffix dan prefix dalam pattern dan yang ditemukan di dalam teks.Dalam algoritma Knuth Morris Pratt ini kita akan menemui beberapa definisi yang nantinya akan digunakan dalam algoritma ini.

2.2.3 Fungsi Pinggiran