Rancang Bangun Aplikasi Search Engine Tafsir Al-Qur’an Menggunakan Teknik Text Mining Dengan Algoritma VSM (Vector Space Model) 1)
Heru Adi Darmawan 2)Tutut Wurijanto 3)Akh. Masturi
1) Program Studi Sistem Informasi, STIKOM Surabaya. Email:
[email protected] 2) Program Studi Sistem Informasi, STIKOM Surabaya. Email:
[email protected] 3) Fakultas Syariah Jurusan Fiqih, Al Ahzar Tafahna el Asyraf Kairo – Mesir. Email: -
Abstract Learning media religion today actually has a lot available in the form of organized instruction or spiritual impression on television that examines the content of verses of the Qur'an. But on the other side of this medium has limitations and may only be held in time, place, and specific topics only, the process of interaction between the giver and Juma'ah material as a whole is also very limited. Therefore takes a media or means of learning about the religion that is not limited by place and time, where everyone can learn about religion whenever and wherever, but does not waive the speed, quality of information presented, and of course could be more interactive. This application is designed by adapting the workings of a search engine like Google to find information about the content of the holy verses of the Qur'an. In order to get detailed information and more specifically the source of data for this application is the interpretation of each verse of the Qur'an. Text Mining Techniques used in making the text more structured verse, TF-IDF as a method of term weighting, and the Vector Space Model as an algorithm in modeling the relationship between paragraphs with keywords through Cosine Similarity calculation. Based on the results of testing and evaluation indicates the level of the average value of accuracy (precision) application search engines interpretations of the Qur'an has reached 73.8%, while the ability of applications to find all the relevant paragraph (recall) achieved an average rating of 96, 3% of the 35 queries tested. User satisfaction levels reached an average value of 71.67% of the 30 respondents who have tried the application search engines this interpretation of the Qur'an.
Keyword: Text Mining, Vector Space Model, Search Engine
Ada ungkapan dari seorang fisikawan terkenal pemenang hadiah Nobel, Albert Einstein, “Ilmu pengetahuan tanpa agama adalah timpang. Agama tanpa ilmu pengetahuan adalah buta” (Naik, 2008:13). Ungkapan ini mengindikasikan bahwa butuh keseimbangan antara dua hal tersebut di mana ilmu pengetahuan dan agama saling menyempurnakan satu sama lain. Dalam hal ini penekanan terletak pada aspek media pembelajaran tentang agama (terhadap masyarakat secara meluas), di mana yang terjadi akhir-akhir ini cenderung memiliki porsi lebih sedikit dibandingkan dengan media pembelajaran ilmu
pengetahun secara umum yang banyak diselenggarakan dalam berbagai bentuk pendidikan-pendidikan formal. Ajaran atau tuntunan sebuah agama pada umumnya dituangkan dalam bentuk kitab suci. Salah satunya adalah al-Qur’an yang merupakan kitab suci sebagian besar masyarakat di Indonesia. Media atau sarana pembelajaran agama secara meluas sebenarnya telah banyak tersedia dalam bentuk pengajian-pengajian yang terorganisir, atau tayangan-tanyangan rohani di televisi yang mengkaji serta menjelaskan kandungan ayat-ayat al-Qur’an. Namun di sisi lain media ini memiliki 1
sedikit keterbatasan di mana hanya diselenggarakan dalam waktu, tempat, dan topik tertentu saja. Di samping itu proses interaksi antara si pemberi materi dan jema’ah secara keseluruhan juga sangat terbatas. Dibutuhkan sebuah media atau sarana pembelajaran mengenai agama yang tidak terbatas oleh tempat dan waktu, di mana setiap orang dapat belajar mengenai agama kapanpun dan dimanapun, namun tidak mengenyampingkan kecepatan, kualitas informasi yang disajikan, serta tentu saja bisa lebih interaktif. Dalam penelitian ini media atau sarana pembelajaran yang akan dikembangkan mengadaptasi cara kerja sebuah aplikasi search engine seperti, Google, Yahoo, bing, atau Alta Vista. Mengingat sisi interaksi antara user (pengguna) dengan aplikasi harus berjalan dengan baik, dimana informasi yang disajikan lebih tepat sasaran dan serelevan mungkin sesuai dengan keinginan user. Bahan atau materi yang menjadi informasi atau output dari aplikasi ini merujuk pada ayat-ayat al-Qur’an yang merupakan tuntunan dan pedoman bagi penganut agama Islam, yang mana agama ini di peluk sekitar 86,1% penduduk Indonesia (bersasarkan data sensus penduduk tahun 2009). Untuk dapat memberikan informasi yang lebih berkualitas dan mudah dipahami oleh user, maka informasi yang diberikan tidak sebatas pada terjemahan ayat saja, namun juga lebih mendetail hingga tafsir per ayat bahkan per kata dari ayat-ayat tersebut. Berdasarkan pertimbangan bahwa aplikasi ini dikembangkan di Indonesia, materi atau bahan yang menjadi rujukan untuk output aplikasi ini adalah karya salah seorang ahli tafsir Indonesia ternama, Prof. Dr. Muhammad Quraish Shihab yang berjudul “TAFSÎR AL-MISBÂH Pesan, Kesan, dan Keserasian al-Qur’an”. Aplikasi ini dibangun menggunakan konsep text mining dimana algoritma yang digunakan adalah algoritma VSM ( Vector Space Model ). VSM adalah salah satu metode atau algoritma yang sering digunakan untuk sebuah sistem temu kembali informasi yang biasa dikenal dengan IRS (Information Retrieval System). Menurut Arifin (dalam Salton, 1989), “salah satu model IRS yang paling sederhana namun paling produktif adalah model ruang vektor” (Arifin, 2002). Algoritma ini merupakan sebuah model yang digunakan untuk mengukur kemiripan antar beberapa dokumen
(dalam hal ini adalah ayat-ayat al-Qur’an) dengan user query atau permintaan user. Dalam penelitian yang dilakukan oleh Heninggar Septiantri yang membandingkan metode LSA (Latent Semantic Analysis) dan VSM (Vector Space Model) mengenai sistem penilai jawaban esai otomatis Bahasa Indonesia, didapatkan dari hasil uji coba bahwa secara keseluruhan rata-rata korelasi nilai VSM-manusia lebih tinggi dari LSAmanusia (Septiantri, 2009). Dalam teknik text mining ada sebuah tahapan proses untuk mengolah kata-kata yang terdapat dalam dokumen menjadi bentuk kata dasar atau akar dari kata itu sendiri (tanpa ada awalan, akhiran, atau sisipan), proses ini disebut proses stemming. Enhanced Confix Stripping Stemmer merupakan salah satu algoritma yang dapat mengatasi proses stemming yang spesifik untuk Bahasa Indonesia. Pemilihan algoritma Enhanced Confix Stripping Stemmer merujuk pada penelitian I Putu Adhi Kerta Mahendra yang merupakan salah satu mahasiswa Institut Teknologi Sepuluh November (ITS) – Surabaya mengenai metode atau algoritma stemming yang spesifik untuk Bahasa Indonesia (Mahendra, 2008). Aplikasi ini dapat membantu dan mempermudah dalam proses pencarian informasi mengenai kandungan ayat - ayat suci al-Qur’an secara lebih spesifik dan mendalam bagi siapa saja yang membutuhkan. METODE Text Mining Text Mining merupakan proses otomatis atau sebagian proses otomatis untuk teks. Ini melibatkan pembentukan text yang lebih terstruktur dan penggalian informasi yang relevan dari teks. (Miller, 2005;104). Text Mining selalu berurusan dengan kata – kata, jutaan kata – kata yang disimpan dalam bentuk file elektronik. File elektronik ini biasa berbentuk beberapa dokumen yang akan diproses, namun tentu saja dokumen – dokumen ini belum dalam bentuk yang terstruktur. Butuh mekanisme untuk menambang teks - teks yang ada dalam koleksi dokumen sehingga didapatkan informasi – informasi yang lebih bernilai dan terstruktur. Mekanisme tersebut dibagi dalam beberapa tahapan (fase preprocessing) yang dilakukan secara umum dalam text mining, yaitu: Tokenizing, Filtering, Stemming, Tagging, dan Analyzing (Riza, 2008). 2
• Teks Tafsir Ayat Al-Qur'an
Tokenizing
Filtering • kumpulan kata dalam dokumen
• Kumpulan kata terpilih
Tagging • Kumpulan bentuk kata dasar
Stemming
Ukuran umum yang digunakan untuk mengukur kualitas dari text retrieval adalah kombinasi precision dan recall. Precision mengevaluasi kemampuan sistem IR untuk menemukan kembali top-ranked yang paling relevan, dan didefinisikan sebagai presentase dokumen yang di-retrieve yang benar – benar relevan terhadap query pengguna.
• Kumpulan bentuk kata awal
Analyzing
Gambar 1. Tahapan Text Mining Recall & Precision Ada beberapa alasan yang berbeda mengapa tahap evaluasi IR (Information Retrieval) adalah sesuatu yang penting. Sebagai contoh, penyedia sumber informasi membutuhkan informasi tentang penggunaan sumber daya oleh user, dan organisasi yang bekerja untuk meningkatkan kinerja search engine perlu metode-metode yang efektif untuk mengevaluasi perubahan yang dilakukan untuk algoritma dan user interface. Dengan demikian, tujuan evaluasi adalah untuk menghasilkan perbaikan pada proses pengambilan informasi. Di sisi lain, tujuan evaluasi biasanya tergantung pada penelitian, beberapa peneliti mungkin berpendapat bahwa tujuan utama dari evaluasi adalah untuk mengevaluasi kekuatan metodologi pengindeksan dan pencarian, namun beberapa fokus lain dari penelitian evaluasi information retrieval adalah proses kognitif pengguna, antarmuka manusia-komputer, dan karakteristik database (Zhang, 2008). Information retrieval system mengembalikan satu set dokumen sebagai jawaban atas user’s query. Terdapat dua kategori dokumen yang dihasilkan oleh sistem IR terkait pemrosesan query, yaitu relevant document (dokumen yang relevan dengan query) dan retrieved document (dokumen yang diterima pengguna). Hubungan antara kedua kategori ini digambarkan menggunakan diagram Venn pada gambar 2.7. (Cios, 2007):
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑋 𝑟𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑_𝑑𝑜𝑢𝑚𝑒𝑛𝑡𝑠
Recall mengevaluasi kemampuan sistem IR untuk menemukan semua item yang relevan dari dalam koleksi dokumen dan didefinisikan sebagai presentase dokumen yang relevan terhadap query pengguna dan yang diterima. 𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑋 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡_𝑑𝑜𝑢𝑚𝑒𝑛𝑡𝑠
Pada dasarnya, nilai precision dan recall bernilai antara 0-1. Oleh karena itu, suatu sistem IR yang baik diharapkan untuk dapat memberikan nilai precision dan recall mendekati 1. Precision dan recall adalah faktor penting dalam mengevaluasi sistem IR, tetapi ada keadaan tradeoff (tarik-ulur) antara recall dan precision (Zhang, 2008). Kondisi trade-off antara precision dan recall mengakibatkan terjadi 2 situasi ekstrim berikut (Gambar 2.8.) (Cios, 2007): 1. Precision terlalu tinggi dan recall rendah. Sistem mengembalikan beberapa dokumen dan hampir semuanya relevan, tetapi sejumlah besar dokumen relevan lain terabaikan. 2. Recall sangat tinggi dan precision relatif rendah. Sistem mengembalikan sejumlah besar dokumen yang mengikutsertakan hampir semua dokumen relevan tetapi juga mencakup sebagian besar dokumen yang tak diharapkan.
Gambar 2. Relasi antara relevant dan retrieved dokumen. Gambar 3. Trade-off antara precision dan recall 3
untuk mengkombinasikan kedua metode pembobotan tersebut, dengan mempertimbangkan frekuensi inter-dokumen dan frekuensi intradokumen dari suatu term. Dengan menggunakan frekuensi term pada suatu dokumen dan distribusinya pada keseluruhan dokumen, yakni kemunculan pada dokumen-dokumen lain (IDF). Salton menarik suatu kesimpulan melalui eksperimennya bahwa term-term dengan total frekuensi menengah, lebih berguna dalam retrieval jika dibandingkan dengan term-term yang total frekuensinya terlalu tinggi atau terlalu rendah. Konsep frekuensi intra-dokumen dan interdokumen ini kemudian dikenal sebagai metode TF-IDF. (Mahendra, 2008) Rumus yang digunakan untuk menyatakan bobot (w) masing-masing dokumen terhadap kata kunci adalah:
Untuk kasus-kasus normal akan berada pada kurva solid. Umumnya, sulit bahkan tidak mungkin untuk mencapai ideal case. Dimana semua dokumen yang diambil relevan dan tidak ada dokumen relevan yang hilang dalam list yang diterima oleh user. TF-IDF (Term Frequency - Inverse Document Frequency) Weighting Metode pembobotan yang paling sederhana terhadap suatu term (term wighting) adalah dengan menggunakan frekuensi kemunculan term (kata) / term frequency (TF) yang bersangkutan pada suatu dokumen. Experimen-experimen pre-processing dokumen berbasiskan frekuensi term, telah banyak dilakukan dalam bidang information retrieval. Namun, dalam kaitannya dengan performa recall dan precision, penggunaan frekuensi term saja ternyata hanya dapat memenuhi fungsi recall. Fungsi precision yang baik sayangnya tidak dapat dicapai dengan representasi frekuensi term saja pada suatu dokumen. Precision yang tinggi mengisaratkan kemampuan untuk membedakan suatu dokumen dengan dokumen yang lain untuk mencegah retrieval yang tidak diinginkan. Frekuensi term yang tinggi dapat digunakan dalam pre-processing, hanya jika frekuensi kemunculan term bersangkutan tidaklah tinggi pada dokumen – dokumen yang lainnya. Nilai precision yang baik pada kenyataannya dihasilkan oleh term-term yang kemunculannya tergolong jarang pada suatu dokumen, karena term-term bersangkutan seringkali menjadi pembeda signifikan antara dokumen-dokumen yang memiliki term-term tersebut dengan dokumen yang tidak memiliki term-term bersangkutan. (Mahendra, 2008) Untuk meningkatkan precision, digunakanlah representasi Inverse Document Frequency (IDF) untuk term-term, yang didefinisikan sebagai logaritma dari rasio jumlah keseluruhan dokumen yang diproses dengan jumlah dokumen yang memiliki term bersangkutan. Ini berarti bahwa term-term yang tingkat kemunculannya jarang akan memiliki nilai IDF yang tinggi. Experimen yang dilakukan oleh Spärck Jones membuktikan bahwa penggunaan IDF akan menghasilkan performa retrieval yang lebih efektif jika dibandingkan dengan penggunaan frekuensi term saja. Ini yang kemudian menginspirasi Salton
Wd,t = tf d,t × IDFt Dimana: d = dokumen ke-d t = kata ke-t dari kata kunci Wd,t = bobot dokumen ke-d terhadap kata ke-t VSM (Vector Space Model) Dalam IRS, kemiripan antar dokumen didefinisikan berdasarkan representasi bag-ofwords dan dikonversi ke suatu model ruang vector (Vector Space Model). Model ini diperkenalkan oleh Salton dan telah digunakan secara luas. Pada VSM, setiap dokumen di dalam database dan query pengguna direpresentasikan oleh suatu vector multi-dimensi. Dimensi sesuai dengan jumlah term dalam dokumen yang terlibat (Cios, 2007): Vocabulary merupakan kumpulan semua term berbeda yang tersisa dari dokumen setelah preprocessing dan mengandung t term index. kumpulan term ini membentuk suatu ruang vektor. Setiap term i di dalam dokumen atau query j, diberikan suatu bobot (weight) bernilai real wij. Dokumen dan query diekspresikan sebagai vektor t dimensi dj = (w1, w2, ..., wtj) dan terdapat n dokumen didalam koleksi, yaitu j = 1, 2, ..., n. Berikut merupakan contoh dari vector space model tiga dimensi untuk dua dokumen D1, dan 4
D2, satu query pengguna Q1, dan tiga term T1, T2, T3:
dokumen di-ranking, sejumlah tetap dokumen topscoring dikembalikan kepada pengguna. Alternatifnya, suatu threshold dapat digunakan untuk memutuskan berapa banyak dokumen akan dikembalikan. Threshold dapat juga digunakan untuk mengontrol tarik-ulur antara presicion dan recall. Nilai threshold tinggi biasanya akan menghasilkan precision tinggi dan recall rendah (Cios, 2007). Terdapat empat fungsi untuk mengukur kemiripan (similarity measure) yang dapat digunakan untuk model ini: Cosine distance / cosine similarity Inner similarity Dice similarity Jaccard similarity Salah satu ukuran kemiripan teks yang paling populer adalah cosine similarity. Ukuran ini menghitung nilai cosinus sudut antara dua vektor. Jika terdapat dua vektor dokumen dj dan query q, serta t term diekstrak dari koleksi dokumen maka nilai cosinus antara dj dan q didefinisikan sebagai berikut (Cioz, 2007):
T3
5
D1 = 2T1 + 6T2 + 5T3 D2 = 5T1 + 5T2 + 2T3 Q1 = 0T1 + 0T2 + 2T3
D1 = 2T1 + 6T2 + 5T3
Q1 = 0T1 + 0T2 + 2T3 2
D2 = 5T1 + 5T2 + 2T3
2
5
T1
5 6
T2
Gambar 4. Contoh model vector space model dengan dua dokumen D1, dan D2, serta query pengguna Q1 Dalam Vector Space Model, koleksi dokumen direpresentasikan sebagai sebuah matrik termdocument (atau matrik term-frequency). Setiap sel dalam matrik bersesuaian dengan bobot yang diberikan dari suatu term dalam dokumen yang ditentukan. Nilai nol berarti bahwa term tersebut tidak hadir dalam dokumen. Berikut merupakan gambaran matrik dari term-document: 𝑇1
𝑇2
…
𝑇𝑡
𝐷1
𝑤11
𝑤21
…
𝑤𝑡1
𝐷2
𝑤12
𝑤22
…
𝑤𝑡2
…
…
…
…
…
PERANCANGAN Gambaran Umum Aplikasi
Sesuai dengan namanya, aplikasi search engine tafsir al-Qur’an ini digunakan untuk membantu dalam pencarian informasi mengenai kandungan ayat suci al-Qur’an. Blok diagram pada gambar 5. menunjukkan representasi secara umum dari aplikasi. User di sini adalah sebagai administrator yang berguna untuk mengolah data-data yang mendukung proses pencarian. Tafsir ayat alQur’an merupakan input sebagai sumber informasi untuk output pencarian. Administrator berperan dalam maintenance dari data-data ayat tafsir al-Qur’an sebagai input, data kamus kata dasar, data stoplist untuk tahap pre-processing, serta kontrol terhadap proses stemming dan pembobotan term. terakhir administrator mengontrol proses perhitungan VSM dan cosine similarity untuk
𝐷𝑛 𝑤1𝑛 𝑤2𝑛 … 𝑤𝑡𝑛 Gambar 2.11. Contoh matrik termdocument untuk database dengan n dokumen dan t term Melalui vector space model dan TF-IDF weighting maka akan didapatkan representasi nilai numerik dokumen sehingga kemudian dapat dihitung kedekatan antar dokumen. Semakin dekat dua vektor di dalam suatu VSM, maka semakin mirip dua dokumen yang diwakili oleh dua vektor tersebut. kemiripan antar dokumen dapat dihitung menggunakan suatu fungsi ukuran kemiripan (similarity measure). Ukuran ini memungkinkan perankingan dokumen sesuai dengan kemiripan atau relevansinya terhadap query. Setelah 5
menghasilkan sebuah matrik term-document sebagai model khusus untuk proses pencarian tafsir ayat al-Qur’an.
Flowchart 1. Text Mining (preprocessing) Start
ayat
Teks tafsir ayat
index + 1
Proses pencocokan teks[index] dengan token
List Token
false
(index > text.length())
false
(teks[index] == token)
true Proses simpan kumpluan karakter menjadi daftar tokenTerm dalam tipe data vektor
Daftar tokenTerm dalam tipe data vektor
true
Finish
Gambar 7. Flowchart Tokenizing Dalam flowchart pada gambar 7., teks tafsir menjadi input yang di-load dari database ayat diteruskan pada proses pencocokan teks pada index tertentu (karakter) dengan token list yang ada pada database (kumpulan karakter tertentu). Jika cocok karakter itu akan disimpan dalam sebuah variable dengan tipe data Vector, jika tidak akan dilakukan pengecekan ulang terhadap index teks yang berikutnya. Proses itu terus berulang hingga index terakhir dari teks inputan. Jika telah mencapai akhir index dari teks, maka proses tokenizing berakhir dengan tersimpannya kumpulan kata dalam variabel tokenTerm yang menjadi input untuk proses berikutnya.
Gambar 5. Blok Diagram Gambaran Umum Aplikasi (by Administrator)
Gambaran umum dari aplikasi ini terhadap user ditunjukkan pada gambar 6, user akan memberikan input berupa query atau kata kunci kepada aplikasi yang berhubungan dengan informasi yang ingin diketahui oleh user. selanjutnya aplikasi akan memberikan output berupa daftar ayat al-Qur’an yang telah di-index sebagai hasil pencarian yang dianggap paling relevan dengan user’s query.
Start
Daftar tokenTerm dalam tipe data vektor
Proses pencocokan tokenTerm[index] dengan stoplist
index + 1
Stoplist
false
(index > tokenTerm.size())
false
(tokenTerm[index] == token)
true Proses simpan kumpluan tokenTerm Ke filterTerm dalam tipe data vektor
true
Gambar 6. Blok Diagram Gambaran Umum Aplikasi (by User)
Daftar filterTerm dalam tipe data vektor
Finish
Gambar 7. Flowchart Filtering 6
Berdasarkan daftar tokenTerm, proses Filtering dilakukan sebagai lanjutan tahapan dari teknik text mining, dimana proses ini hanya menyaring kata/term yang dianggap penting. Tiap element yang terdapat pada tokenTerm dicocokan dengan daftar stoplist di database yang menyimpan kumpulan kata yang dianggap tidak penting (stopword). Proses pencocokan ini terus berulang hingga element terakhir dari tokenTerm. Kata-kata yang tidak cocok dengan stoplist disimpan dalam variable filterTerm dalam bentuk tipe data Vector dimana ini juga mengakhiri proses filtering.
rulePrecedence mengembalikan nilai true proses reduksiAwalan dilakukan dan selanjutnya melakukan pencocokan kembali terhadap database kamus, jika benar term disimpan jika tidak lakukan proses recording bila perlu. Proses reduksiAkhiran dan proses loopPengembalianAkhiran dilakukan jika proses reduksiAwalan sudah dilakukan dan term yang bersangkutan tidak cocok dengan database kamus. jika semua proses itu tidak berhasil, maka term yang ada langsung disimpan dalam variable dan dianggap sebagai sebuah kata dasar. Proses ini terus berulang pada setiap elemen yang mengandung term di variable filterTerm hingga akhir elemen variable ini. Gambar 8. memaparkan diagram alir dari proses stemming.
Start
Daftar filterTerm dalam tipe data vektor
index + 1
Proses pencocokan fliterTerm[index] dengan kamus
Kamus
2. Pembobotan false
Recording ?
true
Start
(Term == kamus)
(filterTerm[index] == token)
false
recording false
Cek rulePrecedence()
true
Proses reduksiAwalan()
(Term == kamus)
false
ayat
term
term
false Proses reduksiAkhiran()
false (Term == kamus)
Sudah melakukan proses reduksiAwalan()
Hitung jumlah term dalam ayat
Hitung ada berapa jumlah ayat yang memiliki term
Hitung jumlah ayat dalam database
TF
DF
D
true Proses loopPengembalianAkhiran()
true
true Cek apakah term merupakan kata ulang
Lakukan proses stemming pada dua sub kata
Proses ambil sub kata di sebelah kanan dan kiri setelah tanda “-”
(Index > filterTerm.size())
Proses simpan term ke variabel stemTerm
true
Sama ?
Hitung DF / D
true
false
IDF
Proses pengembalian kata ulang sebelum proses stemming
true Daftar stemTerm dalam tipe data vektor
Finish
Matrik term-document
Gambar 8. Flowchart Stemming Selanjutnya proses stemming dilakukan berdasarkan input daftar filterTerm, proses stemming ini menggunakan algoritma Enhanced Confix Stripping Stemmer seperti yang disebutkan pada analisa permasalahan sebelumnya. Langkah pertama pada algoritma stemmer ini adalah mencocokkan term pada elemen di index tertentu dengan daftar “kata dasar” dalam database kamus. Jika cocok maka term tersebut langsung disimpan dalam variable stemTerm, jika tidak maka dilakukan pengecekan rulePrecedence yakni larangan kombinasi awalan dan akhiran. Jika
Proses pembobotan W = TF * IDF
Finish
Gambar 9. Flowchart Pembobotan Berdasarkan term dari database dilakukan dua proses secara paralel yakni menghitung jumlah term dalam ayat dan menghitung jumlah ayat yang mengandung term tersebut. Jumlah ayat keseluruhan juga dihitung sebagai variabel pendukung algoritma ini dan data-data ayat diakses berasal dari database ayat. Ketiga proses tersebut secara berturut-turut disimpan dalam variable TF, DF, dan D. berdasarkan proses pembagian nilai dari variabel DF dan D, 7
didapatkan sebuah nilai yang disimpan dalam variabel IDF. Setelah semua variabel yang dibutuhkan untuk proses pembobotan didapatkan, maka nilai bobot dari term tersebut dihitung dengan rumus (TF * IDF) yang kemudian disimpan dalam matrik termdocument. proses ini dilakukan pada semua term yang terdapat pada database term.
dalam variable kk, penjumlahan dari nilai kuadrat bobot masing-masing term dari ayat tertentu disimpan di variabel Di, dan terakhir summary dari hasil perkalian nilai bobot dari keyword dan nilai bobot term terhadap ayat tertentu disimpan pada variable sum(kk*Di). Nilai dari akar kata kunci “sqrt(kk)” dan akar dari Di “sqrt(Di)”, serta nilai dari sum(kk*Di) menjadi variable-variabel dalam proses perhitungan cosine similarity untuk tiap ayat terhadap keyword. Nilai dari cosine similarity untuk tiap dokumen dilakukan proses indexing secara descending yakni dari nilai yang terbesar hingga yang terkecil. Terakhir ditampilkan list ayat sebagai hasil dari proses pencarian dengan vector space model.
3. VSM (Vector Space Model) Start
Query / keyword
Proses extrectKeyword (melalui proses preprocessing)
Matrik term-frekuensi
Keyword[index] == term (dalam database)
false
Use Case Diagram Ada ?
false
Index > keyword.length()
true
Insert, update, delete Kamus
Hitung bobot masing-masing term dari keyword
Insert, update, delete Tafsir Ayat <
>
<>
Insert, update, delete Stoplist
<> <> Insert, update, delete Token Hitung sqrt(sum(kk2)) kk = bobot masing-masing term dari keyword
Hitung sqrt(sum(Di2)) Di = bobot masing-masing term dari ayat atau dokumen ke-i
Maintenance
Hitung sum(kk ∙ Di)
<>
Load tafsir ayat
<<extend>>
<>
Sqrt(kk)
Sqrt(Di)
sum(kk ∙ Di)
<>
true
Tokenizing
Preprocessing <>
<<extend>> Pembobotan TF-IDF
Proses peng-index-an (shorting) dari tiap ayat atau dokumen (Di) secara descending
Load Stoplist
Filtering
Administrator Proses perhitungan Cosine Similarity Cosine(Di) = sum(kk ∙ Di) / [Sqrt(kk) * Sqrt(Di)]
Load Token <<extend>>
Stemming
Load Kamus
<<extend>> <<extend>>
Indexing <<extend>>
List ayat yang sesuai dengan query / keyword
<<extend>>
Evaluasi
Vector Space Model (pembentukan matrik termfrekuensi) Finish
No list result (tidak ada ayat yang sesuai dengan query / keyword)
Perhitungan Cosine Similarity
Gambar 10. Flowchart VSM (Vector Space Model) Term dari keyword akan melalui proses extractKeyword (melalui proses preprocessing) untuk selanjutnya dicek pada database matrik term-document. Jika salah satu dari term ada pada database, maka dilakukan proses pembobotan pada tiap masing-masing term keyword, Jika tidak ada maka proses pencarian tidak dilakukan. Setelah dilakukan pembobotan pada tiap term kata kunci, selanjutnya dijalankan 3 proses paralel dalam mendapatkan variable-variabel untuk menghitung tingkat kemiripan sebuah ayat terhadap kata kunci yang menjadi input. Hasil jumlah (Summary) nilai kuadrat bobot dari keyword disimpan
Pencarian Tafsir Ayat al-Qur'an User
Membaca Detail dari Tafsir Ayat
Gambar 11. Use Cas Diagram Aplikasi Dalam representasi gambar di atas terdapat dua actor yakni Administrator dan User. dua actor ini berperan sebagai objek yang menggunakan aplikasi. Administrator berperan sebagai pengontrol utama dari aplikasi search engine ini yang dapat mengakses semua fasilitas yang ada dalam aplikasi. Sedangkan User adalah pengguna secara umum dalam proses melakukan pencarian terhadap tafsir ayat al-Qur’an. berikut merupakan penjelasan dari setiap use case berdasarkan actor: 8
nilai dari precision dan recall untuk mengetahui tingkat kinerja dari aplikasi. Tabel 1. merupakan daftar query yang digunakan untuk tahap uji coba:
1. Maintenance (by Administrator) Pada use case ini administrator dapat melakukan proses input, update, dan delete terhadap data-data ayat, stoplist, dan kamus. 2. Preprocessing (by Administrator) Dalam preprocessing ada 4 proses yang dilakukan, yaitu load tafsir ayat yang akan melalui tahap preprocessing; proses tokenizing yang melakukan load terhadap data token sebagai pemecah setiap kata dalam teks; proses filtering yang melakukan load pada data stoplist sebagai penyaring term yang dianggap kurang penting; proses stemming melakukan load terhadap data Kamus untuk membentuk term ke dalam bentuk kata dasarnya. 3. Pembobotan TF-IDF (by Administrator) Use case ini melakukan pembobotan terhadap term yang telah melalui preprocessing. 4. Vector Space Model (by Administrator) Proses ini membentuk sebua bag-of-words yang direpresentasikan dalam matrik termdocument dengan value berupa bobot dari tiap term terhadap dokumen (ayat). ada 3 proses yang menjadi turunan atau super class dari use case ini. proses perhitungan cosine similarity untuk menghitung sudut tingkat kemiripan antar ayat dengan query; proses evaluasi sebagai penilai kinerja dari aplikasi; dan proses indexing yang meranking hasil pencarian sebagai representasi dari hasil perhitungan cosine similarity dan evaluasi. 5. Pencarian Tafsir Ayat al-Qur’an (by User) Use case pencarian tafsir ayat al-Qur’an adalah proses pencarian yang dilakukan oleh pengguna aplikasi ini secara umum dengan menginputkan query atau kata kunci oleh pengguna. 6. Membaca Detail dari Tafsir Ayat (by User) User dapat melihat detail tiap tafsir ayat alQur’an dari hasil pencarian yang dihasilkan oleh aplikasi berdasarkan user’s query.
Tabel 1. Daftar Query No 1 2 3 4 5 6 7
Shalat Zakat Puasa Haji & umrah Qishash Halal Haram
No 19 20 21 22 23 24 25
8 9
Nafkah di jalan Allah Khamar & judi
26 27
10
28
11
Menyantuni anak yatim Larangan riba
12
Utang piutang
30
13
Wasiyat kepada dua orang ibu bapa dan kaum kerabat Hukum sumpah Amanat
31
Sihir Merusak mesjid Merubah kitab-kitab Allah
34 35
14 15 16 17 18
Query
29
32 33
Query Haid 'Iddah Talak Ila' dan hukum susuan; Melamar Mahar Larangan mengawini wanita musyrik dan sebaliknya Perang Kisah penciptaan Nabi Adam a.s. Kisah Nabi Ibrahim a.s. Kisah Nabi Musa a.s dengan Bani Israil Sifat-sifat orang yang bertakwa Sifat orang-orang munafik
Sifat-sifat Allah Perumpamaanperumpamaan Kiblat Kebangkitan sesudah mati.
Hasil uji coba dipaparkan dalam tabel 3. dimana terdapat 6 point pokok yang direpresentasikan sebagai nilai dari uji coba untuk setiap kata kuncinya. Pertama adalah “jumlah ayat diterima”, nilai untuk point ini didapatkan dari jumlah hasil pencarian keseluruhan berdasarkan kata kunci. Kedua adalah “jumlah ayat relevan”, nilai untuk point ini berdasarkan rekomendasi ahli kitab (selaku pembimbing kedua) untuk tiap query-nya. Ketiga “jumlah ayat hilang”,nilai dari point ini didapatkan berdasarkan kecocokan hasil pencarian dengan jumlah ayat relevan dari rekomendasi ahli kitab, apakah hasil pencarian mencakup semua dari rekomendasi ahli kitab atau tidak, jika tidak maka jumlah ayat yang tidak dicakup yang menjadi nilai untuk point ini. Point Keempat dan Kelima didapatkan dari “nilai rata-rata precision” dan “nilai maksimal recall”, contoh rincian dari
HASIL DAN PEMBAHASAN Kinerja Aplikasi
Uji coba untuk mengukur kemampuan atau tingkat kinerja aplikasi dilakukan dengan 35 kata kunci atau query yang telah ditetapkan, dimana hasil pencarian dari masing-masing query tersebut akan dievaluasi 9
Dimana: A : Query B : ∑ Ayat Diterima C : ∑ Ayat Relevan D : ∑ Ayat Hilang E : Precision (Rata-rata) F : Recall (Maks.) G : Waktu Eksekusi (detik)
perolehan nilai kedua point ini ditunjukkan pada tabel 2 dengan kata kunci ke-1 yaitu “shalat” dan jumlah ayat relevan adalah 9 ayat. Point terakhir adalah “waktu eksekusi”, nilai dari point ini didapatkan dari lama proses pencarian terhadap suatu query hingga hasil pencarian ditampilkan. Tabel 2. Nilai Recall dan Precision Rank 1 2 3 4 5 6 7 8 … 11 12 14 17
Ayat 002238 002239 002045 002177 002150 002110 002043 002005 … 002083 002277 002003 002153
Relevan ? Ya Tidak Ya Ya Tidak Ya Ya Tidak … Ya Ya Ya Ya
Precision 1 / 1 = 1,000 2 / 3 = 0,667 3 / 4 = 0,750 4 / 6 = 0,667 5 / 7 = 0,714 … 6 / 11 = 0,545 7 / 12 = 0,583 8 / 14 = 0,571 9 / 17 = 0,529 Rata-rata = 0,670
Dari hasil uji coba yang dipaparkan pada tabel 4.3 dapat dilihat rata-rata dari nilai precision dan recall. Nilai rata-rata precision dari aplikasi berdasarkan uji coba terhadap query adalah 0,738, atau bisa dikatakan aplikasi search engine tafsir alQur’an ini memiliki tingkat keakuratan dengan persentase 73,8 %. Sedangkan tingkat kemampuan aplikasi untuk menampilkan semua ayat yang relevan dengan query adalah 0,963 atau mencapai sekitar 96,3 %, dengan rata-rata kecepatan pencarian 5,992 detik. Ada beberapa pola yang terlihat dari hasil uji coba pada tabel 4.3., pada query ke-18 merupakan query dengan waktu eksekusi terlama yaitu 37,643 detik dimana query ke-18 adalah “Merubah KitabKitab Allah”. Query ke-18 ini mengandung kata “Allah” dimana term ini hampir dikandung oleh semua ayat dalam database (284 ayat dari 293 total keseluruhan ayat dalam database). Pola ini juga terlihat pada query ke-8 dan query ke-32 dimana kedua query tersebut sama-sama mengandung kata “Allah”. Tabel 3.4. juga menunjukkan pola bahwa semakin panjang sebuah query maka semakin lama waktu eksekusi yang dibutuhkan. Berdasarkan hasil uji coba pada tabel 4.3. terlihat dari query ke-1 sampai ke-20 nilai recall bernilai 1 yang berarti tidak ada dokumen relevan yang hilang. Namun pada query ke-21 nilai recall berubah menjadi 0,750, berarti ada dokumen relevan yang tidak berhasil ditemukan oleh aplikasi dari query ini. Query ke-21 berisi kata “Thalak”, dimana aplikasi hanya berhasil memanggil 6 ayat dari 8 ayat relevan. Dua ayat hilang tersebut adalah Surah al-Baqarah ayat 236 dan ayat 237. Dua ayat ini memang tidak mengandung kata “Thalak” namun mengandung kata “Cerai” dimana “Thalak” dan “Cerai” memiliki makna yang sama atau hampir sama. Karena itu ahli kitab menganggap bahwa dua ayat yang hilang tersebut seharusnya menjadi ayat yang juga relevan dengan kata kunci “Thalak”. Pola
Recall 1 / 9 = 0,111 2 / 9 = 0,222 3 / 9 = 0,333 4 / 9 = 0,444 5 / 9 = 0,556 … 6 / 9 = 0,667 7 / 9 = 0,778 8 / 9 = 0,889 9 / 9 = 1,000 Maks. = 1,000
Tabel 3. Hasil Uji Coba A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
B C 40 9 16 10 14 4 22 10 3 3 21 8 32 4 124 12 2 1 85 4 66 4 8 3 108 5 4 1 1 1 4 1 14 1 75 4 4 2 9 3 11 8 1 1 2 1 3 2 107 1 27 5 187 8 175 11 175 24 191 2 165 7 107 18 15 6 13 3 65 2 Rata - rata
D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 3 0 0 10 1 0 0
E 0,670 0,933 1,000 0,732 1,000 0,516 0,174 0,879 1,000 0,608 1,000 0,917 0,943 1,000 1,000 1,000 1,000 0,367 1,000 0,540 0,650 1,000 1,000 0,583 1,000 0,581 0,584 0,538 0,572 0,225 0,594 0,145 0,399 0,667 1,000 0,738
F 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 0,750 1,000 1,000 1,000 1,000 0,800 1,000 1,000 0,875 1,000 1,000 0,444 0,833 1,000 1,000 0,963
G 2.290 0,820 0,827 1,222 0,188 1,660 1,647 34,068 0,153 4,761 4,761 0,527 3,601 3,601 0,328 0,300 0,816 37,643 0,285 0,499 0,650 3,290 0,157 0,650 5,841 1,468 10,306 9,438 10,147 12,605 12,538 37,463 0,790 0,621 3,744 5,992
10
E 12
seperti ini juga terlihat pada beberapa query yang tidak menghasilkan nilai recall 1.
Kepuasan Apakah aplikasi ini sangat membantu dan memudahkan dalam proses pencarian ayatayat suci al-Qur'an ? 13 Bagaimanakah penilaian anda terhadap aplikasi search engine ini secara keseluruhan ? Rata -rata
Tingkat Kepuasan Pengguna Tabel 4. Hasil Survey No A 1
Pertanyaan
Fungsionalitas Apakah aplikasi telah memiliki fungsi yang sesuai dengan objektifitas dan spesifikasi (dalam mencari kandungan ayat suci al-Qur'an) yang diinginkan anda ? 2 Apakah setiap fungsi berjalan dengan benar ? 3 Apakah secara umum kegunaan dari aplikasi telah jelas ? Rata -rata B Komunikasi 4 Apakah tiap page dari aplikasi mempunyai informasi yang jelas bagi anda ? 5 Apakah alur dari page aplikasi ini sudah benar dan jelas ? Rata -rata C Estetika 6 Apakah tiap page dari aplikasi ini terlihat aktraktif dan menarik ? 7 Apakah layout juga tampak konsisten, spasi ukuran huruf, perbedaan antara judul dan body text ? 8 Apakah ada perbedaan yang cukup mencolok (tidak konsisten) antara tiap page ? 9 Apakah penggunaan warna dan font sudah tampak harmonis ? Rata -rata D Performansi 10 Bagaimanakah tingkat ketepatan / keakuratan dari hasil pencarian berdasarkan kata kunci dari anda ? 11 Bagaimanakah tingkat kecepatan dari proses pencarian ? Rata -rata
Penilaian Kurang
Cukup
Baik
0,00 %
40,00 %
60,00%
0,00 %
26,67 %
73,33%
3,33 %
40,00 %
56,67%
1,11 % Kurang
35,56 % Cukup
63,33% Baik
0,00 %
50,00 %
50,00%
0,00 %
50,00 %
50,00%
0,00 % Kurang
50,00 % Cukup
50,00% Baik
16,67 %
60,00 %
23,33%
10,00 %
40,00 %
50,00%
6,67 %
36,67 %
56,67%
16,67 %
30,00 %
53,00%
12,50% Kurang
41,67 % Cukup
45,38% Baik
0,00 %
43,33 %
56,67%
0,00 %
33,33 %
66,67%
0,00 %
38,33 %
61,67%
Kurang
Cukup
Baik
0,00 %
16,67 %
83,33%
3,33 %
36,37 %
60,00%
1,67 %
26,67 %
71,67%
Melalui tabel 4. sebagai representasi hasil survey, dapat dilihat untuk segi Fungsionalitas terdapat rata-rata 63,33% dari 30 responden yang menilai baik, 35,56% untuk cukup, dan hanya 3,33% yang menilai kurang. Nilai rata-rata aspek Komunikasi masing-masing terdapat 50% responden yang memberi nilai baik dan cukup, sedangkan untuk nilai kurang tidak ada. 45,38% dari jumlah responden memberi nilai baik untuk Estetika dari aplikasi ini, 41,67% menilai cukup, dan sektar 12,50% untuk nilai kurang. Performansi dari aplikasi dianggap baik oleh 62,67% dari jumlah responden, 38,33% untuk nilai cukup, dan tidak ada responden yang menganggap performansi dari aplikasi bernilai kurang. Nilai rata-rata Tingkat kepuasan pengguna dapat dilihat dari rata-rata nilai aspek kepuasan dengan 26,67% dari 30 responden yang member nilai cukup, sekitar 22 responden atau 71,67% memberi nilai baik pada aspek ini, dan hanya 1 responden atau 1,67% yang merasa kurang puas terhadap aplikasi. SIMPULAN Berikut ini merupakan kesimpulan dari implementasi dan uji coba terhadap aplikasi search engine tafsir al-Qur’an yang telah dirancang: 1. Dengan menggunakan text mining dan algoritma Vector Space Model aplikasi ini mampu melakukan pencarian terhadap teks tafsir al-Qur’an. Berdasarkan hasil uji coba terhadap 35 query dimana nilai rata-rata tingkat keakuratan aplikasi ini terhadap hasil pencarian mencapai nilai persentase 73,8%. Sedangkan tingkat kemampuan aplikasi untuk mengambil semua ayat yang relevan dengan query sehingga tidak ada ayat yang tertinggal atau hilang, mencapai nilai rata-rata hingga 96,3 % dengan rata-rata waktu eksekusi 5,992 detik. 2. Aplikasi ini membantu dan memudahkan seseorang dalam mencari informasi mengenai 11
kandungan ayat-ayat suci al-Qur’an secara lebih mendalam dan spesifik dengan tingkat kepuasan mencapai nilai rata-rata 71,67% dari 30 responden. Sedangkan untuk point pertanyaan yang menanyakan “apakah aplikasi ini sangat membantu dan memudahkan dalam proses pencarian ayat-ayat suci al-Qur'an ?”, sekitar 25 (83,33 %) responden dari total 30 responden menyatakan sangat terbantu dengan memberi nilai baik untuk point pertanyaan ini (point 12 dari angket).
Mahendra, I Putu Adhi Kerta., 2008, Penggunaan Algoritma Semut Dan Confix Stripping Stemmer Untuk Klasifikasi Dokumen Berbahasa Indonesia, Surabaya: Jurusan Teknik Informatika ITS Surabaya. Miller, Thomas W., 2005, Data and Text Mining A Bussines Applications Approach, Upper Saddle River, Jersey. Naik, Zakir., Miler, Gary., 2008, Keajaiban AlQura’an Dalam Telaah Sains Modern, Media Ilmu, Yogyakarta.
SARAN Untuk pengembangan lebih lanjut mengenai aplikasi search engine ini, diberikan saran-saran sebagai berikut: 1. Mengingat aplikasi ini masih terbatas pada batasan 2 surah al-Qur’an saja yaitu al-Fatihah dan al-Baqarah, maka data aplikasi ini perlu ditambahkan dengan data tafsir al-Qur’an lengkap 30 Juz, sekitar 114 Surah dengan 6236 ayat. 2. Untuk pengembangan selanjutnya aplikasi dilengkapi dengan fasilitas yang dapat menangani kesalahan inputan dari pengguna serta fasilitas auto complete yang dapat memudahkan pengguna memilih kata kunci. 3. Agar pada hasil pencarian tidak ada dokumen atau ayat relevan yang hilang, maka dibutuhkan sebuah metode yang dapat mengekspansi atau mengembangkan query berdasarkan persamaan makna (sinonim). 4. Untuk proses pengembangan dibutuhkan sebuah metode yang mampu mempelajari perilaku pengguna sehingga dapat diketahui dokumen atau ayat mana saja yang sering diakses oleh pengguna berdasarkan kata kunci tertentu.
Risa., 2008, Bab 11 Text Mining, http://student.eepisits.edu/~risa/files/DataMining/ chapter11.pdf, diakses tanggal 12 Juni 2010. Septiantri, Heninggar, 2009, Perbandingan Metode Latent Semantic Analysis dan Vector Space Model untuk Sistem Penilaian Jawaban Esai Otomatis Bahasa Indonesia. Jakarta: Fakultas Ilmu Komputer, Universitas Indonesia. Zhang, Hao., 2008, Formulating Complex Queries Templates, A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master of Applied Science in Management Science, Ohio, Canada: University of Waterloo.
RUJUKAN Arifin, Agus Zainal, 2002, Penggunaan Digital Tree Hibrida pada Aplikasi Information Retrieval untuk Dokumen Berita. Proseding Seminar Nasional Sains dan Teknologi 2002: Institut Teknologi Sepuluh Nopember Surabaya. Cios, Krzystof J., dkk., 2007, Data Mining A Knowledge Discovery Approach, Springer, New York. 12