Pencarian Teks Bahasa Indonesia pada Mesin Pencari Berbasis Soundex

PENCARIAN TEKS BAHASA INDONESIA PADA MESIN
PENCARI BERBASIS SOUNDEX

EDO APRIYADI

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

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Pencarian Teks Bahasa
Indonesia Pada Mesin Pencari Berbasis Soundex adalah benar karya saya
denganarahan 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
disertasi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut

Pertanian Bogor.
Bogor, Juli 2013
Edo Apriyadi
NIM G64090074

ABSTRAK
EDO APRIYADI. Pencarian Teks Bahasa Indonesia pada Mesin Pencari Berbasis
Soundex. Dibimbing oleh JULIO ADISANTOSO
Algoritme Soundex merupakan cara untuk menyelesaikan kesalahankesalahan penulisan kueri pada mesin pencari. Pada penelitian ini, akan
dibuktikan apakah algoritme Soundex dapat diaplikasikan pada dokumen
berbahasa Indonesia. Algoritme Soundex yang digunakan adalah Soundex Fusion
karena algoritme ini merupakan gabungan Soundex Russell, Soundex Celko, dan
Soundex Fuzzy. Pembobotan menggunakan algoritme BM25 sebagai nilai
relevansi terhadap dokumen, dan algoritme Dice coefficient sebagai nilai relevansi
terhadap kode Soundex yang dihasilkan. Penggunaan algoritme Soundex untuk
kueri lebih dari satu kata tidak memberikan hasil yang baik. Hasil dari rata-rata
precision untuk query menggunakan satu kata adalah 0.390. Sedangkan untuk
query lebih dari satu kata hanya diperoleh nilai rata-rata precision sebesar 0.145.
Ini disebabkan karena pada penelitian ini hanya menghitung tingkat kesamaan
kode per kata.

Kata Kunci : Temu-Kembali Informasi, Algoritme Soundex, Algoritme Holmes
Soundex, Algoritme Fonetik

ABSTRACT
EDO APRIYADI. Indonesian Text Search on Soundex-Based Search Engines.
Supervised by JULIO ADISANTOSO
Soundex algorithm is one way to rectify the misspelling or mistyping in
writing a query on search engines. In this study, we will conduct empirical
validation to establish the applicability of Soundex algorithm to Indonesian
document. The algorithm used is the Fusion Soundex algorithm because it is a
combination of Russell Soundex, Celko Soundex, and Fuzzy Soundex. The
document relevance value is measured by BM25 weighting algorithm, while the
generated code relevance value is by DiceCoefficient algorithm. The results show
that single word query outperformed double or more words one with the average
precisions 0.390 and 0.145, respectively. This is because only single word was
considered.
Keywords:Information Retrieval, Soundex Algorithm, Holmes Soundex Algorithm,
Phonetic Algorithm

PENCARIAN TEKS BAHASA INDONESIA PADA MESIN

PENCARI BERBASIS SOUNDEX

EDO APRIYADI
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
2013

Penguji :
1. Irman Hermadi, SKom MSc
2. Karlisa Priandana, ST MEng

Judul Skripsi : Pencarian Teks Bahasa Indonesia pada Mesin Pencari Berbasis

Soundex
Nama
: Edo Apriyadi
NIM
: G64090074

Disetujui oleh

Ir Julio Adisantoso, MKom
Pembimbing

Diketahui oleh

Dr Ir Agus Buono, MSi MKom
Ketua Departemen

Tanggal Lulus:

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas

segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian yang dilaksanakan sejak bulan November 2012 ini ialah
temu-kembali informasi, dengan judul Pencarian Teks Bahasa Indonesia pada
Mesin Pencari Berbasis Soundex.
Terima kasih penulis ucapkan kepada Bapak Ir Julio Adisantoso MKom
selaku pembimbing, Bapak Ahmad Ridha MS dan Bapak Sony Hartono Wijaya
MKom selaku penguji, juga teman-teman seperjuangan Tedy Saputra, Achmad
Manshur Zuhdi, Rahmatika Dewi, Fitria Rahmadina, Arini Daribti Putri, dan
Damayanti Elisabeth Sibarani atas kebersamaannya selama ini. Terima kasih
kepada Yoan Puspitasari beserta keluarga atas semangat, doa, dan motivasinya
selama ini. Ungkapan terima kasih juga disampaikan kepada ayah, ibu, serta
seluruh keluarga, atas segala doa dan kasih sayangnya.
Semoga karya ilmiah ini bermanfaat.

Bogor, Juli 2013
Edo Apriyadi

DAFTAR ISI
DAFTAR TABEL


vi

DAFTAR GAMBAR

vi

ABSTRAK

ii

PENDAHULUAN

1

Latar Belakang

1

Perumusan Masalah


1

Tujuan Penelitian

2

Manfaat Penelitian

2

Ruang Lingkup Penelitian

2

METODE

2

Pengumpulan Dokumen


2

Tokenisasi

2

Pembuangan Stopwords

3

Pemilihan Fitur

4

Pembobotan

4

Perubahan Kata ke Kode Soundex


5

Similarity

8

Evaluasi

11

HASIL DAN PEMBAHASAN

11

Pengumpulan Dokumen

11

Tokenisasi


12

Pembuangan Stopwords

12

Pemilihan Fitur

12

Pembobotan

13

Perubahan Kata ke Kode Soundex

13

Similarity


14

Evaluasi

16

SIMPULAN DAN SARAN

18

Simpulan

18

Saran

18

DAFTAR PUSTAKA

18

LAMPIRAN

20

DAFTAR TABEL
1.
2.
3.
4.
5.
6.
7.

Klasifikasi Error (Damerau 1964)
Tabel pengelompokan konsonan algoritme Soundex Russell dan Celko
(Holmes & McCabe 2002)
Translasi Soundex Fuzzy (Holmes dan McCabe 2002)
Translasi Soundex Fusion
Substitusi n-gram
Fusion Soundex Translate
Query Soundex Fusion Translate

6
7
7
8
9
13
15

DAFTAR GAMBAR
1.
2.
3.
4.
5.
6.
7.
8.
9.

Diagram metodologi penelitian
Contoh dokumen
Algoritme Soundex Russell
Algoritme perhitungan Soundex untuk satu kata
Algoritme Perhitungan Soundex untuk lebih dari satu kata
Proses pencarian kata berdasarkan kode soundex
Perhitungan Okapi BM25
Grafik recall precision untuk 1300 dokumen
Grafik recall precision untuk 1000 dokumen

1.
2.
3.

Antarmuka Implementasi
Gugus Query dan Jawaban Untuk Lebih Dari Satu Kata
Gugus Query dan Jawaban Untuk Satu Kata

3
4
6
10
10
14
15
16
17

DAFTAR LAMPIRAN
20
21
21

PENDAHULUAN
Latar Belakang
Sistem temu-kembali informasi yang dapat menampilkan hasil pencarian
teks bahasa Indonesia seringkali menemukan masalah antara lain kesalahan
penulisan, kesalahan pengejaan, dan lain-lain. Kesalahan yang dilakukan
pengguna dalam penulisan query menyebabkan informasi yang ditemukembalikan tidak relevan.
Masalah kesalahan dalam penulisan atau pengejaan tersebut dapat
diselesaikan dengan algoritme kesamaan fonetik, diantaranya Soundex, phoenix,
Pfeifer, dan Soundex Fuzzy (Holmes dan McCabe 2002). Algoritme Soundex
telah dikembangkan untuk query dalam bahasa Indonesia dengan memodifikasi
pengelompokan konsonan sesuai dengan kaidah bahasa Indonesia oleh Primasari
(1997) dengan menggunakan konversi nilai biner untuk sistem perangkingannya.
Ternyata data tidak berpengaruh terhadap jenis bahasa karena algoritme Soundex
dalam bahasa Inggris dapat bekerja dengan baik pada bahasa Indonesia. Hal ini
karena bahasa Inggris dan Indonesia menggolongkan konsonannya dengan
keistimewaan yang sama.
Penggunaan algoritme untuk proses Soundex masih menemui beberapa
kendala. Penggunaan algoritme Soundex seperti Fuzzy, Russell, dan Celko
memiliki nilai kesalahan yang cukup besar. Nilai precision yang dihasilkan untuk
algoritme Fuzzy, Russell, dan Celko pada penelitian Holmes dan McCabe (2002)
hanya dibawah 0.5. Penelitian Holmes dan McCabe (2002) juga memperkenalkan
algoritme baru yang memperbaiki kesalahan-kesalahan yang ada pada algoritme
Soundex sebelumnya. Penelitian ini menggabungkan beberapa algoritme
sebelumnya yaitu Fuzzy, Russell, dan Celko yang dibantu dengan tehnik code
shift. Perhitungan nilai kesamaan antara kode Fuzzy menggunakan Dice
coefficient. Penelitian ini mampu meningkatkan nilai recall menjadi 96%. Teknik
ini disebut dengan Soundex Fusion.
Penelitian tentang peningkatan kinerja sistem pencarian berbasis Soundex
telah banyak dikembangkan. Penelitian ini memperbaiki teori sebelumnya untuk
pencarian kesamaan fonetik. Tujuan dari penelitian tersebut umumnya sama yaitu
untuk meningkatkan nilai recall dan precision yang dapat meningkatkan kinerja
sistem pencarian.
Tetapi penelitian tersebut sebagian besar menggunakan kata berbahasa
Inggris dan hanya menggunakan sebuah nama untuk pencarian, sedangkan untuk
seluruh kata dalam bahasa Indonesia, pengucapan huruf mungkin akan berbeda.
Kombinasi yang digunakan dalam bahasa Indonesia seringkali tidak ditemukan
pada bahasa Inggris.
Perumusan Masalah
Penelitian ini dilakukan untuk mengatasi masalah :
1. Apakah algoritme Soundex sesuai untuk teks bahasa Indonesia?
2. Apakah algoritme Soundex Fusion akan tetap menghasilkan nilai recall dan
precision yang sesuai dengan penelitian Holmes & McCabe (2002) terhadap
teks bahasa Indonesia?

2

Tujuan Penelitian
Penelitian ini bertujuan untuk mengimplementasikan algoritme Soundex
Fusion terhadap teks bahasa Indonesia.

Manfaat Penelitian
Penelitian ini diharapkan dapat membantu seseorang ketika melakukan
pencarian teks berbahasa Indonesia pada mesin pencari. Diharapkan penelitian ini
bermanfaat untuk mesin pencari dengan penambahan pembetulan pada kesalahankesalahan bahasa alami seperti kesalahan penulisan dan pengejaan. Pengurangan
terhadap tingkat kesalahan tersebut akan meningkatkan hasil pencarian yang lebih
relevan untuk pengguna.

Ruang Lingkup Penelitian
 Jenis algoritme yang digunakan dalam penelitian ini adalah algoritme Soundex
Fusion hasil penelitian Holmes dan McCabe (2002).
 Koleksi dokumen dan query yang digunakan adalah dokumen yang
mengandung teks bahasa Indonesia

METODE
Untuk melakukan penelitian ini diperlukan beberapa tahap yang akan
dijalankan seperti pengumpulan dokumen, indexing, perubahan kata menjadi kode
Soundex, similarity, dan evaluasi (Gambar 1).
Pengumpulan Dokumen
Penelitian ini diawali dengan pengumpulan dokumen yang memiliki teks
berbahasa Indonesia. Dokumen yang diambil adalah dokumen berita yang
terdapat di Internet berupa berita olahraga, berita kriminal, dan lain-lain. Jumlah
dokumen yang digunakan sebanyak 1300 dokumen. Contoh dokumen
dicantumkan pada Gambar 2.
Tokenisasi
Tokenisasi merupakan sebuah algoritme untuk mendapatkan token dari
suatu berkas teks (Manning et al. 2008). Tokenisasi melakukan pemisahan
terhadap isi dokumen menjadi unit yang paling kecil atau biasa disebut juga kata.
Tokenisasi dapat menangani pengolahan linguistik tambahan seperti normalisasi
tanggal, stemming, dan lain-lain. Tokenisasi dapat diperluas untuk menangani
sumber data baru, jenis file baru, dan bahasa baru (Dumais et al. 2003). Proses
tokenisasi dilakukan untuk seluruh korpus yang telah tersedia.

3

Pengumpulan Dokumen

Tokenisasi

Query

Pembuangan Stopwords
Indexing
Pemilihan Fitur

Indexing

Pembobotan

Perubahan kata ke kode
Soundex

Similarity

Evaluasi

Gambar 1 Diagram metodologi penelitian
Pembuangan Stopwords
Stopwords merupakan kata umum yang biasanya sering muncul dalam
jumlah besar pada suatu dokumen tetapi tidak memiliki makna. Stopwords
dibuang pada sistem temu-kembali informasi karena dianggap akan mengurangi
nilai akurasi dari suatu informasi yang di temu-kembalikan (Manning et al. 2008).
Stopwords dihapus selama pengindeksan sebelum dimasukkan query pada
suatu sistem temu-kembali informasi. Penggunaan stopwords tunggal yang tetap
pada beberapa dokumen yang berbeda akan mempengaruhi efektivitas dari hasil
yang ditemu-kembalikan(Lo et al. 2005). Contoh dari kata stopwords antara lain
“ke”, “dan”, “atau”, dan lain-lain. Kata stopwords tidak selalu sebagai kata
hubung, dapat sebagai kata-kata biasa yang banyak ditemukan di dokumen tetapi
tidak relevan terhadap ciri dari dokumen tersebut.

4

Gambar 2 Contoh dokumen

Pemilihan Fitur
Pemilihan istilah untuk dijadikan indeks merupakan isu yang penting dalam
sistem temu-kembali informasi. Proses pemilihan istilah ini disebut dengan seleksi
fitur. Seleksi fitur dapat menyebabkan berkurangnya ukuran indeks sehingga
proses retrieval suatu dokumen menjadi lebih cepat. Tugas utama seleksi fitur
adalah menentukan istilah-istilah yang layak dijadikan term index atau membuang
istilah-istilah yang tidak mungkin dijadikan indeks dari sebuah dokumen.
Pada penelitian ini digunakan inverse document frequency (IDF) sebagai
teknik pemilihan fitur. IDF mampu menentukan bobot term yang ada pada sebuah
dokumen. Bobot pada term menandakan tingkat relevan suatu term terhadap
dokumen. Suatu term dengan nilai IDF kecil berarti term tersebut tidak mungkin
dijadikan indeks dari dokumen. Pada penelitian ini digunakan threshold sebesar
0.14. Term yang memiliki nilai IDF yang lebih kecil dari nilai threshold akan
dihilangkan. Dengan ukuran indeks yang lebih kecil proses retrieval suatu
dokumen akan lebih cepat. IDF dari kata t adalah :
=



(1)

dengan N adalah jumlah dokumen yang tersedia, dan dft adalah banyaknya
dokumen yang memiliki term t. Teknik ini berguna untuk dokumen yang tidak
memiliki panjang yang sama, tetapi tetap efektif dalam penentuan bobot suatu
term pada dokumen (Manning et al. 2008).
Pembobotan
Pembobotan merupakan tahap yang paling penting dalam proses
pengindeksan. Tujuan dari proses ini adalah untuk memberikan nilai bobot pada
suatu term untuk merepresentasikan ciri dari suatu dokumen. Nilai yang
didapatkan pada proses pembobotan akan membentuk suatu sistem peringkat,

5
yang akan mengurutkan term terhadap dokumen dengan tingkat kemiripan
tertinggi ke tingkat kemiripan terendah. Pemeringkatan adalah mekanisme
pengurutan term berdasarkan tingkat relevansi antara dokumen tersebut dengan
query yang diberikan oleh pengguna.
Term frequency (TF) dan IDF merupakan teknik pembobotan yang sering
digunakan untuk membentuk suatu sistem temu-kembali informasi.
Term Frequency
Term frequency (TF) merupakan suatu teknik pembobotan yang menghitung
jumlah kemunculan term pada suatu dokumen d. Cara menghitung TF adalah
dengan menghitung jumlah kemunculan kata yang telah diproses pada proses
sebelumnya lalu hitung jumlah kemunculannya pada masing-masing dokumen.
Hasilnya dapat diurutkan sesuai dengan jumlah kemunculan suatu kata pada
dokumen. Pada perkembangan teknik ini, dibutuhkan nilai threshold untuk
memotong sebuah index yang telah dibobotkan pada bagian atas atau bawahnya.
Ini berguna untuk mengambil suatu term yang benar-benar berpengaruh pada
suatu dokumen yang nantinya akan dijadikan sebuah ciri dari suatu dokumen
(Manning et al. 2008).
Kelemahan dari teknik ini adalah ketika beberapa dokumen tidak memiliki
panjang dokumen yang sama, kesesuaian teknik TF menjadi samar. Misalnya
pada dokumen pertama yang memiliki panjang dokumen lebih besar dibandingkan
dokumen kedua, kata “informasi” mungkin lebih banyak dimiliki oleh dokumen
pertama. Padahal belum tentu kata tersebut dapat dijadikan suatu ciri untuk
dokumen pertama.
Inverse Document Frequency
Inverse document frequency (IDF) merupakan suatu teknik perbaikan dari
TF. IDF menghitung jumlah dokumen yang memiliki suatu term tertentu
dibandingkan dengan jumlah keseluruhan dokumen. Rumus dari IDF sesuai
dengan Persamaan 1.
Pada kenyataannya hasil dari IDF hanya melihat dari sisi dokumen sehingga
TF dan IDF digabungkan menjadi :
tf.idft,d = tft,d × idft
dengan
, adalah hasil TF untuk kata t pada dokumen d, dan idft adalah hasil
IDF untuk kata t.
Perubahan Kata ke Kode Soundex
Soundex merupakan algoritme fonetik yang digunakan untuk mengurangi
kesalahan pengetikan query akibat kesalahan pengucapan. Algoritme Soundex
dikembangkan pertama kali oleh Russell (dalam Holmes dan McCabe 2002)
dengan membuat pengkodean untuk kata yang memiliki lafal sama. Pendekatan
algoritme Soundex tradisional masih memiliki kelemahan. Dengan memberikan
sebuah kode fonetik untuk sebuah kata berarti menganggap algoritme tersebut
cocok untuk segala kondisi, padahal tidak demikian. Sebagai alternatif, algoritme

6
Tabel 1 Klasifikasi Error (Damerau 1964)
Type of error
Insertion
Omission
Substitution
Transposition

Baseline name
Fisher
Johnston
Catherine
Hagler

Deviation
Fischer
Johnson
Katherine
Halger

yang ada bisa digabung supaya lebih baik dan cocok di segala kondisi (Holmes
dan McCabe 2002).
Pada perkembangannya, teknik Soundex sudah memiliki banyak perbaikan.
Kemunculan algoritme baru tentang pengkodean Soundex telah berkembang
untuk menghasilkan nilai precision dan recall yang lebih baik. Algoritme yang
muncul antara lain adalah Russell, Celko, Fuzzy, dan Soundex Fusion. Teknik
Soundex memiliki spelling errors (Tabel 1) yang masih menjadi masalah utama
dalam algoritme Soundex.
Soundex Russell
Algoritme Soundex Russell adalah sebuah algoritme Soundex pertama kali
yang dikembangkan dengan melakukan pengelompokan terhadap enam klasifikasi
fonetik dari suara manusia (bilabial, labiodental, dental, alveolar, velar, dan
glottal), dimana klasifikasi tersebut berdasarkan posisi bibir dan lidah untuk
membuat suara (Arifin, 2006). Untuk suatu kata t algoritme Soundex Russell
adalah sebagai berikut:
1. Ubah seluruh huruf pada kata t menjadi huruf kapital
2. Buang seluruh tanda baca pada kata t
3. Huruf pertama pada kata t tidak diikutkan dalam
konversi kode
4. Konversi kata t ke kode Soundex (Tabel 2).
5. Jika terdapat kode yang sama dengan kode sebelumnya,
maka kode tersebut dibuang
6. Buang semua kode '0'
7. Panjang kode Soundex maksimal empat karakter. Jika
kurang dari empat karakter, maka ditambahkan angka 0.
Jika lebih dari 4 karakter, maka 4 karakter yang paling
awal yang diambil.

Gambar 3 Algoritme Soundex Russell
Soundex Celko
Pada umumnya, Soundex Celko tidak jauh berbeda dibandingkan dengan
algoritme Soundex Russell (Tabel 2). Tetapi, pada Soundex Celko tidak
mengubah sebuah konsonan menjadi angka. Ada beberapa huruf yang menjadi
gabungan suatu huruf yang lain. Aturan ini didasarkan pada penelitian Celko
(Holmes dan McCabe 2002) untuk meningkatkan nilai relevansi suatu query.
Celko mengembangkan algoritme untuk perubahan suara huruf yang
bergantung dari n-gram. Sebagai contoh, algoritme ini akan mengganti huruf “t”
dengan “s” ketika ditemukan pada trigam “nst”, atau mengganti “ca” dengan “ka”
dan seterusnya akan mengurangi nilai error substitutions seperti yang dijelaskan

7
oleh Damerau (1964). Berikut adalah aturan yang dijelaskan oleh Celko (Holmes
& McCabe 2002) :
1. Prefix substitution, pergantian yang terbatas pada prefiks. Contohnya
adalah mengganti “Mac” dengan “Mcc”.
2. Suffix substitution, yaitu pergantian pada suffiks. Contohnya adalah
mengganti terminal “t” ketika didahului oleh huruf “n” atau “ns”.
3. Non-positional substitution. Kebanyakan substitusi n-gram memiliki
rule yang tidak memiliki ketergantungan pada kata. Contohnya, adalah
menempatkan “ca” dengan “ka”.
4. Silent letters. Contohnya adalah mengubah “sch” dengan “sss”. Contoh
kata yang menggunakan ini adalah “Bush” dan “Busch”, “Fisher” dan
“Fischer”.
Tabel 2 Tabel pengelompokan konsonan algoritme Soundex Russell dan
Celko (Holmes & McCabe 2002)
Alfabet
A,I,U,E,O,H,W,Y
B,F,P,V
C,G,J,K,Q,S,X,Z
D,T
L
M,N
R

Russell
0
1
2
3
4
5
6

Celko
A,I,U,E,O,H,W,Y
B,F,P,V
C,G,J,K,Q,S,X,Z
D,T
L
M,N
R

Soundex Fuzzy
Pada Soundex Fuzzy, aturan substitusi n-gram mengikuti aturan Soundex
Celko. Tetapi, huruf yang diambil untuk proses Soundex ditambah menjadi lima
huruf. Dengan menambahkan huruf menjadi lima pada terjemahan menggunakan
Soundex Fuzzy, kesalahan yang terdapat pada akhir kata dapat diidentifikasi.
Tabel 3 menjelaskan translasi untuk Soundex Fuzzy.
Tabel 3 Translasi Soundex Fuzzy (Holmes dan McCabe 2002)
Kelompok
0
1
2
3
4
5
6

Alfabet
A,I,U,E,O,H,W,Y
F,V
S,X,Z
L
R
M,N
B,C,D,P,K,T,G,J,Q

Soundex Fusion
Dengan mengkombinasikan aturan Fuzzy, Celko, dan Russell, Holmes dan
McCabe mencoba untuk menghasilkan kode Soundex yang beraneka ragam pada
kata yang dicoba. Metode Fusion menggunakan Dice coefficient dan n-gram

8
Tabel 4. Translasi Soundex Fusion
Tipe Soundex
Fuzzy
Fuzzy
Fuzzy
Fuzzy
Celko
Celko
Celko
Russell
Russell
Russell

Kristen
K6935
K693
K69
K6
KRST
KRS
KR
K623
K62
K6

Krissy
K6900
K690
K69
K6
KRSY
KRS
KR
K620
K62
K6

Christen
K6935
K693
K69
K6
CRST
CRS
CR
C623
C62
C6

menghasilkan nilai kemiripan dari sebuah kode Soundex (Holmes dan McCabe
2002). Contoh translate menggunakan Soundex Fusion pada Tabel 4.
Pada perkembangannya, algoritme yang dilakukan oleh Holmes dan
McCabe (2002) menggunakan code shifting. Code shifting adalah algoritme yang
membagi kode menjadi beberapa panjang kode. Dengan menggunakan code
shifting, kita dapat menemukan kesalahan pada akhir sebuah kata. Code shifting
digunakan untuk mengurangi insertion dan omission errors yang dijelaskan
Damerau (1964). Code shifting dapat meningkatkan nilai recall dan precision
hinggal 96% (Holmes & McCabe 2002). Tabel 5 menjelaskan untuk perhitungan
substitusi n-gram pada translasi menggunakan algoritme Soundex Fusion
Similarity
Nilai kemiripan digunakan untuk membandingkan hasil query dengan
inverted index yang sudah diubah berdasarkan kode Soundex. Nilai kemiripan
akan berpengaruh terhadap hasil yang ditemu-kembalikan oleh sistem. Cara
menghitung nilai kemiripan dengan menggunakan Dice coefficient dan Okapi
BM25. Dice coefficient merupakan perhitungan kemiripan untuk kode Soundex
query dengan kode Soundex pada database, sedangkan BM25 untuk menghitung
hubungan antara suatu kata dengan dokumen.
Dice Coefficient
Perhitungan Dice coefficient digunakan untuk menghitung nilai kemiripan
antara kedua kode Soundex. Rumus dari Dice coefficient adalah sebagai berikut
� =

(2�)
( + )

dengan α adalah jumlah kode Soundex pada query, β adalah jumlah kode Soundex
pada term yang ada di inverted index, dan X adalah jumlah irisan yang sama
antara query dan term. Perhitungan Dice coefficient digunakan pada algoritme
Fuzzy dan Fusion. Khusus untuk algoritme Fuzzy, dilakukan prosen n-gram
substitution terlebih dahulu pada proses translate sebelum menghitung nilai
similarity.

9
Tabel 5 Substitusi n-gram
N-grams
Prefix Suffix Any
CA
KA
CC, CK
KK
CE
SE
CH
KK
CHL, CL
KL
CHR, CR
KR
CI
SI
CO
KO
CS, CZ, TS, TZ
SS
CU
KU
CY
SY
DG
GG
GH
HH
GN
NN
HR, WR
RR
HW
WW
KN, NG
NN
MAC, MC
MK
NST
NSS
NT
TT
PF, PH
FF
RT, RDT
RR
SCH
SSS
TIO, TIA
SIO
TCH
CHH

Okapi BM25
Perhitungan Okapi BM25 berguna untuk menghitung hubungan antara
query dengan dokumen. Rumus untuk Okapi BM25 adalah sebagai berikut
(Manning et al. 2008).
BM25=

N- nt (k 1 + 1)fd,t (k 3 + 1)fq,t
. k +f
t∈Q ( log n ). K+ f
3
q,t
t
d,t

dengan adalah total dokumen yang mengandung term tersebut, N adalah jumlah
total keseluruhan dokumen, fd,t adalah jumlah term t yang muncul dalam dokumen
d, dan fq,t adalah jumlah term t yang muncul pada query q, dan nilai � (Manning
et al. 2008) yaitu
K= k 1 .( 1-b +

b.dld
)
avl

dengan dld adalah panjang dokumen d, avl adalah panjang rata-rata seluruh
dokumen, dan k 1 , k 3 , b adalah tuning parameters. Tuning parameters adalah
suatu variabel yang nilai nya dapat kita ubah sesuai dengan kebutuhan kita. Pada
percobaan ini nilai k 1 = 1.2, k 3 = 1.2, dan b = 0.75.

10
Query yang digunakan pada percobaan ini 60 query. 30 query menggunakan
satu kata dan 30 lainnya menggunakan lebih dari satu kata. Untuk perlakuan
antara query tersebut berbeda-beda.
1. Input query q satu kata
2. Ubah query q ke kode Soundex Fusion
3. Cari kata yang memiliki kode Soundex yang mirip dengan
query q
4. Untuk setiap kata yang didapat dari hasil pencarian,
ubah ke kode Soundex
5. Hasil kata dihitung nilai Dice coefficient terhadap
query q dan Okapi BM25 terhadap dokumen.
6. Untuk setiap kata t dan dokumen d, dihitung hasil kali
dari Dice coefficient dan BM25
7. Untuk setiap record data yang di retrieve, jika
memiliki dokumen yang sama, dihitung rata-rata dari
hasil kali Dice coefficient dan BM25
8. Urutkan hasil perhitungan langkah sebelumnya
9. Cari dokumen berdasarkan dokumen ID dan urutan lalu
ditampilkan ke pengguna

Gambar 4 Algoritme perhitungan Soundex untuk satu kata

1. Input query q lebih dari satu kata
2. Pisah query q menjadi satu kata query q1, q2, q3, dan
selanjutnya.
3. Ubah query q1 ke kode Soundex Fusion
4. Cari kata yang memiliki kode Soundex yang mirip dengan
query q1
5. Untuk setiap kata yang didapat dari hasil pencarian
query q1, ubah ke kode Soundex
6. Hasil kata dihitung nilai Dice coefficient terhadap
query q dan Okapi BM25 terhadap dokumen.
7. Untuk setiap kata t dan dokumen d, dihitung hasil kali
dari Dice coefficient dan BM25
8. Ulangi langkah 3 sampai 7 untu query q2, q3, dan
selanjutnya. Simpan data pada satu tempat yang sama
dengan q1.
9. Untuk setiap record data yang di retrieve, jika
memiliki dokumen yang sama, dihitung rata - rata dari
hasil kali Dice coefficient dan BM25.
10. Urutkan hasil perhitungan langkah sebelumnya
11. Cari dokumen berdasarkan dokumen ID dan urutan lalu
ditampilkan ke pengguna.

Gambar 5 Algoritme Perhitungan Soundex untuk lebih dari satu kata
Untuk query satu kata hasil pencarian memiliki informasi yang lebih relevan.
Ini disebabkan pencarian Soundex hanya terpusat pada satu kata (Gambar 4).
Query dengan lebih dari satu kata diperlukan pemisahan kata terlebih dahulu lalu
dicari untuk masing-masing kata dalam query tersebut menggunakan algoritme
Soundex. Hasil dari masing-masing kata query dikumpulkan dalam satu tempat
lalu diurutkan (Gambar 5).

11

Evaluasi
Recall dan precision adalah dua ukuran yang umum digunakan untuk
mengevaluasi kualitas dari temu-kembali informasi. Dalam temu-kembali
informasi, precision didefinisikan sebagai jumlah dari dokumen relevan yang
ditemu-kembalikan dibagi dengan jumlah total dokumen yang ditemu-kembalikan
dari hasil pencarian. Recall didefinisikan sebagai jumlah dari dokumen relevan
yang ditemu-kembalikan dibagi dengan jumlah total dokumen relevan yang ada
dalam koleksi.
Recall dan precision dapat dinyatakan sebagai berikut (Baeza-Yates dan
Ribeiro-Neto 1999).
�∩�

=


�∩�

dengan A adalah jumlah dokumen yang ditemukan, R adalah jumlah dokumen
yang relevan dalam koleksi, dan A∩R adalah jumlah dokumen yang relevan yang
ditemukan.
Menurut Baeza-Yates dan Ribeiro-Neto (1999), temu-kembali yang
dievaluasi menggunakan beberapa kueri berbeda akan menghasilkan nilai recall
dan precision yang berbeda untuk masing-masing query. Average precision
(AVP) dengan interpolasi maksimum diperlukan untuk menghitung rata-rata
precision pada berbagai 11 tingkat recall. Perhitungan AVP ditunjukkan oleh
rumus sebagai berikut:


=

�( ) =



=1

�( )


dengan P(rj ) adalah nilai AVP pada tingkat recall r, Nq adalah jumlah query
yang digunakan dan Pi (r) adalah nilai precision pada level recall r untuk query
ke-i.

HASIL DAN PEMBAHASAN
Pengumpulan Dokumen
Dokumen yang digunakan untuk pengujian berjumlah 1300 dokumen. 1000
dokumen pertanian berasal dari korpus yang tersedia di Laboratorium Temu
Kembali Informasi dan 300 lainnya berasal dari portal berita online. Dokumen
yang digunakan berformat plain text dengan struktur XML. Dokumen
dikelompokkan menjadi tag-tag sebagai berikut:
 , menunjukkan ID dari dokumen.
 , menunjukkan judul dari dokumen.
 , menunjukkan isi dari dokumen.

12
Dokumen yang telah terkumpul berupa file (xml) dimasukkan kedalam tabel
dokumen pada database MySQL. Field pada tabel dokumen antara lain id
dokumen, title, dan content. Judul berita akan dimasukkan pada field title. Isi dari
berita akan dimasukkan pada field content.
Selain dokumen yang telah disiapkan, pada 1000 dokumen pertanian
tersebut juga ikut tersedia 60 query yang akan digunakan dalam pencarian, berikut
dengan daftar dokumen yang relevan dari query-query tersebut. Query yang
digunakan dibedakan menjadi dua bagian, query yang hanya memiliki lebih dari
satu kata (Lampiran 2) dan query yang hanya memiliki satu kata (Error!
Reference source not found.).
Tokenisasi
Setelah dokumen dimasukkan ke dalam database, kemudian dilakukan
tokenisasi. Proses tokenisasi dilakukan dengan bantuan Sphinx Search karena
tokenisasi dengan Sphinx tergolong mudah dan cepat dalam prosesnya. Selain itu,
Sphinx juga mendukung pemrosesan dokumen yang berasal dari database.
Sebelum dilakukan proses indexing, terlebih dahulu dilakukan konfigurasi
pada Sphinx. File konfigurasi untuk Sphinx yang digunakan adalah file sphinxmin.conf.in. Pada file konfigurasi ini terdapat pengaturan koneksi database dan
pengaturan lainnya termasuk jumlah minimal huruf pada kata yang akan diindeks.
Kata yang diindeks adalah kata yang memiliki jumlah minimal 3 huruf, sehingga
untuk kata yang kurang dari 3 huruf tidak akan diindeks.
Setelah service dari Sphinx dibuat dan koneksi ke database untuk tabel
document telah dibuat pada file konfigurasi Sphinx, proses indexing dapat
dilakukan. Pada akhirnya didapatkan indeks kata yang berasal dari 1300 dokumen
yang berada pada tabel document di dalam database.
Proses tokenisasi dengan menggunakan Sphinx sangat membantu karena
prosesnya sangat cepat dibandingkan dilakukan secara manual. Pembagian
menggunakan Sphinx mengurangi tingkat kesalahan human error dalam proses
tokenisasi. Tetapi pada Sphinx tidak dilakukan stemming untuk kata-kata yang
memiliki imbuhan.
Pembuangan Stopwords
File yang berisi stopwords telah tersedia sebelumnya dan berjumlah 732
kata stopwords. Pada file konfigurasi Sphinx terdapat bagian untuk menentukan
letak dari file stopwords yang berupa text file. Setelah dimasukkan path dari file
stopwords tersebut, maka saat proses indexing dijalankan, kata-kata yang terdapat
pada file stopwords tersebut otomatis tidak akan ikut terindeks.
Akan tetapi, masih terdapat kata-kata yang mengandung angka, seperti
tahun, tanggal lahir, dan angka lainnya. Kata yang mengandung angka tersebut
tidak diperlukan karena pada query yang digunakan, tidak ada query yang
memiliki angka. Angka-angka yang ikut terindeks tersebut dihilangkan.

13
Pemilihan Fitur
Untuk setiap token yang didapatkan dihitung nilai IDF sesuai Persamaan 1.
IDF digunakan untuk mencari token yang tidak penting dalam sebuah dokumen.
Threshold yang digunakan pada tahap ini adalah 0,14. Untuk setiap token yang
memiliki nilai IDF di bawah nilai threshold dihilangkan dari list token. Tahap ini
membantu untuk pencarian informasi yang lebih relevan dengan membuang token
di bawah nilai IDF tersebut.
Penentuan nilai threshold diperhitungkan berdasarkan tingkat sebaran nilai
IDF dari kata-kata yang didapat dari proses tokenisasi. Selain itu, diperhatikan
pula nilai dari suatu kata yang terdapat pada query. Sebagai contoh untuk kata
"pertanian" memiliki nilai IDF sebesar 0.14 tidak dilakukan proses pemilihan fitur.
Ini disebabkan banyaknya query yang mengandung kata tersebut dan akan
berpengaruh pada hasil penelitian jika kata tersebut dibuang. Atas pertimbangan
tersebut maka nilai threshold ditetapkan sebesar 0.14 dengan 5 kata yang dihapus
karena memiliki nilai IDF kurang dari 0.14.
Pembobotan
Untuk meningkatkan hasil pencarian sebuah informasi dibutuhkan
perhitungan pembobotan untuk setiap dokumen dan token. Tahap ini
menggunakan perhitungan TF-IDF sebagai nilai bobot. Untuk setiap token
dilakukan pencarian nilai TF pada setiap dokumen. Misalnya terdapat n kata
untuk token t pada dokumen i. Hasil dari perhitungan IDF dikalikan dengan hasil
TF untuk id dokumen dan id token yang sama. Hasil dari perhitungan TF-IDF ini
disimpan dalam database. Karena format dari tabel TF-IDF sama dengan TF,
maka nilai TF-IDF dimasukkan pada tabel TF dengan menambah field baru yaitu
TF-IDF.
Nilai TF-IDF, TF, dan IDF digunakan untuk proses perhitungan BM25
antara query dan dokumen. Proses penyimpanan nilai ini sangat berguna pada
proses perhitungan karena akan mempercepat proses kalkulasi bobot dari
dokumen yang ditemukan.

Tabel 6 Fusion Soundex Translate
Tipe Soundex
Russell
Russell
Russell
Celko
Celko
Celko
Fuzzy
Fuzzy
Fuzzy
Fuzzy

Institut
I523
I52
I5
INST
INS
IN
I5266
I526
I52
I5

14
Perubahan Kata ke Kode Soundex
Untuk setiap token, dilakukan konfersi ke seluruh algoritme kode Soundex.
Diawali dengan Soundex Russell, setiap token memiliki kode Soundex Russell
masing-masing dengan mengikuti aturan terjemahan Soundex Russell. Perubahan
token ke Soundex Celko dan Soundex Fuzzy dilakukan seperti pada Soundex
Russell. Tapi pada algoritme Celko dan Fuzzy, diperlukan aturan substitusi ngram terlebih dahulu. Aturan ini diperlukan untuk mengurangi kesalahankesalahan translate ke kode Soundex pada konsonan yang dimungkinkan mirip
dengan konsonan lainnya. Aturan ini dapat mengurangi kesalahan pada prefix dan
suffix pada sebuah kata. Aturan ini pun dapat mengurangi konsonan yang
memiliki ucapan yang sama ketika bersebelahan.
Soundex Fusion berbeda dengan algoritme sebelumnya. Soundex Fusion
memakai kode Russell, Celko, dan Soundex Fuzzy lalu melakukan pengurangan
terhadap bit pada hasil translasi di setiap algoritme. Hasil dari translasi pada
algoritme sebelumnya digunakan pada Soundex Fusion. Contoh untuk Soundex
Fusion pada kata “institut” dijelaskan pada Tabel 6.
Translasi kode Soundex dilakukan untuk seluruh token yang ada
menggunakan algoritme Soundex Fusion. Hasil kode Soundex disimpan dalam
database dalam field untuk semua jenis kode. Field "russell4" menyimpan kode
Soundex Russell kata t sebanyak 4 bit. Begitupun dengan field "russell3",
"russell2", "celko4", dan selanjutnya. Kode Soundex ini dibutuhkan untuk proses
Soundex Fusion.
Proses translate pun dilakukan untuk query. Pencarian kode Soundex yang
mirip dilakukan dengan mencari kode Soundex yang sama dengan kata pada
database minimal satu kode misalnya hanya untuk kode Soundex Russell dengan
4 bit saja, 3 bit saja, atau yang lainnya. Kata yang diambil akan diproses
selanjutnya untuk proses perhitungan Dice coefficient.
Similarity

Gambar 6 Proses pencarian kata berdasarkan kode soundex
Tahap ini menggunakan perhitungan Dice coefficient dan Okapi BM25
sebagai perhitungan tingkat kemiripan. Untuk query dilakukan translasi ke
Soundex Fusion terlebih dahulu. Lalu dilakukan pencarian dengan kode Soundex
Fusion pada database terhadap kode Soundex Fusion pada query (Gambar 6).
Contohnya pada query “instan” akan membentuk kode Soundex Fusion dijelaskan
pada Tabel 7.

15
Query yang sudah di-translate dilakukan pencarian kata pada database.
Sebagai contoh, sebuah query "institut" akan menemukan kata "instan" karena
memiliki beberapa kode Soundex yang sama. Perhitungan nilai Dice coefficient
sebagai berikut :

Tabel 7 Query Soundex Fusion Translate
Soundex Type
Russell
Russell
Russell
Celko
Celko
Celko
Fuzzy
Fuzzy
Fuzzy
Fuzzy

Instan
I523
I52
I5
INSN
INS
IN
I5250
I525
I52
I5

� =

(2 ∗ 7)
= 0.7
(10 + 10)

Nilai tujuh didapatkan dari seberapa banyak kode query yang sama dengan kode
term. Nilai sepuluh didapatkan dari banyaknya variasi kode pada sebuah kata
tersebut. Pada penelitian ini nilai minimum dari Dice coefficient ditentukan
sebesar 0.9. Pembatasan nilai Dice coefficient bermaksud untuk mempercepat
proses perhitungan sehingga akan menghilangkan kata-kata yang tidak relevan.
Setelah melakukan perhitungan Dice coefficient, dilakukan perhitungan
Okapi BM25 untuk setiap kata yang relevan dengan query. Adapun nilai tuning
parameters yang digunakan yaitu 1 = 1.2, 3 = 1.2, dan = 0.75.
Untuk mempermudah perhitungan rumus dari BM25 dibagi menjadi tiga bagian.
Bagian pertama yaitu menghitung nilai K, lalu perhitungan nilai part1 yaitu nilai IDF
dari suatu term t. Part2 yaitu nilai 1 yang dikalikan dengan TF suatu term t pada
dokumen d dan dibagi dengan hasil dari nilai K dikurangi TF suatu term t pada
dokumen d. Sedangkan untuk part3 memperhitungkan nilai 3 dengan qt suatu term t
pada dokumen d. BM25 akan didapatkan dengan mengalikan seluruh perhitungan
part1, part2, dan part3 (Gambar 7).
Hasil dari perhitungan Dice coefficient dan Okapi BM25 untuk setiap term t
pada dokumen d akan dikalikan. Hasil dari perhitungan tersebut digunakan sebagai
nilai dari similarity suatu query t terhadap dokumen d. Hasil tersebut akan diurutkan
dari terbesar hingga terkecil untuk mengurutkan hasil pencarian.
Jika pada hasil yang ditemukan ada beberapa term yang memiliki id dokumen

Gambar 7 Perhitungan Okapi BM25

16
yang sama, nilai dari hasil perkalian Dice coefficient dan Okapi BM25 akan dihitung
kembali untuk mencari rata-rata terhadap dokumen tersebut. Sebagai contoh jika
suatu query “Institut” memiliki term yang relevan yaitu “Instan” dan “Instuisi” dan
berada pada id dokumen yang sama, maka nilai dari perkalian Dice coefficient dan
Okapi BM25 dari term “Instan” dan “Instuisi” akan diambil rata-rata.
Seluruh perhitungan yang ada disajikan dalam sebuah software menggunakan
platform website untuk mempermudah implementasi. User dapat menggunakan query
sebagai bahan pencarian dokumen. Query akan diproses seluruhnya menggunakan
website tersebut. Pada website, user dapat melihat hasil dokumen yang ditemukembalikan serta dapat melihat perhitungan dari masing-masing dokumen yang
ditemu-kembalikan (Lampiran 1)

Evaluasi
Setelah dilakukan proses similarity dan didapatkan skor kesamaan antara
query dengan dokumen yang ada, selanjutnya dilakukan proses evaluasi. Proses
evaluasi dilakukan dengan mencari nilai precision dan nilai recall. Untuk setiap
query, dihitung nilai precision pada setiap nilai recall standar (eleven standard
recall), yaitu 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, dan 1.0.
Setelah didapatkan nilai precision pada sebelas nilai recall untuk setiap
query, kemudian dicari nilai average precision (AVP). Nilai inilah yang
digunakan untuk mengetahui kinerja dari tiap-tiap perubahan nilai k1 dan b yang
diujikan.Setelah didapatkan nilai precision pada sebelas nilai recall untuk setiap
query, kemudian dicari nilai average precision (AVP).
Dari percobaan yang dilakukan terhadap 30 query dengan jumlah kata lebih
dari satu didapatkan nilai precision sebesar 0.145. Sedangkan untuk 30 query
dengan jumlah kata satu didapatkan nilai precision sebesar 0.390. Percobaan ini
dilakukan pula untuk 1000 dokumen yang didapat dari lab Temu Kembali

Grafik Recall Precision 1300 Dokumen
1
P
R
E
C
I
S
I
O
N

0,9
0,8
0,7
0,6
0,5
0,4

Banyak Kata Query

0,3

Satu Kata Query

0,2
0,1
0
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
RECALL

Gambar 8 Grafik recall precision untuk 1300 dokumen

17

Grafik Recall Precision 1000 Dokumen
1
P
R
E
C
I
S
I
O
N

0,9
0,8
0,7
0,6
0,5
0,4

Banyak Kata Query

0,3

Satu Kata Query

0,2
0,1
0
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
RECALL

Gambar 9 Grafik recall precision untuk 1000 dokumen
Informasi. Dari percobaan yang dilakukan terhadap 30 query dengan jumlah kata
lebih dari satu didapatkan nilai precision sebesar 0.166. Sedangkan untuk 30
query dengan jumlah kata satu didapatkan nilai precision sebesar 0.413.
Perbedaan ini disebabkan oleh banyak hal, seperti jumlah query yang lebih dari
satu kata, dokumen tambahan sebanyak 300 dokumen tidak memiliki topik yang
sama dengan 1000 dokumen yang ada sebelumnya, dan sistem pemeringkatan
yang sulit dilakukan karena banyaknya term yang terkumpul dengan kode
Soundex yang sama.
Query yang digunakan lebih dari satu akan mempengaruhi hasil yang
ditemukan oleh sistem. Ini disebabkan karena data yang disimpan pada database
merupakan suatu kata, bukan suatu frasa ataupun kalimat. Sedangkan untuk
membandingkan sebuah kode Soundex yang baik harus mengikuti jumlah kata
dari query yang digunakan. Misalkan untuk sebuah query “gagal panen”, pada
database harus disimpan sebuah data frasa seperti “gagal pergi”, “gigi perih”, dan
lain-lain. Hal tersebut berguna untuk memperhitungkan seberapa besar nilai Dice
coefficient dari dua kata tersebut.
Tetapi pada penelitian ini, query yang digunakan akan dipisah menjadi satu
kata. Misalkan untuk query “gagal panen”, akan dipisahkan menjadi “gagal” dan
“panen”. Kata “gagal” memiliki Soundex yang relevan dengan kata “gigi”,
“guling”, dan “gagal”, sedangkan untuk kata “panen” memiliki Soundex yang
relevan dengan kata “panas”, “pintu” dan “panen”. Hasil dari kata yang relevan
dari kedua kata query tersebut digabungkan dan dicari dokumen yang relevan
berdasarkan nilai BM25 lalu diurutkan. Perhitungan ini yang menyebabkan
perbedaan hasil antara query yang lebih dari satu kata dengan query yang hanya
satu kata.
Pencarian 300 dokumen tambahan dengan topik yang berbeda dari 1000
dokumen yang ada sebelumnya mempengaruhi hasil yang ditemukan. Terlihat
pada hasil grafik untuk 1300 dokumen (Gambar 8) dengan grafik untuk 1000

18
dokumen saja (Gambar 9) memiliki perbedaan hasil. Percobaan yang hanya
menggunakan 1000 dokumen memiliki hasil yang lebih baik dibandingkan
dengan 1300 dokumen. Dapat disimpulkan bahwa dokumen yang berbeda topik
tersebut merupakan noise pada percobaan ini. Ini karena kata-kata yang berada
pada 300 dokumen tersebut banyak yang berbeda. Sedangkan query yang
digunakan seluruhnya hanya relevan terhadap 1000 dokumen tersebut.

SIMPULAN DAN SARAN
Simpulan
Hasil penelitian ini menunjukkan bahwa:
1. Telah dilakukannya algoritme Soundex dengan menggunakan Soundex Fusion
terhadap dokumen teks Bahasa Indonesia. Algoritme Soundex Fusion dapat
digunakan untuk dokumen teks Bahasa Indonesia.
2. Telah dilakukannya sistem pencarian berbasis Soundex Fusion terhadap
dokumen teks Bahasa Indonesia dengan menggunakan nilai kesamaan Dice
coefficient dan Okapi BM25. Dari percobaan yang dilakukan untuk 1300
dokumen terhadap 30 query dengan jumlah kata lebih dari satu didapatkan nilai
precision sebesar 0.145 dan untuk 30 query dengan jumlah kata satu
didapatkan nilai precision sebesar 0.390. Sedangkan percobaan yang dilakukan
untuk 1000 dokumen terhadap 30 query dengan jumlah kata lebih dari satu
didapatkan nilai precision sebesar 0.166 dan untuk 30 query dengan jumlah
kata satu didapatkan nilai precision sebesar 0.413. Dari hasil tersebut dapat
disimpulkan bahwa sistem pencarian berbasis Soundex Fusion tidak dapat
bekerja dengan optimal untuk query dengan jumlah kata lebih dari satu. Ini
disebabkan oleh term yang digunakan tidak memiliki frasa atau tidak memiliki
hubungan kata dengan yang lainnya, keterbatasan karakter yang dimiliki oleh
algoritme Soundex karena tujuan dari pembuatan algoritme Soundex bukan
untuk mencari dokumen dengan teks tetapi dengan suara.
Saran
Terdapat beberapa hal yang dapat ditambahkan ataupun diperbaiki untuk
penelitian-penelitian selanjutnya, di antaranya:
 Menggunakan dokumen dengan topik yang seragam dan tidak adanya
kesalahan pengetikan agar hasil nilai Okapi BM25 sesuai dengan yang
diharapkan.
 Menggunakan gabungan dari kata dan frasa sebagai term yang digunakan agar
hasil dari Dice coefficient yang lebih baik
 Memilih term yang baik untuk pemrosesan Soundex agar tidak banyak term
yang memiliki kode Soundex yang sama.

19

DAFTAR PUSTAKA
Arifin SRZF. 2006. Peranan substitusi n-grams dan code shift pada algoritme
Soundex [skripsi]. Bogor (ID): Institut Pertanian Bogor.
Baeza-Yates, Ribeiro-Neto. 1999. Modern Information Retrieval. England:
Addison-Wesly Publishing Company.
Damerau FJ. 1964. A technique for computer detection and correction of spelling
errors. Communication of the ACM; 1964 Mar; New York, USA. New York
(USA). Communication of the ACM. hlm 171-176.
Dumais S, Cutrell E, Cadiz JJ, Jancke G, Sarin R, Robbins DC. 2003. Stuff I've
seen: a system for personal information retrieval and re-use. di dalam 26th
Annual International ACM SIGIR Conference on Research and Development
in Informaion Retrieval; 2003 Jul; Redmond (USA). hlm 72-79.
Holmes D, McCabe MC. 2002. Improving precision and recall for Soundex
retrieval. International Symposium on Information Technology; 2002 Apr 8-10;
Las Vegas, USA. Las Vegas (USA). IEEE Computer Society. hlm 22-27.
Manning CD, Raghavan P, Schutze H. 2008. Introduction to Information
Retrieval. Cambridge University.
Primasari D. 1997. Metode pencarian dan temu-kembali nama berdasarkan
kesamaan fonetik [skripsi]. Bogor (ID): Institut Pertanian Bogor.

20

LAMPIRAN
Lampiran 1 Antarmuka Implementasi

21
Lampiran 2 Gugus query dan jawaban untuk lebih dari satu kata
Kueri
Bencana
kekeringan

Dukungan
pemerintah
pada pertanian

Flu burung

Gabah kering
giling

Gugus jawaban
gatra070203, gatra161002, gatra210704, gatra301002,
indosiar010903, indosiar170603, indosiar220503, indosiar260803003, indosiar310504, kompas210504, kompas250803,
mediaindonesia050604-001, mediaindonesia110703,
mediaindonesia160603, mediaindonesia240503,
mediaindonesia260803, mediaindonesia270803,
mediaindonesia310503, pikiranrakyat020704, republika030903001, republika030903-002, republika070604-001,
republika090804-01, republika120804-01, republika120804-04,
republika130804-02, republika200603, republika210704-004,
republika250604, republika270503, republika270704-002,
situshijau181103-001, suarakarya000000-002-01,
suarakarya000000-021, suaramerdeka130602,
suaramerdeka190903, suarapembaruan150903,
suarapembaruan180303, suarapembaruan260703-002.
indosiar070504, jurnal000000-026, kompas030401,
kompas050303, kompas060503, kompas071100, kompas150201,
kompas200802, kompas300402, mediaindonesia130204,
mediaindonesia220303, pembaruan110903, poskota040804,
republika100903, republika180303, republika210902,
republika230903, republika251102-001, republika251102-002,
republika300604-001, situshijau150504-002, situshijau190303-002,
situshijau200103-002, situshijau201003-001, situshijau281003-002,
suarakarya000000-028, suaramerdeka130902,
wartapenelitian000000-002, wartapenelitian000000-007.
gatra220604, gatra270104-001, gatra270104-002, gatra300104,
indosiar020304, indosiar240204, mediaindonesia090204,
mediaindonesia140704, mediaindonesia200204, republika090604,
republika120704-005, republika190504-001, republika190604-005,
republika210504-001, republika290704-002, situshijau280404-004,
suarakarya000000-001, suarakarya000000-008, suarakarya000000014, suaramerdeka160204, suaramerdeka200104.
indosiar180603, indosiar240703, indosiar300304, kompas 170402,
kompas030502-001, kompas160704, kompas170903,
mediaindonesia250304, pikiranrakyat300604, republika040303,
republika060804-003, republika100704-003, republika100804,
republika120804-01, republika180504-002, republika210704-001,
republika230704-001, republika231202-001, republika231202-002,
republika290604-003, republika290604-007, situshijau281003-004,
suarakarya000000-007, suaramerdeka090104.

22
Lampiran 2 Lanjutan
Kueri
Gagal panen

Impor beras
Indonesia

Industri gula

Gugus Jawaban
gatra070203, gatra190802, gatra190902-02, gatra301002,
indosiar010504, indosiar031203, indosiar040903, indosiar050704002, indosiar070504, indosiar130504, indosiar140204,
indosiar160304, indosiar170603, indosiar180304, indosiar240703,
indosiar260803-001, indosiar260803-003, kompas030704,
kompas031003, kompas170504, mediaindonesia030603,
mediaindonesia050604-001, mediaindonesia110703,
mediaindonesia140203, mediaindonesia160603,
mediaindonesia240503, mediaindonesia310503, republika030903002, republika060804-001, republika080703, republika090804-01,
republika120804-04, republika130704-001, republika130804-02,
republika200603, republika230704-005, republika260604-003,
situshijau091203-002, situshijau100603-003, situshijau110303-002,
situshijau280404-002, suarakarya000000-002-02,
suarakarya000000-011, suaramerdeka120104,
suaramerdeka130602, suarapembaruan120104,
suarapembaruan260703-001, suarapembaruan260703-002.
gatra180103, gatra220802, indosiar180603, indosiar180703,
indosiar200304, indosiar300703-002, kompas 170402, kompas
170402, kompas050602, kompas101002, kompas101004,
kompas160704, kompas180504, kompas270401, kompas270502002, kompas310702, mediaindonesia050104,
mediaindonesia060803, mediaindonesia100203,
mediaindonesia131003, mediaindonesia160603,
mediaindonesia250304, republika020604-001, republika060804001, republika090902, republika100703, republika100704-003,
republika180504-002, republika210704-001, republika230704-001,
republika231202-001, republika231202-002, republika240604-001,
republika300704-002, situshijau281003-004, suarakarya000000007, suarakarya000000-023, suaramerdeka120104,
suaramerdeka130104, suaramerdeka170602-001,
suaramerdeka270601, suarapembaruan100903,
suarapembaruan110903
gatra200103, kompas031003, kompas250901,
mediaindonesia120604-002, pikiranrakyat300704-002,
republika010704-003, republika020804, republika090902,
republika100902, republika220604-002, republika280704-002,
republika301002, situshijau210103-001, suarakarya000000-001-01,
suarakarya000000-007, suarakarya000000-028,
suaramerdeka130902, suarapembaruan100903,
suarapembaruan220403

23
Lampiran 2 Lanjutan
Kueri
Institut
pertanian
bogor

Kelangkaan
pupuk

Kelompok
masyarakat
tani

Laboratorium
pertanian

Gugus Jawaban
gatra020804, gatra180304, gatra180702, gatra220704, gatra290903,
gatra300404, kompas100399, kompas111099, kompas121099,
kompas150304-001, kompas200704, kompas200799,
kompas230704, mediaindonesia080704, mediaindonesia090704,
mediaindonesia101003, mediaindonesia290903-002,
republika010704-001, republika061003, republika070604-002,
republika100604-002, republika100704-002, republika110604-002,
republika140704-002, republika160604-002, republika170604-001,
republika180303, republika180604, republika190604-001,
republika190604-002, republika211002, republika220604-001,
republika230704-08, situshijau070503, situshijau101103-004,
situshijau281003-003, suarakarya000000-005, suarakarya000000010, suarapembaruan150903, suarapembaruan260703-001
indosiar010704, indosiar060204, indosiar190504-001,
indosiar200104, indosiar260504, indosiar290604, kompas210504,
kompas300502-001, pikiranrakyat010504-003, republika050604,
republika160604-001, suarakarya000000-001-02,
suarakarya000000-002, suarakarya000000-006, suarakarya000000026, suarakarya000000-029, suarakarya000000-030,
suarakarya000000-032, suarakarya000000-038,
suaramerdeka161101
bitraindonesia000000-001, indosiar021203-002, jurnal000000-017,
kompas180502, kompas211103, kompas250901, kompas260304,
kompas260902, kompas270203-002, kompas270502-002,
kompas300502-001, replubika11