implementasi algoritma boyer-moore dalam sistem …digilib.unila.ac.id/58345/3/skripsi tanpa bab...
TRANSCRIPT
IMPLEMENTASI ALGORITMA BOYER-MOORE DALAM SISTEM
PENCARIAN KATA PADA KAMUS KEDOKTERAN BERBASIS WEB
Skripsi
Oleh:
SI ILMU KOMPUTER
JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
2019
DIVKA AYU DITHA
ABSTRACT
Implementation of The Boyer-Moore Algorithm in a Word Search
Systems On a Web-Based Medical Dictionary
by
DIVKA AYU DITHA
Medical study is one of the fields in health that has many terms in Latin. The process
of term search takes a long time, so word search system is needed by applying string
matching algorithm, Boyer-Moore Algorithm. The Boyer-Moore algorithm is a
search solution that can compare patterns from right to left. If there is a mismatch
string from the right pattern, that mismatch will help us to change the pattern further
with a jumping motion. This jump will provide information about how many patterns
that must be shifted to fit the last character that match with the beginning pattern. The
waterfall method is used to develop this system, which begins with analysis, design,
implementation, and using black box testing. System accuracy testing was also
carried out with an accuracy of 96%. From this study, word search system in medical
dictionary can be function and used by medical students.
Keywords: Algorithm, Black Box Testing, Boyer-Moore, String Matching, Text
Searching.
ABSTRAK
Implementasi Algoritma Boyer-Moore Dalam Sistem Pencarian Kata
Pada Kamus Kedokteran Berbasis Web
Oleh
Ilmu Kedokteran adalah salah satu bidang ilmu kesehatan yang memiliki banyak
istilah dalam bahasa Latin. Proses pencarian istilah kata membutuhkan waktu yang
lama sehingga diperlukan sistem pencarian kata dengan menerapkan salah satu
algoritma pencocokan string, yaitu Algoritma Boyer-Moore. Algoritma Boyer-Moore
adalah solusi pencarian yang dapat membandingkan pola dari kanan ke kiri. Jika ada
ketidakcocokan string dari kanan pola, maka ketidakcocokan akan membantu kita
untuk memindahkan pola lebih lanjut dengan gerakan melompat. Gerakan lompat ini
akan memberikan informasi tentang berapa banyak pola yang harus digeser agar
sesuai dengan karakter terakhir yang cocok dari keadaan diawal pola. Metode
Waterfall digunakan dalam pengembangan sistem ini dimulai dengan Analisis,
Desain, Implementasi, dan Pengujian sistem menggunakan Black Box. Pengujian
akurasi sistem juga dilakukan dengan hasil akurasi sebesar 96%. Dari penelitian ini,
sistem pencarian kata dalam kamus medis ini dapat berfungsi dan dapat digunakan
untuk mahasiswa kedokteran.
Kata Kunci: Algoritma, Black Box Testing, Boyer-Moore, String Matching, Text
Searching.
DIVKA AYU DITHA
IMPLEMENTASI ALGORITMA BOYER-MOORE DALAM SISTEM
PENCARIAN KATA PADA KAMUS KEDOKTERAN BERBASIS WEB
Oleh:
DIVKA AYU DITHA
Sebagai Salah Satu Syarat untuk Memperoleh Gelar
SARJANA KOMPUTER
Pada
Jurusan Ilmu Komputer
Fakultas Matematika dan Ilmu Pengetahuan Alam
SI ILMU KOMPUTER
JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
2019
RIWAYAT HIDUP
Penulis dilahirkan pada tanggal 17 April 1996 di Pringsewu.
Penulis merupakan anak pertama dari Ayah bernama Yonis
dan Ibu bernama Nini Apriyanti. Penulis memiliki adik yang
bernama Nadila Fathya Novariyanti yang saat ini sedang
menjalankan perkuliahan sebagai perawat.
Penulis menyelesaikan pendidikan sekolah dasar di SD Negeri 1 Banding Agung,
Kecamatan Talang Padang, dan lulus pada tahun 2008. Kemudian melanjutkan
pendidikan menengah pertama di SMP Negeri 1 Talang Padang dan selesai pada
tahun 2011. Pendidikan menengah atas di SMA Negeri 1 Gadingrejo yang
diselesaikan penulis pada tahun 2014. Pada tahun 2014, penulis terdaftar sebagai
mahasiswa Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan
Alam Universitas Lampung.
Pada bulan januari tahun 2017, penulis melakukan kerja praktik di PT. Roxy
Prameswari Lampung dan pada bulan Juli 2017 melaksanakan Kuliah Kerja Nyata di
Desa Legundi, Kecamatan Ketapang, Kabupaten Lampung Selatan.
MOTTO
“Bersama kesulitan, terdapat kemudahan”
(Al-Insyirah:5)
“Barang siapa yang bersungguh sungguh, sesungguhnya kesungguhan
tersebut untuk kebaikan dirinya sendiri"
(Al-Ankabut:6)
“Allah tidak membebani seseorang melainkan sesuai kesanggupannya”
(Al-Baqarah:286)
"Apabila Anda berbuat kebaikan kepada orang lain, maka Anda telah
berbuat baik terhadap diri sendiri."
(Benyamin Franklin)
”No matter who you are, where you’re from, your skin color, your gender
identity, just speak yourself”.
(Kim Namjoon, BTS)
PERSEMBAHAN
Puji syukur saya ucapkan kepada Allah SWT atas segala berkah Nya
sehingga skripsi ini dapat terselesaikan.
Mamaku, Bundaku, dan Papaku, kupersembahkan skripsi ini.
Terimakasih atas limpahan kasih sayang, dukungan moril maupun materi,
motivasi, serta do’a-do’a yang tiada henti demi kesuksesanku.
Adikku Nadila, Tante Wati, dan adik-adikku Riski dan Rafa yang sudah
memberi semangat, dan menghiburku.
Seluruh dosen-dosenku, terkhusus dosen pembimbingku yang tak pernah
lelah dan dengan sabar selalu memberi motivasi serta bimbingan kepadaku.
Teruntuk teman-temanku, terimakasih untuk canda tawa, tangis, dan
perjuangan yang kita lewati bersama dan terima kasih untuk setiap
kenangan yang kita ukir selama ini selama diperkuliahan atau di luar
perkuliahan.
Almamater yang kubanggakan
Universitas Lampung
SANWACANA
Puji syukur Penulis ucapkan kehadirat Allah subhanahu wa ta’ala atas berkat rahmat,
hidayah, dan kesehatan yang diberikan kepada Penulis sehingga dapat menyelesaikan
penulisan skripsi ini. Skripsi ini disusun sebagai syarat untuk memperoleh gelar
Sarjana Komputer di Jurusan Ilmu Komputer Universitas Lampung. Judul dari skripsi
ini adalah “Implementasi Algoritma Boyer-Moore Dalam Sistem Pencarian Kata
Pada Kamus Kedokteran Berbasis Web”.
Dalam penyusunan skripsi ini, penulis banyak menghadapi kesulitan. Berkat bantuan
dan dorongan dari berbagai pihak, akhirnya penulis dapat menyelesaikannya. Untuk
itu pada kesempatan ini, penulis mengucapkan terimakasih kepada:
1. Mama, Bunda, Papa, dan adik tersayang yang tidak pernah berhenti
mendoakan, mendukung, dan menyemangati Penulis selama ini.
2. Tante Wati dan seluruh keluarga yang ikut mendukung dan mendoakan
penulis menyelesaikan skripsi ini.
3. Bapak Ir. Machudor Yusman , M. Kom. Sebagai Pembimbing I yang telah
memberikan ide, bimbingan, serta motivasi di tengah kesibukan beliau untuk
penulis sehingga dapat menyelesaikan skripsi ini.
4. Bapak Favorisen R. Lumbanraja, S. Kom., M. Si., Ph. D. sebagai Pembimbing
II, yang telah memberikan kritik, saran, ide, bantuan, dan meluangkan waktu
bimbingan selama proses penulisan skripsi.
5. Bapak Drs. Rd. Irwan Adi Pribadi, M.Kom. sebagai Pembahas yang telah
memberikan kritik, saran, dan motivasi dalam perbaikan skripsi ini.
6. Teman terbaikku Desy Kartika Sari yang selalu memberi semangat serta
dengan sabar mengajari penulis dalam menyelesaikan skripsi ini.
7. Teman terbaikku Hanifatussadi’ah, Siti Sari, Cici Linda, dan Nur Indriani
yang selalu memberi dukungan, semangat, dan sebagai tempat bertukar
pikiran, dan teman curhat penulis.
8. Teman terbaikku Nenok Loriana dan Hanan yang selalu membuat canda tawa.
9. Teman terbaikku Sholgun Squad ( Deka, Ipeh, Indri, Sitsar, Cici, Yushar, Ela,
Putri, Hanan, Titin, Rafi, Luski, Riza, Dea, Shasa, Rijana, Depi, dan Syintia)
yang memberi masukkan, dukungan mental, bantuan, saran, dan tim sukses
saat seminar penulis.
10. Para kucing FMIPA yang selalu membuat penulis senang setiap penulis
berada di kampus.
11. Manjolita Squad (Karinia, Kak Isyraf, Ko Julianser, Kak Sena, dan Kak Iki)
yang memberi dukungan, semangat, dan menghibur penulis selama
menyelesaikan skripsi dan sebagai partner main.
12. Adikku Cynthia dan Icha yang menemani penulis saat-saat terakhir
menyelesaikan skripsi ini.
13. Bapak dan Ibu Dosen, beserta staff Jurusan Ilmu Komputer yang telah
memberikan ilmu pengetahuan dan pengalaman dalam hidup untuk menjadi
lebih baik.
14. Seluruh teman Ilmu Komputer 2014.
15. Almamater tercinta, Universitas Lampung.
Semoga skripsi ini dapat memberikan banyak manfaat bagi semua pihak.
Bandar Lampung, 25 Juli 2019
Divka Ayu Ditha
NPM. 1417051044
i
DAFTAR ISI
Halaman
I. PENDAHULUAN .......................................................................................... 1
A. Latar Belakang ............................................................................................... 1
B. Rumusan Masalah .......................................................................................... 2
C. Batasan Masalah ............................................................................................. 3
D. Tujuan............................................................................................................. 3
E. Manfaat........................................................................................................... 4
II. TINJAUAN PUSTAKA ................................................................................ 5
A. Sistem Pencarian ............................................................................................ 5
B. Definisi Kamus ............................................................................................... 5
C. Jenis-jenis Kamus ........................................................................................... 6
1. Berdasarkan Penggunaan Bahasa ............................................................. 6
2. Berdasarkan Isi ......................................................................................... 7
3. Kamus Istimewa ....................................................................................... 8
D. Algoritma ..................................................................................................... 10
E. String Matching ............................................................................................ 11
F. Algoritma Boyer-Moore ............................................................................... 11
G. PHP( PHP:Hypertext Preprocessor) ............................................................ 12
H. HTML(Hypertext Markup Language) ......................................................... 13
I. Penelitian Terdahulu .................................................................................... 14
III. METODE PENELITIAN ........................................................................... 16
A. Waktu dan Tempat Penelitian ...................................................................... 16
ii
B. Kerangka Penelitian ..................................................................................... 16
C. Spesifikasi Hardware dan Software yang digunakan .................................. 18
D. Metode Pengembangan Sistem .................................................................... 19
1. Analisa Kebutuhan .................................................................................. 19
2. System Design .......................................................................................... 20
3. Implementasi ........................................................................................... 22
4. Testing/Pengujian .................................................................................... 31
IV. PEMBAHASAN .......................................................................................... 33
A. Analisis Kelemahan dan Keunggulan .......................................................... 33
B. Implementasi Sistem .................................................................................... 33
1. Kode Program Sistem............................................................................. 33
2. Tampilan Sistem ..................................................................................... 40
3. Algoritma Boyer Moore ......................................................................... 46
4. Pengujian Sistem .................................................................................... 51
V. KESIMPULAN ............................................................................................ 66
A. Simpulan....................................................................................................... 66
B. Saran ............................................................................................................. 67
DAFTAR PUSTAKA .............................................................................................. 68
DAFTAR TABEL
Tabel Halaman
1. Rencana Pengujian .............................................................................................. 51
2. Pengujian Login .................................................................................................. 52
3. Pengujian Tambah Data Istilah ........................................................................... 53
4. Pengujian Edit Data Istilah.................................................................................. 54
5. Pengujian Hapus Data Istilah .............................................................................. 54
6. Pengujian Pengolahan Saran ............................................................................... 55
7. Pengujian Pencarian Istilah Kedokteran (User) .................................................. 56
8. Pengujian Saran Data .......................................................................................... 57
9. Data Uji Akurasi Sistem...................................................................................... 58
DAFTAR GAMBAR
Gambar Halaman
1. Kerangka Penelitian ............................................................................................ 17
2. Metode Waterfall ................................................................................................ 19
3. Use Case sistem pencarian kata .......................................................................... 20
4. Class Diagram Sistem Pencarian Kata ............................................................... 21
5. Contoh Pengimplementasian Algoritma Boyer Moore ....................................... 22
6. Contoh Implementasi Algoritma Boyer Moore................................................... 23
7. Penyelesaian Nilai OH dan MH .......................................................................... 24
8. Langkah 1 Pergeseran pattern ............................................................................. 24
9. Posisi Pergeseran Langkah 1 ............................................................................... 25
10. Akhir Pergeseran Pattern .................................................................................... 25
11. Tampilan Awal Saat Sistem Diakses .................................................................. 40
12. Tampilan Hasil Pencarian Sistem ....................................................................... 40
13. Tampilan Saran Sistem ....................................................................................... 41
14. Tampilan Login Sistem Sebagai Hak Akses Bagi Admin .................................. 42
15. Tampilan Sesudah Admin Login ke Dalam Sistem ............................................ 43
16. Tampilan Tambah Data Istilah ........................................................................... 43
17. Tampilan Edit Data ............................................................................................. 44
18. Tampilan Halaman Bantuan ................................................................................ 45
19. Tampilan Halaman Tentang ................................................................................ 45
20. Tampilan Saran Data Admin ............................................................................... 46
1
I. PENDAHULUAN
A. Latar Belakang
Bidang ilmu kedokteran memiliki banyak istilah bahasa latin di dalamnya.
Mahasiswa kedokteran, biasanya kesulitan dalam mencari arti dari istilah-
istilah dalam bahasa latin tersebut yang sering muncul dalam pelaksanaan
ujian, praktik, dan tugas hariannya. Mereka harus membawa kamus
kedokteran yang sangat tebal serta berat saat sedang kuliah maupun sedang
praktikum. Dari masalah yang sering dihadapi, mahasiswa membutuhkan
solusi yang dapat membantu permasalahan tersebut. Dibutuhkan suatu sistem
yang berfokus pada sistem pencarian kata dengan menerapkan salah satu
algoritma string matching yang dapat membantu mengefisiensikan waktu
pencarian kata karena kamus kedokteran berisi banyak istilah latin.
String Matching adalah suatu algoritma yang digunakan untuk memecahkan
masalah pencocokkan suatu teks terhadap suatu pola. Banyak sekali algoritma
yang digunakan untuk memecahkan masalah string matching ini, salah
satunya adalah Algoritma Boyer-Moore. Algoritma Boyer-Moore adalah
salah satu algoritma pencarian pola, dipublikasikan oleh Robert S. Boyer, dan
J. Strother Moore pada tahun 1977. Tidak seperti algoritma pencarian string
2
yang ditemukan sebelumnya, Algoritma Boyer-Moore dimulai dengan
mencocokkan karakter dari sebelah kanan pattern.
Dalam pencarian string, algoritma digunakan untuk mencocokkan string yang
dicari dengan semua string yang terdapat dalam dokumen teks tersebut.
Pencocokan string atau string matching adalah proses pencarian semua
kemunculan string pendek P[0..n-1] yang disebut pattern di string yang lebih
panjang T[0..m-1] yang disebut teks (Kumara, 2008). Pada penelitian ini,
algoritma digunakan untuk mencocokkan istilah dalam Bahasa Latin pada
kamus kedokteran dengan data yang sudah dimasukkan ke dalam database.
Pencarian istilah dalam kamus kedokteran yang banyak memperlambat proses
penggunaannya dan menjadi kurang efektif sehingga enggan dibawa kemana-
mana karena cukup berat dan memakan waktu dalam proses pencarian
katanya. Berdasarkan masalah yang ada, peneliti mengajukan penelitian
dengan membuat suatu sistem pencarian kata dengan mengimplementasikan
Algoritma Boyer-Moore dalam proses pencarian pada kamus kedokteran
berbasis web yang dapat memaksimalkan proses pencarian tersebut. Dengan
menerapkan Algoritma Boyer-Moore, dapat mempermudah penggunaan
kamus dengan waktu pencarian yang lebih efektif dan singkat.
B. Rumusan Masalah
Berdasarkan latar belakang tersebut, masalah dalam penelitian ini adalah
sebagai berikut:
3
1. Mengimplementasikan Algoritma Boyer-Moore pada sistem pencarian
kata pada kamus kedokteran berbasis web.
2. Sistem menemukan arti kata yang di-input dari istilah-istilah kedokteran
dalam Bahasa Latin.
C. Batasan Masalah
Batasan masalah dalam penelitian ini adalah sebagai berikut:
1. Penelitian ini dibuat untuk membantu user menemukan arti kata yang
terdapat dalam kamus kedokteran.
2. Penelitian ini dibuat menggunakan Algoritma String Matching yaitu
Algoritma Boyer-Moore.
3. Penelitian ini menggunakan Kamus Kedokteran Dr. Med. Ahmad Ramali
dan K. St. Pamoentjak yang disempurnakan oleh dr. Hendra T. Laksman,
mantan lektor kepala pada Universitas Indonesia.
4. Penelitian ini menggunakan 2600 data istilah dengan masing-masing 100
data istilah menurut Abjad.
D. Tujuan
Tujuan dalam penelitian ini adalah sebagai berikut:
1. Mengimplementasikan Algoritma Boyer-Moore dalam sistem pencarian
kata pada kamus kedokteran.
4
2. Mengetahui akurasi pada saat melakukan pencocokan string pada istilah-
istilah yang ada dalam kamus kedokteran oleh Algoritma Boyer-Moore.
E. Manfaat
Manfaat dalam penelitian ini adalah sebagai berikut:
1. Memudahkan user dalam menemukan kata yang dicari pada istilah-
istilah dalam kamus kedokteran.
2. Memudahkan peneliti lain untuk melakukan penelitian sejenis pada
Algoritma Boyer-Moore dalam mencari referensinya.
5
II. TINJAUAN PUSTAKA
A. Sistem Pencarian
Sistem adalah kumpulan elemen yang saling berinteraksi dalam suatu
kesatuan untuk menjalankan suatu proses pencapaian suatu tujuan utama
(Sutarman, 2009). Menurut Murdick (2003), sistem adalah seperangkat
elemen yang membentuk kegiatan atau suatu prosedur atau bagian
pengolahan yang mencari suatu tujuan-tujuan bersama dengan
mengoperasikan data atau barang pada waktu tertentu untuk menghasilkan
informasi atau energi atau barang.
Terdapat beberapa fungsi dari sistem, salah satunya sistem pencarian yang
terfokus pada pencarian data yang ada untuk mendapat informasi dari data
yang dicari tersebut. Sistem akan mengolah data dari masukkan berupa kata
dengan menghasilkan informasi dari kata tersebut. Penelitian ini merupakan
penelitian dengan menggunakan fungsi sistem sebagai pencarian kata dalam
database pada kamus kedokteran.
B. Definisi Kamus
Kamus adalah sejenis buku acuan yang tersusun berdasarkan abjad dan berisi
tentang istilah-istilah beserta maknanya. Kamus sangat dibutuhkan dalam
6
dunia pendidikan untuk mencari tahu kata atau istilah yang ingin diketahui
maknanya (Merpaung, 2013).
C. Jenis-jenis Kamus
Menurut Chaer (2007), kamus dapat dikategorikn menjadi beberapa jenis,
yaitu:
1. Berdasarkan penggunaan bahasa
Kamus bisa ditulis dalam satu atau lebih dari satu bahasa. Dengan itu kamus
bisa dibagi menjadi beberapa jenis, yaitu:
i. Kamus Ekabahasa
Kamus ini hanya menggunakan satu bahasa (misal dalam satu kamus hanya
terdapat bahasa Indonesia saja atau bahasa Inggris saja). Kata-kata (entri) yang
dijelaskan dan penjelasannya adalah terdiri dari bahasa yang sama. Kamus ini
mempunyai perbedaan yang jelas dengan kamus Dwibahasa karena
penyusunan dibuat berdasarkan pembuktian data. Ini bermaksud
mendefinisikan makna atas kata-kata berdasarkan makna yang diberikan
dalam contoh kalimat yang mengandung kata-kata berhubungan. Contoh bagi
kamus Eka Bahasa ialah Kamus Besar Bahasa Indonesia (di Indonesia) dan
Kamus Dewan di (Malaysia).
7
ii. Kamus Dwibahasa
Kamus ini menggunakan dua bahasa, yakni kata masukan dari bahasa yang
dikamuskan diberi padanan dengan menggunakan bahasa yang lain.
Contohnya: Kamus Inggris-Indonesia, Kamus Dwibahasa Oxford Fajar
(Inggris-Melayu; Melayu-Inggris).
Pada penelitian ini, peneliti menerapkan Kamus Dwibahasa dalam
mengimplementasikan algoritma Boyer-Moore pada Kamus Kedokteran ini
karena sistem mencari arti kamus dalam bahasa Latin/Kedokteran ke bahasa
Indonesia.
iii. Kamus Aneka Bahasa
Kamus Aneka Bahasa merupakan kamus yang menterjemahkan lebih dari
satu bahasa. Kamus ini sekurang-kurangnya menggunakan tiga bahasa atau
lebih. Misalnya, kata Bahasa Melayu Bahasa Inggris dan Bahasa Mandarin
secara serentak. Contoh bagi kamus aneka bahasa adalah Kamus Melayu-
Cina-Inggris pelangi yang disusun oleh Yuen Boon Chan.
2. Berdasarkan Isi
Kamus bisa muncul dalam berbagai isi. Ini adalah karena kamus diterbitkan
dengan tujuan memenuhi keperluan gologan tertentu. Contohnya, golongan
pelajar sekolah memerlukan kamus berukuran kecil untuk memudahkan
mereka membawa kamus ke sekolah. Secara umumnya kamus dapat dibagi
kepada 3 jenis ukuran (Chaer, 2007):
8
i. Kamus Mini
Pada zaman sekarang sebenarnya susah untuk menjumpai kamus ini. Kamus
Mini juga dikenali sebagai kamus saku karena ia dapat disimpan dalam saku.
Tebalnya kurang dari 2 cm. Kamus mini ini memiliki tidak lebih dari 2000
kosa kata dan tentunya kosa kata yang ada di dalam kamus ini lebih umum
digunakan masyarakat.
ii. Kamus Kecil
Kamus Kecil biasa dijumpai berukuran kecil. Kamus Kecil merupakan kamus
yang mudah dibawa karena ukurannya yang kecil dapat menghemat tempat.
Contoh dari Kamus Kecil ini salah satunya Kamus Dwibahasa Oxford Fajar
(Inggris-Melayu; Melayu-Inggris).
iii. Kamus Besar
Kamus Besar memuatkan segala makna kata yang terdapat dalam satu bahasa.
Setiap perkataannya dijelaskan maksud secara lengkap. Biasanya, ukurannya
besar dan tidak sesuai untuk dibawa ke sana sini. Contoh dari kamus ini salah
satunya Kamus Besar Bahasa Indonesia.
3. Kamus Istimewa
Kamus istimewa merujuk kepada kamus yang mempunyai fungsi yang
khusus. Contoh dari kamus ini adalah sebagai berikut:
9
i. Kamus Istilah
Kamus Istilah berisi istilah-istilah khusus dalam bidang tertentu. Fungsinya
adalah untuk kegunaan ilmiah. Contohnya ialah Kamus Istilah Kedokteran.
ii. Kamus Etimologi
Kamus Etimologi adalah kamus yang menerangkan asal usul sesuatu
perkataan dan maksud asalnya. Biasanya kamus ini hanya memiliki satu
bahasa atau yang biasa disebut kamus ekabahasa. Contoh bagi kamus
Etimologi ialah Kamus Besar Bahasa Indonesia (di Indonesia) dan Kamus
Dewan di (Malaysia).
iii. Kamus Tesaurus (Sinonim)
Kamus Tesaurus adalah kamus yang menerangkan maksud sesuatu perkataan
dengan memberikan kata-kata searti (sinonim) dan dapat juga kata-kata yang
berlawanan arti (antonim). Kamus ini dapat membantu para penulis untuk
meragamkan penggunaan diksi. Contohnya, Tesaurus Bahasa Indonesia.
iv. Kamus Peribahasa/Simpulan Bahasa
Kamus Peribahasa/Simpulan Bahasa adalah kamus yang menerangkan
maksud sesuatu peribahasa/simpulan bahasa. Selain daripada digunakan
sebagai rujukan, kamus ini juga sesuai untuk dibaca dengan tujuan keindahan.
10
v. Kamus Kata Nama Khas
Kamus yang hanya menyimpan kata nama khas seperti nama tempat, nama
tokoh, dan juga nama bagi institusi. Tujuannya adalah untuk menyediakan
rujukan bagi nama-nama ini.
vi. Kamus Terjemahan
Kamus yang menyediakan kata searti bahasa asing untuk satu bahasa sasaran.
Kegunaannya adalah untuk membantu para penerjemah. Kamus ini lebih mirip
dengan kamus Dwi bahasa, dimana di dalam kamus ini berisikan lebih dari 1
bahasa yang digunakan sebagai bahasa penerjemah dan yang satu lagi
digunakan sebagai bahasa terjemahan.
vii. Kamus Kolokasi
Kamus yang menerangkan tentang padanan kata. Contohnya kata 'terdiri' yang
selalu berpadanan dengan 'dari' atau 'atas', kata „sebagian‟ yang selalu
berpadanan dengan „besar‟ atau „kecil‟.
D. Algoritma
Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang
digunakan untuk memecahkan suatu permasalahan (Utami, 2005). Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah yang disusun
secara sistematis (Munir, 2007). Berdasarkan definisi tersebut dapat
dikatakan bahwa Algoritma merupakan ilmu yang mempelajari cara
11
menyelesaikan masalah dengan langkah-langkah yang disusun dengan
sistematis dan menggunakan bahasa yang logis untuk tujuan tertentu.
E. String Matching
String matching adalah proses pencarian semua kemunculan query yang
selanjutnya disebut pattern ke dalam string yang lebih panjang (Sarno, 2012).
String matching dirumuskan dengan :
x = x [0....m-1] ............................................................................................... (1)
y = y [0.....n-1] ............................................................................................... (2)
dimana :
x = pattern
m = panjang pattern
y = Teks
n = Panjang teks.
F. Algoritma Boyer-Moore
Algoritma Boyer-Moore dianggap sebagai algoritma pencocokkan string
yang paling efisien. Algoritma ini melakukan pencocokkan pola dari kanan ke
kiri tetapi pergeseran tetap dari kiri ke kanan (Charras dkk, 2004). Langkah-
langkah yang dilakukan algoritma Boyer Moore pada saat mencocokkan
string adalah (Soleh, 2011):
12
1. Algoritma Boyer-Moore mulai mencocokan bentuk karakter pada awal
teks.
2. Dari kanan ke kiri, algoritma ini mencocokkan karakter per karakter
pattern dengan karakter di teks yang bersesuaian, sampai salah satu
kondisi berikut dipenuhi :
i. Karakter per karakter di pattern dan karakter di teks yang
dibandingkan dalam database tidak cocok.
ii. Semua karakter di pattern cocok dengan yang ada dalam teks.
Kemudian algoritma memberitahukan penemuan di posisi ini.
3. Algoritma kemudian menggeser karakter dengan memaksimalkan nilai
pergeseran good-suffix dan pergeseran bad-character, lalu mengulangi
langkah 2 sampai pattern berada di ujung teks.
G. PHP (PHP: Hypertext Preprocessor)
PHP adalah bahasa scripting yang paling mudah karena referensi yang
banyak. PHP adalah bahasa open source yang dapat digunakan di berbagai
mesin (linux, unix, windows) dan dapat dijalankan secara runtime melalui
console serta bahasa pemrograman server side yang sudah banyak digunakan
pada saat ini, terutama untuk pembuatan website dinamis (Andre, 2014).
PHP (PHP:Hypertext Preporocessor) merupakan sebuah bahasa
pemrograman yang hanya dapat berjalan pada sisi server (Server Side
Scripting). Artinya proses yang dibuat dengan PHP tidak berjalan tanpa
menggunakan web server. PHP digunakan untuk membangun aplikasi
13
berbasis web agar web tersebut dapat digunakan secara dinamis, seperti
menambah, mengubah, membaca, serta menghapus suatu konten. PHP
menyatu dengan kode HTML. PHP tidak menggantikan peran utama HTML
sebagai pondasi kerangka web, namun untuk melengkapi kekosongan. HTML
merupakan bahasa pemrograman yang digunakan untuk membangun
kerangka atau pondasi web. Sedangkan PHP merupakan bahasa pemrograman
yang digunakan untuk proses aksi yang terdapat dalam konten web (Saputra,
2013).
H. HTML (Hypertext Markup Language)
HTML (Hypertext Markup Language) merupakan jenis bahasa yang
digunakan untuk membuat halaman website yaitu dengan menggunakan tag-
tag yang telah dideklarasikan pada halaman notepad dan dapat saling
berhubungan dengan dokumen HTML yang lainnya yang sering dikenal
dengan istilah link. HTML (Hypertext Markup Language) merupakan sebuah
bahasa pemrograman markup yang berisi kode-kode tag sehingga informasi
tersebut dapat ditampilkan di halaman web sehingga dapat dibuka
menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet
Explorer (Saputra, 2013).
14
I. Penelitian Terdahulu
Penelitian terdahulu yang dijadikan oleh peneliti sebagai pembanding yang
berhubungan dengan pengimplementasian algoritma Boyer-Moore yang
pernah ada, yaitu:
1. Argakusumah dan Hansun (2014) melakukan penelitian tentang
“Implementasi Algoritma Boyer-Moore pada Aplikasi Kamus
Kedokteran Berbasis Android”. Penelitian ini dilakukan dengan
melakukan survei dan diperoleh yaitu keberadaan kamus kedokteran
dengan bentuk yang tebal dapat mempersulit dan memperlambat
penggunaan kamus kedokteran itu sehingga dibutuhkan suatu aplikasi
kamus kedokteran yang dapat mempermudah dan mempersingkat waktu
penggunaannya. Aplikasi ini memisahkan istilah-istilah yang ada dalam
kedokteran menjadi beberapa kategori.
2. Kejora, Astuti, dan Rozi (2011) melakukan penelitian tentang “Kamus
Penyakit Hewan Peliharaan dengan Metode Boyer-Moore Berbasis
Android”. Penelitian ini diperuntukkan bagi para mahasiswa kedokteran
hewan untuk mengetahui berbagai macam penyakit hewan terutama
anjing dan kucing. Pada aplikasi ini, tidak terdapat fitur tambah data yang
dapat digunakan untuk menambah atau memasukkan kata istilah baru ke
dalam sistem untuk melengkapi data dalam istilah kedokteran.
Sistem yang dibuat dalam penelitian ini untuk melengkapi kekurangan dari
kedua contoh pengimplementasian Algoritma Boyer-Moore di atas, untuk
mempermudah dan mempersingkat pencarian dengan menggabungkan semua
15
kategori menjadi satu. Saat sistem ini digunakan, user langsung mengetikkan
kata yang dicari dari bidang manapun dengan menambahkan fitur login bagi
admin untuk mengubah, menambah, atau menghapus data.
16
III. METODE PENELITIAN
A. Waktu dan Tempat Penelitian
Penelitian ini dilakukan pada Semester Ganjil Tahun Ajaran 2018/2019 yang
bertempat di Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Lampung. Penelitian ini dimulai dengan
menganalisis kebutuhan mahasiswa kedokteran terhadap kamus kedokteran
yang tebal dan agak repot dibawa karena memiliki beban yang berat dengan
memilih salah satu Algoritma String Matching yang dapat membantu proses
pencocokan data, yaitu Algoritma Boyer-Moore. Dari hasil analisis tersebut,
penulis mengembangkan sistem pencarian kata dalam kamus kedokteran
menggunakan Algoritma Boyer-Moore dan membuat database yang berisi
kumpulan istilah-istilah kedokteran dalam Bahasa Latin.
B. Kerangka Penelitian
Kerangka penelitian yang dilakukan dalam pembuatan sistem pencarian kata
pada kamus kedokteran ini dapat dilihat pada Gambar 1.
17
Gambar 1. Kerangka Penelitian.
Gambar 1 menjelaskan kerangka penelitian dimulai dari adanya permasalahan
yang terjadi pada saat mencari data pada kamus kedokteran yang dilakukan
menggunakan kamus-kamus kedokteran yang sangat tebal serta berat jika
dibawa kemana-mana serta memakan waktu yang lama dalam pencariannya.
Selanjutnya dilakukan pendekatan pada sistem dengan menggunakan
algoritma string matching yaitu Algoritma Boyer-Moore. Setelah melakukan
pendekatan, proses selanjutnya yaitu identifikasi, dimana tahap ini
menjelaskan hal-hal yang ingin dikembangkan dengan menggunakan
Algoritma Boyer-Moore sebagai algoritma yang membantu memaksimalkan
proses pencarian data pada kamus kedokteran. Selanjutnya, yaitu tujuan dari
penelitian ini yaitu membuat sistem informasi pencarian kata pada kamus
kedokteran dengan mengimplementasikan Algortima Boyer-Moore dan
kemudian divalidasi dengan menguji sistem terhadap algoritma yang sudah
diimplementasikan. Setelah sistem divalidasi, maka didapatkan hasil yaitu
Pencarian
data istilah
kamus
kedokteran
Proses pencarian data
secara manual, sehingga
membutuhkan waktu yang
lama
Problem Approach
Penggunaan
Algoritma
String
Matching
Algoritma
pencarian
Boyer-
Moore
Identification
Pencarian data
kamus
menggunakan
algortima Boyer-
Moore
Proposed
Menerapkan
algortima
Boyer-Moore
pada
pencarian data
Validation
Uji
Algoritma
Result
Sistem pencarian
data pada kamus
kedokteran
menggunakan
algoritma Boyer-
Moore
18
sebuah sistem pencarian data berupa kata pada kamus kedokteran
menggunakan Algoritma Boyer-Moore tersebut.
C. Spesifikasi Hardware dan Software yang Digunakan
Penelitian ini menggunakan hardware dan software sebagai sarana penunjang
dan pendukung pelaksanaan penelitian, yaitu:
1. Perangkat Keras (Hardware)
Perangkat keras (hardware) yang digunakan dalam penelitian ini adalah 1
unit laptop dengan spesifikasi:
-Processor 1,70 GHz , Core 2, Threads 4
-Memory RAM 4 GB, DDR 3
-Harddisk 500 GB, 5400 RPM
2. Perangkat Lunak (Software)
Perangkat lunak (software) yang digunakan dalam penelitian ini yaitu:
-Sistem Operasi: Windows 10 64 bit
-Web Browser : Mozilla Firefox, Google Chrome, dan Baidu Browser
-Program editor : Sublime Text Versi 2
-DBMS : MySQL versi 10.1.36
-Bahasa Pemrograman: PHP Versi 7.2.10
- XAMPP Versi 3.2.2
19
D. Metode Pengembangan Sistem
Metode pemecahan masalah dalam penelitian yang dilakukan yaitu Metode
Waterfall ditunjukkan pada pada Gambar 2.
Gambar 2. Metode Waterfall (Pressman, 2011).
Pada Gambar 2, pengembangan sistem dimulai dengan menganalisa
kebutuhan. Setelah dianalisis, maka tahap selanjutnya adalah mendesain serta
mengimplementasikan sistem dan kemudian melakukan pengujian sistem.
1. Analisa Kebutuhan
Analisa kebutuhan yaitu dimulai dengan mengidentifikasi, mengumpulkan
studi literatur berkaitan dengan Algoritma String Matching yaitu Algoritma
Boyer-Moore. Data yang dibutuhkan dalam penelitian ini adalah kamus
kedokteran. Setelah proses identifikasi terhadap permasalahan selesai,
20
ditemukan permasalahan yaitu bagaimana sistem pencarian kata pada Kamus
Kedokteran ini menjadi lebih efektif dengan waktu proses pencarian yang
singkat serta mudah digunakan dengan mengimplementasikan Algoritma
String Matching, yaitu Algoritma Boyer-Moore.
2. System Design
Pada tahapan ini, dilakukan perancangan sistem yang akan
diimplementasikan dengan memakai Use Case Diagram dan Class Diagram
sebagai berikut:
-Use Case Diagram
Use Case Diagram merupakan gambaran dari seluruh aktifitas yang
dilakukan sistem. Use Case Sistem Pencarian Kata ini ditunjukkan pada
Gambar 3.
Gambar 3. Use Case Diagram Sistem Pencarian Kata Pada Kamus
Kedokteran.
21
Pada Gambar 3, User dapat mencari istilah dengan mengetikkan kata yang
dicari dan sistem mencari kata tersebut di dalam database dan
menampilkannya serta menambahkan saran kata. Terdapat login bagi Admin
dalam sistem untuk menambahkan data istilah, mengedit, menghapus data,
dan menyimpan saran yang diusulkan user.
-Class Diagram
Class Diagram mendeskripsikan jenis-jenis obyek dalam sistem dan berbagai
macam hubungan yang terjadi. Class Diagram ditunjukkan oleh Gambar 4.
Gambar 4. Class Diagram Sistem Pencarian Kata Pada Kamus Kedokteran.
22
3. Implementasi
Pada proses implementasi dilakukan pembuatan pembuatan sistem yang telah
didesain. Pembuatan sistem ini menggunakan perangkat lunak yang
digunakan dalam pembuatan sistem yaitu menggunakan bahasa pemrograman
PHP (Hypertext Preprocessor) dan database MySQL, dan Algoritma Booyer-
Moore.
Algoritma Boyer-Moore adalah salah satu algoritma untuk mencari suatu
string di dalam teks, dibuat oleh R.M Boyer dan J.S Moore. Algoritma Boyer-
Moore melakukan perbandingan dimulai dari kanan ke kiri, tetapi pergeseran
window tetap dari kiri ke kanan. Jika terjadi kecocokkan maka dilakukan
perbandingan karakter teks dan karakter pola yang sebelumnya, yaitu dengan
sama-sama mengurangi indeks teks dan pola masing-masing sebanyak satu.
Dengan mengunakan algoritma ini, secara rata-rata proses pencarian akan
menjadi lebih cepat jika dibandingkan dengan algoritma lainnya. Contoh
penerapan Algoritma boyer-moore ditunjukkan pada Gambar 5.
Gambar 5.Contoh Pengimplementasian Algoritma Boyer-Moore.
Dari gambar tersebut, dilakukan perbandingan dari sebelah kanan yaitu string
yang paling akhir. Dapat dilihat bahwa karakter „R‟ yang ada pada string
“SAYUR” tidak cocok dengan karakter „H‟ yang ada pada string “LODEH”
dan karakter „H‟ tidak ditemukan pada string “SAYUR” sehingga terjadi
S A Y U R L O D E H
L O D E H
23
pergeseran string “LODEH” melewati string “SAYUR” sehingga posisi
pergeserannya sebagai ditunjukkan oleh Gambar 6.
Gambar 6. Contoh Implementasi Algoritma Boyer-Moore.
Dari contoh pada Gambar 6 dapat dilihat bahwa pergeseran pada Algoritma
boyer-moore memiliki loncatan karakter yang besar sehingga dapat
mempercepat waktu pencarian string hanya dengan memeriksa sedikit
karakter karena langsung diketahui bahwa string yang dicari tidak ditemukan
sehingga dapat langsung bergeser ke posisi berikutnya.
-Langkah Algoritma Boyer-Moore
Secara sistematis, langkah-langkah yang dilakukan Algoritma Boyer-Moore
pada saat mencocokkan string adalah:
1. Algoritma Boyer-Moore mulai mencocokkan pattern pada awal teks.
2. Dari kanan ke kiri, algoritma ini 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 pola cocok. Kemudian algoritma memberitahukan
penemuan di posisi ini.
S A Y U R L O D E H
L O D E H
24
3. Algoritma kemudian menggeser pattern dengan memaksimalkan nilai
penggeseran good-suffix (MH) dan penggeseran bad-character (OH), lalu
mengulangi langkah 2 sampai pattern berada di ujung teks.
-Penerapan Algoritma Boyer-Moore
Contoh penggunaan algoritma Boyer-Moore dalam melakukan pencarian
pattern dalam teks:
Teks (S) = ARTHRITIS
Pattern (P) = RITIS
Tahapan pencarian pattern (P) dalam Teks (S) ditunjukkan pada Gambar 7.
Gambar 7. Penyelesaian Nilai OH dan MH
Langkah 1 penyelesaian pergeseran Pattern ditunjukkan pada Gambar 8.
Gambar 8. Langkah 1 Pergeseran Pattern.
Pada Gambar 8 karakter “S” pada pattern tidak cocok dengan karakter “R”
pada teks. Pergeseran algoritma Boyer-Moore memiliki loncatan karakter
sebanyak 3 dilihat dari tabel OH yaitu sebanyak 3 dimana pergeseran tersebut
ditunjukkan pada Gambar 9.
Pattern (P) R I T I S
Occurence Heuristic (OH) 3 1 2 1 0
Match Heuristic (MH) 5 5 5 5 1
Posisi Teks 1 2 3 4 5 6 7 8 9
Teks A R T H R I T I S
Pattern R I T I S
25
Gambar 9. Posisi Pergeseran Langkah 1.
Pada Gambar 9 pergeseran yang terjadi dimana karakter “S” pada pola tidak
cocok dengan karakter “I” yang ada pada teks. Pergeseran selanjutnya perlu
melihat nilai pergeseran dari OH yang terdapat dalam Gambar 7 Karakter “I”
dengan jumlah pergeseran sebanyak 1.
Gambar 10. Akhir Pergeseran Pattern.
Pergeseran terakhir yang ditunjukkan oleh Gambar 10. menunjukkan bahwa
karakter “S” yang ada pada pola cocok dengan karakter “S” yang ada dalam
teks.
-Kode Program Algoritma Boyer-Moore
Berikut adalah Kode Program algoritma Boyer-Moore pada fase pra-
pencarian ditunjukkan pada Kode Program 1.
Posisi Teks 1 2 3 4 5 6 7 8 9
Teks A R T H R I T I S
Pattern R I T I S
Posisi Teks 1 2 3 4 5 6 7 8 9
Teks A R T H R I T I S
Pattern R I T I S
26
Kode Program 1. Bad-Character Shift (OH).
Pada Kode Program 1, i merupakan panjang keyword yang dimasukkan
dalam variabel i dengan berbentuk array dari indeks 0..n-1 dari karakter yang
ada pada keyword. Selanjutnya, algoritma me-looping dari i=0 sampai
panjang keyword -1 untuk menentukan nilai bmBc[i] nilainya i nya berapa
dan di-looping untuk menentukan nilai pola ke-I nya sampai m-2 dengan
rumus bmBc[P[i]] := m - i – 1.
Berikut merupakan Kode Program Good-Suffix Shift (MH) yang masuk ke
dalam fase pra pencarian ditunjukkan pada Kode Program 2.
procedure preBmBc(
input P : array[0..n-1] of char,
input n : integer,
input/output bmBc : array[0..n-1] of
integer
)
Deklarasi:
i: integer
Algoritme:
for (i := 0 to ASIZE-1)
bmBc[i] := m;
endfor
for (i := 0 to m - 2)
bmBc[P[i]] := m - i - 1;
endfor
27
Kode Program 2. Good-Suffix Shift (MH).
procedure preSuffixes(
input P : array[0..n-1] of char,
input n : integer,
input/output suff : array[0..n-1] of
integer
)
Deklarasi:
f, g, i: integer
Algoritme:
suff[n - 1] := n;
g := n - 1;
for (i := n - 2 downto 0) {
if (i > g and (suff[i + n - 1 - f] < i -
g))
suff[i] := suff[i + n - 1 - f];
else
if (i < g)
g := i;
endif
f := i;
while (g >= 0 and P[g] = P[g + n - 1 -
f])
--g;
endwhile
suff[i] = f - g;
endif
endfor
28
Pada Kode Program 2, f merupakan huruf yang berada di sebelah kiri [i],
menentukan ketidakcocokkan terdapat pada posisi berapa. Suff [n-1]=
n mencocokkan mulai dari sebelah kanan dimana g=n-1 merupakan
panjang dari karakter keyword. Pada for (i := n - 2 downto
0),akan di-looping dan mengecek kecocokan string keyword dari kanan ke
kiri dan mengecek kecocokan string keyword per posisi pada (if (i > g
and (suff[i + n - 1 - f] < i - g). Setelah dicek
kecocokannya, digeser pada posisi ke i, dan jika tidak sesuai dengan kondisi
yang di atas, maka g:=i sampai f := i yaitu inisialisasi nilai f.
Kemudian me-looping lagi dengan while (g >= 0 and P[g] =
P[g + n - 1 - f]) memeriksa kecocokan keyword per posisi dengan
berjalan ke kiri (--g;).
Pada Kode Program 3, suff: array merupakan nilai pergeseran yang
dihasilkan dengan parameter preSuffixes(x, n, suff);.for
(i := 0 to m-1) me-looping dari 0 sampai panjang teks -1 sampai
didapati nilai bmGs[i] := n. Pada j=0 menginisialisasi nilai j dengan
looping mudur (decrease) kanan ke kiri (for (i := n - 1 downto
0)). Selanjutnya mengecek kondisi dengan if (suff[i] = i + 1)
akan memeriksa kondisi yaitu posisi pertama dan me-looping nilai j, yaitu
for (j:=j to n - 2 - i) hingga dalam kondisi posisi setelahnya
yaitu if (bmGs[j] = n), maka bmGs[j], maka nilainya
bmGs[j]= n-1-i dan jika nilainya true, maka nilai nya bmGs[j]= n-
1-i, dan jika nilainya tidak sesuai, maka masuk ke looping (i = 0 to
29
n - 2) yang selanjutnya menentukan nilai bmGs[n - 1 -
suff[i]] := n - 1 - i;. Berikut Kode Program perhitungan suffix.
Kode Program 3. Perhitungan Suffix.
procedure preBmGs(
input P : array[0..n-1] of char,
input n : integer,
input/output bmBc : array[0..n-1] of integer
)
Deklarasi:
i, j: integer
suff: array [0..RuangAlpabet] of integer
preSuffixes(x, n, suff);
for (i := 0 to m-1)
bmGs[i] := n
endfor
j := 0
for (i := n - 1 downto 0)
if (suff[i] = i + 1)
for (j:=j to n - 2 - i)
if (bmGs[j] = n)
bmGs[j] := n - 1 - i
endif
endfor
endif
endfor
for (i = 0 to n - 2)
bmGs[n - 1 - suff[i]] := n - 1 - i;
endfor
30
Kode Program Algoritma Boyer-Moore pada fase pencarian yang ditunjukkan
pada Kode Program 4.
Kode Program 4. Fase Pencarian.
procedure BoyerMooreSearch(
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, shift, bmBcShift, bmGsShift: integer
BmBc : array[0..255] of interger
BmGs : array[0..n-1] of interger
Algoritme:
preBmBc(n, P, BmBc)
preBmGs(n, P, BmGs)
i:=0
while (i<= m-n) do j:=n-1
while (j >=0 n and T[i+j] = P[j]) do j:=j-1
endwhile
if(j < 0) then
ketemu[i]:=true;
endif
bmBcShift:= BmBc[chartoint(T[i+j])]-n+j+1
bmGsShift:= BmGs[j]
shift:= max(bmBcShift, bmGsShift)
i:= i+shift
31
Pada Kode Program 4, m merupakan panjang teks dan n merupakan panjang
keyword dimana P merupakan array keyword dan T merupakan array teks
dengan kondisi output ketemu atau tidak ketemu (Boolean). Selanjutnya
pendeklarasian variabel integer yaitu nilai pergeseran. BmBc dan BmGs
sebagai array sudah didapati nilainya pada prosedur sebelumnya. Prosedur
preBmBc memiliki parameter (n, P, BmBc) dan prosedur preBmGs
memiliki parameter (n, P, BmGs) dan inisialisasi i=0
kemudian di-looping (i<= m-n) untuk mencocokkan teks dengan
keywordnya. Selanjutnya menentukan nilai j nya (j >=0 n and T[i+j]
= P[j]) do j:=j-1 sampai bertemu karakter apa yang tidak cocok
bmBcShift:=BmBc[chartoint(T[i+j])]-n+j+1 dan posisi
berapa yang tidak cocok. Pada bmGsShift:= BmGs[j] berisi [j]
yaitu posisi berapa yang tidak cocok dengan nilai pergeserannya
max(bmBcShift, bmGsShift), yaitu nilai maksimal saat ditemukan
yang tidak cocok maka jumlah pergeseran langsung dalam jumlah besar.
4. Testing/Pengujian
Proses pengujian, yaitu dengan melakukan pencarian dengan memasukkan
keyword pencarian secara acak dari database. Kemudian melihat jumlah yang
ditemukan dalam pencarian dengan jumlah yang ada dalam database sama
atau tidak.
Penelitian ini menggunakan Black Box Testing sebagai metode pengujian
yang dilakukan hanya mengamati hasil eksekusi melalui data uji yang dapat
32
diketahui hasil dari pola yang dicari sama dengan yang ada di dalam
database. Untuk mengetahui tingkat relevansi dan ketepatan sistem dalam
melakukan pencarian informasi yang diminta oleh pengguna, maka dilakukan
pula pengujian akurasi sistem.
66
V. KESIMPULAN
A. Simpulan
Berdasarkan uraian penelitian, dapat disimpulkan bahwa:
1. Algoritma Boyer-Moore dapat diimplementasikan ke dalam Kamus
Kedokteran berbasis web dan dapat berguna untuk menemukan arti
dari istilah kedokteran yang dicari.
2. Menggunakan Bahasa Pemrograman PHP, dan database MySQL.
3. Data yang disediakan yaitu dari kamus kedokteran dengan jumlah data
2600 istilah kedokteran.
4. Sistem dapat mencari kata berdasarkan istilah maupun berdasarkan
arti katanya.
5. User dapat menambahkan saran kata berupa istilah kedokteran ke
dalam sistem.
6. Admin memiliki kuasa menambahkan saran yang diajukan oleh user
ke dalam sistem atau menghapusnya.
7. Dalam sistem terdapat Admin yang dapat menambahkan, mengedit,
dan menghapus kata berupa istilah kedokteran dan sistem berhasil
menyimpannya ke dalam database.
67
8. Dari hasil pengujian sistem dengan Black Box Testing, semua fungsi
dapat berjalan dengan baik.
9. Dapat diketahui dari hasil perhitungan akurasi dalam sistem pencarian
kata pada kamus kedokteran ini sebesar 96%.
B. Saran
Berdasarkan penelitian yang sudah dilakukan, terdapat beberapa saran
pengembangan sistem untuk penelitian selanjutnya:
1. Penambahan fitur word suggestion pada sistem.
2. Melengkapi data istilah-istilah dalam bidang kedokteran pada
database.
68
DAFTAR PUSTAKA
Andre. 2014. Pengertian PHP. www.duniailkom.com. Diakses pada 13 Oktober
2017.
Argakusumah, K. dan Hansun, S. 2014. Implementasi Algoritma Boyer-Moore
pada Aplikasi Kamus Kedokteran Berbasis Android. ULTIMATICS, Vol.
VI, No. 2.
Chaer, A. 2007. Leksikologi dan Leksikografi Bahasa Indonesia. Jakarta: Rineka
Cipta.
Charras, C. dan Lecroq, T. 2004. Handbook of Exact String Matching Algorithms.
College Publications: England.
Hutahean, J. 2014. Konsep Sistem Informasi. Konsep Sistem Informasi (Vol.53).
Kejora, F, Astuti, Ely, dan Rozi, I. 2011. Kamus Penyakit Hewan Peliharaan
dengan Metode Boyer-Moore Berbasis Android. Politeknik Negeri Malang.
Kumara, G. 2008. Visualisasi Beberapa Algoritma Pencocokan String dengan
Java. Jurnal Ilmiah Institut Teknologi Bandung.
Merpaung, I. 2013. Implementasi Algoritma String Matching Pada Kamus
Kedokteran Berbasis Android. Pelita Informatika Budi Darma, Volume : V,
Nomor: 3.
Munir, R. 2007. Strategi Algoritma . Teknik Informatika: Bandung.
Pendit, PL. 2008. Perpustakaan digital dari A sampai Z, Jakarta: Cita Karyakarsa
Mandiri
Pradhana, F. 2012. Penerapan String Matching pada Fitur Auto Correct dan Fitur
Auto Text di Smart Phones. Bandung. Institut Teknologi Bandung.
Pressman, R. 2011. Sof w e Enginee ing: P i ione ’ pp o h, Fif h Ed.
New York: McGraw-Hill Book Company.
69
Robert G Murdick. 2003. Analisis dan Desain Sistem Informasi. Yogyakarta:
Andi.
Saputra, A. 2013. Membangun Aplikasi Toko Online dengan PHP dan SQL
Server. Jakarta: PT Elex Media Komputindo.
Sarno. 2012. Semantic Search Pencarian Berdasarkan Konten. Yogyakarta. Andi
offset.
Soleh. 2011. Implementasi Algoritma KMP dan Boyer-Moore dalam Aplikasi
Search Engine Sederhana. Dimuat dalam makalah Strategi Algoritma.
Sutarman. (2009). Pengantar Teknologi Informasi. Jakarta: Bumi Aksara
Utami, E. (2005). 10 Langkah Belajar Menggunakan Logika dan Algoritma,
Menggunakan Bahasa C dan C++ di GNU/LINUX. Yogyakarta: Andi.