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