• Tidak ada hasil yang ditemukan

Implementasi Algoritma Apostolico-Crochemore Pada Aplikasi Kumpulan Hadits Shahih Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Apostolico-Crochemore Pada Aplikasi Kumpulan Hadits Shahih Berbasis Android"

Copied!
6
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1.Pengertian Hadits

Menurut pendapat muhaddihin muta’akhirin, di antaranya dikemukakan oleh ibn Salah (w. 643 H/1245 M) dalam muqaddimah-nya. “Hadits shahih adalah hadits yang bersambung sanadnya, diriwayatkan oleh periwayat yang adil dan dabit sampai akhir sanad-nya, tidak terdapat kejanggalan (shadh) dan cacat (‘illah)” (Arifin, 2012).

2.2.Pengertian Aplikasi

Istilah aplikasi berasal dari bahasa inggris “application” yang berarti penerapan, lamaran atau penggunaan. Aplikasi adalah penggunaan atau penerapan suatu konsep yang menjadi pokok pembahasan. Aplikasi dapat diartikan juga sebagai program komputer yang dibuat untuk menolong manusia dalam melaksanakan tugas tertentu (Sarumaha, 2013).

2.3.Pengertian Android

(2)

pengembang untuk menciptakan aplikasi mereka sendiri sehingga dapat digunakan oleh bermacam peranti penggerak. Pada saat perilisan perdana Android pada tanggal 5 November 2007, Android bersama Open Handset Alliance lalu menyatakan mendukung pengembangan standar terbuka Programming pada perangkat seluler (Sarumaha, 2013).

Pada tahun 2007, Google dan beberapa perusahaan yang tergabung dalam Open Handset Alliance (Intel, Nvidia, Texas Instrument) mengembangkan sistem operasi Android dan resmi menjadi open source. Google menginginkan agar Android bersifat terbuka dan gratis, oleh karena itu hampir setiap kode program Android diluncurkan berdasarkan lisensi open-source Apache yang berarti bahwa semua orang yang ingin menggunakan Android dapat men-download penuh source code-nya. Di samping itu produsen perangkat keras juga dapat menambahkan extension-nya sendiri ke dalam Android sesuai kebutuhan produk mereka. Pada tahun 2008, Android SDK 1.0 diluncurkan dan phone G1 yang diproduksi oleh HTC menggunakan sistem operasi tersebut. Pada tahun 2010, Android menjadi sistem operasi Blackberry dan menjadi sistem operasi terbaik pada platform smart-phone. Versi 2.2 (Froyo) diluncurkan dan lebih dari 60 gadget menggunakannya (Muttaqin, 2014).

2.4.Pengertian Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Munir, 1999).

Algoritma merupakan salah satu cabang ilmu komputer yang membahas prosedur penyelesaian suatu permasalahan. Dengan algoritma yang baik maka komputer bisa menyelesaikan perhitungan dengan cepat dan benar. Sebaliknya jika algoritma kurang baik maka penyelesaian lambat dan bahkan tidak didapat solusi yang diharapkan. Suatu algoritma akan memerlukan masukan (input) tertentu untuk memulainya, dan akan menghasilkan keluaran (output) tertentu pada akhirnya. Hal-hal yang perlu diperhatikan dalam algoritma adalah mencari langkah-langkah yang paling sesuai untuk penyelesaian suatu masalah, karena setiap algoritma memiliki karakteristik tertentu yang memiliki kelebihan dan kekurangan. Beberapa hal yang harus dipahami dalam mencari algoritma antara lain (Nugraha, 2011):

(3)

3. Berapa lama yang diperlukan untuk menyelesaikan masalah. 4. Berapa jumlah data yang dapat ditangani oleh suatu algoritma.

2.4.1. Algoritma String Matching (pencocokan string)

String adalah rangkaian karakter atas ∑ alfabet yang terbatas. Misalnya, ATCTAGAGA adalah string atas ∑ = {A, C, G, T} (Navarro & Raffinot, 2002).

Pengertian string menurut Dictionary of Algorithms and Data Structures, National Institute of Standards and Technology (NIST) adalah susunan dari

karakter-karakter(angka,alfabet atau karakter yang lain) dan biasanya direpresentasikan sebagai struktur dan array. String dapat berupa kata, frase, atau kalimat. Pencocokan string (string matching) merupakan bagian penting dari sebuah proses pencarian string(string searching) dalam sebuah dokumen. Hasil dari sebuah pencarian string

dalam dokumen tergantung dari teknik dan cara pencocokan string yang digunakan (Buulolo, 2013).

2.4.2. Algoritma Apostolico-Crochemore

Algoritma Apostolico-Crochemore menggunakan tabel fungsi pinggiran kmpNext yang berasal dari Algoritma Knuth-Morris-Pratt untuk menghitung fungsi pinggiran yang mengindikasikan pergeseran x terbesar yang mungkin terjadi pada pattern x sebelum melakukan proses pencarian pada teks y. Diketahui l = 0 jika x adalah karakter tunggal yang dipangkatkan (x = cm dengan c di dalam ) dan l adalah posisi karakter pertama dari x yang berbeda dari x[0] (x = albu untuk a, b di dalam , u di dalam , dan a ≠b). Setiap pembandingan dilakukan dengan posisi yang berpola dengan urutan sebagai berikut : l , l +1, ..., m-2, m-1, 0, 1, ..., l -1. Selama fase pencarian, kita mempertimbangkan (i, j, k) di mana:

 i, j dan k adalah indeks

(4)

 li < m dan x[ l ..i-1] = y[j+ l .. i+j-1]. (lihat gambar 2.1.)

Inisialisasi awal dari (i, j, k) adalah ( l , 0, 0).

Gambar 2.1. Pembandingan dengan algoritma Apostolico-Crochemore memperhatikan (i, j, k).

Komputasi (perhitungan) untuk menentukan (i, j, k) berikutnya mempertimbangkan tiga kasus yang bergantung pada nilai i, yaitu sebagai berikut: 1. i = l

Jika x[i] = y[i+j] maka (i, j, k) berikutnya adalah (i+1, j, k).

Jika x[i] y[i+j] maka (i, j, k) berikutnya adalah ( l , j+1, max{0, k-1}). 2. l < i < m

Jika x[i] = y[i+j] maka (i, j, k) berikutnya adalah (i+1, j, k).

Jika x[i] ≠ y[i+j] maka ada dua kasus yang muncul yang bergantung pada nilai kmpNext[i] :

 kmpNext[i] l maka (i, j, k) berikutnya ( l , i+j-kmpNext[i], max{0, kmpNext[i]}).

 kmpNext[i] > l maka (i, j, k) berikutnya (kmpNext[i], i+j-kmpNext[i],

kmpNext[i] l ). 3. i = m

Jika k < l dan x[k] = y[j+k] maka (i, j, k) berikutnya adalah (i, j, k+1). Sebaliknya salah satu dari k < l dan x[k] ≠y[j+k], atau k = l. Jika k = l kemunculan x diberitahukan. Pada kedua kasus tersebut perhitungan (i, j, k) berikutnya sama seperti perhitungan pada kasus l < i < m (Charras dan Lecroq, 1997).

Berikut ini adalah contoh cara kerja algoritma Apostolico-Crochemore. Teks y : G C A T C G C A G A G A G T A T A C A G

(5)

1. Fase Proses Awal

Tabel 2.1. Fungsi pinggiran kmpNext

i 0 1 2 3 4 5 6 7 8

x[i] G C A G A G A G kmpNext[i] -1 0 0 -1 1 -1 1 -1 1 l = 1

2. Fase Pencarian String

Tahap 1

Perbandingan perkarakter dimulai dari indeks ke-1.

G C A T C G C A G A G A G T A T A C A G 1 2 3

G C A G A G A G

Pattern x digeser sebanyak : 3-kmpNext[3] = 3- -1 = 4 karakter

Tahap 2

G C A T C G C A G A G A G T A T A C A G 1

G C A G A G A G

Pattern x digeser sebanyak : 1-kmpNext[1] = 1-0 = 1 karakter

Tahap 3

G C A T C G C A G A G A G T A T A C A G 8 1 2 3 4 5 6 7

G C A G A G A G

Pada tahap 3, pattern x sudah ditemukan di dalam teks y. Jumlah perbandingan yang dilakukan untuk mencari pattern x dilakukan sebanyak 12 kali.

Jika pencarian string terus dilakukan sampai teks habis maka pattern x digeser sebanyak : 8-kmpNext[8] = 8-1 = 7 karakter.

Tahap 4

G C A T C G C A G A G A G T A T A C A G 1

(6)

2.5. Penelitian Yang Relevan

Berikut ini beberapa penelitian yang terkait dengan algoritma Apostolico-Crochemore:

1. Nababan, A.A. (2015) dalam penelitiannya melakukan perancangan fitur pencari saran hasil terdekat dengan pencarian menggunakan algoritma pencocokan string Brute Force dan Knuth Morris-Pratt(KMP). Hasil penelitian tersebut ditemukan bahwa algoritma Knuth Morris-Pratt(KMP) melakukan pergeseran lebih jauh (tidak hanya bergeser satu karakter seperti dalam Brute Force). Dengan ini penggunaan algoritma Knuth-Morris-Pratt (KMP) dapat mempersingkat waktu dengan hasil rata-rata runtime 0,42717 ms dibandingkan dengan algoritma Brute Force yang memiliki hasil rata-rata runtime 0,44683 ms dalam pencocokan string-nya.

2. Suntoro, M. (2015) dalam penelitiannya melakukan implementasi algoritma pencocokan string Boyer-Moore dalam pembuatan contact manager pada platform Android. Algoritma Boyer-Moore menerapkan prinsip good suffix dimana karakter yang dicari sejajar dengan karakter yang menyerupainya serta prinsip bad character dimana jika karakter tidak memiliki kemiripan maka langsung dieliminasi. Field yang dipakai dalam pencarian contact manager adalah nama contact, dengan memasukan nama sebagai inputannya dalam pencarian. Hasil dari aplikasi ini menampilkan keseluruhan pattern yang match dengan teks, dengan kecepatan pencarian 0,9 detik.

3. Rizal (2015) dalam penelitiannya melakukan implementasi algoritma pencocokan string Turbo Boyer-Moore dalam pembuatan permainan tebak kata bahasa Aceh. Dalam penelitian tersebut ditemukan bahwa algoritma Turbo Boyer-Moore berhasil diterapkan dan menghasilkan pencocokan yang sesuai dengan yang diharapkan. Algoritma Turbo Boyer-Moore melakukan pencocokan dengan sangat cepat. Dari hasil penelitian juga ditemukan bahwa permainan tersebut menambah pembendaharaan kosa kata bahasa Aceh bagi siapa saja yang ingin belajar atau merasa kurang akan kosakata bahasa Aceh. Terbukti dari penelitian yang dilakukan, yaitu melalui hasil pretest, lalu percobaan pada game dan test.

Gambar

Tabel 2.1. Fungsi pinggiran kmpNext

Referensi

Dokumen terkait

Berdasarkan uraian tersebut maka penulis akan membahas dan mendalami tentang perjanjian sewa menyewa perspektif KHES dan peneliti memilih lokasi di Desa Potoan

Telah dilakukan penelitian mengenai pemahaman pasien terhadap penggunaan obat antihiperlipidemia yang diresepkan di apotek Restu Sehat dan apotek Ketintang mulai bulan

Berdasarkan penelitian, pembahasan, pengujian, dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut : (1) sistem keamanan data dokumen (

Daya serap air yang ditunjukkan pada Gambar 1, memberikan kecenderungan yang linier, dengan nilai R 2 = 0.869, artinya bahwa sebanyak 86,9% dari total daya

Aplikasi pesan instan atau IM (Instant Messaging) adalah salah satu metode komunikasi yang paling banyak digunakan diseluruh dunia, salah satunya adalah LINE Messenger

Beberapa isu yang muncul dalam Journal of Qur’anic Studies adalah komparasi translasi Qur’an ke dalam bahasa Inggris karya Yusuf Ali dan Muhammad Asad, studi translasi literal

Tujuan dari penelitian ini yaitu mengetahui kedalaman perairan kolam pelabuhan cargo dan jenis sedimen dasar perairan yang akan diolah menjadi peta batimetri dan

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