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

(1)

PERANCANGAN FITUR AUTOCOMPLETE PADA APLIKASI KAMUS ISTILAH TEKNOLOGI INFORMASI MENGGUNAKAN

ALGORITMA BOYER-MOORE

SKRIPSI

SITI MORIZA TANIA 101402076

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2015


(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

SITI MORIZA TANIA 101402076

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2015


(3)

ii

PERSETUJUAN

Judul : PERANCANGAN FITUR AUTOCOMPLETE PADA APLIKASI KAMUS ISTILAH TEKNOLOGI

INFORMASI MENGGUNAKAN ALGORITMA BOYER-MOORE

Kategori : SKRIPSI

Nama : SITI MORIZA TANIA

Nomor Induk Mahasiswa : 101402076

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dr. Erna Budhiarti Nababan M.IT M. Andri Budiman, ST.M.Comp.Sc., M.E.M NIP. - NIP. 19751008 1200801 1 011

Diketahui/Disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

Muhammad Anggia Muchtar, ST., MM.IT NIP. 19800110 200801 1 010


(4)

PERNYATAAN

PERANCANGAN FITUR AUTOCOMPLETE PADA KAMUS ISTILAH TEKNOLOGI INFORMASI MENGGUNAKAN ALGORITMA BOYER-MOORE

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 4 Juni 2015

Siti Moriza Tania 101402076


(5)

iv

UCAPAN TERIMA KASIH

Alhamdulillah, segala puji dan syukur kepada Allah SWT yang telah memberikan rahmat, karunia dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini. Penulis mengucapkan banyak terima kasih kepada:

1. Bapak M. Andri Budiman, ST.M.Comp.Sc., M.E.M, selaku pembimbing 1 dan Ibu Dr. Erna Budhiarti Nababan, M.IT, selaku pembimbing 2 yang telah banyak memberikan bimbingan, arahan, motivasi dan membantu penulis dalam penyusunan dan penulisan skripsi ini.

2. Bapak Sajadin Sembiring, S.Si, M.Comp.Sc dan Bapak Seniman, S.Kom, M.Kom sebagai tim pembanding, atas segala kritik dan saran dalam penyempurnaan penulisan skripsi ini.

3. Bapak Muhammad Anggia Muchtar, ST., MM.IT, selaku ketua program studi Teknologi Informasi, serta seluruh Bapak dan Ibu dosen yang telah memberikan ilmu yang bermanfaat bagi penulis.

4. Seluruh staf TU (Tata Usaha) program studi Teknologi Informasi yang telah banyak membantu dalam segala kegiatan administrasi penulis.

5. Kedua Orang tua penulis, Ayahanda Sakhrizal dan Ibunda Rita Morita yang selalu mendoakan, sabar dan senantiasa memberikan kasih sayang sepanjang masa kepada penulis. Adik-adik penulis, Siti Sovie Sakhrani dan Siti Ulfha Salita serta keluarga besar penulis yang selalu memberikan semangat kepada penulis.

6. Sahabat penulis, Pratiwi Widya Utami S.Pd dan Rizka Aini Hasibuan S.Psi yang tiada henti memberikan semangat dan doa, terkhusus untuk Naniek B.J. Matanari dan Handra Akira Saito yang selalu memberikan semangat, setia dan sabar menemani dan mendorong penulis dalam penyelesaian skripsi ini. Abang-abang, kakak-kakak, adik-adik, dan teman-teman program studi teknologi informasi angkatan 2010 yang tidak dapat penulis cantumkan satu per satu atas segala dukungan dan kebersamaannya selama melewati perkuliahan di Teknologi Informasi USU ini.


(6)

ABSTRAK

Penggunaan kamus elektronik saat ini terbukti lebih efisien dibandingkan penggunaan kamus dalam bentuk buku. Hal tersebut dikarenakan pada kamus elektronik pengguna akan menuliskan kata yang mereka inginkan pada kolom pencarian dan mesin pencari akan menemukan dan memberikan informasi kata tersebut kepada pengguna. Untuk menampilkan informasi tersebut, beberapa kamus elektronik menampilkan informasi setelah pengguna selesai mengetikkan satu kata pada mesin pencari. Tetapi ketika pengguna selesai mengetikkan kata pada mesin pencari, kata tersebut belum tentu ditemukan, hal ini menjadikan kamus elektronik kurang optimal dalam hal pemakaian waktu. Oleh karena itu, fitur autocomplete yang dibangun pada aplikasi kamus ini diharapkan dapat mempersingkat waktu pengetikan sebuah kata yang dilakukan pengguna, dimana fitur ini akan menampilkan daftar kata yang mungkin dimaksudkan pengguna atau yang disebut dengan word suggestion tanpa harus mengetikkan kata tersebut secara utuh. Word suggestion ini dihasilkan melalui pencocokan string yang dilakukan oleh algoritma Boyer-Moore, dimana input yang diketikkan pengguna akan dicocokkan dengan setiap kata yang terdapat dalam database. Fitur autocomplete pada aplikasi kamus ini berhasil menampilkan word suggestion berupa kata yang mengandung potongan kata yang diketikkan pengguna, tetapi untuk kesalahan letak huruf pada kata yang diketikkan pengguna, fitur autocomplete tidak akan menampilkan word suggestion karena kata tersebut dianggap tidak ditemukan pada

database.

Kata kunci : autocomplete, exact string matching, algoritma Boyer-Moore, kamus bahasa Inggris, kamus teknologi informasi.


(7)

vi

THE AUTOCOMPLETE FEATURE DESIGN ON THE APPLICATION OF TERMINOLOGY DICTIONARY OF INFORMATION TECHNOLOGY

USING THE BOYER-MOORE ALGORITHM

ABSTRACT

The usage of electronic dictionary nowadays has proven that it is more efficient than the physical one. This happens because in electronic dictionary the user are able to look for a word easily by just typing the keyword and the search engine will return the result instantly to the user. To display the information, some electronic dictionaries display information after the user is finished typing one word in a search engine. But when the user is finished typing words into a search engine, the word is not necessarily found, this makes the electronic dictionaries are less optimal in terms of time consumption. Therefore, auto-complete feature that is built on this dictionary application is expected shorten the time of typing a word that is perfomed by the user, where this feature will suggest the list of words which is similar to the user’s input with word suggestion feature without having to complete the typing. The word suggestion is derived by the matching of string which is done using Boyer-Moore algorithm, where the user’s input will be matched with every words in the database.

Auto-complete feature in this application manage to show the word suggestion by reading the word which contains the piece of word the user typed, but for misplaced alphabet user made, the auto-complete feature won’t show any word suggestion

because that word might not be found in the database.

Keyword : auto-complete, exact string matching, Boyer-Moore algorithm, English Dictionary, Dictionary of Information Technology.


(8)

DAFTAR ISI

Hal.

PERSETUJUAN ii

PERNYATAAN iii

UCAPAN TERIMA KASIH iv

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR TABEL ix

DAFTAR GAMBAR x

BAB 1 PENDAHULUAN

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Sistematika Penulisan 3

BAB 2 LANDASAN TEORI

2.1 Kamus 5

2.2 Fitur atau Layanan Autocomplete 7 2.3 Algoritma Exact String Matching 8

2.4 Algoritma Boyer-Moore 10

2.4.1 Pergeseran Bad-Character 11

2.4.2 Pergeseran Good-Suffix 13

2.5 Penelitian Terdahulu 17

BAB 3 ANALISIS DAN PERANCANGAN SISTEM


(9)

viii

3.2 Analisis Data 21

3.3 Analisis Sistem 22

3.3.1 Penerapan algoritma Boyer-Moore untuk menampilkan

autocomplete 22

3.3.2 Perhitungan algoritma Boyer-Moore 24

3.4 Perancangan Sistem 32

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem 35

4.1.1 Spesifikasi software dan hardware yang digunakan 35

4.1.2 Implementasi antarmuka sistem 35

4.1.3 Implementasi data 38

4.1.4 Implementasi pencocokan string 39

4.1.5 Implementasi fungsi autocomplete 47

4.2 Evaluasi Pengujian Sistem 51

4.2.1 Rencana pengujian sistem 51

4.2.2 Hasil pengujian sistem 52

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan 53

5.2 Saran 53


(10)

DAFTAR TABEL

Hal Tabel 2.1 Penelitian terdahulu yang berkaitan dengan autocomplete 18 Tabel 2.2 Penelitian terdahulu yang menggunakan algoritma Boyer-Moore 20 Tabel 4.1 Rangkuman database pada sistem 39

Tabel 4.2 Rencana pengujian sistem 52


(11)

x

DAFTAR GAMBAR

Hal Gambar 2.1 Autocomplete pada Google Search 8 Gambar 2.2 Pencocokan dari karakter paling kiri ke karakter paling kanan pattern 9 Gambar 2.3 Pencocokan dari karakter paling kanan ke karakter paling kiri pattern 9 Gambar 2.4 Pencocokan pada patterny2 dimulai dari karakter paling kiri 10 Gambar 2.5 Pencocokan pada pattern y1 dimulai dari karakter paling kanan 10 Gambar 2.6 Pergeseran bad-character, a muncul pada y 12 Gambar 2.7 Pergeseran bad-character, tidak ada kemunculan a pada y 12 Gambar 2.8 Pergeseran good-suffix, v muncul didahului oleh karakter c 13 Gambar 2.9 Pergeseran good-suffix, hanya akhiran dari v yang muncul pada y 13

Gambar 3.1 Flowchart sistem 23

Gambar 3.2 Rancangan tampilan utama sistem 32 Gambar 3.3 Tampilan untuk abbreviations used 33 Gambar 3.4 Tampilan untuk fungsi autocomplete 34

Gambar 4.1. Tampilan awal aplikasi kamus 36

Gambar 4.2 Tampilan Abbrevation Used 37

Gambar 4.3 Tampilan untuk fungsi autocomplete 37

Gambar 4.4. Tampilan untuk informasi kata 38

Gambar 4.5 (a) Tabel bad-characteruntuk ‘com’ 40 Gambar 4.5 (b) Tabel good-suffixuntuk ‘com’ 40 Gambar 4.6 (a) Tabel bad-characteruntuk ‘proc’ 40 Gambar 4.6 (b) Tabel good-suffixuntuk ‘proc’ 41 Gambar 4.7 (a) Tabel bad-characteruntuk ‘prco’ 41 Gambar 4.7 (b) Tabel good-suffixuntuk ‘prco’ 42 Gambar 4.8 Pencocokan string‘com’ terhadap string target 42 Gambar 4.8(a) Pencocokan pertama dimulai pada indeks ke-2 dari string target 43 Gambar 4.8(b) Pencocokan kedua dimulai pada indeks ke-5 dari string target 43 Gambar 4.8(c) Pencocokan ketiga dimulai pada indeks ke-7 dari string target 44


(12)

Gambar 4.9(a) Pencocokan pertama dimulai pada indeks ke-3 dari string target 45 Gambar 4.9(b) Pencocokan kedua dimulai pada indeks ke-5 dari string target 45 Gambar 4.9(c) Pencocokan ketiga dimulai pada indeks ke-8 dari string target 45 Gambar 4.9(c) Pencocokan ketiga dimulai pada indeks ke-8 dari string target 46 Gambar 4.10 Pencocokan string‘prco’ terhadap string target 46 Gambar 4.10(a) Pencocokan pertama dimulai pada indeks ke-3 dari string target 47 Gambar 4.10(b) string‘prco’telah melewati string‘access’ 47 Gambar 4.11. Hasil pencocokan untuk input‘com’ 48 Gambar 4.12 Fungsi autocomplete untuk input‘com’ 48 Gambar 4.13 Hasil pencocokan untuk input‘proc’ 49 Gambar 4.14 Fungsi autocomplete untuk input‘proc’ 50 Gambar 4.15 Hasil pencocokan untuk input‘prco’ 50 Gambar 4.16 Fungsi autocomplete untuk input‘prco’ 51


(13)

v

ABSTRAK

Penggunaan kamus elektronik saat ini terbukti lebih efisien dibandingkan penggunaan kamus dalam bentuk buku. Hal tersebut dikarenakan pada kamus elektronik pengguna akan menuliskan kata yang mereka inginkan pada kolom pencarian dan mesin pencari akan menemukan dan memberikan informasi kata tersebut kepada pengguna. Untuk menampilkan informasi tersebut, beberapa kamus elektronik menampilkan informasi setelah pengguna selesai mengetikkan satu kata pada mesin pencari. Tetapi ketika pengguna selesai mengetikkan kata pada mesin pencari, kata tersebut belum tentu ditemukan, hal ini menjadikan kamus elektronik kurang optimal dalam hal pemakaian waktu. Oleh karena itu, fitur autocomplete yang dibangun pada aplikasi kamus ini diharapkan dapat mempersingkat waktu pengetikan sebuah kata yang dilakukan pengguna, dimana fitur ini akan menampilkan daftar kata yang mungkin dimaksudkan pengguna atau yang disebut dengan word suggestion tanpa harus mengetikkan kata tersebut secara utuh. Word suggestion ini dihasilkan melalui pencocokan string yang dilakukan oleh algoritma Boyer-Moore, dimana input yang diketikkan pengguna akan dicocokkan dengan setiap kata yang terdapat dalam database. Fitur autocomplete pada aplikasi kamus ini berhasil menampilkan word suggestion berupa kata yang mengandung potongan kata yang diketikkan pengguna, tetapi untuk kesalahan letak huruf pada kata yang diketikkan pengguna, fitur autocomplete tidak akan menampilkan word suggestion karena kata tersebut dianggap tidak ditemukan pada

database.

Kata kunci : autocomplete, exact string matching, algoritma Boyer-Moore, kamus bahasa Inggris, kamus teknologi informasi.


(14)

THE AUTOCOMPLETE FEATURE DESIGN ON THE APPLICATION OF TERMINOLOGY DICTIONARY OF INFORMATION TECHNOLOGY

USING THE BOYER-MOORE ALGORITHM

ABSTRACT

The usage of electronic dictionary nowadays has proven that it is more efficient than the physical one. This happens because in electronic dictionary the user are able to look for a word easily by just typing the keyword and the search engine will return the result instantly to the user. To display the information, some electronic dictionaries display information after the user is finished typing one word in a search engine. But when the user is finished typing words into a search engine, the word is not necessarily found, this makes the electronic dictionaries are less optimal in terms of time consumption. Therefore, auto-complete feature that is built on this dictionary application is expected shorten the time of typing a word that is perfomed by the user, where this feature will suggest the list of words which is similar to the user’s input with word suggestion feature without having to complete the typing. The word suggestion is derived by the matching of string which is done using Boyer-Moore algorithm, where the user’s input will be matched with every words in the database.

Auto-complete feature in this application manage to show the word suggestion by reading the word which contains the piece of word the user typed, but for misplaced alphabet user made, the auto-complete feature won’t show any word suggestion

because that word might not be found in the database.

Keyword : auto-complete, exact string matching, Boyer-Moore algorithm, English Dictionary, Dictionary of Information Technology.


(15)

BAB 1 PENDAHULUAN

1.1Latar Belakang

Kamus merupakan buku rujukan yang berisi penjelasan terkait dengan makna kata-kata. Secara fisik kamus memiliki dua jenis, yaitu kamus yang berbentuk buku dan kamus elektronik. Kedua kamus ini mempunyai fungsi yang sama, yakni untuk membantu pengguna untuk mencari makna kata yang dibutuhkan. Hanya saja dari segi efisien kamus ini sangat berbeda. Bentuk kamus yang besar dan cenderung tebal, menjadikan kamus tidak fleksibel. Penggunaan kamus buku ini membutuhkan waktu lebih lama dalam mencari kata yang diinginkan, ini dikarenakan kamus terdiri dari puluhan bahkan ratusan lembar kata-kata didalamnya (Nurhapipah, 2011). Berbeda dengan kamus buku, kamus elektronik atau kamus digital merupakan sebuah fasilitas yang membantu pengguna untuk menemukan kata yang diinginkan hanya dengan mengetikkan kata pada kolom pencarian, maka mesin pencari akan menampilkan seluruh informasi yang berkaitan.

Mesin pencari adalah program komputer yang dirancang untuk menemukan informasi yang dicari dari banyaknya kumpulan informasi yang tersedia (Haryanto, 2011). Untuk menampilkan informasi tersebut, beberapa kamus elektronik menampilkan informasi setelah pengguna selesai mengetikkan satu kata pada mesin pencari. Tetapi ketika pengguna selesai mengetikkan kata pada mesin pencari, kata tersebut belum tentu ditemukan, hal ini menjadikan kamus elektronik kurang optimal dalam hal pemakaian waktu. Oleh karena itu, pada penelitian ini penulis akan menambahkan sebuah fitur yang dapat membantu dalam memperoleh informasi, dimana fitur tersebut dapat mempersingkat waktu pengetikan sebuah kata yang diinginkan pengguna, dimana fitur tersebut dapat menampilkan prediksi kata seperti fitur autocomplete. Fitur autocomplete merupakan program yang dapat melakukan prediksi terhadap sebuah kata atau frasa yang pengguna ingin tulis tanpa harus


(16)

menuliskan keseluruhan kata atau frasa secara lengkap pada kolom pencarian (Kusuma, 2012).

Beberapa penelitian yang berkaitan dengan masalah ini diantaranya yaitu oleh Primadani (2014), pada penelitian tersebut Primadani menerapkan algoritma

Levenshtein Distance untuk membangun fitur autocomplete pada aplikasi Katalog Perpustakaan. Kemudian sebelumnya penelitian mengenai autocomplete ini juga dilakukan oleh Kusuma (2012), pada penelitiannya Kusuma menggunakan algoritma pencocokan string, yaitu algoritma brute force untuk membangun fitur

autocompletion pada text editor, dimana pada penelitian tersebut Kusuma menggantikan struktur data yang digunakan pada algoritma brute force dengan struktur data pohon/tree.

Pada penelitian ini, penulis akan menerapkan algoritma Boyer-Moore untuk membangun fitur autocomplete pada aplikasi kamus. Algoritma ini sering diimplementasikan dalam berbagai teks editor, misalnya untuk fungsi “search” dan “substitute”, di mana algoritma ini melakukan pencocokan karakter dimulai dari kanan ke kiri. Karakter pertama yang akan dicocokkan dengan teks adalah karakter paling kanan pada pattern (Charras & Lecroq, 2001).

Sebuah penelitian yang dilakukan Prasetiyowati & Sagita (2013), yaitu perbandingan terhadap implementasi algoritma Boyer Moore, Turbo Boyer-Moore, dan Tuned Boyer-Moore dalam pencarian string, algoritma Boyer-Moore memiliki waktu pencarian tercepat dari ketiga varian Boyer-Moore tersebut. Dalam penelitian yang mengimplementasikan algoritma KMP (Knuth- Morris-Pratt) dan Boyer-Moore dalam aplikasi search engine sederhana yang dilakukan Soleh (2011), menyimpulkan bahwa algoritma Boyer-Moore lebih cocok untuk pencarian string dengan alpabet banyak sedangkan KMP lebih cocok untuk pencarian string dengan alpabet sedikit seperti biner. Penelitian lain yang menggunakan algoritma Boyer-Moore yaitu oleh Kartawidjaja & Vandika (2009), pada penelitian ini dilakukan proses pencarian kata secara paralel dengan menggunakan algoritma Boyer-Moore. Lingkup paralel diemulasikan menggunakan perangkat lunak PVM Parallel Vitual Machine. Algoritma Boyer-Moore juga digunakan untuk pencocokan DNA, di mana DNA dapat dianggap sebagai rangkaian string sehingga pencocokan DNA tersebut merupakan pencocokan string.


(17)

3

1.2Rumusan Masalah

Kamus elektronik atau kamus digital merupakan sebuah fasilitas yang membantu pengguna untuk mencari kata dengan cara diketikkan. Dengan mengetikkan kata yang dicari pada mesin pencari maka seluruh informasi yang diinginkan akan ditampilkan. Untuk menampilkan informasi tersebut, beberapa kamus elektronik menampilkan informasi setelah pengguna selesai mengetikkan satu kata pada mesin pencari. Tetapi ketika pengguna selesai mengetikkan kata pada mesin pencari, kata tersebut belum tentu ditemukan, hal ini menjadikan kamus elektronik kurang optimal untuk hal pemakaian waktu. Oleh karena itu, dibutuhkan sebuah fitur yang dapat mempersingkat waktu pengetikan sebuah kata yang diinginkan pengguna pada kamus, dimana fitur tersebut dapat menampilkan prediksi terhadap sebuah kata atau frasa yang pengguna ingin tulis tanpa harus menuliskan keseluruhan kata atau frasa secara lengkap pada kolom pencarian.

1.3Batasan Masalah

Batasan masalah pada penelitian ini adalah :

1. Aplikasi kamus dibangun dengan menggunakan dua jenis kamus yaitu Oxford

Learner’s Pocket Dictionary oleh Oxford University (2006) dan Dictionary of Technology Information oleh Collin, et al. (2002).

2. Aplikasi kamus ini terdiri atas 400 entry kata.

1.4Tujuan Penelitian

Adapun tujuan dari penelitian ini yaitu untuk membangun fitur autocomplete pada aplikasi kamus dengan menggunakan algoritma Boyer-Moore.

1.5Manfaat Penelitian

Manfaat dari penelitian ini adalah untuk memudahkan pengguna dalam menemukan kata yang ingin dicari pada kamus.


(18)

1.6Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri dari lima bagian utama antara lain sebagai berikut:

Bab 1: Pendahuluan

Bab ini terdiri dari latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, dan sistematika penulisan.

Bab 2: Landasan Teori

Bab ini berisi teori - teori yang digunakan untuk memahami permasalahan yang dibahas pada penelitian ini. Pada bab ini juga dijelaskan tentang penerapan algoritma Boyer-Moore yang akan digunakan untuk fitur autocomplete pada kamus.

Bab 3: Analisis dan Perancangan Sistem

Bab ini berisi analisis dan penerapan algoritma Boyer-Moore untuk membangun fitur

autocomplete pada kamus, serta perancangan seperti pemodelan dengan flowchart,

dan perancangan antarmuka.

Bab 4: Implementasi dan Pengujian Sistem

Bab ini membahas tentang implementasi dari analisis dan perancangan yang disusun pada Bab 3 dan pengujian untuk mengetahui apakah hasil yang didapatkan sesuai dengan yang diharapkan.

Bab 5: Kesimpulan dan Saran

Bab ini terdiri dari kesimpulan yang merupakan uraian dari bab-bab sebelumnya dan saran untuk pengembangan penelitian selanjutnya.


(19)

BAB 2

LANDASAN TEORI

2.1 Kamus

Kamus merupakan buku rujukan yang berisi penjelasan terkait dengan makna kata-kata. Kamus berfungsi untuk membantu seseorang mengenal perkataan baru. Selain menerangkan makna kata, kamus juga mungkin mempunyai pedoman sebutan, asal-usul(etimologi) suatu perkataan dan juga contoh penggunaan bagi kata tersebut. Kamus disusun sesuai dengan abjad dari A-Z dengan tujuan memudahkan pengguna kamus dalam mencari istilah yang diinginkannya dengan cepat dan mudah.

Berdasarkan penggunaan bahasa, kamus dibagi menjadi beberapa jenis (Pusat Bahasa Departemen Pendidikan Nasional, 2002), yaitu :

1. Kamus Ekabahasa

Pada kamus ini, kata-kata yang dijelaskan dengan penjelasannya menggunakan bahasa yang sama. Perbedaan jelas yang dimiliki kamus ini dengan kamus dwibahasa adalah karena kamus ini disusun berdasarkan pembuktian data korpus yaitu bermaksud untuk memberikan definisi atas kata-kata berdasarkan makna kata yang diberikan dalam penggunaan kalimat yang mengandung kata-kata tersebut.

Contoh kamus ekabahasa ini ialah Kamus Besar Bahasa Indonesia. 2. Kamus Dwibahasa

Dapat dilihat dari namanya, kamus ini menggunakan dua bahasa pada kata masukan dan memberikan persamaan kata dari kata yang berkaitan dengan menggunakan bahasa lain.

Contohnya adalah Kamus Inggris-Indonesia. 3. Kamus Aneka Bahasa


(20)

Selain itu terdapat pula jenis Kamus Khusus, yaitu kamus yang merujuk kepada kamus yang mempunyai fungsi khusus (Pusat Bahasa Departemen Pendidikan Nasional, 2002), contohnya :

1. Kamus Istilah

Kamus ini berisi istilah-istilah khusus untuk suatu bidang tertentu. Fungsinya adalah untuk kegunaan ilmiah.

2. Kamus Etimologi

Kamus etimologi ini merupakan kamus yang menerangkan asal usul suatu perkataan dan maksud asalnya.

3. Kamus Tesaurus

Kamus tesaurus menerangkan maksud suatu perkataan dengan memberikan kata searti atau sinonim dan juga kata yang berlawanan arti atau antonim. Kamus ini digunakan para penulis untuk meragamkan penggunaan diksi. 4. Kamus Peribahasa/Simpulan Bahasa

Kamus ini menerangkan maksud sesuatu peribahasa/simpulan bahasa. Kamus ini digunakan sebagai rujukan dan pada umumnya kamus ini dibaca dengan tujuan keindahan.

5. Kamus Kata Nama Khas

Kamus ini hanya menyimpan kata nama khas seperti nama tempat, nama tokoh, dan juga nama bagi instusi. Biasanya kamus ini digunakan untuk menyediakan rujukan bagi nama-nama ini.

6. Kamus Terjemahan

Kamus ini menampilkan kata searti dalam bahasa asing untuk satu bahasa sasaran. Kegunaannya adalah untuk membantu para penerjemah

7. Kamus Kolokasi

Kamus kolokasi merupakan kamus yang menerangkan tentang padanan kata, contohnya kata ‘terdiri’ yang selalu berpadanan dengan ‘dari’ atau ‘atas’.

Secara fisik, kamus terbagi menjadi dua jenis yaitu kamus yang berbentuk buku dan kamus elektronik(digital) (Nurhapipah, 2011). Kamus berbentuk buku terdiri dari puluhan bahkan ratusan lembar halaman kata. Berbeda dengan kamus buku yang cenderung besar dan tebal, kamus elektronik atau kamus digital merupakan


(21)

7

sebuah fasilitas yang membantu pengguna mencari kata dengan cara mengetikkan kata yang diinginkan pada kolom pencarian. Penggunaan kamus elektronik atau kamus digital ini lebih efisien dalam hal waktu dibandingkan dengan kamus buku.

2.2 Fitur atau Layanan Autocomplete

Fitur autocomplete atau word completion merupakan fasilitas yang disediakan oleh berbagai web browser, email-programs, search engine interface, source code editors,

database query tools, word processor, dan command line interpreters. Autocomplete

juga tersedia untuk atau sudah terintegrasi di dalam text editor. Autocomplete

melakukan prediksi terhadap sebuah kata atau frasa yang pengguna ingin tulis tanpa harus menulis keseluruhan kata atau frasa secara lengkap (Kusuma, 2012).

Autocomplete digunakan untuk mempermudah masalah pada pengetikan, misalnya apabila pengguna tidak dapat mengeja suatu kata dengan baik atau pengguna bingung dan sering sulit mengingat istilah yang tepat. Autocomplete dapat membantu untuk melengkapi kata yang diketikkan oleh pengguna menjadi kata yang mungkin dimaksud oleh pengguna. Dengan begitu, penggunaan autocomplete ini dapat mempersingkat waktu pengguna pada pengetikan kata tersebut (Morville & Callender, 2010).

Autocomplete bekerja ketika pengguna menulis huruf pertama atau beberapa huruf/karakter dari sebuah kata. Program yang melakukan prediksi akan mencari kemungkinan kata sebagai pilihan. Jika kata yang dimaksud ada dalam pilihan itu, maka pengguna dapat memilih itu (Kusuma, 2012).

Fitur autocomplete dapat dilihat pada Facebook Search ataupun search suggestion pada Google Search, Seacrh engine pada media sosial, pada aplikasi katalog perpustakaan, kamus dan aplikasi pencarian lainnya. Fitur autocomplete ini dapat dilihat pada gambar 2.1.


(22)

Gambar 2.1 Autocomplete pada Google Search

2.3 Algoritma Exact String Matching

Pencocokan string merupakan bagian terpenting dari sebuah proses pencarian string

dalam sebuah dokumen. Pencocokan string melakukan pencarian untuk semua kemunculan string pendek yang disebut pattern terhadap string yang lebih panjang atau disebut text. Hasil dari pencarian string dalam dokumen tergantung pada teknik atau cara pencocokan string yang digunakan.

Exact string matching, yaitu pencocokan sebuah string secara sangat tepat dengan susunan karakter dalam string yang dicocokkan baik dalam jumlah maupun urutan karakter dalam stringnya.

Pada proses pencocokan string, digunakan sebuah window yang akan bergeser di text. Window itu memiliki panjang yang sama dengan panjang pattern. Pada awal proses pencocokan string, window diletakkan pada ujung kiri text, lalu karakter-karakter pada window dibandingkan dengan karakter-karakter pada pattern, kemudian window akan digeser ke kanan di text dengan jarak tertentu, dan pergeseran tersebut baru akan berhenti bila window tersebut sampai pada ujung kanan text atau sampai pattern ditemukan cocok. (Charras & Lecroq, 2001).

Algoritma brute force merupakan algoritma paling alami untuk pencocokan

string. Algoritma brute force menemukan semua kemunculan karakter dari pattern y


(23)

9

pengembangan dari algoritma brute force dapat diklasifikasikan berdasarkan pada urutan pada saat algortima tersebut melakukan pencocokan antara karakter di pattern

dan karakter di text pada setiap tahap pencocokannya (Charras & Lecroq, 2001). Kategori pertama, arah yang paling alami dalam pencocokan string yaitu dari kiri ke kanan. Algoritma kategori ini melakukan pencocokan string dimulai dari karakter paling kiri pattern seperti yang ditunjukkan pada gambar 2.2. Beberapa algoritma yang termasuk dalam kategori ini adalah algoritma brute force, algoritma Karb-Rabin, dan algoritma Knuth-Morris-Pratt.

Gambar 2.2 Pencocokan dari karakter paling kiri ke karakter paling kanan pattern(left to right)

Kategori kedua, algoritma yang melakukan pencocokan dari kanan ke kiri karakter pada pattern seperti yang dapat dilihat pada gambar 2.3. Algoritma yang termasuk dalam kategori ini umumnya dikatakan sebagai algoritma yang menghasilkan hasil terbaik pada praktekmya, yaitu algoritma Boyer-Moore.

Gambar 2.3 Pencocokan dari karakter paling kanan ke karakter paling kiri pattern(right to left)

Kategori ketiga yaitu pencocokan dari dua arah yang telah ditentukan oleh tiap algoritma tertentu. Salah satunya seperti yang diterapkan oleh Galil-Seiferas dan Crochemore-Perrin dalam algoritma Two Way, mereka membagi pattern y menjadi dua bagian yaitu y = y1y2. Seperti yang dapat kita lihat pada gambar 2.4, pertama kali, pencarian terjadi pada y2 yang dilakukan dari karakter paling kiri ke kanan, apabila selama pencarian pertama tidak terjadi ketidakcocokan atau pattern y2 cocok dengan


(24)

text selanjutnya pada pencarian kedua algoritma akan memeriksa pada y1 yang

dilakukan dari kanan ke kiri seperti yang ditunjukkan pada gambar 2.5.

Gambar 2.4 Pencocokan pada patterny2 dimulai dari karakter paling kiri

Gambar 2.5 Pencocokan pada pattern y1 dimulai dari karakter paling kanan

2.4 Algoritma Boyer-Moore

Algoritma Boyer-Moore dipublikasikan pada tahun 1977 oleh Robert S. Boyer dan J. Strother Moore pada tahun 1997. Algoritma Boyer-Moore dianggap sebagai algoritma pencocokan string yang paling efisien pada aplikasi umum, karena sering diimplementasikan pada text editors untuk perintah “search” dan “subtitute” (Charras

& Lecroq, 2001).

Algoritma ini kemudian dikembangkan menjadi beberapa varian, diantaranya Turbo Boyer-Moore, Tuned Boyer-Moore, Hoorspol dan Zhu-Takaoka. Dan dari hasil penilitan yang dilakukan oleh Sagita (2013), disimpulkan bahwa algoritma Boyer-Moore memiliki waktu pencarian tercepat dari varian Boyer-Boyer-Moore lainnya. Dimana algoritma Turbo Boyer-Moore merupakan algoritma tercepat kedua dan yang paling lambat adalah algoritma Tuned Boyer-Moore.

Algoritma Boyer-Moore melakukan pencocokan dimulai dari karakter yang paling kanan hingga karakter paling kiri pattern. Jika terjadi ketidakcocokan antara karakter paling kanan pattern dengan karakter pada text yang dicocokkan, maka


(25)

11

karakter pada pattern akan diperiksa satu persatu untuk mendeteksi apakah ada karakter pada text tersebut yang sama dengan karakter pada pattern. Apabila terjadi kecocokan, maka pattern akan digeser sedemikian rupa sehingga posisi karakter yang sama antara pattern dan text terletak sejajar.

Secara sistematis, langkah-langkah yang dilakukan algoritma Boyer-Moore pada saat mencocokkan string adalah sebagai berikut (Soleh, 2011) :

a. Algoritma mulai mencocokkan pattern pada awal text.

b. Algoritma ini akan mencocokkan karakter per karakter dari kanan ke kiri

pattern dengan karakter di text yang bersesuaian, sampai salah satu kondisi berikut dipenuhi :

i. Karakter pada pattern dan pada text yang dibandingkan tidak cocok (mismatch).

ii. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini.

c. Algoritma kemudian menggeser pattern dengan memaksimalkan nilai pergeseran good-suffix dan pergeseran bad-character, lalu mengulangi langkah 2 sampai pattern berada diujung text.

Tabel pergeseran bad-character dan good-suffix dapat dihitung dengan kompleksitas waktu dan ruang sebesar O(n + σ) dengan σ adalah besar ruang alfabet.

Sedangkan pada fase pencarian, algoritma ini menemukan semua kemunculan dari

pattern dengan panjang n di dalam text sepanjang m dengan waktu O(nm). Pada kasus terburuk, algoritma ini akan melakukan 3m pencocokan karakter, namun pada performa terbaiknya algortima ini hanya akan melakukan O(n/m) pencocokan (Charras & Lecroq, 2001).

2.4.1 Pergeseran Bad-Character

Misal, terjadi ketidakcocokan antara karakter y[i] = b pada pattern dengan karakter

x[i + j] = a pada text selama pencocokan terjadi pada posisi j. Lalu, y[i + 1 .. n– 1] =

x[i + j + 1 .. j + n – 1] = v dan y[i] ≠ x[i + j]. Pergeseran bad-character terdiri dari menyejajarkan karakter x[i + j] pada text dengan kemunculan paling kanan karakter tersebut pada pattern, proses ini dapat dilihat pada gambar 2.6. Apabila karakter a


(26)

pada pattern sejajar dengan karakter setelah x[i + j], yaitu x[i + j + 1], seperti yang dapat dilihat pada gambar 2.7 (Charras & Lecroq, 2001).

Gambar 2.6 Pergeseran bad-character, a muncul pada y

Gambar 2.7 Pergeseran bad-character, tidak ada kemunculan a pada y

Pada tabel bad-character, setiap karakter pada pattern diberi nilai sesuai dengan ukuran jauhnya karakter tersebut dari karakter paling kanan dari pattern dan untuk karakter yang tidak terdapat pada pattern akan diberi nilai sejumlah karakter pada

pattern. Adapun pseudocode untuk pergeseran bad-character ini adalah sebagai berikut :

Procedure preBmBc(

input y : array[0..n-1]of char, input n : integer,

input/output bmBc : array of integer )

Deklarasi i:integer Algoritma

for (i=0; i<ASIZE; ++i)

bmBc[i]  n

for (i=0; i< n - 1; ++i)


(27)

13

2.4.2 Pergeseran Good-Suffix

Misal, terjadi ketidakcocokan antara karakter y[i] = b pada pattern dengan karakter

x[i + j] = a pada text selama pencocokan terjadi pada posisi j. Lalu, y[i + 1.. n– 1] =

x[i + j + 1 .. j + n – 1] = v dan y[i] ≠ x[i + j]. Pergeseran good-suffix terdiri dari menyejajarkan potongan x[i + j + 1.. j + n– 1] = y[ i + 1..n – 1] dengan kemunculan paling kanan potongan tersebut pada y yang didahului oleh karakter yang berbeda dari

y[i], dapat dilihat pada gambar 2.8. Apabila tidak ada potongan seperti itu, pergeseran dilakukan dengan menyejajarkan akhiran terpanjang u pada v dengan awalan dari y

yang sama dengan akhiran u tersebut, seperti pada gambar 2.9 (Charras & Lecroq, 2001).

Gambar 2.8 Pergeseran good-suffix, v muncul didahului oleh karakter c

Gambar 2.9 Pergeseran good-suffix, hanya akhiran dari v yang muncul pada y

Pada tabel pergeseran good-suffix, nilai pergeseran digunakan ketika ketidakcocokan ditemukan berdasarkan karakter pada posisi keberapa yang menyebabkan ketidakcocokan. Nilai dari setiap karakter yang ada pada pattern bergantung terhadap ada atau tidaknya perulangan akhiran(suffix) v dari text 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. Dari tabel suffix inilah tabel good-suffix akan didapat.


(28)

Pada tabel suffix, berisi nilai dari tiap karakter yang ada pada pattern yang menunjukkan ada atau tidaknya perulangan akhiran (suffix) dan dimana posisi perulangan tersebut sehingga ketika proses perhitungan tabel good-suffix dapat diketahui seberapa banyak pergeseran yang akan dilakukan untuk pencocokan selanjutnya.

Adapaun pseudocode untuk pergeseran good-suffix adalah sebagai berikut : Procedure suffixes(

input y: array[0..n-1] of char, input n: integer,

input/output suff: array of integer )

Deklarasi

f, g, i : integer Algoritma

suff[n-1]  n;

g  n-1

for (i = n-2; i >= 0; --i)

if(i > g and suff[i + n – 1 - f] < i-g)do

suff[i]  suff[i + n – 1 - f];

else

if(i<g)do

g  i;

f = i

while(g >= 0 and y[g] == y[g + n – 1 - f])do

--g;

suff[i]  f-g;

endif endfor

procedure preBmGs(

input y: array of char, input n:integer,

input/output bmGs: array of integer )

Deklarasi

i, j : integer

suff : array [0..YSIZE] of integer Algoritma


(29)

15

for (i=0; i < n; ++i)do

bmGs [i]  n

for (i= n-1; i >= -1; --1)

if(i == -1 or suff[i] == i+1) for(j=0; j < n-1-i; ++j)

if(bmGs[j] == n)

bmGs[j]  n-1-i

for (i=0; i <= n-2; ++i)

bmGs[n-1-suff[i]]  n-1-i

Setelah diperoleh nilai-nilai pada tabel bad-character dan tabel good-suffix, selanjutnya algoritma Boyer-Moore akan menggunakan nilai maximum antara nilai pergeseran bad-character dan nilai pergeseran good-suffix untuk melakukan pergeseran window pada saat pencocokan berlangsung. Proses pencocokan string

dengan algoritma Boyer-Moore ini dapat dilihat dalam pseudocode berikut : procedure BM(

input y: array[0..n-1] of char, input n:integer,

input x: array of[0..m-1] char, input m:integer

)

Deklarasi

i, j : integer

bmGs : array [0..YSIZE] of integer bmBc : array [0..ASIZE] of integer Algoritma

/*Preprocessing*/ preBmGs(y, n, bmGs) preBmBc(y, n, bmBc) /*searching*/

j = 0

while(j <= m-n)

for(i= n-1; i >= 0 and y[i] == x[i+j]; --i) if(i < 0)

OUTPUT(j)

j  j + bmGs[0]

else

j  j + MAX(bmGs[i], bmBc[x[i+j]]- n + 1 + i)

endif endwhile


(30)

Perhitungan dengan algoritma Boyer-Moore dapat dilihat pada contoh berikut ini.

Contoh :

Pattern (y) = “comp” n = 4

Text (x) = “host computer”

a. Perhitungan pergeseran bad-character

i 0 1 2 3

c c o m p * BmBc [c] 3 2 1 0 4

Nilai pergeseran pada tabel didapat dengan perhitungan sebagai berikut :

BmBc [y[i]] = n– 1 –i BmBc [y[0]] = 4 – 1 – 0 = 3

BmBc [y[1]] = 4 – 1 – 1 = 2

BmBc [y[2]] = 4 – 1 – 2 = 1

BmBc [y[3]] = 4 – 1 – 3 = 0

Dan untuk karakter selain yang terdapat pada pattern, karakter tersebut bernilai sejumlah karakter pattern yaitu 4.

b. Perhitungan pergeseran good suffix

Berdasarkan perhitungan sesuai pseudocode pergeserannya, didapat nilai untuk tabel good-suffix sebagai berikut :

i 0 1 2 3

c c o m p suff[i] 0 0 0 4 BmGs [i] 4 4 4 1

c. Pencocokan pattern dengan text

i 0 1 2 3

c c o m p * BmBc[c] 3 2 1 0 4 BmGs [i] 4 4 4 1 -


(31)

17

Pencocokan 1 :

c o m p

BmBc[t] = 4

BmGs[3] = 1

Maka pergeserannya, max(1, 4) = 4

Pencocokan 2 :

c o m p

BmBc[m] = 1

BmGs[3] = 1

Maka pergeserannya, max(1, 1) = 1

Pencocokan 3 :

c o m p

Pada pencocokan ke-3, pattern ditemukan pada indeks ke-5 pada text.

2.5 Penelitian Terdahulu

Beberapa penelitian terdahulu yang berkaitan dengan autocomplete diantaranya penelitian oleh Kusuma (2012) yang membangun fitur autocomplete pada text editor

yang menggunakan algoritma pencocokan string, yaiu algoritma brute force. Pada penelitiannya, Kusuma (2012) memodifikasi algoritma brute force dengan mengganti

h o s t c o m p u t e r

h o s t c o m p u t e r


(32)

tersebut, Kusuma (2010) menggunakan struktur data pohon/tree untuk menyimpan

reserved words, variabel, fungsi, serta daftar kata apa saja yang telah diinputkan user. Pradhana (2012), pada penelitiannya menggunakan algoritma brute force

dalam pengecekan kata untuk menghasilkan autocorrect dan menggunakan algoritma Boyer-Moore untuk menampilkan kata tersebut.

Sedangkan penelitian yang dilakukan oleh Primadani (2014), fitur

autocomplete dihasilkan dari perhitungan jarak levensthein distance yaitu dengan menghitung jumlah minimum pentranformasian suatu string sumber( yang diambil dari database) menjadi string lain yaitu sama dengan string target (yang diinput user) yang meliputi penghapusan, penyisipan, dan penukaran. Pada penelitian ini, apabila

string sumber memiliki nilai modifikasi yang paling sedikit saat dibandingkan dengan

string sumber dianggap sebagai kata yang cocok atau paling mendekati.

Untuk keterangan lain mengenai penelitian terdahulu yang berkaitan dengan

autocomplete ini dapat dilihat pada tabel 2.1 berikut.

Tabel 2.1 Penelitian terdahulu yang berkaitan dengan autocomplete

No Nama Penelitian Penulis Keterangan

1.

Pencocokan String untuk Fitur autocompletion pada

text editor atau integrated development environment(IDE)

Muhammad Wachid Kusuma (2012)

Cara kerja algortima berjalan lambat

2.

Penerapan String Matching

pada Fitur Auto Text di

Smartphone

Fandi Pradhana (2012)

Waktu pengecekan dengan algoritma Brute Force membuat sistem menjadi


(33)

19

Tabel 2.1 Penelitian terdahulu yang berkaitan dengan autocomplete (lanjutan)

No Nama Penelitian Penulis Keterangan

3.

Simulasi Algoritma

Levenshtein Distance untuk Fitur Autocomplete pada

Aplikasi Katalog Perpustakaan

Yuli Primadani (2014)

Jika nilai jarak levenshtein

yang diperoleh terlalu besar kemungkinan judul buku yg dicari tidak dapat ditampilkan

Beberapa penelitian terdahulu yang menggunakan algoritma Boyer-Moore, diantaranya penelitian oleh Minandar, et al. (2005) yang menggunakan algoritma Boyer-Moore untuk pencocokan DNA. Pada penelitian tersebut, DNA dianggap sebagai rangkaian string, sehingga pencocokan DNA tidak lain merupakan pencocokan string.

Penelitian oleh Vandika & Kartawidjaja (2009), pencarian kata dilakukan secara paralel dengan algoritma Boyer-Moore dan lingkup paralel diemulsikan dengan menggunakan suatu perangkat lunak yang dinamakan PVM (parallel Virtual Machine).

Soleh (2010), melakukan penelitian dengan menggunakan dua algoritma pencocokan string yaitu algoritma KMP dan algoritma Boyer-Moore dalam melakukan pencarian pada aplikasi Search Engine sederhana. Penggunaan dua algoritma bertujuan untuk membandingkan algoritma mana yang melakukan pencarian lebih cepat. Sagita & Prasetiyowati (2013) juga melakukan studi perbandingan implementasi algoritma Boyer-Moore dan dua algortima turunannya yaitu algoritma Turbo Boyer-Moore dan Tuned Boyer Moore dalam pencarian string.

Untuk keterangan lain mengenai penelitian terdahulu yang berkaitan dengan Boyer-Moore dapat dilihat pada tabel 2.2 berikut.


(34)

Table 2.2 Penelitian terdahulu yang menggunakan Algoritma Boyer-Moore

No Nama Penelitian Penulis Keterangan

1.

Aplikasi Algoritma Pencarian String Boyer-Moore pada Pencocokan

DNA

Arie Minandar , Andri Tanoto, Davis Tanadi

(2005)

Algoritma Boyer-Moore merupakan algoritma yang

efisien untuk pencocokan

string

2.

Kinerja Algoritma Paralel untuk Pencarian Kata dengan Metode Boyer-Moore Menggunakan PVM

Stania Vandika & Maria Angela

Kartawidjaja (2009)

Pencarian kata dengan metode Boyer-Moore dengan

menggunakan komputasi paralel akan memberikan

peningkatan kinerja komputasi untuk kata kunci

yang terdiri dari satu huruf saja.

3.

Implementasi Algoritma KMP dan Boyer-Moore dalam Aplikasi Search

Engine Sederhana

Moch. Yusup Soleh (2010)

Algortima Boyer-Moore yang lebih cocok digunakan untuk

pencarian string dengan alpabet sedikit sedangkan Algortima KMP lebih cocok

untuk pencarian string

dengan alpabet sedikit

4.

Studi Perbandingan Implementasi Algoritma

Boyer-Moore, Turbo Boyer-Moore, dan Tuned

Boyer-Moore dalam Pencarian string

Vina Sagita & Maria Irmina Prasetiyowati

(2013)

Algoritma Boyer-Moore memiliki waktu pencarian

tercepat dari tiga varian Boyer-Moore yang telah


(35)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Identifikasi Masalah

Kamus elektronik atau kamus digital merupakan sebuah fasilitas yang dapat membantu pengguna untuk mencari informasi dari sebuah kata dengan cara mengetikkan kata yang ingin diketahui pada kolom pencarian, selanjutnya mesin pencari akan bekerja untuk menemukan informasi yang diinginkan.

Mesin pencari dirancang agar mampu menemukan informasi yang dicari dari banyaknya kumpulan informasi yang tersedia pada kamus tersebut (Haryanto, 2011). Tetapi, dalam hal ini kesalahan dalam mengetikkan kata yang ingin dicari masih sering terjadi. Kesalahan dalam pengetikan kata ini dapat menyebabkan informasi yang dicari tidak ditemukan dikarenakan tidak tersedianya kata tersebut pada database kamus. Oleh karena itu, pada aplikasi kamus ini dibutuhkan penambahan fitur

autocomplete, dimana fitur ini akan menampilkan prediksi kata yang dicari oleh pengguna pada saat mulai mengetikkan kata.

Fitur autocomplete melakukan prediksi terhadap sebuah kata atau frasa yang pengguna ingin tulis tanpa harus menuliskan keseluruhan kata atau frasa secara lengkap pada kolom pencarian. Fitur ini akan mempermudah pengguna untuk menemukan informasi dari kata yang diinginkan (Kusuma, 2012).

3.2 Analisis Data

Data yang digunakan pada sistem ini berupa daftar kata yang diambil dari Dictionary of Technology Information oleh Collin, et al. (2002) dan Learner’s Pocket Dictionary oleh Oxford University (2006). Masing-masing kata tersebut memiliki informasi mengenai makna kata tersebut maupun contoh penggunaannya dalam kalimat. Informasi makna kata itu sendiri diambil berdasarkan definisi kata menurut kamus


(36)

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 kata/huruf pada kolom pencarian. Setiap kali

user mengetikkan suatu kata/huruf 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


(37)

23

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.


(38)

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 listkata 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.


(39)

25

i 0 1 2 3

c p r o c *

BmBc[c] 3 2 1 0 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-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 0 1 2 3

c p r o c

suff[i] 0 0 0 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’


(40)

i 0 1 2 3

c p r o c *

BmBc[c] 3 2 1 0 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, max(1, 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 0 1 2 3

c p r o c *

BmBc[c] 3 2 1 0 3 BmGs[i] 4 4 4 1 - a c c e s s

p r o c

a c c e s s


(41)

27

Pencocokan 1 :

BmBc[r] = 2

BmGs[3] = 1

Maka pergeserannya, max(1, 2) = 2

Pencocokan 2 :

BmBc[s] = 4

BmGs[3] = 1

Maka pergeserannya, max(1, 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 0 1 2 3

c p r o c *

BmBc[c] 3 2 1 0 3 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


(42)

Pencocokan 1 :

BmBc[t] = 4

BmGs[2] = 4

Maka pergeserannya, max(4, 4) = 4

Pencocokan 2 :

BmBc[r] = 2

BmGs[3] = 1

Maka pergeserannya, max(2,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 0 1 2 3

c p r o c *

BmBc[c] 3 2 1 0 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


(43)

29

Pencocokan 1 :

BmBc[e] = 4

BmGs[3] = 1

Maka pergeserannya, max(1, 4) = 4

Pencocokan 2 :

BmBc[s] = 4

BmGs[3] = 1

Maka pergeserannya, max(1, 4) = 4

Pencocokan 3 :

BmBc[e] = 4

BmGs[3] = 1

Maka pergeserannya, max(1, 4) = 4

Pencocokan 4 :

BmBc[r] = 2

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


(44)

Maka pergeserannya, max(1, 2) = 2

Pencocokan 5 :

BmBc[h] = 4

BmGs[3] = 1

Maka pergeserannya, max(1, 4) = 4

Pencocokan 6 :

BmBc[e] = 4

BmGs[3] = 4

Maka pergeserannya, max(4, 4) = 4

Pencocokan 7 :

BmBc[e] = 4

BmGs[3] = 4

Maka pergeserannya, max(4, 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


(45)

31

i 0 1 2 3

c p r o c *

BmBc[c] 3 2 1 0 3 BmGs[i] 4 4 4 1 -

Pencocokan 1 :

BmBc[r] = 2

BmGs[3] = 1

Maka pergeserannya, max(1, 2) = 2

Pencocokan 2 :

BmBc[p] = 3

BmGs[3] = 1

Maka pergeserannya, max(1, 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


(46)

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

Seperti yang dapat dilihat pada gambar 3.2, tampilan utama sistem terdiri dari kolom pencarian, kolom informasi kata menurut Kamus bahasa Inggris dan kolom informasi kata menurut Kamus Teknologi Informasi.


(47)

33

Pada sudut kanan terdapat tombol “abrbreviations used” yang akan menampilkan

maksud penggunaan abbreviations pada kamus seperti yang dapat dilihat pada gambar 3.3.

Gambar 3.3 Tampilan untuk abbreviations used

Selanjutnya, fungsi autocomplete bekerja pada kolom pencarian kata. Pada saat pengguna mengetikkan kata, sistem akan menampilkan kata-kata yang mungkin dimaksud oleh pengguna. Ketika pengguna memilih kata yang diinginkan, informasi untuk kata tersebut akan ditampilkan pada dua kolom dibawahnya. Dapat dilihat pada gambar 3.4.


(48)

(49)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Aplikasi kamus ini menggunakan algoritma Boyer-Moore dalam menghasilkan fitur

autocomplete, dimana fitur tersebut yang dapat mempermudah pengguna untuk menampilkan daftar kata yang mungkin dimaksudkan oleh pengguna. Bab ini akan menjelaskan spesifikasi software dan hardware yang digunakan dalam membangun sistem dan implementasi sistem yang telah dirancang pada Bab 3, implementasi tampilan antarmuka, database, dan penggunaan autocomplete pada sistem.

4.1.1 Spesifikasi software dan hardware yang digunakan

Spesifikasi software dan hardware yang digunakan dalam membangun sistem ini adalah sebagai berikut :

1. Sistem operasi Microsoft Windows 7 Ultimate 32-bit Service Pack 1 2. Processor Intel® Core™ 2 Duo CPU P7550 @2,26 GHz 2,27GHz 3. Memory 2.00 GB RAM

4. Hardisk 500 GB 5. NetBeans IDE 8.0 6. XAMPP 1.8.3 7. Keyboard

4.1.2 Implementasi antarmuka sistem

Adapun implementasi perancangan antarmuka sistem yang telah dilakukan adalah sebagai berikut :


(50)

1. Tampilan awal aplikasi

Tampilan awal ini merupakan tampilan yang pertama kali muncul ketika sistem berjalan. Pada tampilan awal ini terdiri beberapa kolom yaitu kolom pencarian, dan kolom informasi kata berdasarkan kamus bahasa Inggris dan kamus teknologi informasi. Pada tampilan awal ini, terdapat juga tombol “abbreviations used”

yang menampilkan penggunaan singkatan kata yg terdapat pada kamus. Tampilan awal aplikasi ini dapat dilihat pada gambar 4.1.

Gambar 4.1. Tampilan awal aplikasi kamus

2. Tampilan tombol abbreviations used

Abbreviations used menampilkan penjelasan penggunaan kata yang disingkat yang terdapat pada informasi kata dalam kamus. Tampilan abbreviations used


(51)

37

Gambar 4.2 Tampilan Abbrevation Used

3. Tampilan fungsi autocomplete

Fungsi autocomplete bekerja ketika pengguna mengetikkan kata pada kolom pencarian. Pada saat itu sistem akan memunculkan kata-kata yang mungkin dimaksud oleh pengguna berdasarkan kata yang telah diinputkan. Tampilan untuk fungsi autocomplete ini dapat dilihat pada gambar 4.3.


(52)

4. Tampilan informasi kata

Setelah fungsi autocomplete memunculkan daftar kata yang cocok, selanjutnya pengguna akan memilih kata yang diinginkan dan sistem akan menampilkan informasi kata tersebut. Tampilan untuk informasi kata ini dapat dilihat pada gambar 4.4.

Gambar 4.4. Tampilan untuk informasi kata

4.1.3 Implementasi data

Data yang digunakan pada kamus ini diambil dari Oxford Learner’s Pocket

Dictionary oleh Oxford University (2006) yang berisi informasi makna kata secara umum, serta diambil dari Dictionary of Technology Information oleh Collin, et al. (2002), yang merupakan kamus istilah dalam bidang teknologi informasi, informasi makna kata yang diberikan merupakan informasi kata yang lebih spesifik menurut bidang teknologi informasi. Total data yang digunakan pada kamus ini terdiri dari 400


(53)

39

Tabel 4.1. Rangkuman database pada sistem Word

_id word English dictionary Dictionary of IT

1 analysis NOUN

(a) study of sth by examining its parts (b) r...

NOUN

detailed examination and report;

market anal...

2 applet NOUN

(computing) which is run from within another ...

NOUN

(a) utility application program

(b) (in Micro... 3 approximate ADJECTIVE

almost correct or exact, but not complet...

ADJECTIVE

not exact, but almost correct;

we have m...

4 access 1 NOUN

(a) [MASS NOUN] (often access to) The means...

NOUN

being allowed to use a computer and read or a...

… … …

398 graphics NOUN

[pl] designs, drawings or pictures: computer...

NOUN

pictures or lines which can be drawn on pape...

399 host 1 NOUN

(a) person who entertains guests in their ...

NOUN & ADJECTIVE host adapter adapter which conne...

400 host computer NULL NOUN

(a) main controlling computer in a multi-user...

4.1.4 Implementasi pencocokan string

Pencocokan string pada sistem dilakukan dengan menggunakan algoritma Boyer-Moore. Pertama-tama, input dalam bentuk char array akan dihitung nilai setiap karakternya dengan pendekatan bad-character dan good-suffix, dimana nilai tersebut disimpan dalam bentuk tabel. Tabel bad-character dengan kolom sebanyak 256 sesuai dengan jumlah karakter dalam ASCII, sedangkan tabel good-suffix sebanyak panjang

string yang diinputkan. Setelah nilai setiap karakter didapat, algoritma Boyer-Moore akan mencocokkan string dengan menemukan potongan string input pada string target yang diambil dari database. Apabila string input ditemukan pada string target maka kita akan mendapatkan nilai indeks penemuan string input tersebut pada string target.


(54)

a. Nilai tabel bad-character dan tabel good-suffix

1. Input= ‘com’

Nilai tabel bad-character yang dihasilkan untuk input ‘com’ dapat dilihat pada

gambar 4.5 (a). Nilai untuk karakter [c, m, o] adalah [2, 0, 1] dimana [c, m, o] merupakan karakter yang terdapat pada string input, sedangkan karakter selain yang terdapat pada string input bernilai 3 yaitu sejumlah panjang string.

Gambar 4.5 (a) Tabel bad-character untuk ‘com’

Sedangkan nilai tabel good-suffix yang dihasilkan untuk string ‘com’ dapat dilihat

pada gambar 4.5 (b) . Tabel tersebut berisi nilai [1, 4, 5] , dimana nilai tersebut merupakan nilai masing-masing karakter [c, o, m].

Gambar 4.5 (b) Tabel good-suffixuntuk ‘com’ 2. Input= ‘proc’

Nilai tabel bad-character yang dihasilkan untuk input ‘proc’ dapat dilihat pada gambar 4.6 (a) berikut.

Gambar 4.6 (a) Tabel bad-characteruntuk ‘proc’

Seperti yang terlihat pada gambar 4.6 (a), nilai untuk karakter [c, o, p, r] adalah [0, 1, 3, 2] dimana [c, o, p, r] merupakan karakter yang terdapat pada string input,


(55)

41

sedangkan karakter selain yang terdapat pada string input bernilai 4 yaitu sejumlah panjang string.

Sedangkan untuk nilai tabel good-suffix yang dihasilkan dapat dilihat pada gambar 4.6 (b). Tabel good-suffix berisi nilai [1, 5, 6, 7] sesuai dengan panjang stringinput. Dimana nilai tersebut merupakan nilai dari masing- masung karakter pada string input yaitu [p, r, o, c].

Gambar 4.6 (b) Tabel good-suffixuntuk ‘proc’ 3. Input= ‘prco’

Dapat dilihat pada gambar 4.7 (a), nilai untuk karakter [c, o, p, r] adalah [1, 0, 3, 2] dimana [c, o, p, r] merupakan karakter yang terdapat pada string input, sedangkan karakter selain yang terdapat pada string input bernilai 4 yaitu sejumlah panjang

string.

Gambar 4.7 (a) Tabel bad-characteruntuk ‘prco’

Karakter yang terdapat pada string‘prco’ sama dengan karakter yang terdapat pada

contoh untuk string‘proc’. Untuk karakter ‘o’ dan ‘c’ memiliki nilai berbeda sesuai

dengan posisi karakter tersebut pada string ‘proc’ dan ‘prco’, hal ini dikarenakan

tabel bad-character menghasilkan nilai tiap karakter dengan melakukan pencacahan dimulai dari karakter paling kanan string sampai karakter paling kiri

string dimulai dari 0.

Sedangkan untuk nilai tabel good-suffix yang dihasilkan dapat dilihat pada gambar 4.7 (b). Tabel good-suffix berisi nilai [1, 5, 6, 7] sesuai dengan panjang string input. Dimana nilai tersebut merupakan nilai dari masing- masung karakter pada string input yaitu [p, r, c, o].


(56)

Gambar 4.7 (b) Tabel good-suffixuntuk ‘prco’

b. Pencocokan string

Pencocokan string dilakukan dengan menemukan string input pada string target yang diambil dari database, pencocokan dilakukan terhadap semua kata yang terdapat dalam database. Pencocokan itu sendiri dilakukan dengan melakukan pergeseran string input sepanjang string target berdasarkan nilai tertinggi diantara nilai pergeseran bad-character dan good-suffix karakter yang dicocokkan.

1. Input= ‘com’

Hasil pencocokan untuk string ‘com’ terhadap beberapa string target dapat dilihat pada gambar 4.8.

Gambar 4.8 Pencocokan string‘com’ terhadap string target

Nilai awal i = 2, pencocokan dimulai dari indeks ke-2 string ‘host computer’.


(57)

43

paling kanan string input yaitu karakter ‘m’, ilustrasinya dalam dilihat pada gambar

4.8(a).

Karena belum ditemukan kecocokan, maka berdasarkan nilai yang terdapat pada tabel bad-character dan good-suffix nilai tertinggi dari pergeserannya adalah 3, maka string ‘com’ akan bergeser sebanyak 3 karakter sehingga pencocokan

selanjutnya dimulai pada indeks ke-5 string target.

Pencocokan kedua terjadi antara karakter ke-5 dari string target yaitu karakter ‘c’

dengan karakter paling kanan string input yaitu ‘n’, seperti pada gambar 4.8(b).

Karena belum ditemukan kecocokan, string ‘com’ akan bergeser sebanyak 2

karakter berdasarkan nilai tertinggi antara pergeseran bad-character dan good-suffix, sehingga pencocokan selanjutnya dimulai pada indeks ke-7 dari string

target.

Pencocokan ketiga terjadi antara karakter ke-7 dari string target yaitu karakter ‘m’ dengan karakter paling kanan string input yang juga merupakan karakter ‘m’,

diilustrasikan seperti pada gambar 4.8(c).

Gambar 4.8(a) Pencocokan pertama dimulai pada indeks ke-2 dari string target


(58)

Gambar 4.8(c) Pencocokan ketiga dimulai pada indeks ke-7 dari string target

Apabila telah ditemukan kecocokan pada indeks ke-7 selanjutnya pencocokan akan dilanjutkan pada karakter kedua terkanan dari string input yaitu karakter ‘o’ dengan

karakter yang sejajarnya pada string target yaitu karakter ‘o’. Apabila ditemukan lagi kecocokan, selanjutnya pencocokan terjadi pada karakter paling kiri string input yaitu karakter ‘c’ dengan karakter yang sejajarnya pada string target yang juga merupakan karakter ‘c’. Dengan ini penemuan kecocokan diberitahukan pada posisi indeks ke-5 string target.

2. Input= ‘proc’

Untuk input ‘proc’, beberapa hasil pencocokan yang dilakukan terhadap string

target dapat dilihat pada gambar 4.9.

Gambar 4.9 Pencocokan string‘proc’ terhadap string target

Nilai awal i = 3, pencocokan dimulai dari indeks ke-3 dari string target ‘microprocessor’. Pencocokan pertama terjadi antara karakter ke-3 dari string


(59)

45

target yaitu karakter ‘r’ dengan karakter paling kanan dari string input yaitu karakter ‘c’, seperti yang dapat dilihat pada gambar 4.9(a). Ketidakcocokan terjadi pada proses pencocokan pertama ini, maka string input akan bergeser sebanyak 2 karakter sesuai dengan angka terbesar dari nilai pergeseran bad-character dan

good-suffix, sehingga pencocokan selanjutnya dimulai pada indeks ke-5 dari string

target seperti yang dapat dilihat pada gambar 4.9(b). Pencocokan kedua dimulai pada karakter ke-5 string target yaitu karakter ‘p’ dengan karakter paling kanan

string input yaitu ‘c’. Karena terjadi ketidakcocokan, maka akan dilakukan

pergeseran sebanyak 3 karakter berdasarkan nilai dua tabel, sehingga pencocokan selanjutnya akan dimulai pada indeks ke-8 dari string target seperti pada gambar 4.9(c).

Gambar 4.9(a) Pencocokan pertama dimulai pada indeks ke-3 dari string target

Gambar 4.9(b) Pencocokan kedua dimulai pada indeks ke-5 dari string target


(60)

Pada pencocokan ketiga, ditemukan kecocokan antara karakter ‘c’ pada string

target dengan karakter ‘c’ pada string input, maka selanjutnya pencocokan akan berlanjut dengan mencocokkan string input dengan string target sampai pada karakter paling kiri ‘proc’. Pencocokan ini menghasilkan penemuan kecocokan

string pada indeks ke-5 string target.

3. Input = ‘prco’

Nilai awal i = 3 yang artinya pencocokan string pertama kali dilakukan dimulai dari indeks ke-3 pada string target. Output terakhir yang dihasilkan untuk pencocokan terhadap input‘prco’ pada setiap string target bernilai -1, yang artinya

input ‘prco’ tidak ditemukan pada setiap kata dalam database. Beberapa hasil pencocokan untuk input berupa string‘prco’ dapat dilihat pada gambar 4.10.

Gambar 4.10 Pencocokan string‘prco’ terhadap string target

Contohnya, pencocokan yang terjadi pada string input ‘prco’ terhadap string target ‘access’. Pencocokan pertama terjadi pada indeks ke-3 string ‘access’ yaitu pada

karakter ‘e’ dan karakter paling kanan dari string inputyaitu karakter ‘o’, dan pada

tahap ini terjadi ketidakcocokan antara karakter tersebut sehingga ‘prco’ harus digeser 4 karakter sesuai nilai pergeseran terbesar dari tabel bad-character dan

good-suffix, seperti yang diilustrasikan pada gambar 4.10(a). Untuk selanjutnya pencocokan terjadi pada indeks ke-7 pada string ‘access’, tetapi indeks ke-7 tidak


(61)

47

dimiliki oleh string target, yang berarti string‘prco’ telah melewati string ‘access’

sehingga pencocokan berhenti, seperti yang diilustrasikan pada gambar 4.10(b).

Gambar 4.10(a) Pencocokan pertama dimulai pada indeks ke-3 dari string target

Gambar 4.10(b) string ‘prco’telah melewati string ‘access’

4.1.5 Implementasi fungsi autocomplete

Fitur autocomplete bekerja ketika pengguna mulai mengetikkan kata pada kolom pencarian. Kata yang diinputkan oleh pengguna akan dicocokkan dengan kumpulan kata yang terdapat pada database menggunakan algoritma Boyer-Moore dan ditampilkan sebagai kata yang disarankan atau word suggestion. Apabila pada proses pencocokan string nilai variabel pos bernilai -1, maka kata tersebut tidak akan ditampilkan sebagai word suggestion karena tidak terjadi kecocokan antara string input dengan kata tersebut. Sedangkan apabila terjadi kecocokan, variabel pos akan bernilai sesuai indeks posisi ditemukannya string input tersebut pada string target. Hasil nilai indeks yang dimaksud dapat dilihat pada contoh berikut ini.

a. Input= ‘com’

Untuk input string‘com’ didapatkan hasil seperti pada gambar 4.11. Pada gambar

4.11 dapat dilihat bahwa string ‘com’ ditemukan di indeks ke-0 pada kata ‘command’, ‘comment’, dan ‘compile dan terletak pada indeks ke-5 pada kata ‘host computer’. Maka keempat kata tersebut pasti akan muncul sebagai word suggestion


(62)

apabila user mengetikkan inputberupa ‘com’, fungsi autocomplete untuk input ini dapat dilihat pada gambar 4.12.

Gambar 4.11. Hasil pencocokan untuk input ‘com’


(63)

49

b. Input= ‘proc’

Hasil pencocokan string untuk input ‘proc’ dapat dilihat pada gambar 4.13.

Gambar 4.13 Hasil pencocokan untuk input ‘proc’

Pada gambar tersebut dihasilkan posisi penemuan string‘proc’ di indeks ke-9 pada ‘attached processor’, di indeks ke-6 pada ‘batch processing’, dan di indeks ke-5 pada ‘microprocessor. Maka ketiga kata tersebut pasti akan muncul sebagai word suggestion apabila user mengetikkan inputberupa ‘proc. Fungsi autocomplete yang akan ditampilkan untuk input‘proc’ dapat dilihat pada gambar 4.14.


(64)

Gambar 4.14 Fungsi autocomplete untuk input ‘proc’ c. Input= ‘prco’

Hasil pencocokan untuk input berupa string‘prco’ untuk semua kata bernilai -1. Itu berarti string ‘prco’ tidak ditemukan pada setiap string target yang berasal dari

database. Hasil pencocokan untuk input ‘prco’tersebut dapat dilihat pada gambar

4.15.


(65)

51

Untuk input berupa string ‘prco’ ini tidak akan menampilkan satupun kata sebagai

word suggestion. Hasil penerapan fungsi autocomplete untuk input ‘prco’ dapat

dilihat pada gambar 4.16.

Gambar 4.16 Fungsi autocomplete untuk input‘prco’

4.2 Evaluasi Pengujian Sistem

Evaluasi pengujian sistem ini dilakukan untuk melihat apakah sistem dapat berjalan dan berfungsi sesuai rancangan sistem yang telah direncanakan.

4.2.1 Rencana pengujian sistem

Komponen yang akan diuji pada rencana pengujian sistem ini dapat dilihat pada tabel 4.2 berikut .

Tabel 4.2 Rencana Pengujian Sistem

No. Komponen yang diuji Keterangan

1 Pencocokan string

Sistem menemukan kata pada database yang mengandung string input dengan menghasilkan


(66)

Tabel 4.2 Rencana Pengujian Sistem (lanjutan)

No. Komponen yang diuji Keterangan

2 Fungsi Autocomplete

Fungsi autocomplete harus mampu menampilkan daftar kata yang mungkin dimaksud pengguna

berdasarkan kata yang diinputkan

4.2.2 Hasil pengujian sistem

Hasil pengujian sistem ini dapat dilihat pada Tabel 4.3.

Tabel 4.3. Hasil Pengujian Sistem

No. Komponen yang diuji Hasil yang diharapkan Hasil pengujian

1 Pencocokan string

Sistem menemukan kata pada

database yang mengandung

string input dengan menghasilkan nilai indeks dari

penemuan tersebut

Berhasil

2 Fungsi Autocomplete

Fungsi autocomplete harus mampu menampilkan daftar kata yang mungkin dimaksud

pengguna berdasarkan kata yang diinputkan


(67)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Kesimpulan yang dapat diambil berdasarkan implementasi dan pengujian sistem yang telah dilakukan adalah sebagai berikut :

1. Fitur autocomplete pada aplikasi ini dapat meminimalkan kesalahan pengguna dalam mengetikkan kata karena fitur ini akan menampilkan word suggestion

ketika pengguna mulai mengetikkan kata yang diinginkan.

2. Fitur autocomplete yang dihasilkan dengan algoritma Boyer-Moore akan menampilkan daftar kata yang mungkin dimaksud pengguna, dimana masing-masing kata tersebut mengandung potongan kata yang telah diketikkan pengguna pada kolom pencarian.

3. Fitur autocomplete pada aplikasi ini tidak akan menampilkan word suggestion

apabila kata yang diketikkan pengguna salah dalam letak hurufnya, karena kata yang diketikkan pengguna tersebut akan dianggap tidak ditemukan dalam

database sistem.

4. Algoritma Boyer-Moore bersifat exact atau sangat tepat dalam melakukan pencocokan string, hal ini menyebabkan apabila terjadi kesalahan pada letak huruf pada kata yang diketikkan pengguna, kata tersebut akan dianggap tidak ditemukan.

5.2. Saran

Adapun saran untuk penelitian selanjutnya :

1. Sistem ini diharapkan akan lebih optimal dengan menambahkan algoritma edit distance untuk menghindari kesalahan pengetikan seperti kesalahan dalam peletakan huruf pada saat kata diketikkan.


(68)

2. Sistem ini juga dapat dikembangkan dengan menggunakan metode pencocokan

string yang melakukan pencocokan string dari dua arah untuk memaksimalkan performa sistem dalam menemukan kata.


(1)

Untuk input berupa string ‘prco’ ini tidak akan menampilkan satupun kata sebagai word suggestion. Hasil penerapan fungsi autocomplete untuk input ‘prco’ dapat dilihat pada gambar 4.16.

Gambar 4.16 Fungsi autocomplete untuk input‘prco’

4.2 Evaluasi Pengujian Sistem

Evaluasi pengujian sistem ini dilakukan untuk melihat apakah sistem dapat berjalan dan berfungsi sesuai rancangan sistem yang telah direncanakan.

4.2.1 Rencana pengujian sistem

Komponen yang akan diuji pada rencana pengujian sistem ini dapat dilihat pada tabel 4.2 berikut .

Tabel 4.2 Rencana Pengujian Sistem

No. Komponen yang diuji Keterangan

1 Pencocokan string

Sistem menemukan kata pada database yang mengandung string input dengan menghasilkan

nilai indeks dari penemuan tersebut


(2)

52

Tabel 4.2 Rencana Pengujian Sistem (lanjutan)

No. Komponen yang diuji Keterangan

2 Fungsi Autocomplete

Fungsi autocomplete harus mampu menampilkan daftar kata yang mungkin dimaksud pengguna

berdasarkan kata yang diinputkan

4.2.2 Hasil pengujian sistem

Hasil pengujian sistem ini dapat dilihat pada Tabel 4.3.

Tabel 4.3. Hasil Pengujian Sistem

No. Komponen yang diuji Hasil yang diharapkan Hasil pengujian

1 Pencocokan string

Sistem menemukan kata pada database yang mengandung

string input dengan menghasilkan nilai indeks dari

penemuan tersebut

Berhasil

2 Fungsi Autocomplete

Fungsi autocomplete harus mampu menampilkan daftar kata yang mungkin dimaksud

pengguna berdasarkan kata yang diinputkan


(3)

5.1. Kesimpulan

Kesimpulan yang dapat diambil berdasarkan implementasi dan pengujian sistem yang telah dilakukan adalah sebagai berikut :

1. Fitur autocomplete pada aplikasi ini dapat meminimalkan kesalahan pengguna dalam mengetikkan kata karena fitur ini akan menampilkan word suggestion ketika pengguna mulai mengetikkan kata yang diinginkan.

2. Fitur autocomplete yang dihasilkan dengan algoritma Boyer-Moore akan menampilkan daftar kata yang mungkin dimaksud pengguna, dimana masing-masing kata tersebut mengandung potongan kata yang telah diketikkan pengguna pada kolom pencarian.

3. Fitur autocomplete pada aplikasi ini tidak akan menampilkan word suggestion apabila kata yang diketikkan pengguna salah dalam letak hurufnya, karena kata yang diketikkan pengguna tersebut akan dianggap tidak ditemukan dalam database sistem.

4. Algoritma Boyer-Moore bersifat exact atau sangat tepat dalam melakukan pencocokan string, hal ini menyebabkan apabila terjadi kesalahan pada letak huruf pada kata yang diketikkan pengguna, kata tersebut akan dianggap tidak ditemukan.

5.2. Saran

Adapun saran untuk penelitian selanjutnya :

1. Sistem ini diharapkan akan lebih optimal dengan menambahkan algoritma edit distance untuk menghindari kesalahan pengetikan seperti kesalahan dalam peletakan huruf pada saat kata diketikkan.


(4)

54

2. Sistem ini juga dapat dikembangkan dengan menggunakan metode pencocokan string yang melakukan pencocokan string dari dua arah untuk memaksimalkan performa sistem dalam menemukan kata.


(5)

Banowosari, L. Y., Darmawan, A., Kurniawan, K. & Mitchell, M. 2014. Analisis Pada Fitur Autocomplete Suggestion dan Semantik Pada Pencarian Di Mesin Pencari Google. Prosiding Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2014), pp. 295-301.

Benesius. 2010. Sistem Pengoreksian Kata Kunci dengan Menggunakan Metode Levenshtein Distance. Tesis. Universitas Gadjah Mada.

Callender, J. & Morville, P. 2010. Search Pattern. Design for Discovery. O’Reilly Media: Canada.

Charras, C. & Lecroq, T. 2001. Boyer-Moore Algorithm. Handbook of Exact String-Matching Algorithms. 91-97.

Haryanto, V. E. 2011. Rancang Bangun Prototype Mesin Pencari String Menggunakan Metode Fuzzy String Matching. Skripsi. STMIK Potensi Utama. Kartawidjaja, M., A. & Vandika, S. 2009. Kinerja Algoritma Paralel Untuk Pencarian Kata Dengan Metode Boyer-Moore Menggunakan PVM. JUTI 7(3) : 121-126. Kumara, G., H. 2008. Visualisasi Beberapa Algoritma Pencocokan String dengan

Java. Skripsi. Institut Teknologi Bandung

Kusuma, M. W. 2012. Pencocokan String dalam Fitur Autocompletion pada Text Editor atau Integrated Development Environment(IDE). Skripsi. Institut Teknologi Bandung

Minandar, A., Tanoto, A. & Tanadi, D. 2005. Aplikasi Algoritma Pencarian String Boyer-Moore pada Pencocokan DNA. Makalah. Institut Teknologi Bandung. Nurhapipah. 2011. Development of Mobile Dictionary with Speech Synthesis on

Android Smartphone using Java Programming Language. Tesis. Universitas Gunadarma.

Pradhana, Fandi. 2012. Penerapan String Matching pada fitur auto correct dan fitur Auto Text di Smart Phones. Skripsi. Institut Teknologi Bandung

Prasetiyowati, M. I. & Sagita, V. 2013. Studi Perbandingan Implementasi Algoritma Boyer-Moore, Turbo Boyer-Moore, dan Tuned Boyer-Moore dalam Pencarian String. ULTIMATICS 4(1):2085-4552


(6)

56

Primadani, Y. 2014. Simulasi Algoritma Levenshtein Distance untuk Fitur Autocomplete pada Aplikasi Katalog Perpustakaan. Skripsi. Universitas Sumatra Utara.

Pusat Bahasa Departemen Pendidikan Nasional. 2002. Kamus Besar Bahasa Indonesia. Balai Pustaka : Jakarta.

Soleh, M. Y. 2011. Implementasi Algoritma KMP dan Boyer-Moore dalam Aplikasi Search Engine Sederhana. Skripsi. Institut Teknologi Bandung