• Tidak ada hasil yang ditemukan

Mita Fazira. Prodi Teknik Informatika STMIK Budi Darma, Medan, Indonesia Jl. Sisingamangaraja No. 338, Medan, Indonesia. Abstrak

N/A
N/A
Protected

Academic year: 2021

Membagikan "Mita Fazira. Prodi Teknik Informatika STMIK Budi Darma, Medan, Indonesia Jl. Sisingamangaraja No. 338, Medan, Indonesia. Abstrak"

Copied!
5
0
0

Teks penuh

(1)

ISSN 2339-210X

PERBANDINGAN ALGORITMA KNUTH-MORRIS-PRATT DAN BOYER

MOORE DENGAN METODE PERBANDINGAN EKSPONENSIAL PADA

APLIKASI KAMUS BAHASA INDONESIA – JERMAN BERBASIS ANDROID

Mita Fazira

Prodi Teknik Informatika STMIK Budi Darma, Medan, Indonesia Jl. Sisingamangaraja No. 338, Medan, Indonesia

Abstrak

Algoritma pencocokan string pencarian kata pada Kamus Bahasa Asing dengan menggunakan Algoritma pencocokan kata. Penelitian ini untuk mengetahui Algoritma yang lebih baik diantara Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore untuk proses pencocokan. Pencocokan kata merupakan bagian penting dari sebuah proses pencarian kata dalam sebuah dokumen. Algoritma pencocokan kata yang digunakan dalam penelitian ini adalah Algoritma Knuth Morris Pratt dan Boyer Moore. Algoritma Knuth Morris Pratt melakukan perbandingan teks dan pola dimulai dari kiri ke kanan sedangkan Algoritma Boyer Moore melakukan perbandingan teks dan pola dimulai dari kanan ke kiri, tetapi pergeseran window tetap dari kiri ke kanan. Hasil dari penelitian ini menunjukkan bahwa Algoritma KnuthMorris-Pratt lebih cepat dibandingkan Algoritma Boyer-Moore untuk proses pencarian kata. Untuk mendapatkan hasil yang terbaik dalam perbandingan dari kedua algortima pada penelitian ini dilakukan untuk mengetahui algoritma yang mana proses pencarian dan cara kerjanya lebih cepat dengan memanfaatkan metode perbandingan eksponensial (MPE) sebagai metode pengambilan keputusan dalam menentukan hasil perbandingannya.

Kata Kunci : String Matching, Algoritma Knuth-Morris-Pratt, Algoritma Boyer-Moore, Metode Perbandingan Eksponensial, Kamus,

Android.

I. PENDAHULUAN

Kehidupan manusia pada masa ini tidak terlepas dari teknologi. Di zaman smartphone menjadi kebutuhan bagi setiap orang. Namun seiring dengan perkembangan waktu, smartphone dirancang dengan menggunakan teknologi touch screen guna memudahkan penggunaanya. Sistem operasi yang mendominasi pada

smartphone pada zaman ini adalah Android. Aplikasi

kamus didalam Smartphone tidak mencari kata secara manual, tetapi adanya fasilitas pencarian pada aplikasi kamus tersebut mempermudah user mendapatkan kata yang ingin dicarinya. Dengan memanfaatkan salah satu dari Algoritma string matching seperti Algoritma Knuth

Morris Pratt dan Boyer Moore, maka mempermudah dan

mempercepat pencarian kata dalam kamus.

Algoritma Knuth-Morris-Pratt dikembangkan oleh D.E. Knuth, bersama-sama dengan J.H. Morris dan V.R. Pratt [1]. Dengan algoritma Knuth-MorrisPratt waktu pencarian dalam pencocokan pattern dan teks dapat berkurang dikarenakan algoritma ini melakukan sejumlah pergeseran lebih jauh sesuai dengan informasi ketidakcocokan string antara teks dan pattern. Algoritma Knuth-Morris-Pratt melakukan pencarian

string dari arah kiri ke kanan pada teks. Algortima

tersebut dikembangkan oleh Bob Boyer dan J.Stroher

Moorne pada tahun 1977. Ide dibalik algoritma ini

adalah bahwa dengan memulai pencocokan karakter dari kanan, dan bukan kiri, maka akan lebih banyak informasi yang didapat.

Dalam perancangannya aplikasi kamus Indonesia-Jerman membutuhkan algoritma pencocokan string (String Matching), yaitu algoritma yang dapat mencocokkan suatu kata dengan kata yang lain. Algoritma Knuth-MorrisPratt dan Algoritma

Boyer-Moore merupakan bagian dari algoritma String Matching

yang memiliki cara kerja berbeda, sehingga jika diterapkan dalam pencarian aplikasi kamus Indonesia-Jerman akan membuat kecepatan dalam pencariannya

berbeda, mengakibatkan kecepatan pencarian informasi juga menjadi berbeda. Untuk dapat menganalisa perbandingan kedua algortima tersebut dalam pencarian kamus Indonesia-Jerman.

II. TEORITIS

A. Algoritma Knuth-Morris-Pratt

Algoritma pencocokan string (pattern) yang mempunyai kinerja bagus adalah Knuth Morris-Pratt (KMP) dan Algoritma Boyer-Moore. Kedua algoritma ini popular digunakan pada editor teks (menu find), search engine, analisis citra,dan sebagainya. Search engine atau mesin pencari adalah program komputer yang dirancang untuk membantu seseorang menemukan file-file yang disimpan dalam komputer, misalnya dalam sebuah server umum di

web atau dalam komputer sendiri. Mesin pencari

memungkinkan kita untuk meminta content media dengan kriteria yang spesifik (biasanya yang berisi kata atau frasa yang kita tentukan) dan memperoleh daftar file yang memenuhi kriteria tersebut. Mesin pencari biasanya menggunakan 3 indeks yang sudah dibuat sebelumnya dan dimutakhirkan secara teratur untuk mencari file setelah pengguna memasukkan kriteria pencarian.

Algoritma Knuth Morris Pratt (KMP)

dikembangkan oleh D. E. Knuth, bersama dengan J. H. Morris dan V. R. Pratt. Untuk pencarian string dengan menggunakan algoritma Knuth Morris Pratt, setiap kali ditemukan ketidakcocokan pattern dengan teks, maka pattern akan digeser satu karakter ke kanan. Sedangkan pada algoritma KMP, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran.

Menurut Sara Basee dalam bukunya yang berjudul “Computer Algorithm Third Edition`: Solution

to Selected Exercise”, penjelan singkat mengenai

algoritma Morris-Pratt yaitu Algoritma

Knuth-Morris-Pratt dengan cara menghitung fungsi pinggiran

(2)

ISSN 2339-210X perbandingan antara pola dan elemen pertama dari

kalimat, jika tidak sesuai, maka perbandingan tidak dilakukan pada elemen kedua, namun tergantung dari nilai yang akan dikeluarkan oleh fungsi pinggiran tersebut.

Secara sistematis, langkah-langkah yang dilakukan algoritma Knuth-Morris-Pratt pada saat mencocokan

string [5] :

1. Masukan Query kata yang akan dicari.

Dengan pemisahan P=Pattern atau pola susunan kata yang dijadikan sebagai contoh atau pola teks yang akan dicari

T=Teks atau judul dokumen

2. Algoritma Knuth-Morris-Pratt mulai mencocokan

pattern atau pola susunan kata yang dijadikan sebagai

contoh pada awal teks.

3. Dari kiri kekanan, algoritma ini akan mencocokan karakter per karakter pattern atau pola susunan kata yang dijadikan sebagai contoh dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:

a. Karakter di pattern atau pola susunan kata yang dijadikan sebagai contoh dan diteks yang dibandingkan tidak cocok(mismatch).

b. Semua karakter di pattern atau pola susunan kata yang dijadikan sebagai contoh cocok. Kemudian algoritma akan memberitahukan penemuan diposisi ini.

4. Algoritma kemudian menggeser pattern atau pola susunan kata yang dijadikan sebagai contoh berdasarkan table next, lalu mengulangi langkah no. 2 sampai pattern atau pola susunan kata yang dijadikan sebagai contoh berada diujung teks.

B. Algoritma Boyer Moore

Menurut Edward Rompah pada artikelnya yang membahas tentang algoritma Boyer-Moore, algoritma

Boyer-Moore dipublikasikan oleh Robert S. Boyer, dan

J. Strother Moore pada tahun1977. Ide utama dari algoritma ini adalah dengan melakukan pencocokan dari paling kanan string yang dicari. Dengan menggunakan algoritma ini, secara rata-rata prosespencarian akan lebih cepat dibandingkan dengan proses pencarian lainnya. Ide dibalik algoritma ini adalah bahwa dengan memulai pencocokan karakter dari kanan, dan bukan dari kiri, maka akan lebih banyak informasi yang didapat [6]. Algortima Boyer Moore mempunyai 4 konsep dasar dalam melakukan pencarin dalam string, yaitu : 1. Preprocessing

2. Right-To-Left-Scan

3. Bad-Characte-Rule

4. Good-Suffix-Rule

Preprocessing dari algoritma Boyer Moore

terdiri dari bad-character preprocessing dan good-suffix

preprocessing. Prinsip dasar yang pertama dari algortima Boyer Moore adalah melakukan perbandingan antara pattern yang dicari dalam teks. Perbandingan pattern

dalam teks dilakukan dari arah kanan ke kiri. Perbandingan dimulai dengan membandingkan antara karakter paling kanan dalam pattern dengan teks. Jika terjadi kecocokan, maka perbandingan akan dilanjutkan dengan karakter yang disebelah kiri dari yang

dibandingakan sampai kekarakter pertam dalam pattern. Jika terjadi ketidakcocokan maka akan dilakukan pergeseran yang ditentukan oleh 2 fungsi pergeseran yaitu bad character shift dan good suffix shift. Aturan dari bad character shift dibutuhkan untuk menghindari pengulangan perbandingan yang gagal dari suatu karakter dalam teks dengan pattern. Aturan dari good

suffix shift dibutuhkan untuk menangani kasus yang

didalamnya terdapat pengulangan karakter pada pattern . Menurut Christabella Chiquita B, 2012; langkah algortima Boyer Moore :

1. Buat table pergeseran yang dicari (P) dengan pendekatan Match Heuristic (MH) dan Occuerence

Heuristic (OH), untuk menentukan jumlah

pergeseran yang akan dilakukan jika mendapat karakter tidak cocok pada proses pencocokan dengan string pada teks(S).

2. Jika dalam proses perbandingan terjadi ketidakcocokan antara pasangan karakter pada P dan karakter pada S, pergeseran dilakukan dengan memilih salah satu nilai pergeseran dari dua tabel analisa pattern yang memiliki nilai pergeseran paling besar.

3. Dua kemungkinan penyelesaikan dalam melakukan pergerseran P, jika sebelumnya belum ada karakter yang cocok adalah dengan melihat nilai pergeseran hanya pada tabel Occuerence Heuristic : jika karakter tidak cocok atau tidak ada pada P maka pergeseran adalah sebanyak jumlah karakter pada P. Dan jika karakter yang tidak cocok ada pada P, maka banyaknya pergeseran tergantung dari nilai pada tabel.

4. Jika karakter pada teks yang sedang dibandingkan cocok dengan karakter pada P, maka posisi karakter pada P dan S diturunkan sebanyak 1 posisi, kemudian lanjutkan dengan pencocokan pada posisi tersebut dan seterunya. Jika kemudian terjadi ketidakcocokan pada P dan S, maka pilih nilai pergeseran terbesar dari dua tabel analisa pattern yaitu nilai dari tabel Match Heuristik dan nilai tabel

Occurence Heuristik dikurangi dengan jumlah

karakter yang telah cocok.

5. Jika semua karakter telah cocok, artinya P telah dtemukan dalam S, selanjutnya geser Pattern sebesar 1 karakter dan lanjutkan sampai akhir

patterm S.

Secara sistematis, langkah-langkah yang dilakuakn algoritma Boyer-Moore pada saat mencocokan

string adalah:

1. Algoritma Boyer-Moore mulai mencocokan pattern pada awal teks.

2. Dari kanan ke kiri, algoritma ini akan mencocokan karakter per karakter pattern dengan karakter pada teks yang bersesuain, sampai salah satu kondisi berikut dipenuhi:

a. Di pattern dan teks yang dibandingkan tidak cocok (mismatch).

b. Semua karakter di pattern cocok. Algoritma akan memberitahuan penemuan di posisi ini. c. Algoritma kemudian menggeser pattern dengan

memaksimalkan nilai penggeseran good-suffix dan penggeseran bad-character, lalu

(3)

ISSN 2339-210X mengulangi langkah 2 sampai pattern berada di

ujung teks [7].

III. ANALISA

A. Analisa Logika Algoritma Knutth Morrish-Pratt

Analisa algoritma Knuth-Morris-Pratt yang digunakan untuk melakukan pencocokan string yang telah dicari. Setelah menentukan algoritma yang dipakai untuk memecahkan masalah maka langkah selanjutnya, analisis running time algoritma knuth-Morris-Prattt secara keseluruhan terlihat jelas bahwa interval time pola pertama lebih lama, hal ini disebabkan karena pada saat running time awal akan melakukan proses pengecekan dan penyimpanan informasi semua posisi karakter pada rangkaian sebelum digunakan oleh pola lain. Analisis dilakukan tanpa memperhitungkan posisi urutan masing-masing pola.

Contoh penggunaan algortima Knuth Morris Pratt Dalam melakukan pencarian dalam teks :

Teks (S) : KAMUS INDONESIA JERMAN Pattern (P) : NESIA

Tabel 1. Percobaan 1 Knuth-Morris-Pratt

K A M U S I N D O N E S I A J E R M A N N E S I A 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2

Keterangan : Karakter N dengan indeks ke-1 pertama pada pattern tidak cocok dengan karakter K pada teks, maka pergeseran dimajukan 1 langkah ke kanan menuju indeks berikutnya.

Tabel 2. Percobaan 2 Knuth-Morris-Pratt

K A M U S I N D O N E S I A J E R M A N N E S I A 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 Keterangan : Karakter N dengan indeks ke-2 pada pattern tidak cocok dengan karakter A pada teks, maka pergeseran dimajukan 1 langkah ke kanan menuju indeks berikutnya.

Tabel 3. Percobaan 10 Knuth-Morris-Pratt

K A M U S I N D O N E S I A J E R M A N N E S I A 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 Keterangan : Karakter N dengan indeks ke-10 pada

pattern tidak cocok dengan O pada teks, namun pattern

yang dicari belum ditemukan, maka pergeseran dimajukan 1 langkah ke kanan menuju indeks berikutnya.

Tabel 4. Percobaan 11 Knuth-Morris-Pratt

K A M U S I N D O N E S I A J E R M A N N E S I A 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2

Keterangan : Karakter N dengan indeks ke-11 sampai dengan karakter A pada pattern dengan indeks ke-15 cocok dengan karakter pada teks, maka pattern telah ditemukan dan proses pencarian pattern berhenti dan tidak ada lagi pergeseran ke indeks berikutnya.

B. Analisa Logika Algoritma Boyer-Moore

Algoritma Boyer-Moore adalah algoritma string

matching yang paling efisien dibandingkan algoritma string matching lainnya. Sebelum melakukan pencarian string, algoritma melakukan proses terlebih dahulu pada pattern, bukan pada string pada teks tempat pencarian.

Algoritma ini melakukan pencocokan karakter yang

dimulai dari kanan ke kiri. Karena sifatnya yang sangat efisien, Boyer-Moore memiliki banyak variasi penyederhanaannya.

Contoh penggunaan algortima Boyer Moore Dalam melakukan pencarian dalam teks :

Teks (S) : KAMUS INDONESIA JERMAN Pattern (P) : NESIA

Tahapan pencarian pattern (P) dalam Teks (S)

Tabel 5. Analisa Penentuan Nilai OH dan MH

Pattern N E S I A

Occurrence Heuristic (OH) 4 3 2 1 0

Math Heuristic (MH) 5 5 5 5 1

Tabel 6. Percobaan 1 Boyer Moore

K A M U S I N D O N E S I A J E R M A N N E S I A 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2

Keterangan : Pada pergeseran Ke-1 karakter “A” pada

pattern tidak cocok dengan karakter “S” pada teks, maka

pergeseran selanjutnya berdasarkan nilai dari tabel OH. Pada tabel OH karakter S terdapat pada tabel, sehingga pergeseran selajutnya adalah sebanyak jumlah karakter

“S” pada tabel OH pada yaitu 2.

Tabel 7. Percobaan 2 Boyer-Moore

K A M U S I N D O N E S I A J E R M A N N E S I A 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2

Keterangan : Pada pergeseran Ke-2 karakter “A” pada

pattern tidak cocok dengan karakter “O” pada teks, maka

pergeseran selanjutnya berdasarkan nilai dari tabel OH. Pada tabel OH karakter O tidak terdapat pada tabel, sehingga pergeseran selajutnya adalah sebanyak jumlah karakter “A” pada tabel OH pada yaitu 5.

Tabel 8. Percobaan 3 Boyer-Moore

K A M U S I N D O N E S I A J E R M A N N E S I A 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2

Keterangan : Pada pergeseran Ke-3 karakter “N” pada

pattern cocok dengan karakter “N” pada teks, maka

pergeseran selanjutnya dimundurkan satu langkah. Pada pergeseran selanjutnya dilakukan sampai pada pergeseran ke-11 karakter “N” pada pattern dengan karakter “N” pada text cocok.

IV. Implementasi

Kamus arti Indonesia-jerman yang telah dirancang merupakan aplikasi berbasis Android, dimana kamus arti Indonesia-jerman tersebut dapat dijalankan pada

hanndphone berbasis android. Aplikasi kamus Indonesia-jerman mengunakan bahasa pemrograman

Java, dimana untuk mengetikan listing programnya

penulis menggunakan editor eclipse. Aplikasi kamus Indonesia-jerman

menggunakan algoritma Knuth-Morris-Pratt dan

algoritma Boyer-Moore untuk proses pencarian arti kata,

dimana algoritma Knuth-Morris-Pratt dan algoritma

Boyer-Moore berguna bagi para pemakai yang

menginginkan cara cepat untuk mencari kata dalam kamus istilah yang ada dalam handphone dengan sistem operasi android.

(4)

ISSN 2339-210X

Gambar 1. Tampilan menu utama

2. Form Pencarian Knuth-Morris-Pratt

Gambar 2. Tampilan Pencarian Pada KMP

Gambar 3. Tampilan Time Pencarian Pada KMP

3. Form Pencarian Boyer-Moore (BM)

Gambar 4. Tampilan Pencarian Pada Boyer-Moore (BM)

Gambar 5. Tampilan Time Pencarian Pada BM

V. KESIMPULAN

Berdasarkan hasil penelitian tentang analisa perbandingan Algoritma Knuth Morris Pratt (KMP)dan AlgoritmaBoyer-Moore(BM) dengan menggunakan Metode Perbandingan Eksponensial (MPE) maka penulis menarik beberapa kesimpulan sebagai berikut :

1. Untuk dapat menganalisa Algoritma Knuth

Morris Pratt (KMP) dan Algoritma

BoyerMoore(BM), nilai perbandingannya dihitung

dengan menggunakan Metode Perbandingan Eksponensial (MPE). Dalam perhitungannya yang menjadi kriteria perbandingan dari MPE adalah jumlah percobaan sampai terjadi kecocokan pattern pada teks, setiap nilai yang didapat dari setiap kriteria kemudian di pangkatkan dengan bobot dari setiap kriteria sehingga mendapat nilai tetap yang menentukan algoritma mana yang menjadi algoritma tercepat.

(5)

ISSN 2339-210X 2. Dengan adanya total nilai dari Metode

Perbandingan Eksponesal (MPE) yang dilakukan pada penelitian ini maka terbukti bahwa Algoritma Boyer Moore merupakan Algoritma yang tercepat dalam melakukan perencarian.

3. Cara kerja pencarian Algoritma Knuth-MorrisPratt lebih detail cara kerjanya dibandingkan Algoritma

Boyer-Moore.

REFERENCES

[1] Rinaldi Munir, Algoritma dan Pemograman Dalam Bahasa Pascal

dan C, Informatika, Ed. Bandung, 2007.

[2] Andi Juansyah, "pembangunan aplikasi child tracker berbasis

assisted-global positioning system(A-GPS) dengan platform android," jurnal ilmiah komputer informatika, p. 2, 2015.

[3] Parno and Nandang Rahmansyah Dharmayant, "Aplikasi mobile

kamus istilah psikologi berbasis android 2.2," Proceeding PESAT, Oktober 2011.

[4] Pemrograman Aplikasi Mobile Smartphone dan Tablet PC

Berbasis Android Nazruddin Safaat H, Pemrograman Aplikasi

Mobile Smartphone dan Tablet PC Berbasis Android. Bandung, Indonesia: Informatika, 2015.

Gambar

Gambar 1. Tampilan menu utama

Referensi

Dokumen terkait

Menurut Radhakrishnan (1957) dan Raju (1970) dinyatakan bahwa corak pemikiran filsafati India mempunyai kecenderungan (1) mempunyai motif yang bersifat spiritual dan ada

Tes untuk ranah afektif diberikan kelas kontrol dengan pembelajaran konvensional pada materi tentang 9 Asma’ul Husna mencapai nilai tertinggi 88 dan nilai

At the glassy region, compatibilized blends disclosed lower chains mobility as confirmed by higher apparent activation energy ( E a ) whereas a higher molecular

Tujuan penelitian ini adalah (1) menganalisis bentuk saluran pemasaran dodol rumput laut pada UMKM Citarasaku di Kecamatan Marawola Kabupaten Sigi, (2) menganalisis margin

Bapak Subhan juga menjelaskan dalam wawancaranya bahwa, “Sosialisasi dan pendampingan ini didampingi dari pihak kampus UIN selama empat kali, para tokoh masyarakat yang ikut

Sila ang dalawang mukha ng mga Pilipino, hindi tiyak ang paroroonan ngunit tulad ng ilog ng Canal de la Reina sila’y patuloy na nakikipagsapalaran at nakikibaka sa kabila ng mga

bahwa terdapat pengaruh yang positif dan signifikan secara bersama-sama antara penggunaan media cetak dan media audio visual terhadap prestasi belajar Al- Qur’an

English (2004: 4 — 5) menyatakan ada e mpat indikator yang digunakan untuk mengukur penalaran analogi, yaitu (i) encoding : siswa dapat mengidentifikasi setiap bentuk