Analisis Sistem Perancangan Fitur Autocomplete pada Aplikasi Kamus Istilah Teknologi Informasi Menggunakan Algoritma Boyer-Moore

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