BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

Penerapan Pencocokan String pada Aplikasi Kamusku Indonesia

Perbandingan Algoritma String Matching yang Digunakan dalam Pencarian pada Search Engine

Pattern Matching dalam Aplikasi Pencarian Jodoh

Penerapan Pencocokan String dalam Aplikasi Duolingo

Algoritma String Matching pada Mesin Pencarian

BAB 2 LANDASAN TEORI

APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

Pengaplikasian Algoritma Knuth-Morris-Pratt dalam Teknik Kompresi Data

BAB III ANALISIS DAN PERANCANGAN

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

Penerapan Algoritma Knuth-Morris-Pratt dalam Music Identification (Musipedia)

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

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

BAB 2 LANDASAN TEORI

Penerapan Algoritma Pencocokan String Knuth-Morris-Pratt Sebagai Algoritma Pencocokan DNA

APLIKASI ALGORITMA KNUTH-MORRIS-PRATT DALAM CONTENT-BASED MUSIC INFORMATION RETRIEVAL

Aplikasi Algoritma Pencocokan String pada Mesin Pencari Berita

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

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

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN Latar Belakang

BAB 2 LANDASAN TEORI

Penggunaan Algoritma Pencocokkan Pola pada Sistem Barcode

BAB 2 LANDASAN TEORI

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

Penilaian Ujian Tertulis Menggunakan Algoritma Pattern Matching IF3051 Strategi Algoritma

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

BAB II LANDASAN TEORI

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

BAB 2 TINJAUAN PUSTAKA

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Penerapan Algoritma Pattern Matching untuk Mengidentifikasi Musik Monophonic

Aplikasi Algoritma String Matching dan Regex untuk Validasi Formulir

Perbandingan dan Pengujian Beberapa Algoritma Pencocokan String

PENERAPAN ALGORITMA BOYER MOORE PADA POSTING TWITTER TMC POLDA METRO JAYA UNTUK MELAPORKAN KONDISI LALULINTAS DAN RUTE JALAN KOTA JAKARTA

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB II LANDASAN TEORI

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

Implementasi Algoritma Knuth-Morris-Pratt Pada Fungsi Pencarian Judul Tugas Akhir Repository

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 1 PENDAHULUAN. 1.1.Latar Belakang

ijns.org Indonesian Journal on Networking and Security - Volume 6 No

BAB 2 LANDASAN TEORI

String Matching Dalam Permainan The Hunt for Gollum

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

Aplikasi String Matching pada Plugin SMS Blocker untuk Validasi Pesan

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

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

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

Android memiliki empat karakteristik sebagai berikut :

BAB I PENDAHULUAN 1.1. Latar Belakang

IMPLEMENTASI ALGORITMA BRUTE FORCE DALAM PENCARIAN DATA KATALOG BUKU PERPUSTAKAAN

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

Penerapan Algoritma String Matching dalam Intelligent Personal Assistant Siri

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

BAB I PENDAHULUAN. Kemajuan teknologi internet dan e-business belakangan ini telah

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

BAB 1 PENDAHULUAN Latar Belakang

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN Latar Belakang


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

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

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

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

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

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

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

APLIKASI PENENTUAN JENIS PART OF SPEECH MENGGUNAKAN METODE N-GRAM DAN STRING MATCHING

BAB 2 LANDASAN TEORI

Penerapan String Matching Pada Auto-Correct Berbasis Algoritma Levenshtein Distance

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

II. DASAR TEORI I. PENDAHULUAN

Penerapan Algoritma Pencocokan String Boyer-Moore untuk Keamanan Komputer

BAB II LANDASAN TEORI. 2.1 Peringkasan Teks Otomatis (Automatic Text Summarization) Peringkasan Teks Otomatis (Automatic Text Summarization) merupakan

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN Latar Belakang

Implementasi Algoritma Knuth Morris Pratt pada Alat Penerjemah Suara

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

Aplikasi Algoritma Pencocokan String dan Algoritma Runut Balik dalam Konversi Romaji ke Hangul

Penerapan Algoritma Pencocokan String dalam Perangkat Lunak Pemblokir Akses Situs Negatif

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Aplikasi Algoritma BFS dan String Matching pada Tag Suggestions di Facebook

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Permasalahan

Mencari Pola dalam Gambar dengan Algoritma Pattern Matching

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Implementasi Algoritma Pencocokan String dalam Penentuan Tombol Respons Facebook

BAB I PENDAHULUAN 1.1 Tujuan 1.2 Latar Belakang

Transkripsi:

BAB 2 LANDASAN TEORI 2.1. Information Retrieval System 2.1.1. Pengertian Information Retrieval System Information retrieval system merupakan bagian dari bidang ilmu komputer yang bertujuan untuk pengambilan informasi dari dokumen-dokumen yang didasarkan pada isi dan konteks dari dokumen-dokumen itu sendiri. Definisi Information Retrieval System menurut Gerald J. Kowalski adalah suatu sistem yang mampu melakukan penyimpanan, pencarian, dan pemeliharaan informasi. Informasi dalam konteks yang dibahas dalam buku ini dapat berupa informasi teks (termasuk data numerik dan tanggal), gambar, audio, video, dan objek multimedia lainnya (J. Kowalski, G, 2000) Definisi menurut Christoper Manning adalah proses menemukan suatu tema utama (biasanya berupa dokumen) dari suatu data yang tidak terstruktur dalam koleksi yang besar (tersimpan dalam komputer) untuk memenuhi kebutuhan informasi yang relevan. Data tidak terstruktur adalah data yang tidak memiliki susunan semantik, atau dapat juga dikatakan data yang tidak memiliki struktur yang mudah dikenali oleh komputer, data ini biasanya berupa teks. Walaupun dalam kenyataannya tidak ada data yang benar-benar bersifat tidak terstruktur, termasuk teks, karena teks juga memiliki struktur, seperti judul, paragraf, dan catatan kaki yang mana biasanya struktur tersebut direpresentasikan dalam suatu dokumen dengan memberikan tanda (markup) yang jelas untuk masing-masing struktur tersebut. Selain memfasilitasi penemuan kembali pada data yang tidak terstruktur, IR juga memfasilitasi pencarian data semi-struktur, misalnya untuk menemukan dokumen dengan judul dokumen yang

6 mengandung kata Java dengan badan teks yang mengandung kata threading (Manning, 2008). Sebagai suatu bidang tersendiri dalam ilmu komputer, IR memiliki beberapa sub bidang, yaitu sebagai berikut: 1. Document routing, filtering, dan selective dissemination. Tema ini berbalik arah dengan proses IR pada umumnya. Jika proses IR yang umum adalah membandingkan dokumen dengan query yang dimasukan user, sedangkan pada document routing, filtering, dan selective dissemination sistem akan membandingkan antar dokumen berdasarkan query untuk mendapatkan dokumen yang dapat menarik minat pengguna. Contoh pada tema ini adalah agregator berita, misalnya dengan menggunakan proses routing untuk memisahkan berita berdasarkan tema tertentu (bisnis, politik, olahraga, dan sebagainya). 2. Text clustering and categorization system, adalah sistem IR yang akan mengelompokkan dokumen berdasarkan kunci tertentu. 3. Summarization system atau peringkas teks, sistem ini akan membuat ringkasan dari teks yang diberikan. Contohnya adalah snippet yang ditampilkan pada hasil pencarian web. 4. Information extraction system, topik IR ini berfungsi mengidentifikasi entitas bernama, seperti nama tempat dan tanggal. Sistem ini juga dapat menkombinasikan informasi-informasi ke dalam rekaman terstruktur yang mendeskripsikan hubungan antara entitas-entitas tersebut. Misalkan untuk membuat daftar buku dan pengarangnya dari web data, ekstraksi informasi dari legal document (seperti undang-undang, peraturan pemerintah, dan sebagainya). 5. Topic detection and tracking system (sistem pendeteksi dan pelacakan topik), sistem ini berguna untuk mengidentifikasi topik peristiwa dalam berita dan sumber-sumber informasi yang sama. 6. Expert search system (sistem pencari keahlian), sistem ini akan melakukan pengidentifikasian keahlian dari seorang anggota organisasi. 7. Question answering system (sistem tanya jawab), adalah sistem yang mengintegrasikan informasi dari berbagai sumber untuk memberikan jawaban yang singkat dari pertanyaan tertentu. Sistem ini kadang juga digabungkan dengan tema IR lain seperti pencarian, peringkas teks, dan ekstraksi informasi.

7 Jika sistem IR yang umum adalah mengembalikan dokumen yang relevan kepada user berdasarkan query yang diinputkan, namun pada sistem tanya jawab yang dikembalikan adalah berupa kalimat singkat untuk menjawab pertanyaan user. 8. Multimedia information retrieval system, adalah tema IR yang mengembangkan teknik-teknik IR pada data multimedia seperti gambar, video, musik, dan pidato. Contoh dari sub-bidang ini adalah pencarian gambar, pencarian musik, video, dan sebagainya (Butcher, S, 2010). 2.2. Pencocokan String (String Matching) 2.2.1. Pengertian Pencocokan String Pencocokan string merupakan bagian terpenting dari sebuah proses pencarian string (string searching) dalam sebuah dokumen. Hasil dari pencarian sebuah string dalam dokumen tergantung dari teknik atau cara pencocokan string yang digunakan. Pencocokan string diartikan sebagai sebuah permasalahan untuk menemukan pola susunan karakter string di dalam string lain atau bagian dari isi teks (Syaroni, 2005). Pencarian string yang juga bisa disebut pencocokan string (string matching) merupakan algoritma untuk melakukan pencarian semua kemunculan string pendek pattern [ 0 n-1] yang disebut pattern di string yang lebih panjang teks [0 m-1] yang disebut teks (Charras, 1997). 2.2.2. Kerangka Kerja Pencocokan String Persoalan pencarian string dirumuskan sebagai berikut: 1. Sebuah teks, yaitu sebuah (long) string yang panjangnya n karakter. 2. Pattern, yaitu sebuah string dengan panjang m. 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).

8 2.2.3. Kerangka Pikir Pencocokan String Algoritma string matching dapat diklasifikasikan menjadi 3 bagian menurut arah pencariannya, yakni: 1. From left to right Dari arah yang paling alami, dari kiri ke kanan, yang merupakan arah untuk membaca. Algoritma yang termasuk kategori ini adalah algoritma brute force, algoritma knuth-morris-pratt. Untuk contoh pencarian kata menggunakan algoritma from left to right dapat dilihat pada Tabel 2.1. Tabel 2.1. Pencarian Kata Menggunakan Algoritma Knuth-Morris-Pratt i 0 1 2 3 4 5 6 Pattern(i) A R A R I E F Prefix(i) 0 0 1 2 0 0 0 i 0 1 2 3 4 5 6 7 8 9 10 11 12 Pattern A R A R I E F Text A R A R E F A R A R I E F FASE 1 A R A R I E F FASE 2 A R A R I E F FASE 3 A R A R I E F FASE 4 A R A R I E F 2. From right to left Dari arah kanan ke kiri, arah yang biasanya menghasilkan hasil terbaik secara partikal. Algoritma yang termasuk kategori ini adalah algoritma boyer-moore. Contoh pencarian menggunakan algoritma boyer-moore dapat dilihat pada Tabel 2.2. Tabel 2.2 Pencarian Kata Menggunakan Algoritma Boyer-Moore I 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Pattern A R I E F Text A R A R I F A R I F A R I E F FASE 1 A R I E F

9 FASE 2 A R I E F FASE 3 A R I E F FASE 4 A R I E F 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 colossi dan algoritma crochemore-perrin. Untuk contoh dari algoritma in a specific order dapat dilihat pada Tabel 2.3. Tabel 2.3. Pencarian Kata Menggunakan Algoritma Colossi nd= 3 Fase 1 Bergeser 3 karakter (shift[2]) Fase 2

10 Bergeser 2 karakter (shift[1]) Beberapa konsep string matching antara lain: 1. Approximate string matching, yaitu sebuah pencarian terhadap pola-pola string (mengandung beberapa proses yaitu menghitung jumlah karakter yang berbeda, penyisipan dan penghapusan karakter) sehingga mendekati pola atau pattern dari string yang dicari. 2. Algorima pencarian string adalah sebuah proses pencarian tempat dari suatu atau beberapa string yang ditemukan dalam sebuah kumpulan string atau teks. Jalan paling sederhana adalah dengan cara membaca karakter satu persatu dan melakukan perhitungan kesalahan posisi yang ada dari string yang dicari (Charras, 1997). 2.2.4. Macam Algoritma Pencocokan String Secara garis besar string matching dibedakan menjadi 2 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 yang mengemuka antara lain: a. Brute Force Analisis dengan metode Brute Force adalah membandingkan karakter per karakter sampai ditemukannya pola yang dicari dari awal string sampai dengan akhir string. b. Knuth-Morris-Pratt Metode yang akan digunakan dalam penelitian ini dan akan dijelaskan pada poin berikutnya.

11 c. Boyer-Moore Algoritma boyer-moore adalah algoritma yang mempertimbangkan string matching dengan efisiensi tinggi dari aplikasi. Algoritma ini melakukan pencocokan karakter yang dimulai dari kanan ke kiri. 2. Inexact string matching atau Fuzzy string matching. Fuzzy string matching merupakan pencocokan string secara samar, maksudnya pencocokan string dimana string yang dicocokkan memiliki kemiripan dimana keduanya memiliki susunan karakter yang berbeda (mungkin jumlah atau urutannya) tetapi string-string tersebut memiliki kemiripan baik kemiripan tekstual/ penulisan (approximate string matching) atau kemiripan ucapan (phonetic string matching). Metode fuzzy string matching diarahkan untuk mencari nilai dari beberapa string yang mendekati dan tidak hanya menghasilkan cocok atau tidak cocok (Syaroni, 2005). Konsep Fuzzy String Matching: 1. Fuzzy String Matching adalah salah satu metode pencarian string yang menggunakan proses pendekatan terhadap pola dari string yang dicari. 2. Melakukan pencarian terhadap string yang sama dan juga string yang mendekati dengan string lain yang terkumpul dalam sebuah penampung atau kamus. Kunci dari konsep pencarian ini adalah bagaimana memutuskan bahwa sebuah string yang dicari memiliki kesamaan dengan string tertampung di kamus, meskipun tidak sama persis dalam susunan karakternya. Untuk memutuskan string hasil pencarian jika ditemukan string hasil pendekatan (aproksimasi) (Dewanto, 2007) 2.3. Algoritma Knuth-Morris-Pratt Algoritma Knuth-Morris-Pratt (KMP) mencari kehadiran sebuah kata w dalam teks s dengan melakukan observasi awal (preprocessing) yaitu ketika muncul ketidaksamaan kata ini mempunyai informasi mengenai kapan kesamaan selanjutnya bermula, dengan cara mengecek ulang kata sebelumnya. Algoritma ini dibuat oleh Knuth dan Pratt dan sendiri oleh J. H. Morris pada tahun 1977, namun ketiganya mengumumkannya bersamaan.

12 Algoritma Knuth-Morris-Pratt (KMP) merupakan algoritma yang digunakan untuk melakukan proses pencocokan string. Algoritma ini merupakan jenis Exact String matching Algorithm yang merupakan pencocokan string secara tepat dengan susunan karakter dalam string yang sama Contoh : kata algoritmik akan menunjukkan kecocokan hanya dengan kata algoritmik. Pada algoritma Knuth-Morris-Pratt (KMP), disimpan informasi yang digunakan untuk melakukan pergeseran lebih jauh, tidak hanya satu karakter seperti algoritma Brute Force. Algoritma ini melakukan pencocokan dari kiri ke kanan (Fadillah, 2008). 2.3.1. Fungsi Pinggiran Pada Algoritma Knuth-Morris-Pratt Fungsi pinggiran Prefix(i) didefinisikan sebagai ukuran awalan terpanjang dari Pattern yang merupakan akhiran dari Pattern[1 i]. Sebagai contoh, tinjau Pattern(i) = ararief. Nilai untuk setiap karakter di dalam Pattern dapat dilihat pada Tabel 2.4. (Wibowo, 2012). Tabel 2.4. Fungsi Pinggiran I 0 1 2 3 4 5 6 Pattern(i) A R A R I E F Prefix(i) 0 0 1 2 0 0 0 2.3.2. Pencarian Dengan Algoritma Knuth-Morris-Pratt Secara sistematis, langkah-langkah yang dilakukan algoritma Knuth-Morris-Pratt pada saat mencocokkan string. 1. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal teks. 2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi: a. Karakter di pattern dan di teks yang dibandingkan tidak cocok (missmatch). b. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini. c. Algoritma kemudian menggeser pattern berdasarkan tabel next, lalu mengulangi langkah b sampai pattern berada di ujung teks.

13 Untuk menggambarkan rincian algoritma, akan diberikan, contoh kasus, dimana kata P = ARARIEF dan kalimat T = ARAREFARARIEF. Pada waktu tertentu, algoritma dalam keadaan yang ditentukan oleh dua variabel bilangan bulat: 1. m yang menunjukkan posisi dalam T yang merupakan awal dari perbandingan prospektif untuk P. 2. i indeks di P yang menunjukkan karakter saat ini sedang dipertimbangkan. Dalam setiap langkah, kita membandingkan T [m + i] dengan P [i] dan jika mereka sama. Hal ini digambarkan, pada awal menjalankan, seperti Gambar 2.1. m 0 1 2 3 4 5 6 7 8 9 10 11 12 T A R A R E F A R A R I E F P A R A R I E F i 0 1 2 3 4 5 6 Gambar 2.1. Iterasi metode Knuth-Morris-Pratt Pertama Kita lanjutkan dengan membandingkan karakter berturut-turut P untuk karakter dari T, bergerak dari satu ke yang berikutnya apakah mereka cocok. Namun, pada langkah kelima, kita mendapatkan T[4] adalah E dan P[4] = I, tidak cocok. Karena itu kita beralih ke karakter berikutnya, menetapkan jumlah pergeseran dari nilai fungsi pinggiran, dapat dilihat dari gambar 1 bahwa karakter terakhir yang cocok adalah P[4] = R yang memiliki nilai fungsi pinggiran = 2 sebagaimana dilihat pada Gambar 2.2. m 0 1 2 3 4 5 6 7 8 9 10 11 12 T A R A R E F A R A R I E F P A R A R I E F I 0 1 2 3 4 5 6 Gambar 2.2 Iterasi metode Knuth-Morris-Pratt Kedua Sistem kembali memiliki ketidaksesuaian pada P[2] (T[4]). Daripada mulai mencari lagi di T[3], sistem mencatat bahwa tidak ada A terjadi antara posisi 2 dan 4 di T kecuali pada 2; oleh karena itu, setelah memeriksa karakter yang sebelumnya, kita tahu tidak ada peluang untuk menemukan awal yang cocok jika kita memeriksa mereka lagi. Oleh karena itu kita beralih ke karakter berikutnya, menetapkan m = 5 dan i = 0 sebagaimana dilihat pada Gambar 2.3.

14 m 0 1 2 3 4 5 6 7 8 9 10 11 12 T A R A R E F A R A R I E F P A R A R I E F i 0 1 2 3 4 5 6 Gambar 2.3 Iterasi metode Knuth-Morris-Pratt Ketiga Pencarian ini masi gagal karena terjadi ketidak sesuaian di P[1] (T[5]). Sehingga kita kembali ke awal P dan mulai mencari di karakter berikutnya T: m = 6, reset i = 0. Langkah selanjutnya dapat dilihat dari Gambar 2.4. M 0 1 2 3 4 5 6 7 8 9 10 11 12 T A R A R E F A R A R I E F P A R A R I E F I 0 1 2 3 4 5 6 Gambar 2.4 Iterasi metode Knuth-Morris-Pratt Keempat Kali ini kita dapat menyelesaikan seluruh pencocokan, yang karakter pertama adalah T[6] (Mulyana, 2014). Berikut adalah pseudocode algoritma KMP pada fase pra-pencarian: procedure prekmp ( input p : array[0..n-1] of char, input n : integer, input/ output kmpnext : array[0..n] of integer ) Deklarasi: i,j: integer Algoritma: i := 0; j := kmpnext[0] := -1; while (i < n) { while (j > -1 and not (P[i] = P[j])) j := kmpnext[j]; i := i+1; j := j+1; if (P[i] = P[j]) kmpnext[i] := kmpnext[j]; else kmpnext[i] := j; endif endwhile } Dan berikut adalah pseudocode algoritma KMP pada fase pencarian: procedure KMPSearch( input m, n : integer, input P : array[0..n-1] of char, input T : array[0..m-1] of char, output ketemu : array[0..m-1] of boolean )

15 Deklarasi: i, j, next : integer kmpnext : array[0..n] of integer Algoritma: prekmp(n, P, kmpnext) i:=0 while (i<= m-n) do j:=0 while (j<n and T[i+j] = P[j]) do j:= j+1 endwhile if(j >= n) then ketemu[i]:= true; endif next := j - kmpnext[j] i:= i+next endwhile 2.3.3. Kompleksitas Waktu Algoritma Knuth-Morris-Pratt Untuk menghitung fungsi pinggiran dibutuhkan waktu O(m), sedangkan pencarian string membutuhkan waktu O(n), sehingga kompleksitas waktu algoritma KMP adalah O(m+n) (Guntur, 2008). 2.3.4. Kelebihan Algoritma Knuth-Morris-Pratt Pada algoritma Knuth-Morris-Pratt ini akan menyimpan informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter. Algoritma Knuth-Morris-Pratt ini menjanjikan karena memiliki waktu pencarian yang linier, baik dalam kasus terbaik atau terburuk (Rizki, 2008). Implementasi algoritma Knuth-Morris-Pratt akan meningkatkan kemampuan dalam pencarian query dalam dokumen. Algoritma Knuth-Morris-Pratt cocok untuk pencarian string dengan alphabet sedikit seperti biner (Yusup, 2011). Adapun kelebihan Algoritma Knuth-Morris-Pratt telah digunakan dalam penelitian-penelitian. Penelitian oleh Mulyana (2014) yang menerapkan algoritma Knuth-Morris-Pratt pada game puzzle untuk mencari kecocokan pola warna telah dihasilkan bahwa kemampuan pencarian Knuth-Morris-Pratt dalam mencari suatu pola blok warna di dalam blok warna utama pada permainan puzzle dalam hal sumber daya memori yang digunakan dapat diketahui dengan menghitung peubah-peubah

16 yang berperan pada saat pencarian yang dilakukan. Sedangkan dalam hal kecepatan, sangat tergantung pada spesifikasi perangkat keras pengujian. Hal lain yang dapat diukur adalah skalabilitas waktu pencarian atau kompleksitas waktu. Penelitian oleh Wibowo (2012) yang menerapkan algoritma Knuth-Morris-Pratt pada pembuatan aplikasi untuk mendeteksi kebenaran perintah SQL Query menggunakan metode Knuth-Morris-Pratt telah dihasilkan dari pengujian dan analisa kuisioner yang diberikan kepada user dan dosen bahwa pencocokan ataupun pendeteksian kebenaran perintah SQL Query dengan menggunakan algoritma Knuth- Morris-Pratt dapat diimplementasikan. Penelitian yang dilakukan oleh Fadillah (2008) dalam pengenalan pola sidik jari menggunakan algoritma Knuth-Morris-Pratt yang telah dihasilkan dari analisa bahwa akurasi algoritma Knuth-Morris-Pratt dalam pengenalan pola sidik jari memberikan nilai toleransi nol dalam hal noise, dikarenakan dengan adanya noise sedikitnya akan memberikan perubahan pola warna, hal ini juga akan menyebabkan perubahan nilai intensitas warna yang dikonversi pada citra yang baru dan akan adanya ketidaksesuaian dengan nilai string yang ada pada database, dan sidik jaripun tidak dapat dikenali. 2.4. Eclipse Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform. Adapun sifat-sifat dari Eclipse adalah sebagai berikut: 1. Multi-platform Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. 2. Multi-language Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. 3. Multi-role

17 Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, tes perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang dapat melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in (Lindung, 2012).