Sistem pemerolehan informasi undang-undang dan kasus menggunakan struktur data inverted index dengan pembobotan TF-IDF.

(1)

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

th

edition).

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

st

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.


(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; }