PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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:
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 temukembali 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.
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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)
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 TFIDF 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
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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?
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB VI KESIMPULAN DAN SARAN Bab ini berisi tentang kesimpulan dan saran dari analisis dan perancangan sistem yang telah dilakukan dalam tugas akhir ini.
6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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).
8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
11
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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”.
12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 “berbalasbalasan” 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.
14
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
15
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 =
tf ik dan nidfk = Max j tf ij
𝑊𝑑 = 𝑊𝑖𝑗 + 𝑊𝑖𝑘 + 𝑊𝑖 … . . +𝑊𝑖𝑛
𝑄𝑢𝑒𝑟𝑦 = 𝑗 𝒐𝒓 𝑘 𝒐𝒓 𝒐𝒓 … … 𝑛
n log df k logn
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)
16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
𝑃𝑟𝑒𝑐𝑖𝑠𝑠𝑖𝑜𝑛 =
𝑅𝑒𝑐𝑎𝑙𝑙 =
#(𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑡𝑒𝑚𝑢𝑘𝑎𝑛) #(𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑛𝑦𝑎𝑛𝑔 𝑑𝑖𝑡𝑒𝑚𝑢𝑘𝑎𝑛)
#(𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑡𝑒𝑚𝑢𝑘𝑎𝑛) #(𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑡𝑒𝑚𝑢𝑘𝑎𝑛)
17
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
18
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
User Interface Dokumen Koleksi
User need Text
Text operation
Logical view
Logical view
Text RDBMS Interved file Query Operations
Indexing
query
Searching
Inverted Index
retrieved docs
Ranking ranked docs
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.
19
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HashTable
Term Dfk Nidfk
Term Dfk Nidfk
Ordered Linked List
Jurnal Ntfik Tfik w
Jurnal Ntfik Tfik w
Jurnal
Jurnal
Jurnal
Id Judul Tahun Penulis Filename Maxtf
Id Judul Tahun Penulis Filename Maxtf
Id Judul Tahun Penulis Filename Maxtf
Jurnal Ntfik Tfik w
Jurnal Ntfik Tfik w
Jurnal Ntfik Tfik w
Jurnal
Jurnal
Jurnal
Id Judul Tahun Penulis Filename Maxtf
Id Judul Tahun Penulis Filename Maxtf
Id Judul Tahun Penulis Filename Maxtf
Gambar 3.2 Representasi Inverted Index
3.1.2
Jurnal Ntfik Tfik w
Analisis Kebutuhan Pengguna
3.1.2.1 Use Case Model
20
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Sistem Pemerolehan Informasi Makalah Ilmiah Berbahasa Indonesia
Subsistem Operasi Teks
Menambahkan dokumen makalah
<< de
pe
nd
on
>>
<<depend on>>
Mengubah data dokumen makalah
Login
pe <<de
nd o
n>>
Logout
Subsistem Pencarian Makalah Ilmiah Berbahasa Indonesia
Administrator
Mencari dokumen makalah
Pengguna
Gambar 3.3 Use Case Diagram
22
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
Administrator
utama 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
Langkah 3: Sistem mengecek validasi data masukan (username
dan
dan password)
password.
user/administrator/Staff
Langkah 2: User/administrator/staff menekan tombol login.
. Langkah 4: Sistem masuk ke halaman utama
23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Administrator
Langkah
Alternatif-Langkah 4: Jika data ( username dan password)
alternatif
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.
24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b.
Menambah Makalah Tabel 3.3 Menambah Makalah
Nama Use Case
Menambah Makalah
ID Use Case
2
Prioritas
Sedang
Pelaku Bisnis
Administrator
utama 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:
Langkah 4: Sistem
Administrator
Menyimpan data makalah baru
memasukkan data-data
beserta file makalah.
makalah dan File
Langkah 5: Sistem masuk
makalah.
ke halaman utama
Langkah 3:
Administrator dengan pesan
25
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Administrator menekan
berhasil menyimpan
tombol simpan
Langkah
Alternatif-Langkah 4: Jika data yang
alternatif
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
c.
Data makalah bertambah
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
26
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 2 : Sistem
akan
menampilkan halaman Langkah 3 :
mengubah
data
Administrator memasukkan makalah data
baru
makalah
dan
menekan tombol ubah
Langkah 4 : Sistem
akan
mengganti data lama dengan data baru yang telah dimasukkan
27
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
d.
Data di database telah berubah
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
28
akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
menampilkan halaman Langkah 3 :
cari makalah
Aktor memasukkan keyword dan menekan tombol cari
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
29
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
dari
keluar halaman
administrator Langkah alternatif
-
Kesimpulan
Use case ini selesai jika administrator telah keluar
31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
dari halaman administrator Pasca kondisi
Administrator keluar dari halaman administrator
32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
35
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.2.1.2
Model Kelas Analisis
Berikut ini adalah rancangan diagram model kelas analisis.
Login.jsp Administrator
Administrator beanLogin
InvertedIndex Adminhome.jsp
benCariJurnal Jurnal
Pengguna Halamancari.jsp
StopList
Tambahjurnal.jsp
beanKelolajurnal
Posting
Ubahhapusjurnal.jsp
Word
Halamanhasilcari.jsp
36
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 <
>
<<entity>>
<>
Administrator used by login.jsp
beanLogin.java -username : string -password : string +validasiLoginAdministrator(in username : string, in password : string) : void +logoutAdministrator() : string
used by
<> adminhome.jsp
37
1 1
-username : string -password : string +setUserName(in : string) : void +getUserName() : string +setPassword(in : string) : void +getPassword() : string +getAdmistrator(in username) : Administrator
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.2.1.3.2.
Case Ubah Data
Berikut ini adalah rancangan diagram kelas pada case ubah data ubahhapusjurnal.jsp
tambahjurnal.jsp
used by
used by
beanKelolaJurnal Administrator -username : string -password : string +setUserName(in : string) : void +getUserName() : string +setPassword(in : string) : void +getPassword() : string +getAdmistrator(in username) : Administrator
1
*
+tambahJurnal(in : Jurnal) : boolean +hapusJurnal(in : Jurnal) : boolean +editJurnal(in : Jurnal, in : Jurnal) : boolean 1 * Jurnal -judul -tahun -penulis -fileName -maxtf -postlist
38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.2.1.3.3.
Case Pencarian Informasi Makalah
Berikut ini adalah rancangan diagram kelas pada case pencarian halamanhasilcari.jsp
halamancari.jsp
Administrator -username : string -password : string +setUserName(in : string) : void +getUserName() : string +setPassword(in : string) : void +getPassword() : string +getAdmistrator(in username) : Administrator
used by
*
used by
beanCariJurnal 1
+Cari() 1
1 InvertedIndex -wordlist : HashMap
39
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.2.1.3.4.
Diagram Kelas Pemodelan Struktur Data Inverted Index
Berikut ini adalah rancangan diagram kelas untuk memodelkan Struktur Data Inverted Index.
40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.2.1.5 Perancangan Database 3.2.1.3.1.
Conceptual Design
Berikut ini adalah desain database secara konseptual. CONCEPTUAL DATABASE DESIGN
year title id_status
path
id_document
description
id_term
max_term
status
1
*
*
documents
punya
dfk
id_sourceterm word
is_root_word
id_term
id_document
*
posting
1
terms
*
sourceterm
* frequency
ntfik id_status_ready authors
w
nidfk
stemmed_words
id_status_2
id_term
id_status_3
id_stopword id_document
stopwords
id_term
* posting_stopword
stopwords
frequency id_administrator id_dictionary
username
root_word
administrator dictionary
pasword
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
Terms
Sourceterm
id_document (FK) id_term (FK) frequency ntfik w
id_term (PK) terms stemmed_words is_root_word dfk nidfk
id_sourceterm (PK) id_term (FK) word is_root_word
Posting_stopword
Stopwords
Dictionary
Administrator
id_document (FK) id_stopword (FK) frequency
id_stopword (PK) stopword
id_dictionary (PK) root_word
id_administrator (PK) username pasword
41
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
Header
Title
Cari
Copyright © 2012 | Login
Gambar 3.4. Halaman Beranda
42
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 Halaman Login Administrator Nama Pengguna Kata Sandi Masuk
Copyright © 2012
Gambar 3.6. Halaman Login Administrator
44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
Header
Beranda
Title
Kelola Makalah
Logout
Selamat datang di halaman Administrator
Copyright © 2012
Gambar 3.7. Halaman Beranda Administrator
45
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
Header
Beranda
Title
Kelola Makalah
Logout
Judul Penulis File
pilih
simpan Copyright © 2012
Gambar 3.8. Halaman Menambah Makalah
46
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 Home
Title
Kelola Jurnal Logout Menghapus dan Mengubah Data Jurnal
No
Judul
Penulis
Tahun
N ama File x x x
Judul Penulis Tahun File
Cari
Simpan
Copyright © 2012
Gambar 3.9. Halaman Menghapus dan Mengubah Makalah
47
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
48
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 id_status
Tipe Data
Ukuran
NUMBER
-
Keterangan Primary key untuk tabel status
description
VARCHAR2
20
Deskripsi status
Berikut query untuk membuat tabel status : CREATE TABLE STATUS ( ID_STATUS NUMBER NOT NULL , DESCRIPTION VARCHAR2 (20) ) ; ALTER TABLE STATUS ADD CONSTRAINT STATUS_DOCUMENTS_PK PRIMARY KEY ( ID_STATUS ) ; 2. Tabel Documents Tabel 4.2. Tabel Documents Nama Field id_document
Tipe Data
Ukuran
NUMBER
-
Keterangan Primary
key
untuk
tabel documents title
VARCHAR2
256
Judul dari dokumen
path
VARCHAR2
256
Nama
50
file
dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
51
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
( 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
52
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 KEY ( ID_DOCUMENT ) REFERENCES DOCUMENTS
FOREIGN
( ID_DOCUMENT ) ; ALTER TABLE POSTING ADD CONSTRAINT POSTING_TERMS_FK FOREIGN KEY ( ID_TERM ) REFERENCES TERMS ( ID_TERM ) ;
53
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4. Tabel Terms Tabel 4.4. Tabel Terms Nama Field id_term
Tipe Data NUMBER
Ukuran -
Keterangan 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 ) ;
54
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5. Tabel Posting_Stopword Tabel 4.5. Tabel Posting_stopword Nama Field
Tipe Data
id_document
NUMBER
Ukuran -
Keterangan Foreign
key
dari
tabel
key
dari
tabel
stopword
pada
documents id_stopword
NUMBER
-
Foreign stopwords
frequency
NUMBER
-
Frekuensi 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
55
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 ) ;
6. Tabel Stopwords Tabel 4.6. Tabel Stopwords Nama Field id_stopword
Tipe Data NUMBER
Ukuran -
Keterangan Primary key untuk tabel stopwords
stopword
VARCHAR2
20
Daftar kata buang
Berikut perintah untuk tabel stopwords : 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 ) ;
56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7. Tabel Dictionary Tabel 4.7. Tabel Dictionary Nama Field id_dictionary
Tipe Data
Ukuran
NUMBER
-
Keterangan Primary
key
untuk
tabel
dictionary root_word
VARCHAR2
20
Daftar kata dasar Bahasa Indonesia
Berikut perintah untuk membuat tabel dictionary : 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 ) ; 8. Tabel Administrator Tabel 4.8. Tabel Administrator
57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Nama Field id_administrator
Tipe Data
Ukuran
NUMBER
-
Keterangan Primary key untuk tabel administrator
username
VARCHAR2
10
Username
pasword
VARCHAR2
20
Password
Berikut perintah yang digunakan untuk membuat tabel administrator : 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 ) ; 9. Tabel Sourceterm Tabel 4.9. Tabel Sourceterm Nama Field id_sourceterm
Tipe Data NUMBER
Ukuran -
Keterangan Primary untuk
key tabel
sourceterm id_term
NUMBER
-
Foreign key dari tabel terms
word
VARCHAR2
50
Kata
tanpa
proses stemming
58
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
is_root_word
CHAR
1
Keterangan apakah
terms
ada di kamus
Berikut perintah yang digunakan untuk membuat tabel administrator : 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 ) ; 4.3.
Implementasi Inverted Index
TABLE SOURCETERM DariALTER pemodelan Inverted Index di dalam bab sebelumnya, di dalam struktur ADD CONSTRAINT SOURCETERM_TERMS_FK FOREIGN KEY Inverted Index pada bagian Ordered Linked List dilakukan sorting pada saat akan ( ID_TERM menambahkan data sehingga posting dimasukkan secara terurut berdasarkan id ) REFERENCES TERMS document. Setiap data posting baru yang akan ditambahkan dilakukan sequensial ( ID_TERM 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 59
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Term freqtambah = getWordlist().get(term); //ambil Posting Listnya ListIterator 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
60
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 t1; ListIterator 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 {
61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 */
62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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, penunjuk geser*/ } else if (bantu2.getJurnal().getJurnal_id()>penunjuk) { bantu1 = t1.next(); /*kata pertama akan bergeser*/ penunjuk = bantu1.getJurnal().getJurnal_id();
63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
} /*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);
64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
65
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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,
66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
67
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
72
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.1 Recal Precision query “penambangan data” ID
Relevan 257 R 115
Recall Precision 0,125 1 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”.
74
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Interpolasi 120%
Precision
100% 80% 60% 40%
Interpolasi
20% 0%
Recall
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
75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 1 R
Recall Precision 0,125 1
77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
R R R R R R
R
0,25 0,375 0,5 0,625 0,75 0,875 0,875 0,875 0,875 0,875 0,875 0,875 0,875 0,875 0,875 0,875 0,875 1 1 1 1
1 1 1 1 1 1 0,875 0,777778 0,7 0,636364 0,583333 0,538462 0,5 0,466667 0,4375 0,411765 0,388889 0,421053 0,4 0,380952 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
78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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” .
120%
Interpolasi
100%
80% 60% Interpolasi
40% 20% 0%
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.
79
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.3 Recal Precision query “pemerolehan informasi” Hasil Relevan 257 R
Recall Precision 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%
Interpolasi 120% 100% 80% 60% Interpolasi
40% 20% 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
80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 257 R 278 R
Recall Precision 0,5 1 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%
81
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
100%
100%
Interpolasi 120% 100% 80% 60% Interpolasi
40% 20% 0%
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”
82
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Hasil Relevan 234 R
Recall
Precision 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%
Interpolasi 120% 100% 80% 60% Interpolasi
40% 20% 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
83
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
84
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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. Jumlah Kata DFK Kunci
1-2
±140
Waktu Query Rata2
Jumlah Dokumen yang
(detik)
Relevan
1
0,001
1
2
0,001
2
3
0,001
1
4
0,001
1
1
0,0017
138
2
0,0026
85
3
0,0033
63
4
0,0041
41
85
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
281
1
0,0033
281
2
0,0316
281
3
0,0463
281
4
0,0491
281
Waktu akses(detik)
0.06 0.05 0.04 0.03
1-2
0.02
±140
0.01
281
0 1
2
3
4
Kata Kunci
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.
86
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
87
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 1.
Saran 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.
88
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
http://www.cs.hmc.edu/~keller/cs60book/%20%20%20All.pdf
(2001). (diakses
terkahir tanggal 8 Februari 2012)
Kruse, Robert L, Data Structure and Program Design Third Edition. Prentice Hall International, Inc, London(1994).
89
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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).
90
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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);
91
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 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; }
92
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
} 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 elements = wordlist.elements(); while (key.hasMoreElements()) { Term word = wordlist.get(key.nextElement()); LinkedList<Jurnal> jurnaltemp = new LinkedList<Jurnal>(); LinkedList 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();
93
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
double time = 0; /** * Processes requests for both HTTP GET
and POST
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 GET
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);
94
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
} /** * Handles the HTTP POST
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"; }// 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 result = new ArrayList(); for (int i = 0; i < queryToken.length; i++) { String string = queryToken[i]; if (!Stemming.cekStopwordAda(string)) { String stem1 = stem.stem(string).toString();
95
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 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 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++;
96
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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; } }
97