SISTEM PEMEROLEHAN INFORMASI UNDANG … · A FINAL PROJECT Presented as Partial Fullfilment of the...
Transcript of SISTEM PEMEROLEHAN INFORMASI UNDANG … · A FINAL PROJECT Presented as Partial Fullfilment of the...
i
SISTEM PEMEROLEHAN INFORMASI UNDANG-UNDANG
DAN KASUS MENGGUNAKAN STRUKTUR DATA INVERTED INDEX
DENGAN PEMBOBOTAN TF-IDF
SKRIPSI
Diajukan untuk memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Informatika (S.Kom)
Program Studi Teknik Informatika
Oleh :
Fredes Winda Oktaviani Puspitaningrum
NIM : 115314005
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
INFORMATION RETRIEVAL SYSTEM OF THE LAWS
AND CASES USING INVERTED INDEX DATA STRUCTURE
WITH TF-IDF WEIGHTING
A FINAL PROJECT
Presented as Partial Fullfilment of the Requirements
To Obtain the Sarjana Komputer Degree
In Informatics Engineering
By :
Fredes Winda Oktaviani Puspitaningrum
Student Number : 115314005
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN MOTO
Yang penting PD !
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
HALAMAN PERSEMBAHAN
Kupersembahkan skripsi ini kepada :
Tuhan Yesus Kristus atas berkat dan perlindungan-Nya.
Keluargaku Yustinus Siswanto (Bapak), Yovita Murtini (Ibu), Veronika Ika
Puspita Kusumawati (Kakak), Yustina Novita Puspitawati (Kakak),
Ferdinand Vinsent Yoga Kusuma Pandya (Keponakan) yang selalu
memberikan dukungan, kasih sayang dan masukan dalam proses
pengerjaan skripsi ini.
Abd Manan yang telah memberikan ide untuk skripsi ini.
Untuk teman-teman :
- Fenti dan Salma yang slalu dengerin aku curhat hal-hal konyol dan
nggak penting, thanks ya udah sabar juga aku jailin :P
- Renia, Ari, Ronald : thanks untuk kodoknya yaaaa…besar banget
sumpah…! :D
- Teman-teman TI 2011 khususnya Renia, Ari, Ronald, Elsa, Orin, Danik,
Lita, Kezia, Meity, Benny, Pandu, Monic, Drajad, Wisnu, Adi, Anggit, dan
teman-teman TI lainnya atas dukungannya
- Mbak Tika, Mbak Velly, Monic dan teman-teman Kost Alma atas
dukungannya.
- Vano, Brent : thanks ya udah nemenin ngelembur :P
Yang special untuk :
- Babon Poule : cepatlah menetasss … :D
- C.L. Homer yang selalu dengerin curhat dan kasih dukungan,
thanks yaa … je t’aime mon amour.
Dan untuk teman-teman yang sedang menyelesaikan skripsi semangat
yaaa….!
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
ABSTRAK
Sejak tahun 1945, pertambahan dokumen Undang-Undang dan kasus
pelanggaran yang semakin banyak sehingga menyebabkan kesulitan dalam
menemukan pasal-pasal maupun kasus sesuai dengan informasi yang dibutuhkan.
Berdasarkan hal tersebut, maka diperlukannya suatu sistem Pemerolehan
Informasi untuk memudahkan pencarian. Pada Pemerolehan Informasi, proses
pencarian menggunakan struktur data inverted index dan pembobotan kata-kata
menggunakan metode pembobotan TF-IDF. Sejauh ini belum ada penerapan
metode tersebut dalam pencarian pasal-pasal yang relevan, selain itu umumnya
input sebagai kata kunci berupa query bukan sebuah dokumen.
Percobaan query to document menggunakan data contoh sejumlah 1942
dokumen pasal yang terdiri dari 2713 terms dan nilai rata-rata precision mencapai
0,9219. Sedangkan untuk document to document menggunakan 100 dokumen
kasus yang terdiri dari 54 terms dan nilai rata-rata precision mencapai 0,614.
Kata Kunci : Pemerolehan Informasi, TF-IDF, Inverted Index, query to document,
document to document
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
Since 1945, the law of documents and cases of violation’s additional have
been getting high continuously causing difficulties to retrieve the relevant pasal as
well as cases in accordance with the information needed. Hence based on this
problem, we need an information retrieval system to facilitate the search
processes. On the information retrieval field, the search processes using the data
structure of inverted index and weighting of words using TF-IDF weighting
method. So far there has been no application of such methods in the search for
relevant pasal, in addition to the general input as keyword is a query instead of the
document.
The experiments of query to document sub-system using 1942 pasal
documents consisting of 2713 terms as a data sample. The average value of
precision obtained is 0.9291. As for the document to document sub-system using
the 100 case files consists of 54 terms as a data sample. The average value of
precision obtained is 0.614.
Keywords: Information Retrieval, TF-IDF, Inverted Index, query to document,
document to document
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
KATA PENGANTAR
Puji dan Syukur saya panjatkan kepada Tuhan Yesus Kristus YME, atas
berkat dan kuasa-Nya yang diberikan sehingga saya dapat menyelesaikan Tugas
Akhir ini. Tugas Akhir ini adalah salah syarat memperolah gelar Sarjana Teknik
Informatika (S.Kom) Program Studi Teknik Informatika, Universitas Sanata
Dharma.
Dalam penyelesaian skripsi ini ada begitu banyak pihak atau pribadi yang
selalu membantu saya sampai dengan akhir pengerjaan. Oleh kerena itu saya ingin
mengucapkan rasa terima kasih kepada :
1. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku dekan Fakultas
Sains dan Teknologi Universitas Sanata Dharma.
2. Ibu Dr. Anastasia Rita Widiarti selaku ketua jurusan Teknik Informatika
Universitas Sanata Dharma.
3. Bapak JB. Budi Darmawan, S.T., M.Sc. selaku dosen pembimbing skripsi.
Beliau dengan sabar selalu membimbing dan memberikan banyak kontribusi
dalam pengerjaan.
4. Ibu Sri Hartati Wijono, S.Si., M.Kom. dan Bapak Puspaningtyas Sanjoyo
Adi, S.T., M.T.sebagai dosen penguji skripsi, atas saran dan kritik yang
diberikan untuk menunjang skripsi ini.
5. Keluarga, Yustinus Siswanto (Bapak), Yovita Murtini (Ibu), Veronika Ika
Puspita Kusumawati (Kakak), Yustina Novita Puspitawati (Kakak),
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
DAFTAR ISI
HALAMAN PERSETUJUAN .............................................................................. III
HALAMAN PENGESAHAN ............................................................................... III
PERNYATAAN KEASLIAN KARYA ................................................................. V
HALAMAN MOTO ............................................................................................. VI
HALAMAN PERSEMBAHAN .......................................................................... VII
ABSTRAK .......................................................................................................... VIII
ABSTRACT .......................................................................................................... IX
LEMBAR PERNYATAAN PERSETUJUAN ....................................................... X
KATA PENGANTAR .......................................................................................... XI
DAFTAR ISI ....................................................................................................... XIII
DAFTAR GAMBAR ....................................................................................... XVIII
DAFTAR TABEL ............................................................................................. XXII
DAFTAR KODE PROGRAM .......................................................................... XXV
BAB I ...................................................................................................................... 1
1. PENDAHULUAN ........................................................................................... 1
1.1. Latar Belakang Masalah ........................................................................... 1
1.2. Rumusan Masalah ...................................................................................... 2
1.3. Tujuan ......................................................................................................... 3
1.4. Batasan Masalah ........................................................................................ 3
1.5. Sistematika Penulisan ................................................................................ 3
BAB II ..................................................................................................................... 5
2. TINJAUAN PUSTAKA .................................................................................. 5
2.1. Konsep Pemerolehan Informasi (Information Retrieval) ........................ 5
2.1.1. Logical View dari Dokumen ................................................................. 6
2.1.1.1. Stopwords .......................................................................................... 7
2.1.1.2. Stemming ........................................................................................... 8
2.1.1.3. Tokenization .................................................................................... 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
2.1.2. Inverted Index ..................................................................................... 11
2.1.2.1. Membangun Inverted Index .............................................................. 12
2.1.2.2. Boolean Query pada Inverted Index ................................................. 14
2.1.3. Metode Pembobotan TF-IDF .............................................................. 17
2.2. Evaluasi Pemerolehan .............................................................................. 18
BAB III ................................................................................................................. 20
3. ANALISIS DAN PERANCANGAN ............................................................ 20
3.1. Gambaran Umum Sistem ........................................................................ 20
3.1.1. Perancangan Struktur Data Inverted Index ......................................... 25
3.1.2. Contoh Data yang Digunakan ............................................................. 26
3.2. Analisa Kebutuhan .................................................................................. 28
3.4. Perancangan Sistem ................................................................................. 29
3.4.1. Diagram Use Case .............................................................................. 29
3.4.2. Narasi Use Case .................................................................................. 30
3.4.2.1. Login ............................................................................................... 30
3.4.2.2. Menambah Dokumen Pasal............................................................. 32
3.4.2.3. Menambah Dokumen Kasus ........................................................... 34
3.4.2.4. Mencari Dokumen Pasal Berdasarkan Query ................................. 35
3.4.2.5. Mencari Dokumen Kasus dan Pasal Berdasarkan Dokumen Kasus 38
3.4.2.6. Melihat Isi Pasal .............................................................................. 40
3.5. Perancangang Diagram Aktivitas ........................................................... 42
3.5.1. Diagram Aktivitas Login .................................................................... 42
3.5.2. Diagram Aktivitas Menambah Dokumen Pasal.................................. 43
3.5.3. Diagram Aktivitas Menambah Dokumen Kasus ................................ 44
3.5.4. Diagram Aktivitas Mencari Pasal (Query to Document) .................... 45
3.5.5. Diagram Aktivitas Mencari Kasus dan Pasal (Document to Document)
46
3.5.6. Diagram Aktivitas Melihat Isi Pasal ................................................... 47
3.6. Perancangan Diagram Kolaborasi ......................................................... 48
3.6.1. Diagram Kolaborasi Login.................................................................. 48
3.6.2. Diagram Kolaborasi Menambah Dokumen Pasal ............................... 49
3.6.3. Diagram Kolaborasi Menambah Dokumen Kasus ............................. 50
3.6.4. Diagram Kolaborasi Mencari Pasal (Query to Document) ................. 51
3.6.5. Diagram Kolaborasi Mencari Kasus dan Pasal (Document to
Document) ......................................................................................................... 52
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
3.6.6. Diagram Kolaborasi Melihat Isi Pasal ................................................ 53
3.7. Perancangan Diagram Sekuensial .......................................................... 54
3.7.1. Diagram Sekuensial Login .................................................................. 54
3.7.2. Diagram Sekuensial Menambah Dokumen Pasal ............................... 55
3.7.3. Diagram Sekuensial Menambah Dokumen Kasus .............................. 59
3.7.4. Diagram Sekuensial Mencari Pasal (Query to Document) ................. 60
3.7.5. Diagram Sekuensial Mencari Kasus dan Pasal (Document to
Document) ......................................................................................................... 63
3.7.6. Diagram Sekuensial Melihat Isi Pasal ................................................ 65
3.8. Perancangan Basis Data .......................................................................... 66
3.8.1. Desain Konseptual Basis Data ............................................................ 66
3.8.2. Desain Logikal Basis Data .................................................................. 67
3.8.3. Desain Fisikal Basis Data ................................................................... 68
3.8. Perancangan Antarmuka ........................................................................ 75
3.8.1. Desain Form Utama ............................................................................ 75
3.8.2. Desain Form Login ............................................................................. 76
3.8.3. Desain Form Tambah Dokumen ......................................................... 76
3.8.4. Desain Form Pencarian ....................................................................... 77
3.8.5. Desain Form Lihat Isi Pasal ................................................................ 78
3.9. Perancangan Diagram Kelas ................................................................... 78
3.9.1. Package Model ................................................................................... 79
3.9.2. Package View ...................................................................................... 80
3.9.3. Package Control ................................................................................. 83
3.9.4. Package Stemming .............................................................................. 84
3.9.5. Package TF_IDF................................................................................. 85
3.9.6. Package inverted index ....................................................................... 85
3.9.7. Package conn ...................................................................................... 85
3.9.8. Package Thread ................................................................................... 85
BAB IV ................................................................................................................. 86
4. IMPLEMENTASI .......................................................................................... 86
4.1. Spesifikasi Software yang Digunakan .................................................... 86
4.2. Implementasi Basis Data ......................................................................... 86
4.3. Implementasi Operasi Teks ..................................................................... 92
4.3.1. Operasi Teks pada Query to Document .............................................. 92
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
4.3.1.1. Tokenization .................................................................................... 92
4.3.1.2. Stopwords ........................................................................................ 93
4.3.1.3. Stemming ......................................................................................... 94
4.3.2. Operasi Teks pada Document to Document ........................................ 99
4.3.2.1. Pengambilan Term .......................................................................... 99
4.4. Implementasi Pembobotan TF-IDF...................................................... 100
4.5. Implementasi Pencarian Melalui Inverted Index ................................. 102
4.5.1. Pencarian pada Pasal (query to document) ....................................... 103
4.5.1.1. Operator AND ............................................................................... 107
4.5.2. Pencarian pada Kasus (document to document) ............................... 113
4.5.2.1. Operator OR .................................................................................. 115
4.6. Implementasi Antarmuka ..................................................................... 118
4.6.1. Form Utama ...................................................................................... 118
4.6.2. Form Login ....................................................................................... 119
4.6.3. Form Tambah Dokumen ................................................................... 120
4.6.4. Form Pencarian ................................................................................. 122
4.6.5. Form Lihat Undang-Undang ............................................................. 124
BAB V ................................................................................................................. 125
5. ANALISIS HASIL ...................................................................................... 125
5.1. Analisa Hasil Sistem ............................................................................... 125
5.1.1. Hasil Uji Coba Query to Document .................................................. 125
5.1.1.1. Uji Coba Pertama Query to Document.......................................... 126
5.1.1.2. Uji Coba Kedua Query to Document ............................................ 130
5.1.1.3. Uji Coba Ketiga Query to Document ............................................ 135
5.1.1.4. Uji Coba Keempat Query to Document ........................................ 138
5.1.1.5. Uji Coba Kelima Query to Document ........................................... 142
5.1.2. Hasil Uji Coba Document to Document ........................................... 148
5.1.2.1. Uji Coba Pertama Document to Document ................................... 149
5.1.2.2. Uji Coba Kedua Document to Document ...................................... 153
5.1.2.3. Uji Coba Ketiga Document to Document ..................................... 156
5.1.2.4. Uji Coba Keempat Document to Document .................................. 160
5.1.2.5. Uji Coba Kelima Document to Document .................................... 164
5.1.3. Rata-Rata Precision .......................................................................... 168
5.1.3.1. Query to Document ....................................................................... 168
5.1.3.2. Document to Document ................................................................. 171
5.2. Kelebihan dan Kekurangan Sistem ...................................................... 176
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
5.2.1. Kelebihan Sistem .............................................................................. 176
5.2.2. Kekurangan Sistem ........................................................................... 176
BAB VI ............................................................................................................... 177
KESIMPULAN DAN SARAN ........................................................................... 177
6.1. Kesimpulan ............................................................................................. 177
6.2. Saran ....................................................................................................... 178
DAFTAR PUSTAKA ......................................................................................... 179
LAMPIRAN ........................................................................................................ 181
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
DAFTAR GAMBAR
Gambar 2.1 Proses Pemerolehan Informasi (Baeza-Yates, 1999) .......................... 5
Gambar 2.2 Logical View dari Dokumen (Baeza-Yates, 1999) .............................. 7
Gambar 2.3 Contoh Proses Tokenization (Deitel, 2004)....................................... 11
Gambar 2.4 Inverted Index (Manning, 2008) ....................................................... 13
Gambar 2.5 Membangun Inverted Index (Manning, 2008) .................................. 13
Gambar 2.6 Representasi Boolean Query (Manning, 2008) ................................. 15
Gambar 2.7 Pemotongan (Intersection) Posting List (Manning, 2008) ................ 15
Gambar 3.1 Sub Sistem Pencarian Query to Document ....................................... 21
Gambar 3.2 Sub Sistem Pencarian Document to Document ................................. 23
Gambar 3.3 Model Struktur Data Inverted Index.................................................. 25
Gambar 3.4 Contoh Dokumen Undang-Undang ................................................... 26
Gambar 3.5 Contoh Dokumen Kasus ................................................................... 27
Gambar 3.6 Diagram Use Case ........................................................................... 29
Gambar 3.7 Diagram Aktivitas Login ................................................................... 42
Gambar 3.8 Diagram Aktivitas Menambah Dokumen Pasal ................................ 43
Gambar 3.9 Diagram Aktivitas Menambah Dokumen Kasus ............................... 44
Gambar 3.10 Diagram Aktivitas Mencari Pasal (Query to Document) ................ 45
Gambar 3.11 Diagram Aktivitas Mencari Kasus dan Pasal (Document to
Document) ...................................................................................................... 46
Gambar 3.12 Diagram Aktivitas Melihat Isi Pasal ............................................... 47
Gambar 3.13 Diagram Kolaborasi Login .............................................................. 48
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xix
Gambar 3.14 Diagram Kolaborasi Menambah Dokumen Pasal ........................... 49
Gambar 3.15 Diagram Kolaborasi Menambah Dokumen Kasus .......................... 50
Gambar 3.16 Diagram Kolaborasi Mencari Pasal (Query to Document) ............. 51
Gambar 3.17 Diagram Kolaborasi Mencari Kasus dan Pasal (Document to
Document ....................................................................................................... 52
Gambar 3.18 Diagram Kolaborasi Melihat Isi Pasal ............................................ 53
Gambar 3.19 Diagram Sekuensial Login .............................................................. 54
Gambar 3.20 Diagram Sekuensial Menambah Dokumen Pasal Bagian 1 ............ 55
Gambar 3.21 Diagram Sekuensial Menambah Dokumen Pasal Bagian 2 ............ 56
Gambar 3.22 Diagram Sekuensial Menambah Dokumen Pasal Bagian 3 ............ 57
Gambar 3.23 Diagram Sekuensial Menambah Dokumen Pasal Bagian 4 ............ 58
Gambar 3.24 Diagram Sekuensial Menambah Dokumen Kasus .......................... 59
Gambar 3.25 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 1
....................................................................................................................... 60
Gambar 3.26 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 2
....................................................................................................................... 61
Gambar 3.27 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 3
....................................................................................................................... 62
Gambar 3.28 Diagram Sekuensial Mencari Kasus dan Pasal (Document to
Document) Bagian 1 ...................................................................................... 63
Gambar 3.29 Diagram Sekuensial Mencari Kasus dan Pasal (Document to
Document) Bagian 2 ...................................................................................... 64
Gambar 3.30 Diagram Sekuensial Melihat Isi Pasal ............................................. 65
Gambar 3.31 Desain Konseptual Basis Data ........................................................ 66
Gambar 3.32 Desain Logikal Basis Data .............................................................. 67
Gambar 4.1 Antarmuka Form Utama.................................................................. 118
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xx
Gambar 4.2 Antarmuka Form Login ................................................................... 119
Gambar 4.3 Antarmuka Form Tambah Dokumen Undang-Undang ................... 120
Gambar 4.4 Antarmuka Form Tambah Dokumen Kasus.................................... 121
Gambar 4.5 Antarmuka Form Pencarian Pasal (Query to Document) ................ 122
Gambar 4.6 Antarmuka Form Pencarian Kasus dan Pasal (Document to
Document) .................................................................................................... 123
Gambar 4.7 Antarmuka Form Lihat Undang-Undang ........................................ 124
Gambar 5.1 Pasal 26 UU No. 23 Tahun 2002 .................................................... 126
Gambar 5.2 Output Uji Coba Pertama Query to Document................................ 127
Gambar 5.3 Recall Precision Uji Coba Pertama Query to Document ................ 129
Gambar 5.4 Pasal 56 UU No. 19 Tahun 2002 .................................................... 130
Gambar 5.5 Pasal 57 UU No. 19 Tahun 2002 .................................................... 130
Gambar 5.6 Pasal 7.2 UU No. 19 Tahun 2002.................................................... 131
Gambar 5.7 Output Uji Coba Kedua Query to Document .................................. 132
Gambar 5.8 Recall Precision Uji Coba Kedua Query to Document ................... 134
Gambar 5.9 Pasal 16 UU No. 23 Tahun 2002 .................................................... 135
Gambar 5.10 Output Uji Coba Ketiga Query to Document ................................ 136
Gambar 5.11 Recall Precision Uji Coba Ketiga Query to Document................. 138
Gambar 5.12 Pasal 45 UU No. 11 Tahun 2008................................................... 139
Gambar 5.13 Output Uji Coba Keempat Query to Document ............................ 140
Gambar 5.14 Recall Precision Uji Coba Keempat Query to Document ............. 142
Gambar 5.15 Pasal 4 UU No. 8 Tahun 1999 ...................................................... 143
Gambar 5.16 Pasal 26 UU No. 8 tahun 1999 ...................................................... 143
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xxi
Gambar 5.17 Pasal 60 UU No. 8 Tahun 1999..................................................... 144
Gambar 5.18 Pasal 62 UU No. Tahun 1999........................................................ 145
Gambar 5.19 Output Uji Coba Kelima Query to Document ............................... 145
Gambar 5.20 Recall Precision Uji Coba Kelima Query to Document ............... 148
Gambar 5.21 Output Uji Coba Pertama Document to Document ....................... 149
Gambar 5.22 Recall Precision Uji Coba Pertama Document to Document ........ 152
Gambar 5.23 Output Uji Coba Kedua Document to Document .......................... 153
Gambar 5.24 Recall Precision Uji Coba Kedua Document to Document .......... 156
Gambar 5.25 Output Uji Coba Ketiga Document to Document.......................... 157
Gambar 5.26 Recall Precision Uji Coba Ketiga Document to Document .......... 159
Gambar 5.27 Output Uji Coba Keempat Document to Document ...................... 160
Gambar 5.28 Recall Precision Uji Coba Keempat Document to Document ...... 163
Gambar 5.29 Output Uji Coba Kelima Document to Document ........................ 164
Gambar 5.30 Recall Precision Uji Coba Kelima Document to Document ......... 167
Gambar 5.31 Grafik Rata-Rata Interpolasi Sub Sistem Query to Document ...... 170
Gambar 5.32 Grafik Rata-Rata Interpolasi Sub Sistem Document to Document 173
Gambar 5.33 Grafik Rata-Rata Precision Kedua Sub Sistem ............................. 175
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xxii
DAFTAR TABEL
Tabel 3.1 Analisa Kebutuhan ................................................................................ 28
Tabel 3.2 Narasi Use Case Login .......................................................................... 30
Tabel 3.3 Narasi Use Case Menambah Dokumen Pasal ....................................... 32
Tabel 3.4 Narasi Use Case Menambah Dokumen Kasus ..................................... 34
Tabel 3.5 Narasi Use Case Mencari Pasal (Query to Document) ......................... 36
Tabel 3.6 Narasi Use Case Mencari Kasus dan Pasal (Document to Document) . 38
Tabel 3.7 Narasi Use Case Melihat Isi Pasal ........................................................ 40
Tabel 3.8 Desain Tabel User ................................................................................. 68
Tabel 3.9 Desain Tabel Rootwords ....................................................................... 68
Tabel 3.10 Desain Tabel Stopwords ..................................................................... 69
Tabel 3.11 Desain Tabel Pasal .............................................................................. 69
Tabel 3.12 Desain Tabel Termpasal...................................................................... 70
Tabel 3.13 Desain Tabel Indeks_Pasal ................................................................. 70
Tabel 3.14 Desain Tabel Kasus ............................................................................. 71
Tabel 3.15 Desain Tabel Termkasus ..................................................................... 72
Tabel 3.16 Desain Tabel Indeks_Kasus ................................................................ 72
Tabel 3.17 Desain Tabel Kasus_Pasal .................................................................. 73
Tabel 3.18 Desain Tabel Kamus_Hukum ............................................................. 73
Tabel 3.19 Desain Tabel Hukum_Pasal ................................................................ 74
Tabel 5.1 Relevansi Uji Coba Pertama Query to Document ............................... 127
Tabel 5.2 Recall dan Precision Uji Coba Pertama Query to Document ............. 128
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xxiii
Tabel 5.3 Interpolasi Uji Coba Pertama Query to Document ............................. 128
Tabel 5.4 Relevansi Uji Coba Kedua Query to Document ................................. 132
Tabel 5.5 Recall dan Precision Uji Coba Kedua Query to Document ................ 133
Tabel 5.6 Interpolasi Uji Coba Kedua Query to Document ................................ 133
Tabel 5.7 Relevansi Uji Coba Ketiga Query to Document ................................. 136
Tabel 5.8 Recall dan Precision Uji Coba Ketiga Query to Document ............... 137
Tabel 5.9 Interpolasi Uji Coba Ketiga Query to Document ................................ 137
Tabel 5.10 Relevansi Uji Coba Keempat Query to Document ........................... 140
Tabel 5.11 Recall dan Precision Uji Coba Keempat Query to Document .......... 141
Tabel 5.12 Interpolasi Uji Coba Keempat Query to Document .......................... 141
Tabel 5.13 Relevansi Uji Coba Kelima Query to Document .............................. 146
Tabel 5.14 Recall dan Precision Uji Coba Kelima Query to Document ............ 146
Tabel 5.15 Interpolasi Uji Coba Kelima Query to Document ............................. 147
Tabel 5.16 Relevansi Uji Coba Pertama Document to Document ...................... 150
Tabel 5.17 Recall dan Precision Uji Coba Pertama Document to Document ..... 151
Tabel 5.18 Interpolasi Uji Coba Pertama Document to Document ..................... 152
Tabel 5.19 Relevansi Uji Coba Kedua Document to Document ......................... 154
Tabel 5.20 Recall dan Precision Uji Coba Kedua Document to Document ....... 155
Tabel 5.21 Interpolasi Uji Coba Kedua Document to Document........................ 155
Tabel 5.22 Relevansi Uji Coba Ketiga Document to Document ......................... 157
Tabel 5.23 Recall dan Precision Uji Coba Ketiga Document to Document ....... 158
Tabel 5.24 Interpolasi Uji Coba Ketiga Document to Document ....................... 159
Tabel 5.25 Precision Uji Coba Keempat Document to Document ..................... 161
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xxiv
Tabel 5.26 Recall dan Precision Uji Coba Keempat Document to Document ... 162
Tabel 5.27 Interpolasi Uji Coba Keempat Document to Document.................... 163
Tabel 5.28 Relevansi Uji Coba Kelima Document to Document........................ 165
Tabel 5.29 Recall dan Precision Uji Coba Kelima Document to Document ...... 166
Tabel 5.30 Interpolasi Uji Coba Kelima Document to Document ...................... 167
Tabel 5.31 Rata-Rata Precision dari Sub Sistem Query to Document ............... 168
Tabel 5.32 Rata-Rata Perhitungan Interpolasi Sub Sistem Query to Document. 169
Tabel 5.33 Rata-Rata Precision dari Sub Sistem Document to Document ......... 171
Tabel 5.34 Rata-Rata Perhitungan Interpolasi Sub Sistem Document to Document
..................................................................................................................... 172
Tabel 5.35 Rata-Rata Precision Kedua Sub Sistem ............................................ 174
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xxv
DAFTAR KODE PROGRAM
Kode Program 4.1 Implementasi Pembuatan Tabel User ..................................... 86
Kode Program 4.2 Implementasi Pembuatan Tabel Rootwords ........................... 87
Kode Program 4.3 Implementasi Pembuatan Tabel Stopwords............................ 87
Kode Program 4.4 Implementasi Pembuatan Tabel Soptwords_hukum .............. 87
Kode Program 4.5 Implementasi Pembuatan Tabel Pasal .................................... 88
Kode Program 4.6 Implementasi Pembuatan Tabel Termpasal ............................ 88
Kode Program 4.7 Implementasi Pembuatan Tabel Indeks_Pasal........................ 89
Kode Program 4.8 Implementasi Pembuatan Tabel Kasus ................................... 89
Kode Program 4.9 Implementasi Pembuatan Tabel Termkasus ........................... 90
Kode Program 4.10 Implementasi Pembuatan Tabel Indeks_kasus ..................... 90
Kode Program 4.11 Implementasi Pembuatan Tabel Kasus_Pasal ...................... 91
Kode Program 4.12 Implementasi Pembuatan Tabel Kamus_Hukum ................. 91
Kode Program 4.13 Implementasi Pembuatan Tabel Hukum_pasal .................... 92
Kode Program 4.14 Implementasi Tokenization ................................................... 92
Kode Program 4.15 Implementasi Stopwords ....................................................... 93
Kode Program 4.16 Implementasi Stemming ........................................................ 98
Kode Program 4.17 Implementasi Pengambilan Term ......................................... 99
Kode Program 4.18 Implementasi Perhitungan TF_ij ........................................ 101
Kode Program 4.19 Implementasi Perhitungan DF_j dan NIDF_j ..................... 101
Kode Program 4.20 Implementasi Perhitungan W_ij ......................................... 102
Kode Program 4.21 Implementasi Pembangunan Inverted Index Pasal ............. 103
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xxvi
Kode Program 4.22 Implementatsi Pengambilan List Indeks_Pasal .................. 104
Kode Program 4.23 Implementasi Pencarian Term_Pasal .................................. 104
Kode Program 4.24 Implementasi Pengindeksan ............................................... 105
Kode Program 4.25 Implementasi Pengurutan Posting List ............................... 105
Kode Program 4.26 Implementasi Cetak Inverted Index .................................... 106
Kode Program 4.27 Implementasi Pencarian Bobot W_ij .................................. 107
Kode Program 4.28 Implementasi Pengurutan Dokumen Pasal Berdasarkan W_ij
..................................................................................................................... 111
Kode Program 4.29 Implementasi Intersection .................................................. 111
Kode Program 4.30 Implementasi Pengurutan List secara Descending ............. 112
Kode Program 4.31 Implementasi Pencarian Dokumen Pasal di Basis Data ..... 112
Kode Program 4.32 Implementasi Pembangunan Inverted Index Kasus ............ 113
Kode Program 4.33 Implementasi Membaca Dokumen sebagai Kata Kunci ..... 113
Kode Program 4.34 Implementasi Pengambilan Term sesuai Kamus Hukum ... 114
Kode Program 4.35 Implementasi Pengambilan W_ij pada Pencarian Kasus.... 115
Kode Program 4.36 Implementasi Penghilang Duplikasi ................................... 116
Kode Program 4.37 Implementasi Pencarian Dokumen Kasus Pada Tabel Kasus
..................................................................................................................... 117
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
1. PENDAHULUAN
1.1. Latar Belakang Masalah
Hukum menurut Aristoteles (1963) merupakan sumber dari kekuasaan,
dimana negara membutuhkan hukum untuk mengatur nafsu dan keinginan jahat
manusia. Hukum merupakan kecerdasan yang paling cerdas, bahkan bisa dalam
tingkat dewa atau lebih tinggi daripada pemimpin karena seorang pemimpin akan
mengambil suatu keputusan berdasarkan undang-undang yang berlaku (Rapar,
2002). Ada pula yang mengatakan bahwa hukum merupakan “himpunan
petunjuk-petunjuk hidup tata tertib suatu masyarakat dan seharusnya ditaati oleh
anggota masyarakat yang bersangkutan” (Utrecht, 1953).
Sumber hukum dari Negara Indonesia itu sendiri terdapat pada Undang-
Undang Dasar 1945 yang merupakan hukum dasar tertulis yang mengatur masalah
kenegaraan dan merupakan dasar ketentuan-ketentuan lainnya yang harus ditaati.
Tetapi pada kenyataanya sampai saat ini masih banyak kasus pelanggaran hukum
yang terjadi baik di dalam rumah tangga, masyarakat, dan sebagainya. Misalnya
saja dalam lingkup rumah tangga, yaitu pembatasan hak-hak anak, kekerasan
dalam rumah tangga, atau dalam lingkup masyarakat, yaitu korupsi, pencemaran
nama baik dan lain-lain.
Dengan semakin banyak kasus pelanggaran tersebut, sehingga membuat
para pihak yang berwenang (seperti advokat) yang membantu penggugat maupun
tergugat merasa kesulitan karena harus mencari pasal pada kitab undang-undang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Hal tersebut akan memerlukan waktu yang lama. Oleh sebab itu, dibutuhkannya
suatu sistem yang dapat membantu pihak-pihak berwenang dalam memperoleh
informasi pasal-pasal secara cepat dan tepat. Sistem yang akan digunakan ini
memerlukan konsep Pemerolehan Informasi (Information Retrieval), yaitu
aktivitas mendapatkan sumber informasi yang relevan untuk kebutuhan informasi
dari suatu koleksi sumber informasi.
Sistem pemerolehan informasi ini akan melakukan pencarian pasal pada
undang-undang (1946-2014) berupa dokumen (.txt) yang tersimpan di basis data.
Sistem ini akan menggunakan struktur data inverted index untuk mempercepat
proses pencarian serta metode pembobotan TF-IDF untuk menemukan dokumen
yang relevan dengan kasus pelanggaran. Kata kunci yang dimasukan tidak hanya
berupa query melainkan juga berupa dokumen kasus (.txt). Selanjutnya, untuk
membuat pemerolehan informasi ini menjadi efisien, diperlukan pula metode
untuk mencari kata dasar dari term, yaitu stemming yang dibuat oleh Bobby
Nazief dan Mirna Adriani, dan metode untuk menghilangkan term yang tidak
terlalu penting, yaitu eliminasi stopwords. Kemudian setelah dilakukan proses
pencarian, akan dilakukan evaluasi menggunakan metode recall dan precision
untuk mengetahui keefektifan sistem dalam memperoleh undang-undang yang
relevan.
1.2. Rumusan Masalah
1. Bagaimana cara menerapkan konsep pemerolehan informasi pada sub sistem
query to document dan document to document ?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
2. Apakah penggunaan metode pembobotan TF-IDF ini efektif pada sub sistem
query to document dan document to document dalam memperoleh pasal-
pasal yang relevan terhadap kasus pelanggaran hukum ?
1.3. Tujuan
1. Untuk menerapkan konsep pemerolehan informasi pada sub sistem query to
document dan document to document.
2. Untuk mengetahui keefektifan dari metode pembobotan TF-IDF pada sub
sistem query to document dan document to document dalam memperoleh
pasal-pasal yang relevan terhadap kasus pelanggaran hukum.
1.4. Batasan Masalah
Batasan Masalah tugas akhir ini adalah :
1. Diasumsikan kata kunci dari pengguna adalah benar.
2. Sumber informasi : Undang-Undang tahun 1945-2014 dan dokumen kasus.
1.5. Sistematika Penulisan
BAB I : PENDAHULUAN
Bab ini berisi pendahuluan yang terdiri dari latar belakang
masalah, rumusan masalah, tujuan, batasan masalah, dan
metodologi penelitian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
BAB II : TINJAUAN PUSTAKA
Bab ini berisi konsep dasar dari pembobotan TF-IDF, struktur
data inverted index, algoritma stemming, eliminasi stopwords, dan
metode evaluasi recall precision.
BAB III : ANALISIS DAN PERANCANGAN
Bab ini berisi analisis kebutuhan sistem, dan rancangan database
serta tampilan (interface) dari sistem.
BAB IV : IMPLEMENTASI
Bab ini berisi penjelasan dan fungsi dari program pencarian.
BAB V : ANALISIS HASIL
Bab ini berisi analisi hasil pengujian berupa kelebihan dan
kekurangan dari sistem pencarian.
BAB VI : KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran dari pembuatan sistem
pencarian pasal-pasal yang relevan terhadap kasus pelanggaran
hukum.
DAFTAR PUSTAKA
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB II
2. TINJAUAN PUSTAKA
2.1. Konsep Pemerolehan Informasi (Information Retrieval)
Pemerolehan Informasi merupakan proses yang terlibat dalam
representation, storage, pencarian, dan mendapatkan informasi yang relevan
untuk kebutuhan informasi yang diperlukan oleh pengguna (Ingwersen, 1992,
2002). Tipe dari informasi tersebut dapat berupa dokumen, halaman web, online
catalogs, structured records, dan objek multimedia. Tujuan awal dari
pemerolehan informasi ini adalah indexing text dan pencarian yang berguna pada
suatu koleksi. Sekarang ini pemerolehan informasi telah melibatkan pemodelan,
pencarian web, visualisasi data, penyaringan dan bahasa dalam memperoleh
informasi yang relevan (Baeza-Yates, 1999). Proses pemerolehan informasi
disajikan pada gambar 2.1. :
Gambar 2.1 Proses Pemerolehan Informasi (Baeza-Yates, 1999)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
Dari gambar 2.1 tersebut, terdapat 5 langkah utama dalam proses
pemerolehan informasi. Tahap pertama yaitu operasi teks (text operations)
contohnya proses eliminasi stopwords (penghilangan kata umum), proses
stemming (pencarian kata dasar), dan sebagainya. Tahap kedua yaitu query
operations contohnya penggunaan operator AND, OR, dan NOT pada query.
Tahap ketiga yaitu pengindeksan (indexing) untuk mempercepat proses pencarian
dimana term diindeksan dengan id document. Tahap keempat yaitu pencarian
(searching) yang dilakukan pada inverted file yang sudah dibangun. Tahap kelima
yaitu pembobotan (ranking) terhadap dokumen yang diperoleh dari proses
pencarian.
2.1.1. Logical View dari Dokumen
Dalam kaitannya dengan historikal, dokumen-dokumen pada suatu koleksi
tertentu sering digambarkan secara langsung melalui kumpulan index terms atau
kata kunci (keywords). Kata kunci tersebut dapat diekstraksi langsung dari teks
pada dokumen atau dibuat manual (dispesifikasikan) oleh manusia. Kata kunci
atau index terms ini menyediakan logical view dari dokumen.
Komputer yang sudah modern dapat menggambarkan suatu dokumen
beserta seluruh teks yang terdapat di dalamnya. Pada kasus tersebut, sistem
pemerolehan telah menggunakan full text logical view dari dokumen-dokumen.
Tetapi dengan banyaknya koleksi, komputer modern pun juga harus mengurangi
kumpulan kata kunci yang ada. Hal ini dapat dilakukan dengan melakukan
eliminasi stopwords dan stemming. Operasi tersebut dinamakan dengan text
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
operation, yang merupakan pengurangan kompleksitas dari representasi dokumen
serta pemindahan logical view dari full text ke sekumpulan index terms. (Baeza-
Yates, 1999). Pada gambar 2.2 berikut ini merupakan gambaran logical view :
Gambar 2.2 Logical View dari Dokumen (Baeza-Yates, 1999)
2.1.1.1. Stopwords
Kata-kata yang terlalu sering muncul diantara dokumen-dokumen pada
sebuah koleksi, bukanlah merupakan discriminator yang baik. Faktanya, sebuah
kata yang terdapat dalam 80% dokumen-dokumen pada suatu koleksi, tidaklah
berguna untuk suatu pemerolehan. Kata-kata tersebut inilah yang dinamakan
sebagai stopwords (Baeza-Yates,1999). Stopwords perlu dieliminasi untuk
mengurangi waktu eksekusi query dengan cara menghindari proses list yang
panjang (Büttcher-Clarke-Cormack, 2010), sehingga text processing akan berhenti
ketika menemukan stopword, dan membuangnya. Pembuangan stopword ini akan
mengurangi ukuran indeks, meningkatkan efesiensi dan keefektifan dari
pemerolehan (Croft-Metzler-Strohman, 2010).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Contoh stopwords dalam Bahasa Inggris yaitu “the”, “a”, “an”, “that”,
“those”. Contoh stopwords dalam Bahasa Indonesia yaitu kata ganti orang
(“mereka”, “dia”, “beliau”, “kami”), kata penghubung (“lalu”, “padahal”,
“namun”). Namun, penentuan stopwords itu sendiri berdasarkan frekuensi kata-
kata dari suatu koleksi dokumen tertentu.
2.1.1.2. Stemming
Konsep dari stemming adalah menghapus variasi kata untuk mendapatkan
kata dasar sebagai term pembeda, yang mengacu pada morfologi kata. Pada
umumnya kata dasar Bahasa Indonesia terdiri dari kombinasi berikut ini (Agusta,
2009) :
Perfiks 1 + Perfiks 2 + kata dasar + Sufiks 3 + Sufiks 2 + Sufiks 1 ..... (2.1)
Berikut ini merupakan algoritma dari Stemming yang dibuat oleh Bobby Nazief
dan Mirna Adriani (1996) :
1. Pertama cari kata yang akan di-stem dalam kamus kata dasar. Jika ditemukan
maka diasumsikan kata tersebut 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
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.
b. Akhiran yang dihapus (-i, -an, atau –kan) akan dikembalikan dan 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 maka :
- 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 Recording.
6. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal
diasumsikan sebagai root word. Proses selesai.
Untuk aturan di atas, ditambahkan pula aturan-aturan berikut ini :
1. Aturan untuk reduplikasi
a. 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”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
b. Kata lain, misalnya “bolak-balik”, “berbalas-balasan”, “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.
a. Untuk tipe awalan “mem-”, kata yang diawali dengan awalan “memp-”
memiliki tipe awalan “mem-”.
b. Tipe awalan “meng-”, kata yang diawali dengan awalan “mengk-”
memiliki tipe awalan “meng-”
2.1.1.3. Tokenization
Tokenization merupakan proses dari pengenalan/pembentukan kata-kata dari
serangkaian karakter pada suatu dokumen (Croft-Metzler-Strohman, 2010). Proses
ini juga menyertakan pengasingan kata satu sama lain (word segmentation) dan
dari tanda baca (Goker-Davies, 2009).
Ketika kita membaca sebuah kalimat, biasanya pikiran kita memecahkan
atau menguraikan kalimat tersebut menjadi kata-kata individu dan tanda baca,
yang masing-masing menyampaikan arti untuk kita. Compiler juga melakukan
tokenization dengan menguraikan kalimat menjadi bagian individu seperti
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
keyword, identifier, operator, dan elemen lain dari suatu bahasa pemrograman.
Token dipisahkan dari satu sama lain dengan pembatas (whitespace seperti space,
tab, newline). Karakter lain juga bisa digunakan sebagai pembatas (Deitel, 2004).
Berikut ini pada gambar 2.3. merupakan contoh dari proses tokenization :
Gambar 2.3 Contoh Proses Tokenization (Deitel, 2004)
Pada gambar 2.3 terdapat kalimat yang terdiri dari 7 kata yaitu “This is a
sentence with seven tokens.” Dengan menggunakan proses tokenization sistem
tersebut dapat menguraikan kalimat tersebut menjadi per kata.
2.1.2. Inverted Index
Ada beberapa struktur data yang diterapkan dalam konsep pemerolehan
informasi yaitu digital tree hibrida, inverted index, struktur data utama dll. Pada
Sistem Pemerolehan Undang-Undang dan Kasus ini penulis memilih struktur data
inverted index.
Inverted index atau inverted file merupakan struktur data pokok yang
terdapat di sistem pemerolehan informasi (Büttcher-Clarke-Cormack, 2010).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
Inverted index digunakan untuk mempercepat proses pencarian terms pada koleksi
dokumen (Grossman-Frieder, 2004). Inverted index memiliki dua komponen
pokok yaitu dictionary dan postings lists. Untuk setiap term dalam koleksi,
terdapat posting list yang mengandung informasi mengenai term’s occurences di
koleksi. Informasi yang ditemukan oleh posting list akan digunakan oleh sistem
untuk memproses query pencarian (Büttcher-Clarke-Cormack, 2010).
2.1.2.1. Membangun Inverted Index
Tujuan dari membangun inverted index ini adalah untuk memperoleh
kecepatan dalam pengindeksan saat melakukan pemerolehan (retrieval). Langkah
utama dalam membangun inverted index (Manning, 2008) yaitu :
1. Kumpulkan dokumen-dokumen untuk diindekskan :
2. Lakukan proses tokenization pada text, kemudian kembalikan setiap dokumen
ke dalam list :
3. Lakukan proses berdasarkan ilmu bahasa, kemudian menghasilkan suatu list
dari tokens yang sudah ternormalisasi, yang mengindekskan istilah-istilah :
4. Lakukan pengindeksan terhadap dokumen-dokumen yang mengandung
istilah-istilah tersebut dengan membuat inverted index yang terdiri dari
dictionary dan postings yang direpresentasikan pada gambar 2.4. berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Gambar 2.4 Inverted Index (Manning, 2008)
Pada gambar 2.5 berikut ini merupakan gambaran secara keseluruhan dari proses
membangun inverted index (Manning, 2008). :
Gambar 2.5 Membangun Inverted Index (Manning, 2008)
Pada sisi kiri di gambar 2.5 terdapat serangkaian istilah-istilah yang
disimpan dalam kolom “term” yang diurutkan berdasarkan abjad, sedangkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
kolom “docID” menyimpan dokumen yang mengandung istilah (term) tersebut.
Kemudian kumpulan istilah yang ada di kolom “term” dan “docID” tersebut akan
dipisahkan ke dalam “term”, dan “document frequency” seperti yang digambarkan
pada gambar 2.5 sisi kanan. Term dan document frequency tersebut akan disimpan
di dictionary.
Dictionary berfungsi untuk menyimpan istilah-istilah dan mempunyai
pointer untuk menuju ke posting list pada setiap istilah. Informasi (term dan
document frequency) yang terdapat dalam dictionary dapat digunakan untuk
meningkatkan efisiensi waktu query dan melakukan pembobotan pada model
ranked retrieval.
Sedangkan posting list berfungsi untuk menyimpan list dari dokumen yang
mengandung suatu istilah tertentu. Selain itu, posting list juga dapat menyimpan
informasi lain seperti frekuensi istilah atau posisi istilah atau posisi istilah dalam
setiap dokumen (Manning, 2008).
2.1.2.2. Boolean Query pada Inverted Index
Pada system pemerolehan informasi undang-undang ini menggunakan
Boolean Query yang terdapat di inverted index yang berupa basic queries joined
seperti AND dan OR. Berikut ini pada gambar 2.6 merupakan representasi dari
Boolean Query dari klausa AND :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 2.6 Representasi Boolean Query (Manning, 2008)
Pada gambar 2.6 terdapat query = “Brutus AND Calpurnia” (Manning,
2008), maka langkah dari proses pencarian di inverted index yaitu :
1. Cari Brutus pada kamus (dictionary).
2. Dapatkan posting list milik Brutus.
3. Cari Calpurnia pada kamus (dictionary).
4. Dapatkan posting list milik Calpurnia.
5. Lakukan pemotongan (intersection) pada kedua posting list tersebut.
Operasi pemotongan ini sangat penting agar dapat menemukan dokumen
yang mengandung istilah dari keduanya (Brutus dan Calpurnia) dengan cepat
yang direpresentasikan pada gambar 2.7. :
Gambar 2.7 Pemotongan (Intersection) Posting List (Manning, 2008)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Berikut ini merupakan algoritma untuk pemotongan kedua posting lists di
atas menurut Manning (2008) :
INTERSECT(p1, p2)
1. answer ← ﴾ ﴿
2. while p1 ≠ NIL and p2 ≠ NIL
3. do if docID(p1) = docID(p2)
4. then ADD(answer, docID(p1))
5. p1 ← next(p1)
6. p2 ← next(p2)
7. else if docID(p1) < docID(p2)
8. then p1 ← next(p1)
9. else p2 ← next(p2)
10. return answer
Kemudian, di bawah ini pada gambar 2.8 merupakan contoh dokumen untuk
operator OR :
Gambar 2.8 Contoh Dokumen (Nejmeh-Dickey-Wartik, 1989)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Dari contoh dokumen tersebut, terdapat query = "information or
retrieval" dengan menggunakan contoh dokumen pada Gambar2.8., maka
hasilnya adalah :
{doc1, doc3} {doc1, doc2, doc4} = {doc1, doc2, doc3, doc4}
Jadi semua dokumen yang mengandung kata “information” atau “retrieval”
akan ditampilkan, yaitu doc1,doc2,doc3, dan doc4, sedangkan doc5 tidak
ditampilkan karena tidak mengandung salah satu kata dari query tersebut.
Operator AND akan diimplementasikan pada kasus query to document,
dimana input dari pengguna merupakan kata kunci. Sedangkan operator OR
diimplementasikan pada kasus document to document, dimana input dari
pengguna merupakan dokumen kasus.
2.1.3. Metode Pembobotan TF-IDF
TF-IDF atau Term Frequency (TF) dan Inverse Document Frequency (IDF)
merupakan dasar dari skema pembobotan istilah yang paling populer di
pemerolehan informasi (Baeza-Yates, 1999). Teknik pembobotan TF-IDF
menurut Savoy (1993):
Wij = ntfij * nidfj ..…. (2.2)
dimana : ntfij=tfij
Max tfi dan nidfj =
log (m
dfj)
log(m) ..…. (2.3)
Keterangan :
Wij adalah bobot istilah Tj pada dokumen Di.
tfij merupakan frekuensi dari istilah Tj dalam dokumen Di.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
m adalah jumlah dokumen Di pada kumpulan dokumen.
dfj adalah jumlah dokumen yang mengandung istilah Tj.
idfj adalah kebalikan dari frekuensi dokumen (inverse document frequency)
Max tfi adalah frekuensi istilah terbesar pada satu dokumen
Pada teknik pembobotan TF-IDF ini, bobot istilah telah dinormalisasi,
sehingga tidak perlu melakukan tahap normalisasi lagi. Penentuan bobot dari
suatu istilah tidak hanya berdasarkan frekuensi kemunculan istilah pada satu
dokumen, tetapi juga perlu memperhatikan frekuensi terbesar pada suatu istilah
yang dimiliki oleh dokumen bersangkutan. Hal ini untuk menentukan posisi relatif
bobot dari istilah dibanding dengan istilah-istilah lain di dokumen yang sama.
Selain itu teknik pembobotan ini juga memperhitungkan jumlah dokumen. Hal ini
berguna untuk mengetahui posisi relatif bobot istilah bersangkutan pada suatu
dokumen dibandingkan dengan dokumen-dokumen lain yang memiliki istilah
yang sama. Sehingga jika sebuah istilah mempunyai frekuensi kemunculan yang
sama pada dua dokumen belum tentu mempunyai bobot yang sama (Hasibuan,
2001).
2.2. Evaluasi Pemerolehan
Pada dasarnya ada dua pengukuran umum yang efektif, yaitu recall dan
precision untuk membandingkan hasil pencarian. Recall digunakan untuk
mengukur seberapa baik suatu sistem melakukan pencarian terhadap dokumen-
dokumen yang relevan pada suatu query, sebaliknya precision digunakan untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
mengukur seberapa baik sistem tersebut menolak atau mengeliminasi dokumen-
dokumen yang tidak relevan (Croft-Metzler-Strohman, 2010).
𝑅𝑒𝑐𝑎𝑙𝑙 =jumlah dokumen relevan yang diperoleh
jumlah seluruh dokumen relevan .… (2.4)
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =jumlah dokumen relevan yang diperoleh
jumlah dokumen yang diperoleh ..... (2.5)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
BAB III
3. ANALISIS DAN PERANCANGAN
3.1. Gambaran Umum Sistem
Sistem yang dirancang ini terdiri dari dua sub sistem berbeda, yaitu
pencarian query to document dan pencarian document to document. Sub sistem
pencarian query to document berfungsi untuk mencari pasal-pasal yang terkait
dengan kasus pelanggaran hukum, dimana input berupa query. Sedangkan sub
sistem pencarian document to document berfungsi untuk mencari pasal dan kasus-
kasus yang mirip dengan kasus yang baru terjadi, dimana input berupa dokumen
kasus berekstensi .txt.
Aktor yang terlibat pada sistem ini adalah pengguna dan administrator.
Pengguna merupakan aktor yang melakukan pencarian pada sistem ini, sedangkan
administrator merupakan aktor yang mempunyai hak akses untuk menambahkan
dokumen-dokumen pasal dan kasus ke dalam basis data. Kumpulan dokumen
yang digunakan dalam sistem ini yaitu Undang-Undang (1945-2014), dan contoh
kasus-kasus yang telah diselesaikan sebelumnya. Kedua jenis dokumen tersebut
disimpan dalam file berekstensi .txt, dimana untuk dokumen undang-undang harus
dipecah menjadi satuan pasal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Pada gambar 3.1. berikut ini merupakan gambaran dari sub sistem pencarian
query to document :
Pengguna Administrator
Basis Data Hukum
Memasukan kata kunci
berupa query
Operasi teks
tokenization
Operasi teks
stopwords
Operasi teks
stemming
Operasi AND
Membangun
Inverted index
Penjumlahan Wij :
ntfij * nidfj
Simpan isi tentang
ke tabel Kamus_Hukum Memasukan dok pasal (.txt)
Simpan id_pasal, tentang, dok_pasal, status
ke tabel Pasal
Memanggil dok pasal
Berstatus 0
Operasi teks
tokenization
Operasi teks
stopwords
Operasi teks
stemming
Perhitungan df_j, nidf_j
Simpan id_term, term, df_j, nidf_j
ke tabel Term_Pasal
Perhitungan tf_ij, w_ij, ntf_ij
Simpan
ke tabel Indeks_Pasal
Term_Pasal
Indeks_Pasal
rootwords
stopwords
rootwords
stopwords
indeks
Dokumen pasal
Gambar 3.1 Sub Sistem Pencarian Query to Document
Pada sub sistem pencarian query ke dokumen ini, pengguna memasukan
query (contoh: kekerasan pada anak), kemudian sistem akan melakukan tahap
operasi teks atau text operations yaitu tokenization, stopwords, dan stemming.
Pada tahap ini, terlebih dahulu sistem akan melakukan proses tokenization,
dimana sistem akan melakukan pemisahan pada query menjadi kata/istilah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Kemudian, sistem akan melakukan eliminasi stopwords untuk
menyaring/membuang kata yang sering muncul pada kumpulan dokumen.
Selanjutnya, sistem melakukan proses stemming untuk mencari kata dasar (root
word) dari suatu istilah dengan menggunakan algoritma Nazief dan Adriani pada
teks Bahasa Indonesia (Augusta, 2009).
Tahap selanjutnya adalah operasi query dengan menggunakan operator
AND. Sistem akan mencari kata kunci di struktur data inverted index pasal yang
telah dibangun. Setelah itu, hasil dari pencarian tersebut akan dibobotkan
berdasarkan tingkat kesesuaian query terhadap pasal yang tersimpan di tabel
Indeks_Pasal untuk mendapatkan hasil yang paling relevan dengan menggunakan
pembobotan TF-IDF menurut Savoy.
Kemudian, untuk proses penambahan data pasal ke koleksi dokumen, pihak
administrator memasukan pasal baru ke dalam sistem beserta informasi yang
diperlukannya (tahun, nomor, pasal dan tentang). Selanjutnya sistem akan
menyimpan informasi tersebut beserta dokumen pasal berekstensi .txt di tabel
pasal. Dokumen yang telah tersimpan di tabel pasal akan dipanggil lagi untuk
disaring menggunakan operasi teks (tokenization, stopwords, dan stemming).
Term yang dihasilkan dari proses operasi teks tersebut akan disimpan ke tabel
Term_Pasal. Kemudian sistem akan melakukan pembobotan dengan cara
menghitung dan menyimpan tf_ij, ntf_ij, dan w_ij ke tabel indeks_pasal serta df_j
dan nidf_j ke tabel Term_Pasal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Selanjutnya, pada gambar 3.2. berikut ini ini merupakan gambaran dari sub
sistem pencarian document to document :
Pengguna Administrator
Basis Data Hukum
Memasukan kata kunci
berupa dokumen kasus
Operasi teks
Pengambilan kata
Sesuai dengan isi tentang
Yang berada dit abel Kamus_Hukum
Operasi OR
Penjumlahan Wij :
ntfij * nidfj
Membangun
Inverted index
Memasukan
dok kasus (.txt)
Simpan id_kasus, judul, dok_kasus, status
ke tabel Kasus
Memanggil dok kasus
Berstatus 0
Perhitungan df_j, nidf_j
Perhitungan ntf_ij, w_ij
Simpan id_term, term, df_j, nidf_j
ke tabel Term_Kasus
Simpan tf_ij, ntf_ij, w_ij, id_term, id_kasus
ke tabel Indeks_Kasus
Operasi teks
Pengambilan kata
Sesuai dengan isi tentang
Yang berada di tabel Kamus_Hukum
Term_Kasus
Indeks_Kasus
Kamus_Hukum
Kamus_Hukum
Dokumen kasus dan pasal
Gambar 3.2 Sub Sistem Pencarian Document to Document
Pada sub sistem pencarian dokumen ke dokumen ini, pengguna memasukan
dokumen kasus ke dalam sistem. Kemudian sistem akan melakukan tahap operasi
teks atau text operations yaitu dengan melakukan proses penyaringan istilah
menggunakan tabel Kamus_Hukum yang berisi istilah-istilah dari tentang pada
setiap undang-undang. Pada tahap ini, sistem melakukan operasi teks yang
berbeda dari sub sistem pertama (query to document), yaitu dengan melakukan
pengambilan term yang sesuai dengan kamus_hukum. Hal ini bertujuan dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
pencocokan kamus hukum yang diambil dari isi tentang pada setiap undang-
undang untuk mempercepat proses pencarian tanpa harus membandingkan dengan
keseluruhan istilah yang ada di dokumen kasus.
Tahap selanjutnya adalah operasi query dengan menggunakan operator OR.
Sistem akan membandingkan dokumen kasus yang ada di struktur data inverted
index kasus yang telah dibangun. Setelah itu, hasil dari pencarian tersebut akan
dibobotkan berdasarkan tingkat kesesuaian dari tabel Indeks_Kasus untuk
mendapatkan hasil yang paling relevan dengan menggunakan pembobotan TF-
IDF menurut Savoy.
Kemudian, untuk proses penambahan data kasus ke koleksi dokumen, pihak
administrator memasukan dokumen-dokumen kasus baru ke dalam sistem beserta
informasi yang diperlukannya, yaitu judul dan pasal yang bersangkutan.
Selanjutnya sistem akan menyimpan informasi beserta dokumen kasus yang
berekstensi .txt tersebut ke tabel Kasus. Dokumen yang telah tersimpan di tabel
Kasus akan disaring oleh sistem menggunakan operasi teks berdasarkan term di
Kamus_Hukum. Istilah dari hasil penyaringan tersebut akan disimpan ke tabel
Term_Kasus. Kemudian sistem akan menghitung dan menyimpan tf_ij, ntf_ij,
dan w_ij ke tabel indeks_kasus serta df_j dan nidf_j ke tabel Term_Kasus.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
3.1.1. Perancangan Struktur Data Inverted Index
Pada gambar 3.3 berikut ini merupakan model dari struktur data inverted
index yang dibangun :
t
t
t
doc doc doc
doc doc
doc
id dok.
Dictionary /
termListPosting list
Linked list
HashMap
doc doc doc
iterator
List Iterator
Document
Term
Term
Term
Document
Document Document
Document Document
Document Document Document
Gambar 3.3 Model Struktur Data Inverted Index
Pada gambar 3.3 tersebut terdapat 2 komponen utama, yaitu dictionary yang
disimpan pada termList untuk menampung term dan postingList menampung
informasi term yaitu id dokumen. TermList dan postingList tersebut merupakan
objek yang bertipe LinkedListOrderedUnique<Term>. Hash Map digunakan
untuk memetakan term. LinkedList digunakan untuk menghubungkan antar id
dokumen. Sedangkan untuk menghubungkan masing-masing term dan postingList
dengan menggunakan iterator yang disimpan pada iteratorList (kelas bawaan
Java).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
3.1.2. Contoh Data yang Digunakan
Pada gambar 3.4 berikut ini merupakan contoh dokumen undang-undang
yang digunakan sebagai data dari Sistem Pemerolehan Informasi Undang-Undang
dan Kasus :
Gambar 3.4 Contoh Dokumen Undang-Undang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Pada gambar 3.4 tersebut, isi dari tentang yaitu “Perlindungan Konsumen”
disimpan per kata ke dalam tabel Kamus_Hukum yang digunakan untuk proses
pencarian sub sistem document to document. Kemudian isi dari pasal yaitu
“Dalam Undang-Undang ini yang dimaksud dengan : 1. Perlindungan…..”
disimpan per pasal ke dalam table Pasal sebagai koleksi dokumen pasal yang
digunakan untuk proses pencarian sub sistem query to document. Jumlah
dokumen pasal yang digunakan sebagai data di sub sistem query to document
yaitu 1942 dokumen (.txt) yang disimpan di tabel Pasal, terdiri dari 2713 terms
yang disimpan di tabel Term_Pasal. Sedangkan contoh dokumen kasus disajikan
pada gambar 3.5 berikut ini :
Gambar 3.5 Contoh Dokumen Kasus
Pada gambar 3.5 tersebut, informasi kasus yang disimpan pada basis data
yaitu judul kasus (di paling atas), pasal-pasal yang terkait (Pasal 45, Pasal 28 UU
No. 11 Tahun 2008), dan file dokumen berekstensi .txt itu sendiri. Jumlah
dokumen-dokumen kasus yang digunakan sebagai data pada sub sistem document
to document yaitu 100 dokumen (.txt) yang tersimpan pada tabel Kasus, terdiri
dari 54 terms yang tersimpan pada tabel Term_Kasus. Dokumen-dokumen
tersebut berasal dari artikel-artikel kasus di www.hukumonline.com.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
3.2. Analisa Kebutuhan
Kebutuhan yang dibutuhkan oleh pengguna Sistem Pemerolehan Informasi
Undang-Undang dan Kasus ini adalah sebagai berikut :
Tabel 3.1 Analisa Kebutuhan
Pengguna
Sistem
Kebutuhan
Administrator 1. Dapat melakukan login sebagai administrator.
2. Dapat melakukan penambahan data dokumen pasal dan
kasus.
Pengguna 1. Dapat melakukan pencarian pasal berdasarkan query
2. Dapat melakukan pencarian kasus dan pasal berdasarkan
dokumen kasus pelanggaran hukum.
3. Dapat melihat isi dari pasal-pasal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
3.4. Perancangan Sistem
3.4.1. Diagram Use Case
Diagram use case berfungsi untuk memperjelas kebutuhan-kebutuhan dari
pengguna sistem (administrator dan pengguna). Administrator dapat
menambahkan dokumen baru ke basis data. Sedangkan pengguna dapat
melakukan pencarian pasal dan kasus serta melihat isi dari masing-masing pasal
pada undang-undang tahun 1945-2014. Pada gambar 3.6 berikut ini merupakan
diagram use case :
Administrator
Pengguna
Menambah dokumen
pasal
Mencari pasal (query to document)
Login
Logout
Otorisasi Tambah Dokumen
Pencarian
<<depends on>>
Menambah dokumen
kasus
<<depends on>>
Mencari kasus dan pasal
(document to document)
Lihat Pasal
Melihat isi pasal
Gambar 3.6 Diagram Use Case
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3.4.2. Narasi Use Case
3.4.2.1. Login
Pada tabel 3.2 berikut ini merupakan langkah-langkah saat administrator
melakukan login :
Tabel 3.2 Narasi Use Case Login
Nama Use Case Login Tipe Use Case
Nomor Use Case XXX001
Prioritas Tinggi Persyaratan Bisnis
Sumber -
Aktor Utama Administrator
Keterlibatan Aktor Lain -
Deskripsi Administrator harus melakukan login terlebih dahulu
untuk dapat menambah dokumen.
Kondisi Awal Form Utama
Kondisi Akhir Masuk ke Form Tambah Dokumen.
Typical Course of Events Tindakan Aktor Tanggapan Sistem
Langkah 1 :
Klik menu Administrator
pada pojok kiri bawah
Langkah 2 :
Menampilkan Form Login
Langkah 3 :
Memasukan username
dan password
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Langkah 4:
Klik tombol Masuk
Langkah 5 :
Mengecek username dan
password di tabel User.
Langkah 6 :
Menampilkan Form Tambah
Dokumen.
Cara Alternatif :
Alternatif Langkah 6 :
Jika username salah
dan/atau password salah
akan muncul pesan
peringatan dan kembali ke
Langkah 3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
3.4.2.2. Menambah Dokumen Pasal
Pada tabel 3.3 berikut ini merupakan langkah-langkah saat administrator
menambah dokumen pasal :
Tabel 3.3 Narasi Use Case Menambah Dokumen Pasal
Nama Use Case Menambah Dokumen Pasal Tipe Use Case
Nomor Use Case XXX002
Prioritas Tinggi Persyaratan Bisnis
Sumber -
Aktor Utama Administrator
Keterlibatan Aktor Lain -
Deskripsi Administrator dapat menambah dokumen Pasal ke tabel
Pasal.
Kondisi Awal Form Tambah Dokumen.
Kondisi Akhir Dokumen Pasal baru dapat dimasukan ke tabel Pasal.
Typical Course of Events Tindakan Aktor Tanggapan Sistem
Langkah 1 :
Memilih tab Undang-
Undang
Langkah 2 :
Memilih tahun, nomor,
dan pasal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Langkah 3 :
Masukan tentang.
Langkah 4 :
Browse dokumen di folder
komputer untuk disimpan
ke tabel Pasal.
Langkah 5 :
Klik tombol Simpan
Langkah 6 :
Insert data ke tabel
Hukum_pasal jika UU
tersebut belum terdaftar.
Langkah 7 :
Insert data ke
Kamus_Hukum jika isi
tentang dari UU tersebut
belum terdaftar.
Langkah 8 :
Insert data ke tabel Pasal
Cara Alternatif :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
3.4.2.3. Menambah Dokumen Kasus
Pada tabel 3.4 berikut ini merupakan langkah-langkah saat administrator
menambah dokumen kasus :
Tabel 3.4 Narasi Use Case Menambah Dokumen Kasus
Nama Use Case Menambah Dokumen Kasus Tipe Use Case
Nomor Use Case XXX003
Prioritas Tinggi Persyaratan Bisnis
Sumber -
Aktor Utama Administrator
Keterlibatan Aktor Lain -
Deskripsi Administrator dapat menambah dokumen kasus ke tabel
Kasus.
Kondisi Awal Form Tambah Dokumen.
Kondisi Akhir Dokumen kasus baru dapat dimasukan ke tabel Kasus.
Typical Course of Events Tindakan Aktor Tanggapan Sistem
Langkah 1 :
Memilih tab Kasus.
Langkah 2 :
Memasukkan judul,
dokumen kasus, dan pasal-
pasal yang bersangkutan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Langkah 3 :
Klik tombol Simpan.
Langkah 4 :
Menambahkan dokumen
kasus baru ke tabel Kasus.
Langkah 5 :
Menyimpan id_kasus dan
id_pasal ke tabel
Kasus_Pasal.
Cara Alternatif :
Alternatif Langkah 4 :
Jika informasi kasus yang
dimasukan tidak lengkap,
maka akan kembali ke
Langkah 2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
3.4.2.4. Mencari Pasal (Query to Document)
Pada tabel 3.5 berikut ini merupakan langkah-langkah saat pengguna
mencari dokumen pasal berdasarkan query :
Tabel 3.5 Narasi Use Case Mencari Pasal (Query to Document)
Nama Use Case Mencari Pasal (Query to
Document)
Tipe Use Case
Nomor Use Case XXX004
Prioritas Tinggi Persyaratan Bisnis
Sumber -
Aktor Utama Pengguna
Keterlibatan Aktor Lain -
Deskripsi Pengguna dapat mencari pasal berdasarkan dengan query.
Kondisi Awal Form Utama
Kondisi Akhir Pasal-pasal relevan dapat ditemukan kembali oleh sistem.
Typical Course of Events Tindakan Aktor Tanggapan Sistem
Langkah 1 :
Klik menu Pencarian di Form
Utama.
Langkah 2 :
Menampilkan Form
Pencarian.
Langkah 3 :
Pilih tab Undang-Undang
Langkah 4 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Ketik kata kunci yang
dibutuhkan.
Langkah 5 :
Klik tombol Cari
Langkah 6 :
Operasi teks terhadap
kata kunci
Langkah 7 :
Operasi AND
Langkah 8 :
Pembobotan TF-IDF
Langkah 9 :
Menampilkan dokumen
pasal diurutkan dari
bobot tertinggi
Cara Alternatif :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
3.4.2.5. Mencari Kasus dan Pasal (Document to Document)
Pada tabel 3.6 berikut ini merupakan langkah-langkah saat pengguna
mencari pasal berdasarkan dokumen kasus :
Tabel 3.6 Narasi Use Case Mencari Kasus dan Pasal (Document to Document)
Nama Use Case Mencari Kasus dan Pasal
(Document to Document)
Tipe Use Case
Nomor Use Case XXX005
Prioritas Tinggi Persyaratan Bisnis
Sumber -
Aktor Utama Pengguna
Keterlibatan Aktor Lain -
Deskripsi Pengguna dapat mencari pasal yang terkait dengan kasus
pelanggaran hukum berdasarkan kasus.
Kondisi Awal Form Utama
Kondisi Akhir Pasal – pasal yang bersangkutan dapat ditemukan.
Typical Course of Events Tindakan Aktor Tanggapan Sistem
Langkah 1 :
Klik menu Pencarian di
Form Utama
Langkah 2 :
Sistem menampilkan Form
Pencarian.
Langkah 3 :
Pilih tab Kasus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Langkah 4 :
Memilih dokumen yang
akan dibandingkan
Langkah 5 :
Klik tombol Cari
Langkah 6 :
Operasi teks pengambilan
term sesuai dengan
Kamus_hukum.
Langkah 7 :
Operasi OR
Langkah 8 :
Pembobotan W_ij
Langkah 9 :
Menampilkan dokumen kasus
dan pasal diurutkan dari
bobot tertinggi.
Cara Alternatif :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
3.4.2.6. Melihat Isi Pasal
Pada tabel 3.7 berikut ini merupakan langkah-langkah saat pengguna
melihat isi pasal :
Tabel 3.7 Narasi Use Case Melihat Isi Pasal
Nama Use Case Melihat Isi Pasal Tipe Use Case
Nomor Use Case XXX006
Prioritas Sedang Persyaratan Bisnis
Sumber -
Aktor Utama Pengguna
Keterlibatan Aktor Lain -
Deskripsi Pengguna dapat melihat isi dari setiap pasal pada setiap
Undang-Undang.
Kondisi Awal Form Utama.
Kondisi Akhir Sistem dapat menampilkan isi dari pasal yang diperlukan
oleh pengguna.
Typical Course of Events Tindakan Aktor Tanggapan Sistem
Langkah 1 :
Klik menu Undang-
Undang di Form Utama
Langkah 2 :
Sistem menampilkan Form
Undang-Undang
Langkah 4 :
Pilih tahun, nomor dan
pasal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Langkah 5 :
Klik tombol Lihat
Langkah 6 :
Sistem menampilkan list
pasal yang sesuai dengan
tahun, nomor maupun pasal
masukan dari pengguna.
Langkah 7 :
Klik pada row tabel yang
menampilkan pasal.
Langkah 8 :
Sistem menampilkan isi
dari pasal yang dituju.
Cara Alternatif :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
3.5. Perancangang Diagram Aktivitas
3.5.1. Diagram Aktivitas Login
Administrator dapat melakukan login berdasarkan username dan password
yang sudah ditentukan, tetapi jika username dan passoword salah maka akan
kembali ke halaman login.
Memasukkan
username dan password.
Klik tombol LoginMengecek username dan password
di tabel User.
Menampilkan
Form Tambah Dokumen.pesan peringatan
Administrator Sistem
benar salah
Gambar 3.7 Diagram Aktivitas Login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
3.5.2. Diagram Aktivitas Menambah Dokumen Pasal
Administrator dapat menambahkan dokumen pasal (.txt) ke dalam tabel
Pasal dengan memasukan tahun, nomor, pasal, tentang, dan file pasal (.txt).
Memilih tab
Undang-Undang
Memilih tahun, nomor, pasal,
dan tentang
Cari dokumen di folder
untuk disimpan ke basis data
Klik tombol SimpanMenambahkan pasal yang baru
ke koleksi dokumen Undang-Undang
Administrator Sistem
Gambar 3.8 Diagram Aktivitas Menambah Dokumen Pasal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
3.5.3. Diagram Aktivitas Menambah Dokumen Kasus
Administrator dapat menambahkan dokumen kasus (.txt) ke dalam tabel
Kasus dengan memasukan judul, dokumen kasus (.txt), dan pasal-pasal yang
terkait pada Form Tambah Dokumen di kategori Kasus.
Memilih kategori
Kasus
Klik tombol SimpanMenambahkan kasus yang baru
ke koleksi dokumen Kasus
Administrator Sistem
input data
Masukan judul, dokumen,
dan pasal-pasal yang terkait
Gambar 3.9 Diagram Aktivitas Menambah Dokumen Kasus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
3.5.4. Diagram Aktivitas Mencari Pasal (Query to Document)
Pengguna dapat melakukan pencarian pasal berdasarkan query atau kata
kunci yang diketikan langsung oleh pengguna. Kemudian sistem akan
mencocokan kata kunci dengan kata-kata yang telah diindekskan.
Klik menu Pencarian Menampilkan Form Pencarian.
Pilih tab Undang-Undang
Masukan kata kunci yang diperlukan.
Klik tombol CariMencari pasal-pasal yang berhubungan dengan
kata kunci yang dimasukkan oleh pengguna.
Pengguna Sistem
Gambar 3.10 Diagram Aktivitas Mencari Pasal (Query to Document)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
3.5.5. Diagram Aktivitas Mencari Kasus dan Pasal (Document to Document)
Pengguna dapat melakukan pencarian pasal berdasarkan dokumen kasus
sebagai kata kunci. Sistem akan menampilkan dokumen kasus yang relevan
dengan kata kunci serta pasal-pasal yang bersangkutan dengan kasus tersebut.
Klik menu Pencarian Menampilkan Form Pencarian
Pilih tab Kasus
Masukan dokumen kasus
Klik tombol CariMencari kasus-kasus yang berhubungan dengan
Dokumen kasus yang dimasukkan oleh pengguna.
Pengguna Sistem
Gambar 3.11 Diagram Aktivitas Mencari Kasus dan Pasal (Document to
Document)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
3.5.6. Diagram Aktivitas Melihat Isi Pasal
Pengguna dapat melihat isi pasal dengan memilih tahun, nomor, dan pasal
pada Form Undang-Undang.
Klik menu Undang-Undang Sistem menampilkan Form Undang-Undang
Sistem menampilkan isi pasal
yang terdapat dalam Undang-UndangKlik tombol Lihat
Pilih tahun, nomor, dan pasal
Pengguna Sistem
Gambar 3.12 Diagram Aktivitas Melihat Isi Pasal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
3.6. Perancangan Diagram Kolaborasi
3.6.1. Diagram Kolaborasi Login
Pada use case ini melibatkan 5 kelas yaitu FormUtama.java,
FormTambahDokumen.java dan FormLogin.java sebagai kelas view,
LoginControl.java sebagai kelas controller, dan User.java sebagai kelas model.
Pada gambar 3.13 berikut ini merupakan diagram kolaborasi dari use case Login :
FormUtama.java FormLogin.java LoginControl.java User.javaAdministrator
FormTambah
Dokumen.java
Gambar 3.13 Diagram Kolaborasi Login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
3.6.2. Diagram Kolaborasi Menambah Dokumen Pasal
Pada use case ini melibatkan 7 kelas yaitu FormTambahDokumen.java
sebagai kelas view, Control.java, StopwordsControl.java sebagai kelas controller,
dan KamusHukum.java, Pasal.java, Hukum_Pasal.java, Stopwords.java sebagai
kelas model. Pada gambar 3.14 berikut ini merupakan diagram kolaborasi dari use
case Menambah Dokumen Pasal :
Administrator
FormTambah
Dokumen.javaControl.java
Pasal.java
Kamus_Hukum.java
Hukum_Pasal.java
Stopwords
Control.javaStopwords.java
Gambar 3.14 Diagram Kolaborasi Menambah Dokumen Pasal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
3.6.3. Diagram Kolaborasi Menambah Dokumen Kasus
Pada use case ini melibatkan 4 kelas yaitu FormTambahDokumen.java
sebagai kelas view, Control.java sebagai kelas controller, dan Kasus.java,
Kasus_Pasal.java sebagai kelas model. Pada gambar 3.15 berikut ini merupakan
diagram kolaborasi dari use case Menambah Dokumen Kasus :
Administrator
FormTambah
Dokumen.javaControl.java
Kasus_Pasal.java
Kasus.java
Gambar 3.15 Diagram Kolaborasi Menambah Dokumen Kasus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
3.6.4. Diagram Kolaborasi Mencari Pasal (Query to Document)
Pada use case ini melibatkan 11 kelas yaitu FormUtama.java,
FormPencarian.java sebagai kelas view, OperatorAND_OR.java,
InvertedIndex.java, Control.java, StemmingBobbyNazief.java,
StopwordsControl.java sebagai kelas controller, dan Term_Pasal.java,
Indeks_Pasal.java, Stopwords.java, Pasal.java sebagai kelas model. Pada gambar
3.16 berikut ini merupakan diagram kolaborasi dari use case Mencari Pasal
(Query to Document) :
PenggunaFormUtama.java
Stopwords.java
FormPencarian.java
InvertedIndex.java
Operator
AND_OR.java
Term_Pasal.java
Pasal.java
Indeks_Pasal.java
Stemming
BobbyNazief.javaControl.java
Stopwords
Control.java
Gambar 3.16 Diagram Kolaborasi Mencari Pasal (Query to Document)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
3.6.5. Diagram Kolaborasi Mencari Kasus dan Pasal (Document to
Document)
Pada use case ini melibatkan 10 kelas yaitu FormUtama.java,
FormPencarian.java sebagai kelas view, OperatorAND_OR.java,
InvertedIndex.java, Control.java, StemmingBobbyNazief.java,
StopwordsControl.java sebagai kelas controller, dan Term_Kasus.java,
Indeks_Kasus.java, Kamus_Hukum.java, Kasus.java sebagai kelas model. Pada
gambar 3.17 berikut ini merupakan diagram kolaborasi dari use case Mencari
Kasus dan Pasal (Document to Document) :
PenggunaFormUtama.java
Kasus.java
FormPencarian.java
InvertedIndex.java
Operator
AND_OR.java
Term_Kasus.java
Kamus_Hukum.java
Indeks_Kasus.java
Control.java
Stopwords
Control.java
Gambar 3.17 Diagram Kolaborasi Mencari Kasus dan Pasal (Document to
Document
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
3.6.6. Diagram Kolaborasi Melihat Isi Pasal
Pada use case ini melibatkan 4 kelas yaitu FormUtama.java,
FormLihatUU.java sebagai kelas view, Control.java sebagai kelas controller, dan
Pasal.java sebagai kelas model. Pada gambar 3.18 berikut ini merupakan diagram
kolaborasi dari use case Melihat Isi Pasal :
FormLihatUU.java Pasal.javaFormUtama.java Control.javaPengguna
Gambar 3.18 Diagram Kolaborasi Melihat Isi Pasal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
3.7. Perancangan Diagram Sekuensial
3.7.1. Diagram Sekuensial Login
Sistem melakukan proses validasi dengan cara mencocolan username dan password ke table User, jika sesuai maka sistem
akan menampilkan FormTambahDokumen. Pada gambar 3.19 berikut ini merupakan diagram sekuensial Login :
Administrator
<<interface>>
FormUtama.java
<<interface>>
FormLogin.java<<controller>>
LoginControl.java
<<model>>
User.java
Klik menu
Administrator
Memasukan username dan password
Klik tombol MasukCekLogin(String username)
setUsername(String)
String password
<<interface>>
FormTambahDokumen.java
setVisible(true)
Gambar 3.19 Diagram Sekuensial Login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
3.7.2. Diagram Sekuensial Menambah Dokumen Pasal
Administrator memilih tab Undang-Undang pada FormTambahDokumen kemudian memasukan dokumen pasal. Proses
tersebut disajikan pada gambar 3.20 berikut ini :
Administrator
<<interface>>
FormTambahDokumen.java
<<controller>>
Control.java
<<model>>
Kamus_Hukum.java
<<model>>
Hukum_Pasal.java
<<model>>
Pasal.java
Pilih
tab Undang-Undang
Pilih tahun, nomor,
pasal
Masukan tentang
Browse dokumen
Di folder komputer
<<controller>>
StopwordsControl
<<model>>
Stopwords
Gambar 3.20 Diagram Sekuensial Menambah Dokumen Pasal Bagian 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Setelah administrator mengklik tombol Simpan, system melakukan pengecekan term dari isi tentang ke table Hukum_Pasal,
yang disajikan pada gambar 3.21 berikut ini :
<<model>>
Stopwords<<controller>>
Control.java
<<interface>>
FormTambahDokumen.java
Administrator
Klik tombol Simpan
Panggil
cariIdNoPsl_HP
(String id_no_psl)
String id_no_psl
<<model>>
Kamus_Hukum.java
<<model>>
Hukum_Pasal.java
<<model>>
Pasal.java
<<controller>>
StopwordsControl
cariStopwords(String kata)
String kata
setStopwords(String kata)
cariIdHkm_KH
(String kata)setTermHukum(String kata)
setId_no_psl(String)
String id_no_psl
Gambar 3.21 Diagram Sekuensial Menambah Dokumen Pasal Bagian 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Pada gambar 3.22 berikut ini merupakan proses penyimpanan id_kasus dan id_pasal yang bersangkutan ke table Hukum_Pasal :
<<controller>>
StopwordsControl.java
<<model>>
Kamus_Hukum.java<<model>>
Stopwords.java
<<controller>>
Control.java
<<interface>>
FormTambahDokumen
Administrator
<<model>>
Hukum_Pasal.java
<<model>>
Pasal.java
HitungMaxIdHkm
(String initial_id)
Int nilai id max
InsertKamusHkm
(String id_hkm, String kata)
InsertHP
(id_no_psl, id_hkm)
setInitial(String)
setId_hkm(String), setTerm_hkm(String)
setId_no_psl(String), setId_hkm(String)
String id_hukum
Gambar 3.22 Diagram Sekuensial Menambah Dokumen Pasal Bagian 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Pada gambar 3.23 berikut ini merupakan proses sistem melakukan penambahan dokumen pasal ke table Pasal :
<<model>>
Pasal.java
<<model>>
Hukum_Pasal.java
<<model>>
Kamus_Hukum.java
<<interface>>
FormTambahDokumen.java
<<controller>>
Control.java<<controller>>
StopwordsControl.java
InsertPasal
(Pasal p)
setId_pasal(String), setTentang(String), setDok_psl(InputStream), setStatus(String)
Administrator
<<model>>
Stopwords.java
Cek2_HP
(id_no_psl, id_hkm)setId_no_psl(String), setId_hkm(String)
String Id_no_psl, String id_hkm
InsertHP
(id_no_psl, id_hkm)setId_no_psl(String), setId_hkm(String)
Gambar 3.23 Diagram Sekuensial Menambah Dokumen Pasal Bagian 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
3.7.3. Diagram Sekuensial Menambah Dokumen Kasus
Sistem melakukan proses penambahan dokumen kasus ke tabel Kasus dan menyimpan id_kasus dan id_pasal ke tabel
Kasus_Pasal. Pada gambar 3.24 berikut ini merupakan diagram sekuensial Menambah Dokumen Kasus :
Administrator
<<interface>>
FormTambahDokumen.java
<<controller>>
Control.java
<<model>>
Kasus.java
<<model>>
Kasus_Pasal.java
Pilih tab Kasus
Input
Dok kasus, judul,
Pasal-pasal
Klik
Tombol SimpanInsertKasus(Kasus k)
InsertKP(Kasus_Pasal kp)
Gambar 3.24 Diagram Sekuensial Menambah Dokumen Kasus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
3.7.4. Diagram Sekuensial Mencari Pasal (Query to Document)
Pengguna memasukan query untuk memperoleh dokumen pasal yang bersangkutan dengan query. Pada tahap awal, sistem
melakukan pembuangan stopwords yang disajikan pada gambar 3.25 berikut ini :
<<controller>>
StopwordsControl.java
Pengguna
<<interface>>
FormUtama.java<<interface>>
FormPencarian.java
<<controller>>
Control.java
<<controller>>
OperatorAND_OR.java
<<model>>
Pasal,java
<<model>>
Term_Pasal.java
<<controller>>
InvertedIndex.java
<<controller>>
StemmingBobbyNazief.java
<<model>>
Indeks_Pasal
<<model>>
Stopwords.java
Pilih
Menu Pencarian
Pilih tab
Undang-Undang
input
query
Klik
Tombol CariSaringStopword2
(String input)getKata()
String kata
Gambar 3.25 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Pada gambar 3.26 berikut ini merupakan proses operasi AND dan perhitungan DF_j dari kata yang telah didapat :
Pengguna
<<interface>>
FormUtama.java
<<interface>>
FormPencarian.java
<<controller>>
StopwordsControl.java
<<controller>>
Control.java
<<controller>>
OperatorAND_OR.java
<<controller>>
InvertedIndex.java<<controller>>
StemmingBobbyNazief.java
<<model>>
Stopwords.java<<model>>
Pasal.java
<<model>>
Term_Pasal.java
<<model>>
Indeks_Pasal.java
setKata(String kata)
String kata
getKata()
String input
TF_IDF_AND(Control, invertedIndex, String)
TotalDFJ
(String kata)
Term_Pasal
setTermPsl(String kata)
Term_Pasal
setTermPsl(String kata)
Term_Pasal
CariIdTerm(String)
Term_Pasal
Gambar 3.26 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Pada gambar 3.27 berikut ini merupakan proses pengambilan informasi pasal yang sesuai ke tabel Pasal :
Pengguna
<<interface>>
FormUtama.java
<<interface>>
FormPencarian.java
<<controller>>
StopwordsControl.java
<<controller>>
Control.java
<<controller>>
OperatorAND_OR.java
<<controller>>
InvertedIndex.java
<<controller>>
StemmingBobbyNazief.java
<<model>>
Stopwords.java
<<model>>
Pasal.java
<<model>>
Term_Pasal.java
<<model>>
Indeks_Pasal.java
Indeks_Pasal AND(listTerm, listDF,
list_wij, listDok)
List<String>List<String>
AmbilPasal(String)
Pasal
setId_psl(String id_pasal)
setId_term(String), setTerm_psl(String)
Indeks_Pasal
cariW_ij2
(id_term, term)
Gambar 3.27 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
3.7.5. Diagram Sekuensial Mencari Kasus dan Pasal (Document to Document)
Pada gambar 3.28 berikut ini merupakan proses pengambilan term yang sesuai dengan tabel Kamus_Hukum kemudian sistem
melakukan operasi OR pada masing-masing term yang didapat :
Pengguna
<<interface>>
FormUtama.java
<<interface>>
FormPencarian.java
<<controller>>
Control.java
<<controller>>
OperatorAND_OR.java
<<controller>>
InvertedIndex.java<<model>>
Term_Kasus.java
<<model>>
Indeks_Kasus.java
<<model>>
Kamus_Hukum.java<<model>>
Kasus.java
Pilih
Menu Pencarian
Pilih tab Kasus
Pilih dokumen yang akan dibandingkan
Klik tombol Cari
<<controller>>
StopwordsControl.java
SaringStopwordBuffer2
(StringBuffer input)cariTermHkm_KH2
(String term_hukum)
String term_hukumString term
TF_IDF_OR(Control koneksi, InvertedIndexBasic ii, String cari)
setTermKasus(String)
Term_Kasus
printSearch2
(String cari)
String cari
String term_hukum
String term_hukum
CariIdTermKasus
(String term)
Term_Kasus
Gambar 3.28 Diagram Sekuensial Mencari Kasus dan Pasal (Document to Document) Bagian 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
Pada gambar 3.29 berikut ini merupakan proses pembobotan w_ij kemudian pengambilan informasi kasus yang dibutuhkan
serta pasal-pasal yang bersangkutan :
Pengguna
<<interface>>
FormUtama.java
<<interface>>
FormPencarian.java
<<controller>>
StopwordsControl.java
<<controller>>
Control.java
<<controller>>
OperatorAND_OR.java
<<controller>>
InvertedIndex.java
<<model>>
Term_Kasus.java
<<model>>
Indeks_Kasus.java
<<model>>
Kamus_Hukum.java
<<model>>
Kasus.java
setId_Term(String), setId_kasus(String)
Indeks_Kasus
cariW_ij_Kasus(ID_TERM, hsl)
List<String>List<String>
Klik row dari listKasusTabelListKasus_Pasal(String id_kasus)
<<model>>
Kasus_Pasal
setId_kasus(String id_kasus)
List<Kasus_Pasal>List<Kasus_Pasal>
AmbilPasal(String id_pasal)
<<model>>
Pasal.java
setId_Pasal(String id_pasal)
Pasal pPasal p
AmbilKasus(String id_kasus)setId_Kasus(String id_kasus)
Kasus kKasus k
cariW_ij_Kasus
(id_trm, id_ksus)
Indeks_Kasus
Gambar 3.29 Diagram Sekuensial Mencari Kasus dan Pasal (Document to Document) Bagian 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
3.7.6. Diagram Sekuensial Melihat Isi Pasal
Pada gambar 3.30 berikut ini merupakan proses pemanggilan isi dokumen pasal yang dibutuhkan pengguna :
Pengguna
<<interface>>
FormUtama.java
<<interface>>
FormLihatUU.java
<<controller>>
Control.java
<<model>>
Pasal.java
Klik menu
Undang-Undang
Pilih tahun, nomor,
Dan pasal
Klik
Tombol LihatListLihatPasal_thn
(String tahun)setId_pasal(String)
List<Pasal>List<Pasal>
Gambar 3.30 Diagram Sekuensial Melihat Isi Pasal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
3.8. Perancangan Basis Data
3.8.1. Desain Konseptual Basis Data
user stopwords
termkasus kasus
username password id_stopword stopword
indeks_kasus pasal termpasalindeks_pasal
id_term_kasus
df_j
term_kasus
nidfidf
id_pasal
dok_pasal
tentang
status
w_ij
ntf_ijtf_ij
w_ij
ntf_ijtf_ij
id_kasus
dok_kasus
judul
1..* 1..* 1..* 1..*
status
rootwords
id_rootword rootword
kasus_pasal
id_term_pasal term_pasal
df_j nidfidf
1..*1..*
Kamus_hukumHukum_pasal
Id_hukum Term_hukum
1..*
1..*
Gambar 3.31 Desain Konseptual Basis Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
3.8.2. Desain Logikal Basis Data
stopwords
PK id_stopword
stopword
rootwords
PK id_rootword
rootword
Pasal
PK id_pasal
tentang
dok_pasal
status
Indeks_p
tf_p
ntf_p
w_p
FK1 id_term_p
FK2 id_pasal
TermsPasal
PK id_term_p
term_p
df_p
idf_p
nidf_p
Kasus
PK id_kasus
judul
dok_kasus
status
1..*1..*
1..1
1..1
1..1
1..*1..*
1..1
user
PK username
password
TermsKasus
PK id_term_k
term_k
df_k
idf_k
nidf_k
Indeks_k
tf_k
ntf_k
w_k
FK1 id_kasus
FK2 id_term_k
KasusPasal
FK1 id_kasus
FK2 id_pasal
1..1
1..*1..*
1..1Kamus_hukum
PK id_hukum
term_hukum
Hukum_Pasal
id_no_psl
FK2 id_hukum
1..1
1..* 1..1
Gambar 3.32 Desain Logikal Basis Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
3.8.3. Desain Fisikal Basis Data
1. Tabel User
Tabel User digunakan untuk menyimpan username dan password
administrator agar dapat menambahkan dokumen ke basis data. Pada tabel
3.8 berikut ini merupakan desain fisikal Tabel User :
Tabel 3.8 Desain Tabel User
Nama Field Tipe Data Ukuran Keterangan
Username Varchar 100 primary key tabel user
Password Varchar 100 Kata sandi dari
pengguna
2. Tabel Rootwords
Tabel Rootwords ini menyimpan kata dasar yang digunakan untuk
proses stemming. Pada tabel 3.9 berikut ini merupakan desain fisikal dari
Tabel Rootwords :
Tabel 3.9 Desain Tabel Rootwords
Nama Field Tipe Data Ukuran Keterangan
Id_rootword Varchar 10 primary key tabel
rootwords
rootword Varchar 100 Kata dasar dari istilah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
3. Tabel Stopwords
Tabel Stopwords digunakan untuk menyimpan kata umum Bahasa
Indonesia. Pada tabel 3.10 berikut ini merupakan desain fisikal dari Tabel
Stopwords :
Tabel 3.10 Desain Tabel Stopwords
Nama Field Tipe Data Ukuran Keterangan
Id_stopword varchar 10 Primary key tabel
stopwords
Stopword varchar 100 Stopword Bahasa
Indonesia
4. Tabel Pasal
Tabel Pasal ini menyimpan dokumen pasal .txt sebagai data dari sub
sistem query to document. Pada tabel 3.11 berikut ini merupakan desain
fisikal dari Tabel Pasal :
Tabel 3.11 Desain Tabel Pasal
Nama Field Tipe Data Ukuran Keterangan
Id_pasal varchar 15 Primary key tabel pasal
Tentang varchar 1000 Gambaran umum dari isi
pasal
Dok_pasal blob - Dokumen pasal
Status varchar 1 Status dari pengindeksan
pasal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
5. Tabel Termpasal
Tabel Termpasal ini menyimpan term atau istilah dari dokumen pasal.
Pada tabel 3.12 berikut ini merupakan desain fisikal dari Tabel Termpasal :
Tabel 3.12 Desain Tabel Termpasal
Nama Field Tipe Data Ukuran Keterangan
Id_term_pasal varchar 15 Primary key tabel
termpasal
Term_pasal varchar 100 Istilah dari pasal
DF_j double - Jumlah dokumen pasal
yang mengandung suatu
istilah tertentu
Nidf_j double - Normalisasi dari kebalikan
df_j
6. Tabel Indeks_pasal
Tabel Indeks_Pasal ini menyimpan pengindeksan dari term terhadap
id_pasal. Pada tabel 3.13 berikut ini merupakan desain fisikal dari Tabel
Pasal :
Tabel 3.13 Desain Tabel Indeks_Pasal
Nama Field Tipe Data Ukuran Keterangan
Tf_ij varchar 15 Jumlah istilah pada suatu
dokumen pasal
Ntf_ij varchar 100 Normalisasi dari tf_ij
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
W_ij double - Bobot dari istilah pada
suatu dokumen pasal
Id _pasal varchar 15 Foreign key dari tabel
Pasal
Id_term_pasal varchar 15 Foreign key dari tabel
TermPasal
7. Tabel Kasus
Tabel Kasus ini menyimpan dokumen kasus .txt sebagai data dari sub
sistem document to document. Pada tabel 3.14 berikut ini merupakan
desain fisikal dari Tabel Kasus :
Tabel 3.14 Desain Tabel Kasus
Nama Field Tipe Data Ukuran Keterangan
Id_kasus varchar 15 Primary key tabel Kasus
Judul varchar 3000 Judul dari kasus
Dok_kasus blob - Dokumen kasus
status varchar 1 Status dari pengindeksan
kasus
8. Tabel Termkasus
Tabel Termkasus ini menyimpan term atau istilah dari dokumen
kasus. Pada tabel 3.15 berikut ini merupakan desain fisikal dari Tabel
Termkasus :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Tabel 3.15 Desain Tabel Termkasus
Nama Field Tipe Data Ukuran Keterangan
Id_term_kasus varchar 15 Primary key tabel
Termkasus
Term_kasus varchar 100 Istilah dari kasus
Df_j int 11 Jumlah dokumen kasus
yang mengandung suatu
istilah tertentu
Nidf_j double - Normalisasi dari
kebalikan df_j
9. Tabel Indeks_kasus
Tabel Indeks_kasus ini menyimpan pengindeksan dan bobot dari term
kasus. Pada tabel 3.16 berikut ini merupakan desain fisikal dari Tabel
Kasus :
Tabel 3.16 Desain Tabel Indeks_Kasus
Nama Field Tipe Data Ukuran Keterangan
Tf_ij double 15 Jumlah istilah pada suatu
dokumen kasus
Ntf_ij double 3000 Normalisasi dari tf_ij
W_ij double - Bobot dari istilah pada
suatu dokumen kasus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
Id_term_kasus varchar 15 Foreign key dari tabel
Termkasus.
Id_kasus varchar 15 Foreign key dari tabel
Kasus
10. Tabel Kasus_pasal
Tabel Kasus_pasal ini menyimpan id_kasus dan id_pasal. Pada tabel
3.17 berikut ini merupakan desain fisikal dari Tabel Kasus_pasal :
Tabel 3.17 Desain Tabel Kasus_Pasal
Nama Field Tipe Data Ukuran Keterangan
Id_kasus varchar 15 Foreign key dari tabel
Kasus
Id_pasal varchar 15 Foreign key dari tabel
Pasal
11. Tabel Kamus_hukum
Tabel Kasus_hukum ini menyimpan isi tentang pada masing-masing
undang-undang. Pada tabel 3.18 berikut ini merupakan desain fisikal dari
Tabel Kamus_hukum :
Tabel 3.18 Desain Tabel Kamus_Hukum
Nama Field Tipe Data Ukuran Keterangan
Id_hukum varchar 6 Primary key dari tabel
Kamus_hukum
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
Term_hukum varchar 100 Istilah/term hukum yang
sering muncul pada setiap
dokumen pasal.
12. Tabel Hukum_pasal
Tabel Hukum_pasal ini menyimpan keterkaitan antara isi dari tabel
Kamus_Hukum dengan masing-masing pasal. Pada tabel 3.18 berikut ini
merupakan desain fisikal dari Tabel Hukum_pasal :
Tabel 3.19 Desain Tabel Hukum_Pasal
Nama Field Tipe Data Ukuran Keterangan
Id_no_psl varchar 10 Foreign key dari tabel
Pasal
Id_hukum varchar 6 Foreign key dari tabel
Kamus_hukum
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
3.8. Perancangan Antarmuka
3.8.1. Desain Form Utama
Pada gambar 3.24 di bawah ini merupakan desain dari Form Utama :
Gambar 3.24 Desain Form Utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
3.8.2. Desain Form Login
Pada gambar 3.25 di bawah ini merupakan desain dari Form Login :
Gambar 3.25 Desain Form Login
3.8.3. Desain Form Tambah Dokumen
Pada gambar 3.26 di bawah ini merupakan desain dari Form Undang-
Undang :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Gambar 3.26 Desain Form Undang-Undang
3.8.4. Desain Form Pencarian
Pada gambar 3.27 di bawah ini merupakan desain dari Form Pencarian :
Gambar 3.27 Desain form Pencarian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
3.8.5. Desain Form Lihat Isi Pasal
Pada gambar 3.28 di bawah ini merupakan desain dari Form Lihat Isi Pasal :
Gambar 3.28 Desain Form Lihat Isi Pasal
3.9. Perancangan Diagram Kelas
Perancangan diagram kelas bertujuan untuk mengetahui keterkaitan
antar kelas pada suatu aplikasi. Berikut ini merupakan diagram dari 8
package yaitu model, view, control, stemming, TF_IDF, inverted index,
conn, dan Thread.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
3.9.1. Package Model
+ getId_kasus() : String
+ setId_kasus(String)
+ getJudul() : String
+ setJudul(String)
+ getDok_ksus_stream() : InputStream
+ setDok_ksus_stream(InputStream)
+ getStatus() : Status
+ setStatus(String)
- id_kasus : String
- judul : String
- dok_ksus_stream : InputStream
- status : String
Kasus
+ getId_pasal() : String
+ setId_Pasal(String)
+ getTentang() : String
+ setTentang(String)
+ getStatus() : String
+ setStatus(String)
+ getDok_psl_stream() : InputStream
+ setDok_psl_stream(InputStream)
+ getNo() : String
+ setNo(String)
+ getTahun() : String
+ setTahun(String)
+ getPasal() : String
+ setPasal(String)
- id_pasal : String
- tentang : String
- dok_psl_stream : InputStream
- status : String
- no : String
- tahun : String
- pasal : String
Pasal
+ getDf_j() : Double
+ setDf_j(Double)
+ getNidf() : Double
+ setNidf(Double)
+ getId_term_pasal() : String
+ setId_term_pasal(String)
+ getTerm_pasal() : String
+ setTerm_pasal(String)
- df_j : Double
- nidf : Double
- id_term_pasal : String
- term_pasal : String
Term_Pasal
+ getId_term_kasus() : String
+ setId_term_kasus(String)
+ getTerm_kasus() : String
+ setTerm_kasus(String)
+ getDf_j() : int
+ setDf_j(int)
+ getNidf_j() : Double
+ setNidf_j(Double)
- id_term_kasus : String
- term_kasus : String
- df_j : int
- nidf_j : Double
Term_Kasus
+ getTf_ij() : Double
+ setTf_ij(Double)
+ getNtf_ij() : Double
+ setNtf_ij(Double)
+ getW_ij() : Double
+ setW_ij(Double)
+ getId_pasal() : String
+ setId_pasal(String)
+ getId_term_pasal() : String
+ setId_term_pasal(String)
+ getJumlah() : int
+ setJumlah(int)
- tf_ij : Double
- ntf_ij : Double
- w_ij : Double
- id_pasal : String
- id_term_pasal : String
- jumlah : int
Indeks_Pasal
+ getTf_ij() : Double
+ setTf_ij(Double)
+ getNtf_ij() : Double
+ setNtf_ij(Double)
+ getW_ij() : Double
+ setW_ij(Double)
+ getId_kasus() : String
+ setId_kasus(String)
+ getId_term_kasus() : String
+ setId_term_kasus(String)
- tf_ij : Double
- ntf_ij : Double
- w_ij : Double
- id_kasus : String
- id_term_kasus : String
Indeks_Kasus
+ getId_kasus() : String
+ setId_kasus(String)
+ getId_pasal() : String
+ setId_pasal(String)
- id_kasus : String
- id_pasal : String
Kasus_Pasal
+ getId_hukum() : String
+ setId_hukum(String)
+ getTerm_hukum() : String
+ setTerm_hukum(String)
- id_hukum : String
- term_hukum : String
Kamus_Hukum
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
3.9.2. Package View
<<constructor>>
FormLogin()
+ JFrame()
+ icon()
+ MasukButtonActionPerformed(java.awt.event.ActionEvent)
+ ResetButtonActionPerformed(java.awt.event.ActionEvent)
+ KembaliLoginButtonActionPerformed(java.awt.event.ActionEvent)
- KembaliLoginButton : JButton
- MasukButton : Jbutton
- ResetButton : Jbutton
- idFiled : JTextField
- jDesktopPane1 : JDesktopPane
- jLabel1 : jLabel
- jLabel2 : jLabel
- jLabel3 : jLabel
- jLabel4: jLabel
- jLabel5 : jLabel
- jLabel6 : jLabel
- jPanel1 : JPanel
- jPanel2 : JPanel
- jPanel3 : JPanel
- pwdField : JPasswordField
FormLogin
<<constructor>>
FormUtama()
+ icon()
+ JFrame()
+ Menu2ButtonActionPerformed(java.awt.event.ActionEvent)
+ AdminLabelMouseClicked(java.awt.event.MouseEvent)
+ Menu1ButtonActionPerformed(java.awt.event.ActionEvent)
- AdminLabel : JLabel
- Menu1Button : JButton
- Menu2Button : JButton
- jDesktopPane1 : JDesktopPane
- jLabel1 : jLabel
- jLabel2 : jLabel
- jLabel1 : jLabel
- jLabel2 : jLabel
- jLabel3 : jLabel
FormUtama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
<<constructor>>
FormPencarian()
+ icon()
+ BangunInvertedIndexUU()
+ BangunInvertedIndexKasus()
+ CariButtonUUPencarianActionPerformed(java.awt.event.ActionEvent)
+ KembaliButtonPencarianActionPerformed(java.awt.event.ActionEvent)
+ TabelListPasalMouseClicked(java.awt.event.MouseEvent)
+ BrowseButtonPencarianActionPerformed(java.awt.event.ActionEvent)
+ CariButtonKasusPencarianActionPerformed(java.awt.event.ActionEvent)
+ listKasusTabelMouseClicked(java.awt.event.MouseEvent)
+ listKPTabelMouseClicked(java.awt.event.MouseEvent)
+ KataKunciFieldKeyReleased(java.awt.event.KeyEvent)
+ Jframe()
- BrowseButtonPencarian : JButton
- CariButtonKasusPencarian : JButton
- CariButtonUUPencarian : JButton
- KasusUUTab
- KataKunciField : JPasswordField
- KembaliButtonPencarian : JButton
- ScrollPaneTabelQuery
- TabelListPasal : JTable
- UraianUU : JTextArea
- jDesktopPane1 : JDesktopPane
- jLabel1 : JLabel
FormPencarian
<<constructor>>
FormLihatUU()
+ pasif1()
+ pasif2()
+ Jicon()
+ Jframe()
+ KembaliButtonActionPerformed(java.awt.event.ActionEvent)
+ TahunCheckBoxMouseClicked(java.awt.event.MouseEvent)
+ NomorCheckBoxMouseClicked(java.awt.event.MouseEvent)
+ PasalCheckBoxMouseClicked(java.awt.event.MouseEvent)
+ LihatButtonActionPerformed(java.awt.event.ActionEvent)
+ tabelListLihatUUMouseClicked(java.awt.event.MouseEvent)
- KembaliButton : JButton
- LihatButton : JButton
- NomorCheckBox : JCheckBox
- PasalCheckBox : JCheckBox
- TahunCheckBox : JCheckBox
- jDesktopPane1 : JDesktopPane
- jLabel1 : JLabel
- jScrollPane1 : JScrollPane
- jScrollPane2 : JScrollPane
- lihatUUTextArea : JTextArea
- no1UUchooser : JChooser
- no2UUchooser : JChooser
- psl1UUchooser : JChooser
FormihatUU
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
<<constructor>>
FormTambahDokumen()
+ JFrame()
+ Jicon()
+ BrowseButton_uuActionPerformed(java.awt.event.ActionEvent)
+ KeluarLabelMouseClicked(java.awt.event.MouseEvent)
+ SimpanUUButtonActionPerformed(java.awt.event.ActionEvent)
+ TambahButtonActionPerformed(java.awt.event.ActionEvent)
+ BrowseButtonKasusActionPerformed(java.awt.event.ActionEvent)
+ KurangButtonActionPerformed(java.awt.event.ActionEvent)
+ listUUTmbhKsusMouseClicked(java.awt.event.MouseEvent)
+ SimpanButtonKasusActionPerformed(java.awt.event.ActionEvent)
+ DokRadioButtonMouseClicked(java.awt.event.MouseEvent)
+ TextRadioButtonMouseClicked(java.awt.event.MouseEvent)
+ ResetAllActionPerformed(java.awt.event.ActionEvent)
- BrowseButtonKasus : JButton
- BrowseButton_uu : JButton
- DokRadioButton : JButton
- KeluarLabel : JLabel
- KurangButton : JButton
- SimpanUUButton : JButton
- SimpanButtonKasus : JButton
- TahunChooser : JTahunChooser
- TambahButton : JButton
- TentangText : JTextArea
- TextRadioButton : JRadioButton
- TextTextArea : JTextArea
- jDesktopPane1 : JDesktopPane
- jLabel10 : JLabel
- jLabel11 : JLabel
- jLabel12 : JLabel
- jLabel13 : JLabel
- jLabel14 : JLabel
- jLabel15 : JLabel
- jLabel16 : JLabel
- jLabel17 : JLabel
- jLabel19 : JLabel
- jLabel2 : JLabel
FormTambahDokumen
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
3.9.3. Package Control
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
3.9.4. Package Stemming
<<constructor>>
StemmingBobbyNazief(Connection)
+ StemmingBobbyNazief getkoneksi() : static
+ delReduplikasi() : String
+ hapusInflectionSuffixes1() : String
+ hapusDerivationSuffixes1() : String
+ hapusDerivationPrefix_1() : String
+ getKata() : String
+ setKata(String)
- conn : Connection
- kata : String
StemmingBobbyNazief
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
3.9.5. Package TF_IDF
+ TF_IDF_AND(Control , InvertedIndex, String) : List<String>
+ TF_IDF_OR(Control, InvertedIndex, String) : List<String>
- listDok : LinkedList
- list_wij : LinkedList
- listDF : LinkedList
- listTerm : LinkedList
- hasilAND : List<String>
- hasilOR : List<String>
OperatorAND_OR
3.9.6. Package inverted index
<<constructor>>
+ Document(String)
+ getDocument() : String
+ compareTo(Object) : int
+ toString() : String
- document : String
Document
<<constructor>>
+ Term(String)
+ getTerm() : String
+ getPostinglist() : LinkedListOrderedUnique<Document>
+ compareTo(Object) : int
+ toString() : String
- term : String
- postinglist : LinkedListOrderedUnique<Document>
Term
<<constructor>>
InvertedIndexBasic()
+ getTermList() : LinkedListOrderedUnique<Term>
+ add(String, String)
+ printSearch2(String cari) : String
+ duplikasiList_CountWij(LinkedList<String>, LinkedList<Double>)
+ AND(LinkedList<String>, LinkedList<Double>, LinkedList<Double>, LinkedList<String>) : List<String>
+ sortByValuesDescending(final Map<K, V>) : List<String>
+ sortByValuesAscending(final Map<K, V>)
listTermOrdered : List<String>
- termList : LinkedListOrderedUnique<Term>
InvertedIndex
+ addSort(E)
+ get(E) : E
+ toString : String
LinkedListOrderedUnique
3.9.7. Package conn
+ ConnectDB() : Connection
- conn : Connection
Koneksi
3.9.8. Package Thread
+ panggilThread()
- isRunning : boolean
ThreadPasal
+ panggilThreadKasus()
- isRunning2 : boolean
ThreadKasus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
BAB IV
4. IMPLEMENTASI
4.1. Spesifikasi Software yang Digunakan
Spesifikasi software yang digunakan untuk implementasi sistem
pemerolehan informasi undang-undang menggunakan struktur data inverted index
dan pembobotan tf-idf adalah sebagai berikut :
1. Sistem operasi : Windows
2. MySQL Server 5.1
3. SQLyog 10.42
4. Java JDK 1.7.0
5. mysql-connector-java-5.1.6
6. Netbeans IDE 7.2
4.2. Implementasi Basis Data
1. Tabel User
Kode Program 4.1 Implementasi Pembuatan Tabel User
CREATE TABLE `user` (
`username` varchar(100) NOT NULL,
`password` varchar(100) DEFAULT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
2. Tabel Rootwords
Kode Program 4.2 Implementasi Pembuatan Tabel Rootwords
3. Tabel Stopwords
Kode Program 4.3 Implementasi Pembuatan Tabel Stopwords
4. Tabel Stopwords_hukum
Kode Program 4.4 Implementasi Pembuatan Tabel Soptwords_hukum
CREATE TABLE `rootwords` (
`id_rootword` varchar(10) NOT NULL,
`rootword` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id_rootword`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE ‘stopwords’(
‘id_stopword varchar(10) NOT NULL,
‘stopword’ varchar(100) DEFAULT NULL,
PRIMARY KEY (‘id_stopword’))
ENGINE = InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `stopwords_hukum` (
`id_stopword_hukum` varchar(15) NOT NULL,
`stopword_hukum` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id_stopword_hukum`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
5. Tabel Pasal
Kode Program 4.5 Implementasi Pembuatan Tabel Pasal
6. Tabel Termpasal
Kode Program 4.6 Implementasi Pembuatan Tabel Termpasal
CREATE TABLE `pasal` (
`id_pasal` varchar(15) NOT NULL,
`tentang` varchar(1000) DEFAULT NULL,
`dok_pasal` blob,
`status` varchar(1) DEFAULT NULL,
PRIMARY KEY (`id_pasal`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `termpasal` (
`id_term_pasal` varchar(15) NOT NULL,
`term_pasal` varchar(100) DEFAULT NULL,
`df_j` double DEFAULT NULL,
`nidf_j` double DEFAULT NULL,
PRIMARY KEY (`id_term_pasal`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
7. Tabel Indeks_pasal
Kode Program 4.7 Implementasi Pembuatan Tabel Indeks_Pasal
8. Tabel Kasus
Kode Program 4.8 Implementasi Pembuatan Tabel Kasus
CREATE TABLE `indeks_pasal` (
`tf_ij` double DEFAULT NULL,
`ntf_ij` double DEFAULT NULL,
`w_ij` double DEFAULT NULL,
`id_pasal` varchar(15) DEFAULT NULL,
`id_term_pasal` varchar(15) DEFAULT NULL,
KEY `id_pasal` (`id_pasal`),
KEY `id_term_pasal` (`id_term_pasal`),
CONSTRAINT `id_pasal` FOREIGN KEY (`id_pasal`) REFERENCES
`pasal` (`id_pasal`),
CONSTRAINT `id_term_pasal` FOREIGN KEY (`id_term_pasal`) R
EFERENCES `termpasal` (`id_term_pasal`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `kasus` (
`id_kasus` varchar(15) NOT NULL,
`judul` varchar(3000) DEFAULT NULL,
`dok_kasus` blob,
`status` varchar(1) DEFAULT NULL,
PRIMARY KEY (`id_kasus`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
9. Tabel Termkasus
Kode Program 4.9 Implementasi Pembuatan Tabel Termkasus
10. Tabel Indeks_kasus
Kode Program 4.10 Implementasi Pembuatan Tabel Indeks_kasus
CREATE TABLE `termkasus` (
`id_term_kasus` varchar(15) NOT NULL,
`term_kasus` varchar(100) DEFAULT NULL,
`df_j` int(11) DEFAULT NULL,
`nidf_j` double DEFAULT NULL,
PRIMARY KEY (`id_term_kasus`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `indeks_kasus` (
`tf_ij` double DEFAULT NULL,
`ntf_ij` double DEFAULT NULL,
`w_ij` double DEFAULT NULL,
`id_term_kasus` varchar(15) DEFAULT NULL,
`id_kasus` varchar(15) DEFAULT NULL,
KEY `id_kasus` (`id_kasus`),
KEY `id_term_kasus` (`id_term_kasus`),
CONSTRAINT `id_kasus` FOREIGN KEY (`id_kasus`) REFERENCES
`kasus` (`id_kasus`),
CONSTRAINT `id_term_kasus` FOREIGN KEY (`id_term_kasus`)
REFERENCES `termkasus` (`id_term_kasus`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
11. Tabel Kasus_pasal
Kode Program 4.11 Implementasi Pembuatan Tabel Kasus_Pasal
12. Tabel Kamus_hukum
Kode Program 4.12 Implementasi Pembuatan Tabel Kamus_Hukum
CREATE TABLE `kasus_pasal` (
`id_kasus` varchar(15) DEFAULT NULL,
`id_pasal` varchar(15) DEFAULT NULL,
KEY `id_kasus_kp` (`id_kasus`),
KEY `id_pasal_kp` (`id_pasal`),
CONSTRAINT `id_kasus_kp` FOREIGN KEY (`id_kasus`) REFERENCES
`kasus` (`id_kasus`),
CONSTRAINT `id_pasal_kp` FOREIGN KEY (`id_pasal`) REFERENCES
`pasal` (`id_pasal`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `kamus_hukum` (
`id_hukum` varchar(6) NOT NULL,
`term_hukum` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id_hukum`)
) ENGINE=InnoDHD DEFAULT CHARSET=latin1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
13. Tabel Hukum_pasal
Kode Program 4.13 Implementasi Pembuatan Tabel Hukum_pasal
4.3. Implementasi Operasi Teks
4.3.1. Operasi Teks pada Query to Document
Operasi teks pada sub sistem ini terdapat 3 tahap, yaitu tokenization,
eliminasi stopwords, dan stemming. Berikut ini merupakan implementasi dari
ketiga tahap tersebut :
4.3.1.1. Tokenization
Proses tokenization dilakukan sebelum proses stopwords. Di bawah ini kode
program 4.14 merupakan implementasi dari proses tokenization :
Kode Program 4.14 Implementasi Tokenization
CREATE TABLE `hukum_pasal` (
`id_no_psl` varchar(10) NOT NULL,
`id_hukum` varchar(6) NOT NULL,
PRIMARY KEY (`id_no_psl`,`id_hukum`),
KEY `FK_hukum_pasal` (`id_hukum`),
CONSTRAINT `FK_hukum_pasal` FOREIGN KEY (`id_hukum`) REFERE
NCES `kamus_hukum` (`id_hukum`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
StringTokenizer st = new StringTokenizer(klmt.toString(),
"!@#$%^&*()_+{}|:<>?1234567890=[];',./€\"");
while (st.hasMoreTokens()) {
String test = st.nextToken();
StringTokenizer st2 = new
StringTokenizer(test.toLowerCase());
while (st2.hasMoreTokens()) {
String kata =
String.valueOf(st2.nextToken().toLowerCase());
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
4.3.1.2. Stopwords
Proses stopwords dilakukan setelah proses tokenization, dimana dilakukan
pemanggilan terhadap cariStopwords(String kata) terlebih dahulu untuk
menyeleksi stopwords, kemudian kata yang bukan termasuk stopwords akan
ditampung pada list bukanStopwords. Berikut ini pada kode program 4.15
merupakan uraian dari method cariStopwords :
Kode Program 4.15 Implementasi Stopwords
public Stopwords cariStopwords(String kata) throws
SQLException {
PreparedStatement statement = null;
ResultSet rs2 = null;
conn.setAutoCommit(false);
String sql = "SELECT stopword from stopwords where
stopword = '" + kata + "'";
statement = conn.prepareStatement(sql);
rs2 = statement.executeQuery();
Stopwords s = new Stopwords();
while (rs2.next()) {
s.setStopword(rs2.getString(1));
}
conn.commit();
return s;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
4.3.1.3. Stemming
Berikut ini pada kode program 4.16 merupakan method
StemmingBobbyNazief untuk mencari kata dasar dari setiap istilah dengan
menghilangkan awalan dan akhiran :
public class StemmingBobbyNazief {
ResultSet rs = null;
PreparedStatement pst = null;
private Connection conn;
private String kata;
public StemmingBobbyNazief(Connection koneksi) {
this.conn = koneksi;
}
public static StemmingBobbyNazief getkoneksi() throws SQLException {
StemmingBobbyNazief kon = new
StemmingBobbyNazief(Koneksi.ConnectDb());
return kon;
}
public void setKata(String kata) {
this.kata = kata;
}
public String getKata() {
try {
String cr, cr2;
delReduplikasi();
hapusInflectionSuffixes1();
hapusDerivationSuffixes1();
hapusDerivationPrefix_I();
cr = cariRootwords(kata);
if (cr != null) {
return kata;
} else {
kata = kata + "i";
cr2 = cariRootwords(kata);
if (cr2 != null) {
return kata;
} else if (cr2 == null) {
return kata = kata.substring(0, kata.length() - 1);
}
}
} catch (SQLException ex) {
Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE
, null, ex);
}
return kata;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
public String delReduplikasi() {
String cari;
try {
cari = cariRootwords(kata);
if (cari == null) {
String firstWord = null;
String secondWord = null;
if(kata.contains("-")) {
firstWord = kata.substring(0, kata.indexOf("-"));
secondWord = kata.substring(kata.indexOf("-") + 1);
String cr, cr2;
cr = cariRootwords(firstWord);
cr2 = cariRootwords(secondWord);
if (cr != null) {
kata = firstWord;
} else if (cr2 != null) {
kata = secondWord;
} else if (cr != null && cr2 != null) {
kata = firstWord + " " + secondWord;
} else {
kata = secondWord;
}
}
}
} catch (SQLException ex) {
Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE
, null, ex);
}
return kata;
}
public String hapusInflectionSuffixes1() {
try {
String cari;
cari = cariRootwords(kata);
if (cari == null) {
if (kata.endsWith("lah")) {
hapusInflectionSuffixes2();
} else if (kata.endsWith("kah")) {
kata = kata.substring(0, kata.length() - 3);
hapusInflectionSuffixes2();
} else if (kata.endsWith("tah")) {
kata = kata.substring(0, kata.length() - 3);
hapusInflectionSuffixes2();
} else if (kata.endsWith("pun")) {
kata = kata.substring(0, kata.length() - 3);
hapusInflectionSuffixes2();
} else {
hapusInflectionSuffixes2();
}
}
} catch (SQLException ex) {
Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE
, null, ex);
}
return kata;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
public String hapusDerivationSuffixes1() {
try {
String cari;
cari = cariRootwords(kata);
if (cari == null) {
if (kata.endsWith("i")) {
kata = kata.substring(0, kata.length() - 1);
} else if (kata.endsWith("kan")) {
kata = kata.substring(0, kata.length() - 3);
} else if (kata.endsWith("an")) {
kata = kata.substring(0, kata.length() - 2);
}
}
} catch (SQLException ex) {
Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE
, null, ex);
}
return kata;
}
public String hapusDerivationPrefix_I() {
try {
String cr, cari;
cari = cariRootwords(kata);
if (cari == null) {
if (kata.startsWith("di")) {
kata = kata.substring(2);
} else if (kata.startsWith("ke")) {
kata = kata.substring(2);
} else if (kata.startsWith("se")) {
kata = kata.substring(2);
} else if (kata.startsWith("te")) {
if (kata.startsWith("ter")) {
cr = cariRootwords("r" + kata.substring(3));
if (cr != null) {
kata = "r" + kata.substring(3);
} else {
kata = kata.substring(3);
}
} else {
kata = kata.substring(2);
}
} else if (kata.startsWith("be")) {
if (kata.startsWith("ber")) {
cr = cariRootwords(kata.substring(3));
if (cr == null) {
kata = kata.substring(2);
} else {
kata = kata.substring(3);
}
} else if (kata.startsWith("bel")) {
kata = kata.substring(3);
} else {
kata = kata.substring(2);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
} else if (kata.startsWith("me")) { //men, mem,
meng, meny, menge
if (kata.startsWith("meng")) {
cr = cariRootwords("k" + kata.substring(4));
if (cr != null) {
kata = "k" + kata.substring(4);
}
else {
kata = kata.substring(4);
}
} else if (kata.startsWith("meny")) {
cr = cariRootwords("s" + kata.substring(4));
if (cr != null) {
kata = "s" + kata.substring(4);
} else {
kata = kata.substring(4);
}
} else if (kata.startsWith("mem")) {
cr = cariRootwords("p" + kata.substring(3));
if (cr != null) {
kata = "p" + kata.substring(3);
} else {
kata = kata.substring(3);
}
} else if (kata.startsWith("men")) {
cr = cariRootwords("t" + kata.substring(3));
if (cr != null) {
kata = "t" + kata.substring(3);
} else {
kata = kata.substring(3);
}
} else {
kata = kata.substring(2);
}
} else if (kata.startsWith("pe")) {
if (kata.startsWith("per")) {
kata = kata.substring(3);
} else if (kata.startsWith("pem")) {
cr = cariRootwords("p" + kata.substring(3));
if (cr != null) {
kata = "p" + kata.substring(3);
} else {
kata = kata.substring(3);
}
} else if (kata.startsWith("peny")) {
cr = cariRootwords("s" + kata.substring(4));
if (cr != null) {
kata = "s" + kata.substring(4);
} else {
kata = kata.substring(4);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
Kode Program 4.16 Implementasi Stemming
} else if (kata.startsWith("pen")) {
cr = cariRootwords("t" + kata.substring(3));
if (cr != null) {
kata = "t" + kata.substring(3);
} else {
kata = kata.substring(3);
}
} else if (kata.startsWith("peng")) {
cr = cariRootwords("k" + kata.substring(4));
if (cr != null) {
kata = "k" + kata.substring(4);
} else {
kata = kata.substring(4);
}
} else {
kata = kata.substring(2);
}
}
}
} catch (SQLException ex) {
Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE
, null, ex);
}
return kata;
}
public String cariRootwords(String kata) throws
SQLException {
PreparedStatement statement = null;
ResultSet rs2 = null;
conn.setAutoCommit(false);
String sql = "SELECT rootword from rootwords
where rootword = '" + kata + "'";
statement = conn.prepareStatement(sql);
rs2 = statement.executeQuery();
String s = null;
while (rs2.next()) {
s = rs2.getString("rootword");
}
conn.commit();
return s;
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
99
4.3.2. Operasi Teks pada Document to Document
Operasi Teks pada Kasus hanya melakukan proses pengambilan term yang
sesuai dengan tabel Kamus_hukum. Jika term tersebut terdaftar pada
Kamus_hukum, maka sistem akan langsung mencari posting list dari inverted
index.
4.3.2.1. Pengambilan Term
Berikut ini pada kode program 4.17 merupakan implementasi pengambilan
term dari isi tentang pada masing-masing pasal di tabel Hukum_Pasal untuk
dicocokan dengan dokumen kasus yang dimasukan oleh pengguna.
Kode Program 4.17 Implementasi Pengambilan Term
public void AmbilTermHukum(String id_kasus) {
try {
Control c = Control.getkoneksi();
List<String> idPsl = c.ListIdPasal_KP(id_kasus);
Collection<String> id_no_psl = new TreeSet<String>();
int size_idPsl = idPsl.size();
for (int i = 0; i < size_idPsl; i++) {
String id = idPsl.get(i);
String id_p_baru = id.substring(0, 7);
id_no_psl.add(id_p_baru);
List<String> ubah = new ArrayList<String>(id_no_psl);
for (int u = 0; u < ubah.size(); u++) {
List<String> id_hkm = c.ListIdHukum_HP(id_p_baru);
for (int j = 0; j < id_hkm.size(); j++) { //cari
term hukum
String trmHkm =
c.cariTermHkm_KH(id_hkm.get(j));
List_termHukum.add(trmHkm);
}
}
}
} catch (SQLException ex){
Logger.getLogger(HitungWij_Kasus.class.getName()).log(Level.SEVERE,
null, ex);
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
100
4.4. Implementasi Pembobotan TF-IDF
Implementasi proses Pembobotan TF-IDF pada dokumen pasal dan kasus
dilakukan dengan cara yang sama, yaitu dengan melakukan perhitungan nidf_j
dikali dengan ntf_ij.
Pada kode program 4.18 di bawah ini akan dijalankan jika istilah (term)
tersebut bukan merupakan stopwords dari hukum :
Term_Pasal cari = con.cariTermPasal(term);
String id = con.id_term();
Term_Pasal tp = new Term_Pasal();
Indeks_Pasal ip = new Indeks_Pasal();
if (cari.getTerm_pasal() == null) {//tdk ada term yg sama
int set_dfj = 1; //mka buat bru d tbl termpsl
tp.setId_term_pasal(id);
tp.setTerm_pasal(term);
tp.setDf_j(set_dfj);
con.InsertTermPasalversi2(tp);
double set_tfij = 1.0;
ip.setId_pasal(id_pasal);
ip.setId_term_pasal(id);
ip.setTf_ij(set_tfij);
con.InsertIndeksPasalversi2(ip);
} else if ((cari.getTerm_pasal()).equals(term)) { // jika term
sudah ada di tabel termpasal
Indeks_Pasal cr_id_psl = con.CariIdPasal(id_pasal);
String id_psl = cr_id_psl.getId_pasal();
Term_Pasal crIdTerm = con.CariIdTerm(term);
String idTrm = crIdTerm.getId_term_pasal();
//cari id term dan id pasal tersebut di tbl term pasal
String cariTermIndeks = con.CekIDP_IDT(id_pasal, idTrm);//ini
untuk search baris di indeks pasal
} else if ((cari.getTerm_pasal()).equals(term)) { // jika term sudah ada
di tabel termpasal
Indeks_Pasal cr_id_psl = con.CariIdPasal(id_pasal);
String id_psl = cr_id_psl.getId_pasal();
Term_Pasal crIdTerm = con.CariIdTerm(term);
String idTrm = crIdTerm.getId_term_pasal();
//cari id term dan id pasal di tbl term pasal, cr brs di IP
String cariTermIndeks = con.CekIDP_IDT(id_pasal, idTrm);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
101
Kode Program 4.18 Implementasi Perhitungan TF_ij
Setelah menghitung jumlah tf_ij, langkah selanjutnya adalah menghitung
jumlah df_j dan nidf_j yang diimplementasikan pada kode program 4.19 di bawah
ini :
Kode Program 4.19 Implementasi Perhitungan DF_j dan NIDF_j
if (cariTermIndeks == null) {
ip.setId_pasal(id_pasal);
ip.setId_term_pasal(idTrm);
ip.setTf_ij(1.0);
con.InsertIndeksPasalversi2(ip);
} else if (cariTermIndeks != null) {
Indeks_Pasal tfij1 = con.TotalTFIJ(id_psl, idTrm);
Double tfij_double11 = tfij1.getTf_ij();
Double total_tfij = tfij_double11 + 1.0;
con.SetTF_IJ(id_psl, idTrm, total_tfij);
}
}
public void HitungDF_nIDF_Pasal() {
try {
Control con = Control.getkoneksi();
int m = con.HitungJumlahPasal();
double nidfj;
//Hitung DF
List<Term_Pasal> listTP = con.ListTermPasal();
for (int b = 0; b < listTP.size(); b++) {
String idTrmPsl_b = listTP.get(b).getId_term_pasal();
Term_Pasal TP = con.HitungJmlhDf(idTrmPsl_b);
int jmlhDF = (int) TP.getDf_j();
con.SetDFJ(idTrmPsl_b, jmlhDF);
//hitung nidfj
nidfj = (Math.log(m / jmlhDF)) / (Math.log(m));
String nidfjStr = String.valueOf(nidfj);
if (nidfjStr.equals("NaN")) {
nidfj = 0;
con.SetNIDFj(nidfj, idTrmPsl_b);
} else if (!nidfjStr.equals("NaN")) {
con.SetNIDFj(nidfj, idTrmPsl_b);
}
}
} catch (SQLException ex){
{Logger.getLogger(HitungWij_Pasal.class.getName()).log(Level.SEVERE,
null, ex);
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
102
Langkah terakhir dari pembobotan TF-IDF adalah perhitungan W_ij yang
diimplementasikan pada kode program 4.20 berikut ini :
Kode Program 4.20 Implementasi Perhitungan W_ij
4.5. Implementasi Pencarian Melalui Inverted Index
Pada proses pencarian baik pada pasal maupun kasus diperlukan untuk
melakukan pembangunan inverted index terlebih dahulu agar proses pencarian
tidak menghabiskan waktu yang lama mengingat banyaknya koleksi dokumen
pada basis data. Selanjutnya akan dilakukan dengan operasi AND pada pasal dan
OR pada dokumen kasus untuk mendapatkan hasil pasal serta dokumen kasus
yang sesuai.
public void HitungWijPasal(String id_pasal) {
try {
Control con = Control.getkoneksi();
//hitung MaxTf
int maxtfi = con.HitungMaxTFi(id_pasal);
double ntfij;
double wij;
//ambil nilai TF dan hitung NTFij
List<Indeks_Pasal> list =
con.ListIndeksPasalperIdPasal(id_pasal);
for (int j = 0; j < list.size(); j++) {
ntfij = (list.get(j).getTf_ij()) / (maxtfi);
String id_trm = list.get(j).getId_term_pasal();
con.SetNTFij(ntfij, id_trm, id_pasal);
//hitung wij
Term_Pasal crNIDF = con.cariNIDF_j(id_trm);
wij = ntfij * crNIDF.getNidf();
con.SetWij(wij, id_trm, id_pasal);
}
} catch (SQLException ex) {
Logger.getLogger(HitungWij_Pasal.class.getName()).log(Level.SEVERE,
null, ex);
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
103
4.5.1. Pencarian pada Pasal (query to document)
Berikut ini pada kode program 4.21 merupakan implementasi dari proses
membangun inverted index pada pasal :
Kode Program 4.21 Implementasi Pembangunan Inverted Index Pasal
public void BangunInvertedIndexUU() {
try {
koneksi = Control.getkoneksi();
ii = new InvertedIndexBasic();
List<Indeks_Pasal> listIndeks = koneksi.ListIndeksPasal();
String trm, idpsl, idtrm2;
for (int i = 0; i < listIndeks.size(); i++) {
Indeks_Pasal listI = listIndeks.get(i);
idtrm2 = listI.getId_term_pasal();
idpsl = listI.getId_pasal();
Term_Pasal crTrm = koneksi.cariTermPasalKata(idtrm2);
trm = crTrm.getTerm_pasal();
ii.add(trm, idpsl);
}
ii.printInvertedIndexBasic();
} catch (SQLException ex) {
Logger.getLogger(FormPencarian.class.getName()).log(Level.SEVERE, null,
ex);
} catch (NullPointerException ex) {
Logger.getLogger(FormPencarian.class.getName()).log(Level.SEVERE, null,
ex);
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
Pada kode program 4.21 terdapat proses pengambilan list indeks_pasal
untuk mendapatkan id_term dan id_pasal untuk diindekskan. Proses pengambilan
list tersebut diimplementasikan pada kode program 4.22 berikut ini :
Kode Program 4.22 Implementatsi Pengambilan List Indeks_Pasal
Setelah melakukan pengambilan list id_term dan id_pasal, selanjutnya
sistem mencari term_pasal berdasarkan id_term yang diperoleh. Langkah tersebut
diimplementasikan pada kode program 4.23 berikut ini :
Kode Program 4.23 Implementasi Pencarian Term_Pasal
public List<Indeks_Pasal> ListIndeksPasal() throws SQLException {
PreparedStatement statement = null;
ResultSet result = null;
conn.setAutoCommit(false);
String sql = "SELECT tf_ij, ntf_ij, w_ij, id_pasal, id_term_pasal
FROM indeks_pasal";
statement = conn.prepareStatement(sql);
result = statement.executeQuery();
List<Indeks_Pasal> ip1 = new ArrayList<Indeks_Pasal>();
while (result.next()) {
Indeks_Pasal ip = new Indeks_Pasal();
ip.setTf_ij(result.getDouble(1));
ip.setNtf_ij(result.getDouble(2));
ip.setW_ij(result.getDouble(3));
ip.setId_pasal(result.getString(4));
ip.setId_term_pasal(result.getString(5));
ip1.add(ip);
}
conn.commit();
return ip1;
}
public Term_Pasal cariTermPasalKata(String idTrm) throws SQLException {
PreparedStatement statement = null;
ResultSet rs2 = null;
conn.setAutoCommit(false);
String sql = "SELECT term_pasal from termpasal where
id_term_pasal = '" + idTrm + "'";
statement = conn.prepareStatement(sql);
rs2 = statement.executeQuery();
Term_Pasal tp = new Term_Pasal();
while (rs2.next()) {
tp.setTerm_pasal(rs2.getString(1));
}
conn.commit();
return tp;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
105
Setelah itu, lakukan pengindeksan pada term_pasal dan id_pasal yang
merupakan inti dari pembangunan inverted index yang telah diimplementasikan
pada kode program 4.24 berikut ini :
Kode Program 4.24 Implementasi Pengindeksan
Pada kode program 4.25 di bawah ini merupakan implementasi pengurutan dari
posting list berdasarkan id_pasal pada setiap term_pasal :
Kode Program 4.25 Implementasi Pengurutan Posting List
public void add(String pTerm, String pDocument) {
Term vTerm = termList.get(new Term(pTerm));
if (vTerm == null) {
Term oTerm = new Term(pTerm);
oTerm.postinglist = new LinkedListOrderedUnique<Document>();
oTerm.postinglist.addSort(new Document(pDocument));
termList.add(oTerm);
} else {
vTerm.getPostinglist().addSort(new Document(pDocument));
}
}
public boolean addSort(E e) {
ListIterator<E> iterator = this.listIterator();
while (iterator.hasNext()) {
E temp = iterator.next();
if (((Comparable) temp).compareTo(e) > 0) {
iterator.previous();
iterator.add(e);
return true;
} else if (((Comparable) temp).compareTo(e) == 0) {
return true;
}
}
iterator.add(e);
return true;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
106
Setelah posting list diurutkan, maka inverted index sudah bisa dicetak yang
diimplementasikan pada kode program 4.26 :
Kode Program 4.26 Implementasi Cetak Inverted Index
public void printInvertedIndexBasic() {
ListIterator<Term> iterator = termList.listIterator();
while (iterator.hasNext()) {
Term vTerm = iterator.next();
System.out.print(vTerm.getTerm() + " => ");
ListIterator<Document> iterator2 =
vTerm.postinglist.listIterator();
while (iterator2.hasNext()) {
Document pDoc = iterator2.next();
System.out.print(" " +
vTerm.getPostinglist().get(pDoc));
}
System.out.println("");
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
107
4.5.1.1. Operator AND
Sebelum mengoperasikan operator AND, perlunya mencari bobot dari
masing-masing term yang telah didapat dari kesesuaian dengan query. Berikut ini
pada kode program 4.27 implementasi dari pengambilan bobot :
Kode Program 4.27 Implementasi Pencarian Bobot W_ij
public List<String> TF_IDF_AND(Control koneksi, InvertedIndexBasic ii,
String cari) {
try {
StringTokenizer token2 = new StringTokenizer(cari, " .,-
'[]{}/|@#!$%^&*-+=?<>:;()");
while (token2.hasMoreTokens()) {
String nxtTkn2 = token2.nextToken();
listTerm.add(nxtTkn2);
Term_Pasal cr1 = koneksi.CariIdTerm(nxtTkn2);
String ID_TERM = cr1.getId_term_pasal();
//cr DF
Term_Pasal cr2 = koneksi.TotalDFJ(nxtTkn2);
Double DF = cr2.getDf_j();
listDF.add(DF);
String test = ii.printSearch2(nxtTkn2);
if (test != null) {
StringTokenizer tokenTest = new
StringTokenizer(test, " .,-'[]{}/|@#!$%^&*-+=?<>:;()txt");
while (tokenTest.hasMoreTokens()) {
String dok = tokenTest.nextToken().toString();
Indeks_Pasal cr3 = koneksi.cariW_ij2(ID_TERM,
dok);
Double W_ij = cr3.getW_ij();
list_wij.add(W_ij);
listDok.add(dok);
}
}
}
hasilAND = new InvertedIndexBasic().AND(listTerm, listDF, list_wij,
listDok);
System.out.println("");
} catch (SQLException ex) {
Logger.getLogger(OperatorAND_OR.class.getName()).log(Level.SEVERE,
null, ex);
}
return hasilAND;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
108
Pada kode program 4.28 di bawah ini berfungsi untuk menjumlahkan Wij
berdasarkan query dan mengurutkan dokumen pasal berdasarkan Wij secara
descending :
public List<String> AND(LinkedList<String> listTERM,
LinkedList<Double> list_DF, LinkedList<Double> list_Wij,
LinkedList<String> list_dok) {
List<String> hasilAkhir = new ArrayList<>();
Map<String, Double> mp0 = new HashMap<>();
Map<String, Double> mp = new HashMap<>();
System.out.println("list term size : " + listTERM.size());
System.out.println("list DF size : " + list_DF.size());
System.out.println("list wij size : " + list_Wij.size());
System.out.println("list dok size : " + list_dok.size());
for (int i = 0; i < listTERM.size(); i++) {
String currentTerm = listTERM.get(i);
Double currentDF = list_DF.get(i);
mp.put(currentTerm, currentDF);
}
this.sortByValuesAscending(mp);
int sizeListTermOrdered = listTermOrdered.size();
System.out.println("Size Term Ordered : " +
sizeListTermOrdered);
List<String> listA = new ArrayList<>();
List<String> listB = new ArrayList<>();
List<String> listC = new ArrayList<>();
List<Double> listA1 = new ArrayList<>();
List<Double> listB1 = new ArrayList<>();
int ambil = 0;
while (sizeListTermOrdered > 0) {
if (ambil == 0) {
for (int j = 0; j < 2; j++) {
if (j == 0) {
String termORdered = listTermOrdered.get(j);
for (int i = 0; i < listTERM.size(); i++) {
if (listTERM.get(i).equals(termORdered)) {
indekDF1 = i;
dDF1 = list_DF.get(i);
}
}
} else {
String termORdered = listTermOrdered.get(j);
System.out.println("Term ke- " + j + " = " +
termORdered);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
109
for (int i = 0; i < listTERM.size(); i++) {
if (listTERM.get(i).equals(termORdered)) {
indekDF2 = i;
System.out.println("indekDF2 putaran1
: " + indekDF2);
dDF2 = list_DF.get(i);
System.out.println("isi DF2 putaran 1
: " + dDF2);
}
}
}
}
ambil = ambil + 2;
sizeListTermOrdered = sizeListTermOrdered - ambil;
if (indekDF1 != 0) {
for (int i = 0; i < indekDF1; i++) {
nilaiDF1 = list_DF.get(i);
countDF1 = countDF1 + nilaiDF1
}
} else if (indekDF1 == 0) {
countDF1 = 0;
}
if (indekDF2 != 0) {
for (int i = 0; i < indekDF2; i++) {
nilaiDF2 = list_DF.get(i);
countDF2 = countDF2 + nilaiDF2;
}
} else if (indekDF2 == 0) {
countDF2 = 0;
}
int batasA = (int) (countDF1 + dDF1);
String idDok;
Double wij_;
for (int i = (int) countDF1; i < batasA; i++) {
idDok = list_dok.get(i);
listA.add(idDok);
wij_ = list_Wij.get(i);
listA1.add(wij_);
}
System.out.println("list A : " + listA);
int batasB = (int) (countDF2 + dDF2);
String idDok2;
Double wij2_;
for (int i = (int) countDF2; i < batasB; i++) {
idDok2 = list_dok.get(i);
listB.add(idDok2);
wij2_ = list_Wij.get(i);
listB1.add(wij2_);
}
System.out.println("list B : " + listB);
}
else if (ambil > 0) {
countDF2 = 0; //hapus jmlh countDF putaran awal
listB.removeAll(listB);
for (int j = ambil; j < ambil + 1; j++) {
String termORdered = listTermOrdered.get(j);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
110
for (int i = 0; i < listTERM.size(); i++) {
if (listTERM.get(i).equals(termORdered)) {
indekDF2 = i;
dDF2 = list_DF.get(i);
}
}
}
ambil = ambil + 1;
sizeListTermOrdered = sizeListTermOrdered - 1;
System.out.println("sizeOrder saat ini : " +
sizeListTermOrdered);
if (indekDF2 > 0) {
for (int i = 0; i < indekDF2; i++) {
nilaiDF2 = list_DF.get(i);
countDF2 = countDF2 + nilaiDF2;
}
} else if (indekDF2 == 0) {
countDF2 = 0;
}
int batasB = (int) (countDF2 + dDF2);
String idDok2;
Double wij2_;
for (int i = (int) countDF2; i < batasB; i++)
{
idDok2 = list_dok.get(i);
listB.add(idDok2);
wij2_ = list_Wij.get(i);
listB1.add(wij2_);
}
System.out.println("list B : " + listB);
}
listC = listA;
System.out.println("list C : "+listC)
listA = this.intersection(listA, listB);
System.out.println("intersection : " + listA);
}
//penentuan urutan berdasarkan bobot wij :
Double Wij_C = 0.0, Wij_B = 0.0, TotalWij;
String A, B, C;
System.out.println("listA.size() : "+listA.size());
for (int a = 0; a < listA.size(); a++) {
A = listA.get(a);
System.out.println("A : " + A);
for (int c = 0; c < listC.size(); c++) {
C = listC.get(c);
if (C.equals(A)) {
Wij_C = listA1.get(c);
break;
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
111
Kode Program 4.28 Implementasi Pengurutan Dokumen Pasal Berdasarkan W_ij
Pada kode program 4.28 terdapat pemanggilan method intersection yang
berfungsi untuk pemotongan pada posting list yang terdapat dikedua list yang
berbeda. Berikut ini pada kode program 4.29 merupakan uraian dari method
intersection :
Kode Program 4.29 Implementasi Intersection
for (int b = 0; b < listB.size(); b++) {
B = listB.get(b);
if (B.equals(A)) {
Wij_B = listB1.get(b);
break;
}
}
TotalWij = Wij_C + Wij_B;
System.out.println("TotalWij : " + TotalWij);
mp0.put(A, TotalWij);
}
hasilAkhir = sortByValuesDescending(mp0);
return hasilAkhir;
}
public <T> List<T> intersection(List<T> list1, List<T> list2) {
List<T> list = new ArrayList<T>();
for (T t : list1) {
if (list2.contains(t)) {
list.add(t);
}
}
return list;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
112
Berikut ini pada kode program 4.30 merupakan implementasi untuk
mengurutkan hasil list id_pasal secara descending berdasarkan bobot wij :
Kode Program 4.30 Implementasi Pengurutan List secara Descending
Setelah didapatkan hasil urutan id_pasal, maka selanjutnya sistem
menjalankan tahap pencarian tentang dan dokumen pasal berdasarkan id_pasal
yang disajikan pada kode program 4.31 berikut ini :
Kode Program 4.31 Implementasi Pencarian Dokumen Pasal di Basis Data
List<String> hasilDescending = new ArrayList<>();
public <K, V extends Comparable<V>> List<String>
sortByValuesDescending(final Map<K, V> map) {
Comparator<K> valueComparator = new Comparator<K>() {
public int compare(K k1, K k2) {
int compare = map.get(k2).compareTo(map.get(k1));
if (compare == 0) {
return 1;
} else {
return compare;
}
}
};
Map<K, V> sortedByValues = new TreeMap<K, V>(valueComparator);
sortedByValues.putAll(map);
Set set = sortedByValues.entrySet();
Iterator i = set.iterator();
while (i.hasNext()) {
Map.Entry me = (Map.Entry) i.next();
System.out.println(me.getKey());
hasilDescending.add(me.getKey().toString());
}
return hasilDescending; }
public Pasal AmbilPasal(String id_pasal) throws SQLException {
PreparedStatement statement = null;
ResultSet rs2 = null;
conn.setAutoCommit(false);
String sql = "SELECT id_pasal, tentang, dok_pasal from pasal "
+ "where id_pasal = '" + id_pasal + "'";
statement = conn.prepareStatement(sql);
rs2 = statement.executeQuery();
Pasal pasal = new Pasal();
while (rs2.next()) {
pasal.setId_pasal(rs2.getString(1));
pasal.setTentang(rs2.getString(2));
pasal.setDok_psl_stream(rs2.getBinaryStream(3));
}
conn.commit();
return pasal;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
113
4.5.2. Pencarian pada Kasus (document to document)
Proses pembangunan inverted index kasus sama dengan pasal sebelumnya
yang terdapat pada kode program 4.21. Berikut ini pada kode program 4.32
implementasi inverted index kasus :
Kode Program 4.32 Implementasi Pembangunan Inverted Index Kasus
Pada kode program 4.33 berikut ini merupakan implementasi untuk
membaca dokumen yang dimasukan oleh pengguna sebagai kata kunci.
Kode Program 4.33 Implementasi Membaca Dokumen sebagai Kata Kunci
public void BangunInvertedIndexKasus() {
try {
koneksi2 = Control.getkoneksi();
ii2 = new InvertedIndexBasic();
List<Indeks_Kasus> listIndeks = koneksi2.ListIndeksKasus();
String trm, idks, idtrm2;
for (int i = 0; i < listIndeks.size(); i++) {
Indeks_Kasus listI = listIndeks.get(i);
idtrm2 = listI.getId_term_kasus();
idks = listI.getId_kasus();
Term_Kasus crTrm = koneksi2.cariTermKasusKata(idtrm2);
trm = crTrm.getTerm_kasus();
ii2.add(trm, idks);
}
ii2.printInvertedIndexBasic();
} catch (SQLException ex) {
Logger.getLogger(FormPencarian.class.getName()).log(Level.SEVERE, null,
ex);
} catch (NullPointerException ex) {
Logger.getLogger(FormPencarian.class.getName()).log(Level.SEVERE, null,
ex);
}
}
List<Kasus> listKasus = new ArrayList<>();
FileReader fileReader = null;
File f = new File(file.getAbsolutePath());
fileReader = new FileReader(f);
BufferedReader bufferedReader = new
BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
stringBuffer.append(" " + "\n");
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
114
Selanjutnya sistem akan mengambil term yang sesuai dengan
Kamus_Hukum pada dokumen kasus, yang diimplementasikan pada kode
program 4.34 berikut ini :
Kode Program 4.34 Implementasi Pengambilan Term sesuai Kamus Hukum
public String SaringStopwordBuffer2(StringBuffer input) {
try {
Scanner inputSc = new Scanner(input.toString());
Control c = Control.getkoneksi();
String inputStr = input.toString();
while (inputSc.hasNextLine()) {
String klmt = inputSc.nextLine();
StringTokenizer st = new
StringTokenizer(klmt.toString(),
"!@#$%^&*()_+{}|:<>?1234567890=[];',./€");
while (st.hasMoreTokens()) {
String test = st.nextToken();
StringTokenizer st2 = new StringTokenizer(test);
while (st2.hasMoreTokens()) {
String kata =
String.valueOf(st2.nextToken().toLowerCase());
String ygdicari = c.cariTermHkm_KH2(kata);
if (ygdicari != null) {
listKataHukum.add(ygdicari);
}
}
}
}
for (int i = 0; i < listKataHukum.size(); i++) {
String term = listKataHukum.get(i);
cari = cari + " " + term;
}
} catch (SQLException ex) {
Logger.getLogger(StopwordsControl.class.getName()).log(Level.SEVERE,
null, ex);
}
return cari;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
115
4.5.2.1. Operator OR
Pengambilan bobot W_ij pada masing-masing term yang telah diperoleh,
yang diimplementasikan pada kode program 4.35 berikut ini :
Kode Program 4.35 Implementasi Pengambilan W_ij pada Pencarian Kasus
public List<String> TF_IDF_OR(Control koneksi, InvertedIndexBasic ii,
String cari) {
try {
StringTokenizer(cari, " .,-'[]{}/|@#!$%^&*+=?<>:;()");
while (token2.hasMoreTokens()) {
String nxtTkn2 = token2.nextToken();
Term_Kasus cr1 = koneksi.CariIdTermKasus(nxtTkn2);
String ID_TERM = cr1.getId_term_kasus();
String test = ii.printSearch2(nxtTkn2);
if (test != null) {
StringTokenizer tokenTest = new StringTokenizer(test);
while (tokenTest.hasMoreTokens()) {
String hsl = tokenTest.nextToken().toString();
Indeks_Kasus cr2 = koneksi.cariW_ij_Kasus(ID_TERM, hsl);
Double W_ij = cr2.getW_ij();
list_wij.add(W_ij);
listDok.add(hsl);
}
}
}
hasilOR = new
InvertedIndexBasic().duplikasiList_CountWij(listDok, list_wij);
} catch (SQLException ex){
Logger.getLogger(OperatorAND_OR.class.getName()).log(Level.SEVERE,
null, ex); } } return hasilOR; }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
116
Proses yang diperlukan untuk operasi OR adalah proses untuk
menghilangkan duplikasi pada list id dokumen dan perhitungan W_ij, kemudian
akan diurutkan descending sebagai berikut :
Kode Program 4.36 Implementasi Penghilang Duplikasi
public List<String> duplikasiList_CountWij(LinkedList<String> list,
LinkedList<Double> list_wij) {
LinkedList<String> ListDokBaru = new LinkedList<String>();
LinkedList<Double> ListWijBaru = new LinkedList<Double>();
list_wij.size());
for (int i = 0; i < list.size(); i++) {
String currentDok = list.get(i);
Double currentWij = list_wij.get(i);
if (i == 0) {
ListDokBaru.add(currentDok);
ListWijBaru.add(currentWij);
} else if (i != 0) {
if (ListDokBaru.contains(currentDok)) {
int indx = ListDokBaru.indexOf(currentDok);
double wij = (double) ListWijBaru.get(indx);
Double wij_jumlah = list_wij.get(i) + wij;
ListWijBaru.set(indx, wij_jumlah);
} else if (!ListDokBaru.contains(currentDok)) {
ListDokBaru.add(currentDok);
ListWijBaru.add(currentWij);
}
}
}
Map<String, Double> mp = new HashMap<String, Double>();
for (int j = 0; j < ListDokBaru.size(); j++) {
String dok_2 = ListDokBaru.get(j);
Double wij_2 = ListWijBaru.get(j);
mp.put(dok_2, wij_2);
}
hasilDuplikasiList = this.sortByValuesDescending(mp);
return hasilDuplikasiList;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
117
Pada kode program 4.37 berikut ini merupakan implementasi pencarian
dokumen kasus pada tabel Kasus berdasarkan id_kasus :
Kode Program 4.37 Implementasi Pencarian Dokumen Kasus Pada Tabel Kasus
public Kasus AmbilKasus(String id_kasus) throws SQLException {
PreparedStatement statement = null;
ResultSet rs2 = null;
conn.setAutoCommit(false);
String sql = "SELECT id_kasus, judul, dok_kasus from kasus "
+ "where id_kasus = '" + id_kasus + "'";
statement = conn.prepareStatement(sql);
rs2 = statement.executeQuery();
Kasus kasus = new Kasus();
while (rs2.next()) {
kasus.setId_kasus(rs2.getString(1));
kasus.setJudul(rs2.getString(2));
kasus.setDok_ksus_stream(rs2.getBinaryStream(3));
}
conn.commit();
return kasus;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
118
4.6. Implementasi Antarmuka
4.6.1. Form Utama
Pada Form Utama ini pengguna dapat memilih menu Pencarian atau
Undang-Undang. Menu Pencarian berfungsi untuk mencari pasal berdasarkan
query maupun dokumen kasus, dan menu Undang-Undang berfungsi untuk
menampilkan isi pasal yang ingin dicari. Pihak administrator dapat login dengan
memilih menu Administrator.
Gambar 4.1 Antarmuka Form Utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
119
4.6.2. Form Login
Pihak administrator harus melakukan login di Form Login seperti pada
gambar 4.2 berikut ini :
Gambar 4.2 Antarmuka Form Login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
120
4.6.3. Form Tambah Dokumen
Pada gambar 4.3 berikut ini merupakan form untuk menambah undang-
undang dalam satuan pasal, dengan cara memasukan tahun, nomor, pasal, tentang,
dan dokumen pasal. Penambahan dokumen dapat dilakukan berdasarkan browse
ke folder komputer (.txt) maupun memasukan teks secara langsung.
Gambar 4.3 Antarmuka Form Tambah Dokumen Undang-Undang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
121
Kemudian pada gambar 4.4 berikut ini merupakan form untuk
menambahkan dokumen kasus dengan cara memasukan judul, dokumen kasus
(.txt), dan pasal-pasal yang terkait pada kasus pelanggaran tersebut.
Gambar 4.4 Antarmuka Form Tambah Dokumen Kasus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
122
4.6.4. Form Pencarian
Pada gambar 4.5 berikut ini merupakan form Pencarian Undang-Undang
berdasarkan query yang dimasukan oleh pengguna. Pada form tersebut terdapat
field uraian yang berisi uraian dari isi pasal apabila pengguna mengklik row tabel
Undang-Undang.
Gambar 4.5 Antarmuka Form Pencarian Pasal (Query to Document)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
123
Pada gambar 4.6 berikut ini merupakan form pencarian kasus dan pasal
(document to document) berdasarkan dokumen kasus yang dimasukan oleh
pengguna, selain itu pengguna dapat mengetahui beberapa pasal yang terkait pada
kasus pelanggaran yang terletak pada tabel Undang-Undang apabila pengguna
mengklik row pada tabel kasus.
Gambar 4.6 Antarmuka Form Pencarian Kasus dan Pasal (Document to
Document)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
124
4.6.5. Form Lihat Undang-Undang
Pada gambar 4.7 berikut ini merupakan form untuk mengetahui isi dari
undang-undang dalam satuan pasal berdasarkan tahun, atau tahun dan nomor, atau
tahun, nomor, dan pasal.
Gambar 4.7 Antarmuka Form Lihat Undang-Undang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
125
BAB V
5. ANALISIS HASIL
5.1. Analisa Hasil Sistem
Bab ini membahas hasil uji coba dari Sistem Pemerolehan Informasi
Undang-Undang dan Kasus yang telah dilakukan pada 5 orang responden advokat.
Masing-masing responden melakukan 2(dua) kali uji coba yaitu pada fitur
Pencarian Undang-Undang (query to document) dan Kasus (document to
document). Kemudian responden diminta untuk menentukan nilai relevansi dari
hasil uji coba. Hasil dari penilaian relevansi tersebut akan digunakan untuk
menentukan nilai recall dan precision dari sistem ini.
Berikut ini hasil yang diperoleh dari pengujian yang dilakukan responden
pada 30 Juni 2015 :
5.1.1. Hasil Uji Coba Query to Document
Berikut ini merupakan analisa dan pembahasan hasil uji coba dari sub sistem
query to document, dimana kata kunci yang akan digunakan yaitu :
1. penelantaran anak
2. memperbanyak hasil karya tanpa izin
3. penculikan anak
4. mengancam melalui elektronik
5. produksi barang tidak sesuai dengan jaminan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
126
5.1.1.1. Uji Coba Pertama Query to Document
Kata kunci sebelum operasi teks : penelantaran anak
Kata kunci setelah operasi teks : telantar anak
Dokumen ditemukan dari hasil pencarian : 5
Dokumen yang sesuai dari hasil pencarian : 4
Dokumen yang sesuai dari seluruh dokumen : 5
Terdapat 1 dokumen relevan yang tidak dapat ditemukan kembali yaitu pasal
26 UU No 23 Tahun 2002 yang terdapat pada gambar 5.1 berikut ini :
Gambar 5.1 Pasal 26 UU No. 23 Tahun 2002
Dokumen tersebut tidak dapat ditemukan oleh sistem karena hanya
mengandung kata “anak” maka tereliminasi oleh operasi AND tetapi dokumen
tersebut memiliki makna yang serupa dengan kata kunci.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
127
Berikut ini pada gambar 5.1 merupakan output uji coba pertama query to
document :
Gambar 5.2 Output Uji Coba Pertama Query to Document
Output uji coba pertama pada gambar 5.2 menampilkan 5 dokumen pasal
yang dapat ditemukan kembali oleh sistem. Selanjutnya, dari kelima dokumen
pasal tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.1
merupakan hasil penentuan relevansi dari dokumen yang diperoleh :
Tabel 5.1 Relevansi Uji Coba Pertama Query to Document
No. Urut Id_Pasal Relevansi
1. 2002_23_071 V
2. 2002_23_013 V
3. 2002_23_077 V
4. 2002_23_001 X
5. 2002_23_059 V
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
128
Berdasarkan tabel 5.1 terlihat bahwa ada 1 dokumen yang tidak relevan yaitu
dokumen ke-4 dan 4 dokumen sisanya relevan dengan kata kunci. Setelah
menentukan nilai relevansi dari masing-masing dokumen pasal pada tabel 5.1,
maka langkah selanjutnya adalah menentukan nilai recall dan precision yang
terdapat pada tabel 5.2 berikut ini :
Tabel 5.2 Recall dan Precision Uji Coba Pertama Query to Document
No. Urut Id_Pasal Recall Precision
1 2002_23_071 0.2 1
2 2002_23_013 0.4 1
3 2002_23_077 0.6 1
4 2002_23_001 0.6 0.75
5 2002_23_059 0.8 0.8
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.2 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.3 berikut ini :
Tabel 5.3 Interpolasi Uji Coba Pertama Query to Document
Recall Precision
0% 100%
10% 100%
20% 100%
30% 100%
40% 100%
50% 100%
60% 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
129
70% 80%
80% 80%
90% 0%
100% 0%
Pada gambar 5.2 berikut ini merupakan grafik dari hasil interpolasi pada tabel
5.3 :
Gambar 5.3 Recall Precision Uji Coba Pertama Query to Document
Pada gambar 5.3 garis yang dihasilkan hampir menyerupai garis horizontal
(mendekati kanan atas) yang artinya hampir semua dokumen yang diperoleh
relevan dengan kata kunci. Sedangkan titik-titik yang berada di 0% pada sumbu X
mempunyai arti bahwa ada dokumen yang relevan tetapi sistem tidak dapat
mendapatkannya kembali.
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
130
5.1.1.2. Uji Coba Kedua Query to Document
Kata kunci sebelum operasi teks : memperbanyak hasil karya tanpa izin
Kata kunci setelah operasi teks : perbanyak karya izin
Dokumen yang diperoleh : 6
Dokumen yang sesuai dari yang diperoleh : 4
Dokumen yang sesuai dari seluruh dokumen : 7
Terdapat 3 dokumen relevan yang tidak dapat ditemukan kembali, yang
pertama yaitu pasal 56 UU No. 19 Tahun 2002 yang disajikan pada gambar 5.4
berikut ini :
Gambar 5.4 Pasal 56 UU No. 19 Tahun 2002
Dokumen pertama pada gambar 5.4 tersebut tidak ditemukan karena
dokumen tersebut hanya mengandung kata “perbanyak” dan “karya” saja maka
tereliminasi oleh operasi AND. Kemudian dokumen yang kedua yaitu pasal 57
UU No. 19 Tahun 2002 yang disajikan pada gambar 5.5 berikut ini :
Gambar 5.5 Pasal 57 UU No. 19 Tahun 2002
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
131
Dokumen kedua pada gambar 5.5 tersebut tidak ditemukan karena tidak
mengandung kata yang sama dengan kata kunci tetapi memiliki makna yang mirip
dengan kata kunci. Kemudian dokumen yang ketiga yaitu pasal 72 UU No. 19
Tahun 2002 yang disajikan pada gambar 5.6 berikut ini :
Gambar 5.6 Pasal 7.2 UU No. 19 Tahun 2002
Dokumen ketiga pada gambar 5.6 tersebut tidak dapat ditemukan sistem
karena hanya mengandung kata “perbanyak” maka tereliminasi oleh operasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
132
AND, tetapi dokumen tersebut bersangkutan dengan pasal 49 yang relevan dengan
kata kunci. Berikut ini pada gambar 5.7 merupakan output uji coba kedua query to
document :
Gambar 5.7 Output Uji Coba Kedua Query to Document
Output uji coba kedua pada gambar 5.7 menampilkan 6 dokumen pasal yang
dapat ditemukan kembali oleh sistem. Selanjutnya, dari keenam dokumen pasal
tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.4 merupakan
hasil penentuan relevansi dari dokumen yang diperoleh :
Tabel 5.4 Relevansi Uji Coba Kedua Query to Document
No. Urut Id_Pasal Relevansi
1. 2002_19_049 V
2. 1997_12_001 V
3. 2002_19_002 X
4. 2002_19_010 V
5. 2002_19_001 X
6. 2002_19_016 V
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
133
Berdasarkan tabel 5.4 terlihat bahwa ada 2 dokumen yang tidak relevan yaitu
dokumen ke-3 dan ke-5 dan 4 dokumen sisanya relevan dengan kata kunci.
Setelah menentukan nilai relevansi dari masing-masing dokumen pasal pada tabel
5.4, maka langkah selanjutnya adalah menentukan nilai recall dan precision yang
terdapat pada tabel 5.5 berikut ini :
Tabel 5.5 Recall dan Precision Uji Coba Kedua Query to Document
No.Urut Id_Pasal Recall Precision
1 2002_19_049 0.142857 1
2 1997_12_001 0.285714 1
3 2002_19_002 0.285714 0.666667
4 2002_19_010 0.428571 0.75
5 2002_19_001 0.428571 0.6
6 2002_19_016 0.571429 0.666667
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.5 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.6 berikut ini :
Tabel 5.6 Interpolasi Uji Coba Kedua Query to Document
Recall Precision
0% 100%
10% 100%
20% 100%
30% 75%
40% 75%
50% 66%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
134
60% 0%
70% 0%
80% 0%
90% 0%
100% 0%
Pada gambar 5.4 berikut ini merupakan grafik dari hasil interpolasi pada tabel
5.6 :
Gambar 5.8 Recall Precision Uji Coba Kedua Query to Document
Pada gambar 5.8 garis yang dihasilkan masih jauh dari bentuk garis
horizontal yang artinya tingkat precision dari kata kunci pada uji coba kedua ini
kurang tepat. Sedangkan titik-titik yang berada di 0% pada sumbu X
menggambarkan bahwa ada dokumen yang relevan tetapi sistem tidak dapat
mendapatkannya kembali.
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
135
5.1.1.3. Uji Coba Ketiga Query to Document
Kata kunci sebelum operasi teks : penculikan anak
Kata kunci setelah operasi teks : culik anak
Dokumen yang diperoleh : 4
Dokumen yang sesuai dari yang diperoleh : 3
Dokumen yang sesuai dari seluruh dokumen : 4
Terdapat 1 dokumen relevan yang tidak dapat ditemukan kembali yaitu pasal
16 UU No. 23 Tahun 2002 yang disajikan pada gambar 5.9 berikut ini :
Gambar 5.9 Pasal 16 UU No. 23 Tahun 2002
Dokumen pada gambar 5.9 tersebut tidak dapat ditemukan kembali karena
hanya mengandung kata “anak” maka tereliminasi oleh operasi AND tetapi
terdapat kata “penahanan” dan “penangkapan” yang memiliki makna mirip
(sinonim) dengan kata “culik”. Berikut ini pada Gambar 5.10 merupakan output
uji coba ketiga query to document :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
136
Gambar 5.10 Output Uji Coba Ketiga Query to Document
Output uji coba pertama pada gambar 5.10 menampilkan 4 dokumen pasal
yang dapat ditemukan kembali oleh sistem. Selanjutnya, dari kelima dokumen
pasal tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.7
merupakan hasil penentuan relevansi dari dokumen yang diperoleh :
Tabel 5.7 Relevansi Uji Coba Ketiga Query to Document
No. Urut Id_Pasal Relevansi
1. 2002_23_068 V
2. 2002_23_001 X
3. 2002_23_059 V
4. 2002_23_078 V
Berdasarkan tabel 5.7 terlihat bahwa ada 1 dokumen yang tidak relevan yaitu
dokumen ke-2 dan 3 dokumen sisanya relevan dengan kata kunci. Setelah
menentukan nilai relevansi dari masing-masing dokumen pasal pada tabel 5.7,
maka langkah selanjutnya adalah menentukan nilai recall dan precision yang
terdapat pada tabel 5.8 berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
137
Tabel 5.8 Recall dan Precision Uji Coba Ketiga Query to Document
No. Urut Id_Pasal Recall Precision
1 2002_23_068 0.25 1
2 2002_23_001 0.25 0.5
3 2002_23_059 0.5 0.666667
4 2002_23_078 0.75 0.75
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.8 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.9 berikut ini :
Tabel 5.9 Interpolasi Uji Coba Ketiga Query to Document
Recall Precision
0% 100%
10% 100%
20% 100%
30% 75%
40% 75%
50% 75%
60% 75%
70% 75%
80% 0%
90% 0%
100% 0%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
138
Pada gambar 5.6 berikut ini merupakan grafik dari hasil interpolasi pada tabel
5.9 :
Gambar 5.11 Recall Precision Uji Coba Ketiga Query to Document
Pada gambar 5.11 garis yang dihasilkan jauh dari bentuk garis horizontal
yang artinya tingkat precision dari dokumen kasus yang diperoleh dengan kata
kunci uji coba ketiga ini kurang tepat. Sedangkan titik-titik yang berada di 0%
pada sumbu X menggambarkan bahwa ada dokumen yang relevan tetapi sistem
tidak dapat mendapatkannya kembali.
5.1.1.4. Uji Coba Keempat Query to Document
Kata kunci sebelum operasi teks : mengancam melalui elektronik
Kata kunci setelah operasi teks : ancam elektronik
Dokumen yang diperoleh : 3
Dokumen yang sesuai dari yang diperoleh : 2
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
139
Dokumen yang sesuai dari seluruh dokumen : 3
Terdapat 1 dokumen relevan yang tidak dapat ditemukan kembali yaitu pasal
45 UU No. 11 Tahun 2008 yang disajikan pada gambar 5.12 berikut ini :
Gambar 5.12 Pasal 45 UU No. 11 Tahun 2008
Dokumen pada gambar 5.12 tersebut tidak dapat ditemukan kembali karena
tidak mengandung kata yang sama dengan kata kunci, tetapi dokumen tersebut
bersangkutan dengan pasal 29 yang sesuai dengan kata kunci. Berikut ini pada
gambar 5.13 merupakan output uji coba keempat query to document :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
140
Gambar 5.13 Output Uji Coba Keempat Query to Document
Output uji coba keempat pada Gambar 5.13 menampilkan 3 dokumen pasal
yang dapat ditemukan kembali oleh sistem. Selanjutnya, dari ketiga dokumen
pasal tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.10
merupakan hasil penentuan relevansi dari dokumen yang diperoleh :
Tabel 5.10 Relevansi Uji Coba Keempat Query to Document
No. Urut Id_Pasal Relevansi
1. 2008_11_029 V
2. 2008_11_052 V
3. 1999_40_001 X
Berdasarkan tabel 5.10 terlihat bahwa ada 1 dokumen yang tidak relevan
yaitu dokumen ke-3 dan 2 dokumen sisanya relevan dengan kata kunci. Setelah
menentukan nilai relevansi dari masing-masing dokumen pasal pada tabel 5.10,
maka langkah selanjutnya adalah menentukan nilai recall dan precision yang
terdapat pada tabel 5.11 berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
141
Tabel 5.11 Recall dan Precision Uji Coba Keempat Query to Document
No. Urut Id_Pasal Recall Precision
1 2002_23_071 0.333333 1
2 2002_23_013 0.666667 1
3 2002_23_077 0.666667 0.666667
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.11 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.12 berikut ini :
Tabel 5.12 Interpolasi Uji Coba Keempat Query to Document
Recall Precision
0% 100%
10% 100%
20% 100%
30% 100%
40% 100%
50% 100%
60% 100%
70% 0%
80% 0%
90% 0%
100% 0%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
142
Pada gambar 5.8 berikut ini merupakan diagram garis dari hasil interpolasi
pada tabel 5.12 :
Gambar 5.14 Recall Precision Uji Coba Keempat Query to Document
Pada gambar 5.14 garis yang dihasilkan hampir menyerupai garis horizontal
(mendekati kanan atas) yang artinya hampir semua dokumen yang diperoleh
relevan dengan kata kunci. Sedangkan titik-titik yang berada di 0% pada sumbu X
mempunyai arti bahwa ada dokumen yang relevan tetapi sistem tidak dapat
mendapatkannya kembali.
5.1.1.5. Uji Coba Kelima Query to Document
Kata kunci sebelum operasi teks : produksi barang tidak sesuai dengan jaminan
Kata kunci setelah operasi teks : produksi barang jamin
Dokumen yang diperoleh : 7
Dokumen yang sesuai dari yang diperoleh : 4
Dokumen yang sesuai dari seluruh dokumen : 8
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
143
Terdapat 4 dokumen relevan yang tidak dapat ditemukan kembali, yang
pertama yaitu pasal 4 UU No.8 Tahun 1999 yang disajikan pada gambar 5.15
berikut ini :
Gambar 5.15 Pasal 4 UU No. 8 Tahun 1999
Dokumen pertama tidak dapat ditemukan kembali karena dokumen tersebut
hanya mengandung kata “barang” dan “jamin” maka tereliminasi oleh operasi
AND, tetapi memiliki makna yang sama. Kemudian dokumen kedua yaitu pasal
26 No. 8 Tahun 1999 yang disajikan pada gambar 5.16 berikut ini :
Gambar 5.16 Pasal 26 UU No. 8 tahun 1999
Dokumen kedua pada Gambar tersebut tidak dapat ditemukan kembali karena
hanya mengandung kata “jamin” maka tereliminasi oleh operasi AND, tetapi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
144
memiliki makna yang mirip dengan kata kunci. Kemudian dokumen ketiga yaitu
pasal 60 UU No. 8 Tahun 1999 yang disajikan pada gambar 5.17 berikut ini :
Gambar 5.17 Pasal 60 UU No. 8 Tahun 1999
Dokumen ketiga pada gambar 5.17 tersebut tidak dapat ditemukan kembali
karena tidak terdapat kata yang sama dengan kata kunci, tetapi dokumen tersebut
bersangkutan dengan pasal 25 yang merupakan dokumen relevan yang ditemukan
kembali dan pasal 26 yang merupakan dokumen relevan yang tidak dapat
ditemukan kembali. Kemudian dokumen yang keempat yaitu pasal 62 UU No. 8
Tahun 1999 yang disajikan pada gambar 5.18 berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
145
Gambar 5.18 Pasal 62 UU No. Tahun 1999
Dokumen keempat pada gambar 5.18 tersebut tidak dapat ditemukan kembali
karena tidak mengandung kata yang sama dengan kata kunci, tetapi dokumen
tersebut bersangkutan dengan pasal 17 dan 8 yang dapat ditemukan kembali dan
relevan dengan kata kunci. Berikut ini pada gambar 5.19 merupakan output uji
coba kelima query to document :
Gambar 5.19 Output Uji Coba Kelima Query to Document
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
146
Output uji coba pertama pada gambar 5.19 menampilkan 7 dokumen pasal
yang dapat ditemukan kembali oleh sistem. Selanjutnya, dari ketujuh dokumen
pasal tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.13
merupakan hasil penentuan relevansi dari dokumen yang diperoleh :
Tabel 5.13 Relevansi Uji Coba Kelima Query to Document
No. Urut Id_Pasal Relevansi
1 1999_08_025 V
2 1999_08_007 V
3 1999_08_017 V
4 1999_08_008 V
5 1999_08_003 X
6 2009_35_009 X
7 1997_14_001 X
Berdasarkan tabel 5.13 terlihat bahwa ada 3 dokumen yang tidak relevan
yaitu dokumen ke-5, ke-6, ke-7 dan 4 dokumen sisanya relevan dengan kata
kunci. Setelah menentukan nilai relevansi dari masing-masing dokumen pasal
pada tabel 5.13, maka langkah selanjutnya adalah menentukan nilai recall dan
precision yang terdapat pada tabel 5.14 berikut ini :
Tabel 5.14 Recall dan Precision Uji Coba Kelima Query to Document
No. Urut Id_Pasal Recall Precision
1 1999_08_025 0.125 1
2 1999_08_007 0.25 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
147
3 1999_08_017 0.375 1
4 1999_08_008 0.5 1
5 1999_08_003 0.5 0.8
6 2009_35_009 0.5 0.666667
7 1997_14_001 0.5 0.571429
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.14 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.15 berikut ini :
Tabel 5.15 Interpolasi Uji Coba Kelima Query to Document
Recall Precision
0% 100%
10% 100%
20% 100%
30% 100%
40% 100%
50% 100%
60% 0%
70% 0%
80% 0%
90% 0%
100% 0%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
148
Pada gambar 5.20 berikut ini merupakan diagram garis dari hasil interpolasi
pada tabel 5.15 :
Gambar 5.20 Recall Precision Uji Coba Kelima Query to Document
Pada gambar 5.20 garis yang dihasilkan jauh dari bentuk garis horizontal
(mendekati kanan atas) yang artinya tingkat precision dari dokumen yang didapat
dan kata kunci tersebut kurang tepat yang disebabkan oleh adanya dokumen
relevan yang tidak dapat ditemukan kembali.
5.1.2. Hasil Uji Coba Document to Document
Berikut ini merupakan analisa dan pembahasan hasil uji coba dari sub
sistem document to document yang menggunakan dokumen kasus dengan judul :
1. “Korban Pembajakan Email Laporkan Kerugian Rp14 Miliar”
2. “Membakar Isteri Hingga Tewas, Terancam 15 Tahun Penjara”
3. “Setelah Manager BNI Gambir, Giliran Pemalsu Dokumen Diadili”
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
149
4. “Gara-Gara Uang Ceban, BI Digugat 125,34 Milyar”
5. “Terdakwa Kasus Chatting Facebook Ajukan Banding”
5.1.2.1. Uji Coba Pertama Document to Document
Judul kasus : “Korban Pembajakan Email Laporkan Kerugian Rp14 Miliar”
Kata kunci setelah operasi teks : elektronik tindak pidana badan pers
Dokumen yang diperoleh : 16
Dokumen yang sesuai dari yang diperoleh : 5
Dokumen yang sesuai dari seluruh dokumen : 5
Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem
document to document. Berikut ini pada gambar 5.21 merupakan output uji coba
pertama document to document :
Gambar 5.21 Output Uji Coba Pertama Document to Document
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
150
Pada hasil output gambar 5.21 tersebut terdapat 16 dokumen yang dapat
ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari
dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.16 merupakan hasil
penentuan relevansinya :
Tabel 5.16 Relevansi Uji Coba Pertama Document to Document
No.Urut Id_Kasus Relevansi
1 K150625_005 X
2 K150625_007 X
3 K150625_008 X
4 K150625_009 X
5 K150623_002 X
6 K150623_003 X
7 K150627_003 V
8 K150625_012 X
9 K150627_013 X
10 K150627_004 V
11 K150625_003 X
12 K150627_014 X
13 K150627_001 X
14 K150627_005 V
15 K150627_006 V
16 K150627_007 V
Berdasarkan tabel 5.16 terlihat bahwa ada 11 dokumen yang tidak relevan
yaitu dokumen ke-1,2,3,4,5,6,8,9,11,12,13 dan 5 dokumen sisanya relevan dengan
kata kunci. Setelah menentukan nilai relevansi dari masing-masing dokumen
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
151
kasus pada tabel 5.16, maka langkah selanjutnya adalah menentukan nilai recall
dan precision yang terdapat pada tabel 5.17 berikut ini :
Tabel 5.17 Recall dan Precision Uji Coba Pertama Document to Document
No.Urut Id_Kasus Recall Precision
1 K150625_005 0 0
2 K150625_007 0 0
3 K150625_008 0 0
4 K150625_009 0 0
5 K150623_002 0 0
6 K150623_003 0 0
7 K150627_003 0.2 0.142857143
8 K150625_012 0.2 0.125
9 K150627_013 0.2 0.111111111
10 K150627_004 0.4 0.2
11 K150625_003 0.4 0.181818182
12 K150627_014 0.4 0.166666667
13 K150627_001 0.4 0.153846154
14 K150627_005 0.6 0.214285714
15 K150627_006 0.8 0.266666667
16 K150627_007 1 0.3125
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.17 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.18 berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
152
Tabel 5.18 Interpolasi Uji Coba Pertama Document to Document
Recall Precision
0% 31%
10% 31%
20% 31%
30% 31%
40% 31%
50% 31%
60% 31%
70% 31%
80% 31%
90% 31%
100% 31%
Pada gambar 5.22 berikut ini merupakan grafik dari hasil interpolasi pada
tabel 5.18 :
Gambar 5.22 Recall Precision Uji Coba Pertama Document to Document
0%
5%
10%
15%
20%
25%
30%
35%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
153
Pada gambar 5.22 garis yang dihasilkan merupakan garis horizontal yang
artinya nilai precision dari dokumen yang didapat dan kata kunci tersebut sudah
baik.
5.1.2.2. Uji Coba Kedua Document to Document
Judul kasus : “Membakar Isteri Hingga Tewas, Terancam 15 Tahun
Penjara”
Kata kunci setelah operasi teks : kekerasan rumah tangga pengadilan
Dokumen yang diperoleh : 8
Dokumen yang sesuai dari yang diperoleh : 6
Dokumen yang sesuai dari seluruh dokumen : 6
Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem
document to document. Berikut ini pada gambar 5.23 merupakan output uji coba
kedua document to document :
Gambar 5.23 Output Uji Coba Kedua Document to Document
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
154
Pada hasil output gambar 5.23 tersebut terdapat 8 dokumen yang dapat
ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari
dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.19 merupakan hasil
penentuan relevansinya :
Tabel 5.19 Relevansi Uji Coba Kedua Document to Document
No. Urut Id_Kasus Relevansi
1. K150625_015 V
2. K150625_016 V
3. K150627_013 X
4. K150625_017 V
5. K150627_008 V
6. K150627_014 X
7. K150627_009 V
8. K150627_016 V
Berdasarkan tabel 5.19 terlihat bahwa ada 2 dokumen yang tidak relevan
yaitu dokumen ke-3 dan ke-6 dan 6 dokumen sisanya relevan dengan kata kunci.
Setelah menentukan nilai relevansi dari masing-masing dokumen kasus pada tabel
5.19, maka langkah selanjutnya adalah menentukan nilai recall dan precision
yang terdapat pada tabel 5.20 berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
155
Tabel 5.20 Recall dan Precision Uji Coba Kedua Document to Document
No. Urut Id_Kasus Recall Precision
1. K150625_015 0.166667 1
2. K150625_016 0.333333 1
3. K150627_013 0.333333 0.666667
4. K150625_017 0.5 0.75
5. K150627_008 0.666667 0.8
6. K150627_014 0.666667 0.666667
7. K150627_009 0.833333 0.714286
8. K150627_016 1 0.75
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.20 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.21 berikut ini :
Tabel 5.21 Interpolasi Uji Coba Kedua Document to Document
Recall Precision
0% 100%
10% 100%
20% 100%
30% 100%
40% 80%
50% 80%
60% 80%
70% 75%
80% 75%
90% 75%
100% 75%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
156
Pada gambar 5.24 berikut ini merupakan grafik dari hasil interpolasi pada
tabel 5.21 :
Gambar 5.24 Recall Precision Uji Coba Kedua Document to Document
Pada gambar 5.24 garis yang dihasilkan hampir menyerupai bentuk garis
horizontal (mendekati kanan atas) yang artinya tingkat precision dari dokumen
yang didapat dan kata kunci tersebut cukup baik.
5.1.2.3. Uji Coba Ketiga Document to Document
Judul kasus : “Setelah Manager BNI Gambir, Giliran Pemalsu
Dokumen Diadili”
Kata kunci setelah operasi teks : korupsi
Dokumen yang diperoleh : 8
Dokumen yang sesuai dari yang diperoleh : 8
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
157
Dokumen yang sesuai dari seluruh dokumen : 8
Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem
document to document. Berikut ini pada gambar 5.25 merupakan output uji coba
ketiga document to document :
Gambar 5.25 Output Uji Coba Ketiga Document to Document
Pada hasil output gambar 5.25 tersebut terdapat 8 dokumen yang dapat
ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari
dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.22 merupakan hasil
penentuan relevansinya :
Tabel 5.22 Relevansi Uji Coba Ketiga Document to Document
No. Urut Id_Kasus Relevansi
1 K150625_005 V
2 K150625_007 V
3 K150625_008 V
4 K150625_009 V
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
158
5 K150625_012 V
6 K150627_013 V
7 K150627_014 V
8 K150627_001 V
Berdasarkan tabel 5.22 terlihat bahwa 8 dokumen yang ditemukan
merupakan dokumen yang relevan dengan kata kunci. Setelah menentukan nilai
relevansi dari masing-masing dokumen kasus pada tabel 5.22, maka langkah
selanjutnya adalah menentukan nilai recall dan precision yang terdapat pada tabel
5.23 berikut ini :
Tabel 5.23 Recall dan Precision Uji Coba Ketiga Document to Document
No. Urut Id_Kasus Recall Precision
1 K150625_005 0.125 1
2 K150625_007 0.25 1
3 K150625_008 0.375 1
4 K150625_009 0.5 1
5 K150625_012 0.625 1
6 K150627_013 0.75 1
7 K150627_014 0.875 1
8 K150627_001 1 1
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.23 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.24 berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
159
Tabel 5.24 Interpolasi Uji Coba Ketiga Document to Document
Recall Precision
0% 100%
10% 100%
20% 100%
30% 100%
40% 100%
50% 100%
60% 100%
70% 100%
80% 100%
90% 100%
100% 100%
Pada gambar 5.26 berikut ini merupakan grafik dari hasil interpolasi pada
tabel 5.24 :
Gambar 5.26 Recall Precision Uji Coba Ketiga Document to Document
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
160
Pada gambar 5.26 garis yang dihasilkan sesuai dengan bentuk garis
horizontal yang artinya tingkat precision dari dokumen kasus yang diperoleh
dengan kata kunci ini baik.
5.1.2.4. Uji Coba Keempat Document to Document
Judul kasus : “Gara-Gara Uang Ceban, BI Digugat 125,34 Milyar”
Kata kunci setelah operasi teks : pengadilan tindak pidana hak cipta
elektronik sosial
Dokumen yang diperoleh : 18
Dokumen yang sesuai dari yang diperoleh : 4
Dokumen yang sesuai dari seluruh dokumen : 4
Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem
document to document. Berikut ini pada gambar 5.27 merupakan output uji coba
keempat document to document :
Gambar 5.27 Output Uji Coba Keempat Document to Document
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
161
Pada hasil output Gambar 5.27 tersebut terdapat 18 dokumen yang dapat
ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari
dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.25 merupakan hasil
penentuan relevansinya :
Tabel 5.25 Precision Uji Coba Keempat Document to Document
No. Urut Id_Kasus Relevansi
1 K150627_003 V
2 K150625_005 X
3 K150627_013 X
4 K150625_014 V
5 K150627_014 X
6 K150625_007 X
7 K150627_010 V
8 K150625_008 X
9 K150627_012 V
10 K150625_009 X
11 K150625_004 X
12 K150623_003 X
13 K150625_012 X
14 K150627_004 X
15 K150627_001 X
16 K150627_005 X
17 K150627_006 X
18 K150627_007 X
Berdasarkan tabel 5.25 terlihat bahwa ada 4 dokumen yang relevan yaitu
dokumen ke-1,4,7,9 dan 14 dokumen sisanya tidak relevan dengan kata kunci.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
162
Setelah menentukan nilai relevansi dari masing-masing dokumen kasus pada
Tabel 5.25, maka langkah selanjutnya adalah menentukan nilai recall dan
precision yang terdapat pada tabel 5.26 berikut ini :
Tabel 5.26 Recall dan Precision Uji Coba Keempat Document to Document
No. Urut Id_Kasus Recall Precision
1 K150627_003 0.25 1
2 K150625_005 0.25 0.5
3 K150627_013 0.25 0.333333
4 K150625_014 0.5 0.5
5 K150627_014 0.5 0.4
6 K150625_007 0.5 0.333333
7 K150627_010 0.75 0.428571
8 K150625_008 0.75 0.375
9 K150627_012 1 0.444444
10 K150625_009 1 0.4
11 K150625_004 1 0.363636
12 K150623_003 1 0.333333
13 K150625_012 1 0.307692
14 K150627_004 1 0.285714
15 K150627_001 1 0.266667
16 K150627_005 1 0.25
17 K150627_006 1 0.235294
18 K150627_007 1 0.222222
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.26 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.27 berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
163
Tabel 5.27 Interpolasi Uji Coba Keempat Document to Document
Recall Precision
0% 100%
10% 100%
20% 100%
30% 50%
40% 50%
50% 50%
60% 44%
70% 44%
80% 44%
90% 44%
100% 44%
Pada gambar 5.28 berikut ini merupakan grafik dari hasil interpolasi pada
Tabel 5.27 :
Gambar 5.28 Recall Precision Uji Coba Keempat Document to Document
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
164
Pada gambar 5.28 garis yang dihasilkan hampir menyerupai bentuk garis
horizontal yang artinya tingkat precision dari dokumen kasus yang diperoleh
dengan kata kunci ini belum baik.
5.1.2.5. Uji Coba Kelima Document to Document
Judul kasus : “Terdakwa Kasus Chatting Facebook Ajukan Banding”
Kata kunci setelah operasi teks : pengadilan sosial tindak pidana
informasi transaksi elektronik umum
Dokumen yang diperoleh : 15
Dokumen yang sesuai dari yang diperoleh : 5
Dokumen yang sesuai dari seluruh dokumen : 5
Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem
document to document. Berikut ini pada gambar 5.29 merupakan output uji coba
kelima document to document :
Gambar 5.29 Output Uji Coba Kelima Document to Document
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
165
Pada hasil output gambar 5.29 tersebut terdapat 15 dokumen yang dapat
ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari
dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.28 merupakan hasil
penentuan relevansinya :
Tabel 5.28 Relevansi Uji Coba Kelima Document to Document
No. Urut Id_Kasus Relevansi
1 K150627_013 X
2 K150627_014 X
3 K150623_003 X
4 K150627_003 V
5 K150627_004 V
6 K150625_005 X
7 K150627_005 V
8 K150627_006 V
9 K150625_007 X
10 K150627_007 V
11 K150625_008 X
12 K150625_009 X
13 K150627_017 X
14 K150625_012 X
15 K150627_001 X
Berdasarkan tabel 5.28 terlihat bahwa ada 5 dokumen yang relevan yaitu
dokumen ke-4,5,7,8,10 dan 10 dokumen sisanya tidak relevan dengan kata kunci.
Setelah menentukan nilai relevansi dari masing-masing dokumen kasus pada tabel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
166
5.28, maka langkah selanjutnya adalah menentukan nilai recall dan precision
yang terdapat pada tabel 5.29 berikut ini :
Tabel 5.29 Recall dan Precision Uji Coba Kelima Document to Document
No. Urut Id_Kasus Recall Precision
1 K150627_013 0 0
2 K150627_014 0 0
3 K150623_003 0 0
4 K150627_003 0.2 0.25
5 K150627_004 0.4 0.4
6 K150625_005 0.4 0.333333333
7 K150627_005 0.6 0.428571429
8 K150627_006 0.8 0.5
9 K150625_007 0.8 0.444444444
10 K150627_007 1 0.5
11 K150625_008 1 0.454545455
12 K150625_009 1 0.416666667
13 K150627_017 1 0.384615385
14 K150625_012 1 0.357142857
15 K150627_001 1 0.333333333
Kemudian dari hasil perhitungan recall dan precision pada tabel 5.29 dapat
dihitung 11 titik interpolasi yang terdapat pada tabel 5.30 berikut ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
167
Tabel 5.30 Interpolasi Uji Coba Kelima Document to Document
Recall Precision
0% 50%
10% 50%
20% 50%
30% 50%
40% 50%
50% 50%
60% 50%
70% 50%
80% 50%
90% 50%
100% 50%
Pada gambar 5.30 berikut ini merupakan diagram garis dari hasil interpolasi
pada tabel 5.30 :
Gambar 5.30 Recall Precision Uji Coba Kelima Document to Document
0%
10%
20%
30%
40%
50%
60%
1 2 3 4 5 6 7 8 9 10 11
Recall Precision
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
168
Pada gambar 5.30 garis yang dihasilkan merupakan bentuk garis horizontal
yang artinya tingkat precision dari dokumen kasus yang diperoleh dengan kata
kunci cukup baik.
5.1.3. Rata-Rata Precision
Rata-rata precision pada masing-masing sub sistem ditentukan dari hasil
perhitungan recall precision sebelum tahap interpolasi 11 titik.
5.1.3.1. Query to Document
Pada tabel 5.31 berikut ini merupakan rata-rata precision dari dokumen
yang relevan pada sub sistem query to document :
Tabel 5.31 Rata-Rata Precision dari Sub Sistem Query to Document
Precision
Uji Coba
Pertama
Precision
Uji Coba
Kedua
Precision
Uji Coba
Ketiga
Precision
Uji Coba
Keempat
Precision
Uji Coba
Kelima
1 1 1 1 1
1 1 0.66667 1 1
1 0.75 0.75 1
0.8 0.66667 1
Rata-rata 0.95 0.8542 0.8056 1 1
Total
Rata-rata 0.9219
Pada tabel 5.31 tersebut, recall precision dari dokumen yang tidak relevan
tidak diperhitungkan. Kemudian untuk mengetahui bentuk grafik dari rata-rata
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
169
precision pada sub sistem ini ditentukan dari hasil rata-rata perhitungan
interpolasi 11 titik dari kelima percobaan yang telah dilakukan. Pada tabel 5.32
berikut ini merupakan hasil perhitungan rata-rata interpolasi recall precision sub
sistem query to document :
Tabel 5.32 Rata-Rata Perhitungan Interpolasi Sub Sistem Query to Document
Recall p1 p2 p3 p4 p5 Rata-Rata
0% 100% 100% 100% 100% 100% 100%
10% 100% 100% 100% 100% 100% 100%
20% 100% 100% 100% 100% 100% 100%
30% 100% 75% 75% 100% 100% 90%
40% 100% 75% 75% 100% 100% 90%
50% 100% 66% 75% 100% 100% 88%
60% 100% 0% 75% 100% 0% 55%
70% 80% 0% 75% 0% 0% 31%
80% 80% 0% 0% 0% 0% 16%
90% 0% 0% 0% 0% 0% 0%
100% 0% 0% 0% 0% 0% 0%
Keterangan :
p1 = precision dari interpolasi 11 titik recall precision uji coba pertama
p2 = precision dari interpolasi 11 titik recall precision uji coba kedua
p3 = precision dari interpolasi 11 titik recall precision uji coba ketiga
p4 = precision dari interpolasi 11 titik recall precision uji coba keempat
p5 = precision dari interpolasi 11 titik recall precision uji coba kelima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
170
Pada gambar 5.31 di bawah ini merupakan grafik dari rata-rata interpolasi
11 titik recall precision pada sub sistem query to document berdasarkan
perhitungan dari tabel 5.32 :
Gambar 5.31 Grafik Rata-Rata Interpolasi Sub Sistem Query to Document
Berdasarkan gambar 5.31 terlihat bahwa grafik rata-rata interpolasi 11 titik
recall precision sub sistem query to document ini membentuk garis ke arah kanan
atas. Semakin garis tersebut mengarah ke kanan atas dan hingga membentuk garis
horizontal, maka tingkat relevansi atau kecocokan dokumen yang dihasilkan dari
suatu sistem akan semakin baik. Nilai rata-rata precision dari dokumen relevan
yang dihasilkan pada sub sistem ini mencapai 0.9219.
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
p1
p2
p3
p4
p5
Rata-Rata
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
171
5.1.3.2. Document to Document
Pada tabel 5.33 berikut ini merupakan hasil perhitungan rata-rata
precision dari dokumen yang relevan sub sistem document to document :
Tabel 5.33 Rata-Rata Precision dari Sub Sistem Document to Document
Precision
Percobaan
Pertama
Precision
Percobaan
Kedua
Precision
Percobaan
Ketiga
Precision
Percobaan
Keempat
Precision
Percobaan
Kelima
0.143 1 1 1 0.25
0.2 1 1 0.5 0.4
0.214 0.75 1 0.429 0.429
0.267 0.8 1 0.444 0.5
0.313 0.714 1 0.5
0.75 1
1
1
Rata-rata 0.227 0.8357 1 0.59325 0.4157
Total
Rata-rata 0.614
Pada tabel 5.33 tersebut, recall precision dari dokumen yang tidak relevan
tidak diperhitungkan. Kemudian untuk mengetahui bentuk grafik dari rata-rata
precision pada sub sistem ini ditentukan dari hasil rata-rata perhitungan
interpolasi 11 titik dari kelima percobaan yang telah dilakukan. Pada tabel 5.34
berikut ini merupakan hasil perhitungan rata-rata interpolasi recall precision sub
sistem document to document :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
172
Tabel 5.34 Rata-Rata Perhitungan Interpolasi Sub Sistem Document to
Document
Recall p1 p2 p3 p4 p5 Rata-Rata
0% 31% 100% 100% 100% 50% 76%
10% 31% 100% 100% 100% 50% 76%
20% 31% 100% 100% 100% 50% 76%
30% 31% 100% 100% 50% 50% 66%
40% 31% 80% 100% 50% 50% 62%
50% 31% 80% 100% 50% 50% 62%
60% 31% 80% 100% 44% 50% 61%
70% 31% 75% 100% 44% 50% 60%
80% 31% 75% 100% 44% 50% 60%
90% 31% 75% 100% 44% 50% 60%
100% 31% 75% 100% 44% 50% 60%
Keterangan :
p1 = precision dari interpolasi 11 titik recall precision uji coba pertama
p2 = precision dari interpolasi 11 titik recall precision uji coba kedua
p3 = precision dari interpolasi 11 titik recall precision uji coba ketiga
p4 = precision dari interpolasi 11 titik recall precision uji coba keempat
p5 = precision dari interpolasi 11 titik recall precision uji coba kelima
Pada gambar 5.32 di bawah ini merupakan grafik dari rata-rata interpolasi
11 titik recall precision pada sub sistem document to document berdasarkan
perhitungan dari tabel 5.34 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
173
Gambar 5.32 Grafik Rata-Rata Interpolasi Sub Sistem Document to Document
Berdasarkan gambar 5.32 terlihat bahwa grafik nilai rata-rata precision pada
11 titik untuk sub sistem document to document ini membentuk garis ke arah
kanan atas hampir menyerupai garis horizontal. Semakin garis tersebut mengarah
ke kanan atas dan hingga membentuk garis horizontal, maka tingkat relevansi atau
kecocokan dokumen yang dihasilkan dari suatu sistem akan semakin baik. Nilai
rata-rata precision dari dokumen relevan yang dihasilkan pada sub sistem ini
mencapai 0.614.
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
p1
p2
p3
p4
p5
Rata-Rata
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
174
Pada tabel 5.35 berikut ini merupakan perbandingan rata-rata precision
antara sub sistem query to document dan document to document :
Tabel 5.35 Rata-Rata Precision Kedua Sub Sistem
Rata-Rata tersebut merupakan rata-rata hasil interpolasi dari tabel 5.32 dan 5.34.
Recall Rata-Rata Precision dari
Query to Document
Rata-Rata Precision dari
Document to Document
0% 100% 76%
10% 100% 76%
20% 100% 76%
30% 90% 66%
40% 90% 62%
50% 88% 62%
60% 55% 61%
70% 31% 60%
80% 16% 60%
90% 0% 60%
100% 0% 60%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
175
Berdasarkan tabel 5.35 dapat diimplementasikan menjadi grafik pada
gambar 5.33 berikut ini :
Gambar 5.33 Grafik Rata-Rata Precision Kedua Sub Sistem
Pada gambar 5.33 tersebut terlihat bahwa grafik rata-rata precision sub
system query to document lebih baik daripada document to document karena garis
yang terbentuk lebih tinggi dari garis rata-rata precision sub sistem document to
documen. Nilai rata-rata precision dari sub sistem query to document mencapai
0.9219 dan sub sistem document to document mencapai 0.614.
0%
20%
40%
60%
80%
100%
120%
1 2 3 4 5 6 7 8 9 10 11
Rata-Rata Precisiondari Query toDocument
Rata-Rata Precisiondari Document toDocument
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
176
5.2. Kelebihan dan Kekurangan Sistem
5.2.1. Kelebihan Sistem
Kelebihan dari Sistem Pemerolehan Informasi Undang-Undang dan Kasus
adalah sebagai berikut :
1. Sistem ini terdiri dari 2 sub sistem pencarian yaitu query to document dan
document to document. Dimana kata kunci tidak hanya berupa query tetapi
juga bisa menggunakan dokumen (.txt).
5.2.2. Kekurangan Sistem
Kekurangan dari Sistem Pemerolehan Informasi Undang-Undang dan Kasus
adalah :
1. Pada sub sistem query to document terdapat dokumen relevan yang tidak
dapat ditemukan kembali oleh sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
177
BAB VI
KESIMPULAN DAN SARAN
6.1. Kesimpulan
Bab ini membahas mengenai kesimpulan hasil uji coba dari dua sub sistem
(query to document dan document to document) pada Sistem Pemerolehan
Informasi Undang-Undang dan Kasus.
1. Query to Document
- Konsep pemerolehan informasi pada sub sistem ini telah berhasil
diterapkan dengan cara melakukan pencocokan term terhadap dokumen
pasal setelah melewati tahap stopwords dan stemming.
- Penggunaan pembobotan TF-IDF terbukti efektif dengan menghasilkan
tingkat relevansi 11 titik recall precision yang cukup baik, dimana garis
pada grafik recall precision mendekati kanan atas. Nilai rata-rata
precision dari dokumen yang relevan mencapai 0.9219.
2. Document to Document
- Konsep pemerolehan informasi pada sub sistem ini telah berhasil
diterapkan dengan cara melakukan pencocokan term yang sesuai
dengan Kamus_Hukum yang merupakan isi tentang pada Undang-
Undang.
- Penggunaan pembobotan TF-IDF terbukti efektif pada sub sistem ini
dengan menghasilkan tingkat relevansi 11 titik recall precision yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
178
178
baik, dimana garis pada grafik recall precision mendekati kanan atas.
Nilai rata-rata precision dari dokumen yang relevan mencapai 0.614.
6.2. Saran
Berdasarkan hasil pengujian yang sudah dilakukan dapat dilihat bahwa
sistem masih memiliki kekurangan. Maka saran yang mungkin dapat berguna
untuk penelitian selanjutnya yaitu pada sub sistem query to document perlu
adanya tambahan proses lagi dengan melakukan operasi OR pada output hasil
pencarian operasi AND agar sistem dapat menemukan kembali dokumen pasal
relevan yang hanya mencantumkan nama pasal relevan yang berhasil ditemukan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
179
DAFTAR PUSTAKA
Agusta, Ledy. (2009). Perbandingan Algoritma Stemming Porter dengan
Algoritma Nazief & Adriani untuk Stemming Dokumen Teks Bahasa
Indonesia. Jurnal Konferensi Nasional Sistem dan Informatika 2009, Bali.
Adendrata, Adrian. (2013). Sistem Pemerolehan Informasi Data Gambar pada
Dokumen Fotografi Menggunakan Struktur Data Inverted Index dan
Pembobotan TF-IDF. Universitas Sanata Dharma, Yogyakarta.
Baeza-Yates, R., Ribeiro-Neto, B. (1999). Modern Information Retrieval the
Concepts and Technology Behind Search. England: A division of the
association for Computing Machinary.
Büttcher, Stefan., Clarke, L.A Charles., Cormack, V. Gordon. (2010). Information
Retrieval Implementing and Evaluating Search Engines. USA:
Massachusetts Institute of Technology.
Croft, Bruce W., Metzler, Donald., Strohman, Trevor. (2010). Search Engines
Information Retrieval in Practice. USA: University of Massachusetts,
Amherst. Pearson Education USA.
Deitel, M. Harvey., & Deitel, J. Paul. (2004). Java How to Program. USA:
Prentice-Hall, Inc. Upper Saddle River, NJ (6th edition).
E.Utrecht, Saleh Djindang, Moh, (1983). Pengantar Dalam Hukum Indonesia,
Cetakan Kesebelas, Penerbit PT.Ichtiar Baru, Jakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
180
Göker, Ayşe., & Davies, John. (2009). Information Retrieval Searching in the 21st
Century. UK: John Wiley & Sons, Ltd, The Atrium, Southern Gate,
Chichester, West Sussex, PO19 8SQ.
Grossman, David A., & Frieder, Ophir. (2004). Information Retrieval Alhorithms
and Heuristics. USA: Illinois Institute of Technology Chicago.
Hasibuan, Zainal A., & Andri, Yofi. (2001). Penerapan Berbagai Teknik Sistem
Temu-Kembali Informasi Berbasis Hiperteks. Jurnal Ilmu Komputer dan
Teknologi Informasi, Volume 1, Nomor 2.
Ingwersen, Peter. (2002). Information Retrieval Interaction. Denmark: Royal
School of Library and Information Science.
Manning, Christopher, D., Raghavan, Prabhakar., Schütze, Hinrich. (2008).
Introduction to Information Retrieval. England: Cambridge University
Press.
Netmeh, Brian A., Dickey, Thomas E., Wartik, Steven P. (1989). Traceability
Technology at the Software Productivity Consortium.
Rapar, J. H. (2002). Filsafat Politik. Jakarta: PT Raja Grafindo Persada.
Wulandari S., Justina. (2013). Sistem Pemerolehan Informasi Makalah Ilmiah
Berbahasa Indonesia Menggunakan Struktur Data Inverted Index dengan
Metode Pembobotan TF-IDF Berbasis ORDBMS. Universitas Sanata
Dharma, Yogyakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
181
Lampiran
Kode Program
Package Inverted Index
1. Kode Program Kelas Document :
2. Kode Program Kelas Term :
package inverted_index;
public class Document implements Comparable {
protected String document;
public Document(String pDocument) {
document = pDocument;
}
public String getDocument() {
return document;
}
public int compareTo(Object o) {
return document.compareTo(((Document) o).getDocument());
}
public String toString() {
return document;
}
}
package inverted_index;
public class Term implements Comparable {
private String term;
protected LinkedListOrderedUnique<Document> postinglist;
public Term(String pTerm) {
term = pTerm;
}
public String getTerm() {
return term;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
182
3. Kode Program Kelas InvertedIndex :
public LinkedListOrderedUnique<Document> getPostinglist() {
return postinglist;
}
public int compareTo(Object o) {
return term.compareTo(((Term) o).getTerm());
}
@Override
public String toString() {
String temp = term + " => ";
temp = temp + postinglist.toString();
return temp;
}
}
package inverted_index;
public class Term implements Comparable {
private String term;
protected LinkedListOrderedUnique<Document> postinglist;
public Term(String pTerm) {
term = pTerm;
}
public String getTerm() {
return term;
}
public LinkedListOrderedUnique<Document> getPostinglist() {
return postinglist;
}
public int compareTo(Object o) {
return term.compareTo(((Term) o).getTerm());
}
@Override
public String toString() {
String temp = term + " => ";
temp = temp + postinglist.toString();
return temp;
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
183
4. Kode Program Kelas LinkedListOrderedUnique :
package inverted_index;
import java.util.LinkedList;
import java.util.ListIterator;
public class LinkedListOrderedUnique<E> extends LinkedList<E> {
public boolean addSort(E e) {
ListIterator<E> iterator = this.listIterator(); //ngambil
dari dirinya sendiri
while (iterator.hasNext()) {
E temp = iterator.next();//temp bertipe E karena
menggunakan general, jika tidak maka pake Object
if (((Comparable) temp).compareTo(e) > 0) {
iterator.previous();
iterator.add(e);
return true;
} else if (((Comparable) temp).compareTo(e) == 0) {
return true;
}
}
iterator.add(e);
return true;
}
public E get(E e) {
ListIterator<E> iterator = this.listIterator();
while (iterator.hasNext()) {
E temp = iterator.next();
if (((Comparable) temp).compareTo(e) == 0) {
return temp;
}
}
return null;
}
public String toString() {
String temp = "";
ListIterator<E> iterator = this.listIterator();
while (iterator.hasNext()) {
temp = temp + iterator.next() + "\n ";
}
return temp;
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI