• Tidak ada hasil yang ditemukan

PERBANDINGAN DARI ALGORITMA MORRIS-PRATT DAN HORSPOOL ALGORITMA PADA TERM DARI TELEKOMUNIKASI APLIKASI KAMUS BERBASIS ANDROID

N/A
N/A
Protected

Academic year: 2022

Membagikan "PERBANDINGAN DARI ALGORITMA MORRIS-PRATT DAN HORSPOOL ALGORITMA PADA TERM DARI TELEKOMUNIKASI APLIKASI KAMUS BERBASIS ANDROID"

Copied!
9
0
0

Teks penuh

(1)

76 PERBANDINGAN DARI ALGORITMA MORRIS-PRATT DAN HORSPOOL

ALGORITMA PADA TERM DARI TELEKOMUNIKASI APLIKASI KAMUS BERBASIS ANDROID

Arya Kharismahendra1, Arliliwati2

Program Studi Manajemen Informatika, AMIK Multicom, Pematangsiantar Corresponding Author : Arya Kharismahendra

Abstract: Indonesia has a good progress on technology today. Along with the development of technology in Indonesia, there are many emergence of the term in telecommunication. In order to understand the terms in the telecommunication, the dictionary may serve as a reference. However, the lack of interest in reading books in society makes the dictionary less desirable because it is not practical. Therefore, in advanced times it is necessary to create a dictionary application based on android or web so that people more easily understand the terms telecommunication terms practically by using gadgets. In creating a dictionary application, string matching can be implemented for the search process and of course, each string matching algorithm has its own effectiveness and needs to be done comparison algorithm to find efficient algorithm.

String matching has several algorithms, some algorithms are Morris-Pratt and Horspool algorithms that will be implemented in the dictionary application. Morris - Pratt algorithm is an algorithm consisting of two phases preprocessing phase by peripheral function to determine the largest number of step shifting pattern by using comparison before string search. Character comparison is done by matching the pattern into the text searched from left to right. Horspool algorithm is an algorithm that performs and calculates the value of bad-character shift by looking at the rightmost character in the window. The result of this research is the Morris-Pratt algorithm is more efficient than Horspool algorithm and the application can run well. In this study it can be seen that during the search process, the total running time for the Morris - Pratt algorithm is 46.6 ms and the Horspool algorithm is 50.5 ms.

Keywords : String Matching, Android, Morris - Pratt, Horspool.

Abstrak: Indonesia mengalami kemajuan teknologi yang cukup baik saat ini. Seiring perkembangan teknologi di Indonesia ternyata banyak munculnya istilah –istilah dalam telekomunikasi. Untuk dapat memahami istilah – istilah dalam telekomunikasi tersebut, kamus dapat dijadikan sebagai acuan. Namun, kurangnya minat membaca buku dalam masyarakat membuat kamus kurang diminati karena tidak praktis.

Oleh karena itu, di zaman canggih ini perlu untuk membuat aplikasi kamus berbasis android ataupun web agar masyarakat semakin mudah memahami istilah – istilah telekomunikasi secara praktis dengan menggunakan gadget. Dalam membuat aplikasi kamus, string matching dapat diimplementasikan untuk proses pencarian katanya dan tentunya setiap algoritma string matching memiliki keefektifan masing-masing dan perlu dilakukan perbandingan algoritma untuk mengetahui algoritma yang efisien. String matching memiliki beberapa algoritma, beberapa algoritmanya adalah algoritma Morris- Pratt dan Horspool yang akan diimplementasikan pada aplikasi kamus tersebut. Algoritma Morris - Pratt merupakan algoritma yang terdiri dari dua fase yaitu fase preprocessing yang dilakukan fungsi pinggiran untuk menentukan jumlah langkah pergeseran pattern terbesar dengan menggunakan perbandingan sebelum pencarian string. Perbandingan karakter dilakukan dengan mencocokkan pattern ke dalam teks yang dicari dari kiri ke kanan. Algoritma Horspool merupakan algoritma yang melakukan dan menghitung nilai pergeseran bad-character dengan melihat karakter paling kanan pada window. Hasil dari penelitian ini adalah algoritma Morris-Pratt lebih efisien dari algoritma Horspool dan aplikasi dapat berjalan dengan baik. Pada penelitian ini dapat diketahui bahwa saat proses pencarian, total rata-rata running time untuk algoritma Morris - Pratt adalah 46,6 ms dan algoritma Horspool adalah 50,5 ms.

Kata Kunci : String Matching, Android, Morris - Pratt, Horspool.

(2)

77 A. PENDAHULUAN

Teknologi telekomunikasi memiliki peranan penting bagi pembangunan Nasional, karena telekomunikasi dapat menyalurkan dan menyediakan informasi secara cepat bagi manusia sehingga mampu memberikan prospek aplikasi yang luas bagi kehidupan masyarakat di masa depan. Terbukti dari sekian banyaknya perkembangan teknologi, yang paling berpengaruh adalah perkembangan bidang telekomunikasi. Bidang ini telah menguasai hampir semua segi kehidupan, seperti penyaluran informasi dalam bentuk suara (telepon), tulisan (telegrap), gambar (faksimil), gambar dan suara (televisi), data (komputer), dsb.

Semakin lajunya pertumbuhan bidang telekomunikasi, membuat munculnya istilah-istilah tentang telekomunikasi. Hampir setiap hari ada saja istilah baru yang dimasyarakatkan, baik melalui bacaan (surat kabar, majalah, buku-buku) maupun melalui ucapan (radio dan televisi), serta metode lainnya. Istilah - istilah telekomunikasi yang banyak muncul saat ini terkadang cukup membingungkan bagi yang berkepentingan.

Mengingat salah satu segi yang dicakup bidang telekomunikasi adalah Komputer, maka Mahasiswa/i S1 Ilmu Komputer juga memerlukan kamus istilah-istilah dalam bidang telekomunikasi untuk mempermudah proses pembelajaran.

Pada era modernisasi ini, umumnya Mahasiswa/i lebih menyukai belajar dengan menggunakan gadget daripada belajar dengan membaca buku oleh karena itu penulis berniat membuat suatu kamus yang memuat istilah – istilah telekomunikasi menggunakan algoritma Morris - Pratt dan algoritma Horspool berbasis Android. Pembuatan kamus istilah Telekomunikasi dapat diimplementasikan dengan menggunakan metode pencocokan string. String lebih sering disebut pattern, dalam sebuah dokumen teks.

Pencocokan string banyak digunakan dalam aplikasi pengolahan teks untuk pencarian kata dalam berkas teks dan disebut juga string matching atau pattern matching. String matching adalah proses pencarian semua kemunculan query yang selanjutnya disebut pattern ke dalam string yang lebih panjang (Riyanto Sarno, 2012, 11).

Dalam pencarian string, diperlukan algoritma untuk mencocokkan string yang dicari dengan semua string yang terdapat dalam dokumen teks tersebut. Algoritma pencocokan string yang akan digunakan adalah Algoritma Morris - Pratt dan Algoritma Horspool.

Algoritma Morris - Pratt merupakan algoritma yang terdiri dari dua fase yaitu fase preprocessing yang dilakukan fungsi pinggiran untuk menentukan jumlah langkah pergeseran pattern terbesar dengan menggunakan perbandingan sebelum pencarian string.

Perbandingan karakter dilakukan dengan mencocokkan pattern ke dalam teks yang dicari dari kiri ke kanan (Alapati, 2011). Algoritma Horspool merupakan turunan dari algoritma Boyer-Moore. Algoritma Horspool melakukan dan menghitung nilai pergeseran bad-character dengan melihat karakter paling kanan pada window.

Penulis akan mencoba membandingkan dua algoritma tersebut karena kedua algoritma tersebut mudah dipahami dan berhubungan dengan algoritma lainnya yang sudah banyak diteliti seperti Algoritma Boyer Moore dan Algoritma Knuth-Morris-Pratt.

Berdasarkan Penelitian Evelyn Dwi Tambun (2010), hasil penelitiannya menunjukkan bahwa pencarian string pada teks bahasa medis dengan menggunakan algoritma Boyer- Moore lebih baik dibandingkan dengan algoritma Horspool. Perbedaan penelitian penulis dengan penelitian yang lainnya adalah penulis mencari algoritma mana yang lebih efisien dengan mencocokkan string diukur berdasarkan kompleksitas (big Ө) dan waktu yang dibutuhkan untuk mencocokkan pattern (milisekon) untuk berbagai panjang pattern P[0..n-1].

(3)

78 B. METODE PENELITIAN

Penelitian ini adalah untuk melihat Perbandingan Dari Algoritma Morris-Pratt Dan Horspool Algoritma Pada Term Dari Telekomunikasi Aplikasi Kamus Berbasis Android. Pada Penelitian ini menerapkan beberapa metode penelitian sebagai berikut:

Studi Literatur, Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan untuk penulisan skripsi ini. Referensi yang digunakan dapat berupa buku, jurnal, artikel, maupun situs internet yang berkaitan dengan algoritma exact string matching Horspool, Morris - Pratt, Boyer Moore, dan Knuth- Morris -Pratt. Pengumpulan dan Analisis Data, Pada tahap ini dilakukan analisis dan pengumpulan data yang berhubungan dengan penelitian ini, seperti fungsi algoritma Morris - Pratt dan algoritma Horspool dapat bekerja dalam sebuah aplikasi pencarian string agar penulis mengetahui karakter (string) yang akan dicari.

Perancangan Sistem, Merancang sistem sesuai dengan rencana yang telah ditentukan, yaitu meliputi perancangan desain awal seperti button maupun font yang lebih minimalis. Proses perancangan ini berdasarkan pada batasan masalah dari penelitian ini.

Implementasi Sistem, Pada tahap ini pembuatan sistem telah selesai dilaksanakan dan menambahkan data hasil algoritma Morris - Pratt dan algoritma Horspool ke dalam sistem. Pengujian Sistem, Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah dikembangkan.

C. HASIL DAN PEMBAHASAN Implementasi Sistem

Tahapan implementasi sistem adalah next step dari tahapan analisis dan perancangan sistem yang telah dibahas pada bab tiga. Pembahasan dalam bab tiga akan diimplementasikan ke dalam bahasa pemrograman Java. Proses interface system dibangun dengan bahasa Java dengan Android Studio.

Tampilan Antarmuka Utama

Halaman utama adalah tampilan awal saat aplikasi pertama kali dijalankan dan terdapat dua kondisi yaitu Morris – Pratt dan Horspool. Pada halaman utama, pilihan pencarian string pertama langsung terhubung dengan algoritma Morris- Pratt dan untuk menggunakan algoritma Horspool dapat mengklik Horspool. kondisi ketika pengguna memilih untuk mencari kata istilah dengan algoritma Morris- Pratt. Pada gambar tersebut, kata bercetak tebal merupakan kata istilah telekomunikasi dan kata yang tidak dicetak tebal merupakan pengertian dari kata istilah.

Gambar 4.1 Tab Morris - Pratt

(4)

79 Gambar 4.1 adalah kondisi ketika user memilih untuk mencari kata dengan algoritma pencarian Morris - Pratt.

Gambar 4.2 Tab Horspool

Gambar 4.2 adalah kondisi ketika user memilih untuk mencari kata dengan algoritma pencarian Horspool.

4.1.2. Tampilan Antarmuka Hasil Pencarian

Pada tampilan hasil pencarian, sistem akan menampilkan hasil dari kata yang dicari oleh pengguna. Setiap kata di dalam database yang mengandung kata dan dimasukkan oleh pengguna akan ditampilkan di dalam listview. Seperti gambar 4.3, ketika pengguna memasukkan kata jaringan, maka kata jaringan junction dan jaringan lokal, juga ditampilkan dikarenakan kata – kata tersebut mengandung kata jaringan. Tidak hanya defenisi kata yang ditemukan namun Running Time dari algoritma pencarian juga.

Gambar 4.3 Antarmuka Hasil Pencarian Ditemukan

Ketika kata yang dicari oleh pengguna tidak ditemukan di dalam database, maka sistem akan mengeluarkan notifikasi bahwa kata tidak ditemukan dan beserta running timenya. Tampilan aplikasi apabila hasil pencarian tidak ditemukan dapat dilihat pada gambar 4.4 berikut ini.

Ketika kata yang dicari oleh pengguna tidak ditemukan di dalam database, maka sistem akan mengeluarkan notifikasi bahwa kata tidak ditemukan.

(5)

80 – langkah dari proses penggunaan aplikasi.

Gambar 4.6 Menu Help 4.1.5 Tampilan Antarmuka Sumber (Source)

Pada aplikasi ini terdapat menu source yang menjelaskan bahwa kosa kata yang ada di database bersumber pada buku Kamus Istilah Telekomunikasi Drs. Gouzali Saydam, BC.TT Penerbit Pustaka Reka Cipta.

Gambar 4.7 Menu Sumber (Source) 4.2 Pengujian Sistem

Pengujian sistem bertujuan untuk mengetahui bagaimana sistem berjalan dan kinerja yang dihasilkan pada pencarian kata istilah Telekomunikasi yang terdapat dalam database dengan algoritma pencarian Morris – Pratt dan Horspool.

Dalam pengujian sistem ini, yang bertindak sebagai masukan adalah string.

String yang cocok di dalam database akan dikeluarkan sebagai output sistem ketika algoritma berhasil melakukan pencocokan kata.

4.2.1. Pengujian pencarian kata dengan Algoritma Morris - Pratt

Pengujian sistem pertama kali adalah melakukan pencarian kata dengan algoritma Morris - Pratt. Ketika pengguna memilih jenis terjemahan dan memasukkan

(6)

81 pattern kata yang ingin dicari, maka seluruh kata di dalam database kamus yang terkait dengan pattern masukan akan keluar sebagai output.

Berikut adalah contoh perhitungan tabel pergeseran mpNext untuk pattern HASIBUAN pada teks LAURA HASIBUAN.

Tabel 4.1 Nilai mpNext[i] untuk pattern HASIBUAN

I 0 1 2 3 4 5 6 7 8

x[i] H A S I B U A N *

mpNext[i] -1 0 0 0 0 0 0 0 1

Keterangan :

i : indeks untuk setiap karakter pada pattern x : pattern

mpNext[i] : nilai mpNext[i] untuk setiap karakter pada pattern

Pengujian sistem selanjutnya adalah melakukan pencarian kata dengan algoritma Horspool. Ketika pengguna memilih jenis algoritma dan memasukkan pattern kata yang ingin dicari, maka seluruh kata di dalam database kamus yang terkait dengan pattern masukan akan keluar sebagai output. Contoh proses pada pattern ditunjukkan pada Tabel 4.3 dan kecocokan output beserta running time dapat dilihat pada tabel 4.8 berikut ini. Sebagai contoh, dapat dilihat pada Tabel 4.3 berikut.

Tabel 4.3 Bad-match pada praproses

Karakter Index Value

H 0 7

A 1 6

S 2 5

I 3 4

B 4 3

U 5 2

N 7 0

* - 8

value = 8 – 0 – 1 = 7 value = 8 – 1 – 1 = 6 value = 8 – 2 – 1 = 5 value = 8 – 3 – 1 = 4 value = 8 – 4 – 1 = 3 value = 8 – 5 – 1 = 2 value = 8 – 7 – 1 = 0

* : karakter yang tidak dikenali

Untuk menggambarkan rincian algoritma, akan diberikan contoh kasus dimana pattern P = “HASIBUAN” dan teks T = “LAURA HASIBUAN”. Inisialisasi awal dan pembuatan bad-match terlihat pada Tabel 4.4 dan Tabel 4.5 berikut.

Tabel 4.4 Inisialisasi awal bad-match

m 1 2 3 4 5 6 7 8 9 10 11 12 13 14

T L A U R A H A S I B U A N

P H A S I B U A N

(7)

82 4.5 Pembuatan bad- match

P H A S I B U N

I 0 1 2 3 4 5 7

V 7 6 5 4 3 2 0

Seperti yang terlihat pada Tabel 4.4 di atas, inisialisasi awal bad-match dilakukan. Setiap teks dan pattern masing-masing diberi nilai m dan i, dimana m sebagai panjang pattern dan i sebagai indeks. Tabel 4.5 menunjukkan nilai pergeseran bad-match dengan menghitung nilai v seperti yang telah dilakukan pada Tabel 4.3. Pada tahap awal pencarian, dilakukan perbandingan karakter paling kanan pattern terhadap window. Apabila terjadi ketidakcocokan, akan dilakukan pergeseran ke kanan untuk melewati karakter yang tidak cocok dimana nilai pergeserannya terdapat pada tabel bad-match. Karakter paling kanan teks pada window berfungsi sebagai landasan untuk menentukan jarak geser yang akan dilakukan. Hal ini terlihat pada Tabel 4.6 berikut.

Tabel 4.6 Iterasi algoritma Horspool pertama

M 1 2 3 4 5 6 7 8 9 10 11 12 13 14

T L A U R A H A S I B U A N

P H A S I B U A N

I 0 1 2 3 4 5 6 7

Terdapat ketidakcocokan seperti yang terlihat pada Tabel 4.6. Karakter

“A” adalah karakter paling kanan teks pada window. Pada tabel bad-match, nilai geser karakter “A” adalah 6. Maka, dilakukan pergeseran ke kanan pada window sebanyak 6 kali. Hal ini terlihat pada Tabel 4.7.

Tabel 4.7 Iterasi algoritma Horspool kedua

M 1 2 3 4 5 6 7 8 9 10 11 12 13 14

T L A U R A H A S I B U A N

P H A S I B U A N

I 0 1 2 3 4 5 6 7

Pada Tabel 4.7, window telah berada pada akhir teks dan semua pattern cocok dengan teks. Seluruh pencocokan karakter menggunakan algoritma Horspool telah selesai dan berhenti pada iterasi kedua.

4.4. Kompleksitas Algoritma

Kompleksitas sebuah algoritma umumnya dapat diukur dari dua jenis kompleksitas, yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu pada sebuah algoritma berisi jumlah langkah dan ekspresi bilangan yang dibutuhkan sebagai fungsi dari ukuran permasalahan. Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan untuk eksekusi sebuah program.

Terdapat beberapa jenis notasi asimtotik yang merepresentasikan kompleksitas algoritma, salah satunya adalah notasi Big (Ө). Notasi Big- Ө digunakan untuk mengkategorikan algoritma ke dalam fungsi yang menggambarkan batas atas (upper limit) dari pertumbuhan sebuah fungsi ketika masukan dari fungsi tersebut bertambah banyak.

(8)

83 Pada penelitian ini, kompleksitas algoritma yang akan diuji adalah kompleksitas algoritma Morris - Pratt dan Algoritma Horspool dengan menggunakan notasi Big- Ө. Kompleksitas kedua algoritma tersebut akan dijelaskan pada Tabel 4.13., 4.14., 4.15 dan 4.16.,berikut.

4.4.1. Kompleksitas Algoritma Morris - Pratt

Tabel 4.13 Kompleksitas fungsi fase preprocessing algoritma Morris - Pratt

No Kode Program C # C x #

1 public static void preMp() {

2 int i = 0; C1 1 C1

3 for(int j = mpNext[0] = -1; i

< m; mpNext[i] = j) {

C2 m C2m

4 while(j > -1 && x[i] != x[j]) {

C2 1 C2

5 j = mpNext[j];

}

C3 1 C3

6 ++i; C4 1 C4

7 ++j;

}

}

C4 1 C4

D. KESIMPULAN

Berdasarkan hasil Penelitian diatas maka dapat disimpulkan sebagai berikut : 1. Pencocokan kata dengan Algoritma Morris - Pratt dan Horspool pada Aplikasi

Kamus Istilah Telekomunikasi berbasis android dapat diimplementasikan dan berjalan dengan baik.

2. Total rata-rata running time untuk algoritma Morris - Pratt adalah 46,6 ms dan algoritma Horspool adalah 50,5 ms. Pada skenario pencarian kata terpanjang, algoritma Morris - Pratt memiliki rata-rata running time selama 35.1 ms dan algoritma Horspool selama 38,2 ms dan untuk pencarian kata terpendek, algoritma Morris - Pratt memiliki running time selama 51,4 ms dan algoritma Horspool selama 62,1 ms. Hal ini membuktikan bahwa algoritma Morris - Pratt melakukan pencarian string lebih cepat dibandingkan algoritma Horspool.

3. Kompleksitas algoritma Morris-Pratt adalah Ө (m) pada preprocessing dan Ө(𝑚+𝑛) pada processing. Sedangkan kompleksitas algoritma Horspool adalah Ө(m) pada preprocessing dan Ө (n) pada processing. Hal ini membuktikan bahwa kompleksitas waktu untuk algoritma Horspool lebih besar dari algoritma Morris - Pratt sehingga mempengaruhi running time.

Daftar Pustaka

 Holla, S. & Katti, M. 2012. Android Based Mobile Application Development and its Security. International Journal of Computer Trends and Technology. 3(1): 486 - 490.

(9)

84 Exact Pattern Matching. Proceedings of 2010 International Conference on Information and Emerging Technologies (ICIET), pp. 1 -5.

 Levitin, A. dkk. 2012. Introduction to The Design and Analysis of Algorithms. Edition:

3nd. Pearson.

 Nababan, A. 2015. Implementasi Algoritma Brute Force dan Algoritma Knuth- Morris- Pratt (KMP) dalam Pencarian Word Suggestion.

 Navarro, G. dkk. 2002. Flexible Pattern Matching in Strings. Cambridge University Press.

 Praven Kumar Alapati, Vishnuvardan Mannava. 2011. An Gui Based Implementation Of Pattern Matching of Algorithms. Gitam University.

 Rochmawati, Y. & Kusumaningrum, R. 2015. Studi Perbandingan Algoritma Pencarian String dalam Metode Approximate String Matching untuk Identifikasi Kesalahan Pengetikan Teks. Jurnal. Semarang: Universitas Diponegoro

 Saydam, Gouzali. 2010. Kamus Istilah Telekomunikasi. Reka Cipta: Bandung.

 Syaroni, Mokhammad & Munir, Rinaldi. 2005. Pencocokan String Berdasarkan Kemiripan Ucapan (Phonetic String Matching) Dalam Bahasa Inggris. Prosiding Seminar Nasional Aplikasi Teknologi Informasi 2005 (SNATI 2005), pp. K-7 – K-13.

 Tambun, E.D. 2010. Perbandingan penggunaan algoritma boyer-moore dan algoritma horspool pada pencarian string dalam bahasa medis. Skripsi. Institut Teknologi Bandung.

 Whitten, J.L., Bentley, L.D. & Dittman, K.C. 2004. Metode Desain & Analisis Sistem.

Terjemahan Tim Penerjemah Andi. Andi: Yogyakarta.

Gambar

Gambar 4.1  Tab Morris - Pratt
Gambar 4.2  Tab Horspool
Gambar 4.6  Menu Help  4.1.5    Tampilan Antarmuka Sumber (Source)
Tabel 4.3 Bad-match pada praproses
+2

Referensi

Dokumen terkait

• Apabila pengajuan Substantifnya diajukan setelah berakhirnya jangka waktu pengumuman, maka Pemeriksaan Substantifnya dilakukan setelah tgl. diterimanya Permohonan

Untuk lebih jelasnya, dapat dilihat pada contoh berikut ini. Tabel 1.2. merupakan contoh penerapan penentuan  kualitas  air  menurut  metoda  STORET  yang 

Kegiatan Pemeliharaan Saluran Irigasi Pekerjaan Pemeliharaan Saluran Irigasi Mudal Desa

Sedimen merupakan suatu proses akumulasi mineral yang diakibatkan oleh adanya pengendapan dari material maupun partikel lain yang terbentuk melalui peoses kimia

Maka dari hasil yang di dapatkan lembaran katoda LiMn 2 O 4 pada Sampel A dan Sampel B memiliki daya rekat yang baik dapat dilihat dengan tidak rontoknya material aktif

Dari penelusuran dan penelitian hingga penulisan artikel ini, penulis menemukan identitas Islam yang dipengaruhi kawasan-kawasan tertentu di Indonesia: Islam Nusantara,

Dalam menyusun skripsi ini, digunakan metode penelitian hukum normatif yang bersifat deskriptif, dimana penelitian hukum normatif yaitu penelitian yang menganalisis

Bagian ini umumnya paling banyak di huni oleh hewan hutan hujan tropis.. Harpy eagle Toco toucan Wooly opossum Brazilian tapir Black-crowned antpitta Shrub layer Canopy Emergent