3.4.1. Flowchart MinShift
Nilai minShift merupakan nilai pencarian pola dalam teks dengan cara pola di cari dari karakter yang memiliki nilai minShift terbesar hingga nilai minShift yang terkecil pada
Algoritma Maximal Shift. Berikut adalah flowchart mencari nilai minShift pada Gambar 3.5.
Start
Input: x : pattern
m : leng x
i = 0
i m ?
j = i - 1
j = 0 ?
x [i] = = xj] ?
minShift [i]= i - j ++i
Output: minShift
End
yes yes
yes
--j No
yes No
No
Gamabar 3.5 Flochart mencari nilai minShift pada Algoritma Maximal Shift.
Universitas Sumatera Utara
3.3.2. Flowchart MatchShif dan AdaptedGs
MatchShift adalah nilai untuk mencari nilai adaptedGs. AdaptedGs adalah yang menghitung nilai pada tiap posisi dan kemudian nilai inilah yang kemungkinan akan
digunakan untuk pergeseran pada pola. Berikut adalah flowchart dari matchShift yang dapat dilihat pada Gambar 3.6.
No Input:
x : pattern m : leng x
Lshift = 1 Ploc = 1
i m ?
i = ploc
-- i = 0 ?
j = pat[i].loc - lshift 0 ?
++lshift
Return lshift yes
No yes
Pat[i].c = x[j] ?
i 0 ?
yes No
yes
AdaptaedGsploc = lshift
No
yes
Yes
Start
Gambar 3.6 Flowchart matchshift pada Algoritma Maximal Shift.
Universitas Sumatera Utara
Setelah mendapatkan hasil nilai matchShift akan diteruskan untuk mencari nilai adaptedGs. Berikut adalah flowchart adapetedGs dapat dilihat dari Gambar 3.7.
Start Input:
x : pattern m : leng x
Lshift = 1 Ploc = 1
Ploc = m ?
++ploc
i 0 ||
Pat[ploc].c = x[i] ?
Lshift = adaptedGs [ploc]
end
Ploc = m?
Lshift m? adaptedGs [0]= lshift = 1
Ploc = 1
Lshift= matchshift x,m,ploc,lshift, pattern, pat adaptedGs[ploc]= lshift
Ploc = 0
i = pat[ploc].loc - lshift
++ploc
++lshift Lshift = matchshift
0utput: adaptedGs[ploc]
= lshift
yes No
yes
yes
yes No
No
No
Gambar 3.7 Flowchart mencari nilai adaptedGs pada Algoritma Maximal shift.
Universitas Sumatera Utara
3.4.3. Flowchart QsBc
Quick search bad-character qsBc adalah nilai pada 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. Berikut adalah flowchart
mencari nilai preqsBc pada Algoritma Maximal Shift dan Algoritma Quick Search yang dapat dilihat pada Gambar 3.8.
Start Input:
x : pattern m : leng x
i = 0
i ASIZE ?
qsBc[i]= m+1
i m ?
qsBc[x[i]] m - i
++i Output:
QsBc[i]
End yes
yes
No i++
i = 0 No
Gambar 3.8 Flowchart mencari nilai preQsBc pada Algoritma Maximal Shift dan Algoritma Quick Search.
Universitas Sumatera Utara
3.4.4. Flowchart Maximal Shift