Analisis Pencocokan String dengan Algoritma Maximal Shift

3.3.1. Analisis Pencocokan String dengan Algoritma Maximal Shift

Algoritma Maximal Shift adalah algoritma yang mencari pola dalam teks dengan cara pola dicari dari karakter yang memiliki nilai minShift yang terbesar hingga minShift yang terkecil. Tahapan proses dari algoritma Maximal shift terdiri dari memilah karakter pola dalam urutan penurunan pergeseran, membangun bad-charaters shift dan fungsi good-suffix Shif. Fungsi tersebut disesuaikan dengan urutan scanning karakter pola, Charras Lecroq, 2004. Berikut akan dijelaskan langkah-langkah dalam melakukan pencocokan string. Teks : DHEAAGIEWILYA Pola : AGIE Proses pertama adalah menghitung nilai minshift karakter pada pola yang akan digunakan untuk proses pengurutan, seperti pada Tabel 3.4. Tabel 3.4 Nilai minShift pada Algoritma Maximal Shift Proses kedua adalah orderPattern yang digunakan untuk pengurutan karakter pada pola dari nilai minshift tertinggi hingga terkecil pada pola. Jika ditemukan karakter yang memiliki nilai minshift yang sama maka pengurutan didasarkan pada posisi pencarian dari kanan ke kiri, yaitu posisi karakter yang ditemukan dahulu diurutkan lebih awal. Seperti table dibawah ini: I 1 2 3 char A G I E Minshift [i] 1 2 3 4 Universitas Sumatera Utara Tabel 3.5 Orderpattern Algoritma Maximal Shift I 1 2 3 Char E I G A minshift [i] 3 2 1 Proses ketiga adalah preQsBc yang menghitung nilai qsBc pada tiap-tiap karakter yang selanjutnya nilai tersebut kemungkinan akan digunakan untuk pergeseran pola dengan cara menentukan posisi karakter dalam pola dari kanan ke kiri dan jika ada karakter sama dalam pola maka posisi karakter yang pertama ditemukan yang dicatat, Posisi dihitung mulai dari satu dan dari kanan ke kiri, pada table dibawah: Tabel 3.6 PreQsBc pada Algoritma Maximal Shift Proses keempat adalah PreAdaptedGS yang menghitung nilai pada tiap posisi dan kemudian nilai inilah yang kemungkinan akan digunakan untuk pergeseran pada pola, seperti pada table dibawah: Tabel 3.7 PreAdaptedGs pada Agoritma Maximal Shift I 1 2 3 AdaptedGs[i] 1 4 4 4 Selanjutnya akan dimulai langkah-langkah pencarian dengan menggunakan algoritma maximal shift dengan menentukan terlebih dahulu pola yang dicari. Setelah langkah- langkah selesai dilakukan, maka proses pencarian dimulai dengan mencocokan pola Char A G I E QsBc [Char] 4 3 2 1 Universitas Sumatera Utara yang telah diurutkan terhadap teks. Hitung selisih panjang pola dan panjang teks. Karaketer dengan urutan pertama dalam orderPattern dicocokan dengan teks dengan teks pada posisi yang sama pada pola. Jika terjadi kecocokan maka pencarian diteruskan dengan pencocokan pola sesuai dengan posisi yang telah diurutkan dengan karakter pada teks. Jika semua pola ditemukan maka dianggap telah menumakan output string yang dicari. Jika tidak ada ketidakcocokkan maka terjadi perhitungan qsBc dan adaptedGs. Kemudian diambil nilai terbesar dari hasil perhitungan qsBc atau adaptedGs, yang digunakan untuk pergeseran. Pergeseran terus terjadi hingga jumlah pergeseran lebih besar dari pada selisih panjang teks dengan panjang pola Handika, W. 2005. Langkah 1: D H E A A G I E W I L Y A mismatch 3 2 1 0 i : 0 selisih : 9 geser : 0 Urutan pencarian dimulai dari huruf “e” yang ternyata tidak cocok dengan teks, maka dilakukan pergeseran yang akan ditentukan oleh nilai adaptedGs yang ke-i atau adaptedGs [0] = 1 dan qsBc untuk karakter berikutnya atau qsBc[a] = 4. Nilai yang akan dipakai untuk pergeseran adalah nilai yang lebih besar atau dalam hal ini adalah 4. A G I E Universitas Sumatera Utara Langkah 2: D H E A A G I E W I L Y A Exact match 3 2 1 0 i : 0 selisih : 9 geser : 4 Urutan pencarian dimulai dari huruf “e” yang ternyata cocok dengan teks, kemudian dilanjutkan dengan huruf “i” yang ternyata cocok dengan teks, dan dilanjutkan dengan huruf “g” dan “a” yang ternyata cocok dengan teks sehingga pencarian dianggap menemukan output string yang sama. Maka dilakukan pergeseran yang akan ditentukan oleh nilai adaptedGs yang ke-i atau adaptedGs [0] = 1 dan qsBc untuk karakter berikutnya atau qsBc[w] = 5. Nilai yang akan dipakai untuk pergeseran adalah nilai yang lebih besar atau dalam hal ini adalah 5. Langkah 3: D H E A A G I E W I L Y A Mismatch 3 2 1 0 i : 0 selisih : 9 geser : 9 A G I E A G I E Universitas Sumatera Utara Urutan pencarian dimulai dari huruf “e” yang ternyata tidak cocok dengan teks, maka dilakukan pergeseran yang akan ditentukan oleh qsBc untuk karakter berikutnya yang ternyata tidak tersedia, maka pencarian dianggap selesai.

3.3.2. Analisis Pencocokan String dengan Algoritma Quick Search