Anda di halaman 1dari 6

INDEXING AND RETRIEVAL ENGINE

UNTUK DOKUMEN BERBAHASA INDONESIA


DENGAN MENGGUNAKAN INVERTED INDEX

Wahyu Hidayat1
1
Departemen Teknologi Informasi, Fakultas Ilmu Terapan, Telkom University
1
wahyuhidayat@telkomuniversity.ac.id

Abstrak

Dokumen teks tergolong dalam data tidak terstruktur. Jika dibandingkan dengan informasi yang tersimpan dalam
bentuk yang terstruktur (misalnya pada tabel dalam sebuah database), maka data tidak terstruktur relatif lebih
sulit dalam hal pengelolaan, penyimpanan, pencarian ulang maupun pengamanannya. Dalam paper ini
dipaparkan sebuah metode indexing dan retrieval yang mampu menyimpan dokumen teks sebagai inverted index
yang memiliki berbagai keunggulan penyimpanan data terstruktur.
Proses indexing melibatkan beberapa tahap yaitu parsing, stopping, stemming, sorting dan merging. Proses
indexing dilakukan terhadap 6464 buah file txt dalam Alquran Terjemahan Indonesia. Setelah itu indeks yang
dihasilkan digunakan dalam proses pencarian dokumen yang hasilnya dibandingkan dengan hasil pencarian
dokumen konvensional secara full text search. Baik hasil pencarian maupun waktu yang dibutuhkan semuanya
dicatat untuk mengukur performa retrieval engine dengan parameter precision, recall dan waktu.
Hasil pengujian menunjukkan bahwa proses indexing tidak mengurangi nilai recall, namun menurunkan nilai
precision hingga 41,88% demi meningkatkan kecepatan pencarian hingga 3800 kali lipat.

Kata kunci : inverted index, indexing and retrieval, precision, recall

1. Pendahuluan menghindari proses pembacaan ke disk yang tidak


perlu.
Informasi yang tersimpan dalam bentuk Dalam paper ini dipaparkan tentang sebuah
dokumen dikategorikan sebagai informasi yang indexing and retrieval engine untuk dokumen
tersimpan dalam bentuk yang tidak terstruktur. Jika berbahasa Indonesia. Proses indexing akan melalui
dibandingkan dengan informasi yang tersimpan serangkaian tahap yang memungkinkan data tidak
dalam bentuk yang terstruktur (misalnya pada tabel terstruktur yang ada dalam dokumen disimpan
dalam sebuah database), maka jenis informasi ini dalam bentuk indeks yang terstruktur dan dapat
relatif lebih sulit dalam hal pengelolaan, memiliki kelebihan-kelebihan data terstruktur dalam
penyimpanan, pencarian uang maupun hal kemudahan pengelolaan, penyimpanan,
pengamanannya. pencarian uang maupun pengamanan data.
Untuk mencari informasi tertentu dari Dalam setiap tahapnya dicatat output dan
sekumpulan dokumen, biasanya dilakukan dengan waktu yang dibutuhkan. Dua hal ini dapat
mengumpulkan dokumen-dokumen yang menunjukkan performa dari indexing engine dan
mengandung kata kunci tertentu. Sayangnya, bila tahap mana yang membutuhkan waktu yang lebih
proses ini dilakukan secara manual akan lama. Informasi ini juga akan dapat berguna bagi
memerlukan waktu yang cukup lama apalagi jika penelitian lain dalam domain information retrieval,
jumlah dan atau ukuran dokumen cukup besar. khususnya bagi penelitian yang memiliki objek
Pencarian data secara full text search juga penelitan berupa teks berbahasa Indonesia atau
melibatkan proses pembacaan disk secara intensif bahasa lain yang serumpun. Berbekal informasi
yang relatif lebih lama dibanding pembacaan pada tentang performa engine dalam memproses teks
memory utama (RAM). Hal ini akan memperlambat berbahasa Indonesia maka penelitian lebih lanjut
kinerja sistem. akan dapat diarahkan untuk menyempurnakan tahap-
Salah satu solusi yang dapat diterapkan untuk tahap dalam indexing and retrieval engine yang
menangani permasalahan tersebut adalah dengan telah diusulkan dalam penelitian ini.
membuat indeks kata dari himpunan dokumen
tersebut. Dengan demikian proses pencarian cukup
dilakukan terhadap indeks sehingga dapat
2. Tinjauan Pustaka Proses indexing dapat dilakukan secara
otomatis maupun secara manual. Indexing secara
2.1 Indexing dan Retrieval otomatis (automatic indexing), umumnya meliputi
alphabet normalization, stopping dan stemming,
Information retrieval adalah proses mencari seperti yang dijelaskan dalam [5]
materi (biasanya dalam bentuk dokumen) dalam 1. Alphabet Normalization
bentuk yang tidak terstruktur (biasanya dalam Dalam proses indexing biasanya karakter
bentuk teks) dari koleksi yang berukuran sangat alfabet dikonversikan ke dalam uppercase
besar (yang biasanya tersimpan dalam bentuk atau lowercase sedangkan karakter-karakter
elektronik) sesuai dengan informasi yang lain dapat dianggap sebagai separator atau
dibutuhkan. Tidak hanya untuk membantu proses diabaikan. Angka dapat diabaikan atau
pencarian data dalam bentuk yang tidak terstruktur, diikutsertakan dalam proses indexing,
information retrieval juga dapat digunakan dalam tergantung pada kebutuhan sistem.
proses penelusuran dan penyaringan koleksi 2. Stopping
dokumen untuk diproses lebih lanjut [1]. Kata-kata yang sering muncul dan tidak
Dalam domain information retrieval, proses membantu mendeskripsikan dokumen disebut
indexing adalah sebuah proses yang sangat penting. stopwords. Proses stopping atau mengabaikan
Indexing terhadap dokumen dilakukan untuk stopwords akan dapat mengurangi daftar kata
mengubah dokumen menjadi bentuk yang lebih yang diindeks. Masing-masing sistem
terstruktur serta memungkinkan proses retrieval, biasanya menentukan sendiri daftar stopwords
yaitu proses menampilkan dokumen yang yang digunakan [5]
mengandung elemen informasi yang dicari. 3. Stemming
Langkah-langkah dalam proses indexing adalah Stemming adalah proses mengekstrak stem
sebagai berikut [1]: atau kata dasar dari sebuah kata. Proses
1. Mengumpulkan dokumen yang akan di- stemming dapat memperkecil ukuran indeks
indeks kemudian memberikan ID yang unik sehingga mempercepat proses pencarian.
pada tiap dokumen Metode stemming yang umum digunakan
2. Tokenizing, yaitu proses memecah dokumen adalah stemming dengan berbasis kamus dan
menjadi serangkaian token atau unit-unit yang aturan morfologi.
lebih kecil Daftar kata yang dihasilkan dari proses
3. Normalisasi token secara linguistik, misalnya stoppping dan stemming dapat digunakan untuk
dengan melakukan stopping (mengabaikan mendeskripsikan isi dokumen. Salah satu cara untuk
stopwords) dan stemming (ekstraksi kata menentukan apakah sebuah kata merupakan
dasar) indikator yang baik terhadap isi dokumen adalah
4. Mengindeks dokumen dengan struktur dengan memperhatikan frekuensi kemunculan kata
inverted index yang terdiri dari dictionary dan dalam dokumen [5].
posting.
Proses indexing biasanya melibatkan proses 2.2 Precision dan Recall
sorting dan grouping antara tiap token. Indeks yang Untuk mengukur performa sebuah retrieval
dihasilkan merupakan pemetaan antara token dan id engine biasanya minimal digunakan 2 parameter
dokumen tempat token tersebut ditemukan, biasanya yaitu precision dan recall. Keduanya merupakan
disertai pula dengan frekuensi kemunculan token besaran yang dapat menunjukkan performa dari
pada dokumen tersebut. sebuah retrieval engine. Semakin tinggi nilai
Senada dengan [1], dalam [3] disebutkan keduanya maka semakin baik kinerja retrieval
bahwa indexing dokumen dengan inverted index engine tersebut
dapat dilakukan melalui beberapa tahap berikut: .
1. Parsing Dokumen 2.2.1 Precision
Dokumen dipecah-pecah menjadi kata-kata
dan tiap kata disimpan dalam tabel bersama Precision adalah salah satu besaran yang
ID dokumen dimana kata tersebut muncul. umum digunakan untuk mengukur performa sebuah
2. Sorting Token information retrieval engine. Precision tidak sama
Tabel diurutkan berdasarkan kata. dengan tingkat akurasi. Precision merupakan
3. Merging Token persentase relevant document dari seluruh hasil
Kata-kata yang sama dan terdapat pada query yang ditampilkan. Semakin tinggi nilai
dokumen yang sama digabungkan dalam satu precision, maka semakin besar pula peluang bahwa
entri. hasil pencarian yang ditampilkan adalah hasil
4. Hitung Frekuensi pencarian yang relevan [2].
Pada tahap ini frekuensi kemunculan kata
dihitung dan ditambahkan ke dalam tabel (1)
di mana
tp = true positive 1. Parsing
fp = false positive Pada proses parsing, dokumen dipecah menjadi
token berdasarkan daftar karakter separator
Nilai precision yang tinggi menunjukkan yang telah ditentukan oleh user. Semua token
tingginya komposisi true positive pada hasil yang dihasilkan kemudian dikonversikan ke
pencarian. Oleh karena itu, sebuah retrieval engine dalam bentuk lowercase dan dipasangkan
yang memiliki nilai precision yang tinggi akan dengan identifier dokumen dimana token itu
semakin jarang salah mengklaim sebuah dokumen ditemukan.
sebagai relevan, padahal dokumen tersebut tidak
relevan. 2. Stopping
Pada proses stopping, token-token yang
2.2.2 Recall dihasilkan proses parsing dibandingkan dengan
daftar stopwords dan akan diabaikan bila
Recall merupakan persentase relevant ternyata token tersebut ada di dalam daftar
documents yang berhasil ditampilkan dalam hasil stopwords. Proses ini bertujuan mengabaikan
pencarian. Recall biasanya digunakan untuk token-token yang tidak perlu di-indeks. Adapun
mengukur sensitivitas sebuah retrieval engine. detail dari proses stopping dapat dilihat pada
Semakin tinggi nilai recall, maka semakin besar bagan berikut:
pula peluang bahwa dokumen yang relevan berhasil
ditampilkan dalam hasil pencarian [2]
Begin

(2)

di mana: Ambil 1 term


tp = true positive dari daftar
fn = false negative

Nilai recall yang tinggi menunjukkan semakin


“sensitif”nya retrieval engine tersebut dalam Term terdapat
dalam kamus ?
True
mendeteksi dokumen yang relevan. Oleh karena itu,
sebuah retrieval engine yang memiliki nilai recall
yang tinggi akan semakin banyak menemukan
False Abaikan
dokumen yang relevan. Nilai recall yang tinggi juga False

menunjukkan bahwa engine tersebut semakin jarang


mengklaim bahwa dokumen tersebut adalah tidak
Masukkan ke
relevan padahal sebenarnya dokumen tersebut daftar term
relevan. penting

3. Cara Kerja Indexing and Retrieval Engine

Berikut ini adalah gambaran umum dalam Akhir daftar ?

proses indexing dan retrieval:


True
Kamus Kamus
Softcopy StopWords KataDasar
Dokumen (*.txt) (*.txt)
(*.txt) End

Sorting
Parsing Stopping Stemming &
Merging

Gambar 2. Proses Stopping

Query
Query
User Inverted
Hasil Files
Query

Gambar 1. Gambaran Indexing & Retrieval Engine

Berdasarkan Gambar 1, urutan langkah kerja


pada proses indexing dokumen adalah sebagai
berikut:
3. Stemming 4. Sorting & Merging
Token yang dihasilkan dari proses stopping
diekstrak menjadi kata dasarnya. Proses Gambar diberi judul dengan “Gambar” dan
stemming bertujuan untuk mengelompokkan “Tabel” dan diberi nomor, contoh, Gambar 1,
token yang memiliki kata dasar yang sama. gambar 2, tabel 1, tabel 2, dan seterusnya. Judul
Algoritma stemming yang digunakan Gambar ditempatkan dirata tengah bawah gambar.
merupakan algoritma stemming berbasis aturan Judul table ditempatkan di rata tengah atas table.
morfologi. Adapun aturan morfologi yang Baik gambar dan table ditempatkan di rata tengah
digunakan adalah sesuai dengan 35 kombinasi antara margin kanan dan kiri halaman. Table/gambar
imbuhan dalam bahasa Indonesia yang harus ditempatkan pada halaman yang sama dengan
dijelaskan dalam [4]. Detail dari proses judul table/gambar..
stemming dapat dilihat pada bagan berikut:
4. Uji Performa Indexing and Retrieval Engine

Begin 4.1 Parameter dan Skenario Pengujian

Untuk menguji performa indexing and rerieval


Ambil 1 term
engine yang dibangun maka dilakukan indexing
dari daftar terhadap 6464 buah dokumen teks (*.txt) berahasa
Indonesia dalam Alquran Terjemahan Bahasa
Indonesia. Dalam proses indexing ditetapkan bahwa
Term ada di tidak akan mengindex angka dan untuk setiap kata
kamus?
yang diindex minimal memiliki panjang 3 karakter.
True
Adapun stemming yang digunakan adalah stemming
False berbasis aturan morfologi dalam bahasa indonesia
yang dijelaskan dalam [4].
Lakukan
pembuangan Untuk mengukur performa indexing engine
imbuhan secara digunakan 2 parameter yaitu
bertahap
1. Persentase penghematan ukuran index
Rasio diperoleh dari membagi jumlah token
Catat term
tersebut sebagai False
Menemukan setelah dilakukan proses stopping dan
stem ?
kata dasar stemming dengan jumlah token sebelum
prosesn stopping dan setemming. Hasilnya
True dikali dengan 100% sehingga persentase
False
penghematan ukuran index dihitung dalam
satuan persen (%)
Ambigu stem? True
2. Waktu indexing
Waktu yang dibutuhkan untuk setiap proses
Lakukan
penanganan indexing akan diukur dan dicatat untuk
False ambigu stem melihat tahap mana yang membutuhkan
waktu paling lama
Setelah index berhasil dibangun maka
Catat stem yang
dihasilkan sebagai sekumpulan kata kunci yang dipilih secara acak akan
kata dasar term digunakan sebagai kata kunci untuk pencarian
dengan menggunakan retrieval engine dan pencarian
dengan menggunakan full text search. Adapun
Akhir daftar ? pencaian dengan full text search diwaliki oleh fitur
pencarian dokumen pada Microsoft Windows
True
dengan service indexing yang sudah dinonaktifkan.
Masing-masing hasil pencarian dan waktu yang
dibutuhkan dicatat untuk mengukur performa
End retrieval engine dengan parameter berikut ini:

Gambar 3. Proses Stemming


1. Precision Terlihat pula bahwa waktu yang paling banyak
Precision diukur dengan membagi jumlah dibutuhkan adalah saat proses penulisan indeks,
dokumen relevan yang ditemukan dalam hasil yaitu selama 214 detik atau sekitar 59,27% dari total
pencarian dengan jumlah dokumen hasil waktu proses indexing. Berikut adalah detail catatan
pencarian seperti pada persamaan (1). waktu tiap tahapnya:
Nilai precision merupakan bilangan bulat
dengan antara 0 sampai 1. Semakin tinggi Tabel 2. Catatan Waktu Proses Indexing
nilai precision, berarti semakin rendah tingkat
false positive nya, artinya semakin jarang Waktu yang
menemukan dokumen yang tidak relevan
Proses dibutuhkan
dalam hasil pencarian.
2. Recall (detik)
Recall diukur dengan membagi jumlah
dokumen relevan yang ditemukan pada hasil Parsing 36
pencarian dengan jumlah seluruh dokumen Stopping 22
relevan seperti pada persamaan (2). Nilai
recall merupakan bilangan bulat dengan Stemming 74
antara 0 sampai 1. Semakin tinggi nilai recall, Sorting dan Merging 15
berarti semakin tinggi tingkat sensitivitas
retreival engine tersebut, artinya semakin Penulisan Indeks 214
besar peluang bahwa dokumen relevan
berhasil ditemukan dalam hasil pencarian. Untuk menguji performa retrieval engine
3. Waktu digunakan keyword-keyword yang telah diketahui
Waktu yang dibutuhkan untuk menampilkan jumlah dokumen relevan nya dan dipilih secara
hasil pencarian akan diukur untuk acak:
membandingkan performa indexing and
retrieval engine dengan full text search. Tabel 3. Contoh Daftar Keyword
Waktu dihitung dalam satuan detik mulai dari dan Jumlah Dokumen yang Relevan
kata kunci dimasukan sampai daftar dokumen
hasil pencarian ditampilkan. Jumlah
Keyword dokumen
4.2 Hasil Pengujian yang relevan
sekutu 45
Dari proses indexing diperoleh hasil bahwa
mempersekutukan 60
proses stopping mengurangi jumlah token yang akan
mempersekutukan
diindeks sebesar 44,49 % dari jumlah token hasil 4
tuhannya
proses parsing. Proses stemming yang dapat
mengurangi jumlah token yang akan diindeks malaikat yang terdekat 1
sebesar 33,37% dari jumlah token hasil proses makan minum 21
stopping. Dengan demikian, secara keseluruhan ayah 30
proses stopping dan stemming dapat mengurangi zuhur 1
ukuran indeks sebesar 55,51%. Detailnya adalah
sebagai sebagai berikut: Adapun pada saat melakukan pengujian
terhadap retrieval engine diperoleh hasil sebagai
Tabel 1. Hasil Proses Indexing berikut:

Proses Keterangan
Parsing 227.160 token
Stopping 126.094 token
Stemming stem dari 126.094 token
Sorting dan
94.541 entri indeks
Merging
Penulisan menuliskan 94.541 entri indeks ke
Indeks disk
Tabel 4. Contoh Hasil Pencarian 5. Kesimpulan
dengan Retrieval Engine Dari uraian sebelumnya maka dapat
disimpulkan bahwa proses indexing memakan waktu
Pencarian dengan paling lama saat proses penulisan indeks yaitu
inverted index sekitar 59,27% dari total waktu indexing. Namun
Keyword Waktu Hasil demikian, saat dilakukan pencarian, index tersebut
pencarian Pencarian dapat mempercepat proses pencarian hingga 3800
(detik) (dokumen) kali lipat dibandingkan dengan pencarian
sekutu 0,043 130 konvensional dengan menggunakan full text search.
mempersekutukan 0,042 130 Adapun performa retrieval engine ditinjau dari
mempersekutukan parameter recall adalah 100%, setara dengan
0,078 305 pencarian dengan full text search, Namun demikian,
tuhannya
malaikat yang ditinjau dari parameter precision, pencarian dengan
0,061 220 retrieval engine mengalami penurunan precision
terdekat
makan and minum 0,048 152 hingga 41,88%.
ayah 0,010 31 Akhirnya dapat disimpulkan bahwa proses
zuhur 0,001 1 indexing tidak mengurangi nilai recall, namun
menurunkan nilai precision hingga 41,88% demi
Terlihat bahwa untuk pecarian dengan inverted meningkatkan kecepatan pencarian hingga 3800 kali
lipat.
index jumlah hasil pencarian melebihi jumlah
dokumen yang relevan, hal ini menyebabkan
penurunan pada nilai precision hingga 41.88%. Daftar Pustaka:
Namun demikian, seluruh dokumen yang relevan
ditemukan dalam proses pencarian sehingga nilai [1] Manning, C.D., Raghavan, P., and Schutze, H.
recallnya tetap !00%. 2009, An Introduction to Information
Retrieval, Cambridge University Press
Sebagai pembandingnya, hasil pengujian
[2] Olson, David L.; Delen, Dursun, 2008
terhadap pencarian dengan full text search pada
Advanced Data Mining Techniques, Springer
Windows menunjukkan bahwa jumlah hasil
[3] Ramakhrishnan Raghu and Gehrke Johannes,
pencarian sama persis dengan jumlah dokumen yang
relevan, selain itu semua dokumen yang relevan 2000 Database Management System,
ditemukan dalam hasil pencarian. Hal ini NewYork, McGraw Hill
[4] Suhendar and Supinah, 1995, Mata Kuliah
menyebabkan pencarian dengan full text search
Dasar Umum Bahasa Indonesia, Balai Pustaka
memiliki nilai precision sebesar 100% dan nilai
[5] Wilkinson, Ross, 1997 Document Database,
recall sebanyak 100%.
Ditinjau dari sisi waktu, pencarian dengan RIST University Australia
retrieval engine membutuhkan waktu yang jauh
lebih sedikit dibanding pencarian konvensional
dengan full text search. yaitu sekitar 3800 kali lebih
cepat. Berikut adalah detail contoh hasil pencarian
full text search:

Tabel 5. Contoh Hasil Pencarian Full text search

Pencarian dengan
fasilitas search pada
Windows
Keyword
Waktu Hasil
pencarian Pencarian
(detik) (dokumen)
sekutu 21,13 45
mempersekutukan 21,09 60
mempersekutukan
20,51 4
tuhannya
Malaikat yang
20,43 1
terdekat
makan minum 20,36 21
ayah 20,95 30
zuhur 22,85 45

Anda mungkin juga menyukai