BAB 2 LANDASAN TEORI
2.1 Kamus Kamus merupakan buku rujukan yang berisi penjelasan terkait dengan makna katakata. Kamus berfungsi untuk membantu seseorang mengenal perkataan baru. Selain menerangkan makna kata, kamus juga mungkin mempunyai pedoman sebutan, asalusul(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 katakata 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 Kamus ini sekurang-kurangnya menggunakan tiga bahasa atau lebih.
Universitas Sumatera Utara
6
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
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
8
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 dengan panjang n pada text x dengan panjang m dengan waktu O(n x m). Beberapa
Universitas Sumatera Utara
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
Universitas Sumatera Utara
10
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 pattern y2 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 BoyerMoore memiliki waktu pencarian tercepat dari varian 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
Universitas Sumatera Utara
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 tidak muncul pada pattern dan tidak ada kemunculan salah satu karakter pada pattern di text termasuk karakter a, maka pattern akan digeser sampai karakter paling kiri
Universitas Sumatera Utara
12
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
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
14
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= 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 suffixes(y, n, suff)
Universitas Sumatera Utara
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
Universitas Sumatera Utara
16
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
-
Universitas Sumatera Utara
17
Pencocokan 1 : h
o
s
t
c
o
m p
c
o
m
p
u
t
e
r
p
u
t
e
r
p
u
t
e
r
BmBc[t] = 4 BmGs[3] = 1 Maka pergeserannya, max(1, 4) = 4
Pencocokan 2 : h
o
s
t c
c
o
m
o
m p
BmBc[m] = 1 BmGs[3] = 1 Maka pergeserannya, max(1, 1) = 1
Pencocokan 3 : h
o
s
t
c c
o o
m
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
Universitas Sumatera Utara
18
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
Muhammad Wachid
Cara kerja algortima berjalan
Kusuma (2012)
lambat
Pencocokan String untuk Fitur autocompletion pada 1.
text editor atau integrated development environment(IDE)
Penerapan String Matching 2.
pada Fitur Auto Text di Smartphone
Waktu pengecekan dengan Fandi Pradhana
algoritma Brute Force
(2012)
membuat sistem menjadi lambat
Universitas Sumatera Utara
19
Tabel 2.1 Penelitian terdahulu yang berkaitan dengan autocomplete (lanjutan) No
Nama Penelitian
Penulis
Simulasi Algoritma Levenshtein Distance untuk 3.
Fitur Autocomplete pada Aplikasi Katalog
Keterangan Jika nilai jarak levenshtein
Yuli Primadani
yang diperoleh terlalu besar
(2014)
kemungkinan judul buku yg
Perpustakaan
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.
Universitas Sumatera Utara
20
Table 2.2 Penelitian terdahulu yang menggunakan Algoritma Boyer-Moore No
Nama Penelitian Aplikasi Algoritma
1.
Pencarian String BoyerMoore pada Pencocokan DNA
Penulis
Arie Minandar , Andri Tanoto, Davis Tanadi (2005)
Keterangan Algoritma Boyer-Moore merupakan algoritma yang efisien untuk pencocokan string Pencarian kata dengan metode Boyer-Moore dengan
2.
Kinerja Algoritma Paralel
Stania Vandika &
menggunakan komputasi
untuk Pencarian Kata
Maria Angela
paralel akan memberikan
dengan Metode Boyer-
Kartawidjaja
peningkatan kinerja
Moore Menggunakan PVM
(2009)
komputasi untuk kata kunci yang terdiri dari satu huruf saja. Algortima Boyer-Moore yang lebih cocok digunakan untuk
Implementasi Algoritma 3.
KMP dan Boyer-Moore
Moch. Yusup Soleh
dalam Aplikasi Search
(2010)
Engine Sederhana
pencarian string dengan alpabet sedikit sedangkan Algortima KMP lebih cocok untuk pencarian string dengan alpabet sedikit
Studi Perbandingan Implementasi Algoritma 4.
Boyer-Moore, Turbo Boyer-Moore, dan Tuned Boyer-Moore dalam Pencarian string
Algoritma Boyer-Moore Vina Sagita & Maria
memiliki waktu pencarian
Irmina Prasetiyowati
tercepat dari tiga varian
(2013)
Boyer-Moore yang telah ditentukan.
Universitas Sumatera Utara