Algoritma Zhu-Takaoka Implementasi Algoritma Zhu-Takaoka Pada Aplikasi Terjemahan Al-Quran Berbasis Android

2.2. Algoritma Zhu-Takaoka

Algoritma Zhu-Takaoka merupakan algoritma pencocokan string String Matching yang dipublikasikan oleh Zhu Rui Feng dan Tadao Takaoka pada tahun 1986. Dalam makalahnya, Zhu dan Takaoka menyebut algoritma pencocokan string ini sebagai BM ‟ Algorithm Boyer-Moore‟ Algorithm. BM‟ Algorithm merupakan algoritma modifikasi dari algoritma pencocokan stringBoyer-Moore Algorithm yang dibuat oleh Boyer R.S dan Moore J.S. Algoritma BM ‟ Algoritma Zhu-Takaoka yang merupakan modifikasi dari Algoritma BM mempunyai ciri-ciri yang sama dalam proses pencarian string. Ciri-ciri tersebut yaitu adanya tahap Preprocessing, Right-to-left scan, Bad character rule, dan Good-suffix rule. Perbedaan antara Algoritma Boyer-Moore dan Algoritma Zhu-Takaoka yaitu terletak pada tahap penentuan bad character rule. Dalam Boyer-Moore, bad character hanya terdiri array satu dimensi, sedangkan dalam Zhu-Takaoka dimodifikasi menjadi array dua dimensi Ramdhani,2012. Pada tahap preprocessing algoritma Zhu-Takaoka membangun tabel bad character 2 dimensi karena algoritma tersebut menghitung untuk pasangan karakter. Kompleksitas waktu dari fase preprocessing adalah Om+o 2 dankompleksitas waktu fase pencarian adalah Omn Bhandari Kumar 2014. Proses inti pencarian Algoritma Zhu-Takaoka yaitu dilakukan dengan teknik right-to-left scan rule. Teknik ini membandingkan pattern yang dicari dengan sumber teks dimulai dari kanan ke kiri Michailidis Margaritis 2009. Langkah pertama yang dilakukan adalah tahapan preprocessing yaitu meciptakan dua buah tabel shifpergesaran ztBc Zhu-Takaoka Bad CharacterbmGs Boyer-Moore Good Suffixes. Kedua tabel ini diciptakan merujuk kepada pattern yang akan dicari oleh karena itu jika pattern berubah maka tabel juga akan berubah. Hasil preprocessing untuk patternMATA terlihat pada tabel 2.1 dan tabel 2.2. Universitas Sumatera Utara Tabel 2.1 Zhu-Takaoka Bad Character Table ztBc A M T A 4 3 1 4 M 2 3 4 4 T 4 3 4 4 4 3 4 4 Tabel ztBc berbentuk array dua dimensi yang baris dan kolom diisi sesuai dengan karakter yang ada pada pattern, tanda star mewakili seluruh karakter yang tidak ada pada pattern. Tabel inilah yang merupakan hasil modifikasi dari algoritma Boyer Moore yang memiliki table bad character hanya terdiri dari array satu dimensi. Tabel 2.2 Boyer-Moore Good Suffixes Table I 1 2 3 x[i] M A T A suff[i] 1 4 bmGs[i] 4 4 2 1 Tahapan selanjutnya adalah tahapan pencarian yaitu dengan menggunakan teknik right-to-left scan rule. Pencarian dilakukan dengan membandingkan karakter demi karakter dari mulai karakter paling kanan menuju karakter paling kiri. Jika terjadi ketidakcocokan karakter, pergeseran akan dilakukan dengan mencari nilai max antara ztBc dan bmGs, dan apabila semua pattern cocok pergeseran menggunakan nilai dari bmGs[0]. Indeks dari ztBc diambil dari dua karakter terakhir teks yang bersesuaian dengan window, sedangkan indeks bmGs diambil dari indeks pattern pada posisisi karakter yang tidak cocok. Langkah-langkah pencarian dengan algoritma Zhu-Takaoka adalah sebagai berikut: Universitas Sumatera Utara Langkah 1 Tabel 2.3Pencarian pada Teks Langkah ke- 1 Window A C Text K A C A M A T A F A A I Z A H Pattern M A T A i 1 2 3 ztBc[ A ][ C ] = 4 bmGs[i] = bmGs[2] = 2 Pergeseran dilakukan sebanyak 4 Langkah 2 Tabel 2.4Pencarian pada Teks Langkah ke- 2 Window Text K A C A M A T A F A A I Z A H Pattern M A T A i 1 2 3 Karakter cocok semua. Pergeseran dilakukan sebanyak bmGs[0] =2 Langkah 3 Tabel 2.4Pencarian pada Teks Langkah ke- 3 Window F Text K A C A M A T A F A A I Z A H Pattern M A T A i 1 2 3 ztBc[ ][ F ] = 4 bmGs[i] = bmGs[3] = 1 Universitas Sumatera Utara Pergeseran dilakukan sebanyak 4 Langkah 4 Tabel 2.4Pencarian pada Teks Langkah ke- 4 Window I Z Text K A C A M A T A F A A I Z A H Pattern M A T A i 1 2 3 ztBc[ I ][ Z ] = 4 bmGs[i] = bmGs[3] = 1 Pergeseran dilakukan sebanyak 4 Terlihat dari hasil langkah empat tidak ditemukan kecocokan pattern dan text maka dilakukan shif sebesar ztBc[ I ][ Z ] = 4. Karena panjang teks sudah habis maka proses pencocokan dihentikan. Dari contoh diatas dapat ditarik kesimpulan bahwa dengan text KACAMATA FAAIZAH dan pattern MATA menggunakan Algoritma Zhu- Takaoka menghasilkan satu pola yang cocok yaitu pada shif ke 4. Banyak komparasi yang terjadi adalah 8delapan kali perbandingan karakter.

2.3. Android