LANDASAN TEORI
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
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).
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
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
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.
nd= 3
Fase 1
Fase 2
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.
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)
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).
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
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.
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
)
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
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 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
Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX,
HP-UX dan Mac OS X.
2. Multi-language
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).