Sistem pemerolehan informasi undang-undang dan kasus menggunakan struktur data inverted index dengan pembobotan TF-IDF.
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
(2)
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
(3)
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
(4)
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
(5)
(6)
(7)
(8)
vi
HALAMAN MOTO
(9)
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….!
(10)
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
(11)
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
(12)
(13)
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),
(14)
(15)
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
(16)
xiv
2.1.2. InvertedIndex ... 11
2.1.2.1. Membangun Inverted Index ... 12
2.1.2.2. BooleanQuery pada InvertedIndex ... 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
(17)
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. PackageView ... 80
3.9.3. PackageControl ... 83
3.9.4. PackageStemming ... 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
(18)
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 DocumenttoDocument ... 149
5.1.2.2. Uji Coba Kedua DocumenttoDocument ... 153
5.1.2.3. Uji Coba Ketiga DocumenttoDocument ... 156
5.1.2.4. Uji Coba Keempat DocumenttoDocument ... 160
5.1.2.5. Uji Coba Kelima DocumenttoDocument ... 164
5.1.3. Rata-Rata Precision ... 168
5.1.3.1. Query toDocument ... 168
5.1.3.2. DocumenttoDocument ... 171
(19)
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
(20)
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
(21)
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
(22)
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
(23)
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 RecallPrecision 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
(24)
xxii
DAFTAR TABEL
Tabel 3.1 Analisa Kebutuhan ... 28 Tabel 3.2 Narasi Use CaseLogin ... 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
(25)
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
(26)
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 Documentto 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
(27)
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
(28)
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
(29)
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.
(30)
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
(31)
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.
(32)
BAB II : TINJAUAN PUSTAKA
Bab ini berisi konsep dasar dari pembobotan TF-IDF, struktur data inverted index, algoritma stemming, eliminasi stopwords, dan metode evaluasi recallprecision.
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
(33)
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. :
(34)
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
(35)
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).
(36)
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
(37)
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
(38)
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
(39)
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).
(40)
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
(41)
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
(42)
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 :
(43)
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. :
(44)
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 :
(45)
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
= ntf
ij * nidfj ..…. (2.2)dimana : ntfij=
Ma dan nidfj =
m dfj
..…. (2.3)
Keterangan :
Wij adalah bobot istilah Tj pada dokumen Di.
(46)
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
(47)
mengukur seberapa baik sistem tersebut menolak atau mengeliminasi dokumen-dokumen yang tidak relevan (Croft-Metzler-Strohman, 2010).
������ = a a a a a .… (2.4)
� ��� � = a a a
(48)
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-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.
(49)
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.
(50)
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.
(51)
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
(52)
pencocokan kamus hukum yang diambil dari isi tentang pada setiap undang-undang untuk mempercepat proses pencarian tanpa harus membandingkan dengan keseluruhan istilahyang 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.
(53)
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 /
termList Posting 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).
(54)
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 :
(55)
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.
(56)
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.
(57)
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
(58)
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 CaseLogin
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
(59)
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.
(60)
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
(61)
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
(62)
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.
(63)
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.
(64)
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 :
(65)
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 :
(66)
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
(67)
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 :
(68)
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
(69)
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.
(70)
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 Login Mengecek username dan password
di tabel User.
Menampilkan
Form Tambah Dokumen. pesan peringatan
Administrator Sistem
benar salah
(71)
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 Simpan Menambahkan pasal yang baru
ke koleksi dokumen Undang-Undang
Administrator Sistem
(72)
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 Simpan Menambahkan kasus yang baru
ke koleksi dokumen Kasus
Administrator Sistem
input data
Masukan judul, dokumen, dan pasal-pasal yang terkait
(73)
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 Cari Mencari pasal-pasal yang berhubungan dengan
kata kunci yang dimasukkan oleh pengguna.
Pengguna Sistem
(74)
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 Cari Mencari 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)
(75)
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-Undang Klik tombol Lihat
Pilih tahun, nomor, dan pasal
Pengguna Sistem
(76)
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 caseLogin :
FormUtama.java FormLogin.java LoginControl.java User.java
Administrator
FormTambah Dokumen.java
(77)
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.java Control.java
Pasal.java Kamus_Hukum.java
Hukum_Pasal.java
Stopwords Control.java Stopwords.java
(78)
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.java Control.java
Kasus_Pasal.java
Kasus.java
(79)
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) :
Pengguna
FormUtama.java
Stopwords.java FormPencarian.java
InvertedIndex.java Operator
AND_OR.java Term_Pasal.java
Pasal.java
Indeks_Pasal.java
Stemming BobbyNazief.java Control.java
Stopwords Control.java
(80)
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):
Pengguna
FormUtama.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
(81)
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.java
FormUtama.java Control.java
Pengguna
(82)
54 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 Masuk
CekLogin(String username)
setUsername(String)
String password
<<interface>> FormTambahDokumen.java
setVisible(true)
(83)
55 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
(84)
56 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
(85)
57
<<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
(1)
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.
(2)
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
(
6
thedition).
E.Utrecht, Saleh Djindang, Moh, (1983).
Pengantar Dalam Hukum Indonesia,
Cetakan
Kesebelas,
Penerbit
PT.Ichtiar
Baru,
Jakarta.
(3)
Göker, Ayşe., & Davies, John. (2009).
Information Retrieval Searching in the 21
stCentury.
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.
(4)
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;
(5)
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;
} }
(6)
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; }