Search Engine Dokumen RDF Tanaman Obat menggunakan Sesame dan Lucene

SEARCH ENGINE DOKUMEN RDF TANAMAN OBAT
MENGGUNAKAN SESAME DAN LUCENE

LUTHFI NOVIANDI

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2014

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Search Engine Dokumen
RDF Tanaman Obat menggunakan Sesame dan Lucene adalah benar karya saya
dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun
kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari
karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan
dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.

Bogor, Desember 2014
Luthfi Noviandi
NIM G64124020

ABSTRAK
LUTHFI NOVIANDI. Search Engine Dokumen RDF Tanaman Obat
menggunakan Sesame dan Lucene. Dibimbing oleh JULIO ADISANTOSO.
Bertambahnya keanekaragaman tanaman obat menyebabkan dokumentasi
hasil penelitian tanaman obat semakin bertambah, sehingga mengakibatkan
kesulitan dalam hal pencarian dokumen. Diperlukan suatu sistem pencarian yang
dapat menemukembalikan dokumen yang dicari dengan menggunakan kueri. Pada
penelitian ini akan dilakukan pengembangan sistem pencarian pada dokumen RDF
menggunakan Sesame dan Lucene. Pembobotan menggunakan Tf-idf sebagai nilai
relevansi terhadap dokumen yang ditemukembalikan. Penggunaan sistem Lucene
sebagai mesin pencari menghasilkan rata-rata precision pada kueri tanpa term
boosting sebesar 0.736. Sedangkan untuk kueri yang diberikan term boosting 5
menghasilkan rata-rata precision yang paling baik sebesar 0.882.
Kata kunci : search engine, lucene, sesame, RDF, Tf-idf, tanaman obat

ABSTRACT

LUTHFI NOVIANDI. Search Engine RDF Document of Medicinal Plants Using
Sesame and Lucene. Supervised by JULIO ADISANTOSO.
Increasing the diversity of medicinal plants causing documentation of the
results of research medicinal plants was increasing that led to the difficulty in terms
of search of a document. Required a searching system that can be retrieves
documents using query. In this study, we will develop searching system for RDF
documents using Sesame and Lucene. TF-idf used as relevant value about
documents retrivied. Query without boosting term generate average precision 0.736
while query with boosting term 5 generate average precision 0.882.
Keywords : search engine, lucene, sesame, RDF, Tf-idf, medicinal plants

SEARCH ENGINE DOKUMEN RDF TANAMAN OBAT
MENGGUNAKAN LUCENE DAN SESAME

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2014

Penguji :
1.
2.

Ahmad Ridha, SKom MS
Dr. Irman Hermadi, SSi MS

Judul Skripsi : Search Engine Dokumen RDF Tanaman Obat menggunakan
Sesame dan Lucene
Nama
: Luthfi Noviandi
NIM
: G64124020


Disetujui oleh

Ir. Julio Adisantoso, M.Kom
Pembimbing

Diketahui oleh

Dr Ir Agus Buono, MSi MKom
Ketua Departemen

Tanggal Lulus:

PRAKATA
Puji dan syukur penulis panjatkan ke hadirat Allah subhanahu wa ta ‘ala
atas segala karunia-Nya sehingga karya ilmiah ini dapat diselesaikan.Tema yang
dipilih dalam penelitian yang dilaksanakan sejak bulan Oktober 2014 ini adalah
Search Engine Dokumen RDF Tanaman Obat menggunakan Sesame dan Lucene.
Shalawat dan salam disampaikan kepada Nabi Muhammad SAW beserta keluarga,
sahabat, dan pengikutnya yang tetap berada di jalan-Nya hingga akhir zaman.
Terima kasih penulis ucapkan kepada Bapak Ir. Julio Adisantoso M.Kom

selaku pembimbing. Ungkapan terima kasih juga disampaikan kepada kedua
orangtua, Dini, Naila, Muti serta seluruh keluarga dan teman, atas segala doa dan
kasih sayangnya. Begitu pula rasa terima kasih penulis ucapkan pada rekan-rekan
Ilkomerz Ekstensi 7 yang menjadi bagian hidup penulis selama menempuh
pendidikan di Ekstensi Ilmu Komputer IPB.
Semoga karya ilmiah ini bermanfaat.
Bogor, Desember 2014
Luthfi Noviandi

DAFTAR ISI
DAFTAR TABEL

vi

DAFTAR GAMBAR

vi

DAFTAR LAMPIRAN


vi

PENDAHULUAN

1

Latar Belakang

1

Perumusan Masalah

2

Tujuan Penelitian

2

Manfaat Penelitian


2

Ruang Lingkup Penelitian

2

METODE

2

Membangun Dokumen RDF

2

Penyimpanan Dokumen RDF pada Sesame

3

Pencarian Menggunakan Lucene


3

Evaluasi

4

HASIL DAN PEMBAHASAN

5

Membangun Dokumen RDF

5

Penyimpanan Dokumen RDF pada Sesame

7

Pencarian Menggunakan Lucene


7

Evaluasi
SIMPULAN DAN SARAN

11
13

Simpulan

13

Saran

14

DAFTAR PUSTAKA

14


LAMPIRAN

15

RIWAYAT HIDUP

17

DAFTAR TABEL
1 Deskripsi dokumen XML tanaman obat
2 Deskripsi dokumen RDF tanaman obat
3 Hasil temukembali terhadap dokumen RDF tanaman obat dengan kueri
tanpa term boosting
4 Hasil temukembali terhadap dokumen RDF tanaman obat pada kueri
bukan frase menggunakan term boosting untuk n = 2, 3, 4, 5, 6, 7, 8, 9,
10, 20
5 Nilai interpolasi maksimum recall dan precision pada kueri bukan frase
dengan beberapa term boosting
6 Nilai rataan interpolasi maksimum recall dan precision pada kueri bukan
frase dengan beberapa term boosting


6
6
10

11
12
12

DAFTAR GAMBAR
1
2
3
4
5
6

Diagram alir penelitian
Struktur penggunaan class pada Lucene
Struktur class 'Search_Engine'
String freetext yang di-index pada Lucene
Pseudocode fungsi ‘tf’ dan ‘idfFreq’
Grafik recall dan precision dengan interpolasi maksimum pada kueri
tanpa term boosting
7 Grafik perbandingan recall dan precision dengan interpolasi maksimum
antara kueri dengan term boosting dan kueri tanpa term boosting

3
7
8
8
9
11
13

DAFTAR LAMPIRAN
1 Lampiran 1 Contoh Format RDF Tanaman Pandan Wangi
2 Lampiran 2 Pseudocode fungsi 'indexing()' yang terdapat pada class
'Search_Engine'
3 Lampiran 3 Kueri SPARQL yang digunakan untuk parsing data RDF
Tanaman Obat
4 Lampiran 4 Pseudocode fungsi 'doSearch()' yang terdapat pada class
'Search_Engine'

15
16
16
17

PENDAHULUAN
Latar Belakang
Tanaman obat adalah tanaman yang mengandung bahan yang dapat
digunakan sebagai pengobatan dan kandungan kimianya dapat digunakan sebagai
bahan obat sintetik (Pribadi 2009). Dengan bertambahnya keanekaragaman
tanaman obat, maka dokumentasi hasil penelitian tanaman obat semakin bertambah.
Oleh karena itu, dibutuhkan mesin pencari yang dapat mencari definisi dan manfaat
dari tanaman obat. Herawan (2011) melakukan penelitian untuk temu kembali
informasi dengan ekstraksi ciri dokumen menggunakan chi-square dengan
klasifikasi naïve bayes pada dokumen eXtensible Markup Language (XML)
tanaman obat.
Dalam pengembangan temu kembali informasi format dokumen yang
digunakan bermacam-macam di antaranya freetext atau XML. XML merupakan
sintaks dan model data yang direpresentasikan dengan bentuk tree dan bergantung
pada konsep tag seperti Hypertext Markup Language (HTML). XML saat ini
digunakan untuk membuat infrastruktur web semantik. Salah satu tujuan penting
dari web semantik adalah untuk membuat makna informasi yang jelas, sehingga
memungkinkan akses yang lebih efektif untuk pengetahuan yang terkandung dalam
lingkungan informasi yang beraneka ragam (Lei et al. 2006). Selain
XML, dokumen yang dapat digunakan untuk web semantik yaitu Resource
Description Framework (RDF) yang merupakan spesifikasi yang dibuat oleh World
Wide Web Consortion (W3C) sebagai metode umum untuk memodelkan infomasi
dengan menggunakan sekumpulan format sintaks.
Minack (2008) melakukan penelitian untuk membuat full-text search dengan
dokumen RDF. RDF diolah menggunakan bahasa kueri SPARQL, tetapi tidak
cukup mampu untuk menangani jumlah data yang besar. SPARQL hanya mampu
melakukan penyeleksian berdasarkan regular expression. Sehingga dibutuhkan
aplikasi yang dapat melakukan indexing, stemming, dan ranking pada search engine.
Banyak aplikasi mesin pencari yang sudah dikembangkan antara lain Sphinx
dan Lucene. Salah satu aplikasi yang dapat melakukan pencarian terhadap dokumen
RDF adalah Lucene. Lucene merupakan aplikasi mesin pencari yang menerapkan
konsep full-text search. Lucene memiliki kinerja yang sangat baik walaupun
digunakan pada sumber daya yang rendah (Minack 2008). Lucene dapat melakukan
stemming dan lemmatization, pencarian menggunakan frase, wildcard, fuzzy,
proximity dan range queries. Untuk melakukan indexing dokumen RDF, Lucene
membutuhkan aplikasi yang dapat mengolah data RDF salah satunya adalah
Sesame. Sesame merupakan open-source framework untuk media penyimpanan
RDF dan menyediakan bahasa kueri SeRQL dan SPARQL untuk parsing data.
Penelitian ini dilakukan untuk mengembangkan mesin pencari menggunakan
Sesame dan Lucene pada dokumen RDF. Penelitian ini merupakan tahap awal dari
penelitian yang bertujuan untuk membuat mesin pencari berbasis web semantik
dengan menerapkan ontology dari dokumen RDF.

2
Perumusan Masalah
1.
2.
3.

Penelitian ini dilakukan untuk menjawab permasalahan:
Bagaimana metode untuk mengkonversi format XML menjadi RDF?
Apakah Lucene mampu mengindeks dokumen dengan format RDF?
Bagaimana kinerja search engine yang dikembangkan dengan menggunakan
Lucene pada dokumen RDF?
Tujuan Penelitian

Tujuan penelitian ini yaitu mengimplementasikan sistem Lucene untuk
membangun search engine pada dokumen RDF dan mengimplementasikan metode
untuk konversi dokumen XML menjadi dokumen RDF.
Manfaat Penelitian
Penelitian ini diharapkan dapat membantu seseorang dalam mencari
informasi yang relevan mengenai tanaman obat di Indonesia.
Ruang Lingkup Penelitian
1.
2.
3.

Ruang lingkup penelitian ini antara lain:
Proses indexing dilakukan terhadap semua atribut field yang terdapat pada
dokumen RDF dengan bobot yang tidak dibedakan.
Struktur dokumen RDF sama untuk setiap dokumen.
Dokumen RDF tidak sampai membentuk ontology.

METODE
Tahapan penelitian terdiri atas membangun dokumen RDF tanaman obat,
penyimpanan dokumen ke dalam aplikasi Sesame, proses indexing dan pencarian
menggunakan Lucene, serta evaluasi (Gambar 1).
Membangun Dokumen RDF
RDF adalah model metadata dari bahasa yang direkomendasikan oleh W3C
untuk membangun infrastruktur web semantik (Gutierrez et al. 2007). Pada RDF,
sebuah deskripsi dari sumber direpresentasikan sebagai sejumlah triple, tiga bagian
dari setiap triple disebut subyek, predikat, dan obyek. Subyek dari triple adalah
Uniform Resource Identifier (URI) yang mendefinisikan sumber. Obyek dapat
berupa nilai literal sederhana, seperti string, numerik, tanggal, atau URI dari
sumberdaya lainnya yang berkaitan dengan subyek. Predikat mengindikasikan
hubungan antara subyek dan obyek. RDF juga menyediakan sebuah sintaks berbasis
XML yang disebut juga RDF/XML.
XML dan RDF secara umum digunakan untuk membangun infrastruktur
semantik tetapi keduanya memiliki fungsi yang berbeda. XML berkaitan dengan
transmisi data, sedangkan RDF berkaitan dengan konten informasi.

3
Dokumen XML yang digunakan dalam penelitian ini adalah dokumen
tanaman obat yang telah digunakan sebelumnya pada penilitian Herawan (2011).
Korpus tersebut terdiri atas 93 dokumen. Data tanaman obat kemudian dikonversi
menjadi dokumen RDF/XML dan disimpan ke dalam aplikasi Sesame.
Mulai

Query

Data tanaman
obat
Pencarian
dengan Lucene
Dokumen
XML

Dokumen
RDF Pada
Sesame

Evaluasi

Struktur
XML
Selesai
Dokumen
RDF

Penyimpanan
Pada Sesame

Membangun dokumen RDF

Gambar 1 Diagram alir penelitian
Penyimpanan Dokumen RDF pada Sesame
Pada penelitian ini digunakan Sesame untuk pengolahan data dokumen RDF.
Sesame merupakan aplikasi yang dikembangkan oleh Aduna yang menyediakan
fungsi untuk parsing, menyimpan, dan kueri pada data RDF. Sesame menyediakan
dua bahasa kueri yaitu SeRQL dan SPARQL. SeRQL dan SPARQL merupakan
bahasa kueri yang dikembangkan oleh Aduna yang digunakan untuk memanipulasi
data dan parsing data RDF. Dokumen RDF tanaman obat disimpan pada aplikasi
Sesame untuk di parsing menggunakan kueri SPARQL.
Pencarian Menggunakan Lucene
Indexing dilakukan menggunakan perangkat lunak Lucene yang mencakup
tokenisasi, stemming dan lemmatization, pembuangan stopwords, pembobotan, dan
penyimpanan hasil indexing ke dokumen Lucene.
Tokenisasi merupakan proses pemotongan teks untuk mendapatkan token
dari suatu berkas (Manning et al. 2008). Tokenisasi melakukan pemisahan terhadap
isi dokumen menjadi unit yang lebih kecil yang biasa disebut juga kata. Stemming
dan lemmatization merupakan proses pengolahan linguistik tambahan yang dapat
ditangani dengan tokenisasi. Tokenisasi dilakukan untuk semua korpus tanaman
obat yang telah tersedia. Pada tokensasi juga dilakukan pembuangan stopwords.
Stopwords merupakan kata umum yang sering muncul dalam suatu dokumen
dengan jumlah besar tetapi tidak memiliki makna. Stopwords dibuang karena

4
dianggap akan mengurangi akurasi dari informasi yang di temu-kembalikan
(Manning et al. 2008). Contoh dari stopwords antara lain “yang”, “dan”, “atau”,
“di”, dan lain-lain. Kata yang sudah melalui proses tokenisasi dan pemotongan
stopwords akan diberikan pembobotan.
Pembobotan merupakan proses untuk memberikan nilai bobot pada suatu
token untuk merepresentasikan ciri suatu dokumen. Hasil pembobotan akan
membentuk suatu sistem peringkat yang akan mengurutkan token dengan tingkat
kemiripan tertinggi ke tingkat kemiripan terendah.
Pada perangkat lunak Lucene digunakan pembobotan term frequency (TF)
dan Inverse Document Frequency (IDF). Term frequency melakukan pembobotan
untuk menghitung jumlah kemunculan token pada suatu dokumen dan sebagai
ukuran untuk tingkat relevansi dokumen (Minack et al. 2008). Inverse document
frequency (IDF) akan menghitung jumlah dokumen yang memiliki suatu token
tertentu untuk dibandingkan dengan jumlah semua dokumen. Untuk menghitung
bobot TF-IDF dari token t pada dokumen d digunakan persamaan (Manning et al.
2008)
.�

�,

=

�,

∗ log



(1)



dengan N adalah jumlah dokumen tanaman obat, dft adalah jumlah dokumen yang
mengandung token t.
Proses pencarian dapat dilakukan jika dokumen sudah terindeks pada
dokumen Lucene. Pencarian dilakukan menggunakan kueri yang berhubungan
dengan tanaman obat, kemudian dihitung nilai kemiripannya. Nilai kemiripan akan
berpengaruh terhadap hasil temu kembali oleh sistem. Similarity antara kueri dan
dokumen diukur menggunakan cosine similarity dengan persamaan (Manning et
al. 2008)
�� . �
� � � � , = |� | �
(2)
|� |




dengan Vq merupakan vektor dokumen q, Vd merupakan vektor dokumen d, |Vq|
merupakan panjang vektor dokumen q, dan |Vd| merupakan panjang vektor
dokumen d. Lucene memodifikasi persamaan 2 untuk mencari nilai scoring dan
similarity menjadi
� �

��

,

=

�,

�,

.

1

| |

.∑
�∈

�,



2


.

.

1

| |

dengan boost() merupakan nilai booster yang diberikan terhadap term pada kueri
dengan nilai default 1. Nilai booster akan dikalikan terhadap term t yang diberikan
boost.
Evaluasi
Evalusi dilakukan terhadap dokumen yang ditemukembalikan oleh mesin
pencari berdasarkan kueri yang diberikan. Jumlah kueri yang digunakan yaitu 29
kueri yang didapatkan dari penelitian Herawan (2011).

5
Pada penelitian ini dilakukan evaluasi temu kembali informasi menggunakan
recall dan precision. Precision didefinisikan sebagai rasio dokumen yang ditemukembalikan adalah relevan dengan persamaan (Manning et al. 2008)


� �

=

#

#




� �

� �



dimana relevant items retrieved merupakan jumlah dokumen yang relevan yang
ditemukembalikan dan retrieved items merupakan jumlah semua dokumen dari
hasil pencarian. Recall didefinisikan sebagai rasio dokumen relevan yang
ditemukembalikan dengan persamaan (Manning et al. 2008)
=

#


#






� �

dimana relevant items merupakan jumlah dokumen relevan yang terdapat pada
korpus. Nilai rata-rata interpolated precision dapat mencerminkan urutan dari
dokumen-dokumen yang relevan pada perangkingan. Standar yang digunakan
adalah 11 titik recall standar yaitu 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 dan
1.0 dengan menggunakan interpolasi maksimum yang didefinisikan sebagai
(Manning et al. 2008)
� ��

( ) = max
�≤

dengan � �� ( ) adalah precision hasil interpolasi pada titik recall ke j, dan
max
adalah precision maksimum pada selang nilai recall ke-j hingga ke kanan.
�≤

HASIL DAN PEMBAHASAN
Membangun Dokumen RDF
Penelitian ini menggunakan dokumen tanaman obat yang didapat dari
penelitian Herawan (2011). Jumlah dokumen yang digunakan berjumlah 93
dokumen dengan format XML. Dokumen dikelompokkan menjadi tag-tag seperti
pada Tabel 1.
Dokumen XML kemudian dikonversi menjadi format dokumen RDF/XML
dengan deskripsi seperti pada Tabel 2. Proses konversi dilakukan secara manual
sesuai dengan tag yang digunakan pada dokumen XML. Pada bagian tag
terdapat manfaat, kandungan, dan lokasi yang dapat dipisahkan
menjadi field yang berbeda pada dokumen RDF.

6
Tabel 1 Deskripsi dokumen XML tanaman obat
Nama Tag
...
...
...
...
...

...
...

Deskripsi
Menandakan awal dan akhir dokumen
Id dokumen
Nama tanaman obat
Nama latin tanaman obat
Deskripsi tanaman obat yang terdiri dari manfaat,
habitus, bagian yang digunakan dan kandungan
zat kimia
Famili tanaman obat
Penyakit yang dapat disembuhkan oleh tanaman
obat.

Tabel 2 Deskripsi dokumen RDF tanaman obat
Nama Tag
Deskripsi
...
Namespace untuk dokumen
RDF
..
Menandakan awal dan akhir
dokumen
..
Id okumen atau merupakan
subyek pada RDF.
..
Id dari tanaman obat
..
Famili tanaman obat
..
Nama tanaman obat
..
Menjelaskan nama latin
tanaman obat
..
Bagian yang digunakan pada
tanaman obat
..
Manfaat dari tanaman obat
.. Kandungan dari tanaman obat
..
Menjelaskan deskripsi dari
tanaman obat
..
Penyakit yang dapat
disembuhkan oleh tanaman
obat
Dokumen RDF didefinisikan menggunakan subyek, predikat, dan obyek.
Berikut merupakan contoh definisi pada dokumen obat Pandan Wangi (Lampiran
1):
 tanaman_1 memiliki nama Pandan Wangi.
 tanaman_1 memiliki famili Pancdanaceae.
 tanaman_1 memiliki nama latin Pandanaus amaryllifolius Roxb.
 bagian yang digunakan pada tanaman_1 adalah daun.
 tanaman_1 memiliki manfaat rambut rontok, menghitamkan rambut,
menghilangkan ketombe, lemah saraf, tidak nafsu makan, rematik, pegal linu,
dan sakit disertai gelisah.

7
 tanaman_1 memiliki kandungan alkaloida, saponin, flavonoida, tannin, polifenol
dan zat warna.
Penyimpanan Dokumen RDF pada Sesame
Dokumen RDF tanaman obat diberi namespace dengan nama “tanaman”.
Pada field dan dibuat dalam bentuk
rdf:Bag karena pada beberapa dokumen tanaman obat memiliki manfaat dan
kandungan yang banyak. Rdf:Bag merupakan tipe data dari RDF yang
mendefinisikan bentuk unordered-list.
Dokumen RDF yang telah tersedia disimpan ke dalam aplikasi Sesame
dengan nama repositori tanaman-obat. Kueri dibutuhkan untuk parsing data pada
dokumen RDF tanaman obat dengan menggunakan bahasa kueri SPARQL.
Pencarian Menggunakan Lucene
Indexing dan pencarian dilakukan dengan menggunakan Lucene, yang
merupakan sebuah mesin pencari yang digunakan dalam membangun aplikasi pada
penelitian ini, untuk proses indexing, searching, dan ranking. Pada penelitian ini
digunakan beberapa class yang terdapat pada library Lucene dan dilakukan
penambahan class yang digunakan sebagai penghubung antara pengguna dan
Lucene. Struktur penggunaan class dapat dilihat pada Gambar 2.
Class Tambahan
Search_Engine

Zend_Search_Lucene

Zend_Search_Lucene_Search_Weight
Zend_Search_Lucene_Search_Similarity
Zend_Search_Lucene_Search_Query
Zend_Search_Lucene_Index

Gambar 2 Struktur penggunaan class pada Lucene
Class ‘Search_Engine’ merupakan class tambahan yang digunakan untuk
menghubungkan Sesame dan Lucene agar dapat melakukan parsing data dan
indexing dokumen RDF. Struktur class ‘Search_Engine’ dapat dilihat pada Gambar
3.
Pada Gambar 3 dapat dilihat bahwa proses indexing dilakukan pada fungsi
‘indexing()’ yang terdapat pada class ‘Search_Engine’ yang terdiri daru proses
parsing data dari Sesame dan proses indexing menggunakan Lucene. Pseudocode
pada fungsi ‘indexing()’ dapat dilihat pada Lampiran 2.
Dokumen RDF yang akan di-index disimpan dalam sebuah aplikasi
penyimpanan dokumen RDF yaitu Sesame. Indexing dilakukan oleh fungsi
“indexing()” yang terdapat pada class “Search_engine”. Fungsi “indexing” akan
melakukan parsing data dokumen RDF pada media penyimpanan Sesame dengan
kueri seperti pada Lampiran 3. Hasil parsing data yang di-index melalui Lucene
merupakan string freetext seperti yang dapat dilihat pada Gambar 4.

8
class Search_engine {
public function __construct(){}
public function index(){
view untuk user
}
public function indexing(){
parsing data RDF dari Sesame
indexing hasil parsing dengan menggunakan Lucene
}
public function getManfaat($id){
parsing data pada field manfaat
}
public function getKandungan($id){
parsing data pada field kandungan
}
public function sanitize($input){
membersihkan string hasil parsing dari tag html
}
public function doSearch(){
pencarian dengan memproses input berupa string kueri
}
}

Gambar 3 Struktur class 'Search_Engine'
Hasil parsing data selanjutnya akan di-index melalui Lucene dengan nama
field ‘id’, ’nama’, ’famili’, ’latin’, ‘bagian’, ‘penyakit’, ‘deskripsi’, ‘manfaat’ dan
‘kandungan’. Hasil indexing akan disimpan pada folder tmp/rdf-indeks yang
terdapat pada direktori c:/xampp/htdocs/Lucene/.
Pada penelitian ini digunakan pembobotan Tf-idf seperti pada Persamaan 1.
Pseudocode pembobotan Tf-idf pada Lucene dapat dilihat pada Gambar 5. Hasil
akhir pembobotan Tf-idf pada Lucene merupakan hasil kuadrat dari pembobotan.

Gambar 4 String freetext yang di-index pada Lucene

9

public function idfFreq(document_freq, total_document)
{
return log(total_document/(float)(document_freq+1)) + 1.0;
}
public function tf(frequency)
{
return sqrt(frequency);
}

Gambar 5 Pseudocode fungsi ‘tf’ dan ‘idfFreq’
Fungsi ‘idfFreq()’ pada Gambar 5 memiliki parameter ‘document_freq’ yang
merupakan jumlah dokumen yang mengandung term t dan parameter
‘total_document’ yang merupakan jumlah dokumen yang terdapat pada korpus.
Pada fungsi ‘tf’ terdapat parameter ‘frequency’ yang merupakan frekuensi token t
yang terdapat pada dokumen d.
Pencarian dilakukan pada fungsi ‘doSearch()’ dengan memasukkan kueri
pada sistem search engine. Pseudocode fungsi ‘doSearch()’ dapat dilihat pada
Lampiran 4.
Jumlah kueri yang digunakan pada penelitian ini adalah 29 kueri. Kueri pada
sistem ini dapat berupa kata tunggal, frase, atau gabungan dari field yang dipilih
dengan kata tunggal atau frase. Kueri akan diproses oleh sistem Lucene yang akan
me-retrieve dokumen yang relevan beserta scoring-nya. Pada Lucene, jika hasil
scoring lebih besar dari 1.0 maka nilai scoring akan dibagi dengan nilai skor
tertinggi. Pada Tabel 3 ditunjukkan hasil temukembali terhadap dokumen RDF
tanaman obat.
Kueri ditentukan dengan cara memilih kata tunggal atau frase yang mewakili
isi setiap tanaman obat. Kata-kata tersebut berkaitan dengan penyakit yang dapat
disembuhkan, kandungan kimia, karakter fisik, dan cara penggunaan tanaman obat.
Pada Lucene disediakan fitur term boosting yang dapat meningkatkan tingkat
akurasi hasil temukembali informasi. Pada penelitian ini kueri ‘Tumbuhan
Merambat’, ‘Tanaman Hias’, ‘Daun Elips’, ‘Buah Buni’, ‘Zat Warna’, ‘Obat
Diseduh’, ‘Obat Ditumbuk’ dan ‘Buah Diperas’ diberikan nilai term boosting 2, 3,
4, 5, 6, 7, 8, 9, 10, dan 20 seperti pada Tabel 4. Kueri yang dipilih untuk kueri term
boosting yaitu kueri yang memiliki 2 suku kata tetapi bukan merupakan frase.
Pada Tabel 4 dapat dilihat bahwa kueri menggunakan term boosting dan kueri
tanpa term boosting menghasilkan nilai recall dan precision yang sama. Akan tetapi,
pada setiap kueri yang diberikan menghasilkan urutan dokumen berbeda yang
artinya setiap kueri menghasilkan grafik recall-precision yang berbeda.
Pencarian pada Lucene juga dapat dilakukan berdasarkan field tertentu,
misalnya untuk mencari manfaat pada tanaman obat ‘Iler’, maka kueri yang
dimasukkan adalah manfaat:Iler. Jika pencarian berdasarkan field mengandung 2
kata atau lebih maka harus disertai dengan tanda kutip agar pencarian dilakukan
sesuai dengan kueri frase yang dimasukkan, misalnya manfaat:“Pandan Wangi”.

10

Tabel 3 Hasil temukembali terhadap dokumen RDF tanaman obat dengan kueri
tanpa term boosting
No.

Kueri

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.

Kanker
Flu
Diabetes
Pusing
Merambat
Menjari
Bergerigi
Menyirip
Vitamin
Antioksidan
Protein
Kalsium
Diseduh
Ditumbuk
Diperas
Batuk Pilek
Kencing Batu
Datang Bulan
Gatal-gatal
Sesak Nafas
Tumbuhan
Merambat
Tanaman Hias
Daun Elips
Buah Buni
Kalsium
Oksalat
Zat Warna
Obat Diseduh
Obat Ditumbuk
Buah Diperas

22.
23.
24.
25.
26.
27.
28.
29.

Jumlah
Dokumen di
Retrieve
3
2
17
3
1
2
15
19
16
1
6
13
12
13
7
27
47
13
11
9
45

Jumlah
Dokumen
Relevan
3
2
17
3
1
2
11
14
15
1
3
8
11
12
7
3
4
3
4
6
1

60
84
61
13
51
42
39
60

Recall

Precision

1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00

1.00
1.00
1.00
1.00
1.00
1.00
0.85
0.74
0.94
1.00
0.50
0.62
0.92
0.92
1.00
0.11
0.09
0.23
0.36
1.00
0.02

26
4
15
6

1.00
1.00
1.00
1.00

0.43
0.05
0.25
0.46

5
4
8
3

1.00
1.00
1.00
1.00

0.10
0.10
0.21
0.05

11
Tabel 4 Hasil temukembali terhadap dokumen RDF tanaman obat pada kueri
bukan frase menggunakan term boosting untuk n = 2, 3, 4, 5, 6, 7, 8, 9, 10,
20
Kueri
Tumbuhan
Merambat^n
Tanaman Hias^n
Daun Elips^n
Buah Buni^n
Zat Warna^n
Obat Diseduh^n
Obat Ditumbuk^n
Buah Diperas^n

Jumlah Dokumen
di Retrieve
45

Jumlah Dokumen
Recall Precision
Relevan
1
1.00
0.02

60
84
61
13
60
42
39

26
4
15
6
4
8
3

1.00
1.00
1.00
1.00
1.00
1.00
1.00

0.43
0.05
0.25
0.46
0.10
0.21
0.05

Evaluasi
Evaluasi kinerja search engine dilakukan menggunakan nilai interpolasi
maksimum recall dan precision. Pengujian dilakukan terhadap 29 kueri berupa kata
tunggal atau frase dan dokumen yang relevan. Setiap kueri akan dihitung nilai
precision pada setiap nilai recall standar yatu 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8,
0.9, 1.0. Setelah didapatkan nilai precision pada sebelas nilai recall untuk setiap
kueri, kemudian dicari nilai interpolasi maksimum recall dan precision. Nilai
interpolasi maksimum recall dan precision dapat dilihat pada Gambar 6.
Rataan Recall dan Precision dengan Interpolasi Maksimum
1.00

Precision

0.80
0.60
0.40
0.20
0.00
0.00

0.10

0.20

0.30

0.40

0.50

0.60

0.70

0.80

0.90

1.00

Recall

Gambar 6 Grafik recall dan precision dengan interpolasi maksimum pada kueri
tanpa term boosting
Dari percobaan yang dilakukan terhadap 29 kueri didapatkan nilai precision
sebesar 0.862. Dapat disimpulkan bahwa kinerja sistem temu kembali informasi
memiliki tingkat keakuratan yang baik untuk semua kueri yang diberikan.
Dokumen yang tidak relevan tetapi tetap ditemukembalikan terjadi pada kueri
‘Batuk Pilek’, ‘Kencing Batu’, ‘Datang Bulan’, ‘Gatal-gatal’, ‘Buah Diperas’,
‘Tanaman Hias’, ‘Tumbuhan Merambat’, ‘Daun Elips’, ‘Buah Buni’, ‘Kalsium

12
Oksalat, ‘Zat Warna’, ‘Obat Diseduh’, dan ‘Obat Ditumbuk. Hal ini disebabkan
karena kueri tersebut memiliki banyak arti dalam setiap dokumen tanaman obat,
sehingga tidak mampu mewakili informasi yang diinginkan pengguna. Misalnya
pada kueri ‘Tumbuhan Merambat’ informasi yang diinginkan pengguna adalah
mengenai tanaman obat yang tumbuh merambat, tetapi sistem akan
menemukembalikan dokumen yang mengandung kata ‘Tumbuhan’ dan
‘Merambat’. Hal tersebut yang mempengaruhi nilai precision yang didapat pada
penelitian ini.
Nilai interpolasi maksimum recall dan precision pada kueri dengan term
boosting dapat dilihat pada Tabel 5 dan Nilai rataan interpolasi maksimum recall
dan precision pada kueri dengan term boosting dapat dilihat pada Tabel 6.
Tabel 5 Nilai interpolasi maksimum recall dan precision pada kueri bukan frase
dengan beberapa term boosting
Nilai
Boosting
Tanpa
Boosting
2
3
4
5

0.0

0.1

0.2

0.3

Recall
0.4 0.5 0.6

0.7

0.8

0.9

1.0

0.91 0.91 0.88 0.82 0.75 0.75 0.67 0.63 0.59 0.59 0.58
0.92
0.94
0.95
0.96

0.92
0.94
0.95
0.96

0.92
0.93
0.94
0.95

0.86
0.86
0.88
0.89

0.84
0.86
0.88
0.89

0.84
0.86
0.88
0.89

0.81
0.85
0.86
0.88

0.81
0.80
0.81
0.83

0.80
0.80
0.81
0.82

0.80
0.79
0.81
0.82

0.80
0.79
0.81
0.82

6

0.96 0.96 0.95 0.83 0.82 0.82 0.81 0.80 0.80 0.80 0.79

7

0.96 0.96 0.95 0.83 0.82 0.82 0.81 0.80 0.79 0.79 0.79

8

0.96 0.96 0.95 0.83 0.82 0.82 0.81 0.80 0.79 0.79 0.79

9

0.96 0.96 0.95 0.83 0.82 0.82 0.81 0.80 0.79 0.79 0.79

10

0.96 0.96 0.95 0.83 0.82 0.82 0.81 0.80 0.79 0.79 0.79

20

0.96 0.96 0.95 0.83 0.82 0.82 0.81 0.80 0.79 0.79 0.79

Tabel 6 Nilai rataan interpolasi maksimum recall dan precision pada kueri bukan
frase dengan beberapa term boosting
Nilai Boosting
Tanpa Boosting
2
3
4
5
6
7
8
9
10
20

Rataan Interpolasi
0.736
0.847
0.856
0.869
0.882
0.850
0.849
0.849
0.849
0.849
0.849

13
Pada Tabel 5 dapat dilihat bahwa nilai interpolasi maksimum recall dan
precision pada kueri dengan term boosting lebih tinggi dibandingkan dengan kueri
tanpa term boosting, sehingga dapat disimpulkan term boosting mempengaruhi
relevansi dokumen yang ditemukembalikan. Akan tetapi pada Tabel 6 ditunjukkan
bahwa pada nilai boosting 7, 8, 9 ,10, dan 20 memiliki rataan interpolasi yang sama,
sehingga dapat disimpulkan bahwa nilai boosting lebih dari 7 akan menghasilkan
relevansi dokumen yang sama. Nilai boosting 5 menghasilkan relevansi dokumen
paling baik yaitu 0.882. Perbandingan rataan interpolasi recall dan precision pada
kueri tanpa term boosting dan kueri dengan term boosting 5 dapat dilihat pada
Gambar 7.
Rataan Recall dan Precision dengan Interpolasi Maksimum
1.00

Precision

0.80
0.60
0.40
0.20
0.00
0.00

0.10

0.20

0.30

0.40

0.50

0.60

0.70

0.80

0.90

1.00

Recall
Tanpa Boosting

Dengan Boosting 5

Gambar 7 Grafik perbandingan recall dan precision dengan interpolasi maksimum
antara kueri dengan term boosting dan kueri tanpa term boosting

SIMPULAN DAN SARAN
Simpulan
Pada penelitian ini dapat disimpulkan bahwa:
1. Mesin pencari Lucene dapat digunakan pada dokumen RDF dengan
mengaplikasikan Sesame framework (SPARQL dan Repositori) untuk parsing
data RDF.
2. Hasil pencarian yang dilakukan menggunakan 29 kueri menghasilkan nilai
rataan precision yang baik yaitu 0.862.
3. Penambahan nilai term boosting meningkatkan nilai rataan precision.
4. Term boosting dengan nilai 5 menghasilkan rataan interpolasi maksimum recall
dan precision yang paling baik yaitu 0.882.
5. Dokumen XML dapat dikonversi menjadi dokumen RDF dengan syarat
diketahui struktur dan makna setiap konteks.

14
Saran
Terdapat beberapa saran untuk penelitian selanjutnya yaitu:
1. Jumlah dokumen tanaman obat yang digunakan sebagai korpus diperbanyak lagi,
agar pengukuran relevansi lebih menunjukkan kondisi populasi yang sebenarnya.
2. Menggunakan ontology untuk dokumen RDF agar makna dari informasi pada
dokumen RDF dapat lebih spesifik.
3. Memberikan bobot yang berbeda dengan memperhatikan struktur dokumen RDF
dengan memodifikasi fungsi ‘tf()’ dan ‘idfFreq()’ pada Lucene.

DAFTAR PUSTAKA
Broekstra K, Kampman A. 2001. Sesame: A generic Architecture for Storing and
Querying RDF and RDF Schema [internet]. [diunduh 2014 November 10].
Tersedia pada: http://iwayan.info/Research/Semantic_Web/Tool/sesame.pdf
Gutierrez C, Hurtado C A, Vaisman A. Introducing Time into RDF [internet].
[diunduh 2014 Oktober 15]; 19(2). Tersedia pada: http://www.spatial.
cs.umn.edu/Courses/Fall11/8715/papers/time-rdf.pdf
Herawan Y, 2011. Ekstraksi Ciri Dokumen Tumbuhan Obat Menggunakan ChiKuadrat dengan Klasifikasi Naive Bayes [skripsi]. Bogor (ID): Institut Pertanian
Bogor.
Lei Y, Uren V, Motta E. 2006. SemSearch: A Search Engine for the Semantic Web
[internet]. [diunduh 2014 Oktober 15]. Tersedia pada: http://dee.srv1.eu/refs/
files/1/62.pdf
Manning C D, Raghavan P, Schütze H. 2008. Introduction to Information Retrieval.
Cambridge: Cambridge University Press.
Minack E, Sauermann L, Grimnes Gunnar, Fluit C, Broekstra J. 2008. The Sesame
LuceneSail: RDF Queries with Full-text Search [internet]. [diunduh 2014
Oktober 15]. Tersedia pada: http://www.dfki.uni-kl.de/~sauermann/papers/
Minack+2008.pdf
Pribadi E R. 2009. Pasokan dan Permintaan Tanaman Obat Indonesia Serta Arah
Penelitian dan Pengembangannya [internet]. [diunduh 2014 Oktober 12]; 8(1).
Tersedia
pada:
http://perkebunan.litbang.deptan.go.id/upload.files/File/
publikasi/perspektif/Perps-Vol8_No1_09/N-5%20rini_edited.pdf
[W3C] World Wide Web Consortium. 2004. Resource Description Framework
(RDF) [internet]. [diacu 2014 Oktober 20]. Tersedia pada: http://www.w3.
org/RDF/

15

LAMPIRAN
Lampiran 1 Contoh Format RDF Tanaman Pandan Wangi

1
Pancdanaceae
Pandan Wangi
Pandanaus amaryllifolius Roxb
Daun


rambut rontok
menghitamkan rambut
menghilangkan ketombe
lemah saraf (neurastenia)
tidak nafsu makan
rematik
pegal linu
sakit disertai gelisah




alkaloida
saponin
flavonoida
tannin
polifenol
zat warna


Tumbuh di tempat yang agak lembap, tumbuh
subur dari daerah pantai - daerah dengan ketinggian 500m dpl.
Perdu tahunan, tinggi 1m-2m. Batang bulat dengan bekas duduk
daun, bercabang, menjalar, akar tunjang keluar di sekitar
pangkal batang dan cabang. Daun tunggal, duduk, dengan pangkal
memeluk batang, tersusun berbaris tiga dalam garis spiral.
Helai daun berbentuk pita, tipis, licin, ujung runcing, tepi
rata, bertulang sejajar, panjang 40cm-80cm, lebar 3cm-5cm,
berduri pada ibu tulang daun permukaan bawah bagian ujungujungnya, warna hijau. Bunga majemuk, bentuk bongkol, warnanya
putih. Buahnya buah batu, menggantung, bentuk bola, diameter
4cm-7.5cm, dinding buah berambut, warnanya
jingga
Perawatan


16
Lampiran 2 Pseudocode fungsi 'indexing()' yang terdapat pada class
'Search_Engine'
function indexing()
{
rmdir(index_directory)
Start_sesame
$store = new phpSesame
$sparql = kueri untuk parsing data
$resultFormat = phpSesame::SPARQL_XML
$lang = “sparql”
$infer = true

$result = $store->query($sparql,$resultFormat,$lang,$infer)
$index = new Zend_Search_Lucene(index_directory)
if($result->hasRows()){
foreach($result->getRows() as $row){
$doc->addField(Keyword('id',$this->sanitize($row['tanaman'])));
$doc->addField(Text('nama',$this->sanitize($row['nama'])));
$doc->addField(Text('latin',$this->sanitize($row['latin'])));
$doc->addField(Text('famili',$this->sanitize($row['famili'])));
$doc->addField(Text('bagian',$this->sanitize($row['bagian'])));
$doc->addField(Text('penyakit',$this>sanitize($row['penyakit'])));
$doc->addField(Text('deskripsi',$this>sanitize($row['deskripsi'])));
$manfaat = $this->getManfaat($row['id']);
$kandungan = $this->getKandungan($row['id']);
$isi_manfaat = '';
$isi_kandungan = '';
if($manfaat->hasRows())
{
foreach($manfaat->getRows() as $row2)
{
$isi_manfaat .= $row2['isi_manfaat'].', ';
}
}
if($kandungan->hasRows())
{
foreach($kandungan->getRows() as $row3)
{
$isi_kandungan .= $row3['isi_kandungan'].', ';
}
}
$doc->addField(Zend_Search_Lucene_Field::Text('manfaat',$this>sanitize($isi_manfaat)));
$doc->addField(Zend_Search_Lucene_Field::Text('kandungan',$this>sanitize($isi_kandungan)));
$index->addDocument($doc);
$total_index++;
}
}
$index->commit();
}

Lampiran 3 Kueri SPARQL yang digunakan untuk parsing data RDF Tanaman
Obat

17
PREFIX tanaman:
SELECT *
WHERE
{
?tanaman tanaman:nama ?nama .
?tanaman tanaman:habitus ?habitus .
?tanaman tanaman:penyakit ?penyakit .
?tanaman tanaman:famili ?famili .
?tanaman tanaman:bagian ?bagian .
?tanaman tanaman:latin ?latin .
?tanaman tanaman:deskripsi ?deskripsi .
}

Lampiran 4 Pseudocode fungsi 'doSearch()' yang terdapat pada class
'Search_Engine'
function doSearch()
{
if($this->input->post('submit'))
{
$keyword = $this->input->post('query');
$query = $keyword;
$index = new
Zend_Search_Lucene('c:\xampp\htdocs\Lucene\tmp\rdf_indeks');
$hits = $index->find($keyword);

$data['query'] = $query;
$data['count'] = $index->count();
$data['hits_count'] = count($hits);
$data['hits'] = $hits;
$page['_contents'] = 'search.view.php';
$data['_title'] = 'Search Engine';
$this->template->load("template/page",$page,$data);
}
}

18

RIWAYAT HIDUP
Penulis dilahirkan di Bogor pada tanggal 24 November 1991 dari pasangan
Aminuddin dan Yati Mulyati. Penulis merupakan anak kedua dari tiga bersaudara.
Pada tahun 2009 penulis lulus dari Sekolah Menengah Atas (SMA) Plus Bina
Bangsa Sejahtera Bogor dan pada tahun yang sama penulis diterima di Institut
Pertanian Bogor (IPB) melalui jalur Undangan Seleksi Masuk IPB (USMI)
Program Diploma Teknik Komputer.
Pada tahun 2012 penulis lulus dari Program Diploma Teknik Komputer IPB
dan melanjutkan studi di Departemen Ilmu Komputer Fakultas Matematika dan
Ilmu Pengetahuan Alam (FMIPA) IPB.