mesin pencari data tokoh dan cerita wayang dalam kamus...
Post on 02-Nov-2020
16 Views
Preview:
TRANSCRIPT
-
i
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
OLEH:
Y. YENI KRISTIAWAN
NIM : 055314039
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
DALAM KAMUS PEWAYANGAN
MESIN PENCARI DATA TOKOH DAN CERITA WAYANG
-
ii
SEARCH ENGINE DATA DETECTOR OF PUPPET
CHARACTER AND STORY IN PUPPETRY DICTIONARY
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Informatics Engineering
By:
Y. YENI KRISTIAWAN
NIM : 055314039
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
-
iii
HALAMAN PERSETUJUAN
-
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan bahwa skripsi yang saya tulis ini tidak memuat karya
atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan
daftar pustaka, sebagaimana layaknya karya ilmiah.
Penulis
Y. Yeni Kristiawan
Yogyakarta, 16 Juli 2009
-
vi
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Y. Yeni Kristiawan
NIM : 055314039
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
MESIN PENCARI DATA TOKOH DAN CERITA WAYANG DALAM
KAMUS PEWAYANGAN
Beserta perangkat yang diperlukan ( bila ada ). Dengan demikian saya
memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk
menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk
pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di
Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari
saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama
saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 16 Juli 2009
Yang menyatakan
( Y. Yeni Kristiawan )
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
-
vii
HALAMAN PERSEMBAHAN
Skripsi ini saya persembahkan untuk:
Ibu, Bapak dan Mas Toro atas dukungan, semangat, kasih sayang dan dukungan
kalian semua, tanpa kalian semua ini tidak akan berarti.
Buat pacar dan semua sahabatku atas semua dukungan dan kritik kalian dalam
penyusunan skripsi ini.
Teman-teman TI angkatan 2005, terimakasih atas semua yang telah kalian berikan
buat aku.
-
viii
HALAMAN MOTO
Nikmati dan syukurilah hari ini, seolah hari ini adalah hari terakhir dalam hidup
kita.
Kae manungsa golek upa angkara
Sesingidan mawuni
ngGawa bandha donya
mBuwang rasa agama
Nyingkiri sesanti ati
Tan wedi dosa
Tan eling bakal mati
(Durma Macepat)
-
ix
KATA PENGANTAR
Puji syukur saya haturkan kepada Tuhan Yesus Kristus yang telah
melimpahkan berkat-Nya. Sehingga saya dapat menyelesaikan Laporan Tugas
Akhir ini.
Pada kesempatan ini saya ingin mengucapkan terima kasih kepada pihak –
pihak yang telah membantu saya dalam menyelesaikan skripsi ini, baik dalam hal
bimbingan, perhatian, kasih sayang, semangat, kritik, dan saran yang telah
diberikan. Ucapan terima kasih ini saya sampaikan antara lain kepada :
1. Bapak Yosef Agung Cahyanta, S.T., M.T., selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
2. Bapak Puspaningtyas Sanjaya Adi, S.T., M.T., selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma.
3. Bapak JB. Budi Darmawan S.T., M.Sc, selaku Dosen Pembimbing Akademik
Teknik Informatika angkatan 2005.
4. Bapak Alb. Agung Hadhiatma, S.T, M.T, selaku Dosen Pembimbing TA.
Terima kasih atas bimbingan selama saya mengerjakan Laporan Skripsi ini.
5. Kedua orangtua dan kakak, terima kasih atas dukungan, kasih sayang dan
semangat yang tiada henti sehingga saya dapat menyelesaikan Tugas Akhir
ini.
6. Seluruh pihak yang membantu saya baik secara langsung maupun tidak
langsung, yang tidak dapat saya sebutkan satu persatu.
-
x
Saya menyadari masih banyak kekurangan yang terdapat pada laporan ini.
Saran dan kritik selalu saya harapkan dari pembaca untuk perbaikan – perbaikan
di masa yang akan datang.
Akhir kata, saya berharap tulisan ini dapat bermanfaat bagi kemajuan dan
perkembangan ilmu pengetahuan dan berbagai pihak pengguna pada umumnya.
Yogyakarta, Juli 2009
Penulis
-
xi
ABSTRAKSI
Dalam pewayangan terdapat begitu banyak tokoh dan judul kriteria atau
lakon wayang, hal ini menyebabkan banyaknya dokumen dalam pewayangan.
Oleh karena banyaknya dokumen yang ada akan mempersulit proses pencarian
dokumen berdasarkan kriteria tertentu.
Tugas akhir ini bertujuan untuk membangun aplikasi yang dapat
digunakan untuk membantu proses pencarian dokumen wayang dari koleksi
dokumen yang dimiliki dan dapat mengelola jika ada dokumen baru yang
ditambahkan ke dalam koleksi dokumen. Aplikasi ini dikembangkan
menggunakan perangkat lunak Visual Basic Versi 6 dan basis data SQL SERVER
2000.
Hasil yang dapat diperoleh mengunakan aplikasi ini adalah dapat
mempermudah pengguna untuk mencari dokumen wayang berdasarkan kriteria
tertentu dengan tingkat kemiripan yang paling tinggi.
-
xii
ABSTRACT
In the puppetry found figure very much and story title or puppet story, this
matter causes document quantity in puppetry. Therefore, document quantity
existence will complicate document livelihood process based on certain criteria.
The aim from this task ends to build application that can be used to help
livelihood process puppet document from document collection that has and can
managed if there new document that is added into document collection. This
application is developed to use Visual Basic Version 6 software and database SQL
SERVER 2000.
The result that obtainable use this application can simplify user to look for
puppet document based on certain criteria with resemblance highest scor.
-
xiii
DAFTAR ISI
HALAMAN JUDUL ............................................................................................... i
HALAMAN PERSETUJUAN............................................................................... iii
HALAMAN PENGESAHAN ............................................................................... iv
PERNYATAAN KEASLIAN KARYA ..................................................................v
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS .............................................................. vi
HALAMAN PERSEMBAHAN ........................................................................... vii
HALAMAN MOTO ............................................................................................ viii
KATA PENGANTAR ........................................................................................... ix
ABSTRAKSI ......................................................................................................... xi
ABSTRACT.......................................................................................................... xii
DAFTAR ISI........................................................................................................ xiii
DAFTAR TABEL............................................................................................... xvii
DAFTAR GAMBAR ......................................................................................... xviii
BAB I .......................................................................................................................1
PENDAHULUAN ...................................................................................................1
1.1 Latar Belakang ..........................................................................................1
1.2 Rumusan Masalah .....................................................................................2
1.3 Batasan Masalah........................................................................................2
1.4 Tujuan Penelitian.......................................................................................3
-
xiv
1.5 Metode Penelitian......................................................................................3
1.6 Sistematika Penulisan................................................................................4
BAB II......................................................................................................................6
LANDASAN TEORI...............................................................................................6
2.1 Pengertian Sistem Temu-kembali Informasi.............................................6
2.2 Pengindeksan (Indexing) Dalam Sistem Temu-Kembali Informasi .......11
2.2.1 Stemming..........................................................................................13
2.2.2 Porter Stemmer for Bahasa Indonesia.............................................14
2.3 Teknik-teknik Temu-kembali Informasi .................................................17
2.4 Algoritma TF/IDF ...................................................................................20
2.5 Evaluasi Sistem Temu Kembali Informasi..............................................21
BAB III ..................................................................................................................23
ANALISIS DAN PERANCANGAN ....................................................................23
3.1 Analisa Sistem.........................................................................................23
3.1.1 Analisis Kebutuhan..........................................................................23
3.2 Metode Pengumpulan Data .....................................................................24
3.3 Perancangan Sistem.................................................................................24
3.3.1 Model Use Case ...............................................................................24
3.3.1.1 Actor.............................................................................................24
3.3.1.2 Diagram Use Case ........................................................................25
3.3.1.3 Tabel Use Case.............................................................................26
-
xv
3.3.2 Data Flow Diagram (DFD) ..............................................................26
3.3.3 Bagan Alir Program .........................................................................29
3.3.3.1 Algoritma proses indexing ...........................................................30
3.3.3.2 Algoritma proses pencarian dokumen..........................................38
3.3.4 Perancangan Database .....................................................................46
3.3.4.1 Conceptual Database Design.......................................................46
3.3.4.2 Logical Database Design .............................................................46
3.3.4.3 Physical Database Design ...........................................................47
3.4 Perancangan Antarmuka (Interface)........................................................49
1. Desain Menu Utama................................................................................50
2. Desain Form Pencarian ...........................................................................51
3. Desain Form Login..................................................................................52
4. Desain Form Menu Utama Admin ..........................................................52
5. Desain Form Admin Tambah Dokumen .................................................53
6. Desain Form Admin Manage Stoplist .....................................................54
BAB IV ..................................................................................................................55
IMPLEMENTASI..................................................................................................55
4.1 Spesifikasi Software dan Hardware yang digunakan ..............................55
4.1.1 Spesifikasi Software.........................................................................55
4.1.2 Spesifikasi Hardware .......................................................................55
4.2 Koneksi Basisdata dengan Sistem...........................................................55
4.2.1 Koneksi basisdata SQL SERVER 2000 dengan sistem...................55
-
xvi
4.3 Pembuatan Antarmuka (Interface) ..........................................................56
4.3.1 Form Menu Utama...........................................................................56
4.3.2 Form Cari Dokumen Wayang ..........................................................57
4.3.3 Form About......................................................................................68
4.3.4 Form Login ......................................................................................68
4.3.5 Form Menu Admin ..........................................................................69
4.3.6 Form Tambah Dokumen ..................................................................70
4.3.7 Form Manage Stopword ..................................................................74
BAB V ...................................................................................................................79
ANALISIS HASIL.................................................................................................79
5.1 Analisa Hasil Program ............................................................................79
5.2 Kelebihan dan Kekurangan Sistem .......................................................101
5.2.1 Kelebihan Sistem ...........................................................................101
5.2.2 Kekurangan Sistem ........................................................................102
BAB VI ................................................................................................................103
KESIMPULAN DAN SARAN............................................................................103
6.1 Kesimpulan............................................................................................103
6.2 Saran......................................................................................................104
DAFTAR PUSTAKA ..........................................................................................105
LAMPIRAN
-
xvii
DAFTAR TABEL
Tabel 2.1 Kelompok rule pertama: inflectional particles …………………… 15
Tabel 2.2 Kelompok rule kedua: inflectional possessive pronouns ………… 15
Tabel 2.3 Kelompok rule ketiga: first order of derivational prefixes ………. 16
Tabel 2.4 Kelompok rule kempat:second order of derivational prefixes …… 16
Tabel 2.5Kelompok rule kelima: derivatioanal suffixes …………………… 16
Tabel 2.6 Tabel Extended Boolean ………………………………………….. 18
Tabel 3.1 Tabel Use Case …………………………………………………… 26
Tabel 3.2 Tabel Term ……………………………………………………….. 47
Tabel 3.3 Tabel Term List …………………………………………………... 48
Tabel 3.4 Tabel Dokumen …………………………………………………... 48
Tabel 3.5 Tabel Stoplist ……………………………………………………... 49
Tabel 3.6 Tabel Admin ……………………………………………………… 49
Tabel 5.1 Perhitungan TF*IDF Untuk Kata Kunci “Semar” ………………... 82
Tabel 5.2 Hasil Pengurutan Dokumen Untuk Kata Kunci “Semar” ………… 83
Tabel 5.3 Urutan Dokumen Untuk Kata Kunci “Semar” …………………… 83
Tabel 5.4 Nilai Recall-Precision Untuk Kata Kunci “Semar” ………………. 84
Tabel 5.5 Nilai Recall-Precision Untuk Kata Kunci “Bima” ……………….. 87
Tabel 5.6 Hasil Perhitungan Recall-Precision ………………………………. 92
Tabel 5.7 Hasil Perhitungan Interpolasi Recall-Precision …………………... 92
Tabel 5.8 Hasil Perhitungan Interpolasi dan Average ………………………. 93
Tabel 5.9 Hasil Perhitungan TF*IDF Untuk Kata Kunci “Subali dan
Sugriwa” …………………………………………………………………….. 97
Tabel 5.10 Urutan Dokumen Untuk Kata Kunci “Subali dan Sugriwa” ……. 98
-
xviii
DAFTAR GAMBAR
Gambar 1.1 Fase-fase dalam Waterfall Model menurut referesnsi Presman … 4
Gambar 2.1 Ilustrasi Sistem Temu Kembali Informasi ………………………. 8
Gambar 2.2 Bagian-bagian Sistem Temu Kembali Informasi …………...…... 9
Gambar 2.3 Algoritma Porter stemming for Bahasa Indonesia ……………… 15
Gambar 3.1 Diagram Use Case ……………………………………………..... 25
Gambar 3.2 Diagram Konteks ………………………………………………... 27
Gambar 3.3 Diagram Berjenjang ……………………………………………... 27
Gambar 3.4 DFD Level 0 Admin …………………………………………….. 28
Gambar 3.5 DFD Level 0 User ……………………………………………….. 28
Gambar 3.6 DFD Level 1 Proses 2 Proses admin manage stoplist …………... 29
Gambar 3.7 Ilustrasi Proses Indexing ………………………………………… 30
Gambar 3.8 Blok Diagram Proses Indexing ………………………………….. 31
Gambar 3.9 Flowchart Proses Parsing ………………………………………... 32
Gambar 3.10 Flowchart Proses Romoving Stopword ………………………... 33
Gambar 3.11 Flowchart Proses Perhitungan Frekuensi Kata ………………… 35
Gambar 3.12 Flowchart Proses Filtering ……………………………………... 37
Gambar 3.13 Blok Diagram Proses Pencarian Dokumen ……………………. 38
Gambar 3.14 Flowchart Proses Pembuatan Kondisi Where Statement Untuk
Query ………..………………………………………………………………... 41
Gambar 3.15 Flowchart Proses Query ke Database ………………………….. 43
Gambar 3.16 Flowchart Proses Tampil Hasil Query ……………………….... 45
Gambar 3.17 Diagram E-R …………………………………………………… 46
Gambar 3.18 Relasi Antar Tabel ……………………………………………... 46
Gambar 3.19 Desain Menu Utama …………………………………………… 50
Gambar 3.20 Desain Form Pencarian ………………………………………… 51
Gambar 3.21 Desai Form Login ……………………………………………… 52
Gambar 3.22 Desain Form Menu Utama Admin …………………………….. 52
Gambar 3.23 Desain Form Tambah Dokumen ……………………………….. 53
-
xix
Gambar 3.24 Desain Form Manage Stoplist ………………………………..... 54
Gambar 4.1 Form Menu Utama ……………………………………………..... 56
Gambar 4.2 Form Cari Dokumen …………………………………………….. 57
Gambar 4.3 Form About ……………………………………………………… 68
Gambar 4.4 Form Login ……………………………………………………… 69
Gambar 4.5 Form Manu Utama Admin …………………………………….... 70
Gambar 4.6 Form Tambah Dokumen ………………………………………… 71
Gambar 4.7 Form Mange Stoplist …………………………………………..... 75
Gambar 5.1 Hasil Pencarian Dokumen Kata Kunci “Semar” ………………... 80
Gambar 5.2 Grafik Recall-Precision Untuk Kata Kunci “Semar” …..……..... 85
Gambar 5.3 Hasil Pencarian Dokumen Kata Kunci “Bima” …………………. 87
Gambar 5.4 Grafik Recall-Precision Untuk Kata Kunci “Bima” …..……....... 88
Gambar 5.5 Hasil Pencarian Dokumen Dengan Kata kunci “Shinta” ………... 90
Gambar 5.6 Hasil Pencarian Dokumen Dengan Kata kunci “Sita” …………... 91
Gambar 5.7 Grafik Interpolasi Recall-Precision ……………………………... 94
Gambar 5.8 Hasil Pencarian dengan Kata Kunci “Subali dan Sugriwa” …….. 99
Gambar 5.9 Hasil Pencarian dengan Kata Kunci
“bagong+gareng&petruk,semar(Ismaya)”…………………………………….. 100
Gambar 5.10 Pesan Konfirmasi Pencarian Dokumen ………………………... 101
-
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam pewayangan terdapat begitu banyak tokoh dan judul kriteria atau
lakon wayang, hal ini menyebabkan banyaknya dokumen dalam pewayangan.
Oleh karena banyaknya dokumen yang ada akan mempersulit proses pencarian
dokumen berdasarkan kriteria tertentu. Contohnya ketika kita ingin mencari
dokumen yang membahas tentang tokoh Arjuna dari 100 dokumen yang dimiliki,
kita harus membaca isi dari setiap dokumen satu persatu sebanyak 100 kali. Atau
kita ingin mencari dokumen yang berhubungan dengan judul kriteria atau lakon
Mahabarata, kita juga harus membaca semua koleksi dokumen yang dimiliki satu
persatu. Masalahnya adalah bagaimana memilih dokumen dari keseluruhan
koleksi dokumen yang dimiliki dengan kriteria pencarian tertentu tapi dengan
tingkat kesesuaian yang paling maksimal, kemudian menyajikan isi dari dokumen
yang berhasil dicari kepada user.
Sistem temu-kembali informasi (information retrieval system) adalah
solusi yang tepat untuk menangani banyaknya dokumen dalam pewayangan.
Sistem temu-kembali informasi terbagi dalam beberapa proses, yakni proses
indexing, pencarian dokumen yang relevan dengan query dari user.
Teknik untuk melakukan proses indexing dokumen adalah dengan
memberikan bobot terhadap tiap kata berdasarkan frekuensi kemunculan kata
pada satu dokumen dan menyimpannya kedalam koleksi dalam database. Dari
-
2
proses indexing ini teknik yang dapat digunakan untuk mencari dokumen yang
relevan dengan query dari user adalah berdasarkan jumlah frekuensi kemunculan
kata yang paling banyak, dengan teknik ini akan ditemukan urutan dokumen yang
berhasil ditemukan berdasarkan jumlah frekuensi kemunculan kata.
1.2 Rumusan Masalah
Dari latar belakang masalah di atas dapat dirumuskan menjadi beberapa masalah
sebagai berikut:
1. Bagaimana mengimplementasikan program bantu pencarian atau mesin
pencari untuk mempermudah pencarian dokumen dari koleksi dokumen
wayang berdasarkan kriteria tertentu dengan tingkat kesesuaian yang
tertinggi?
1.3 Batasan Masalah
Dalam aplikasi mesin pencari data tokoh dan kriteria wayang dilakukan
beberapa batasan sebagai berikut:
1. Dokumen yang dapat diproses adalah dokumen teks (*.txt).
2. Teknik temu-kembali informasi yang dipakai adalah teknik Boolean biasa
dengan operator “OR”.
3. Pencarian dokumen berdasarkan jumlah frekuensi kemunculan kata.
-
3
1.4 Tujuan Penelitian
Adapun tujuan penulisan skripsi adalah sebagai berikut:
1. Membuat program bantu pencarian atau mesin pencari untuk mempermudah
pencarian dokumen dari koleksi dokumen wayang berdasarkan kriteria
tertentu dengan tingkat kesesuaian yang tinggi.
1.5 Metode Penelitian
Dalam penyusunan skripsi dan pembuatan program bantu pencarian data
tokoh dan kriteria wayang, dipakai beberapa metode untuk mencari informasi
yang diperlukan, yaitu:
1. Metode studi literatur
Mencari dan mengumpulkan literatur-litaratur yang berkaitan dengan
permasalahan yang dikerjakan, yaitu mengenai Sistem temu-kembali
informasi (information retrieval system), data tokoh dan kriteria wayang
melalui internet, buku-buku dan media informasi lainnya, selain itu juga
menegenai Visual Basic dan SQL Server .
2. Metode pengembangan sistem
Metode pengembangan system yang dipakai dalam pembuatan program bantu
pencarian data tokoh dan kriteria wayang menggunakan metode Linear
Sequential Model/ Waterfall Model. Model ini adalah model klasik yang
bersifat sistematis, berurutan dalam membangun software. Berikut ini adalah
gambaran dari waterfall model.
-
4
Fase-fase dalam Waterfall Model menurut referensi Pressman:
1. Analisa: Membuat bagan alir program, diagram arus data (DFD) dan ER-
Diagram.
2. Desain: Membuat desain database dan desain antarmuka (interfaces)..
3. Implementasi: Menerapkan hasil analisa dan desain pada tahap
sebelumnya.
4. Testing: Menguji dan menganalisa hasil program.
Gambar 1.1 Fase-fase dalam Waterfall Model menurut referensi Pressman
1.6 Sistematika Penulisan
BAB I PENDAHULUAN
Memberikan gambaran secara umum tetntang isi skripsi yang meliputi:
latar belakang, rumusan masalah, batasan masalah, tujuan dan manfaat,
metode penelitian dan sistematika penulisan.
-
5
BAB II LANDASAN TEORI
Berisi konsep dasar sistem temu-kembali informasi (information retrieval
system), bagian-bagian dari sistem temu kembali informasi, teknik-teknik
temu-kembali informasi, dan evaluasi sistem temu kembali informasi.
BAB III ANALISIS dan PERANCANGAN SISTEM
Berisi analisis kebutuhan, metode pengumpulan data, diagram arus data,
kamus data, E-R diagram sistem, perancangan proses, perancangan basis
data, perancangan modul, perancangan tampilan masukan dan keluaran
untuk pengguna, dan perancangan teknologi.
BAB IV IMPLEMENTASI
Berisi penjelasan dan fungsi program bantu pencarian sebagai alat bantu
pencarian data tokoh dan kriteria wayang.
BAB V ANALISIS HASIL
Berisi evaluasi program sistem temu kembali informasi, kelebihan dan
kekurangan program.
BAB VI KESIMPULAN dan SARAN
Berisi kesimpulan dan saran dari pembuatan program bantu pencarian data
tokoh dan kriteria wayang.
DAFTAR PUSTAKA
LAMPIRAN
-
6
BAB II
LANDASAN TEORI
2.1 Pengertian Sistem Temu-kembali Informasi
Pada dasarnya sistem temu-kembali informasi adalah suatu proses untuk
mengidentifikasi, kemudian memanggil (retrieve) suatu dokumen dari suatu
simpanan (file), sebagai jawaban atas pemintaan informasi. Menurut Lancaster
(1968) dalam Rijsbergen (1979): “Sebuah information retrieval system (Sistem
Temu-kembali Informasi) tidak memberitahu (yakni tidak mengubah
pengetahuan) pengguna mengenai masalah yang ditanyakannya. Sistem tersebut
hanya memberi-tahukan keberadaan (atau ketidakberadaan) dan keterangan
dokumen-dokumen yang berhubungan dengan permintaannya”.
Pengertian lain menyatakan bahwa sistem temu kembali informasi adalah
proses yang berhubungan dengan representasi, penyimpanan, pencarian dengan
pemanggilan informasi yang relevan dengan kebutuhan informasi yang diinginkan
pengguna. (Ingwerson, 1992 : 49). Pendapat ini menunjukan bahwa pada sistem
temu kembali informasi terkandung sejumlah kegiatan yang meliputi proses
penyimpanan, penyediaan representasi, identifikasi serta pencarian atau
penelusuran dokumen yang relevan pada suatu database, dalam rangka memenuhi
kebutuhan informasi dari pengguna. Dari sekian banyak sistem temu kembali
yang ada,salah satu diantaranya adalah sistem temu kembali informasi berbasis
teks atau tekstual.
-
7
Sifat pencarian sistem temu-kembali informasi berbeda dengan sistem
temu-kembali data (misalnya dalam sistem manajemen basis data) dalam
beberapa segi, antara lain spesifikasi kueri yang tidak lengkap, dan tingkat
ketanggapan kesalahan yang tidak peka (Rijsbergen, 1979). Alasan utamanya
adalah Sistem Temu-kembali Informasi menangani teks bahasa alami yang tidak
selalu terstruktur dengan baik dan bersifat ambigu (Baeza-Yates & Ribeiro-Neto,
1999).
Sistem Temu-kembali Informasi bekerja berdasarkan kueri yang diberikan
pengguna yang menghasilkan daftar dokumen yang dianggap relevan. Selanjutnya
pengguna dapat menggunakan hasil tersebut untuk mengakses informasi lebih
lanjut. Sistem Temu-kembali Informasi mungkin saja tidak menghasilkan apa-apa
jika memang tidak ditemukan dokumen yang relevan. Juga perlu diingat bahwa
tidak ada jaminan bahwa seluruh materi yang ditemukembalikan tersebut relevan
dengan yang diinginkan pengguna dan belum tentu seluruh materi yang relevan
dengan permintaan pengguna berhasil ditemukembalikan.
Sistem temu-kembali informasi pada prinsipnya adalah suatu sistem yang
sederhana. Misalkan ada sebuah kumpulan dokumen dan seorang user yang
memformulasikan sebuah pertanyaan (request atau query). Jawaban dari
pertanyaan tersebut adalah sekumpulan dokumen yang relevan dan membuang
dokumen yang tidak relevan. Secara matematis hal tersebut dapat dituliskan
sebagai berikut :
Q n2 D
Dimana:
-
8
Q = pertanyaan (queri)
D = dokumen
n = jumlah dokumen
2n = jumlah kemungkinan himpunan bagian dari dokumen yang
ditemukan.
Sistem temu-kembali akan mengambil salah satu dari kemungkinan tersebut.
Sistem temu-kembali informasi pada dasarnya dibagi dalam dua
komponen utama yaitu sistem pengindeksan (indexing) yang menghasilkan basis
data sistem dan temu-kembali yang merupakan gabungan dari user interface dan
look-up-table.
Sistem temu kembali informasi (information retrieval system) digunakan
untuk menemukan kembali (retrieve) informasi-informasi yang relevan terhadap
kebutuhan pengguna dari suatu kumpulan informasi secara otomatis.
SistemTemu Kembali
Informasi
Query
1. Dok12. Dok23. Dok3 Hasil
Pencarian
KoleksiDokumen
HasilPencarian
Gambar 2.1 Ilustrasi Sistem Temu Kembali Informasi
Salah satu aplikasi umum dari sistem temu kembali informasi adalah
search engine atau mesin pencarian yang terdapat pada jaringan internet.
-
9
Pengguna dapat mencari halaman-halaman web yang dibutuhkannya melalui
search engine.
Sistem temu kembali informasi terutama berhubungan dengan pencarian
informasi yang isinya tidak memiliki struktur. Demikian pula ekspresi kebutuhan
pengguna yang disebut query, juga tidak memiliki struktur. Hal ini yang
membedakan sistem temu kembali informasi dengan sistem basis data. Dokumen
adalah contoh informasi yang tidak terstruktur. Isi dari suatu dokumen sangat
tergantung pada pembuat dokumen tersebut.
Sebagai suatu sistem, sistem temu kembali informasi memiliki beberapa
bagian yang membangun sistem secara keseluruhan. Gambaran bagian-bagian
yang terdapat pada suatu sistem temu kembali informasi digambarkan pada
Gambar 2.2.
Text OperationsText Operations
Ranking
IndexingQuery formulation
CollectionIndex
TermsIndex
DocumentCollection
1. Dok12. Dok23. Dok3
.
.
RankedDocuments
Query
Gambar 2.2 Bagian-bagian Sistem Temu Kembali Informasi
-
10
Gambar 2.2 memperlihatkan bahwa terdapat dua buah alur operasi pada
sistem temu kembali informasi. Alur pertama dimulai dari koleksi dokumen dan
alur kedua dimulai dari query pengguna. Alur pertama yaitu pemrosesan terhadap
koleksi dokumen menjadi basis data indeks tidak tergantung pada alur kedua.
Sedangkan alur kedua tergantung dari keberadaan basis data indeks yang
dihasilkan pada alur pertama.
Bagian-bagian dari sistem temu kembali informasi menurut gambar 2.2
meliputi :
1. Text Operations (operasi terhadap teks) yang meliputi pemilihan kata-kata
dalam query maupun dokumen (term selection) dalam pentransformasian
dokumen atau query menjadi terms index (indeks dari kata-kata).
2. Query formulation (formulasi terhadap query) yaitu memberi bobot pada
indeks kata-kata query.
3. Ranking (perangkingan), mencari dokumen-dokumen yang relevan
terhadap query dan mengurutkan dokumen tersebut berdasarkan
kesesuaiannya dengan query.
4. Indexing (pengindeksan), membangun basis data indeks dari koleksi
dokumen. Dilakukan terlebih dahulu sebelum pencarian dokumen
dilakukan.
Sistem temu kembali informasi menerima query dari pengguna, kemudian
melakukan perangkingan terhadap dokumen pada koleksi berdasarkan
kesesuaiannya dengan query. Hasil perangkingan yang diberikan kepada
pengguna merupakan dokumen yang menurut sistem relevan dengan query.
-
11
Namun relevansi dokumen terhadap suatu query merupakan penilaian pengguna
yang subjektif dan dipengaruhi banyak faktor seperti topik, pewaktuan, sumber
informasi maupun tujuan pengguna.
Model sistem temu kembali informasi menentukan detail sistem temu
kembali informasi yaitu meliputi representasi dokumen maupun query, fungsi
pencarian (retrieval function) dan notasi kesesuaian (relevance notation) dokumen
terhadap query.
2.2 Pengindeksan (Indexing) Dalam Sistem Temu-Kembali Informasi
Indexing merupakan sebuah proses untuk melakukan pengindeksan
terhadap kumpulan dokumen yang akan disediakan sebagai informasi kepada
pemakai. Proses pengindeksan bisa secara manual ataupun secara otomatis.
Dewasa ini, sistem pengindeksan secara manual mulai digantikan oleh sistem
pengindeksan otomatis. Adapun tahapan dari pengindeksan adalah sebagai
berikut:
Parsing Dokumen yaitu proses pengambilan kata-kata dari kumpulan
dokumen.
Stoplist yaitu proses pembuangan kata buang seperti: tetapi, yaitu,
sedangkan, dan sebagainya.
Stemming yaitu proses penghilangan/ pemotongan dari suatu kata menjadi
bentuk dasar. Kata “diadaptasikan” atau “beradaptasi” menjadi kata
“adaptasi” sebagai istilah.
-
12
Term Weighting dan Inverted File yaitu proses pemberian bobot pada
istilah.
Didalam memberikan bobot pada sebuah istilah, terdapat berbagai macam teknik
antara lain yaitu :
1. Teknik pembobotan berdasarkan frekuensi kemunculan istilah pada satu
dokumen. Teknik pembobotan ini cukup sederhana dimana bobot suatu istilah
pada sebuah dokumen berdasarkan jumlah kemunculannya pada dokumen
tersebut.
2. Teknik pembobotan berdasarkan rumus Savoy(1993) yaitu:
Wik = ntfik * nidfk,
dimana ntfik = ijj
ik
tfMax
tfdan nidfk = n
df
n
klog
log
Dimana :
Wik adalah bobot istilah k pada dokumen i.
tfik merupakan frekuensi dari istilah k dalam dokumen i.
n adalah jumlah dokumen dalam kumpulan dokumen.
dfk adalah jumlah dokumen yang mengandung istilah k.
Maxj tfij adalah frekuensi istilah terbesar pada satu dokumen.
Pada teknik pembobotan ini, bobot istilah telah dinormalisasi. Dalam
menentukan bobot suatu istilah tidak hanya berdasarkan frekuensi kemunculan
istilah di satu dokumen, tetapi juga memperhatikan frekuensi terbesar pada suatu
istilah yang dimiliki oleh dokumen bersangkutan. Hal ini untuk menentukan
posisi relatif bobot dari istilah dibanding dengan istilah-istilah lain di dokumen
-
13
yang sama. Selain itu teknik ini juga memperhitungkan jumlah dokumen yang
mengandung istilah yang bersangkutan dan jumlah keseluruhan dokumen. Hal ini
berguna untuk mengetahui posisi relatif bobot istilah bersangkutan pada suatu
dokumen dibandingkan dengan dokumen-dokumen lain yang memiliki istilah
yang sama. Sehingga jika sebuah istilah mempunyai frekuensi kemunculan yang
sama pada dua dokumen belum tentu mempunyai bobot yang sama.
2.2.1 Stemming
Stemming adalah proses penghilangan prefiks dan sufiks dari kueri dan
istilah-istilah dokumen. Stemming dilakukan atas dasar asumsi bahwa kata-kata
yang memiliki stem yang sama memiliki makna yang serupa sehingga pengguna
tidak keberatan untuk memperoleh dokumen-dokumen yang di dalamnya terdapat
kata-kata dengan stem yang sama dengan kuerinya. Teknik-teknik stemming dapat
dikategorikan menjadi:
Berdasarkan aturan sesuai bahasa tertentu
Berdasarkan kamus
Proses ini memiliki dua tujuan. Dalam hal efisiensi, stemming mengurangi
jumlah kata-kata unik dalam indeks sehingga mengurangi kebutuhan ruang
penyimpanan untuk indeks dan mempercepat proses pencarian. Dalam hal
keefektifan, stemming meningkatkan recall dengan mengurangi bentuk-bentuk
kata ke bentuk dasarnya atau stem-nya. Sehingga dokumen-dokumen yang
menyertakan suatu kata dalam berbagai bentuknya memiliki kecenderungan yang
sama untuk ditemukembalikan. Hal tersebut tidak akan diperoleh jika tiap bentuk
-
14
suatu kata disimpan secara terpisah dalam indeks. Akan tetapi, stemming dapat
menurunkan tingkat precision jika setiap bentuk suatu stem diperoleh, sedangkan
yang relevan hanyalah bentuk yang sama dengan yang digunakan dalam kueri.
Parsing dan stemming dalam suatu IRS tergantung pada bahasa yang digunakan
dalam dokumen yang akan dicari. IRS untuk Bahasa Inggris kurang optimal untuk
menangani dokumen dalam Bahasa Indonesia. Bahasa Indonesia memiliki daftar
kata buang (stoplist) serta sistem pembentukan kata yang sangat berbeda dengan
bahasa Inggris, sehingga diperlukan IRS yang khusus untuk Bahasa Indonesia.
2.2.2 Porter Stemmer for Bahasa Indonesia
Porter Stemmer for Bahasa Indonesia dikembangkan oleh Fadillah Z. Tala
pada tahun 2003. Implementasi Porter Stemmer for Bahasa Indonesia
berdasarkan English Porter Stemmer yang dikembangkan oleh W.B. Frakes pada
tahun 1992. Karena bahasa Inggris datang dari kelas yang berbeda, beberapa
modifikasi telah dilakukan untuk membuat Algoritma Porter dapat digunakan
sesuai dengan bahasa Indonesia. Desain dari Porter Stemmer for Bahasa
Indonesia dapat dilihat pada gambar 2.3 di bawah ini:
-
15
Gambar 2.3 Algoritma Porter Stemmer for Bahasa Indonesia
Pada gambar 2.3 terlihat beberapa langkah 'removal' menurut aturan yang ada
pada tabel 2.1 sampai dengan tabel 2.5.
Tabel 2.1: Kelompok rule pertama : inflectional particles
Suffix Replacement Measure Condition
Additional Condition
Example
kah NULL 2 NULL bukukah → bukulah NULL 2 NULL adalah → adapun NUUL 2 NULL bukupun → buku
Tabel 2.2: Kelompok rule kedua :inflectional possesive pronouns
Suffix Replacement Measure Condition
Additional Condition
Example
ku NULL 2 NULL bukuku → bukumu NULL 2 NULL Bukumu → bukunya NUUL 2 NULL bukiunya → buku
-
16
Tabel 2.3: Kelompok rule ketiga: first order of derivational prefixes
Prefix Replacement Measure Condition
Additional Condition
Example
meng NULL 2 NULL mengukur → ukurmeny S 2 V…* menyapu → sapumen NUUL 2 NULL menduga → dugamem P 2 V… memila → pilahmem NULL 2 NULL membaca → bacame NULL 2 NULL merusak → rusakpeng NULL 2 NULL pengukur → ukurpeny S 2 V… penyapu → sapupen NULL 2 NULL penduga → dugapem P 2 V… pemilah → pilahpem NULL 2 NULL pembaca → bacadi NULL 2 NULL diukur → ukurter NULL 2 NULL tersapu → sapuke NULL 2 NULL kekasih → kasih
Tabel 2.4: Kelompok rule keempat: second order of derivational prefixes
Prefix Replacement Measure Condition
Additional Condition
Example
ber NULL 2 NULL berlari → laribel NULL 2 ajar belajar → ajarbe NUUL 2 K*er bekerja → kerjaper NULL 2 NULL perjelas → jelaspel NULL 2 ajar pelajar → ajarpe NULL 2 NULL pekerja → kerja
Tabel 2.5: Kelompok rule kelima: derivational suffixes
Suffix Replacement Measure Condition
Additional Condition
Example
kan NULL 2 prefix Є{ke,peng} tarikan → tarik(meng)ambilkan → ambil
an NULL 2 prefix Є{di, meng, ter}
makanan → makan(per)janjian → janji
i NUUL 2 V|K…c1c1,c1 ≠ s, c2≠ i and prefix Є{ber, ke, peng}
tandai → tanda(men)dapati → dapat
-
17
2.3 Teknik-teknik Temu-kembali Informasi
Ada beberapa teknik temu-kembali informasi yang telah dikembangkan
yaitu teknik Boolean sederhana dan teknik Boolean, serta teknik Extended
Boolean. Untuk lebih jelasnya mengenai perbedaan dan keunggulan masing-
masing teknik ini dapat dilihat pada penjelasan berikut.
1. Teknik Boolean
Teknik Boolean merupakan suatu cara dalam mengekspresikan keinginan
pemakai ke sebuah kueri dengan mamakai operator-operator Boolean
(Salton,1989) yaitu : “and”, “or”, dan “not”. Adapun maksud dari operator
“and” adalah untuk menggabungkan istilah-istilah kedalam sebuah ungkapan,
dan operator “or” adalah untuk memperlakukan istilah-istilah sebagai sinonim,
sedangkan operator “not” merupakan sebuah pembatasan. Pada teknik
Boolean sederhana, kueri diproses sesuai dengan operator yang digunakan dan
menampilkan dokumen berdasarkan urutan dokumen ditemukan. Sedangkan
pada teknik Boolean berperingkat, dokumen diperingkat berdasarkan bobot
dari dokumen. Adapun pembobotan dari masing-masing dokumen
berdasarkan aturan sebagai berikut :
A and B D1AB, D2AB, ...d1AB > d2AB >
... dengan dAB = min(dA,dB)
A or B D1AB, D2AB, ...d1AB > d2AB >
... dengan dAB = max(dA,dB)
Not A U – dA
-
18
Dimana dA menyatakan bobot istilah A pada dokumen D. Bobot
istilah ini didapat dari hasil proses Indexing. Min(dA,dB) berarti bahwa sebuah
dokumen di retrieve dengan bobot sebesar nilai terkecil dari bobot-bobot
istilah yang dipunyainya. Max(dA,dB) berarti bahwa sebuah dokumen di
retrieve dengan bobot sebesar nilai terbesar dari bobot-bobot istilah yang
dipunyainya.
Kekurangan dari model boolean ini antara lain :
Hasil pencarian dokumen berupa himpunan, sehingga tidak dapat dikenali
dokumen-dokumen yang paling relevan atau agak relevan (partial match).
Query dalam ekspresi boolean dapat menyulitkan pengguna yang tidak
mengerti tentang ekpresi boolean.
2. Teknik Extended Boolean
Teknik Extended Boolean berdasarkan p-norm model merupakan
pengembangan lebih lanjut dari model Boolean. Teknik ini memakai operator
yang dikomputasi berdasarkan rumus Savoy(1993), sebagai berikut :
Tabel 2.6 Tabel Extended Boolean
QueryRetrieval Status Value
(RSV)
A OR
Bp
pib
pia
WW
2
A AND
B
NOT A 1 – Wia
Dimana :
p pibp
ia WW2
)1()1(1
-
19
p adalah nilai p-norm yang dimasukkan pada kueri.
Wia adalah bobot istilah A dalam indeks pada dokumen Di.
Wib adalah bobot istilah B dalam indeks pada dokumen Di.
Pemeringkatan yang dipakai bisa dua cara :
Langsung mengurutkan dokumen (dari besar ke kecil) berdasarkan bobot
dokumen yang didapat dengan rumus RSV (retrieval status value) di atas.
Memakai rumus Learning Scheme.
RSV(Di) = RSVinit (Di) +
r
k 1
ik norm * RSVinit (Dk)
untuk i= 1, 2,...., n,
Dimana :
RSVinit(Di) merupakan retrieval status value dari dokumen i yang
dikomputasi berdasarkan rumus teknik retrieval P-norm model.
ik merupakan bobot keterhubungan antara dokumen i dan k. Bobot
keterhubungan ini didapat dari nilai relevance link yang merupakan hasil
dari proses pembelajaran.
-
20
2.4 Algoritma TF/IDF
Algoritma TF/IDF dalam sistem temu-kembali informasi dapat
diilustrasikan seperti pada gambar berikut.
Gambar 2.4 Ilustrasi Algoritma TF/IDF
Keterangan:
D1,D2,D3,D4,D5 = dokumen
tf = banyaknya kata yang dicari pada sebuah dokumen
D = total dokumen
df = banyaknya dokumen yang megandung kata yang dicari.
t1 = “Wayang”
t2 = “Kulit”
W = bobot dokumen terhadap kata yang dicari
Query = “Wayang” or “Kulit”
-
21
Formula yang digunakan untuk menghitung bobot (w) masing-masing dokumen
terhadap kata kunci adalah:
Wd,t = tfd,t * IDFt
Dimana:
d = dokumen ke-d
t = kata ke-t dari kata kunci
Wd,t = bobot dokumen ke-d terhadap kata ke-t
Setelah bobot (w) masing-masing dokumen diketahui, maka dilakukan
proses sorting/pengurutan dimana semakin besar nilai w, semakin besar tingkat
similaritas dokumen tersebut terhadap kata yang dicari, demikian sebaliknya.
2.5 Evaluasi Sistem Temu Kembali Informasi
Dalam bidang temu kembali informasi (information retrieval) terdapat
berbagai metode yang digunakan dalam pembobotan kata, pengukuran
kesesuaian, perangkingan, umpan balik relevansi, model sistem temu kembali
informasi dan lain-lain. Sehingga diperlukan suatu ukuran sebagai perbandingan
keefektifan metode-metode tersebut.
Tujuan dari sistem temu kembali informasi yang ideal adalah :
1. Menemukan seluruh dokumen yang relevan terhadap suatu query.
2. Hanya menemukan dokumen relevan saja, artinya tidak terdapat dokumen
yang tidak relevan pada dokumen hasil pencarian.
Dua keadaan tersebut digunakan untuk menghitung performansi sistem temu
kembali, yaitu recall dan precision.
-
22
Recall dinyatakan sebagai bagian dari dokumen relevan dalam dokumen yang ditemukan:
Sedangkan precision dinyatakan sebagai bagian dokumen relevan yang ditemukan:
Keduanya menggambarkan performansi dari sistem temu kembali
informasi dengan melakukan perhitungan terhadap jumlah dokumen relevan hasil
pencarian.
-
23
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisa Sistem
Pada bagian ini akan dijelaskan mengenai analisis sistem, metode
pengumpulan data dan perancangan sistem mesin pencari data tokoh dan kriteria
wayang dalam kamus pewayangan.
3.1.1 Analisis Kebutuhan
Kebutuhan yang dibutuhkan oleh pengguna/user dari mesin pencari data
tokoh dan kriteria wayang dalam kamus pewayangan adalah:
1. User membutuhkan program untuk membantu dalam mencari dokumen
dari koleksi dokumen wayang yang sesuai dengan kriteria yang
diinginkan.
2. User membutuhkan program yang dapat secara otomatis melakukan proses
indexing ketika user menambahkan dokumen baru ke dalam koleksi
dokumen wayang.
3. User membutuhkan program yang dapat mengelola atau memanage daftar
stoplist, baik untuk menambah daftar stoplist, merubah daftar stoplist, atau
mengahus daftar stoplist.
-
24
3.2 Metode Pengumpulan Data
Metode pengumpulan data yang dimaksud adalah metode yang dilakukan
untuk mengumpulkan data-data mengenai tokoh dan kriteria wayang. Data-data
wayang didapatkan dari media internet, data diambil dari
http://id.wikipedia.org/wiki/. Karena data yang didapatkan berupa file html, maka
dilakukan proses pemindahan isi dari html ke file teks (.txt) secara manual.
Penamaan dokumen berdasarkan judul dokumen yang didapatkan dari sumber
(sesuai http://id.wikipedia.org/wiki/), pada proses pengumpulan data tidak
dilakukan pemeriksaan mengenai kebenaran data, baik data tokoh maupun kriteria
wayang karena penulis hanya mengacu pada data yang disediakan oleh sumber.
3.3 Perancangan Sistem
3.3.1 Model Use Case
3.3.1.1 Actor
Dalam mesin pencari data tokoh dan kriteria wayang dalam kamus
pewayangan hanya terdapat dua actor yang terlibat yakni administrator dan
pengguna atau user. Administrator dapat menambah koleksi dokumen wayang dan
dapat melakukan proses penambahan, perubahan, dan penghapusan daftar stoplist.
Pengguna atau user hanya dapat mencari dokumen wayang dengan kriteria yang
diinginkan.
-
25
3.3.1.2 Diagram Use Case
Terdapat lima use case dalam mesin pencari data tokoh dan kriteria
wayang dalam kamus pewayangan yaitu: 1) Tambah dokumen, 2) Tambah daftar
stoplist, 3) Rubah daftar stoplist, 4) Hapus daftar stoplist, dan 5) Cari dokumen.
Untuk use case tambah daftar stoplist, rubah daftar stoplist, dan hapus daftar
stoplist dijadikan dalam satu package yakni manage stoplist. Untuk lebih jelasnya
dapat dilihat dalam gambar 3.1 di bawah ini:
Manage daftar stoplist
user
Logout
Admin
Cari dokumen
Tambah dokumen
Tambah daftar stoplist
Edit daftar stoplis t
Hapus daftar stoplist
Login
>
>
>
>
Gambar 3.1 Diagram Use Case
-
26
3.3.1.3 Tabel Use Case
Tabel 3.1 Tabel Use Case
Nama Use Case Keterangan Aktor
Login Verifikasi untuk mengakses menu
utama dengan cara memasukkan
username dan password
Admin
Logout Keluar dari Program Admin
Tambah Dokumen Menambah koleksi dokumen wayang
yang ada
Admin
Manage daftar stoplist Menambah, merubah, dan menghapus
data dalam daftar stoplist
Admin
Cari dokumen Mencari dokumen dalam koleksi
dokumen yang sesuai dengan kriteria
yang diinginkan
Admin, User
3.3.2 Data Flow Diagram (DFD)
DFD merupakan alat yang digunakan pada metodologi pengembangan
sistem yang terstruktur. DFD menggambarkan arus data di dalam sistem dengan
terstruktur dan jelas.
Adapun rancangan DFD dari mesin pencari data tokoh dan kriteria wayang
dalam kamus pewayangan adalah sebagai berikut :
1. Diagram Konteks
Diagram Konteks selalu mengandung satu dan hanya satu proses saja
(seringkali diberi nomor proses 0). Proses ini mewakili proses dari seluruh
sistem. Diagram ini menggambarkan hubungan input/output antara sistem
dengan dunia luarnya (kesatuan luar). Diagram Konteks dari mesin pencari
-
27
data tokoh dan kriteria wayang dalam kamus pewayangan disajikan pada
gambar 3.2 berikut ini :
Gambar 3.2 Diagram Konteks
2. Diagram Berjenjang
Diagram berjenjang (hirarchy chart) digunakan untuk mempersiapkan
penggambaran DFD ke level-level lebih bawah lagi. Diagram berjenjang dapat
digambar dengan menggunakan notasi proses yang digunakan di DFD.
Diagram berjenjang dari mesin pencari data tokoh dan kriteria wayang dalam
kamus pewayangan dapat dilihat dalam gambar 3.3 dibawah ini:
Gambar 3.3 Diagram Berjenjang
-
28
3. Data Flow Diagram Level 0 Admin
Admin
Term
Dokumen
Term_List
Stoplist
Data Term
Data Dokumen
Data TermData Term
Data Stopword
Data Dokumen
Data Stopword
Data Stopword
Data Stopword
Query Pencarian
Hasil Pencarian
D1
D2
D3
D4
4p
Proses Pencarian Dokumen Wayang
3
Proses Manage Stoplist
2p
Proses Tambah Dokumen Wayang
5p
Logout
1p
Login
Data Term
D5
User name, passwordUser name, password
Id adminKonfirmasi Login
Logout
Data stopword
Konfirnasi manage stopword
Admin
Konfirnasi tambah dokumen
Dokumen wayang
Gambar 3.4 DFD Level 0 Admin
4. Data Flow Diagram Level 0 User
Gambar 3.5 DFD Level 0 User
-
29
5. Data Flow Diagram Level 1 Proses 2 Admin Manage Stoplist
Gambar 3.6 DFD Level 1 Proses 2 Proses admin manage Stoplist
3.3.3 Bagan Alir Program
Bagan alir program (program Flowchart ) merupakan bagan yang
menjelaskan secara rinci langkah-langkah dari proses program. Bagan ini terdiri
dari dua macam, yaitu bagan blok digaram dan alir logika program (program
logic Flowchart . Bagan blok digaram digunakan untuk menjelaskan urutan
langkah proses dalam program. Bagan alir program digunakan untuk
menggambarkan tiap-tiap langkah di dalam program komputer secara logika.
-
30
3.3.3.1 Algoritma proses indexing
Proses indexing berfungsi untuk mengolah dokumen teks baru untuk
disimpan ke database sehingga dapat mendukung proses pencarian dokumen.
Proses indexing dokumen dalam mesin pencari data tokoh dan kriteria wayang
dalam kamus pewayangan digambarkan dalam ilustrasi gambar 3.7 dibawah ini:
Gambar 3.7 Ilustrasi Proses Indexing
Proses indexing terhadap dokumen yang baru masuk terbagi dalam 4
proses yang digambarkan dalam gambar blok dagram 3.8 dibawah ini:
-
31
Gambar 3.8 Blok Diagram Proses Indexing
Berikut ini adalah penjelasan untuk setiap proses dalam proses indexing
dokumen:
1. Parsing ke dalam array
Proses ini berfungsi untuk memotong-motong dokumen kata per kata dan
menyimpannya ke dalam array. Untuk langkah program jelasnya digambarkan
dalam gambar 3.9 dibawah ini:
Dokumen Parsing ke dalam array
Stemming
Penghapusan Stopword
Penghitungan TermFrekuensi
Filtering
Stoplist
Term List Database
-
32
Gambar 3.9 Flowchart Proses Parsing
-
33
2. Proses penghapusan stopword dari array
Proses ini digunakan untuk menghapus kata-kata yang ‘tidak relevan’ dari
array. Kata dalam array dibandingkan dengan table Stopword yang ada dalam
database, jika ditemukan kata dalam array yang ada dalam table Stopword
kata tersebut akan dihapus dari array. Proses pencocokan dan penghapusan
dilakukan dari data pertama sampai terakhir dalam array. Untuk langkah
program jelasnya digambarkan dalam gambar 3.10 dibawah ini:
Gambar 3.10 Flowchart Proses Removing Stopword
-
34
3. Proses Stemming
Proses ini digunakan untuk mencari kata dasar dari kata yang ada dalam array,
proses stemming menggunakan algoritma Porter Stemmer for Bahasa
Indonesia yang telah dijelaskan pada bab 2, sub bab 2.1.3, untuk algoritma
proses stemming sesuai dengan Gambar 2.3 Algoritma Porter Stemmer for
Bahasa Indonesia.
4. Proses Perhitungan Term Frekuensi
Proses ini digunakan untuk menghitung jumlah kemunculan kata (Term
Frekuensi/tf) dari array yang sudah melewati proses penghapusan stopword.
Proses penghitungan dilakukan dengan array 2 dimensi (arrayTF[m][2]),
arrayTF akan mempunyai dimensi baris dan kolom, dengan banyak baris
sebanyak kata yang dibutuhkan, dan banyak kolom 2. Kolom 1 untuk
menampung kata, dan kolom 2 untuk menampung jumlah kemunculan kata.
Proses penghitungan dimulai dengan memasukkan data 1 dari array ke dalam
kolom 1 arrayTF, dengan nilai kolom 2 = 1. Kemudian semua data dalam
array akan dicocokkan dengan kolom 1 dari semua data arrayTF. Jika ada data
yang sesuai maka nilai dari kolom 2 akan ditambah 1 (increament 1),
sebaliknya jika tidak ada data yang sesuai maka data array akan dimasukkan
ke dalam kolom1 baris yang masih kosong dalam arrayTF dengan nilai kolom
2 = 1. Proses ini dikerjakan sampai semua data dalam array selesai
dicocokkan. Untuk langkah program jelasnya digambarkan dalam gambar
3.11 dibawah ini:
-
35
Gambar 3.11 Flowchart Proses Perhitungan Frekuensi kata
-
36
5. Proses filter Term
Pada proses ini daftar kata dalam array yang telah melalui proses perhitungan
term frekuensi akan disimpan ke dalam database. Tiap kata dalam array akan
dicocokkan dengan daftar Term dalam tabel Term, jika kata sudah terdapat
dalam dalam tabel Term, kata, frekuensi kemunculan, dan nama dokumen
akan disimpan dalam tabel List_Term dengan ID sesuai dengan ID dalam
tabel Term dan meng-update jumlah dokumen frekuensi dalam tabel Term
yang sesuai dangan kata dalam array. Sementara jika kata dalam array tidak
ditemukan maka kata akan disimpan kedalam tabel Term sebagai record baru
dengan ID baru, dan nilai dokumen frekuensi 1. Kemudian kata, frekuensi
kemunculan, dan nama dokumen akan disimpan dalam tabel List_Term
dengan ID sesuai dengan ID dalam tabel Term. Proses pencocokan dan
penyimpanan dilakukan dari data pertama sampai terakhir dalam array. Untuk
langkah program jelasnya digambarkan dalam gambar 3.12 dibawah ini:
-
37
Filtering kata dari arrayTF
i ← to jumlah arrayTF
Simpan kata ke tabel Term dalam database dengan nilai dokumen
frekuaensi (df) = 1
i
true
kata ← arrayTF[i]
j ← to jumlah term
if kata = term[j]
Update tabel Term dalam database where
term kata dengan nilai dokumen
frekuaensi (df) + 1
j
true
false
true
false
false
End Proses
Gambar 3.12 Flowchart Proses Filtering
-
38
3.3.3.2 Algoritma proses pencarian dokumen
Proses pencarian dokumen terbagi dalam 5 proses yang digambarkan
dalam gambar blok dagram 3.13 dibawah ini:
Gambar 3.13 Blok Diagram Proses Pencarian Dokumen
Berikut ini adalah penjelasan untuk setiap proses dalam proses pencarian
dokumen:
1. Parsing ke dalam array
Proses parsing dari query ke dalam array sama dengan proses parsing
dokumen ke dalam array yang telah dijelaskan pada Gambar 3.9 Flowchart
Proses Parsing.
Query Input Parsing ke dalam array
Stemming
Penghapusan Stopword
Pembuatan where statement untuk query
Query ke database
Stoplist
Term
Database
Term List
Dokumen
Tampilkan Hasil
-
39
2. Proses penghapusan stopword dari array
Proses penghapusan stopword dari array sama dengan proses penghapusan
stopword dari array dokumen yang telah dijelaskan pada Gambar 3.10
Flowchart Proses Removing Stopword.
3. Proses Stemming
Proses ini digunakan untuk mencari kata dasar dari kata yang ada dalam array,
proses stemming menggunakan algoritma Porter Stemmer for Bahasa
Indonesia yang telah dijelaskan pada bab 2, sub bab 2.1.3, untuk algoritma
proses stemming sesuai dengan Gambar 2.3 Algoritma Porter Stemmer for
Bahasa Indonesia.
4. Proses pembuatan kondisi where statement untuk query
Proses pembuatan kondisi where untuk query digunakan untuk membentuk
kondisi kata yang ingin dicari dalam database, kata yang dibentuk
berdasarkan isi dari variable array yang telah melewati proses penghapusan
stopword. Langkah pertama adalah membuat variable kondisi yang diset
dengan null, kemudian mengecek apakah data array kosong atau tidak, jika
kosong maka akan keluar dari proses dengan nilai balik kondisi. Sementara
jika data array tidak kosong akan masuk ke proses loop untuk membentuk
kondisi query. Kondisi di set dengan array[1] (kondisi = array[1]), kemudian
masuk ke proses loop sampai jumlah data array. Didalam loop kondisi akan
ditambahkan dengan “or” dan array[i] (kondisi = kondisi + “or” + array[i].
-
40
kondisi “or” adalah kondisi pencarian kata atau term dengan metode Boolean,
lebih khusus hanya dengan kondisi or. Setelah kondisi loop tidak terpenuhi
maka akan keluar dari proses dengan nilai balik kondisi. Untuk langkah
program jelasnya digambarkan dalam gambar 3.14 dibawah ini.
-
41
Gambar 3.14 Flowchart Proses Pembuatan Kondisi Where Statement Untuk
Query
-
42
5. Proses query ke database
Proses query ke database dilakukan untuk mencari daftar term beserta
bobotnya, dan daftar dokumen. Bobot kata berdasarkan bobot TF-IDF, proses
perhitungan bobot kata dilakukan pada sisi database yakni dengan
menambahkan formula pada query. Dari query akan menghasilkan ResultSet
berupa daftar bobot tiap term serta dokumen yang berhubungan dan nilai IDF
untuk tiap term. Daftar kata atau term yang dicari tergantung dari kondisi yang
dihasilkan dari proses pembentukan kondisi where pada proses sebelumnya,
jika kondisi = null, maka program tidak akan melakukan query ke database,
namun jika tidak maka akan melakukan query ke database dengan query
sebagai berikut:
Query untuk mengambil nilai IDF:
"select term.id_term, log10((count(dokumen.dokumen)/term.df)) as idf From
term, dokumen where " & kondisi & " group by term.id_term, term.df"
Query untuk mengambil Dokumen dan nilai TF:
"select dokumen.dokumen,term_list.tf,term_list.id_term From term join
term_list on term.id_term = term_list.id_term join dokumen on
term_list.id_dokumen = dokumen.id_dokumen where(" & kondisi & ") order
by dokumen.dokumen"
Nilai balik dari proses ini adalah arrayTFIDF[][]dari hasil query, Untuk
langkah program jelasnya digambarkan dalam gambar 3.15 di bawah ini.
-
43
ResultSet1 nullResultSet2 nullarrayTFIDF[][]
Query ke database
Query1 (Ambil nilai IDF)Query2 (Ambil Dokumen dan nilai TF)
kondisi not null?
true
Return arrayTFIDF[][]
Seleksi hasil Query1 dan Query2 ke dalam arrayTFIDF[][]
Gambar 3.15 Flowchart Proses Query ke Database
6. Proses Tampil Hasil query
Proses ini digunakan untuk menghitung nilai total bobot tiap dokumen
yang dihasilkan dari proses sebelumnya yakni proses query ke database.
Langkah perhitungan bobot total tiap dokumen adalah dengan membuat
arry hasil[m][n], dimensi [m] adalah jumlah dokumen yang ada, dan
[n]=2 dengan dimensi 1 untuk nama dokumen, dan dimensi 2 untuk nilai
bobot total dokumen. Array hasil[][] pertama kali diset dengan indeks 1
-
44
dari arrayTFIDF[][] yang dihasilkan dari proses sebelumnya yakni proses
query ke database, selanjutnya akan masuk ke proses loop untuk
mencocokkan tiap data dalam arrayTFIDF[][] dengan data array hasil[][],
jika ditemukan data yang sama maka nilai dari hasil[m][2] +
arrayTFIDF[x][2], namun jika tidak ditemukan data yang sama maka akan
dimasukkan pada array hasil[][] pada posisi paling bawah. Proses ini akan
dilakukan sampai semua arrayTFIDF[][] selesai di cocokkan. Setelah
proses selesai maka kemudian data array hasil[][] akan diurutkan
berdasarkan jumlah total bobot yakni pada indeks array hasil[m][2], dari
besar ke terkecil. Proses ini untuk menentukan urutan rangking dari
dokumen yang berhasil di dapatkan dari proses query, selanjutnya setelah
array hasil[][] selesai diurutkan akan ditampilkan kepada user. Untuk
langkah program jelasnya digambarkan dalam gambar 3.16 di bawah ini.
-
45
Gambar 3.16 Flowchart Proses Tampil Hasil Query
-
46
3.3.4 Perancangan Database
Berikut ini langkah-langkah yang akan dilakukan dalam perancangan
database, yaitu :
a) Conceptual Database Design
b) Logical Database Design
c) Physical Database Design
3.3.4.1 Conceptual Database Design
Gambar 3.17 Diagram E-R
3.3.4.2 Logical Database Design
Gamabr 3.18 Relasi Antar Tabel
-
47
3.3.4.3 Physical Database Design
Desain dari basis data yang akan digunakan dalam program mesin pencari
data tokoh dan kriteria wayang dalam kamus pewayangan dapat dijabarkan
sebagai berikut
1. Tabel Term
Tabel term berisikan data daftar term atau kata dan df (dokumen frekuensi)
dalam database.
Nama Tabel : Term
Nama Field Kunci : id_term
Tabel ini berisi sejumlah field yang dijabarkan sebagai berikut
Tabel 3.2 Tabel Term
Nama Field Tipe Data Ukuran Keterangan
Id_term Integer 255 Sebagai field kunci tabel term
Term Varchar 100 Isi term atau kata
Df Integer 255 Jumlah Dokumen
2. Tabel Term_List
Tabel term_list berisikan data daftar list term, id_dokumen, id_term dan tf
(term frekuensi) dalam database.
Nama Tabel : Term_List
Nama Field Kunci : id_term_list
Tabel ini berisi sejumlah field yang dijabarkan dalam tabel 3.3
-
48
Tabel 3.3 Tabel Term_List
Nama Field Tipe Data Ukuran Keterangan
Id_term_list Integer 255 Sebagai field kunci tabel
term_list
Id_term Integer 255 Sebagai Foreign key dari tabel
term
Id_dokumen Integer 255 Sebagai Foreign key dari tabel
dokumen
Tf Integer 255 Jumlah term frekuensi atau
jumlah kemunculan kata
3. Tabel Dokumen
Tabel term berisikan data daftar dokumen, df (dokumen frekuensi) dalam
database.
Nama Tabel : Dokumen
Nama Field Kunci : id_dokumen
Tabel ini berisi sejumlah field yang dijabarkan dalam tabel 3.4
Tabel 3.4 Tabel Dokumen
Nama Field Tipe Data Ukuran Keterangan
Id_dokumen Integer 255 Sebagai field kunci tabel
dokumen
dokumen Varchar 100 Nama dokumen
4. Tabel Stoplist
Tabel term berisikan data daftar stopword dalam database.
Nama Tabel : Stoplist
-
49
Nama Field Kunci : id_stopword
Tabel ini berisi sejumlah field yang dijabarkan dalam tabel 3.4
Tabel 3.5 Tabel Stoplist
Nama Field Tipe Data Ukuran Keterangan
Id_stopword Integer 255 Sebagai field kunci tabel stoplist
stopword Varchar 100 Isi stopword daftar kata buang
5. Tabel Admin
Tabel admin berisikan data daftar admin dalam database.
Nama Tabel : Admin
Nama Field Kunci : id_admin
Tabel ini berisi sejumlah field yang dijabarkan dalam tabel 3.6
Tabel 3.6 Tabel Admin
Nama Field Tipe Data Ukuran Keterangan
Id_admin Integer 255 Sebagai field kunci tabel admin
User_name Varchar 100 Isi user name daftar admin
Password Varchar 100 Isi password daftar admin
3.4 Perancangan Antarmuka (Interface)
Rancangan antar muka yang dimaksud adalah rancangan bentuk tampilan
pada layar monitor untuk menvisualisasikan dan menampilkan informasi yang
diperlukan agar pengguna dapat memahami bagaimana menjalankan program.
Antarmuka ini dipisahkan menjadi beberapa tampilan berdasarkan kategori
-
50
informasi. Jadi rancangan antarmuka merupakan bagian yang tidak dapat
diabaikan dalam membuat suatu program yang interakatif. Karena antarmuka
merupakan jembatan antara pengguna dengan program yang digunakan.
1. Desain Menu Utama
Gambar 3.19 Desain Menu Utama
Form ini adalah form utama untuk user, dari form ini user dapat memilih
menu yang diinginkan dengan menekan tombol yakni tombol Cari Dokumen,
Login ,About dan Help.
-
51
2. Desain Form Pencarian
Gambar 3.20 Desain Form Pencarian
Form ini digunakan untuk melakukan proses pencarian dokumen wayang
oleh user atau admin, user atau admin dapat memasukkan kata kunci yang
diiginkan pada TexBox1, kemudian menekan tombol cari. Daftar dokumen yang
berhasil didapatkan akan ditampilkan pada ListBox. Untuk membaca isi dokumen
user cukup memilih nama dokumen yang ada dalam daftar ListBox, dan program
akan menampilkan isinya dalam TexBox2. Untuk mereset ulang pencarian cukup
dengan menekan tombol Reset.
-
52
3. Desain Form Login
Gambar 3.21 Desain Form Login
Form ini digunakan utnuk login admin. Admin yang hendak login
memasukkan username dan password pada tempat yang telah disediakan. Tombol
login digunakan untuk melakukan pengecekan username dan password, jika
username dan password terdapat dalam database maka akan masuk ke menu
utama admin, sementara jika salah maka akan masuk kembali ke menu utama
user. Tombol cancel digunakan untuk membatalkan proses login dan kembali ke
menu utama user.
4. Desain Form Menu Utama Admin
Gambar 3.22 Desain Form Menu Utama Admin
-
53
Form ini adalah form utama untuk admin, dari form ini admin dapat
memilih menu yang diinginkan dengan menekan tombol yang disediakan yakni
tombol Tambah Dokumen, Manage Stoplist, Logout, About dan Help.
5. Desain Form Admin Tambah Dokumen
Gambar 3.23 Desain Form Tambah Dokumen
Form ini digunakan untuk menambahkan dokumen baru ke dalam koleksi
dokumen. User dapat menekan tombol Cari untuk mencari lokasi dokumen yang
akan ditambahkan, dokumen yang bisa diproses hnya yang berekstensi *.txt.
tombol Reset digunakan untuk mereset isi dari TextBox ke kondisi kosong,
sementara tombol Simpan Dokumen digunakan untuk menyimpan dokumen ke
koleksi, dan secara otomatis akan melakukan proses indexing ke dalam database.
Konfirmasi dari proses ini akan ditampilkan pada bagian Konfirmasi Proses
Simpan.
-
54
6. Desain Form Admin Manage Stoplist
Gambar 3.24 Desain Form Manage Stoplist
Form ini digunakan untuk melakukan penambahan, perubahan, atau
penghapusan daftar stoplist. Untuk menambah data cukup dengan memasukkan
data stoplist baru ke dalam TextBox kemudian menekan tombol Simpan. Daftar
stoplist yang sudah ada terdapat dalam Tabel Daftar Stoplist, dari table ini user
dapat secara langsung memilih data yang ingin dirubah atau dihapus, yang
kemudian ditampilkan dalam TexBox2.
-
55
BAB IV
IMPLEMENTASI
4.1 Spesifikasi Software dan Hardware yang digunakan
4.1.1 Spesifikasi Software
Sistem Operasi Microsoft Windows XP Profesional S.P 2
Basisdata SQL SERVER 2000
Bahasa Pemrograman Visual Basic versi 6.0
4.1.2 Spesifikasi Hardware
Prosesor Intel Core 2 Duo 2.0 GHz
Memory 2GB DDR2
HardDisk 160GB
4.2 Koneksi Basisdata dengan Sistem
4.2.1 Koneksi basisdata SQL SERVER 2000 dengan sistem
Koneksi ini dibuat untuk menghubungkan sistem dengan basisdata SQL
SERVER 2000 sebagai basisdata yang berfungsi untuk menyimpan data
dokumen, hasil indexing dokumen, dan daftar stopword.
Adapun scriptnya sebagai berikut:
Public Const con = "Driver={SQL Server};SERVER=.; DATABASE=dbWayang; UID=sa; PWD="Public db As ADODB.ConnectionSet db = CreateObject("ADODB.Connection")db.Open con
-
56
Dari script koneksi di atas menggunakan provider SQLOLEDB yaitu provider
untuk basisdata SQLSERVER yang disediakan oleh Microsoft OLE DB.
DATABASE adalah nama basisdata yang digunakan yakni dbWayang, UID
adalah nama user, dan PWD adalah password yang digunakan untuk login ke
basisdata.
4.3 Pembuatan Antarmuka (Interface)
Antarmuka merupakan tampilan yang nantinya akan berinteraksi langsung
dengan pengguna. Antarmuka untuk aplikasi program ini adalah sebagai berikut:
4.3.1 Form Menu Utama
Form menu utama ini akan muncul pada saat system pertama kali
dijalankan. Form menu utama ini berupa frmMenuUser yang berisikan 4 tombol
yaitu tombol cari dokumen yang digunakan untuk melakukan proses pencarian
dokumen, tombol help yang digunakan untuk membuka help atau bantuan, tombol
about yang digunakan untuk menampolkan informasi tentang program dan tombol
login yang dugunakan untuk login sebagai administrator program.
Gambar 4.1 Form Menu Utama
-
57
4.3.2 Form Cari Dokumen Wayang
Form cari dokumen wayang digunakan untuk melakukan proses pencarian
data pada basisdata sesuai dengan kata kunci yang dimasukkan pengguna. Pada
pencarian dokumen dilakukan proses pemotongan kata (parsing), penghapusan
stopword, stemming, dan pembuatan kondisi untuk proses query ke basisdata.
Untuk melakukan proses pencarian pengguna tinggal memasukkan kata kunci
pada text field kata kunci kemudian tekan tombol cari dokumen, daftar dokumen
yang ditemukan akan ditampilkan pada bagian hasil pencarian diurutkan
berdasarkan nilai bobot dokumen dari yang paling besar. Sedangkan bagian isi
dokumen untuk menampilkan isi dokumen dari daftar dokumen yang dipilih oleh
pengguna.
Gambar 4.2 Form Cari Dokumen Wayang
-
58
Script yang ada pada form cari dokumen yang digunakan untuk melakukan proses
pencarian:
Method untuk pemotongan kata (parsing)
'*******************************'
' Method Untuk Parsing '
'*******************************'
Private Function parsingArray(ByVal text As String, ByRef output() As String) As String
'Inisialisasi Counter Untuk Proses Loop
Dim i As Integer
Dim pemenggal_kata() As String, tmp() As String
ReDim pemenggal_kata(0 To 27)
pemenggal_kata(0) = Chr(34)
pemenggal_kata(1) = ""
pemenggal_kata(3) = "+"
pemenggal_kata(4) = "="
pemenggal_kata(5) = "_"
pemenggal_kata(6) = "@"
pemenggal_kata(7) = "#"
pemenggal_kata(8) = "$"
pemenggal_kata(9) = "%"
pemenggal_kata(10) = "*"
pemenggal_kata(11) = "^"
pemenggal_kata(12) = "["
pemenggal_kata(13) = "]"
pemenggal_kata(14) = "{"
pemenggal_kata(15) = "}"
pemenggal_kata(16) = ","
pemenggal_kata(17) = Chr(39)
-
59
pemenggal_kata(18) = "("
pemenggal_kata(19) = ")"
pemenggal_kata(20) = "-"
pemenggal_kata(21) = "/"
pemenggal_kata(22) = "\"
pemenggal_kata(23) = "&"
pemenggal_kata(24) = "?"
pemenggal_kata(25) = "!"
pemenggal_kata(26) = ";"
pemenggal_kata(26) = " "
For i = LBound(pemenggal_kata) To UBound(pemenggal_kata)
text = Replace(text, pemenggal_kata(i), ".")
Next
text = Replace(text, " ", "")
Erase output
output() = Split(text, ".")
End Function
Method untuk penghapusan stopword
'*********************************************'
' Method Remove Stopword Dari Array '
'*********************************************'
Private Function removeStopword()
'Deklarasi semua variabel yang dibutuhkan
Dim dataRS As ADODB.Recordset
Dim dtStopword() As String, i As Integer, j As Integer
Dim k As Integer, kode As Boolean
'Buat object
-
60
Set dataRS = CreateObject("ADODB.Recordset")
dataRS.CursorLocation = adUseClient
dataRS.CursorType = adOpenStatic
'Ambil Isi Tabel stopword
dataRS.Open "select stopword from stoplist", db, adOpenStatic, adLockOptimistic
ReDim arrayRemove(10000)
ReDim dtStopword(10000)
i = 0
Do While Not dataRS.EOF
dtStopword(i) = dataRS("stopword")
dataRS.MoveNext
i = i + 1
Loop
dataRS.Close
Set dataRS = Nothing
k = 0
For i = LBound(arrayText) To UBound(arrayText)
kode = True
For j = LBound(dtStopword) To UBound(dtStopword)
If LCase$(arrayText(i)) = LCase$(dtStopword(j)) Then
kode = False
End If
Next
If kode = True And IsNumeric(arrayText(i)) = False Then
arrayRemove(k) = arrayText(i)
k = k + 1
-
61
End If
Next
End Function
Method untuk stemming
Public Function steaming(ByVal word As String) As String
Dim panjag As Integer, kode As Boolean
panjang = Len(word)
'Inisialisasi isi array Particle
Particle(0) = "kah"
Particle(1) = "lah"
Particle(2) = "pun"
'Inisialisasi isi array Pronoun
Pronoun(0) = "ku"
Pronoun(1) = "mu"
Pronoun(2) = "nya"
'Inisialisasi isi array Prefix1
ReDim Prefix1(12, 2)
Prefix1(0, 1) = "meng"
Prefix1(0, 2) = ""
Prefix1(1, 1) = "meny"
Prefix1(1, 2) = "s"
Prefix1(2, 1) = "men"
Prefix1(2, 2) = ""
Prefix1(3, 1) = "mem"
Prefix1(3, 2) = ""
Prefix1(4, 1) = "me"
Prefix1(4, 2) = ""
Prefix1(5, 1) = "peng"
Prefix1(5, 2) = ""
-
62
Prefix1(6, 1) = "peny"
Prefix1(6, 2) = "s"
Prefix1(7, 1) = "pen"
Prefix1(7, 2) = ""
Prefix1(8, 1) = "pem"
Prefix1(8, 2) = ""
Prefix1(9, 1) = "di"
Prefix1(9, 2) = ""
Prefix1(10, 1) = "ter"
Prefix1(10, 2) = ""
Prefix1(11, 1) = "ke"
Prefix1(11, 2) = ""
Dim pjg As Integer
'*****************'
' Remove Particle '
'*************************************************'
For i = LBound(Particle) To UBound(Particle)
pjg = Len(Particle(i))
If Right$(word, pjg) = Particle(i) Then
word = Left$(word, panjang - pjg)
End If
Next
'**************************************************'
'****************'
' Remove Pronoun '
'**************************************************'
For i = LBound(Pronoun) To UBound(Pronoun)
pjg = Len(Pronoun(i))
If Right$(word, pjg) = Pronoun(i) Then
-
63
word = Left$(word, panjang - pjg)
End If
Next
'**************************************************'
'***************************'
' Remove First Order Prefix '
'*******************************************************************'
kode = False
For i = LBound(Prefix1) To UBound(Prefix1)
pjg = Len(Prefix1(i, 1))
If Left$(word, pjg) = Prefix1(i, 1) Then
'kode = True
word = Prefix1(i, 2) & Right$(word, panjang - pjg)
awalan = Prefix1(i, 1)
End If
Next
'********************************************************************'
word = GetPrefix2(word)
kode = GetSufix(word)
steaming = word
End Function
Method untuk pencarian dokumen
'*********************************************'
' Method Cari Dokumen '
'*********************************************'
Private Function cariDokumen(ByVal kondisi As String)
Dim dataIDF As ADODB.Recordset, dataTF As ADODB.Recordset
Dim arrayIDF() As String, arrayTF() As String, i As Integer
Dim k As Integer, l As Integer, m As Integer
-
64
Dim arrayTFIDF() As String, bobot As Double, jum As Integer, kode As Boolean
jum = 0
'Buat object
Set dataIDF = CreateObject("ADODB.Recordset")
dataIDF.CursorLocation = adUseClient
dataIDF.CursorType = adOpenStatic
'Buat object
Set dataTF = CreateObject("ADODB.Recordset")
dataTF.CursorLocation = adUseClient
dataTF.CursorType = adOpenStatic
'Ambil nilai idf untuk keyword yang dimasukkan
dataIDF.Open "select term.id_term, log10((count(dokumen.dokumen)/term.df)) as idf From term, dokumen where " & kondisi & " group by term.id_term, term.df", _
db, adOpenStatic, adLockOptimistic
'Ambil nilai tf untuk keyword yang dimasukkan
dataTF.Open "select dokumen.dokumen,term_list.tf,term_list.id_term From term join term_list on term.id_term = term_list.id_term join dokumen on term_list.id_dokumen = dokumen.id_dokumen where(" & kondisi & ") order by dokumen.dokumen", _
db, adOpenStatic, adLockOptimistic
ReDim arrayIDF(10000, 2)
ReDim arrayTF(10000, 3)
ReDim arrayTFIDF(10000, 2)
i = 0
Do While Not dataIDF.EOF
arrayIDF(i, 1) = dataIDF("id_term")
arrayIDF(i, 2) = dataIDF("idf")
dataIDF.MoveNext
i = i + 1
Loop
-
65
dataIDF.Close
Set dataIDF = Nothing
j = 0
Do While Not dataTF.EOF
arrayTF(j, 1) = dataTF("dokumen")
arrayTF(j, 2) = dataTF("id_term")
arrayTF(j, 3) = dataTF("tf")
dataTF.MoveNext
j = j + 1
Loop
dataTF.Close
Set dataTF = Nothing
m = 0
For k = 0 To j
For l = 0 To i
If arrayTF(k, 2) = arrayIDF(l, 1) Then
bobot = Val(arrayIDF(l, 2)) * Val(arrayTF(k, 3))
End If
Next
arrayTFIDF(m, 1) = arrayTF(k, 1)
arrayTFIDF(m, 2) = bobot
m = m + 1
Next
ReDim hasil(10000, 2)
hasil(0, 1) = arrayTFIDF(0, 1)
hasil(0, 2) = arrayTFIDF(0, 2)
jum = 1
For n = 1 To m
kode = True
-
66
For o = 0 To jum
If hasil(o, 1) = arrayTFIDF(n, 1) Then
hasil(o, 2) = Val(hasil(o, 2)) + Val(arrayTFIDF(n, 2))
kode = False
End If
Next
If kode = True And Len(arrayTFIDF(n, 1)) > 0 Then
hasil(jum, 1) = arrayTFIDF(n, 1)
hasil(jum, 2) = arrayTFIDF(n, 2)
jum = jum + 1
End If
Next
Dim tmpDoc As String, tmpW As Integer
For p = 0 To jum
For q = 0 To jum - 1
If Val(hasil(q, 2)) < Val(hasil(q + 1, 2)) Then
tmpDoc = hasil(q, 1)
tmpW = hasil(q, 2)
hasil(q, 1) = hasil(q + 1, 1)
hasil(q, 2) = hasil(q + 1, 2)
hasil(q + 1, 1) = tmpDoc
hasil(q + 1, 2) = tmpW
End If
Next
Next
If j < 1 Then
MsgBox "Tidak Ada Dokumen Yang Ditemukan", vbInformation, "Pesan Konfirmasi"
Else
For r = 0 To jum - 1
-
67
If Len(hasil(r, 1)) > 1 And hasil(r, 2) > 0 Then
lstHasil.AddItem r + 1 & "#" & hasil(r, 1)
End If
Next
End If
End Function
Script untuk menampilkan isi dokumen
Private Sub lstHasil_Click()
Dim file() As String
file() = Split(lstHasil.text, "#")
txtIsi.text = ""
F = FreeFile
If FileExists(App.Path & "\Dokumen\" & file(1)) Then
Open App.Path & "\Dokumen\" & file(1) For Input As #F
txtIsi.text = Input$(LOF(F), F)
Close #F
lblBobot.Caption = hasil(file(0) - 1, 2)
lblNama.Caption = file(1)
Else
MsgBox "Maaf File Tidak Ditemukan", vbInformation, "Pesan Konfirmasi"
End If
End Sub
-
68
4.3.3 Form About
Form ini berisi tentang informasi program, yakni data diri pembuat program
Gambar 4.3 Form About
4.3.4 Form Login
Form ini digunakan untuk proses login oleh admin, admin tinggal
memasukkan username dan password pada text field, lalu menekan tombol login.
Jika username dan password sesuai dengan yang ada pada basisdata, maka
selanjutnya akan masuk ke form menu admin, tetapi jika gagal akan kembali ke
form login, tombol cancel digunakan untuk membatalkan proses login dan
kembali ke menu utama user.
-
69
Gambar 4.4 Form Login
4.3.5 Form Menu Admin
Form menu admin akan ditampilkan jika proses login sukses, pada form
ini terdapat 5 buah tombol yaitu tombol tambah dokumen yang berguna untuk
menampilkan form tambah dokumen wayang untuk menambah data dokumen
baru, tombol manage stoplist digunakan untuk menampilkan form manage
stoplist, tombol help digunakan untuk untuk menampilkan bantuan program,
tombol about digunakan untuk menampilkan informasi program seperti pada
gambar 4.3 dan tombol logout digunakan untuk keluar dari form menu utama
admin ke menu utama user.
-
70
Gambar 4.5 Form Menu Utama Admin
4.3.6 Form Tambah Dokumen
Form tambah dokumen digunakan untuk proses penambahan dokumen
baru, pada form ini proses indexing dilakukan. Proses penambahan dokumen baru
melawati 5 proses, 3 proses sama dengan proses pencarian dokumen wayang,
yakni proses pemotongan kata (parsing) script methodnya sama dengan method
parsing dalam form cari dokumen wayang. Proses penghapusan stopword, script
method penghapusan stopword sama dengan method yang ada pada form cari
dokumen wayang dan method stemming juga sama dengan method pada form cari
dokumen wayang. Sedangkan 2 proses yang berbeda dengan proses cari dokumen
wayang yaitu, proses perhitungan term frekuensi dan proses filtering untuk
penyimpanan ke basis data.
-
71
Gambar 4.6 Form Tambah Dokumen Wayang
Script yang ada pada form tambah dokumen wayang yang digunakan untuk
melakukan proses indexing:
Method perhitungan term frekuensi
Private Function HitungTFArray()
'Inisialisasi Counter Untuk Proses Loop
Dim i As Integer, j As Integer, kode As Boolean, X As Integer
ReDim arrayTF(10000, 2)
arrayTF(1, 1) = arrayRemove(0)
arrayTF(1, 2) = 1
jum = 1
For i = (LBound(arrayRemove) + 1) To UBound(arrayRemove)
kode = True
For j = 1 To jum
If LCase$(arrayRemove(i)) = LCase$(arrayTF(j, 1)) Then
arrayTF(j, 2) = arrayTF(j, 2) + 1
kode = False
End If
Next
top related