BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

PENGGUNAAN ALGORITMA APOSTOLICO-CROCHEMORE PADA PROSES PENCARIAN STRING DI DALAM TEKS

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 1 PENDAHULUAN Latar Belakang

IMPLEMENTASI ALGORITMA STRING MATCHING DALAM PENCARIAN SURAT DAN AYAT DALAM BIBLE BERBASIS ANDROID. Efori Buulolo

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 TINJAUAN PUSTAKA

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

BAB II TINJAUAN PUSTAKA

Penerapan Pencocokan String pada Aplikasi Kamusku Indonesia

Penerapan Pencocokan String dalam Aplikasi Duolingo

Artikel Ilmiah. Peneliti: Ditya Geraldy ( ) Prof. Dr. Ir. Eko Sediyono, M.Kom. Yos Richard Beeh., S.T., M.Cs.

BAB II. KAJIAN PUSTAKA

Aplikasi String Matching Pada Fitur Auto-Correct dan Word-Suggestion

PERBANDINGAN ALGORITMA KNUTH-MORRIS-PRATT, STRING MATCHING ON ORDERED ALPHABET, dan BOYER-MOORE dalam PENCARIAN UNTAI DNA

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB II DASAR TEORI DAN TINJAUAN PUSTAKA. Judul Platform Deskripsi

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Penerapan Algoritma Pencocokan String Boyer-Moore untuk Keamanan Komputer

Aplikasi String Matching pada Plugin SMS Blocker untuk Validasi Pesan

BAB II KAJIAN PUSTAKA. bimbingan kepada dosen pembimbing tugas akhir, kartu konsultasi digunakan

BAB I PENDAHULUAN Latar Belakang

Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

Volume VI No 1, Juni 2017 pissn : eissn : X. Tersedia online di

BAB I PENDAHULUAN 1.1. Latar Belakang

linux yang mencakup sistem operasi, middleware dan aplikasi. Andorid mereka. Awalnya, Google Inc. Membeli Android Inc.

IMPLEMENTASI ALGORITMA KNUTH MORRIS PRATT PADA APLIKASI PENERJEMAHAN BAHASA MANDAILING-INDONESIA

BAB II LANDASAN TEORI

IMPLEMENTASI METODE STRING MATCHING UNTUK APLIKASI PENGARSIPAN DOKUMEN (STUDI KASUS : SMPN 3 SUMBER KAB. CIREBON)

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

BAB 2 LANDASAN TEORI

PENERAPAN STRING MATCHING DENGAN ALGORITMA BOYER MOORE PADA APLIKASI FONT ITALIC UNTUK DETEKSI KATA ASING

BAB I PENDAHULUAN. tanpa aturan-aturan yang baku. Sedangkan dalam pemasaran konvensional, barang

BAB I PENDAHULUAN. Teknologi terus berkembang dengan hadirnya perangkat-perangkat baru

Penggunaan String Matching Dalam Mencari Kata Dalam Permainan Mencari Kata Dari Sebuah Matriks Huruf

CASH FLOW MANAGER PADA SISTEM OPERASI ANDROID 2.1 TUGAS AKHIR. Diajukan Oleh : NOVITA

cepat dan kian merambah ke setiap komponen teknologi informasi itu sendiri. Dari mulai dikenalnya komputer, hardware, software, hingga

BAB II KAJIAN PUSTAKA. berbasis linux yang mencakup sistem operasi, middleware dan aplikasi.

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN I.1. Latar Belakang [1] [2] [3] [4] [5]

Android Fundamental. Kartika Dwintaputri S, ST., MMSI

BAB II LANDASAN TEORI

BAB I PENDAHULUAN. mutlak. IM berbeda dengan dari cara penggunaannya, IM bisa dikelompokkan

BAB 2 LANDASAN TEORI. Android adalah sistem operasi berbasisi java yang berjalan pada kernel 2.6 Linux.

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB II KAJIAN PUSTAKA. Fitnes adalah kegiatan olahraga pembentukan otot-otot tubuh/fisik yang

BAB I PENDAHULUAN Latar Belakang

PENGENALAN ANDROID AHMAD ZAINUDIN. Politeknik Elektronika Negeri Surabaya

BAB 1 PENDAHULUAN. Universitas Sumatera Utara


Analisis Perbandingan Performansi Algoritma Zhu-Takaoka dan Algoritma Karp-Rabin Pada Pencarian Kata Di Rumah Baca Buku Sunda

Algoritma String Matching pada Mesin Pencarian

Algoritma Pencarian String Knuth-Morris-Pratt Dalam Pengenalan Tulisan Tangan

Visualisasi Beberapa Algoritma Pencocokan String Dengan Java

PENCOCOKAN DNA NR_ DAN DNA DI MENGGUNAKAN ALGORITMA BOYER MOORE

BAB 2 LANDASAN TEORI

ANALISIS STRING MATCHING PADA JUDUL SKRIPSI DENGAN ALGORITMA KNUTH-MORRIS PRATT (KMP)

BAB 2 LANDASAN TEORI

Penerapan String Matching pada Fitur Auto Correct dan Fitur Auto Text di Smart Phones

Penerapan Algoritma Pattern Matching untuk Mengidentifikasi Musik Monophonic

Gambar 1. Perangkat mobile Android

TECHNICAL REPORT PENGGUNAAN ALGORITMA PENCOCOKAN STRING BOYER-MOORE DALAM MENDETEKSI PENGAKSESAN SITUS INTERNET TERLARANG

Mencari Pola dalam Gambar dengan Algoritma Pattern Matching

BAB I PENDAHULUAN.

Aplikasi Pembelajaran Pengenalan Huruf, Angka, Warna dan Bentuk Bangun Datar Pada Siswa Kelas 1 SDN 5 Parittiga Berbasis Android

IMPLEMENTASI ALGORITMA BOYER-MOORE PADA PERMAINAN WORD SEARCH PUZZLE

Perbandingan dan Pengujian Beberapa Algoritma Pencocokan String

Pattern Matching dalam Aplikasi Pencarian Jodoh

Perbandingan Penggunaan Algoritma BM dan Algoritma Horspool pada Pencarian String dalam Bahasa Medis

BAB 1 PENDAHULUAN Latar Belakang

PERBANDINGAN ALGORITMA STRING SEARCHING BRUTE FORCE, KNUTH MORRIS PRATT, BOYER MOORE, DAN KARP RABIN PADA TEKS ALKITAB BAHASA INDONESIA

1 BAB II LANDASAN TEORI. metode yang dipakai untuk kegiatan pengembangan terhadap sistem sendiri. kebutuhan akan beberapa aktivitas (Buyens, 2001).

ANDROID Sejarah, Arsitektur,Platform Android By Si_pit

IMPLEMENTASI ALGORITMA BRUTE FORCE DALAM PENCARIAN DATA KATALOG BUKU PERPUSTAKAAN

BAB I PENDAHULUAN. 1.1Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang

SISTEM PENYIMPANAN DIGITAL BERBASIS ANDROID PADA PT. TELEKOMUNIKASI INDONESIA, Tbk.

BAB III LANDASAN TEORI

ANALISIS PERBANDINGAN ALGORITMA BOYER-MOORE, KNUTH- MORRIS-PRATT, DAN RABIN-KARP MENGGUNAKAN METODE PERBANDINGAN EKSPONENSIAL

APLIKASI ALGORITMA KNUTH-MORRIS-PRATT PADA MESIN PENCARI KATA UNTUK LINGKUNGAN WEBSITE MAHASISWA INFORMATIKA 2005

Mudah Belajar Android A-Z. Annabe Anna arthdi putra

BAB II LANDASAN TEORI. proyek, dengan melakukan penelitian di SMA Pasundan 1 Bandung untuk cara

BAB I PENDAHULUAN. elektronik yang dibutuhkan untuk berkomunikasi seperti ponsel. Pada tahun 1990-an ponsel hanya dikenal sebagai alat komunikasi,

Aplikasi Pencarian Data Produk Herbal Menggunakan Algoritma Boyer-Moore

BAB I PENDAHULUAN. 1.1 Latar Belakang

Kombinasi Algoritma Pattern Matching dan BFS-DFS pada aplikasi Music Discovery

PERANCANGAN APLIKASI TEXT EDITOR DENGAN MENERAPKAN ALGORITMA KNUTH-MORRIS-PRATT

PERANCANGAN APLIKASI KAMUS BAHASA GAYO DENGAN MENGGUNAKAN METODE BOYER-MOORE

Transkripsi:

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 Android merupakan sistem operasi untuk mobile device yang awalnya dikembangkan oleh android inc. Perusahaan ini kemudian oleh Google pada tahun 2005. Kemudian untuk mengembangkan Android dibentuklah Open Handset Alliance yang merupakan gabungan dari 34 perusahaan peranti keras, lunak dan telekomunikasi termasuk Google, HTC, Intel, Motorola, Qualcomm, T-mobile dan Nvidia. Android dibuat menggunakan kernel Linux yang dimodifikasi. Aplikasi Android ditulis dengan bahasa Java, menggunakan Java Core Libraries. Aplikasi Android dijalankan di atas VM bernama Dalvik Virtual Machine. Android menyediakan platform terbuka bagi para

6 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): 1. Masalah seperti apa yang hendak diselesaikan. 2. Gagasan apa yang ada pada algoritma tersebut.

7 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 karakterkarakter(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 = a l bu 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 l adalah posisi karakter pertama dari x yang berbeda jendela karakter diposisikan pada teks y[j.. j+m-1]; 0 k l dan x[0.. k-1] = y[j.. j+k-1];

8 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 : Pattern x :

9 1. Fase Proses Awal Tabel 2.1. Fungsi pinggiran kmpnext i 0 1 2 3 4 5 6 7 8 x[i] 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. 1 2 3 Pattern x digeser sebanyak : 3-kmpNext[3] = 3- -1 = 4 karakter Tahap 2 1 Pattern x digeser sebanyak : 1-kmpNext[1] = 1-0 = 1 karakter Tahap 3 8 1 2 3 4 5 6 7 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 1 Pada tahap 4, seluruh teks sudah habis dicari. Maka total perbandingan yang dilakukan seluruhnya sampai teks habis adalah 13 kali (Charras dan Lecroq, 1997).

10 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 stringnya. 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. 4. Rochmawati, Y. & Kusumaningrum R. (2015) dalam penelitiannya melakukan perbandingan algoritma pencarian string dalam metode Approximate String Matching untuk identifikasi kesalahan pengetikan teks. Hasil penelitian tersebut ditemukan bahwa perbandingan algoritma pencarian string dalam metode Approximate String Matching menunjukkan bahwa algoritma Jaro Winkler Distance memiliki nilai tertinggi dibandingkan ketiga algoritma yang lain dengan nilai MAP 0,87 yang terbagi ke dalam empat jenis kesalahan penulisan yaitu jenis kesalahan penghapusan huruf 0,92, jenis kesalahan penambahan huruf 0,90, jenis kesalahan penggantian huruf 0,70 dan jenis kesalahan penukaran huruf 0,95.