• Tidak ada hasil yang ditemukan

Implementasi Algoritma Horspool Dalam Pembuatan Kamus Istilah Psikologi Pada Platform Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Horspool Dalam Pembuatan Kamus Istilah Psikologi Pada Platform Android"

Copied!
13
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 String Matching

2.1.1 Pengertian String Matching

String matching adalah pencarian sebuah pattern pada sebuah teks (Cormen, T.H. et al. 1994). String matching digunakan untuk menemukan suatu string yang disebut dengan pattern dalam string yang disebut dengan teks (Charras, C. & Lecroq, T. 1997). Prinsip kerja algoritma string matching (Effendi, D. et al. 2013) adalah sebagai berikut:

1. Memindai teks dengan bantuan sebuah window yang ukurannya sama dengan panjang pattern.

2. Menempatkan window pada awal teks.

3. Membandingkan karakter pada window dengan karakter dari pattern. Setelah pencocokan (baik hasilnya cocok atau tidak cocok) dilakukan pergeseran ke kanan pada window. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks. Mekanisme ini disebut mekanisme sliding window.

Algoritma string matching mempunyai tiga komponen utama (Effendi, D. et al. 2013), yaitu:

1. Pattern, yaitu deretan karakter yang akan dicocokkan dengan teks, dinyatakan dengan [ … − ], panjang pattern dinyatakan dengan .

(2)

3. Alfabet, berisi semua simbol yang digunakan oleh bahasa pada teks dan pattern, dinyatakan dengan ∑ dengan ukuran dinyatakan ASIZE.

2.1.2 Cara Kerja String Matching

Cara yang jelas untuk mencari pattern yang cocok dengan teks adalah dengan mencoba mencari di setiap posisi awal dari teks dan mengabaikan pencarian secepat mungkin jika karakter yang salah ditemukan (Knuth, D.E. et al. 1977). Proses pertama adalah menyelaraskan bagian paling kiri dari pattern dengan teks. Kemudian dibandingkan karakter yang sesuai dari teks dan pattern. Setelah seluruhnya cocok maupun tidak cocok dari pattern, window digeser ke kanan sampai posisi − +

pada teks. Menurut Singh, R. & Verma, H.N. (2011), efisiensi dari algoritma terletak pada dua tahap:

1. Tahap praproses, tahap ini mengumpulkan informasi penuh tentang pattern dan menggunakan informasi ini pada tahap pencarian.

2. Tahap pencarian, pattern dibandingkan dengan window dari kanan ke kiri atau kiri ke kanan sampai kecocokan atau ketidakcocokan terjadi.

Dengan sebuah nilai karakter (m < n) yang akan dicari dalam teks. Dalam algoritma pencocokan string, teks diasumsikan berada di dalam memori, sehingga bila kita mencari string di dalam sebuah arsip, maka semua isi arsip perlu dibaca terlebih dahulu kemudian disimpan di dalam memori. Jika pattern muncul lebih dari sekali di dalam teks, maka pencarian hanya akan memberikan keluaran berupa lokasi pattern ditemukan pertama kali (Wulan, 2011).

2.1.3 Klasifikasi Algoritma String Matching

Algoritma string matching dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya (Charras, C. & Lecroq, T. 1997), yaitu:

1. From left to right

(3)

2. From right to left

Dari arah kanan ke kiri, arah yang biasanya menghasilkan hasil terbaik secara partikal. Contoh algoritma ini adalah algoritma Boyer-Moore, yang kemudian banyak dikembangkan menjadi algoritma Tuned Boyer-Moore, algoritma Turbo Boyer-Moore, algoritma Zhu Takaoka dan algoritma Horspool.

3. In a specific order

Dari arah yang ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik secara teoritis. Algoritma yang termasuk kategori ini adalah algoritma Colussi dan algoritma Crochemore-perrin.

2.1.4 Teknik Algoritma String Matching

Menurut Singla, N. & Garg, D. (2012), ada dua teknik utama dalam algoritma string matching, yaitu:

1. Exact string matching.

Exact string matching, merupakan pencocokan string secara tepat dengan susunan karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string yang sama. Bagian algoritma ini bermanfaat jika pengguna ingin mencari string dalam dokumen yang sama persis dengan string masukan. Beberapa algoritma exact string matching antara lain:

a. Knuth-Morris-Pratt

Metode ini mencari kehadiran sebuah kata dalam teks dengan melakukan observasi awal (preprocessing) dengan cara mengecek ulang kata sebelumnya. Algoritma ini melakukan pencocokan dari kiri ke kanan.

b. Boyer-Moore

(4)

2. Approximate string matching atau Fuzzy string matching.

Fuzzy string matching merupakan pencocokan string secara samar, maksudnya pencocokan string dimana string yang dicocokkan memiliki kemiripan memiliki susunan karakter yang berbeda (mungkin jumlah atau urutannya), tetapi string tersebut memiliki kemiripan baik kemiripan tekstual/penulisan (approximate string matching) atau kemiripan ucapan (phonetic string matching).

2.2 Algoritma Horspool

Algoritma Horspool adalah penyederhanaan dari algoritma Boyer-Moore yang dibuat oleh R. Nigel Horspool. Menurut Horspool, R.N. (1980), masalah dalam pencarian teks ini adalah mencari dalam teks yang besar untuk menemukan pattern pertama. Karena teks yang dicari bisa sangat besar (memungkinkan ratusan ribu karakter) maka penting untuk menggunakan teknik yang lebih efisien. Algoritma Horspool bekerja dengan metode yang hampir sama dengan algoritma Boyer-Moore namun tidak melakukan lompatan berdasarkan karakter pada pattern yang ditemukan tidak cocok pada teks.

Algoritma Horspool mempunyai nilai pergeseran karakter yang paling kanan dari window. Pada tahap observasi awal (preprocessing), nilai shift akan dihitung untuk semua karakter. Pada tahap ini, dibandingkan pattern dari kanan ke kiri hingga kecocokan atau ketidakcocokan pattern terjadi. Karakter yang paling kanan pada window digunakan sebagai indeks dalam melakukan nilai shift. Dalam kasus ketidakcocokan (karakter tidak terdapat pada pattern) terjadi, window digeser oleh panjang dari sebuah pattern. Jika tidak, window digeser menurut karakter yang paling kanan pada pattern (Baeza-Yates, R.A. & Regnier, M. 1992).

2.2.1 Pencarian Dengan Algoritma Horspool

Terdapat dua tahap pada pencocokan string menggunakan algoritma Horspool (Singh, R. & Verma, H.N. 2011), yaitu:

1. Tahap praproses

(5)

dan teks terjadi. Secara sistematis, langkah-langkah yang dilakukan algoritma Horspool pada tahap praproses adalah:

a. Algortima Horspool melakukan pencocokan karakter ter-kanan pada pattern. b. Setiap karakter pada pattern ditambah ke dalam tabel bad-match dan dihitung

nilai shift-nya.

c. Karakter yang berada pada ujung pattern tidak dihitung dan tidak dijadikan karakter ter-kanan dari karakter yang sama dengannya.

d. Apabila terdapat dua karakter yang sama dan salah satunya bukan karakter ter-kanan, maka karakter dengan indeks terbesar yang dihitung nilai shift-nya. e. Algoritma Horspool menyimpan panjang dari pattern sebagai panjang nilai shift

secara default apabila karakter pada teks tidak ditemukan dalam pattern.

f. Nilai (value) shift yang akan digunakan dapat dicari dengan perhitungan panjang dari pattern dikurang indeks terakhir karakter dikurang 1, untuk masing-masing karakter, � � = − � − .

Sebagai contoh, dapat dilihat pada Tabel 2.1 berikut. Pattern: KARTIKA

�⏟ �⏟ �⏟ �⏟ �⏟ �⏟ �⏟

Tabel 2.1 Bad-match pada praproses

value = 7 – 5 – 1 = 1 value = 7 – 1 – 1 = 5 value = 7 – 2 – 1 = 4 value = 7 – 3 – 1 = 3 value = 7 – 4 – 1 = 2

* : karakter yang tidak dikenali

Karakter Index Value

K 5 1

A 1 5

R 2 4

T 3 3

I 4 2

(6)

2. Tahap pencarian

Secara sistematis, langkah-langkah yang dilakukan algoritma Horspool pada tahap praproses adalah:

a. Dilakukan perbandingan karakter paling kanan pattern terhadap window.

b. Tabel bad-match digunakan untuk melewati karakter ketika ketidakcocokan terjadi.

c. Ketika ada ketidakcocokan, maka karakter paling kanan pada window berfungsi sebagai landasan untuk menentukan jarak shift yang akan dilakukan.

d. Setelah melakukan pencocokan (baik hasilnya cocok atau tidak cocok) dilakukan pergeseran ke kanan pada window.

e. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks atau ketika pattern cocok dengan teks.

Untuk menggambarkan rincian algoritma, akan diberikan contoh kasus dimana pattern P = “KARTIKA” dan teks T = “ADEMUTIARA KARTIKA”. Inisialisasi awal dan pembuatan bad-match terlihat pada Tabel 2.2 dan Tabel 2.3 berikut.

Tabel 2.2 Inisialisasi awal bad-match

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A P K A R T I K A

i 0 1 2 3 4 5 6

Tabel 2.3 Pembuatan bad-match

P A R T I K * i 1 2 3 4 5 - v 5 4 3 2 1 7

(7)

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 2.4 berikut.

Tabel 2.4 Iterasi algoritma Horspool pertama

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A P K A R T I K A

i 0 1 2 3 4 5 6

Terdapat ketidakcocokan seperti yang terlihat pada Tabel 2.4. Karakter “I” adalah karakter paling kanan teks pada window. Pada tabel bad-match, nilai geser karakter “I” adalah 2. Maka, dilakukan pergeseran ke kanan pada window sebanyak 2 kali. Hal ini terlihat pada Tabel 2.5.

Tabel 2.5 Iterasi algoritma Horspool kedua

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A

P K A R T I K A

i 0 1 2 3 4 5 6

Pada Tabel 2.5, terdapat ketidakcocokan kembali antara karakter “R” dan “A”. Pada tabel bad-match, nilai geser karakter “R” adalah 4. Maka, dilakukan pergeseran ke kanan pada window sebanyak 4 kali. Hal ini terlihat pada Tabel 2.6.

Tabel 2.6 Iterasi algoritma Horspool ketiga

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A

P K A R T I K A

i 0 1 2 3 4 5 6

(8)

yang terdapat pada tabel bad-match adalah 5. Maka dilakukan pergeseran ke kanan pada window sebanyak 5 kali dan dilanjutkan dengan iterasi keempat seperti yang terlihat pada Tabel 2.7.

Tabel 2.7 Iterasi algoritma Horspool keempat

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A

P K A R T I K A

i 0 1 2 3 4 5 6

Pada Tabel 2.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 keempat.

Berikut adalah pseudocode algoritma Horspool pada tahap praproses:

Procedure preBmBc (

Dan berikut adalah pseudocode algoritma Horspool pada tahap pencarian:

(9)

while (j <= n – m) do

Algoritma Horspool merupakan penyederhanaan dari algoritma Boyer-Moore dan mudah dalam implemenasinya. Algoritma Horspool hanya menggunakan pergeseran karakter-buruk yang terjadi pada Boyer-Moore (Charras, C. & Lecroq, T. 1997).

Untuk melakukan dan menghitung nilai pergeseran bad-character adalah dengan melihat karakter paling kanan pada window. Algortima ini lebih efisien digunakan ketika ditemukan panjang pattern yang kecil (Sheik, S.S. et al. 2004).

Adapun kelebihan algoritma Horspool telah digunakan dalam beberapa penelitian. Penelitian oleh Hastriana, E. (2010) yang membandingkan algoritma string matching Knuth-Morris-Pratt dengan Boyer-Moore-Horspool pada simulasi pengenalan sidik jari telah dihasilkan dari simulasi pengenalan sidik jari melalui tahap model pengembangan sistem RAD yang dibuat bahwa algoritma Boyer-Moore-Horspool menghasilkan pencocokan yang lebih cepat dibanding Knuth-Morris-Pratt karena Boyer-Moore-Horspool melakukan pergeseran yang lebih jauh daripada Knuth-Morris-Pratt.

Penelitian oleh Mirabella, F.M. (2012) yang membandingkan algoritma Boyer-Moore dan variasi-variasinya dalam pencarian string telah dihasilkan bahwa algoritma Horspool jauh lebih sederhana penggunaannya dibandingkan algoritma Boyer-Moore tetapi total kompleksitas waktu yang dibutuhkan algoritma menyatakan algoritma Horspool masih kalah cepat dalam melakukan pencocokan string dibandingkan dengan beberapa variasi turunan algoritma Boyer-Moore.

(10)

yang sedikit (binary string) dikarenakan lompatan pengecekan yang dilakukan oleh Boyer-Moore menjadi cenderung lebih pendek.

2.3 Information Retrieval System

2.3.1 Pengertian Information Retrieval System

Menurut Hasugian, J. (2006), sistem temu kembali informasi pada dasarnya adalah suatu proses untuk mengidentifikasi, kemudian memanggil (retrieval) suatu dokumen dari suatu simpanan (file), sebagai jawaban atas permintaan informasi. Secara sederhana, temu kembali informasi merupakan suatu sistem yang menyimpan informasi dan menemukan kembali informasi tersebut (Saptari, J. & Purwono, 2006). Sistem Temu Balik Informasi (Information Retrieval System) adalah ilmu mencari informasi dalam suatu dokumen, mencari dokumen itu sendiri dan mencari metadata yang menggambarkan suatu dokumen. Dalam sudut pandang pengguna, Sistem Temu Balik Informasi membantu pencarian informasi dengan memberikan koleksi informasi yang sesuai dengan kebutuhan pengguna (Wibowo, A. 2012).

2.3.2 Komponen Information Retrieval System

Ada lima komponen Sistem Temu Balik Informasi (Hasugian, J. 2006), yaitu: 1. Pengguna.

Pengguna STBI adalah orang yang menggunakan atau memanfaatkan STBI dalam rangka kegiatan pengelolaan dan pencarian informasi. Berdasarkan perannya, pengguna STBI dibedakakan atas 2 (dua) kelompok yaitu pengguna (user) dan pengguna akhir (end user). Pengguna (user) adalah seluruh pengguna STBI yang menggunakan STBI baik untuk pengelolaan (input data, backup data, maintenance) maupun untuk keperluan pencarian/penelusuran informasi, sedangkan pengguna akhir (end user) adalah pengguna yang hanya menggunakan STBI untuk keperluan pencarian dan atau penelusuran informasi.

2. Query.

(11)

mesin akan melakukan proses pemanggilan (recall) terhadap dokumen yang diinginkan dari database.

3. Dokumen.

Dokumen adalah istilah yang digunakan untuk penyebutan seluruh bahan pustaka. Dokumen dalam bahasa STBI online adalah seluruh dokumen elektronik (digital) yang telah diinput (dimasukkan) dan disimpan dalam database. Media penyimpanan database dapat berbentuk CD-ROM ataupun berbentuk harddisk. Database dapat diakses secara online maupun diakses secara offline. Database yang diakses secara online dapat pula diakses secara bersamaan (multiuser), sedangkan database offline hanya dapat digunakan oleh satu orang dalam waktu yang sama (single user).

4. Indeks Dokumen.

Indeks adalah daftar istilah atau kata (list of terms). Dokumen yang dimasukkan/disimpan dalam database diwakili oleh indeks. Fungsinya adalah sebagai representasi subyek dari sebuah dokumen. Indeks memiliki tiga jenis yaitu: a. Indeks subyek adalah menentukan subyek dokumen pada istilah mana/apa yang

menjadi representasi subyek dari sebuah dokumen.

b. Indeks pengarang adalah mementukan nama pengarang mana yang menjadi representasi dari suatu karya.

c. Indeks bebas adalah menjadikan seluruh kata/istilah yang terdapat pada sebuah dokumen menjadi sebuah representasi dari dokumen, terkecuali stopword. Stopword adalah kata yang tidak di indeks seperti : yang, that, meskipun, di, ke, dan lain-lain atau seluruh kata sandang/partikel.

5. Pencocokan.

(12)

2.4 Android

Android adalah sebuah sistem operasi untuk perangkat mobile yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan sebuah aplikasi yang diinginkan. Pesatnya pertumbuhan Android karena merupakan sistem operasi open source sehingga bebas didistribusikan dan dipakai oleh vendor manapun.

Android dipasarkan dibawah lisensi Apache Software yang memungkinkan pengembangan distribusi tahap kedua, tahap ketiga dan seterusnya. Karena bersifat open source, maka pengembang aplikasi Android dapat memperoleh keuntungan tambahan melalui perbaikan yang dilakukan serta peningkatan tanpa harus terikat kepada lisensi semula.

2.4.1 Android SDK (Software Development Kit)

Android SDK adalah tools API (Aplication Programming Interface) yang dipergunakan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Beberapa fitur Android:

1. Framework, adalah layer dimana para pembuat aplikasi melakukan pengembangan/pembuatan aplikasi yang akan dijalankan di sistem operasi Android.

2. Android Run Time, salah satunya Dalvik Virtual Machine yang dioptimalkan untuk menjalankan fungsi-fungsi secara efisien, dimana merupakan pengembangan linux kernel untuk melakukan threading dan manajemen tingkat rendah.

3. Browser yang terintegrasi.

4. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasi OpenGL ES 1,0.

5. SQLite untuk penyimpanan data.

6. Media support yang mendukung audio, video dan gambar.

2.4.2 ADK (Android Development Tools)

(13)

pembuatan package Android (.apk) yang digunakan untuk didistribusikan aplikasi Android yang dirancang. Semakin tinggi platform Android yang digunakan, dianjurkan menggunakan ADT yang lebih terbaru.

2.5 Android Studio

Android studio merupakan sebuah Integrated Development Environment (IDE) untuk platform Android. Android studio bersifat free dibawah Apache License 2.0. Android Studio di desain khusus untuk Android Development. Beberapa keunggulan yang terdapat pada Android Studio adalah:

1. Tampilan editor yang lebih baik dan bagus, What You See Is What You Get (WYSIWYG) editor.

2. Tampilan antarmuka yang lebih modern. 3. Gradle-based build system yang fleksibel. 4. Dapat mem-build banyak APK.

5. Google Cloud Platform built-in support, memudahkan integrasi dengan Google Cloud Messaging dan App Engine.

Beberapa perbandingan Android Studio dan Eclipse ADT dapat dilihat pada Tabel 2.8 berikut.

Tabel 2.8 Perbandingan Android Studio dan Eclipse ADT

Features Android Studio Eclipse ADT

Build system Gradle ANT

Maven-based build dependencies Yes No

Build variants and multiple APK generation Yes No Advanced Android code completion and

refactoring Yes No

Editor layout grafis Yes No

APK Signing and keystore management Yes No

Gambar

Tabel 2.5 Iterasi algoritma Horspool kedua
Tabel 2.7 Iterasi algoritma Horspool keempat

Referensi

Dokumen terkait

faktor proses yang menurut Raymond dan Richard Mansbach dapat mendukung integrasi. Dorongan secara Ekonomi

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

Based on Robert Redfied’s notion of great tradition and little tradition, I want to argue that the festival of Idul Fitri in Java is more happy, cheery, and merry rather than in

Sekali-sekali pasien akan mengalami rasa napas yang pendek (seperti orang yang kelelahan) dan bukanya tekanan pada substernal.Sekali-sekali bisa pula

I’tibar sanad dalam istilah ilmu hadis ialah menyertakan sanad-sanad yang lain untuk suatu hadis tertentu yang hadis itu pada bagian sanad-nya tampak hanya terdapat seorang

Aspal di area parkir yang rusak, hal ini sudah masuk dalam program investasi Divisi Teknik pelabuhan tahun 2016, bukan lagi pengaspalan akan tetapi dengan