• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI 2.1 Kamus - Perancangan Fitur Autocomplete pada Aplikasi Kamus Istilah Teknologi Informasi Menggunakan Algoritma Boyer-Moore

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI 2.1 Kamus - Perancangan Fitur Autocomplete pada Aplikasi Kamus Istilah Teknologi Informasi Menggunakan Algoritma Boyer-Moore"

Copied!
16
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

tidak muncul pada pattern dan tidak ada kemunculan salah satu karakter pada pattern

(8)

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

(9)

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

(10)

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 )

input/output bmGs: array of integer )

Deklarasi

i, j : integer

suff : array [0..YSIZE] of integer

Algoritma

(11)

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

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

(12)

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 *

(13)

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

struktur data yang digunakan algoritma brute force sebelumnya. Pada penelitian h o s t c o m p u t e r

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

(14)

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

(15)

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

(16)

Table 2.2 Penelitian terdahulu yang menggunakan Algoritma Boyer-Moore

No Nama Penelitian Penulis Keterangan

1.

yang terdiri dari satu huruf

Gambar

Gambar 2.1 Autocomplete pada Google Search
Gambar 2.2 Pencocokan dari karakter paling kiri ke karakter paling kanan
Gambar 2.4 Pencocokan pada pattern y2 dimulai dari karakter paling kiri
Gambar 2.6 Pergeseran bad-character, a muncul pada y
+6

Referensi

Dokumen terkait

Marching band berasal dari dua kata yaitu march yang berarti gerak atau berjalan dan band berarti kumpulan pemusik yang memainkan music (Kirnadi, 2004). Marching

Dapat dilihat bahwa di setiap saat, grafik amplitudo sel[1,1] pada simulasi tanpa anomali (warna merah) selalu lebih tinggi daripada grafik simulasi dengan anomali.

Sepakbola adalah olahraga yang memainkan bola dengan menggunakan kaki Pembinaan adalah usaha kegiatan yang dilakukan secara berdaya guna dan berhasil guna untuk

Jika siswa sudah membuat cerita berdasarkan gambar, siswa diminta membaca buku- buku yang berkaitan dengan materi tugasku di sekolah. Jika siswa sudah bisa menukar sekelompok

Uraian di atas melatarbelakangi penulis untuk melakukan penelitian tindakan kelas mengenai peningkatan kemampuan peserta didik dalam menggambar ekspresif melalui

Untuk staff akademik dan SIAA di Fakultas Teknik, teknik industri masih kurang 1 tenaga kerja, sedangkan yang lainnya sudah sesuai antara perhitunngan WISN

Berdasarkan pada anggapan-anggapan seperti yang telah di kemukakan diatas, dapat dilakukan pengujian regangan, tegangan, dan gaya-gaya yang timbul pada penampang balok yang

Para PNS lingkungan Kecamatan dan Kelurahan wajib apel pagi setiap hari senin di Halaman Kantor Kecamatan Kebayoran Baru, dan akan diberikan teguran kepada yang tidak ikut apel