Data yang disimpan terdiri dari 400
entry
. Data ini nanti akan diletakkan dalam sebuah
database
yang disimpan dalam
database server
Mysql. Database akan dihubungkan dengan sistem dan dipanggil saat sistem dijalankan.
3.3 Analisis Sistem
Sistem yang akan dibangun adalah aplikasi kamus digital. Kamus ini akan memberikan informasi tentang makna kata maupun contoh penggunaan dalam kalimat
yang mengandung kata tersebut dalam dua versi yaitu, menurut kamus umum bahasa Inggris dan kamus khusus istilah teknologi informasi. Kamus yang dibangun
merupakan kamus ekabahasa, yang menggunakan hanya satu bahasa saja pada kata masukan dan defenisinya, yaitu bahasa Inggris. Kamus ini juga akan ditambahi
dengan fitur
autocomplete
yang akan mempermudah pengguna dalam mengetikkan kata yang diinginkan. Fitur ini akan menampilkan prediksi kata yang pengguna ingin
tulis tanpa harus menuliskan kata atau frasa tersebut secara lengkap pada kolom pencarian.
Analisis sistem ini berisi penerapan algoritma Boyer-Moore untuk menampilkan
autocomplete
yang disertai dengan
flowchart
, perhitungan algoritma Boyer-Moore, dan perancangan antarmuka sistem.
3.3.1 Penerapan algoritma Boyer-Moore untuk menampilkan autocomplete
Pertama-tama,
user
akan menginputkan katahuruf pada kolom pencarian. Setiap kali
user
mengetikkan suatu katahuruf yang dicari, secara langsung sistem akan menganggap kata tersebut sebagai sebuah
string input
yang akan dicocokkan dengan
string
target yang merupakan kata yang diambil dari
database.
Pertama kali sistem akan mengambil semua kata yang terdapat pada
database
. Dari proses tersebut, akan diperoleh
list
kata yang selanjutnya secara otomatis dianggap sebagai
string
yang akan dicocokkan dengan
input
. Kemudian sistem akan mulai mencocokkan satu persatu dari
list
kata yang diperoleh dengan
string input
dimulai dari kata pertama pada
list
. Pada proses pencocokan, setiap kata akan diubah menjadi untaian karakter. Proses
pencocokan dilakukan dengan menggunakan algoritma Boyer-Moore. Algoritma ini akan melakukan pergeseran
string input
sepanjang
string
target, dimana besar pergeseran ditentukan berdasarkan nilai pergeseran terbesar dari tabel
bad-character
Universitas Sumatera Utara
dan
good-suffix
. Selanjutnya, variabel pos akan diinialisasi sebagai variabel yang akan menyimpan nilai yang dihasilkan selama pencocokan berlangsung. Nilai variabel pos
akan terus ter-
update
sampai pencocokan selesai. Apabila
string input
ditemukan pada
string
target maka variabel pos akan bernilai sesuai dengan indeks posisi ditemukannya
string input
tersebut pada
string
target kemudian kata yang merupakan
string
target tersebut akan ditampilkan sebagai
word suggestion
, sedangkan apabila
string input
tidak ditemukan maka variabel pos akan bernilai -1 dan kata tersebut tidak akan ditampilkan sebagai
word suggestion
. Pencocokan akan terus dilakukan sampai pada kata terakhir pada
list
. Alur proses sistem tersebut dapat dilihat dalam
flowchart
pada Gambar 3.1.
Gambar 3.1
Flowchart
Sistem
Universitas Sumatera Utara
3.3.2 Perhitungan algoritma Boyer-Moore
Algoritma Boyer-Moore melakukan pencocokan
string
dengan menggunakan dua pendekatan yaitu pendekatan
bad-character
atau juga disebut
Occurrence Heuristic
OH dan pendekatan
good-suffix
atau juga disebut
Match Heuristic
MH. Pendekatan tersebut bermaksud untuk menentukan jumlah pergeseran yang akan
dilakukan pada saat pencocokan sampai ditemukannya
string input
pada string target dan selama
string input
belum ditemukan pada
string
target,
string input
akan terus digeser sepanjang
string
target. Berikut adalah langkah-langkah perhitungan algoritma Boyer-Moore pada sistem ini :
Misal :
input
= ‘
proc
’ a.
Mengambil
list
kata dari
database
Setelah sistem menerima
input
, sistem akan mengambil semua kata pada
database
untuk dicocokkan dengan kata yang diinputkan
user
. Beberapa
list
kata yang akan dicocokkan diantaranya adalah ‘
access
’, ‘
address
’, ‘
batch processing
’, ‘
client-server architecture
’, ‘
dynamic data
exchange
DDE’, dan ‘
microprocessor
’. Selanjutnya, pertama kali pencocokan dilakukan antara
string input
dengan kata pertama pada l
ist
kata yaitu ‘
access
’.
b. Menentukan nilai pergeseran dengan menggunakan pendekatan
bad-characte
dan
good-suffix.
1. Menghitung tabel
bad-character
Langkah perhitungan
bad-character
yaitu dengan melakukan pencacahan mulai dari karakter paling kanan
string input
sampai karakter paling kiri, dimulai dengan 0. Nilai
bad-character
didapat dengan perhitungan sebagai berikut :
BmBc
[
y
[
i
]] =
n
– 1 –
i BmBc
[
y
[3]] = 4 – 1 – 3 = 0
BmBc
[
y
[2]] = 4 – 1 – 2 = 1
BmBc
[
y
[1]] = 4 – 1 – 1 = 2
BmBc
[
y
[0]] = 4 – 1 – 0 = 3
Dan untuk semua karakter yang tidak muncul pada
string input
, bernilai sesuai jumlah banyaknya karakter pada
string input
yaitu 4.
Universitas Sumatera Utara
i
1 2
3
c
p r
o c
BmBc
[
c
]
3 2
1 4
2. Menghitung tabel
good-suffix
Nilai pergeseran
good-suffix
digunakan ketika ketidakcocokan ditemukan pada karakter yang menyebabkan ketidakcocokan dilihat berdasarkan posisi karakter
tersebut. Nilai dari setiap karakter yang ada pada
pattern
bergantung terhadap ada atau tidaknya perulangan akhiran
suffix v
pada
pattern
. Semakin banyak perulangan, maka akan semakin kecil nilai pergeseran. Untuk menentukan nilai-
nilai tersebut, lebih dahulu menghitung nilai tabel
suffix
yang bertujuan untuk memberi tanda adanya perulangan akhiran.
Nilai-nilai pada tabel
good-suffix
ini dilakukan secara manual mengikuti pseudocode yang diberikan pada Bab 2.
i
1 2
3
c
p r
o c
suff
[
i
] 4
BmGs
[
i
] 4 4
4 1
c. Pencocokan
string
Setelah didapat nilai pergeseran
bad-character
dan
good-suffix
, maka selanjutnya akan dilakukan pencocokan antara
string input
dan
string
target dengan melakukan pergeseran
string input
sepanjang
string
target. Besar pergeseran ini berdasarkan nilai pergeseran terbesar antara nilai pergeseran
bad-character
dan
good-suffix
. Setelah
string input
ditemukan pada
string
target, maka akan diketahui indeks posisi penemuannya. Proses pencocokan ini dapat dijelaskan
dalam contoh sebagai baerikut :
1.
String input
: ‘proc’
String
target : ‘access’
Universitas Sumatera Utara
i
1 2
3
c
p r
o c
BmBc
[
c
] 3
2 1
3
BmGs
[
i
] 4
4 4
1 -
Pencocokan 1:
Dapat dilihat ketidakcocokan terjadi pada karakter ‘e’ pada
string
target dan karakter ‘c’ pada
string input
. Dengan melihat tabel pergeseran, didapat nilai pergeseran yaitu :
BmBc
[e] = 4
BmGs
[3] = 1 Maka Pergeserannya, max1, 4 = 4
Pencocokan 2 :
Selanjutnya, pencocokan berhenti. Dapat dilihat bahwa
string
‘proc’ tidak ditemukan pada
string
‘
access
’.
2.
String input
: ‘proc’
String
target : ‘address’
i
1 2
3
c
p r
o c
BmBc
[
c
]
3 2
1 3
BmGs
[
i
] 4
4 4
1 -
a c
c e
s s
p r o
c
a c
c e
s s
p r o
c
Universitas Sumatera Utara
Pencocokan 1 :
BmBc
[r] = 2
BmGs
[3] = 1 Maka pergeserannya, max1, 2 = 2
Pencocokan 2 :
BmBc
[s] = 4
BmGs
[3] = 1 Maka pergeserannya, max1, 4 = 4
Pencocokan 3 :
Selanjutnya, pencocokan berhenti. Dapat dilihat bahwa
string
‘proc’ tidak ditemukan pada
string
‘address’.
3.
String input
: ‘proc’
String target
: ‘batch processing’
i
1 2
3
c
p r
o c
BmBc
[
c
] 3
2 1
3
BmGs
[
i
] 4
4 4
1 -
a d
d r
e s
s p r
o c
a d
d r
e s
s p r
o c
a d
d r
e s
s p r
o c
Universitas Sumatera Utara
Pencocokan 1 :
BmBc
[t] = 4
BmGs
[2] = 4 Maka pergeserannya, max4, 4 = 4
Pencocokan 2 :
BmBc
[r] = 2
BmGs
[3] = 1 Maka pergeserannya, max2,1 = 2
Pencocokan 3 :
Pada pencocokan ke- 3, ‘
proc
’ telah ditemukan pada indeks ke-6 pada
string
target.
4.
String input
: ‘proc’
String
target : ‘client-server architecture’
i
1 2
3
c
p r
o c
BmBc
[
c
] 3
2 1
3
BmGs
[
i
]
4 4
4 1
- b a
t c
h p
r o
c e
s s
i n
g p r
o c
b a t
c h
p r
o c
e s
s i
n g
p r o
c
b a t
c h
p r
o c
e s
s i
n g
p r
o c
Universitas Sumatera Utara
Pencocokan 1 :
BmBc
[e] = 4
BmGs
[3] = 1 Maka pergeserannya, max1, 4 = 4
Pencocokan 2 :
BmBc
[s] = 4
BmGs
[3] = 1 Maka pergeserannya, max1, 4 = 4
Pencocokan 3 :
BmBc
[e] = 4
BmGs
[3] = 1 Maka pergeserannya, max1, 4 = 4
Pencocokan 4 :
BmBc
[r] = 2
BmGs
[3] = 1 c
l i e n t - s e r v e r a r c h i t e c t u r e
p r o c
c l i e n t - s e r v e r
a r c h i t e c t u r e p r o c
c l i e n t - s e r v e r
a r c h i t e c t u r e p r o c
c l i e n t - s e r v e r
a r c h i t e c t u r e p r o c
Universitas Sumatera Utara
Maka pergeserannya, max1, 2 = 2
Pencocokan 5 :
BmBc
[h] = 4
BmGs
[3] = 1 Maka pergeserannya, max1, 4 = 4
Pencocokan 6 :
BmBc
[e] = 4
BmGs
[3] = 4 Maka pergeserannya, max4, 4 = 4
Pencocokan 7 :
BmBc
[e] = 4
BmGs
[3] = 4 Maka pergeserannya, max4, 4 = 4
Pencocokan berhenti.
string
‘proc’ tidak ditemukan pada
string
target.
5.
String input
: ‘proc’
String
target : ‘microprocessor’
c l i e n t - s e r v e r
a r c h i t e c t u r e p r o c
c l i e n t - s e r v e r
a r c h i t e c t u r e p r o c
c l i e n t - s e r v e r
a r c h i t e c t u r e p r o c
Universitas Sumatera Utara
i
1 2
3
c
p r
o c
BmBc
[
c
] 3
2 1
3
BmGs
[
i
] 4
4 4
1 -
Pencocokan 1 :
BmBc
[r] = 2
BmGs
[3] = 1 Maka pergeserannya, max1, 2 = 2
Pencocokan 2 :
BmBc
[p] = 3
BmGs
[3] = 1 Maka pergeserannya, max1, 3 = 3
Pencocokan 3 :
Pada pencocokan ke- 3, ‘
proc
’ telah ditemukan pada indeks ke-5 pada
string
target
.
m i c
r o
p r
o c
e s
s o
r p r
o c
m i c
r o
p r
o c
e s
s o
r p r
o c
m i c
r o
p r
o c
e s
s o
r p r
o c
Universitas Sumatera Utara
d. Menampilkan
word suggestion
Setelah
string input
ditemukan pada
string
target, indeks posisi ditemukan
string
tersebut akan dijadikan nilai indeks yang menandakan suatu
pattern
ditemukan pada
text
. Apabila
string input
tidak ditemukan pada kata yang dianggap sebagai
string
target maka variabel pos akan bernilai -1 dan kata tersebut tidak akan ditampilkan sebagai
word suggestion
, sedangkan apabila
string input
ditemukan pada kata maka variabel pos akan bernilai sesuai indeks posisi penemuan
string
tersebut dan kata tersebut akan ditampilkan sebagai
word suggestion
.
3.4 Perancangan Sistem