Apa itu String Matching?
String Matching adalah sebuah proses pencarian string yang penting dalam sebuah dokumen. Hasil dari sebuah pencarian tersebut tergantung dari teknik dan cara pencocokan string yang digunakan.
Menurut N. Singla & D. Garg Algoritma String Matching mempunyai 2 teknik utama yaitu :
- Exact Matching : Merupakan hasil pencocokan yang mengandung string yang sama persis dengan string yang di input.
Contohnya pada algoritma Needleman Wunsch, algoritma Smith Waterman, algoritma Knuth-Morris-Pratt, algoritma Boyer- Moore-Horspool - Approximate Matching : Merupakan hasil pencocokan yang mengandung string yang tidak harus sama persis dengan string yang di input.
Contohnya pada algoritma Fuzzy String Searching, algoritma Rabin Karp, algoritma Brute Force.
Prinsip kerja algoritma string matching sebagai berikut :
- Memindai teks dengan bantuan sebuah window yang ukurannya sama dengan pattern.
- Menempatkan window pada awal teks.
- Membandingkan karakter pada window dengan karakter dari pattern.
Algoritma String Matching mempunyai 3 komponen, yaitu :
- Pattern, yaitu deretan karakter yang akan dicocokkan dengan teks, dinyatakan dengan x[0..m-1], panjang pattern dinyatakan dengan m.
- Teks, yaitu tempat pencocokan pattern dilakukan, dinyatakan dengan y[0..n-1], panjang teks dinyatakan dengan n.
- Alfabet, yang berisi semua simbol yang digunakan oleh bahasa pada teks dan pattern, dinyatakan dengan Σ dengan ukuran dinyatakan dengan ASIZE.
Algoritma String Matching mempunyai 3 bagian menurut arah pencariaannya :
- Dari arah yang paling alami, From left to right, algoritma yang termasuk kategori ini adalah :
- Algoritma Brute Force
- Algoritma dari Morris dan Pratt, yang kemudian oleh Knuth, Morris, dan Pratt.
- Right to Left, secara pratikal arah ini menghasilkan hasil terbaik, contohnya :
- Algoritma dari Boyer dan Moore, dan kemudian banyak dikembangkan menjadi Algoritma turbo Boyer-Moore, Algoritma tuned Boyer-Moore, dan Algoritma Zhu-Takaoka;
- Dan ini kategori terakhir, algoritma ini arahnya ditentukan secara spesifik, maka arah ini menghasilkan hasil terbaik secara teoritis, algoritma yang termasuk ini adalah:
- Algoritma Colussi
- Algoritma Crochemore-Perrin
Contoh Algortima Brute Force mencari string
Inilah salah satu contoh untuk mencari string menggunakan Algoritma Brute Force. Dan dibawah ini Pseudocode algortima Brute Force :
Inilah salah satu contoh untuk mencari string menggunakan Algoritma Brute Force. Dan dibawah ini Pseudocode algortima Brute Force :
procedure BruteForceSearch( input m, n : integer, input P : array[0..n-1] of char, input T : array[0..m-1] of char, output ketemu : array[0..m-1] of boolean ) Deklarasi: i, j: integer Algoritma: for (i:=0 to m-n) do j:=0 while (j < n and T[i+j] = P[j]) do j:=j+1 endwhile if(j >= n) then ketemu[i]:=true; endifendfor
10115448
sumber : disini
0 comments:
Posting Komentar