bmGsShift:= BmGs[j] shift:= maxbmBcShift, bmGsShift
i:= i+shift
3.3.2 Pseudocode Algoritma Brute Force
procedure BruteForceSearch input m, n : integer,
input P : array[0..n-1] of char, input T : array[0..m-1] of char,
output ketemu : array[0..m-1] of boolean
Deklarasi: i, j: integer
Algoritma: for i:=0 to m-n do
j:=0 while j n and T[i+j] = P[j] do
j:=j+1 endwhile
ifj = n then ketemu[i]:=true;
endif endfor
3.4 ERD Entity Relationship Diagram
ERD Entity Relationship Diagram adalah suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai
hubungan antar relasi. ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan symbol.
Universitas Sumatera Utara
Pada Gambar 3.9 terlihat bahwa pada sistem ini terdapat relasi antara words dan extraword, dimana setelah kata di tambahkan pada table extraword, maka kata
yang ditambahkan tadi langsung tersimpan pada database words.
Words Indonesia
Mandarin Inggris
ExtraWord ID
From To
Extra
Submits
Gambar 3.9. ERD Entity Relationship Diagram
a. Tabel Words
Tabel ini berupa semua kata yang disimpan pada database. Table ini terdiri dari 3 field yaitu Indonesia, Mandarin, Inggris yang dapat dilihat pada table 3.1
Table 3.1 Tabel Words
Field Type
Ukuran Keterangan
Indonesia Varchar
50 Kata dalam bahasa indonesia
Mandarin Varchar
50 Kata dalam bahasa mandarin
Inggirs Varchar
50 Kata dalam bahasa inggris
b. Tabel Extraword
Tabel ini digunakan untuk menambahkan kata baru pada database. Table ini terdiri dari beberapa field yang dapat dilihat pada table 3.2
Universitas Sumatera Utara
Tabel 3.2 Tabel Extraword
Field Type
Ukuran Keterangan
ID Integer PK
- Bahasa awal yang dipakai
From Varchar
3 Pilihan bahasa yang digunakan
To Varchar
3 Pilihan bahasa yang digunakan
Extra Varchar
80 Menambahkan kata ke dalam database
3.5 Perancangan Sistem
Antarmuka merupakan perantara antara pengguna dengan sistem. Tampilan antarmuka sangat mempengaruhi penggunaan suatu sistem, oleh karena itu antarmuka harus
dirancang sedemikian rupa sehingga memudahkan pengguna dalam menggunakan sistem tersebut. Pada tahap ini akan dilakukan perancangan antarmuka sistem yang
akan digunakan dan dalam perancangannya sebagai aplikasi Android maka tampilan antarmuka ini dirancang pada masing
– masing layout yang saling berintegrasi satu sama lain. Rancangan antarmuka sistem ini terdiri dari beberapa layout yang memiliki
tujuan dan kegunaan yang berbeda – beda, seperti layout Tampilan Awal, layout Info
Aplikasi, layout Pilihan, layout Tampil Kamus Mandarin, dan layout Hasil. Namun dari sejumlah layout tersebut, layout Tampil Kamus Mandarin, dan layout Hasil
merupakan tampilan utama yang dinamis dan akan dirancang secara khusus.
3.5.1 Antarmuka Menu Halaman Utama
Antarmuka Tampil Halaman Utama Kamus Mandarin merupakan layout yang dilihat oleh pengguna untuk hanya sekedar melihat Kamus Mandarin. Layout ini memiliki
fungsi yang memperbolehkan pengguna untuk melakukan proses touchscreen untuk menampilkan layout pada platform android. Dikarnakan fungsi
– fungsi pencarian dan input data terdapat pada bagian dalam. Jika setelah touchscreen layer pada android.
Universitas Sumatera Utara
Gambar 3.10 Rancangan Antarmuka Halaman Utama
Keterangan : 1.
Listview Pencarian Boyer Moore Digunakan untuk melakukan pencarian arti menggunakan Algoritma Boyer Moore
2. Listview pencarian Brute Force
Digunakan untuk melakukan pencarian arti kata menggunakan algoritma Brute Force
3. Data
Menampilkan berupa bentuk kata, dimana menampilkan semua bahasa yang diinputkan dan dapat menambahkan kata.
4. Tentang
Digunakan untuk mengetahui latar belakang adanya kamus bahasa Mandarin secara umum.
Universitas Sumatera Utara
3.5.2 Antarmuka Pilih Pencarian
Antarmuka Pilih Pencarian juga merupakan layout pada android. Layout ini memiliki tampilan didalamnya, Layout Pilih pencarian string dan input pada pattern. Layout
tersebut melakukan pencarian hasil dari pencocokan pattern pada teks pada SQLite database untuk aplikasi android oleh algoritma Boyer-Moore yang sebelumnya telah
diberikan inputan.
Gambar 3.11 Rancangan Antarmuka Pilih Pencarian
Keterangan : 1.
Terdapat bahasa Mandarin – Indonesia – Inggris tergantung user memilih, dimana
pada posisi 1 tempat bahasa yang ingin di artikan.
Universitas Sumatera Utara
2. Terdapat bahasa Mandarin
– Indonesia – Inggris tergantung user sama halnya
dengan posisi 1. Namun pada posisi 2 sistem berfokus pada arti bahasa yang
pilihan terdapat 3 bahasa, yaitu : Mandarin – Indonesia - Inggris.
3. Untuk melakukan cari kata, untuk mendapatkan hasil dari terjemahan dari kata
yang dicari. User harus melakukan inputan data pada posisi 3 agar sistem dapat
melakukan pencarian string dengan metode pencocokan algoritma. 4.
Hasil running time dari kedua pencarian algoritma.
3.5.3 Antarmuka Pilih Data
Antarmuka Pilih Data merupakan layout yang dihadapkan kepada pengguna sebagai referensi untuk melihat bahasa dalam bentuk kata dan dapat menambahkan data serta
mengurangi data sesuai yang diinginkan.
Gambar 3.12 Rancangan Antarmuka Pilih Data
Universitas Sumatera Utara
Keterangan : 1.
Pada listview 1 untuk menambahkan pembendaharaan kata Bahasa Mandarin –
Indonesia- Inggris. 2.
Pada listview 2 untuk mengurangi pembendaharaan kata Bahasa Mandarin –
Indonesia – Inggris.
3. Pada listview 3 menampilkan kata
– kata Bahasa Mandarin – Indonesia – Inggris yang diinput.
3.5.4 Antarmuka Pilih Tentang
Antarmuka Pilih Tentang merupakan layout pada android. Layout ini menampilkan latar belakang terbentuknya kamus Mandarin pada platform android.
Gambar 3.13 Rancangan Antarmuka Pilih Tentang
Keterangan :
1
Pada posisi 1 menjelaskan bahwa pada rancangan antarmuka tentang hanya berisi latar belakang terbentuknya kamus Mandarin dengan platform android.
Universitas Sumatera Utara
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
Pada bab 4 ini penulis memaparkan bagaimana implementasi dan perbandingan dari sistem serta hasil pengujian aplikasi menggunakan algoritma Boyer-Moore dan Brute
Force yang sudah dibangun menggunakan java.
4.1. Implementasi Sistem
Sistem ini dibangun dengan aplikasi android, sehingga membutuhkan conection android untuk menjalankannya. Implementasi sistem ini hanya untuk mengetahui kerja
sistem dan hasil running time algoritma Boyer-Moore dan Brute Force pada platform android. Aplikasi ini bertujuan untuk menunjukkan pencarian string pada kamus
Bahasa Mandarin – Indonesia - Inggris menggunakan pattern sebagai pencari didalam
teksnya yang sudah diinputkan terlebih dahulu sesuai dengan batasan masalah yang tercantum sebelumnya. Aplikasi ini merupakan pengembangan lebih lanjut dari
penelitian – penelitian sebelumnya mengenai algoritma Boyer-Moore dan Brute Force
pada kasus yang berbeda dan implementasi yang berbeda, seperti diaplikasi Android. Proses implementasi yang dirancang pada sistem ini dibagi menjadi form
dalam bahasa java, di antaranya yaitu untuk halaman utama, Pencarian, Data dan Tentang aplikasi.
4.1.1 Halaman utama
Halaman utama merupakan form yang pertama muncul pada saat aplikasi dijalankan. Form ini terdiri 4 Menu pada aplikasi android, yaitu Pencarian Boyer-Moore,
Pencarian Brute Force, Data, dan Tentang. .
Universitas Sumatera Utara
Gambar 4.1 Halaman Utama
Pada Gambar 4.1 halaman utama dari android terdiri dari , menu pencarian, menu data dan menu tentang.
4.1.2 Pilihan Pencarian
Pilihan Pencarian merupakan form yang digunakan untuk melakukan proses pencarian string dengan pencocokan pattern menggunakan algoritma Boyer Moore yaitu dari
kiri ke kanan dan algoritma Brute Force yaitu dari kanan ke kiri. Pada menu ini disediakan interface untuk input pattern, textbox berupa pemilihan bahasa untuk
menampilkan teks dan menentukan terjemahan hasil kata dalam pencarian string. Sistem akan secara langsung menampilkan informasi hasil pencarian string dan
running time pada proses pencarian. Tampilan untuk pilihan pencarian dapat dilihat pada Gambar 4.2.
Universitas Sumatera Utara
Gambar 4.2 Form Pencarian
4.1.3 Pilihan Data
Menu Data merupakan Form yang digunakan untuk menampilkan kata – kata yang
telah diinput pada android tersebut . Dapat menginput data dan delete data untuk melakukan pembaharuan pembendaharan kata. Tampilan untuk Menu Data dapat
dilihat pada Gambar 4.3.
Gambar 4.3 Form Data
Universitas Sumatera Utara
4.1.4 Pilihan Tentang
Menu Tentang merupakan form yang digunakan hanya untuk menampilkan informasi tentang sistem aplikasi kamus Mandarin yang dibuat. Pada pilihan tentang berisi
informasi tentang latar belakang pembuatan aplikasi kamus. Tampilan untuk Menu Tentang dapat dilihat pada Gambar 4.4.
Gambar 4.4 Form Tentang
4.2. Pengujian Sistem
Pengujian sistem dilakukan untuk mengetahui kinerja setiap algoritma yang telah diimplentasikan kedalam program. Fokus utama pada pengujian penelitian ini untuk
mengetahui seberapa efektif dan efisien penerapan algoritma dalam pemampatan berkas. Pengujian sistem ini dilakukan untuk melihat bagaimana algoritma Boyer-
Moore dan algoritma Brute Force melakukan pencarian string dengan pencocokan karakter. Pengujian ini dilakukan pada masing masing algoritma dengan 2 kasus uji
coba, antara lain : 1.
Pengujian pada 1 karakter. 2.
Pengujian pada 2 karakter.
Universitas Sumatera Utara
4.2.1. Pengujian pada 1 karakter 4.2.1.1 Pengujian Boyer Moore pada 1 karakter
Gambar 4.5 Pengujian Boyer Moore 1 Karakter
Pada gambar 4.5 terlihat bahwa pengujian Boyer Moore m
enggunakan karakter “m” dimana ketika di input karakter “m” langsung di cocokkan pada sistem. Dapat dilihat
pada gambar 4.5 dimana terdapat output yang sudah didapatkan dari menginput
karakter “m”, seperti : mau “yao” , meja “biao”, memancing “yu”, memasak “chushi” dan terlihat running time sistem ketika mencari kata b adalah 38ms.
Dapat dilihat pada SQLitenya, dimana sistem langsung mengkelompokkan datateks sesusai dengan karakter yang dimintapattern. Sistem hanya melakukan
pencarian pada column indo, bukan terjemahannya. Sistem sudah dipaketkan, jadi bilamana terpilih salah satu diantara column,
Misalkan; pada pencarian string menemukan teks mau, maka sepaket dengan mau adalah yao dan want, maka sistem akan mengeluarkan kata
– kata tersebut . Namun dikarnakan pemilihannya hanya terdapat dua, jadi sistem hanya mengeluarkan bahasa
Universitas Sumatera Utara
Indonesia dan Mandarin sesuai dengan pemilihan pada button bahasa. Berikut merupakan table
data pada proses pencarian kata “b” yang dapat dilihat pada table 4.1
Tabel 4.1 Database Proses pencarian 1 karakter
ID Column_Indo Column_Mandarin Column_English 1
Mau Yao
want 2
Meja Biao
Table 3
Memancing Yu
Fishing 4
Memasak chushi
Cooking
4.2.1.2 Pengujian Brute Force pada 1 karakter
Gambar 4.6 Pengujian Brute Force 1 Karakter
Pada gambar 4.6 , terlihat bahwa pengujian Brute Force 1 karakter sama seperti pengujian Boyer Moore dalam segi pencarian karakter, perbedaannya hanya terdapat
di running time, running time Brute Force
untuk mencari karakter “m” adalah 46ms dan running time Boyer Moore adalah 38ms
Universitas Sumatera Utara
4.2.2. Pengujian pada 2 karakter
4.2.2.1 Pengujian Boyer Moore pada 2 karakter
Gambar 4.7 Pengujian Boyer Moore pada 2 karakter
Pada gambar 4.7 terlihat bahwa pada pengujian Boyer Moore
karakter “ma”
menghasilkan output m ati “si”, mau “yao”, memancing “yu” dan memasak “chushi”,
dan running time 23ms
Tabel 4.2 Database Proses pencarian 2 karakter
ID Column_Indo Column_Mandarin Column_English 1
Mau Yao
Want 2
Mati Si
Dead 3
Memancing Yu
Fishing 4
Memasak chushi
Cooking
Universitas Sumatera Utara
Pada table 4.2 terlihat bahwa pada sistem mengeluarkan output dari karakter
“ma”, namun ada juga kata memancing dan memasak dikarenakan pemapingan sudah cocok dan kata tersebut terkandung karakter “ma”.
Prinsip kerja algoritma Boyer Moore membandingkan karakter dari kanan ke kiri dan memiliki loncatan karakter yang besarsehingga mempercepat pencarian
string karena dengan hanya memeriksa sedikit karakter, dapat langsung diketahui bahwa string yang dicari tidak ditemukan dan dapat digeser ke posisi berikutnya,
proses ini dapat dilihat pada table 4.3
Tabel 4.3 Proses algoritma Boyer-Moore
Teks M
E M
A S A K
Pattern M
A
1. Proses algoritma pada karakter “MA”
Pattern
adalah “MA” dan teksnya adalah “MEMASAK” bisa dilihat dimana
prinsip dari Boyer-Moore adalah pencocokan dari kanan ke kiri. 2.
Proses algoritma pada karakter “MA” Pattern
“MA“ melakukan pencocokan , pertama jelas yang dilakukan dimulai dari karakter “A”. Maka sistem melakukan pencocokan, ternyata pola dari “A” tersebut
tidak ada pada teks, maka sistem mengecek kembali untuk tidak langsung
membuang waktu lama pada proses pencocokan. Apakah karakter “E” ada pola
pada pattern yang ingin dicari. Jika tidak ada maka bergeser sebanyak jumlah karakter yang ada pada pola yang ingin dicari.
3. Proses alg
oritma pada karakter “MA”
Jika karakter “E” tidak terdapat pada pattern yang ingin dicari, maka bergeser
sebanyak selisih dari jumlah karakter yang ada. 4.
Proses algoritma pada karakter „MA” Setelah tidak ada mengalami kecocokan maka pattern akan melakukan pergeseran dari kiri ke kanan sebesar jumlah
karakter dan setelah bergesar dilanjutkan kembali pencocokanpemapping kembali untuk mendapatkan pencocokan string , dan telah terjadi kecocokan karakter
“MA” seperti yang terlihat pada tabel 4.4.
Universitas Sumatera Utara
Tabel 4.4 proses Match algoritma Boyer-Moore
4.2.2.2 Pengujian Brute Force Pada 2 karakter
Gambar 4.8 Pengujian Brute Force pada 2 karakter
Pada gambar 4.8 terlihat bahwa pengujian Brute Force kara
kter “be” menghasilkan
output yang sama dengan Boyer Moore namun pada pengujian Brute Force
menghasilkan running time 29ms
Prinsip kerja Algoritma Brute Force adalah melakukan pencocokan dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter
pada teks yang bersesuaian, proses pencarian Brute Force dapat dilihat pada table 4.5 Teks
M E
M A
S A K
Pattern M
A
Universitas Sumatera Utara
Tabel 4.5 Proses awal algoritma Brute Force
Teks M
E M
A S A K
Pattern M
A
indeks 1
2 3
4 5
6
1. Pattern
adalah “MA” dan teksnya adalah “MEMASAK” bisa dilihat dimana
prinsip dari Brute Force adalah pencocokan dari kiri ke kanan 2.
Pattern
“MA“ melakukan pencocokan , pertama jelas yang dilakukan dimulai dari karakter “M”. Maka sistem melakukan pencocokan, ternyata pola dari
“M” tersebut cocok pada teks, maka sistem mengecek kembali untuk tidak
langsung membuang waktu lama pada proses pencocokan. Apakah karakter
“E” ada pola pada pattern yang ingin dicari. Jika tidak ada maka bergeser
sebanyak jumlah karakter yang ada pada pola yang ingin dicari. 3.
Jika karakter “M” tidak terdapat pada pattern yang ingin dicari, maka bergeser
sebanyak satu langkah ke kanan yang dapat dilihat pada table 4.6
Tabel 4.6 proses kedua algoritma Brute Force
4.
Jika karakter “MA” tidak mengalami kecocokan, maka bergeser satu langkah
ke kanan sampai menemukan kecocokan. dan telah terjadi kecocokan karakter “MA” pada indeks ke 3 pada proses pergeseran pattern sebanyak 3 seperti
yang terlihat pada tabel 4.7. Teks
M E
M A
S A K
Pattern M
A index
1 2
3 4
5 6
Universitas Sumatera Utara
Tabel 4.7 proses akhir algoritma Brute Force
4.3. Hasil Pengujian
Pengujian sistem ini dilakukan untuk melihat hasil akhir pencarian dan perbedaan running time dari Algoritma Boyer Moore dan Algoritma Brute Force. Pengujian ini
dilakukan pada 4 kasus uji coba, antara lain: 1.
Pengujian terhadap 3 karakter 2.
Pengujian terhadap 4 karakter 3.
Pengujian terhadap 5 karakter 4.
Pengujian terhadap 6 karakter Hasil pengujian akan ditampilkan dalam bentuk grafik pada akhir pengujian.
4.3.1 pengujian 3 karakter
Gambar 4.9 Pengujian 3 karakter pada kata “air”
Teks M
E M
A S
A K Pattern
M A
Indeks 1
2 3
4 5
6
Universitas Sumatera Utara
Pada gambar 4.9 terlihat bahwa pada proses pengujian algoritma Boyer Moore kiri dan pengujian Brute Force
kanan pada 3 karakter yaitu “air” dengan
arti kata “shui”, menampilkan masing masing running time sebesar 2ms
4.3.2 pengujian 4 karakter
Gambar 4.10 P engujian 4 karakter pada kata “mata”
Pada gambar 4.10 terlihat bahwa pada proses pengujian algoritma Boyer Moore kiri dan pengujian Brute Force
kanan pada 3 karakter yaitu “mata” dengan arti kata “yan”, menampilkan masing masing running time sebesar
3ms dan 4ms
4.3.3 pengujian 5 karakter
Gambar 4.11 P engujian 5 karakter pada kata “makan”
Universitas Sumatera Utara
Pada gambar 4.11 terlihat bahwa pada proses pengujian algoritma Boyer Moore kiri dan pengujian Brute Force kanan pada 3 karakter yaitu
“makan” dengan arti kata “chi”, menampilkan masing masing running time
sebesar 3ms dan 4ms
4.3.4 pengujian 6 karakter
Gambar 4.12 P engujian 6 karakter pada kata “bahaya”
Pada gambar 4.12 terlihat bahwa pada proses pengujian algoritma Boyer Moore kiri dan pengujian Brute Force kanan pada 3 karakter yaitu
“bahaya” dengan arti kata “weixian”, menampilkan masing masing running
time sebesar 4ms dan 5ms
4.3.5 Hasil perbandingan Running Time pencocokan string
Hasil perbandingan Running Time pencarian menggunakan algoritma Boyer Moore dan algoritma Brute Force ditampilkan pada table 4.8
Universitas Sumatera Utara
Tabel 4.8 Hasil perbandingan dari segi running time Kata
Rata – Rata
Air Mata
Makan Bahaya
Algoritma Boyer Moore
2ms 3ms
3ms 4ms
3ms
Algoritma Brute Force
2ms 4ms
4ms 5ms
3.75ms
Dari table 4.8 dapat dilihat bahwa algoritma Boyer Moore memiliki running time yang lebih cepat dari Brute Force yaitu dengan perbedaan 0.75ms.
Running Time ms
1 2
3 4
5 6
0.. 1 2 3 karakter
4 karakter 5 karakter
6 karakter Panjang
Karakter
Boyer Moore Brute Force
Gambar 4.13. Grafik perbedaan Running Time Algoritma Boyer Moore dan Algoritma Brute Force
Berdasarkan Gambar 4.13 terlihat perbedaan Running Time Algoritma Boyer Moore garis biru dan Algoritma Brute Force garis pink secara grafik, perbedaan rata
– rata
Universitas Sumatera Utara
dari grafik tersebut adalah 0.75ms dimana Algoritma Boyer Moore memiliki rata –
rata sebesar 3ms dan Algoritma Brute Force memiliki rata – rata 3.7ms.
Berdasarkan kompleksitas waktu pencarian Algoritma Boyer Moore dan Algoritma Brute Force sama
– sama memiliki kompleksitas waktu pencarian Big Ө m × n , sehingga dapat kita lihat pada gambar grafik memiliki lengkungan garis nilai
yang sama, namun Algoritma Boyer Moore lebih cepat karena memiliki perbandingan karakter teks 3n sedangkan Algoritma Brute Force memiliki perbandingan karakter
teks 2n.
Universitas Sumatera Utara
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melakukan studi literatur, analisis dan perancangan dan pengujian terhadap perbandingan Algoritma Boyer-Moore dan Algoritma Brute Force dalam Pencarian
String Pada Platform Android, maka dapat disimpulkan sebagai berikut: 1.
Sistem hanya dapat melakukan pencarian string dengan pengujian karakter dan mendapatkan arti kata.
2. Hasil pengujian menunjukkan bahwa implementasi Algoritma Boyer-Moore
dan Algoritma Brute Force pada sistem dapat melakukan pencarian dengan 1 karakter dan 2 karakter dan berjalan sesuai dengan benar.
3. Proses pencocokan string pada Algoritma Boyer-Moore dan Algoritma Brute
Force harus memiliki panjang karakter lebih banyak untuk dapat mengoptimalkannya. Pada aplikasi kamus kata berimbuhan memiliki panjang
karakter lebih banyak. Hasil pencarian string menjadi optimal. 4.
Algoritma Boyer Moore memiliki running time yang lebih cepat dari Algoritma Brute Force yaitu dengan perbedaan 0.75ms.
5. Algoritma Boyer Moore dan Algoritma Brute Force sama
– sama memiliki fase penca
rian kompleksitas waktu Big Ө m × n , namun Algoritma Boyer Moore lebih cepat karena memiliki perbandingan karakter teks 3n sedangkan
Algoritma Brute Force memiliki perbandingan karakter teks 2n.
Universitas Sumatera Utara
5.2 Saran
Adapun saran yang dapat penulis berikan untuk mengembangkan penelitian ini adalah sebagai berikut:
1. Pada aplikasi Kamus Bahasa Mandarin
– Indonesia – Inggris untuk dikembangkan dalam hal penambahan keterangan atau informasi pada kata yang
dicari. Untuk dapat mengunakan bahasa yang lebih efektif pada kosa kata. 2.
Pada pencarian setidaknya berupa bentuk kalimat sehingga algoritma Boyer- Moore dan Algoritma Brute Force dapat digunakan secara optimal.
3. Pada algoritma Boyer-Moore dan Algoritma Brute Force untuk dapat
dikembangkan lagi, agar dapat melakukan pencarian lebih efektif dan cepat. 4.
Pada penelitian selanjutnya dapat dilakukan pencarian terhadap kompleksitas waktu Big Ө pada Algoritma Boyer Moore dan Algoritma Brute Force.
Universitas Sumatera Utara
BAB 2
TINJAUAN PUSTAKA 2.1 Algoritma Boyer-Moore
Algoritma Boyer-Moore adalah salah satu algoritma pencarian string, dipublikasikan oleh Robert S. Boyer, dan J. Strother Moore pada tahun 1977. Algoritma ini dianggap
sebagai algoritma yang paling efisien pada aplikasi umum.Tidak seperti algoritma pencarian string yang ditemukan sebelumnya, algoritma Boyer-Moore mulai
mencocokkan karakter dari sebelah kanan pattern pola yang di cari. Ide dibalik algoritma ini adalah bahwa dengan memulai pencocokkan karakter dari kanan, dan
bukan dari kiri, maka akan lebih banyak informasi yang didapat. Helmi, 2013
2.1.1 Kelebihan Algoritma Boyer-Moore :
Tidak seperti pencarian string lainnya Brute Force, Knuth-Morris-Pratt yang mempunyai cara kerja membandingkan satu
– persatu karakter dari kiri ke kanan. Boyer-Moore membandingkan karakter dari kanan ke kiri dan memiliki loncatan
karakter yang besarsehingga mempercepat pencarian string karena dengan hanya memeriksa sedikit karakter, dapat langsung diketahui bahwa string yang dicari tidak
ditemukan dan dapat digeser ke posisi berikutnya.
2.1.2 Kelemahan Algoritma Boyer-Moore :
Algoritma Boyer-Moore mencocokan Pattern dari kanan ke kiri oleh sebab itu kelemahan dari algoritma ini adalah ketika semua karakter memiliki kesamaan atau
cocok dan hanya karakter terakhir atau karakter paling kiri yang berbeda maka pencarian ini akan memerlukan waktu yang sedikit lama Utomo, 2008.
Tabel 2.1.Contoh algoritma Boyer-Moore
Universitas Sumatera Utara
Teks
G R
A C
E
Pattern H
A L
I M
Pada tabel 2.1, dengan melakukan pencocokan dari posisi paling akhirkanan pattern dap
at dilihat bahwa karakter “M” pada pattern “HALIM” tidak cocok dengan karakter “E” pada teks “GRACE” , dan karakter “E” tidak pernah ada dalam pattern “HALIM”
yang dicari sehingga pattern “HALIM” dapat digeser melewati teks “GRACE”
sehingga posisinya menjadi:
Tabel 2.2.Contoh pergeseran algoritma Boyer-Moore
Teks G
R A
C E
Pattern H
A L
I M
Tabel 2.2 menunjukkan bahwa algoritma Boyer-Moore memiliki pergeseran karakter yang besar sehingga mempercepat pencarian pattern karena dengan hanya memeriksa
sedikit karakter, dapat langsung diketahui bahwa pattern yang dicari tidak ditemukan dan dapat digeser ke posisi berikutnya Ginting, 2014
Algoritma Boyer-Moore menggunakan dua buah tabel untuk mengolah informasi saat terjadi kegagalan pencocokan pattern.Tabel pertama disebut bad character shitf juga
sering disebut occurrence heuristic OH. Tabel kedua disebut dengan istilah good suffix shift juga disebut match heuristic MH Charras, 2014
Secara sistematis, langkah-langkah yang dilakukan algoritma Boyer-Moore pada saat mencocokkan pattern adalah:
Algoritma boyer-moore mulai mencocokkan pattern pada karakter paling akhirkanan.
Universitas Sumatera Utara
Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi
berikut dipenuhi: a.
Karakter di pattern dan di teks yang dibandingkan tidak cocok mismatch.
b. Semua karakter di pattern cocok, kemudian algoritma akan
memberitahukan penemuan di posisi ini. Algoritma kemudian menggeser pattern dengan mengambil nilai terbesar dari
penggeseran good-suffix dan penggeseran bad-character, lalu mengulangi langkah 2 sampai pattern berada di ujung teks. Ramadhansyah,2013
2.1.3 Pencarian Dengan Algoritma Boyer-Moore
Buat tabel pergeseran pattern yang dicari P dengan pendekatan Match Heuristic MH dan Occurence Heuristic OH, untuk menentukan jumlah
pergeseran yang akan dilakukan jika mendapat karakter tidak cocok pada proses pencocokan dengan teks T.
Jika dalam proses pembandingan terjadi ketidakcocokan antara pasangan karakter pada pattern dan karakter teks, pergeseran dilakukan dengan memilih
salah satu nilai pergeseran dari dua tabel, dan memiliki nilai pergeseran paling besar dari tabel Match Heuristic dan Occurence Heuristic .
Dua kemungkinan penyelesaian dalam melakukan pergeseran pattern, Jika karakter yang tidak cocok, tidak ada pada pattern maka pegeseran adalah
sebanyak jumlah karakter pada pattern. dan jika karakter yang tidak cocok, ada pada pattern, maka banyaknya pergeseran bergantung dari nilai pada tabel
Match Heuristic dan Occurence Heuristic. o
Jika karakter pada teks yang sedang dibandingkan cocok dengan karakter pada pattern, maka posisi karakter pada pattern dan teks
diturunkan sebanyak 1 posisi, kemudian lanjutkan dengan pencocokan pada posisi tersebut dan seterusnya. Jika kemudian terjadi
ketidakcocokan karakter pattern dan teks, maka pilih nilai pergeseran terbesar dari tabel match heuristic dan nilai tabel occurence heuristic .
Universitas Sumatera Utara
Jika semua karakter telah cocok, artinya pattern telah ditemukan di dalam teks. Ramadhansyah,2013
Cara menghitung tabel occurence heuristic : Contoh pattern
: MOORE
Panjang karakter : 5
Tabel 2.3.occurence heuristic
Index 1
2 3
4 Pattern
M O
O R
E Occurence Heuristic
Langkah-langkah pemberian nilainya adalah sebagai berikut : 1.
Lakukan perhitungan, OH = length -1 –index
length = panjang karakter= 5 2.
Karakter pertama adalah “M” dengan Index = 0
OH = 5 - 1 - 0 = 4maka nilai karakter “M” = 4
3. Karak
ter kedua adalah “O” dengan index = 1
OH = 5 - 1 - 1 = 3 maka nilai karakter “O” = 3
4. Karakter ketiga adalah “O” dengan index = 2
OH = 5 - 1 - 2 = 2 maka nilai karakter “O” = 2
5. Karakter keempat adalah “R” dengan index = 3
OH = 5 - 1 - 3 = 1 maka nilai karakter “R” = 1
6. Karakter kelima adalah “E” dengan index = 4
OH = 5 - 1 - 4 = 0 maka nilai karakter “E” = 0
Universitas Sumatera Utara
Tabel 2.4.Hasil pencarian Occurence Heuristic
Index 1
2 3
4 Pattern
M O
O R
E Occurence Heuristic
4 3
2 1
7.
Jika ada karakter yang berulang ambil nilai OH terkecil, dalam kasus ini ada
karakter “O” yang bernilai 3 dan 2, maka jadikan karakter “O” bernilai 2. Dapat dilihat pada tabel 2.5.
Tabel 2.5. Hasil akhir pencarian Occurence Heuristic
Index 1
2 3
4 Pattern
M O
O R
E Occurence Heuristic
4 2
2 1
2.2 Algoritma Brute Force
Algoritma Brute Force adalah algoritma untuk mencocokkan pattern dengan semua teks antara 0 dan n-m untuk menemukan keberadaan pattern dalam teks Riyanarto
Sarno, Yeni Anistyasari, dan Rahimi Fitri, 2012. Di dalam pencocokkan string, terdapat istilah teks dan pattern. Teks merupakan kata yang dicari dan dicocokkan
dengan pattern. Sedangkan pattern merupakan kata yang diinputkan untuk dicocokkan. Secara rinci, langkah
– langkah yang dilakukan algoritma ini saat mencocokkan string adalah:
1. Algoritma Brute Force mulai mencocokkan pattern dari awal teks.
2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern
dengan karakter pada teks yang bersesuaian, sampai salah satu kondisi berikut terpenuhi :
a. Karakter di pattern dan di teks yang dibandingkan tidak cocok.
b. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan
penemuan di posisi ini.
Universitas Sumatera Utara
3. Algoritma kemudian terus menggeser pattern sebesar satu ke kanan, dan
mengulangi langkah ke -2 sampai pattern berada di ujung teks.
2.2.1 Kelemahan dan Kelebihan Algoritma Brute Force
Algoritma Brute Force juga memiliki kelebihan dan kelemahan. Adapun kelebihan dari algoritma Brute Force yaitu:
1. Algoritma Brute Force dapat digunakan untuk memecahkan hampir sebagian
besar masalah 2.
Algoritma Brute Force sederhana dan mudah dimengerti 3.
Algoritma Brute Force menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokkan string , atau
perkalian matriks 4.
Algoritma Brute Force menghasilkan algoritma baku standard untuk tugas- tugas komputasi penjumlahan perkalian n buah bilangan, menentukan
elemen minimum atau maksimum di dalam tabel list.
Sedangkan kelemahan dari algoritma Brute Force yaitu sebagai berikut: 1.
Algoritma Brute Force jarang menghasilkan algoritma yang manjur 2.
Beberapa algoritma Brute Force lambat, sehingga tidak dapat diterima 3.
Tidak sekonstuktifsekreatif teknik pemecahan masalah lainnya
Contoh penggunakan algoritma Brute Force untuk pencarian pattern dalam teks: Teks
= GRACE HALIM Pattern
= HALIM
Contoh implementasi pencarian pattern pada teks proses ke 1 Teks
G R
A C
E H
A L
I M
Pattern H
A L
I M
Index 1
2 3
4 5
6 7
8 9
10
Universitas Sumatera Utara
Tidak cocok, geser pattern sebanyak satu langkah ke kanan menuju indeks berikutnya.
Contoh implementasi pencarian pattern pada teks proses ke 2 Teks
G R
A C
E H
A L
I M
Pattern H
A L
I M
Index 1
2 3
4 5
6 7
8 9
10 Tidak cocok, geser pattern sebanyak satu langkah ke kanan menuju indeks berikutnya.
Contoh implementasi pencarian pattern pada teks proses ke 3 Teks
G R
A C
E H
A L
I M
Pattern H
A L
I M
Index 1
2 3
4 5
6 7
8 9
10 Tidak cocok, geser pattern sebanyak satu langkah ke kanan menuju indeks berikutnya.
Contoh implementasi pencarian pattern pada teks proses ke 4 Teks
G R
A C
E H
A L
I M
Pattern H
A L
I M
Index 1
2 3
4 5
6 7
8 9
10 Tidak cocok, geser pattern sebanyak satu langkah ke kanan menuju indeks berikutnya.
Contoh implementasi pencarian pattern pada teks proses ke 5 Teks
G R
A C
E H
A L
I M
Pattern H
A L
I M
Index 1
2 3
4 5
6 7
8 9
10 Tidak cocok, geser pattern sebanyak satu langkah ke kanan menuju indeks berikutnya.
Contoh implementasi pencarian pattern pada teks proses ke 6
Universitas Sumatera Utara
Teks G
R A
C E
H A
L I
M Pattern
H A
L I
M Index
1 2
3 4
5 6
7 8
9 10
Tidak cocok, geser pattern sebanyak satu langkah ke kanan menuju indeks berikutnya.
Contoh implementasi pencarian pattern pada teks proses ke 7 Teks
G R
A C
E H
A L
I M
Pattern H
A L
I M
Index 1
2 3
4 5
6 7
8 9
10 Pattern cocok, pencarian berhenti pada indeks ke 6.
2.3 Bahasa Mandarin
Penelitian tentang Analisis Homograf aksara Cina dan Analisis bahasa berdasarkan unsur semantik sudah pernah diteliti sebelumnya oleh peneliti lain,
seperti : Tesis Ridwan Azhar 1998 yang berjudul “Analisis Semantik Bahasa Melayu Dialek Bandar Khalipah” dilakukan untuk memperoleh gambaran deskriptif
analisis semantik Bahasa Melayu Dialek Bandar Khalipah. Penelitian dilakukan berdasarkan semantik leksikal dan sematik kalimat menurut teori dan konsep
semantik. Hasil penelitian yang disajikan menggunakan pendekatan semantik struktural yang mendeskripsikan bahasa dengan kerangka teori analisis makna.
Pembahasaan semantik bahasa Melayu dialek Bandar Khalipah, mencakup : kata, kata turunan, ciri-ciri makna leksikal, hubungan makna leksikal, makna kalimat, dan
hubungan makna kalimat. Disertasi SunQiang 孙强
dari Universitas Sichuan 2007 berjudul “Penelitian Homogr
af Aksara Cina Modern” yang membandingkan kosa kata homograf pada masa lalu dengan masa sekarang. Penelitian ini dilakukan dengan metode library
research penelitian perpustakaan yaitu dengan mengumpulkan kosakata homograf yang terdapat didalam kamus
“现 代
汉语词 典
第 五
版 ” xiàn dài hàn yŭ cí diăn dì
Universitas Sumatera Utara
wŭ băn. Skripsi Wedhawati dari Balai Bahasa Yogyakarta 2005 berjudul
“Konfigurasi Medan Leksikal Verbal Indonesia yang berkomponen Makna+suara+makna”.
Dalam penelitian medan leksikal ini yang ditelaah sejumlah medanleksikal verbal yang berkomponen makna dalam Bahasa Indonesia. Medan leksikalitu terbentuk dari
butir-butir leksikal verbal simpelks yang bersifat internal danintralingual. Butir-butir leksikalverbal adalah butir-butir leksikal yang relasasinya
dalam ujaran atau kalimat termasuk kelas kata verba. Skripsi Risatyah dari Universitas Negri Malang 2010 berjudul
“Pengajaran Bahasa Inggris Berbasis Leksikon untuk Meningkatkan kemampuan Pembelajaran
Usia Muda dalam Memproduksi Classroom Lekxico-grammatical Units di 3 to 6 CEC Kawi Malang”. Dalam penelitian ini mengacu pada teori pengajaran bahasa
Inggris berbasis leksikon, Classroom lekxico-grammatical units diperkenalkan melalu cerita. Penelitian ini menggunakan pengajaran Bahasa Inggris Berbasis Leksikon
pada pembelajar tingkat yang lebih tinggi untuk meningkatkan ketrampilan berbicara.
Universitas Sumatera Utara
2.4 Sejarah Android