PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI · 2016. 11. 23. · Pencarian dokumen makalah ilmiah yang...
Transcript of PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI · 2016. 11. 23. · Pencarian dokumen makalah ilmiah yang...
i
SISTEM TEMU BALIK INFORMASI DOKUMEN MAKALAH ILMIAH
BERBAHASA INDONESIA MENGGUNAKAN STRUKTUR DATA
INVERTED INDEX BERBASIS HASH TABLE DAN LINKED LIST
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh:
Reza Mohammad Darojad
NIM:085314024
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2013
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
INFORMATION RETRIEVAL SISTEM OF INDONESIAN SCIENTIFIC
PAPER USING INVERTED INDEX DATA STRUCTURE BASED ON
HASH TABLE AND LINKED LIST
THESIS
Presented as Partial Fullfilment of the Requirements
To Obtain the Computer Bachelor Degree
In Informatics Engineering
By:
Reza Mohammad Darojad
NIM:085314024
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2013
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
HALAMAN PERSTETUJUAN
SKRIPSI
SISTEM TEMU BALIK INFORMASI DOKUMEN MAKALAH ILMIAH
BERBAHASA INDONESIA MENGGUNAKAN STRUKTUR DATA
INVERTED INDEX BERBASIS HASH TABLE DAN LINKED LIST
Oleh:
Reza Mohammad Darojad
NIM:085314024
Telah disetujui oleh:
Dosen Pembimbing
JB. Budi Darmawan, S.T., M.Sc. Tanggal:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
HALAMAN PERSTETUJUAN
SKRIPSI
SISTEM TEMU BALIK INFORMASI DOKUMEN MAKALAH ILMIAH
BERBAHASA INDONESIA MENGGUNAKAN STRUKTUR DATA
INVERTED INDEX BERBASIS HASH TABLE DAN LINKED LIST
Dipersiapkan dan ditulis oleh
Reza Mohammad Darojad
NIM:085314024
Telah dipertahankan di depan Panitia Penguji
Pada tanggal 15 Februari 2013
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap Tanda Tangan
Ketua Sri Hartati Wijono, S. Si., M. Kom. .........................
Sekretaris Puspaningtyas Sanjoyo Adi, S.T., M.T. .........................
Asnggota JB. Budi Darmawan, S.T., M. Sc. .........................
Yogyakarta , .... Februari 2013
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
Paulina Heuriningsih Prima Rosa, S.Si., M. Sc.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan seungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya orang lain kecuali yang telah disebutkan dalam kutipan dan
daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, Februari 2013
Penulis,
Reza M. Darojad
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
ABSTRAKSI
Makalah ilmiah adalah karya ilmiah akademik yang dipublikasikan. Makalah
ilmiah berbahasa Indonesia lebih ditujukan untuk ruang lingkup pembaca
nasional.
Seiring bertambahnya jumlah makalah ilmiah yang beredar para akademisi
memerlukan informasi mengenai makalah-makalah yang akan mereka baca atau
referensikan. Informasi tersebut dapat diperoleh menggunakan sistem temu-
kembali informasi (Information retrieval) agar pengguna mendapatkan keputusan
sumber informasi yang tepat sesuai kebutuhan pengguna.
Sistem Pemerolehan informasi yang dibangun berfokus pada model TF-IDF
dengan algoritma stemming Nazief & Adriani karena dokumen makalah yang
akan di cari adalah makalah ilmiah berbahasa Indonesia dan algoritma tersebut
adalah yang paling optimal tingkat relevansinya untuk saat ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
ABSTRACT
Scientific papers are academic papers that published. Indonesian-language
scientific papers aimed more at the national scope of the reader.
With the growing number of outstanding scientific papers, academics need
information about the papers they would read or refer. Such information can be
obtained using Information Retrieval Systems so that users get the right decision
sources of information according to user needs.
Information Retrieval System is built focusing on the model TF-IDF with
Nazief & Adriani stemming algorithms for paper documents that will be looking
for is a scientific paper in Indonesian language and the algorithm is the optimal
level of relevance for today.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
HALAMAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata
Dharma:
Nama : Reza Mohammad Darojad
NIM : 085413024
Demi pengembangan ilmu pengetahuan, saya memberikan kepada
perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul:
SISTEM TEMU BALIK INFORMASI DOKUMEN MAKALAH ILMIAH
BERBAHASA INDONESIA MENGGUNAKAN STRUKTUR DATA
INVERTED INDEX BERBASIS HASH TABLE DAN LINKED LIST
Berserta 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 laiin untuk kepentingan akademis tanpa perlu meminta ijin dari saya
maupun memberi royalti kepada saya selama tetap mencantumkan nama saya
sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal:
Yang menyatakan
(Reza M. Darojad)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
KATA PENGANTAR
Puji syukur kepada Yesus Kristus yang telah memberikan karunia, rahmat,
dan kesempatan, sehingga penulis dapat menyelesaikan skripsi ini. Penyusunan
skripsi ini tidak lepas dari semua pihak yang turut memberikan dukungan, doa,
semangat, dan bantuan yang sangat bermanfaat bagi penulis. Pada kesempatan ini
penulis mengucapkan terima kasih sebesar besarnya kepada :
1. Bapak JB. Budi Darmawan, S.T., M.Sc. selaku dosen pembimbing
senantiasa memberikan masukkan dan bantuan dalam membimbing
penulis untuk menyelesaikan skripsi ini.
2. Segenap dosen Universitas Sanata Dharma yang telah membantu
memberikan bekal pengetahuan kepada penulis.
3. Ibu Sulistyaningtyas dan Kakak Tyas yang selalu memberi dukungan.
4. Seluruh sahabat dan rekan-rekan TI yang tidak dapat penulis sebutkan atas
kesediaanya dalam memberikan masukkan, menemani dan memberi
dukungan kepada penulis.
Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada
skripsi ini. Saran dan kritik penulis harapkan untuk kebaikan bersama. Semoga
bermanfaat.
Yogyakarta, Februari 2013
Penulis,
Reza M. Darojad
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
Daftar Isi
HALAMAN JUDUL........................................................................................................... i
HALAMAN PERSETUJUAN SKRIPSI .......................................................................... iii
PERNYATAAN KEASLIAN KARYA ......................................................................................... v
ABSTRAKSI ......................................................................................................................... vi
ABSTRACT ........................................................................................................................ vii
HALAMAN PERSETUJUAN PUBLIKASI KARYA ILMIAH ..................................................... viii
KATA PENGANTAR............................................................................................................. ix
Daftar Isi ............................................................................................................................. x
Bab I Pendahuluan ............................................................................................................ 1
1.1. Latar belakang .................................................................................................... 1
1.2. Rumusan Masalah .............................................................................................. 2
1.3. Tujuan ................................................................................................................ 3
1.4. Batasan Masalah ................................................................................................ 3
1.5. Metodologi Penelitian ........................................................................................ 4
1.6. Sistematika Penulisan ......................................................................................... 5
Bab II Landasan Teori ......................................................................................................... 7
2.1 Information Retrieval ......................................................................................... 7
2.2 Proses Indexing .................................................................................................. 9
2.3 Pembobotan Kata ............................................................................................. 14
2.4 Hash Table ........................................................................................................ 17
2.5 LinkedList ......................................................................................................... 17
2.6 Precision dan Recall .......................................................................................... 17
BAB III ANALISA DAN PERANCANGAN SISTEM ............................................................... 18
3.1 Analisa Sistem .................................................................................................. 18
3.2 Perancangan Sistem ......................................................................................... 33
BAB IV IMPLEMENTASI SISTEM ....................................................................................... 48
4.1. Spesifikasi Perangkat Lunak dan Perangkat Keras ........................................... 48
4.3. Implementasi Inverted Index ............................................................................ 59
4.4. Implementasi Antarmuka ................................................................................. 65
4.5. Implementasi Control ....................................................................................... 70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
4.6. Implementasi Model ......................................................................................... 72
BAB V ANALISA HASIL ...................................................................................................... 73
BAB VI KESIMPULAN DAN SARAN ................................................................................... 87
6.1 Kesimpulan ...................................................................................................... 87
Daftar Pustaka .................................................................................................................. 89
LAMPIRAN ........................................................................................................................ 91
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
Bab I
Pendahuluan
1.1. Latar belakang
Jumlah dokumen makalah ilmiah digital di Indonesia terus bertambah
sehingga masyarakat terutama akademisi memerlukan suatu sistem yang dapat
mengakses dan menyediakan berbagai informasi sesuai kebutuhannya. Informasi
tersebut dapat diperoleh menggunakan sistem temu-kembali informasi
(Information retrieval) agar pengguna mendapatkan sumber informasi yang tepat
sesuai kebutuhan pengguna dari sekumpulan dokumen yang besar (Manning,
2009).
TF-IDF adalah salah satu metode dari Information Retrieval untuk
memberikan bobot hubungan suatu kata (term) terhadap dokumen. Metode TF-
IDF yang digunakan menggunakan teknik pembobotan Savoy karena pada teknik
pembobotan ini, bobot istilah telah dinormalisasi. Teknik ini memperhitungkan
jumlah dokumen yang mengandung istilah yang bersangkutan dan jumlah
keseluruhan dokumen. Sehingga jika sebuah istilah mempunyai frekuensi
kemunculan yang sama pada dua dokumen belum tentu mempunyai bobot yang
sama. Teknik ini sudah diterapkan pada dokumen berbahasa Indonesia dan cukup
baik dalam memberikan bobot dokumen terurut(Baeza, 1999).
Data yang berisi daftar term dan hubungannya dengan dokumen disimpan
dalam sebuah Inverted Index. Inverted index terdiri dari dua bagian utama,
dictionary dan posting list. Struktur data Hash Table adalah pilihan sesuai
digunakan sebagai dictionary karena waktu aksesnya relatif singkat dimana
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
pengurutan data tidak diutamakan. Posting List memerlukan struktur data
penyimpanan yang terurut dan dinamis, Ordered Linked List diimplementasikan
untuk Posting List karena ukuran Linked List yang dapat melebar menyesuaikan
data yang ditambahkan. Ordered Linked List berdasarkan pada Linked List dengan
penambahan pengurutan data (Robert, 2003).
Pencarian dokumen makalah ilmiah yang sudah ada sebagian besar
menghasilkan informasi berdasarkan abstrak, judul,pengarang, penerbit, dan
subjek makalah. bukan seluruh isi makalah. Peneliti mengembangkan Sistem
Pemerolehan Informasi untuk dokumen makalah berbahasa Indonesia
menggunakan seluruh isi teks dokumen.
1.2. Rumusan Masalah
Dari latar belakang di atas dapat dirumuskan beberapa masalah yang akan
dikaji, yaitu:
1. Sejauh mana performa struktur data Hash dan LinkedList terhadap
pencarian dokumen?
2. Bagaimana sistem temu balik informasi ini dapat menghasilkan dokumen
yang relevan yang teranking berdasarkan query masukan oleh pengguna?
3. Seberapa relevankah dokumen hasil dari metode pembobotan TD-IDF
yang dihasilkan terhadap query pengguna?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.3. Tujuan
Penelitian ini bertujuan untuk mengimplementasikan sistem pemerolehan
informasi untuk pencarian makalah ilmiah berbahasa Indonesia menggunakan
seluruh isi teks makalah ilmiah dan mengetahui unjuk kerja sistem yang
menggunakan Inverted Index klasik dengan struktur data Hash Table dan Ordered
LinkedList dengan operasi boolean dasar
1.4. Batasan Masalah
1. Sistem ini berfokus pada dokumen berbahasa Indonesia yang mengandung
format Portable Document Format(PDF).
2. Dokumen hasil Query yang akan dipilih user telah tersedia dalam indeks
sistem dan merupakan bagian dari koleksi pengujian sebanyak 281
dokumen berbahasa Indonesia.
3. Koleksi pengujian diambil dari kolesi dokumen makalah ilmiah berbahasa
Indonesia.
4. Sistem tidak menggunakan DBMS untuk indeks kata dalam pencarian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
1.5. Metodologi Penelitian
Dalam penelitian ini dilakukan tahap-tahap penelitian sebagai berikut:
1. Studi Pustaka
Studi pustaka penerapan inverted index klasik menggunakan pembobotan
TF-IDF dengan operasi AND.
2. Pengumpulan Data
Pengumpulan dokumen-dokumen makalah ilmiah yang berbahasa
Indonesia sebagai corpus sebanyak 281 dokumen.
3. Implementasi
Implementasi penerapan TF-IDF dan struktur data classical yaitu Inverted
Index yang berbasis pada Hash dan Ordered LinkedList untuk mendukung
inverted index dengan menggunakan rumus pembobotan Savoy.
4. Pengujian
Pengujian relevansi pencarian menggunakan recall precision dan
Pengamatan unjuk kerja waktu query dengan operasi AND dengan dua
belas kelompok kata yang mengandung frekuensi dokumen tertentu.
Kelompok kata tersebut adalah kelompok kata yang memiliki dfk 1 sampai
2, dfk mendekati 140, dan dfk kurang lebih 280, 1 kata kunci pencarian
hingga 4 kata kunci pencarian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
1.6. Sistematika Penulisan
Sistematika penulisan dan penyusunan tugas akhir ini dibagi
menjadi 6 (enam) bab, yaitu :
BAB I PENDAHULUAN
Bab ini berisi penjelasan tentang latar belakang, rumusan masalah,
batasan masalah, tujuan penelitian, manfaat penelitian, metodologi
penelitian, dan sistematika dari penulisan tugas akhir.
BAB II LANDASAN TEORI
Bab ini berisi penjelasan tentang teori-teori yang berkaitan dengan
penulisan tugas akhir.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi penjelasan mengenai identifikasi masalah yang ada, kerja
dari sistem yang ada, dan analisis sistem yang meliputi analisis masalah
dalam sistem lama dan analisis kebutuhan sistem baru. Terdapat pula
perancangan sistem meliputi perancangan proses, perancangan
basisdata, dan perancangan antarmuka untuk para pengguna sistem.
BAB IV IMPLEMENTASI SISTEM
Bab ini berisi implementasi dari sistem yang sudah dirancang
BAB V ANALISA HASIL
Bab ini berisi pengujian terhadap sistem yang telah diimplementasikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
BAB VI KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran dari analisis dan
perancangan sistem yang telah dilakukan dalam tugas akhir ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Bab II Landasan
Teori
2.1 Information Retrieval
Sistem temu kembali informasi (information retrieval system) merupakan
sistem untuk menemukan kembali (retrieve) informasi-informasi yang
relevan terhadap kebutuhan pengguna dari suatu kumpulan informasi secara
otomatis. Penekanannya ada pada penemukembalian informasi yang sifatnya
tidak terstruktur. Salah satu contoh dari sistem temu kembali informasi adalah
search-engine atau mesin pencarian (Mandala,2004).
Tujuan yang harus dipenuhi dari Sistem temu kembali informasi adalah
bagaimana mendapatkan dokumen relevan dan tidak mendapatkan dokumen
yang tidak relevan. Tujuan lainnya adalah bagaimana menyusun dokumen
yang telah didapatkan tersebut ditampilkan terurut dari dokumen yang
memiliki tingkat relevansi lebih tingi ke tingkat relevansi rendah. Penyusunan
dokumen terurut tersebut disebut sebagai perangkingan dokumen.
Dokumen diwakili melalui set index term.Index term menyediakan
logical view dari dokumen Jika kolesi dokumen cukup besar komputer akan
melakukan pengurangan jumlah set term melalui penghapusan
stopwords,operasi stemming. Operasi teks tersebut akan mengurangi
kompleksitas dari dokumen dan mengubah logical view dari full text ke set
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
index term. Gambar 2.1 menunjukkan logical view yang digunakan sistem
pemerolehan informasi(Baeza, 1999).
Gambar 2.1 Logikal view dari sebuah dokumen: dari full text menjadi sebuah
set indeks term(Baeza, 1999).
Sistem pemerolehan informasi memiliki beberapa tahap.Pertama
melakukan indentifikasi terhadap dokumen-dokumen yang akan digunakan,
operasi yang akan dilakukan terhadap teks, dan model teks. Text operations
mentransformasikan dokumen asal menjadi logical view. Setelah logical view
diperoleh, dibuat indeks term untuk mempercepat pencarian terhadap jumlah
data yang besar. Setelah dokumen selesai diindeks, proses retrieval dapat
diinisiasi. Sebelum dikirim ke pengguna, dokumen retrieval di peringkat
terlebih dahulu berdasarkan kemungkinan relevansinya(Baeza, 1999).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
Gambar 2.2 Proses dari pemerolehan informasi(Baeza, 1999).
2.2 Proses Indexing
Indeks kata dibuat dalam bentuk inverted index. Inverted index terdiri
dari dua bagian utama, dictionary dan posting list. Dictionary menyimpan
daftar kata, sedangkan posting list menyimpan identitas dokumen yang
mengandung kata yang bersangkutan. Setiap kata terhubung dengan satu
rangkaian posting list menggunakan penunjuk.(Manning,2009).
Gambar 2.2 Bagian dari Inverted Index
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Parsing
Proses ini mengambil query dari kata-kata kunci pengguna dengan
cara memotong string input berdasarkan tiap kata yang menyusunnya
Elemen teks (string input) dipisahkan dengan teknik parsing
menggunakan pemisahan string dilakukan berdasarkan operator
pemisah untuk kemudian di eksekusi terhadap index.(Manning,2009).
Stopword Removing
Proses ini menghilangkan stopword pada string input yang
menyusun dokumen dan query. Dalam proses ini digunakan sebuah
daftar kata buang (stoplist) yaitu daftar kata-kata yang tidak
digunakan (dibuang) karena tidak signifikan dalam membedakan
dokumen atau query. Stoplist ini umumnya berupa kata tugas, kata
hubung, kata bantu, yang mempunyai fungsi dalam kalimat penyusun
dokumen tetapi tidak memiliki arti..
Stemming
Stemming merupakan suatu proses yang terdapat dalam sistem IR
yang mentransformasi kata-kata yang terdapat dalam suatu dokumen
ke kata-kata akarnya (root word) dengan menggunakan aturan-aturan
tertentu. Sebagai contoh, kata bersama, kebersamaan, menyamai, akan
distem ke root wordnya yaitu “sama”. Proses stemming pada teks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
berbahasa Indonesia berbeda dengan stemming pada teks berbahasa
Inggris. Pada teks berbahasa Inggris, proses yang diperlukan hanya
proses menghilangkan sufiks. Sedangkan pada teks berbahasa
Indonesia, selain sufiks, prefiks, dan konfiks juga dihilangkan.
Algoritma yang dibuat oleh Bobby Nazief dan Mirna Adriani ini
memiliki tahap-tahap sebagai berikut:
1. Cari kata yang akan distem dalam kamus. Jika ditemukan
maka diasumsikan bahwa kata tesebut adalah root word.
Maka algoritma berhenti.
2. Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-
nya”) dibuang. Jika berupa particles (“-lah”, “-kah”, “-tah”
atau “-pun”) maka langkah ini diulangi lagi untuk
menghapus Possesive Pronouns (“-ku”, “-mu”, atau “-
nya”), jika ada.
3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika
kata ditemukan di kamus, maka algoritma berhenti. Jika
tidak maka ke langkah 3a
a. Jika “-an” telah dihapus dan huruf terakhir dari
kata tersebut adalah “-k”, maka “-k” juga ikut
dihapus. Jika kata tersebut ditemukan dalam
kamus maka algoritma berhenti. Jika tidak
ditemukan maka lakukan langkah 3b.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”)
dikembalikan, lanjut ke langkah 4.
4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks
yang dihapus maka pergi ke langkah 4a, jika tidak pergi ke
langkah 4b.
a. Periksa tabel kombinasi awalan-akhiran yang
tidak diijinkan. Jika ditemukan maka algoritma
berhenti, jika tidak pergi ke langkah 4b.
b. For i = 1 to 3, tentukan tipe awalan kemudian
hapus awalan. Jika root word belum juga
ditemukan lakukan langkah 5, jika sudah maka
algoritma berhenti. Catatan: jika awalan kedua
sama dengan awalan pertama algoritma berhenti.
5. Melakukan Recoding.
6. Jika semua langkah telah selesai tetapi tidak juga berhasil
maka kata awal diasumsikan sebagai root word. Proses
selesai.
Tipe awalan ditentukan melalui langkah-langkah berikut:
1. Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe
awalannya secara berturut-turut adalah “di-”, “ke-”, atau “se-
”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka
dibutuhkan sebuah proses tambahan untuk menentukan tipe
awalannya.
3. Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”,
“be-”, “me-”, atau “pe-” maka berhenti.
4. Jika tipe awalan adalah “none” maka berhenti. Jika tipe
awalan adalah bukan “none” maka awalan dapat dilihat pada
Tabel 2. Hapus awalan jika ditemukan.
Untuk mengatasi keterbatasan pada algoritma di atas, maka
ditambahkan aturan-aturan dibawah ini(Agusta,2009):
1. Aturan untuk reduplikasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
Jika kedua kata yang dihubungkan oleh kata penghubung
adalah kata yang sama maka root word adalah bentuk
tunggalnya, contoh: “buku-buku” root word-nya adalah
“buku”.
Kata lain, misalnya “bolak-balik”, “berbalas-balasan, dan
”seolah-olah”. Untuk mendapatkan root word-nya,kedua kata
diartikan secara terpisah. Jika keduanya memiliki root word
yang sama maka diubah menjadi bentuk tunggal, contoh: kata
“berbalas-balasan”, “berbalas” dan “balasan” memiliki root
word yang sama yaitu “balas”, maka root word “berbalas-
balasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”,
“bolak” dan “balik” memiliki root word yang berbeda, maka
root word-nya adalah “bolak-balik”
2. Tambahan bentuk awalan dan akhiran serta aturannya.
Untuk tipe awalan “mem-“, kata yang diawali dengan awalan
“memp-” memiliki tipe awalan “mem-”.
Tipe awalan “meng-“, kata yang diawali dengan awalan
“mengk-” memiliki tipe awalan “meng-”.
2.3 Pembobotan Kata
2.3.1 Term Frequency
Term Frequency (tf) factor, yaitu faktor yang menentukan bobot term pada
suatu dokumen berdasarkan jumlah kemunculannya dalam dokumen tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Nilai jumlah kemunculan suatu kata (term frequency) diperhitungkan dalam
pemberian bobot terhadap suatu kata. Semakin besar jumlah kemunculan suatu
term (tf tinggi) dalam dokumen, semakin besar pula bobotnya dalam dokumen
atau akan memberikan nilai kesesuian yang semakin besar.
Frekuensi kata dinotasikan sebagai 𝑡𝑓𝑡,𝑑′ dengan 𝑡 menotasikan kata and
𝑑′ sebagai urutan dokumen. Untuk sebuah dokumen d, jumlah bobot dapat
diketahui dari bobot tf diatas.(Manning,2009).
2.3.2 Inverse Document Frecuency
Inverse Document Frequency (idf) factor, yaitu pengurangan dominansi
term yang sering muncul di berbagai dokumen. Hal ini diperlukan karena term
yang banyak muncul di berbagai dokumen, dapat dianggap sebagai term umum
(common term) sehingga tidak penting nilainya. Sebaliknya faktor
kejarangmunculan kata (term scarcity) dalam koleksi dokumen harus diperhatikan
dalam pemberian bobot. Kata yang muncul pada sedikit dokumen harus
dipandang sebagai kata yang lebih penting (uncommon tems) daripada kata yang
muncul pada banyak dokumen. Pembobotan akan memperhitungkan faktor
kebalikan frekuensi dokumen yang mengandung suatu kata (inverse document
frequency).(Manning,2009).
2.3.3 TF-IDF
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Pembobotan TF-IDF mengkombinasikan frekuensi kata dan inverse
document frequency . Pembobotan TF-IDF didapat dengan menggunakan rumus
berikut (savoy) (Hasibuan, 2001)
Wik = ntfik * nidfk,
dimana ntfik = dan nidfk =
𝑊𝑑 = 𝑊𝑖𝑗 + 𝑊𝑖𝑘 + 𝑊𝑖… . . +𝑊𝑖𝑛
𝑄𝑢𝑒𝑟𝑦 = 𝑗 𝒐𝒓 𝑘 𝒐𝒓 𝒐𝒓……𝑛
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.
Wd= bobot sebuah dokumen
Dengan kata lain, tf-idft,d berlaku untuk term t bobotdi dokumen d yang
1. Tertinggi jika t sering muncul dengan jumlah dokumen yang kecil.
2. Lebih rendah jika term muncul beberapa kali di dalam dokumen,
atau muncul di banyak dokumen.
3. Paling rendah jika term muncul di semua dokumen.
(Manning,2009)
ijj
ik
tfMax
tf n
df
n
k
log
log
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
2.4 Hash Table
Hash Table adalah struktur data yang menawarkan pemasukan dan pencarian
data dengan sangat cepat. Ide dari Hash Table adalah memperbolehkan banyak
dari kemungkinan key berbeda yang mungkin di petakan ke lokasi yang sama di
dalam array dibawah fungsi tindakan pengindeksan. Hash Table beroperasi relatif
cepat O(logN) kali. Untuk pembuatan daftar kamus kata, hash table adalah pilihan
yang baik.(Robert,2003).
2.5 LinkedList
LinkedList adalah struktur data yang berbentuk node yang node lainnya
menunjuk menggunakan pointer. Ukuran LinkedList menjadi dinamis karena
ukurannya bertambah mengikuti jumlah node yang dimasukkan kedalam rantai
node.(Kruse,1994).
2.6 Precision dan Recall
Dalam Information Retrieval, sebuah metode perlu diukur keefektifannya.
Dalam hal ini menggunakan pengukuran precision dan recall. Pengukuran
precison dan recall dinyatakan dalam rumus berikut.
𝑃𝑟𝑒𝑐𝑖𝑠𝑠𝑖𝑜𝑛 =#(𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑡𝑒𝑚𝑢𝑘𝑎𝑛)
#(𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑛𝑦𝑎𝑛𝑔 𝑑𝑖𝑡𝑒𝑚𝑢𝑘𝑎𝑛)
𝑅𝑒𝑐𝑎𝑙𝑙 =#(𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑡𝑒𝑚𝑢𝑘𝑎𝑛)
#(𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑡𝑒𝑚𝑢𝑘𝑎𝑛)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1 Analisa Sistem
3.1.1 Gambaran Sistem
Sistem Pemerolehan Informasi Makalah Ilmiah dikembangkan untuk
membantu pengguna mencari makalah ilmiah yang sesuai dan relevan dengan
kata kunci yang dimasukkan oleh pengguna.
Arsitektur sistem pemerolehan informasi ditunjukkan pada gambar 3.1.
Dokumen koleksi berupa file makalah ilmiah berbahasa Indonesia dengan
ekstensi .pdf. Sistem melakukan text operation pada dokumen tersebut, berupa
pembuangan kata buang dan stemming menggunakan algoritma Nazief & Adriani
untuk teks berbahasa Indonesia, lalu melakukan proses indexing kata dan
dokumen pada RDBMS. Sistem mengambil index dari RDBMS ke random access
memory secara periodik di dalam Inverted Index serta melakukan pembobotan.
Pada proses pencarian pengguna memasukkan query, yang akan diproses
oleh text operation. Sistem melakukan pencarian pada Inverted Index dengan
operasi AND kemudian melakukan ranking berdasarkan bobot dokumen. Hasil
dokumen yang sudah memiliki peringkat ditampilkan melalui user interface.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
Text operation
Dokumen Koleksi
Text RDBMS
Indexing
Ranking
Inverted Index
Query Operations
User Interface
Searching
Text
retrieved docs
ranked docs
Interved file
User need
Logical view
query
Logical view
Gambar 3.1. Rancangan Sistem Pemerolehan Informasi.
Inverted Index yang dibuat menggabungkan antara Hash Table sebagai
dictionary dan Ordered Linked List sebagai posting list seperti pada gambar 3.2.
Beberapa variabel untuk rumus perhitungan pembobotan Savoy di simpan pada
term, posting, dan dokumen. Term menyimpan dfk dan nidfk. Posting menyimpan
ntifk tfik dan w. Dokumen menyimpan maxtf.
Ordered Linked List berdasarkan pada Linked List, namun akan dilakukan
sorting pada saat akan menambahkan data sehingga posting dimasukkan secara
terurut berdasarkan id document. Inverted index akan dimodelkan lebih detil pada
rancangan diagram kelas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
Gambar 3.2 Representasi Inverted Index
3.1.2 Analisis Kebutuhan Pengguna
3.1.2.1 Use Case Model
HashTable Ordered Linked List
Term
Dfk
Nidfk
Jurnal
Ntfik
Tfik
w
Jurnal
Ntfik Tfik
w
Jurnal
Ntfik Tfik
w
Id Judul
Tahun
Penulis
Filename Maxtf
Id
Judul
Tahun
Penulis Filename
Maxtf
Id
Judul
Tahun
Penulis Filename
Maxtf
Jurnal Jurnal Jurnal
Term Dfk
Nidfk
Jurnal Ntfik
Tfik
w
Jurnal Ntfik
Tfik
w
Jurnal Ntfik
Tfik
w
Id
Judul
Tahun Penulis
Filename
Maxtf
Id
Judul Tahun
Penulis
Filename
Maxtf
Id
Judul Tahun
Penulis
Filename
Maxtf
Jurnal Jurnal Jurnal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Sistem Pemerolehan Informasi Makalah yang akan dikembangkan diakses 2 aktor
yaitu administrator dan pengguna. Tabel berikut menjelaskan deskripsi untuk
setiap aktor:
Tabel 3.1. Tabel Use Case Model
Aktor Keterangan
Administrator 1. Dapat melakukan login sebagai administrator
2. Menangani pengelolaan data makalah
3. Dapat melakukan pencarian
4. Dapat melihat isi makalah
Pengguna 1. Dapat melakukan pencarian (searching) data
makalah sesuai kata kunci yang dimasukan
2. Dapat melihat isi dari makalah
3.1.2.2 Diagram Use Case
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Subsistem Pencarian Makalah
Ilmiah Berbahasa Indonesia
Subsistem Operasi Teks
Menambahkan
dokumen makalah
Mengubah data
dokumen makalah Login
Mencari dokumen
makalah
Logout
Administrator
Pengguna
<<depend on>>
<<depend on>>
<<depend on>>
Sistem Pemerolehan Informasi Makalah Ilmiah Berbahasa
Indonesia
Gambar 3.3 Use Case Diagram
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
3.1.2.3 Skenario Use Case
a. Login
Tabel 3.2 Login
Nama Use Case Login
ID Use Case 1
Prioritas Tinggi
Pelaku Bisnis
utama
Administrator
Deskripsi Use case ini menggambarkan proses login
bagiAdministrator
Pra-kondisi Administrator mempunyai username dan password
Pemicu Administrator ingin melakukan penambahan atau
perubahan data makalah
Langkah umum Langkah 1:
User/administrator/staff
memasukan username
dan
password.
Langkah 2:
User/administrator/staff
menekan tombol login.
Langkah 3: Sistem
mengecek validasi data
masukan (username
dan password)
user/administrator/Staff
.
Langkah 4: Sistem masuk
ke halaman utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Administrator
Langkah
alternatif
Alternatif-Langkah 4: Jika data ( username dan password)
yang
dimasukkan tidak sesuai maka sistem akan
mengembalikan ke halaman awal login.
Kesimpulan Use case ini berhenti apabila administrator
telah berhasil masuk ke dalam halaman Administrator
Pasca kondisi Administrator berhasil masuk ke halaman utama
Administrator.
Administrator tidak jadi melakukan login.
Administrator gagal melakukan login.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
b. Menambah Makalah
Tabel 3.3 Menambah Makalah
Nama Use Case Menambah Makalah
ID Use Case 2
Prioritas Sedang
Pelaku Bisnis
utama
Administrator
Deskripsi Use case ini menggambarkan proses Administrator
menambahkan makalah
Pra-kondisi Administrator berhasil masuk ke halaman utama
Administrator.
Pemicu Administrator ingin melakukan penambahan makalah
Langkah umum Langkah 1:
Administrator Memilih
menu menambah
makalah
Langkah 2:
Administrator
memasukkan data-data
makalah dan File
makalah.
Langkah 3:
Langkah 4: Sistem
Menyimpan data makalah baru
beserta file makalah.
Langkah 5: Sistem masuk
ke halaman utama
Administrator dengan pesan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Administrator menekan
tombol simpan
berhasil menyimpan
Langkah
alternatif
Alternatif-Langkah 4: Jika data yang
dimasukkan tidak lengkap maka sistem akan
meminta Administrator untuk melengkapi data yang
diperlukan.
Kesimpulan Use case ini berhenti apabila Sistem
telah berhasil Menyimpan data makalah baru.
Pasca kondisi Data makalah bertambah
c. Merubah Makalah
Tabel 3.4. Narasi Use Case Menambah Data Makalah
Nama Use Case Mengubah Data Makalah
ID Use Case 3
Prioritas High
Pelaku bisnis utama Administrator
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Deskripsi Use case ini menggambarkan proses mengubah data
makalah
Pra-kondisi Administrator berada di halaman hasil pencarian
Pemicu Use case ini digunakan oleh administrator untuk
mengubah data makalah
Langkah utama Aksi aktor Respon sistem
Langkah 1 :
Administrator menge-klik
link mengubah data makalah
Langkah 3 :
Administrator memasukkan
data baru makalah dan
menekan tombol ubah
Langkah 2 :
Sistem akan
menampilkan halaman
mengubah data
makalah
Langkah 4 :
Sistem akan
mengganti data lama
dengan data baru yang
telah dimasukkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Langkah alternatif Alternatif langkah 3 : Administrator batal mengganti
data makalah dan kembali ke halaman administrator
Kesimpulan Use case ini berhenti jika administrator telah berhasil
mengubah data makalah
Pasca kondisi Data di database telah berubah
d. Mencari Makalah
Tabel 3.5 Narasi Use Case Mencari Makalah
Nama Use Case Cari Makalah
ID Use Case 6
Prioritas High
Pelaku bisnis utama Administrator dan Pengguna
Deskripsi Use case ini menggambarkan proses pencarian
makalah
Pra-kondisi Aktor berada di halaman utama
Pemicu Use case ini digunakan untuk mencari makalah
Langkah utama Aksi aktor Respon sistem
Langkah 1 :
Aktor memilih menu cari
makalah
Langkah 2 :
Sistem akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Langkah 3 :
Aktor memasukkan keyword
dan menekan tombol cari
menampilkan halaman
cari makalah
Langkah 4 :
Sistem akan
menampilkan hasil
pencarian
Langkah alternatif Alternatif langkah 3 : Pengguna batal melakukan
pencarian sistem kembali ke halaman awal
Kesimpulan Use case ini berhenti jika pengguna telah
menemukan makalah yang dicari
Pasca kondisi Aktor berhasil menemukan makalah yang dicari
Aktor tidak berhasil menemukan makalah yang dicari
karena tidak sesuai dengan keyword
e. Melihat Makalah
Tabel 3.6. Narasi Use Case Melihat Makalah
Nama Use Case Lihat Makalah
ID Use Case 7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Prioritas High
Pelaku bisnis utama Administrator dan Pengguna
Deskripsi Use case ini menggambarkan proses melihat data
makalah
Pra-kondisi Aktor berada di halaman pencarian
Pemicu Use case ini digunakan oleh aktor untuk melihat data
makalah
Langkah utama Aksi aktor Respon sistem
Langkah 1 :
Aktor menge-klik link lihat
makalah
Langkah 2 :
Sistem akan
menampilkan data
makalah
Langkah alternatif -
Kesimpulan Use case ini berhenti jika aktor telah berhasil melihat
data makalah
Pasca kondisi Aktor berhasil melihat data makalah
Aktor tidak berhasil melihat data makalah karena
data tidak ditemukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
f. Logout
Tabel 3.7. Narasi Use Case Logout
Nama Use Case Logout
ID Use Case 5
Prioritas High
Pelaku bisnis utama Administrator
Deskripsi Use case ini menggambarkan proses logout bagi
administrator
Pra-kondisi Administrator berada pada halaman administrator
dan akan keluar dari halaman administrator
Pemicu Use case ini digunakan oleh administrator untuk
keluar dari halaman administrator
Langkah utama Aksi aktor Respon sistem
Langkah 1 :
Administrator menge-klik
menu logout
Langkah 2 :
Sistem akan keluar
dari halaman
administrator
Langkah alternatif -
Kesimpulan Use case ini selesai jika administrator telah keluar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
dari halaman administrator
Pasca kondisi Administrator keluar dari halaman administrator
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
3.2 Perancangan Sistem
3.2.1 Desain Logikal
3.2.1.1 Diagram Akifitas
3.2.1.3.1. Administrator Login
Berikut adalah diagram dari aktifitas Administrator login.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
3.2.1.3.2. Menambah Makalah
Berikut adalah diagram dari aktifitas menambah makalah.
3.2.1.3.3. Merubah Data Makalah
Berikut adalah diagram dari aktifitas merubah makalah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
3.2.1.3.4. Mencari Makalah
Berikut adalah diagram dari aktifitas mencari makalah .
3.2.1.3.5. Melihat Makalah
Berikut adalah diagram dari aktifitas melihat makalah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
3.2.1.2 Model Kelas Analisis
Berikut ini adalah rancangan diagram model kelas analisis.
Login.jsp
beanLogin
AdministratorAdministrator
InvertedIndex
Jurnal
Word
Posting
StopList
benCariJurnal
beanKelolajurnal
Pengguna
Adminhome.jsp
Halamancari.jsp
Tambahjurnal.jsp
Ubahhapusjurnal.jsp
Halamanhasilcari.jsp
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
3.2.1.3 Diagram Sequence
3.2.1.3.1. Mencari Jurnal
Berikut adalah rancangan diagram sequence pencarian jurnal.
3.2.1.4 Diagram Kelas Analisis
3.2.1.3.1. Case Login
Berikut ini adalah rancangan diagram kelas pada case login
login.jsp
+validasiLoginAdministrator(in username : string, in password : string) : void
+logoutAdministrator() : string
-username : string
-password : string
beanLogin.javaused by
1 1
+setUserName(in : string) : void
+getUserName() : string
+setPassword(in : string) : void
+getPassword() : string
+getAdmistrator(in username) : Administrator
-username : string
-password : string
Administrator
<<boundary>>
<<entity>><<controller>>
adminhome.jsp
used by
<<boundary>>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
3.2.1.3.2. Case Ubah Data
Berikut ini adalah rancangan diagram kelas pada case ubah data
+setUserName(in : string) : void
+getUserName() : string
+setPassword(in : string) : void
+getPassword() : string
+getAdmistrator(in username) : Administrator
-username : string
-password : string
Administrator
+tambahJurnal(in : Jurnal) : boolean
+hapusJurnal(in : Jurnal) : boolean
+editJurnal(in : Jurnal, in : Jurnal) : boolean
beanKelolaJurnal
-judul
-tahun
-penulis
-fileName
-maxtf
-postlist
Jurnal
* 1
1
*
ubahhapusjurnal.jsp tambahjurnal.jsp
used by used by
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
3.2.1.3.3. Case Pencarian Informasi Makalah
Berikut ini adalah rancangan diagram kelas pada case pencarian
+setUserName(in : string) : void
+getUserName() : string
+setPassword(in : string) : void
+getPassword() : string
+getAdmistrator(in username) : Administrator
-username : string
-password : string
Administrator
+Cari()
beanCariJurnal
-wordlist : HashMap
InvertedIndex
1
1
*
1
halamanhasilcari.jsp halamancari.jsp
used by used by
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
3.2.1.3.4. Diagram Kelas Pemodelan Struktur Data Inverted Index
Berikut ini adalah rancangan diagram kelas untuk memodelkan Struktur Data
Inverted Index.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
3.2.1.5 Perancangan Database
3.2.1.3.1. Conceptual Design
Berikut ini adalah desain database secara konseptual.
status
id_status description
punya documents
id_document max_term
title path
year
authorsid_status_ready
id_status_3
id_status_2
posting
frequency
id_termid_document
terms
id_term
stemmed_words
posting_stopword
frequency
id_termid_document
stopwords
id_stopwordstopwords
dictionary
id_dictionary root_word
administrator
id_administrator username
pasword
1 **
*
*
*
CONCEPTUAL DATABASE DESIGN
ntfik
wnidfk
dfk
sourceterm
id_sourceterm is_root_word
id_term
*
word
1
Status
id_status (PK)
description
Documents
id_document (PK)
title
path
authors
year
id_status_ready (FK)
id_status2 (FK)
id_status3(FK)
max_term
Posting
id_document (FK)
id_term (FK)
frequency
ntfik
w
Terms
id_term (PK)
terms
stemmed_words
is_root_word
dfk
nidfk
Posting_stopword
id_document (FK)
id_stopword (FK)
frequency
Stopwords
id_stopword (PK)
stopword
Dictionary
id_dictionary (PK)
root_word
Administrator
id_administrator (PK)
username
pasword
Sourceterm
id_sourceterm (PK)
id_term (FK)
word
is_root_word
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
3.2.2 Desain Fisikal
3.2.2.1 Desain Antarmuka
3.2.1.1.1. Halaman Beranda dan Pencarian
Pada halaman pencarian jurnal terdapat kolom isian untuk mengisikan kata
kunci pencarian. Pencarian dapat dimulai dengan menekan tombol keyboard Enter
atau menekan tombol cari pada tampilan Gambar 3.4.
Gambar 3.4. Halaman Beranda
Copyright © 2012 | Login
Header Title
Cari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
3.2.1.1.2. Halaman Hasil Pencarian
Pada halaman hasil pencarian, Gambar 3.5 ditampilkan tambahan
informasi waktu pencarian dan daftar dokumen yang sudah diurutkan sesuai
relevansinya terhadap kata kunci pencarian. Pengguna dapat melihat isi setiap
dokumen dari hasil pencarian dengan membuka link judul dokumen yang dipilih.
Gambar 3.5. Halaman Hasil Pencarian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
3.2.1.1.3. Halaman Login Administrator
Halaman Login Administrator Gambar 3.6 menampilkan dua kolom isian
yang diisi dengan nama pengguna dan kata sandi. Untuk melanjutkan masuk,
pengguna dapat menekan tombol keyboard Enter atau menekan tombol masuk
pada tampilan.
Header Title
Home Kelola Jurnal Logout
Nama Pengguna
Kata Sandi
Masuk
Halaman Login Administrator
Copyright © 2012
Gambar 3.6. Halaman Login Administrator
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
3.2.1.1.4. Halaman Beranda Administrator
Halaman beranda administrator Gambar 3.7 terdapat menu “Kelola
Makalah” dengan submenu “Tambah Makalah” untuk menuju halaman tambah
makalah dan submenu “Edit Makalah” untuk menuju halaman edit makalah.
Pengguna dapat menekan tombol beranda untuk kembali ke halaman utama
administrator. Tombol “Logout” berfungsi untuk keluar dari halaman utama
administrator.
Gambar 3.7. Halaman Beranda Administrator
Selamat datang di halaman Administrator
Copyright © 2012
Header Title
Beranda Kelola
Makalah
Logout
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
3.2.1.1.5. Halaman Menambah Makalah
Pada halaman tambah makalah Gambar 3.8 administrator dapat
menambahkan dokumen makalah baru dengan memasukkan data judul, penulis,
tahun pada kolom yang disediakan. Pada kolom file, administrator dapat memilih
file makalah yang berformat pdf yang akan diupload. Setelah semua data lengkap
administrator dapat menekan tombol simpan.
Gambar 3.8. Halaman Menambah Makalah
Judul
Penulis
File
Copyright © 2012
Header Title
Beranda Kelola
Makalah
Logout
pilih
simpan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
3.2.1.1.6. Halaman Kelola Makalah
Halaman kelola jurnal ditunjukkan pada Gambar 3.9 administrator dapat
melakukan pengubahan data makalah yang meliputi judul makalah, nama penulis,
dan tahun dengan menekan icon edit pada baris yang sesuai dengan dokumen
yang akan dirubah datanya. Sebuah form akan muncul saat icon edit dipilih.
Administrator dapat memasukkan data-data baru pada setiap kolom dan menekan
tombol simpan jika akan menyimpan perubahan tersebut.
Header Title
Home Kelola Jurnal Logout
No Judul Penulis Tahun Nama File
x
x
x
JudulPenulis
TahunFile
Simpan
Cari
Menghapus dan Mengubah Data Jurnal
Copyright © 2012
Gambar 3.9. Halaman Menghapus dan Mengubah Makalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
BAB IV
IMPLEMENTASI SISTEM
4.1. Spesifikasi Perangkat Lunak dan Perangkat Keras
4.1.1. Spesifikasi Perangkat Lunak
Sistem menggunakan spesifikasi beberapa perangkat lunak pendukung untuk
implementasi sistem pemrosesan teks dan sistem pencarian makalah ilmiah
berbahasa Indonesia sebagai berikut :
1. Sistem operasi: Oracle Linux Server Release 5.8
2. Oracle 11g,
3. Oracle SQL Developer 3.0.04,
4. Java JDK 1.6.0 dan OODBC
5. Netbeans 6.9.1
6. Browser : Mozilla Firefox
4.1.2. Spesifikasi Perangkat Keras
Spesifikasi perangkat keras yang digunakan untuk implementasi sistem
pemrosesan teks dan sistem pencarian makalah ilmiah berbahasa Indonesia adalah
sebagai berikut :
4.1. Prosesor: Intel XEON E5620 (4 Core, 2, 40 GHz)
4.2. Memori RAM: 8 GB RDIMM
4.3. Hardisk: RAID 5 Logical 2TB
4.4. Motherboard: HP Proliant ML 350 G6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
4.2. Implementasi Basis Data
Pada sistem ini diimplementasikan database teks untuk menyimpan hasil
seluruh proses preprocessing dokumen jurnal yang berbasis RDBMS. Database
sistem ini dibuat menggunakan Oracle 11g. Aplikasi pendukung untuk melakukan
pengolahan query adalah SQL Developer.
Langkah – langkah dalam pembuatan database adalah seperti berikut :
1. Membuat database baru dengan login sebagai SYSTEM menggunakan SQL
Developer.
2. Membuat tabel-tabel dalam database yang telah dibuat dengan menuliskan
perintah create tabel diikuti nama tabel dan kolom-kolom dalam tabel. Di dalam
database terdapat 8 tabel.
Database „text‟ untuk sistem pemrosesan teks dapat dilihat pada gambar 4.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Gambar 4.1. Database berbasis RDBMS pada sistem pemrosesan teks
Berikut proses pembuatan tabel untuk database text RDBMS :
1. Tabel Status
Tabel 4.1. Tabel Status
Nama Field Tipe Data Ukuran Keterangan
id_status NUMBER - Primary key untuk
tabel status
description VARCHAR2 20 Deskripsi status
Berikut query untuk membuat tabel status :
2. Tabel Documents
Tabel 4.2. Tabel Documents
Nama Field Tipe Data Ukuran Keterangan
id_document NUMBER - Primary key untuk
tabel documents
title VARCHAR2 256 Judul dari dokumen
path VARCHAR2 256 Nama file dari
CREATE TABLE STATUS
(
ID_STATUS NUMBER NOT NULL ,
DESCRIPTION VARCHAR2 (20)
)
;
ALTER TABLE STATUS
ADD CONSTRAINT STATUS_DOCUMENTS_PK PRIMARY KEY
( ID_STATUS ) ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
dokumen
max_term NUMBER - Frekuensi terbesar
dari sebuah dokumen
authors VARCHAR2 100 Penulis dari dokumen
year NUMBER - Tahun dari dokumen
id_status_ready NUMBER - Status untuk dokumen
id_status2 NUMBER - Status untuk untuk
sistem pencarian
id_status3 NUMBER - Status untuk untuk
sistem pencarian
Berikut perintah untuk membuat tabel documents :
CREATE TABLE DOCUMENTS
(
ID_DOCUMENT NUMBER NOT NULL ,
MAX_TERM NUMBER,
ID_STATUS_READY NUMBER NOT NULL ,
ID_STATUS2 NUMBER NOT NULL ,
ID_STATUS3 NUMBER NOT NULL ,
AUTHORS VARCHAR2 (100) ,
YEAR NUMBER
)
;
ALTER TABLE DOCUMENTS
ADD CONSTRAINT documents_PK PRIMARY KEY ( ID_DOCUMENT )
;
ALTER TABLE DOCUMENTS
ADD CONSTRAINT DOCUMENTS_STATUS1_FK FOREIGN KEY
(
ID_STATUS_READY
)
REFERENCES STATUS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
(
ID_STATUS
)
;
ALTER TABLE DOCUMENTS
ADD CONSTRAINT DOCUMENTS_STATUS2_FK FOREIGN KEY
(
ID_STATUS2
)
REFERENCES STATUS
(
ID_STATUS
)
;
ALTER TABLE DOCUMENTS
ADD CONSTRAINT DOCUMENTS_STATUS_FK FOREIGN KEY
(
ID_STATUS3
)
REFERENCES STATUS
(
ID_STATUS
)
;
3. Tabel Posting
Tabel 4.3. Tabel Posting
Nama Field Tipe Data Ukuran Keterangan
id_document NUMBER - Foreign key dari tabel documents
id_term NUMBER - Foreign key dari tabel terms
frequency NUMBER - Frekuensi kata pada dokumen
ntfik NUMBER - Hasil perhitungan
frequency/frequency terbesar
pada sebuah dokumen
w NUMBER - Bobot dari sebuah term dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
rumus perhitungannya
ndfik*ntfik
Berikut perintah untuk membuat tabel posting :
CREATE TABLE POSTING
(
ID_DOCUMENT NUMBER NOT NULL ,
ID_TERM NUMBER NOT NULL ,
FREQUENCY NUMBER ,
NTFIK NUMBER ,
W NUMBER
)
;
ALTER TABLE POSTING
ADD CONSTRAINT POSTING_DOCUMENTS_FK FOREIGN
KEY
(
ID_DOCUMENT
)
REFERENCES DOCUMENTS
(
ID_DOCUMENT
)
;
ALTER TABLE POSTING
ADD CONSTRAINT POSTING_TERMS_FK FOREIGN KEY
(
ID_TERM
)
REFERENCES TERMS
(
ID_TERM
)
;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
4. Tabel Terms
Tabel 4.4. Tabel Terms
Nama Field Tipe Data Ukuran Keterangan
id_term NUMBER - Primary key untuk tabel
terms
terms VARCHAR2 50 Kata sebelum proses
stemming
stemmed_word VARCHAR2 50 Kata setelah proses
stemming
is_root_word CHAR 1 Keterangan apakah terms
ada di kamus
Berikut perintah untuk membuat tabel terms :
CREATE TABLE TERMS
(
TERMS VARCHAR2 (50) ,
STEMMED_WORDS VARCHAR2 (50) ,
IS_ROOT_WORD CHAR (1)
)
;
ALTER TABLE TERMS
ADD CONSTRAINT TERMS_PK PRIMARY KEY ( ID_TERM ) ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
5. Tabel Posting_Stopword
Tabel 4.5. Tabel Posting_stopword
Nama Field Tipe Data Ukuran Keterangan
id_document NUMBER - Foreign key dari tabel
documents
id_stopword NUMBER - Foreign key dari tabel
stopwords
frequency NUMBER - Frekuensi stopword pada
dokumen
Berikut perintah untuk membuat tabel posting_stopword :
CREATE TABLE POSTING_STOPWORD
(
FREQUENCY NUMBER,
ID_STOPWORD NUMBER NOT NULL ,
ID_DOCUMENT NUMBER NOT NULL
)
;
ALTER TABLE POSTING_STOPWORD
ADD CONSTRAINT POSTING_STOPWORD_DOCUMENTS_FK
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
6. Tabel Stopwords
Tabel 4.6. Tabel Stopwords
Nama Field Tipe Data Ukuran Keterangan
id_stopword NUMBER - Primary key untuk tabel
stopwords
stopword VARCHAR2 20 Daftar kata buang
Berikut perintah untuk tabel stopwords :
FOREIGN KEY
(
ID_DOCUMENT
)
REFERENCES DOCUMENTS
(
ID_DOCUMENT
)
;
ALTER TABLE POSTING_STOPWORD
ADD CONSTRAINT POSTING_STOPWORD_STOPWORDS_FK FOREIGN KEY
(
ID_STOPWORD
)
REFERENCES STOPWORDS
(
ID_STOPWORD
)
;
CREATE TABLE STOPWORDS
(
ID_STOPWORD NUMBER NOT NULL ,
STOPWORD VARCHAR2 (20) }
;
CREATE INDEX STOPWORDS__IDX ON STOPWORDS
(
ID_STOPWORD ASC ,
STOPWORD ASC
)
;
ALTER TABLE STOPWORDS
ADD CONSTRAINT STOPWORDS_PK PRIMARY KEY ( ID_STOPWORD ) ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
7. Tabel Dictionary
Tabel 4.7. Tabel Dictionary
Nama Field Tipe Data Ukuran Keterangan
id_dictionary NUMBER - Primary key untuk tabel
dictionary
root_word VARCHAR2 20 Daftar kata dasar Bahasa
Indonesia
Berikut perintah untuk membuat tabel dictionary :
8. Tabel Administrator
Tabel 4.8. Tabel Administrator
CREATE TABLE DICTIONARY
(
ID_DICTIONARY NUMBER NOT NULL ,
ROOT_WORD VARCHAR2 (20)
)
;
CREATE UNIQUE INDEX DICTIONARY__IDX ON DICTIONARY
(
ID_DICTIONARY ASC ,
ROOT_WORD ASC
)
;
ALTER TABLE DICTIONARY ADD CONSTRAINT DICTIONARY_PK PRIMARY KEY (
ID_DICTIONARY ) ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Nama Field Tipe Data Ukuran Keterangan
id_administrator NUMBER - Primary key untuk tabel
administrator
username VARCHAR2 10 Username
pasword VARCHAR2 20 Password
Berikut perintah yang digunakan untuk membuat tabel administrator :
9. Tabel Sourceterm
Tabel 4.9. Tabel Sourceterm
Nama Field Tipe Data Ukuran Keterangan
id_sourceterm NUMBER - Primary key
untuk tabel
sourceterm
id_term NUMBER - Foreign key dari
tabel terms
word VARCHAR2 50 Kata tanpa
proses stemming
CREATE TABLE ADMINISTRATOR
(
ID_ADMINISTRATOR NUMBER NOT NULL ,
USERNAME VARCHAR2 (10) ,
PASWORD VARCHAR2 (20)
)
;
ALTER TABLE ADMINISTRATOR
ADD CONSTRAINT ADMINISTRATOR_PK PRIMARY KEY
( ID_ADMINISTRATOR ) ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
is_root_word CHAR 1 Keterangan
apakah terms
ada di kamus
Berikut perintah yang digunakan untuk membuat tabel administrator :
4.3. Implementasi Inverted Index
Dari pemodelan Inverted Index di dalam bab sebelumnya, di dalam struktur
Inverted Index pada bagian Ordered Linked List dilakukan sorting pada saat akan
menambahkan data sehingga posting dimasukkan secara terurut berdasarkan id
document. Setiap data posting baru yang akan ditambahkan dilakukan sequensial
search dari indek posisi 0 dengan cara melakukan casting LinkedList ke
ListIterator dan menemukan posisi indek yang tepat berdasarkan nomor id
dokumen data posting baru dibandingkan dengan id dokumen yang sudah ada di
dalam List. Proses sorting pada saat penambahan posting di implementasikan dalam
listing code 1 pada method addWord di dalam kelas InvertedIndex.
Listing Code 1. Method addWord
CREATE TABLE SOURCETERM
(
ID_SOURCETERM INTEGER NOT NULL ,
WORD VARCHAR2 (50) ,
IS_ROOT_WORD CHAR (1) ,
ID_TERM INTEGER NOT NULL
)
;
ALTER TABLE SOURCETERM
ADD CONSTRAINT SOURCETERM_PK PRIMARY KEY (
ID_SOURCETERM ) ;
ALTER TABLE SOURCETERM
ADD CONSTRAINT SOURCETERM_TERMS_FK FOREIGN
KEY
(
ID_TERM
)
REFERENCES TERMS
(
ID_TERM
)
;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
Term freqtambah = getWordlist().get(term);
//ambil Posting Listnya
ListIterator<Posting> iteratorPosting = freqtambah.getPostlist().listIterator();
//selama iterator posting punnya data berikutnya
while (iteratorPosting.hasNext()) {
//jika jurnal_id Jurnal Posting sama dengan jurnal_id dari parameter
If(iteratorPosting.next().getJurnal().getJurnal_id()==aPost.getJurnal().getJurnal_
id()) {
Posting freqtambahPosting = iteratorPosting.previous();
return;
}
iteratorPosting.previous();
if(
iteratorPosting.next().getJurnal().getJurnal_id()>aPost.getJurnal().getJurnal_id()
) {
//tambahkan ke posting ke index sebelum
Posting freqtambahPosting = iteratorPosting.previous();
iteratorPosting.add(aPost);
return;
}
}
if (!iteratorPosting.hasNext()) {
iteratorPosting.add(aPost);
Posting freqtambahPosting = iteratorPosting.previous();
}
return;
}
Untuk melakukan search sistem akan menyaring dan memproses kata
kunci masukan dari pengguna kemudian mengakses hashtable Term dengan kata
kunci masukan dari pengguna sebagai key. Sistem akan memperoleh sebuah objek
Term untuk setiap kata kunci dan melakukan interseksi dengan method AND pada
Listing Code 2 antar posting list pada setiap Term dengan mencari id dokumen
yang sama. Interseksi akan menghasilkan sebuah posting list baru dengan bobot
posting yang sudah diakumulasi untuk setiap posting yang memiliki id dokumen
sama pada saat Interseksi. Jumlah term yang memiliki posting list yang harus di
interseksikan adalah sama dengan jumlah kata kunci yang dapat ditemukan oleh
sistem di dalam Hashtable Term. Posting hasil interseksi terakhir diurutkan dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
bobot terbersar hingga bobot terkecil. Listing code untuk pencarian dapat dilihat
pada lampiran bagian b.
Dalam proses interseksi antara dua term sistem mengambil posting
masing-masing term dan melakukan casting ke type objek ListIterator agar dapat
dilakukan traversal pada posting. Posting yang memiliki dokumen paling sedikit
akan diprioritaskan sebelum posting yang lain. Untuk dapat melakukan traversal
di masing-masing posting maka dibuat variabel objek bertipe Posting penunjuk
bantu1 dan bantu2. Penunjuk bantu1 dan bantu2 mulai dari indek pertama dan
mulai membandingkan id dokumen masing-masing. Jika ditemukan dokumen
yang sama maka akan diambil posting keduanya dan mengakumulasikan bobot
kedua posting kemudian bantu1 bergeser ke posisi index berikutnya. Jika pada
posisi bantu2 yang sedang ditunjuk tidak ditemukan dokumen yang sama, bantu2
akan bergeser ke posisi indek berikutnya hingga ditemukan atau sampai tidak ada
lagi indek berikutnya. Hasil posting interseksi dikembalikan dengan bobot
terakumulasi.
Listing Code 2. Method AND
/*-------method untuk operasi AND--------------*/
public Term AND(Term term1, Term term2) {
ListIterator<Posting> t1;
ListIterator<Posting> t2;
/*jika term1 mempunyai dokumen lebih sedikit dengan term2*/
if (term1.getPostlist().size() < term2.getPostlist().size()) {
t1 = term1.getPostlist().listIterator();
t2 = term2.getPostlist().listIterator();
} else {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
t1 = term2.getPostlist().listIterator();
t2 = term1.getPostlist().listIterator();
}
Term hasil = new Term("(" + term1.getTerm() + " AND " + term2.getTerm() +
")");
hasil.setDfk(0);
System.out.println("");
System.out.println("Kata yang dicari " + "(" + term1.getTerm() + " AND " +
term2.getTerm() + ")");
System.out.print(term1.getTerm() + " | " + term1.getDfk() + " | ");
/*menampilkan kata1*/
for (int i = 0; i < term1.getPostlist().size(); i++) {
System.out.print(term1.getPostlist().get(i).getJurnal().getJurnal_id()
+ " , " + term1.getPostlist().get(i).getTfik() + "| ");
}
System.out.println("");
/*menampilkan kata2*/
System.out.print(term2.getTerm() + " | " + term2.getDfk() + " | ");
for (int i = 0; i < term2.getPostlist().size(); i++) {
System.out.print(term2.getPostlist().get(i).getJurnal().getJurnal_id()
+ " , " + term2.getPostlist().get(i).getTfik() + "| ");
}
System.out.println("");
/*AND operator*/
Posting bantu1 = t1.next(); /*membuat bantu1 untuk kata t1.next*/
/*membuat penunjuk yang digunakan untuk membandingkan dokumen*/
int penunjuk = 0;
penunjuk = bantu1.getJurnal().getJurnal_id();
Posting bantu2 = t2.next(); /*membuat bantu1 untuk kata t2.next*/
t1.previous();
t2.previous();
while (t1.hasNext()) { //selama t1 mempunyai next
/*jika lokasi dokumen kata2 kedua sama dengan kata1 1 */
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
if (bantu2.getJurnal().getJurnal_id()==penunjuk) {
/*pengecekan frekuensi yg plg sedikit*/
if (bantu2.getTfik() > bantu1.getTfik()) {
hasil.getPostlist().add(bantu1);
bantu1.setW(bantu1.getW()+bantu2.getW());
hasil.setDfk(hasil.getDfk() + bantu1.getWord().getDfk());
} else {
hasil.getPostlist().add(bantu2);
bantu2.setW(bantu2.getW()+bantu1.getW());
hasil.setDfk(hasil.getDfk() + bantu2.getWord().getDfk());
}
bantu1 = t1.next(); /*bantu1 bergeser ke selanjutnya*/
penunjuk = bantu1.getJurnal().getJurnal_id();
/*jika kata kedua masi mempunyai dokumen*/
if (t2.hasNext()) {
bantu2 = t2.next(); /*kata2 kedua akan bergeser*/
/*jika tidak proses selesai*/
} else {
/*jika lokasi dok kata1 > kata2 break*/
if
(bantu1.getJurnal().getJurnal_id()>bantu2.getJurnal().getJurnal_id()) {
break;
}
}
/*jk kt2 puny nok dok < penunjuk, kt2 geser*/
} else if (bantu2.getJurnal().getJurnal_id()<penunjuk) {
if (t2.hasNext()) {
bantu2 = t2.next(); /*kata kedua akan bergeser*/
} /*jk kata2 puny no dok > penunjuk, penunjuk geser*/
} else if (bantu2.getJurnal().getJurnal_id()>penunjuk) {
bantu1 = t1.next(); /*kata pertama akan bergeser*/
penunjuk = bantu1.getJurnal().getJurnal_id();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
} /*jk t1 tdk puny next*/
if (!t1.hasNext()) {
System.out.println(t1.previous()+"doesnt have next");
t1.next();
/*cek bantu1 = bantu2*/
if
(bantu1.getJurnal().getJurnal_id()==bantu2.getJurnal().getJurnal_id()) {
/*cek frekuensi bantu2 > frekuensi bantu1, tmbhkn bantu1 */
if (bantu2.getTfik() > bantu1.getTfik()) {
hasil.getPostlist().add(bantu1);
hasil.setDfk(hasil.getDfk() + bantu1.getWord().getDfk());
bantu1.setW(bantu1.getW()+bantu2.getW());
/*jk tdk tambhkn bantu2*/
} else {
hasil.getPostlist().add(bantu2);
hasil.setDfk(hasil.getDfk() + bantu2.getWord().getDfk());
bantu2.setW(bantu2.getW()+bantu1.getW());
}
} /*cek no dok kata1 > kata2*/
if
(bantu1.getJurnal().getJurnal_id()>bantu2.getJurnal().getJurnal_id()) {
/*selama no dok kata1 > kata2, t2 geser*/
while
(bantu1.getJurnal().getJurnal_id()>bantu2.getJurnal().getJurnal_id()&&t2.hasNext()
) {
bantu2 = t2.next();
/*jk nodok kata1 = kata2*/
if
(bantu2.getJurnal().getJurnal_id()==bantu1.getJurnal().getJurnal_id()) {
/*jk frek dok kt2 > k1, tmbh bantu1*/
if (bantu2.getTfik() > bantu1.getTfik()) {
hasil.getPostlist().add(bantu1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
hasil.setDfk(hasil.getDfk() +
bantu1.getWord().getDfk());
bantu1.setW(bantu1.getW()+bantu2.getW());
} /*jk tdk tmbh bantu2*/ else {
hasil.getPostlist().add(bantu2);
hasil.setDfk(hasil.getDfk() +
bantu2.getWord().getDfk());
bantu2.setW(bantu2.getW()+bantu1.getW());
}
}
}
}
}
}
return hasil;
}
4.4. Implementasi Antarmuka
4.5.3. Halaman Pencarian
Pada halaman pencarian jurnal terdapat kolom isian untuk mengisikan kata
kunci pencarian. Pencarian dapat dimulai dengan menekan tombol keyboard Enter
atau menekan tombol cari pada tampilan Gambar 4.3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Gambar 4.3 Halaman Utama Pencarian Jurnal
4.5.4. Halaman Hasil Pencarian
Pada halaman hasil pencarian, Gambar 4.4 ditampilkan tambahan
informasi waktu pencarian dan daftar dokumen yang sudah diurutkan sesuai
relevansinya terhadap kata kunci pencarian. Pengguna dapat melihat isi setiap
dokumen dari hasil pencarian dengan membuka link judul dokumen yang dipilih.
Gambar 4.4 Halaman Hasil Pencarian
4.5.5. Halaman Login Administrator
Halaman Login Administrator Gambar 4.5 menampilkan dua kolom isian
yang diisi dengan nama pengguna dan kata sandi. Untuk melanjutkan masuk,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
pengguna dapat menekan tombol keyboard Enter atau menekan tombol masuk
pada tampilan.
Gambar 4.5 Halaman Login Administrator
4.5.6. Halaman Utama Administrator
Halaman utama administrator Gambar 4.6 terdapat menu “Kelola
Makalah” dengan submenu “Tambah Makalah” untuk menuju halaman tambah
makalah dan submenu “Edit Makalah” untuk menuju halaman edit makalah.
Pengguna dapat menekan tombol beranda untuk kembali ke halaman utama
administrator. Tombol “Logout” berfungsi untuk keluar dari halaman utama
administrator.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
Gambar 4.6 Halaman Utama Administrator
4.5.7. Halaman Tambah Makalah
Pada halaman tambah makalah Gambar 4.7 administrator dapat
menambahkan dokumen makalah baru dengan memasukkan data judul, penulis,
tahun pada kolom yang disediakan. Pada kolom file, administrator dapat memilih
file makalah yang berformat pdf yang akan diupload. Setelah semua data lengkap
administrator dapat menekan tombol simpan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Gambar 4.7 Halaman Tambah Makalah
4.5.8. Halaman Kelola Jurnal
Halaman kelola jurnal ditunjukkan pada Gambar 4.8 administrator dapat
melakukan pengubahan data makalah yang meliputi judul makalah, nama penulis,
dan tahun dengan menekan icon edit pada baris yang sesuai dengan dokumen
yang akan dirubah datanya. Sebuah form seperti pada Gambar 4.9 akan muncul
saat icon edit dipilih. Administrator dapat memasukkan data-data baru pada setiap
kolom dan menekan tombol simpan jika akan menyimpan perubahan tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Gambar 4.8 Halaman Edit Makalah
Gambar 4.9 Form Edit Data Makalah
4.5. Implementasi Control
4.4.1. Subsistem Server Pemrosesan Dokumen
Tabel 4.10. Implementasi Control Subsistem Pemrosesan Dokumen
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
beanEditJurnal beanEditJurnal.java
beanLogin beanLogin.java
beanTambahJurnal beanTambahJurnal.java
DocProcessing DocProcessing.java
DbConnection DbConnection.java
DocProcess DocProcess.java
JobScheduler JobScheduler.java
Tokenizer Tokenizer.java
4.4.2. Subsistem Pencarian
Tabel 4.11. Implementasi Control Subsistem Pencarian
Tokenizer Tokenizer.java
beanBuildIndex beanBuildIndex.java
beancarijurnal beancarijurnal.java
Beankelolajurnal beankelolajurnal.java
beanlogin beanlogin.java
beanTambahJurnal beanTambahJurnal.java
DatabaseConnector DatabaseConnector.java
InformationRetrieval InformationRetrieval.java
JobScheduler JobScheduler.java
Stemming Stemming.java
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
4.6. Implementasi Model
4.5.1. Subsistem Server Pemrosesan Dokumen
Tabel 4.10. Implementasi Model Subsistem Pemrosesan Dokumen
Administrator Administrator.java
Documents.java Documents.java
Posting.java Posting.java
Stemming.java Stemming.java
Terms.java Terms.java
4.5.2. Subsistem Pencarian
DaftarJurnal DaftarJurnal.java
DocFilter DocFilter.java
InvertedIndex InvertedIndex.java
Jurnal Jurnal.java
JurnalScore JurnalScore.java
Posting Posting.java
StopList StopList.java
Term Term.java
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
BAB V
ANALISA HASIL
5.1. Pengujian Relevance Feedback
Dari 281 dokumen yang di diproses dalam indexing dengan menggunakan
jumlah kamus kata dasar 3278 dan 395 kata buang kata menghasilkan 25737 term
yang digunakan dalam pengujian.
Pengujian menggunakan media kuesioner yang dibagikan kepada 4 orang
mahasiswa Sanata Dharma Yogyakarta. kuesioner dibagi menjadi 2 tahap, yaitu
form kuesioner precision dan form kuesioner recall. Pada tahap pertama
responden diminta untuk melakukan pencarian, mencatat seluruh dokumen hasil
pencarian, dan menandai dokumen yang relevan. Pada tahap kedua responden
diminta untuk melihat seluruh koleksi daftar dokumen dan menandai dokumen
yang relevan terhadap kata kunci yang digunakan dalam pencarian sebelumnya.
1. Kata kunci “penambangan data”
Sistem menghasilkan 2 dokumen dari kata kunci “penambangan data”. Dari 2
dokumen hasil pencarian, responden menemukan 1 dokumen yang relevan. Pada
tahap kedua responden menemukan 8 dokumen yang relevan dari 281 dokumen
koleksi. Perhitungan recall diperoleh. Hasil perhitungan Recall dan precision
dapat dilihat padat tabel 5.1.
Berikut dokumen hasil pencarian.
1. ANALISIS ASOSIASI HASIL EVALUASI PEMBELAJARAN
MEMPERGUNAKAN ALGORITMA APRIORI
2. ARSITEKTUR DATA SPASIAL UNTUK INFORMASI TEMATIS
SIGDA KABUPATEN LOMBOK BARAT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
Tabel 5.1 Recal Precision query “penambangan data”
ID Relevan Recall Precision
257 R 0,125 1
115 0,125 0,5
Tabel 5.2 Interpolasi Recall Precision query “penambangan data”
Recall Precision
0% 100%
10% 100%
20% 0%
30% 0%
40% 0%
50% 0%
60% 0%
70% 0%
80% 0%
90% 0%
100% 0%
Dari tabel 5.2 dan Gambar 5.1 dapat dilihat diperoleh precision 100% dari
nilai recall 0-10% dan menurun hingga 0% pada nilai recall 20-100%.. Hal ini
dikarenakan dokumen relevan yang ditemukan responden yaitu 8 dokumen lebih
banyak daripada dokumen relevan yang ditemukan menurut sistem yaitu 1,
dimana beberapa dari dokumen tersebut mengandung kata “data mining” yang
merupakan istilah bahasa Inggris dari kata “penambangan data”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
Gambar 5.1 Grafik Recall precision query “penambangan data”
Istilah “penambangan data” memiliki sinonim dalam bahasa inggris sehingga
dilakukan pengujian dengan kata kunci “data mining” untuk memberi
perbandingan.
Dokumen hasil pencarian dengan kata kunci “data mining”.
1. PERANCANGAN APLIKASI DATA MINING STUDI KASUS: ANALISIS
KEPUASAN PELANGGAN PT. XYZ
2. PENGGUNAAN ANALISA ASOSIASI (ASSOCIATION ANALYSIS)
DALAM PEMILIHAN LOKASI WISATA BERDASARKAN
KARAKTERISTIK SOSIO-DEMOGRAFIS WISATAWAN
3. KLASIFIKASI EVENT PADA PROCESS LOGS MENGGUNAKAN
MODEL REGRESI LOGISTIK
4. PENERAPAN DATA MINING MENGGUNAKAN ALGORITMA
ASSOCIATION RULES UNTUK MEMPREDIKSI PILIHAN PROGRAM
STUDI DI SEKOLAH TINGGI XYZ
0%
20%
40%
60%
80%
100%
120%P
reci
sio
n
Recall
Interpolasi
Interpolasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
5. Market Basket Analysis Berbasis Classifier Characterictic untuk
MENENTUKAN PERSENTASE MODEL DESKRIPSI MEDIA
RELATIONS PERGURUAN TINGGI
6. ANALISIS ASOSIASI HASIL EVALUASI PEMBELAJARAN
MEMPERGUNAKAN ALGORITMA APRIORI
7. ANALISIS KEMUNGKINAN PENGUNDURAN DIRI CALON
MAHASISWA DI STMIK STIKOM BALI DENGAN ALGORITMA
BAYESIAN CLASSIFICATION
8. PENGOLAHAN DATA WAREHOUSE AKADEMIK SEBAGAI
PENUNJANG KEPUTUSAN DI PERGURUAN TINGGI
9. PERANCANGAN e-HEALTH MANAGEMENT SYSTEM
10. CUSTOMER RELATIONSHIP MANAGEMENT (CRM) UNTUK USAHA
KECIL DAN MENENGAH
11. PEMANFAATAN BUSINESS INTELLIGENCE DALAM PERENCANAAN
PEMBANGUNAN NASIONAL: STUDI KASUS BADAN PERENCANAAN
PEMBANGUNAN NASIONAL
12. PEMANFAATAN KNOWLEDGE MANAGEMENT SYSTEM BERBASIS
OPENSOURCES UNTUK INSTANSI PEMERINTAH STUDI KASUS:
DIREKTORAT E-GOVERNMENT KEMENTERIAN KOMUNIKASI DAN
INFORMATIKA
13. DASHBOARDING INFORMATION SYSTEMS FOR THE EDUCATION
SECTOR: APPLICATION AND METHODOLOGIES
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
14. EFISIENSI MATRIKS: PERBEDAAN SISTEM TUNGGAL DAN
CLUSTER DENGAN ALGORITMA MAPREDUCE
15. MODEL KNOWLEDGE MANAGEMENT PADA PERUSAHAAN
DISTRIBUTOR FARMASI DAN CONSUMER PRODUCT
16. SISTEM ANALISIS OPINI MICROBLOGGINGBERBAHASA INDONESIA
17. FAKTOR KONTEKSTUAL DALAM PEMANFAATAN WEB SEBAGAI
MEDIA KOMUNIKASI CSR OLEH PERUSAHAAN
18. ALGORITMA UNTUK EKSTRAKSI TABEL HTML DI WEB
19. PERBANDINGAN ALGORITMA BINERISASI PADA CITRA TULANG
ABNORMAL TELAPAK TANGAN MANUSIA
20. PENJADWALAN PERKULIAHAN DENGAN METODE COMPACT
GENETIC ALGORITHM (STUDI KASUS UNIVERSITAS WIDYATAMA)
21. PENERAPAN CRM DENGAN SISTEM INFORMASI BERBASIS WEB
UNTUK KEPUASAN PELANGGAN
22. MUSIC THERAPY ISSUES ON MUSIC INFORMATION RETRIEVAL
Sistem menghasilkan 22 dokumen dari kata kunci “data mining”. Dari 22
dokumen hasil pencarian, responden menemukan 8 dokumen yang relevan. Pada
tahap kedua responden menemukan 8 dokumen yang relevan dari 281 dokumen
koleksi. Perhitungan recall diperoleh. Hasil perhitungan Recall dan precision
dapat dilihat padat tabel 5.4. dan tabel 5.5.
Tabel 5.4 Recal Precision query “data mining”
No Urut Relevan Recall Precision
1 R 0,125 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
2 R 0,25 1
3 R 0,375 1
4 R 0,5 1
5 R 0,625 1
6 R 0,75 1
7 R 0,875 1
8 0,875 0,875
9 0,875 0,777778
10 0,875 0,7
11 0,875 0,636364
12 0,875 0,583333
13 0,875 0,538462
14 0,875 0,5
15 0,875 0,466667
16 0,875 0,4375
17 0,875 0,411765
18 0,875 0,388889
19 R 1 0,421053
20 1 0,4
21 1 0,380952
22 1 0,363636
Tabel 5.5 Interpolasi Recall Precision query “data mining”
Recall Precision
0% 100%
10% 100%
20% 100%
30% 100%
40% 100%
50% 100%
60% 100%
70% 100%
80% 100%
90% 100%
100% 42%
Dapat dilihat pada gambar 5.2 precision 100% didapat pada nilai recall 0%
sampai 90% dan menurun ke 42% pada nilai recal 100%. Jika dibandingkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
dengan grafik pada gambar 5.1 query “data mining” menghasilkan precision
yang lebih baik karena dokumen yang mengandung kata “data mining” lebih
banyak jumlahnya daripada dokumen yang mengandung kata “penambangan
data” .
Gambar 5.2 Grafik Recall precision query “data mining”
2. Kata kunci “pemerolehan informasi”
Sistem menghasilkan 1 dokumen dari kata kunci “pemerolehan informasi”.
Dari 1 dokumen hasil pencarian, responden menemukan 1 dokumen yang relevan.
Pada tahap kedua responden menemukan 5 dokumen yang relevan dari 281
dokumen koleksi. Perhitungan recall diperoleh. Hasil perhitungan Recall dan
precision dapat dilihat padat tabel 5.3.
0%
20%
40%
60%
80%
100%
120%Interpolasi
Interpolasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
Tabel 5.3 Recal Precision query “pemerolehan informasi”
Hasil Relevan Recall Precision
257 R 0,2 1
Tabel 5.4 Interpolasi Recall Precision query “pemerolehan informasi”
Recall Precision
0% 100%
10% 100%
20% 100%
30% 0%
40% 0%
50% 0%
60% 0%
70% 0%
80% 0%
90% 0%
100% 0%
Gambar 5.2 Recall precision query “pemerolehan informasi”
Dari tabel 5.4 dan Gambar 5.2 dapat dilihat diperoleh precision 100% dari
nilai recall 0-20% dan menurun hingga 0% pada nilai recall 30-100%. Hal ini
0%
20%
40%
60%
80%
100%
120%
Interpolasi
Interpolasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
dikarenakan dokumen relevan yang ditemukan responden yaitu 5 dokumen lebih
banyak daripada dokumen relevan yang ditemukan menurut sistem yaitu 1 dimana
4 dokumen yang mengandung istilah “information retrieval” dan 1 dokumen yang
mengandung istilah “pemerolehan informasi” dan menurut responden relevan.
Kata kunci “apriori”
Sistem menghasilkan 2 dokumen dari kata kunci “apriori”. Dari 2 dokumen
hasil pencarian, responden menemukan 2 dokumen yang relevan. Pada tahap
kedua responden menemukan 2 dokumen yang relevan dari 281 dokumen koleksi.
Perhitungan recall diperoleh. Hasil perhitungan Recall dan precision dapat dilihat
padat tabel 5.5.
Tabel 5.5 Recal Precision query “apriori”
Hasil Relevan Recall Precision
257 R 0,5 1
278 R 1 1
Tabel 5.6 Interpolasi Recal Precision query “apriori”
Recall Precision
0% 100%
10% 100%
20% 100%
30% 100%
40% 100%
50% 100%
60% 100%
70% 100%
80% 100%
90% 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
100% 100%
Gambar 5.3 Recall precision query “apriori”
Dari tabel 5.6 dan Gambar 5.3 dapat dilihat diperoleh precision 100% dari
nilai recall 0-100%. Untuk kata kunci tersebut sistem menghasilkan dokumen
relevan yang sama dengan menurut responden.
3. Kata kunci “pemanfaatan data warehouse”
Sistem menghasilkan 1 dokumen dari kata kunci “pemanfaatan data
warehouse”. Dari 1 dokumen hasil pencarian, responden menemukan 1 dokumen
yang relevan. Pada tahap kedua responden menemukan 3 dokumen yang relevan
dari 281 dokumen koleksi. Perhitungan recall diperoleh. Hasil perhitungan Recall
dan precision dapat dilihat padat tabel 5.7.
Tabel 5.7 Recall precision query “pemanfaatan data warehouse”
0%
20%
40%
60%
80%
100%
120%
Interpolasi
Interpolasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
Hasil Relevan Recall Precision
234 R 0,333333 1
Tabel 5.8 Interpolasi recall precision query “pemanfaatan data warehouse”
Recall Precision
0% 100%
10% 100%
20% 100%
30% 100%
40% 0%
50% 0%
60% 0%
70% 0%
80% 0%
90% 0%
100% 0%
Gambar 5.4 Recall precision query “pemanfaatan data warehouse”
Dari tabel 5.8 dan Gambar 5.2 dapat diperoleh precision 100% dari nilai
recall 0-40% dan menurun hingga 0% pada nilai recall 40-100%. Hal ini
dikarenakan dokumen relevan yang ditemukan responden yaitu 4 dokumen lebih
0%
20%
40%
60%
80%
100%
120%
Interpolasi
Interpolasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
banyak daripada dokumen relevan yang ditemukan menurut sistem yaitu 1 karena
responden juga menemukan dokumen-dokumen yang mengandung kata “gudang
data” dan menurut responden relevan.
Dari pencarian tersebut ditemukan juga 2 kata kunci yaitu data warehouse
yang sebenarnya di dalam dokumen terletak pada daftar pustaka dimana sistem
melakukan index pada seluruh isi dokumen. Hal tersebut ditemukan pada
dokumen dengan judul “IMPLEMENTASI TABEL AGREGAT UNTUK
MENINGKATKAN UNJUK KERJA MODEL BASISDATA MULTIDIMENSI
(STUDI KASUS PERUSAHAAN PERSEWAAN BAN "XYZ") “.
5.2. Pengujian Performa Inverted Index
Percobaan menggunakan operasi AND dengan melakukan interseksi antar
postinglist yang diperoleh saat pencarian ke dalam Inverted Index.
Pada tabel 1 menunjukkan pada kelompok dfk 1-2 untuk untuk kelompok 1
hingga 4 kata kunci berada pada 0,001 detik, hal ini karena sistem masih belum
bisa mencatat waktu kurang dari 0,001 detik, kemungkinan waktu tersebut
kurang dari 0,001 detik. Pada kelompok dfk ±140, waktu akses diperoleh 0,0017
detik untuk 1 kata kunci hingga 0,0041 detik untuk 4 kata kunci. Pada grafik
gambar 8 terlihat peningkatan waktu akses tersebut linear. Pada kelompok dfk
281 terjadi peningkatan waktu akses dari 0,0033 detik untuk 1 kata kunci hingga
0,0491 detik untuk 4 kata kunci. Peningkatan waktu akses dari 1 kata kunci ke 2
kata kunci cukup signifikan dibandingkan dari 2 sampai 4 kata kunci, hal ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
disebabkan ada operasi AND untuk 2,3, dan 4 kata kunci sedangkan pada
kelompok 1 kata kunci tidak ada.
Dari gambar 8 dapat dilihat pada kelompok dfk ±140 peningkatan waktu akses
linear untuk peningkatan dari 2 sampai 4 kata kunci. Pada kelompok dfk 281
peningkatan waktu akses pada 2 kata kunci ke 3 kata kunci cukup tajam
dibandingkan peningkatan waktu akses dari 3 kata kunci ke 4 kata kunci, hal ini
disebabkan jumlah dokumen relevan yang diperoleh untuk 3 kata kunci sama
dengan 4 kata kunci yaitu 281. Sedangkan pada kelompok dfk ±140 terjadi
penurunan hasil dokumen yang relevan dari 63 dokumen untuk 3 kata kunci
menjadi 41 untuk 4 kata kunci.
Tabel 1. Waktu rata-rata query untuk kelompok kata 1-2 dfk, ±140 dfk, dan 281
dfk dengan operasi AND.
DFK
Jumlah Kata
Kunci
Waktu Query Rata2
(detik)
Jumlah Dokumen yang
Relevan
1-2
1 0,001 1
2 0,001 2
3 0,001 1
4 0,001 1
±140
1 0,0017 138
2 0,0026 85
3 0,0033 63
4 0,0041 41
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
281
1 0,0033 281
2 0,0316 281
3 0,0463 281
4 0,0491 281
Gambar 8. Grafik Waktu rata-rata query untuk kelompok kata 1-2 dfk, ±140 dfk,
dan 281 dfk operasi AND.
Untuk kata kunci 1 sampai 4 , kelompok dfk 281 memiliki waktu akses paling
tinggi, diikuti kelompok dfk ±140, dan yang terakhir kelompok dfk 1-2. Hal ini
menunjukkan peningkatan jumlah dokumen untuk setiap postinglist(dfk)
meningkatkan waktu akses query.Waktu akses untuk 1 kata kunci 0,001 detik
hingga 0,033 detik dan untuk 4 kata kunci 0,001 detik hingga 0,0491 detik.
0
0.01
0.02
0.03
0.04
0.05
0.06
1 2 3 4
Wak
tu a
kse
s(d
etik
)
Kata Kunci
1-2
±140
281
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
BAB VI
KESIMPULAN DAN SARAN
6.1 Kesimpulan
Kesimpulan yang dapat diambil dari pembuatan sistem pencarian jurnal
berbahasa Indonesia adalah sebagai berikut:
1. Sistem Pemerolehan Informasi dapat diimplementasikan dengan struktur
data inverted index berbasis struktur data HashTable dan Ordered
LinkedList dengan metode pembobotan TF-IDF menggunakan 281
dokumen dengan jumlah kamus kata dasar 3278 dan 395 stopwords
menghasilkan 25737 term.
2. Dengan spesifikasi sistem yang digunakan dalam pengujian, sistem ini
dapat mencari dokumen makalah berbahasa Indonesia berdasar jumlah
kata kunci antara 1 hingga 4 kata kunci yang dimasukkan oleh pengguna
dengan performa rata-rata kurang dari 0,1 detik.
3. Peningkatan jumlah dfk dan kata kunci akan meningkatkan lamanya waktu
pencarian dilihat dari data unjuk kerja pencarian 0,001 detik untuk 1
hingga 4 kata kunci pada kelompok kata dfk 1-2. Unjuk kerja sistem
0,0017 detik untuk 1 kata kunci hingga 0,0041 detik pada kelompok kata
dfk ±140 dengan grafik peningkatan waktu akses linear. Unjuk kerja
sistem 0,0033 detik untuk 1 kata kunci hingga 0,0491 detik untuk 4 kata
kunci pada kelompok kata maksimum 281.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
4. Pada pengujian sistem memberikan nilai recall dan precision yang baik
yaitu = 1 pada kata kunci istilah tunggal seperti contoh kata “apriori”
yang digunakan dalam pengujian.
5. Sistem memiliki beberapa kelemahan yaitu:
a. Tingkat relevansi dokumen tergantung dari jenis kata kunci seperti
istilah yang memiliki istilah dalam bahasa lain akan mempengaruhi
pencarian yang menghasilkan dokumen terbatas karena sistem tidak
menangani istilah dalam bahasa asing. Sebagai contoh pada kata kunci
“data mining”memiliki nilai recall precision yang lebih baik daripada
kata kunci “penambangan data”.
b. Kata-kata yang terdapat pada daftar pustaka didalam dokumen
makalah ikut mempengaruhi indek karena diikutsertakan dalam proses
pengindeksan sehingga sistem dapat menghasilkan dokumen yang
kurang relevan.
6.2 Saran
1. Operasi pencarian pada penelitian ini dapat ditambahkan dengan operasi
OR dan NOT.
2. Penambahan kamus kata dasar dan stopword meningkatkan keberhasilan
stemming pada saat indexing, query processing.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
Daftar Pustaka
Agusta, Ledy, Perbandingan Algoritma Stemming Porter denganAlgoritma Nazief
& Adriani untuk Stemming Dokumen TeksBahasa Indonesia. Konferensi
Nasional Sistem dan Informatika 2009, Bali
A.H , Muh. Erwin & Mandala, Rila. (2004), Relevance Feedback pada Temu
Kembali Informasi Menggunakan Algoritma Genetika. Seminar Nasional
Aplikasi Teknologi Informasi 2004, Yogyakarta.
Baeza-Yates, R., Ribeiro-Neto, B. (1999). Modern Information Retrieval.
Addison Wesley.
Hasibuan, Zainal A.,& Andri, Yofi. (2001). Penerapan Berbagai Teknik Sistem
Temu-Kembali Informasi Berbasis Hiperteks. Jurnal Ilmu Komputer dan
Teknologi Informasi, Volume 1, Nomor2.
Keller , Robert M , Computer Science: Abstraction to Implementation. Harvey
Mudd College (2001).
http://www.cs.hmc.edu/~keller/cs60book/%20%20%20All.pdf (diakses
terkahir tanggal 8 Februari 2012)
Kruse, Robert L, Data Structure and Program Design Third Edition. Prentice Hall
International, Inc, London(1994).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
Manning ,Christopher D. :An Introduction to Information Retrieval. Cambridge
University Press Cambridge, England(2009)
Robert,Lafore Data Structure & Algorithms in Java Second Edition.Sams
Publishing, Indiana (2003) .
Whitten dan Bentley ,System Analysis and Design Methods 7th. McGraw Hill,
New York(2007).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
LAMPIRAN
Source Code
1. Source Code Pada Pencarian Dokumen
a. Source Code Membangun InvertedIndex
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try { path=System.getProperty("user.dir")+"\\jurnal"; InformationRetrieval.StartBuildIndex(getServletContext().getRealPath("jurnal")); RequestDispatcher rd = request.getRequestDispatcher("cariJurnal.jsp"); rd.forward(request, response); } catch(Exception ex){ ex.printStackTrace(); } }
public class InformationRetrieval { public static DocFilter doc = null; Stemming stem=new Stemming(); public static void StartBuildIndex(String path) { doc = new DocFilter(); doc.createIndex1(); } ...
public void createIndex1() {
String judul, nama_penulis, path;
int id_document;
int max_jurnal_id = 0;
ResultSet resultDataJurnal = getDataJurnalReadyServer();
try {
System.out.println("Building Index");
while (resultDataJurnal.next()) {
Jurnal jurnal=new Jurnal();
id_document = resultDataJurnal.getInt("id_document");
//insertJurnal
jurnal.setJurnal_id(id_document);
jurnal.setFileName(resultDataJurnal.getString("path"));
jurnal.setJudul(resultDataJurnal.getString("title"));
jurnal.setMaxtf(resultDataJurnal.getInt("max_term"));
String[]penulis=resultDataJurnal.getString("authors").split(",");
jurnal.setPenulis(resultDataJurnal.getString("authors"));
jurnal.setTahun(resultDataJurnal.getInt("year"));
jurnallist.addJurnal(jurnal);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
ResultSet resultDataPosting = getDataPostingServer(id_document);
while (resultDataPosting.next()) {
Posting post=new Posting();
Term word=new Term(resultDataPosting.getString("STEMMED_WORDS"));
post.setWord(word);
post.setTfik(resultDataPosting.getInt("frequency"));
post.setJurnal(jurnal);
jurnal.getPostlist().add(post);
index.addWord(word.getTerm().toLowerCase(), post);
}
}
System.out.println("hitung bobot");
index.IndexScoring();
System.out.println("INDEXING SELESAI");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public void addWord(String term, Posting aPost) {
//jika wolrdlist mengandung kata @param term
if (this.wordlist.containsKey(term)) {
//jika kata yang ditambahkan sama dengan kata di wordlist
if (getWordlist().get(term).getTerm().compareTo(term) == 0) {
Term freqtambah = getWordlist().get(term);
//ambil Posting Listnya
ListIterator<Posting> iteratorPosting =
freqtambah.getPostlist().listIterator();
//selama iterator posting punnya data berikutnya
while (iteratorPosting.hasNext()) {
//jika filename Jurnal Posting sama dengan filename dari
//parameter
if (iteratorPosting.next().getJurnal().getJurnal_id() ==
aPost.getJurnal().getJurnal_id()) {
Posting freqtambahPosting = iteratorPosting.previous();
//tambahkan frekuensi katanya saja Tfik
//freqtambahPosting.setTfik(freqtambahPosting.getTfik() + 1);
return;
}
iteratorPosting.previous();
if (iteratorPosting.next().getJurnal().getJurnal_id() > aPost.getJurnal().getJurnal_id()) {
//tambahkan ke posting ke index sebelum
Posting freqtambahPosting = iteratorPosting.previous();
iteratorPosting.add(aPost);
//freqtambahPosting.setTfik(freqtambahPosting.getTfik() + 1);
return;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
}
if (!iteratorPosting.hasNext()) {
iteratorPosting.add(aPost);
Posting freqtambahPosting = iteratorPosting.previous();
// freqtambahPosting.setTfik(freqtambahPosting.getTfik() + 1);
}
return;
}
//jika tidak mengandung kata @param term
} else {
Term baru = new Term(term);
// aPost.setTfik(aPost.getTfik()+1);
baru.getPostlist().add(aPost);
getWordlist().put(baru.getTerm(), baru);
}
}
public void IndexScoring() {
int n = DaftarJurnal.jurnal.size();
Enumeration<String> key = wordlist.keys();
Enumeration<Term> elements = wordlist.elements();
while (key.hasMoreElements()) {
Term word = wordlist.get(key.nextElement());
LinkedList<Jurnal> jurnaltemp = new LinkedList<Jurnal>();
LinkedList<Posting> post = word.getPostlist();
for (Posting posting : post) {
if (!jurnaltemp.contains(posting.getJurnal())) {
jurnaltemp.add(posting.getJurnal());
}
}
word.setDfk(jurnaltemp.size());
double nidfk;
try {
nidfk = (Math.log10((n / word.getDfk()))) / (Math.log10(n));
} catch (ArithmeticException ex) {
nidfk = 0;
}
word.setNidfk(nidfk);
for (Posting posting : post) {
try {
posting.setNtfik((posting.getTfik() / posting.getJurnal().getMaxtf()));
} catch (ArithmeticException ex) {
posting.setNtfik(0);
}
double w = (posting.getNtfik() * (float) word.getNidfk());
posting.setW((float) w);
}
}
}
b. Source Code Pencarian
public class beancarijurnal extends HttpServlet {
InformationRetrieval ir=new InformationRetrieval();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
double time = 0;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
double start = System.currentTimeMillis();
ArrayList<JurnalScore> Js=null;
String input_query = request.getParameter("txtsearch");
if(input_query.trim().isEmpty()){
Js = new ArrayList<JurnalScore>();
System.out.println("empty query");
}else{
try{
Js = ir.SearchRanked(input_query);
} catch (NullPointerException ex) {
ex.printStackTrace();
Js = new ArrayList<JurnalScore>();
}
}
int d = halaman(Js.size());
String e = Integer.toString(d);
double finish = System.currentTimeMillis();
time = (double) ((finish - start) / 1000.0);
NumberFormat formatter = new DecimalFormat("#.###");
formatter.format(time);
request.getSession().setAttribute("time", time);
request.getSession().setAttribute("jurnalscored", Js);
request.getSession().setAttribute("e", e);
RequestDispatcher rd = request.getRequestDispatcher("/hasilPencarian.jsp?page=1");
rd.forward(request, response);
}catch(Exception ex){
ex.printStackTrace();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
public static int halaman(int total) {
double a = total;
double b = a / 10;
double sisa=(a%10);
if(sisa>0){
return ((int) b)+1;
}else{
return ((int) b);
}
}
}
public ArrayList<JurnalScore> SearchRanked(String query) {
ArrayList<JurnalScore> SortedJurnalScore = null;
ArrayList<JurnalScore> jurnalscore = null;
if (query != null || !query.equals("")) {
Tokenizer queryTokenizer = new Tokenizer();
queryTokenizer.setData(queryTokenizer.characterCleaning(query));
queryTokenizer.makeTokens();
String[] queryToken = queryTokenizer.getTokens();
System.out.println("panjang query: " + queryToken.length);
ArrayList<Term> result = new ArrayList<Term>();
for (int i = 0; i < queryToken.length; i++) {
String string = queryToken[i];
if (!Stemming.cekStopwordAda(string)) {
String stem1 = stem.stem(string).toString();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
if (doc.index.getWordlist().get(stem1) != null) {
result.add(doc.index.getWordlist().get(stem1));
}
}
}
System.out.println("rsult lenght " + result.size());
for (Term words : result) {
Term word = words;
System.out.println(word.getTerm() + " || DFK: " + word.getDfk() + "|| NIDFK " + word.getNidfk());
LinkedList<Posting> temppost = word.getPostlist();
for (Posting posting : temppost) {
System.out.println("--- TFIK:" + posting.getTfik() + " NTFIK:" + posting.getNtfik() + " || JURNAL: " +
posting.getJurnal().getFileName() + " || W :" + posting.getW());
}
}
//Proses AND di sini
String kueri1, kueri2;
Term hasilCari = null;
if (result.size() == 1) {
hasilCari = result.get(0);
} else {
for (int i = 0; i < result.size() - 1; i++) {
if (i == 0) {
// kueri1 = result.get(i).getTerm().toLowerCase();
// kueri2 = result.get(i + 1).getTerm().toLowerCase();
// kueri1 = stem.stem(kueri1);
// kueri2 = stem.stem(kueri2);
hasilCari = AND(result.get(i), result.get(i + 1));
} else {
// kueri1 = result.get(i + 1).getTerm().toLowerCase();
//kueri1 = stem.stem(kueri1);
hasilCari = AND(hasilCari, result.get(i + 1));
}
}
}
jurnalscore = new ArrayList<JurnalScore>();
int docygsama = 0;
LinkedList<Posting> postlist = hasilCari.getPostlist();
//untuk setiap posting
for (Posting posting : postlist) {
if (jurnalscore.isEmpty()) {
JurnalScore jurn = new JurnalScore();
jurn.Score = jurn.Score + posting.getW();
jurn.jurnal = posting.getJurnal();
jurnalscore.add(jurn);
} else {
boolean contain = false;
for (JurnalScore js : jurnalscore) {
if (js.jurnal.equals(posting.getJurnal())) {
docygsama++;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
System.out.println("sama dokumen sementara " + docygsama);
js.Score = js.Score + posting.getW();
contain = true;
}
}
if (contain == false) {
JurnalScore jurn = new JurnalScore();
jurn.Score = jurn.Score + posting.getW();
jurn.jurnal = posting.getJurnal();
jurnalscore.add(jurn);
}
}
}
JurnalSortComparator jsc = new JurnalSortComparator();
Collections.sort(jurnalscore, jsc);
}
for (int i = 0; i < jurnalscore.size(); i++) {
System.out.println(jurnalscore.get(i).jurnal.getJudul() + " score : " + jurnalscore.get(i).Score);
}
System.out.println("Sorted : " + jurnalscore.size());
if (jurnalscore == null) {
return null;
} else {
return jurnalscore;
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI