Anda di halaman 1dari 13

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

Universitas Sumatera Utara


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.

Universitas Sumatera Utara


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).

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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.

Universitas Sumatera Utara


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.

Universitas Sumatera Utara


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.

Universitas Sumatera Utara


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.

Universitas Sumatera Utara


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
)

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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).

Universitas Sumatera Utara

Anda mungkin juga menyukai