SISTEM PEMEROLEHAN INFORMASI UNDANG … · A FINAL PROJECT Presented as Partial Fullfilment of the...

209
i SISTEM PEMEROLEHAN INFORMASI UNDANG-UNDANG DAN KASUS MENGGUNAKAN STRUKTUR DATA INVERTED INDEX DENGAN PEMBOBOTAN TF-IDF SKRIPSI Diajukan untuk memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Informatika (S.Kom) Program Studi Teknik Informatika Oleh : Fredes Winda Oktaviani Puspitaningrum NIM : 115314005 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Transcript of SISTEM PEMEROLEHAN INFORMASI UNDANG … · A FINAL PROJECT Presented as Partial Fullfilment of the...

i

SISTEM PEMEROLEHAN INFORMASI UNDANG-UNDANG

DAN KASUS MENGGUNAKAN STRUKTUR DATA INVERTED INDEX

DENGAN PEMBOBOTAN TF-IDF

SKRIPSI

Diajukan untuk memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik Informatika (S.Kom)

Program Studi Teknik Informatika

Oleh :

Fredes Winda Oktaviani Puspitaningrum

NIM : 115314005

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2015

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ii

INFORMATION RETRIEVAL SYSTEM OF THE LAWS

AND CASES USING INVERTED INDEX DATA STRUCTURE

WITH TF-IDF WEIGHTING

A FINAL PROJECT

Presented as Partial Fullfilment of the Requirements

To Obtain the Sarjana Komputer Degree

In Informatics Engineering

By :

Fredes Winda Oktaviani Puspitaningrum

Student Number : 115314005

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2015

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

iii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

iv

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

v

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

vi

HALAMAN MOTO

Yang penting PD !

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

vii

HALAMAN PERSEMBAHAN

Kupersembahkan skripsi ini kepada :

Tuhan Yesus Kristus atas berkat dan perlindungan-Nya.

Keluargaku Yustinus Siswanto (Bapak), Yovita Murtini (Ibu), Veronika Ika

Puspita Kusumawati (Kakak), Yustina Novita Puspitawati (Kakak),

Ferdinand Vinsent Yoga Kusuma Pandya (Keponakan) yang selalu

memberikan dukungan, kasih sayang dan masukan dalam proses

pengerjaan skripsi ini.

Abd Manan yang telah memberikan ide untuk skripsi ini.

Untuk teman-teman :

- Fenti dan Salma yang slalu dengerin aku curhat hal-hal konyol dan

nggak penting, thanks ya udah sabar juga aku jailin :P

- Renia, Ari, Ronald : thanks untuk kodoknya yaaaa…besar banget

sumpah…! :D

- Teman-teman TI 2011 khususnya Renia, Ari, Ronald, Elsa, Orin, Danik,

Lita, Kezia, Meity, Benny, Pandu, Monic, Drajad, Wisnu, Adi, Anggit, dan

teman-teman TI lainnya atas dukungannya

- Mbak Tika, Mbak Velly, Monic dan teman-teman Kost Alma atas

dukungannya.

- Vano, Brent : thanks ya udah nemenin ngelembur :P

Yang special untuk :

- Babon Poule : cepatlah menetasss … :D

- C.L. Homer yang selalu dengerin curhat dan kasih dukungan,

thanks yaa … je t’aime mon amour.

Dan untuk teman-teman yang sedang menyelesaikan skripsi semangat

yaaa….!

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

viii

ABSTRAK

Sejak tahun 1945, pertambahan dokumen Undang-Undang dan kasus

pelanggaran yang semakin banyak sehingga menyebabkan kesulitan dalam

menemukan pasal-pasal maupun kasus sesuai dengan informasi yang dibutuhkan.

Berdasarkan hal tersebut, maka diperlukannya suatu sistem Pemerolehan

Informasi untuk memudahkan pencarian. Pada Pemerolehan Informasi, proses

pencarian menggunakan struktur data inverted index dan pembobotan kata-kata

menggunakan metode pembobotan TF-IDF. Sejauh ini belum ada penerapan

metode tersebut dalam pencarian pasal-pasal yang relevan, selain itu umumnya

input sebagai kata kunci berupa query bukan sebuah dokumen.

Percobaan query to document menggunakan data contoh sejumlah 1942

dokumen pasal yang terdiri dari 2713 terms dan nilai rata-rata precision mencapai

0,9219. Sedangkan untuk document to document menggunakan 100 dokumen

kasus yang terdiri dari 54 terms dan nilai rata-rata precision mencapai 0,614.

Kata Kunci : Pemerolehan Informasi, TF-IDF, Inverted Index, query to document,

document to document

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ix

ABSTRACT

Since 1945, the law of documents and cases of violation’s additional have

been getting high continuously causing difficulties to retrieve the relevant pasal as

well as cases in accordance with the information needed. Hence based on this

problem, we need an information retrieval system to facilitate the search

processes. On the information retrieval field, the search processes using the data

structure of inverted index and weighting of words using TF-IDF weighting

method. So far there has been no application of such methods in the search for

relevant pasal, in addition to the general input as keyword is a query instead of the

document.

The experiments of query to document sub-system using 1942 pasal

documents consisting of 2713 terms as a data sample. The average value of

precision obtained is 0.9291. As for the document to document sub-system using

the 100 case files consists of 54 terms as a data sample. The average value of

precision obtained is 0.614.

Keywords: Information Retrieval, TF-IDF, Inverted Index, query to document,

document to document

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

x

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xi

KATA PENGANTAR

Puji dan Syukur saya panjatkan kepada Tuhan Yesus Kristus YME, atas

berkat dan kuasa-Nya yang diberikan sehingga saya dapat menyelesaikan Tugas

Akhir ini. Tugas Akhir ini adalah salah syarat memperolah gelar Sarjana Teknik

Informatika (S.Kom) Program Studi Teknik Informatika, Universitas Sanata

Dharma.

Dalam penyelesaian skripsi ini ada begitu banyak pihak atau pribadi yang

selalu membantu saya sampai dengan akhir pengerjaan. Oleh kerena itu saya ingin

mengucapkan rasa terima kasih kepada :

1. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku dekan Fakultas

Sains dan Teknologi Universitas Sanata Dharma.

2. Ibu Dr. Anastasia Rita Widiarti selaku ketua jurusan Teknik Informatika

Universitas Sanata Dharma.

3. Bapak JB. Budi Darmawan, S.T., M.Sc. selaku dosen pembimbing skripsi.

Beliau dengan sabar selalu membimbing dan memberikan banyak kontribusi

dalam pengerjaan.

4. Ibu Sri Hartati Wijono, S.Si., M.Kom. dan Bapak Puspaningtyas Sanjoyo

Adi, S.T., M.T.sebagai dosen penguji skripsi, atas saran dan kritik yang

diberikan untuk menunjang skripsi ini.

5. Keluarga, Yustinus Siswanto (Bapak), Yovita Murtini (Ibu), Veronika Ika

Puspita Kusumawati (Kakak), Yustina Novita Puspitawati (Kakak),

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xiii

DAFTAR ISI

HALAMAN PERSETUJUAN .............................................................................. III

HALAMAN PENGESAHAN ............................................................................... III

PERNYATAAN KEASLIAN KARYA ................................................................. V

HALAMAN MOTO ............................................................................................. VI

HALAMAN PERSEMBAHAN .......................................................................... VII

ABSTRAK .......................................................................................................... VIII

ABSTRACT .......................................................................................................... IX

LEMBAR PERNYATAAN PERSETUJUAN ....................................................... X

KATA PENGANTAR .......................................................................................... XI

DAFTAR ISI ....................................................................................................... XIII

DAFTAR GAMBAR ....................................................................................... XVIII

DAFTAR TABEL ............................................................................................. XXII

DAFTAR KODE PROGRAM .......................................................................... XXV

BAB I ...................................................................................................................... 1

1. PENDAHULUAN ........................................................................................... 1

1.1. Latar Belakang Masalah ........................................................................... 1

1.2. Rumusan Masalah ...................................................................................... 2

1.3. Tujuan ......................................................................................................... 3

1.4. Batasan Masalah ........................................................................................ 3

1.5. Sistematika Penulisan ................................................................................ 3

BAB II ..................................................................................................................... 5

2. TINJAUAN PUSTAKA .................................................................................. 5

2.1. Konsep Pemerolehan Informasi (Information Retrieval) ........................ 5

2.1.1. Logical View dari Dokumen ................................................................. 6

2.1.1.1. Stopwords .......................................................................................... 7

2.1.1.2. Stemming ........................................................................................... 8

2.1.1.3. Tokenization .................................................................................... 10

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xiv

2.1.2. Inverted Index ..................................................................................... 11

2.1.2.1. Membangun Inverted Index .............................................................. 12

2.1.2.2. Boolean Query pada Inverted Index ................................................. 14

2.1.3. Metode Pembobotan TF-IDF .............................................................. 17

2.2. Evaluasi Pemerolehan .............................................................................. 18

BAB III ................................................................................................................. 20

3. ANALISIS DAN PERANCANGAN ............................................................ 20

3.1. Gambaran Umum Sistem ........................................................................ 20

3.1.1. Perancangan Struktur Data Inverted Index ......................................... 25

3.1.2. Contoh Data yang Digunakan ............................................................. 26

3.2. Analisa Kebutuhan .................................................................................. 28

3.4. Perancangan Sistem ................................................................................. 29

3.4.1. Diagram Use Case .............................................................................. 29

3.4.2. Narasi Use Case .................................................................................. 30

3.4.2.1. Login ............................................................................................... 30

3.4.2.2. Menambah Dokumen Pasal............................................................. 32

3.4.2.3. Menambah Dokumen Kasus ........................................................... 34

3.4.2.4. Mencari Dokumen Pasal Berdasarkan Query ................................. 35

3.4.2.5. Mencari Dokumen Kasus dan Pasal Berdasarkan Dokumen Kasus 38

3.4.2.6. Melihat Isi Pasal .............................................................................. 40

3.5. Perancangang Diagram Aktivitas ........................................................... 42

3.5.1. Diagram Aktivitas Login .................................................................... 42

3.5.2. Diagram Aktivitas Menambah Dokumen Pasal.................................. 43

3.5.3. Diagram Aktivitas Menambah Dokumen Kasus ................................ 44

3.5.4. Diagram Aktivitas Mencari Pasal (Query to Document) .................... 45

3.5.5. Diagram Aktivitas Mencari Kasus dan Pasal (Document to Document)

46

3.5.6. Diagram Aktivitas Melihat Isi Pasal ................................................... 47

3.6. Perancangan Diagram Kolaborasi ......................................................... 48

3.6.1. Diagram Kolaborasi Login.................................................................. 48

3.6.2. Diagram Kolaborasi Menambah Dokumen Pasal ............................... 49

3.6.3. Diagram Kolaborasi Menambah Dokumen Kasus ............................. 50

3.6.4. Diagram Kolaborasi Mencari Pasal (Query to Document) ................. 51

3.6.5. Diagram Kolaborasi Mencari Kasus dan Pasal (Document to

Document) ......................................................................................................... 52

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xv

3.6.6. Diagram Kolaborasi Melihat Isi Pasal ................................................ 53

3.7. Perancangan Diagram Sekuensial .......................................................... 54

3.7.1. Diagram Sekuensial Login .................................................................. 54

3.7.2. Diagram Sekuensial Menambah Dokumen Pasal ............................... 55

3.7.3. Diagram Sekuensial Menambah Dokumen Kasus .............................. 59

3.7.4. Diagram Sekuensial Mencari Pasal (Query to Document) ................. 60

3.7.5. Diagram Sekuensial Mencari Kasus dan Pasal (Document to

Document) ......................................................................................................... 63

3.7.6. Diagram Sekuensial Melihat Isi Pasal ................................................ 65

3.8. Perancangan Basis Data .......................................................................... 66

3.8.1. Desain Konseptual Basis Data ............................................................ 66

3.8.2. Desain Logikal Basis Data .................................................................. 67

3.8.3. Desain Fisikal Basis Data ................................................................... 68

3.8. Perancangan Antarmuka ........................................................................ 75

3.8.1. Desain Form Utama ............................................................................ 75

3.8.2. Desain Form Login ............................................................................. 76

3.8.3. Desain Form Tambah Dokumen ......................................................... 76

3.8.4. Desain Form Pencarian ....................................................................... 77

3.8.5. Desain Form Lihat Isi Pasal ................................................................ 78

3.9. Perancangan Diagram Kelas ................................................................... 78

3.9.1. Package Model ................................................................................... 79

3.9.2. Package View ...................................................................................... 80

3.9.3. Package Control ................................................................................. 83

3.9.4. Package Stemming .............................................................................. 84

3.9.5. Package TF_IDF................................................................................. 85

3.9.6. Package inverted index ....................................................................... 85

3.9.7. Package conn ...................................................................................... 85

3.9.8. Package Thread ................................................................................... 85

BAB IV ................................................................................................................. 86

4. IMPLEMENTASI .......................................................................................... 86

4.1. Spesifikasi Software yang Digunakan .................................................... 86

4.2. Implementasi Basis Data ......................................................................... 86

4.3. Implementasi Operasi Teks ..................................................................... 92

4.3.1. Operasi Teks pada Query to Document .............................................. 92

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xvi

4.3.1.1. Tokenization .................................................................................... 92

4.3.1.2. Stopwords ........................................................................................ 93

4.3.1.3. Stemming ......................................................................................... 94

4.3.2. Operasi Teks pada Document to Document ........................................ 99

4.3.2.1. Pengambilan Term .......................................................................... 99

4.4. Implementasi Pembobotan TF-IDF...................................................... 100

4.5. Implementasi Pencarian Melalui Inverted Index ................................. 102

4.5.1. Pencarian pada Pasal (query to document) ....................................... 103

4.5.1.1. Operator AND ............................................................................... 107

4.5.2. Pencarian pada Kasus (document to document) ............................... 113

4.5.2.1. Operator OR .................................................................................. 115

4.6. Implementasi Antarmuka ..................................................................... 118

4.6.1. Form Utama ...................................................................................... 118

4.6.2. Form Login ....................................................................................... 119

4.6.3. Form Tambah Dokumen ................................................................... 120

4.6.4. Form Pencarian ................................................................................. 122

4.6.5. Form Lihat Undang-Undang ............................................................. 124

BAB V ................................................................................................................. 125

5. ANALISIS HASIL ...................................................................................... 125

5.1. Analisa Hasil Sistem ............................................................................... 125

5.1.1. Hasil Uji Coba Query to Document .................................................. 125

5.1.1.1. Uji Coba Pertama Query to Document.......................................... 126

5.1.1.2. Uji Coba Kedua Query to Document ............................................ 130

5.1.1.3. Uji Coba Ketiga Query to Document ............................................ 135

5.1.1.4. Uji Coba Keempat Query to Document ........................................ 138

5.1.1.5. Uji Coba Kelima Query to Document ........................................... 142

5.1.2. Hasil Uji Coba Document to Document ........................................... 148

5.1.2.1. Uji Coba Pertama Document to Document ................................... 149

5.1.2.2. Uji Coba Kedua Document to Document ...................................... 153

5.1.2.3. Uji Coba Ketiga Document to Document ..................................... 156

5.1.2.4. Uji Coba Keempat Document to Document .................................. 160

5.1.2.5. Uji Coba Kelima Document to Document .................................... 164

5.1.3. Rata-Rata Precision .......................................................................... 168

5.1.3.1. Query to Document ....................................................................... 168

5.1.3.2. Document to Document ................................................................. 171

5.2. Kelebihan dan Kekurangan Sistem ...................................................... 176

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xvii

5.2.1. Kelebihan Sistem .............................................................................. 176

5.2.2. Kekurangan Sistem ........................................................................... 176

BAB VI ............................................................................................................... 177

KESIMPULAN DAN SARAN ........................................................................... 177

6.1. Kesimpulan ............................................................................................. 177

6.2. Saran ....................................................................................................... 178

DAFTAR PUSTAKA ......................................................................................... 179

LAMPIRAN ........................................................................................................ 181

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xviii

DAFTAR GAMBAR

Gambar 2.1 Proses Pemerolehan Informasi (Baeza-Yates, 1999) .......................... 5

Gambar 2.2 Logical View dari Dokumen (Baeza-Yates, 1999) .............................. 7

Gambar 2.3 Contoh Proses Tokenization (Deitel, 2004)....................................... 11

Gambar 2.4 Inverted Index (Manning, 2008) ....................................................... 13

Gambar 2.5 Membangun Inverted Index (Manning, 2008) .................................. 13

Gambar 2.6 Representasi Boolean Query (Manning, 2008) ................................. 15

Gambar 2.7 Pemotongan (Intersection) Posting List (Manning, 2008) ................ 15

Gambar 3.1 Sub Sistem Pencarian Query to Document ....................................... 21

Gambar 3.2 Sub Sistem Pencarian Document to Document ................................. 23

Gambar 3.3 Model Struktur Data Inverted Index.................................................. 25

Gambar 3.4 Contoh Dokumen Undang-Undang ................................................... 26

Gambar 3.5 Contoh Dokumen Kasus ................................................................... 27

Gambar 3.6 Diagram Use Case ........................................................................... 29

Gambar 3.7 Diagram Aktivitas Login ................................................................... 42

Gambar 3.8 Diagram Aktivitas Menambah Dokumen Pasal ................................ 43

Gambar 3.9 Diagram Aktivitas Menambah Dokumen Kasus ............................... 44

Gambar 3.10 Diagram Aktivitas Mencari Pasal (Query to Document) ................ 45

Gambar 3.11 Diagram Aktivitas Mencari Kasus dan Pasal (Document to

Document) ...................................................................................................... 46

Gambar 3.12 Diagram Aktivitas Melihat Isi Pasal ............................................... 47

Gambar 3.13 Diagram Kolaborasi Login .............................................................. 48

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xix

Gambar 3.14 Diagram Kolaborasi Menambah Dokumen Pasal ........................... 49

Gambar 3.15 Diagram Kolaborasi Menambah Dokumen Kasus .......................... 50

Gambar 3.16 Diagram Kolaborasi Mencari Pasal (Query to Document) ............. 51

Gambar 3.17 Diagram Kolaborasi Mencari Kasus dan Pasal (Document to

Document ....................................................................................................... 52

Gambar 3.18 Diagram Kolaborasi Melihat Isi Pasal ............................................ 53

Gambar 3.19 Diagram Sekuensial Login .............................................................. 54

Gambar 3.20 Diagram Sekuensial Menambah Dokumen Pasal Bagian 1 ............ 55

Gambar 3.21 Diagram Sekuensial Menambah Dokumen Pasal Bagian 2 ............ 56

Gambar 3.22 Diagram Sekuensial Menambah Dokumen Pasal Bagian 3 ............ 57

Gambar 3.23 Diagram Sekuensial Menambah Dokumen Pasal Bagian 4 ............ 58

Gambar 3.24 Diagram Sekuensial Menambah Dokumen Kasus .......................... 59

Gambar 3.25 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 1

....................................................................................................................... 60

Gambar 3.26 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 2

....................................................................................................................... 61

Gambar 3.27 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 3

....................................................................................................................... 62

Gambar 3.28 Diagram Sekuensial Mencari Kasus dan Pasal (Document to

Document) Bagian 1 ...................................................................................... 63

Gambar 3.29 Diagram Sekuensial Mencari Kasus dan Pasal (Document to

Document) Bagian 2 ...................................................................................... 64

Gambar 3.30 Diagram Sekuensial Melihat Isi Pasal ............................................. 65

Gambar 3.31 Desain Konseptual Basis Data ........................................................ 66

Gambar 3.32 Desain Logikal Basis Data .............................................................. 67

Gambar 4.1 Antarmuka Form Utama.................................................................. 118

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xx

Gambar 4.2 Antarmuka Form Login ................................................................... 119

Gambar 4.3 Antarmuka Form Tambah Dokumen Undang-Undang ................... 120

Gambar 4.4 Antarmuka Form Tambah Dokumen Kasus.................................... 121

Gambar 4.5 Antarmuka Form Pencarian Pasal (Query to Document) ................ 122

Gambar 4.6 Antarmuka Form Pencarian Kasus dan Pasal (Document to

Document) .................................................................................................... 123

Gambar 4.7 Antarmuka Form Lihat Undang-Undang ........................................ 124

Gambar 5.1 Pasal 26 UU No. 23 Tahun 2002 .................................................... 126

Gambar 5.2 Output Uji Coba Pertama Query to Document................................ 127

Gambar 5.3 Recall Precision Uji Coba Pertama Query to Document ................ 129

Gambar 5.4 Pasal 56 UU No. 19 Tahun 2002 .................................................... 130

Gambar 5.5 Pasal 57 UU No. 19 Tahun 2002 .................................................... 130

Gambar 5.6 Pasal 7.2 UU No. 19 Tahun 2002.................................................... 131

Gambar 5.7 Output Uji Coba Kedua Query to Document .................................. 132

Gambar 5.8 Recall Precision Uji Coba Kedua Query to Document ................... 134

Gambar 5.9 Pasal 16 UU No. 23 Tahun 2002 .................................................... 135

Gambar 5.10 Output Uji Coba Ketiga Query to Document ................................ 136

Gambar 5.11 Recall Precision Uji Coba Ketiga Query to Document................. 138

Gambar 5.12 Pasal 45 UU No. 11 Tahun 2008................................................... 139

Gambar 5.13 Output Uji Coba Keempat Query to Document ............................ 140

Gambar 5.14 Recall Precision Uji Coba Keempat Query to Document ............. 142

Gambar 5.15 Pasal 4 UU No. 8 Tahun 1999 ...................................................... 143

Gambar 5.16 Pasal 26 UU No. 8 tahun 1999 ...................................................... 143

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xxi

Gambar 5.17 Pasal 60 UU No. 8 Tahun 1999..................................................... 144

Gambar 5.18 Pasal 62 UU No. Tahun 1999........................................................ 145

Gambar 5.19 Output Uji Coba Kelima Query to Document ............................... 145

Gambar 5.20 Recall Precision Uji Coba Kelima Query to Document ............... 148

Gambar 5.21 Output Uji Coba Pertama Document to Document ....................... 149

Gambar 5.22 Recall Precision Uji Coba Pertama Document to Document ........ 152

Gambar 5.23 Output Uji Coba Kedua Document to Document .......................... 153

Gambar 5.24 Recall Precision Uji Coba Kedua Document to Document .......... 156

Gambar 5.25 Output Uji Coba Ketiga Document to Document.......................... 157

Gambar 5.26 Recall Precision Uji Coba Ketiga Document to Document .......... 159

Gambar 5.27 Output Uji Coba Keempat Document to Document ...................... 160

Gambar 5.28 Recall Precision Uji Coba Keempat Document to Document ...... 163

Gambar 5.29 Output Uji Coba Kelima Document to Document ........................ 164

Gambar 5.30 Recall Precision Uji Coba Kelima Document to Document ......... 167

Gambar 5.31 Grafik Rata-Rata Interpolasi Sub Sistem Query to Document ...... 170

Gambar 5.32 Grafik Rata-Rata Interpolasi Sub Sistem Document to Document 173

Gambar 5.33 Grafik Rata-Rata Precision Kedua Sub Sistem ............................. 175

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xxii

DAFTAR TABEL

Tabel 3.1 Analisa Kebutuhan ................................................................................ 28

Tabel 3.2 Narasi Use Case Login .......................................................................... 30

Tabel 3.3 Narasi Use Case Menambah Dokumen Pasal ....................................... 32

Tabel 3.4 Narasi Use Case Menambah Dokumen Kasus ..................................... 34

Tabel 3.5 Narasi Use Case Mencari Pasal (Query to Document) ......................... 36

Tabel 3.6 Narasi Use Case Mencari Kasus dan Pasal (Document to Document) . 38

Tabel 3.7 Narasi Use Case Melihat Isi Pasal ........................................................ 40

Tabel 3.8 Desain Tabel User ................................................................................. 68

Tabel 3.9 Desain Tabel Rootwords ....................................................................... 68

Tabel 3.10 Desain Tabel Stopwords ..................................................................... 69

Tabel 3.11 Desain Tabel Pasal .............................................................................. 69

Tabel 3.12 Desain Tabel Termpasal...................................................................... 70

Tabel 3.13 Desain Tabel Indeks_Pasal ................................................................. 70

Tabel 3.14 Desain Tabel Kasus ............................................................................. 71

Tabel 3.15 Desain Tabel Termkasus ..................................................................... 72

Tabel 3.16 Desain Tabel Indeks_Kasus ................................................................ 72

Tabel 3.17 Desain Tabel Kasus_Pasal .................................................................. 73

Tabel 3.18 Desain Tabel Kamus_Hukum ............................................................. 73

Tabel 3.19 Desain Tabel Hukum_Pasal ................................................................ 74

Tabel 5.1 Relevansi Uji Coba Pertama Query to Document ............................... 127

Tabel 5.2 Recall dan Precision Uji Coba Pertama Query to Document ............. 128

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xxiii

Tabel 5.3 Interpolasi Uji Coba Pertama Query to Document ............................. 128

Tabel 5.4 Relevansi Uji Coba Kedua Query to Document ................................. 132

Tabel 5.5 Recall dan Precision Uji Coba Kedua Query to Document ................ 133

Tabel 5.6 Interpolasi Uji Coba Kedua Query to Document ................................ 133

Tabel 5.7 Relevansi Uji Coba Ketiga Query to Document ................................. 136

Tabel 5.8 Recall dan Precision Uji Coba Ketiga Query to Document ............... 137

Tabel 5.9 Interpolasi Uji Coba Ketiga Query to Document ................................ 137

Tabel 5.10 Relevansi Uji Coba Keempat Query to Document ........................... 140

Tabel 5.11 Recall dan Precision Uji Coba Keempat Query to Document .......... 141

Tabel 5.12 Interpolasi Uji Coba Keempat Query to Document .......................... 141

Tabel 5.13 Relevansi Uji Coba Kelima Query to Document .............................. 146

Tabel 5.14 Recall dan Precision Uji Coba Kelima Query to Document ............ 146

Tabel 5.15 Interpolasi Uji Coba Kelima Query to Document ............................. 147

Tabel 5.16 Relevansi Uji Coba Pertama Document to Document ...................... 150

Tabel 5.17 Recall dan Precision Uji Coba Pertama Document to Document ..... 151

Tabel 5.18 Interpolasi Uji Coba Pertama Document to Document ..................... 152

Tabel 5.19 Relevansi Uji Coba Kedua Document to Document ......................... 154

Tabel 5.20 Recall dan Precision Uji Coba Kedua Document to Document ....... 155

Tabel 5.21 Interpolasi Uji Coba Kedua Document to Document........................ 155

Tabel 5.22 Relevansi Uji Coba Ketiga Document to Document ......................... 157

Tabel 5.23 Recall dan Precision Uji Coba Ketiga Document to Document ....... 158

Tabel 5.24 Interpolasi Uji Coba Ketiga Document to Document ....................... 159

Tabel 5.25 Precision Uji Coba Keempat Document to Document ..................... 161

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xxiv

Tabel 5.26 Recall dan Precision Uji Coba Keempat Document to Document ... 162

Tabel 5.27 Interpolasi Uji Coba Keempat Document to Document.................... 163

Tabel 5.28 Relevansi Uji Coba Kelima Document to Document........................ 165

Tabel 5.29 Recall dan Precision Uji Coba Kelima Document to Document ...... 166

Tabel 5.30 Interpolasi Uji Coba Kelima Document to Document ...................... 167

Tabel 5.31 Rata-Rata Precision dari Sub Sistem Query to Document ............... 168

Tabel 5.32 Rata-Rata Perhitungan Interpolasi Sub Sistem Query to Document. 169

Tabel 5.33 Rata-Rata Precision dari Sub Sistem Document to Document ......... 171

Tabel 5.34 Rata-Rata Perhitungan Interpolasi Sub Sistem Document to Document

..................................................................................................................... 172

Tabel 5.35 Rata-Rata Precision Kedua Sub Sistem ............................................ 174

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xxv

DAFTAR KODE PROGRAM

Kode Program 4.1 Implementasi Pembuatan Tabel User ..................................... 86

Kode Program 4.2 Implementasi Pembuatan Tabel Rootwords ........................... 87

Kode Program 4.3 Implementasi Pembuatan Tabel Stopwords............................ 87

Kode Program 4.4 Implementasi Pembuatan Tabel Soptwords_hukum .............. 87

Kode Program 4.5 Implementasi Pembuatan Tabel Pasal .................................... 88

Kode Program 4.6 Implementasi Pembuatan Tabel Termpasal ............................ 88

Kode Program 4.7 Implementasi Pembuatan Tabel Indeks_Pasal........................ 89

Kode Program 4.8 Implementasi Pembuatan Tabel Kasus ................................... 89

Kode Program 4.9 Implementasi Pembuatan Tabel Termkasus ........................... 90

Kode Program 4.10 Implementasi Pembuatan Tabel Indeks_kasus ..................... 90

Kode Program 4.11 Implementasi Pembuatan Tabel Kasus_Pasal ...................... 91

Kode Program 4.12 Implementasi Pembuatan Tabel Kamus_Hukum ................. 91

Kode Program 4.13 Implementasi Pembuatan Tabel Hukum_pasal .................... 92

Kode Program 4.14 Implementasi Tokenization ................................................... 92

Kode Program 4.15 Implementasi Stopwords ....................................................... 93

Kode Program 4.16 Implementasi Stemming ........................................................ 98

Kode Program 4.17 Implementasi Pengambilan Term ......................................... 99

Kode Program 4.18 Implementasi Perhitungan TF_ij ........................................ 101

Kode Program 4.19 Implementasi Perhitungan DF_j dan NIDF_j ..................... 101

Kode Program 4.20 Implementasi Perhitungan W_ij ......................................... 102

Kode Program 4.21 Implementasi Pembangunan Inverted Index Pasal ............. 103

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xxvi

Kode Program 4.22 Implementatsi Pengambilan List Indeks_Pasal .................. 104

Kode Program 4.23 Implementasi Pencarian Term_Pasal .................................. 104

Kode Program 4.24 Implementasi Pengindeksan ............................................... 105

Kode Program 4.25 Implementasi Pengurutan Posting List ............................... 105

Kode Program 4.26 Implementasi Cetak Inverted Index .................................... 106

Kode Program 4.27 Implementasi Pencarian Bobot W_ij .................................. 107

Kode Program 4.28 Implementasi Pengurutan Dokumen Pasal Berdasarkan W_ij

..................................................................................................................... 111

Kode Program 4.29 Implementasi Intersection .................................................. 111

Kode Program 4.30 Implementasi Pengurutan List secara Descending ............. 112

Kode Program 4.31 Implementasi Pencarian Dokumen Pasal di Basis Data ..... 112

Kode Program 4.32 Implementasi Pembangunan Inverted Index Kasus ............ 113

Kode Program 4.33 Implementasi Membaca Dokumen sebagai Kata Kunci ..... 113

Kode Program 4.34 Implementasi Pengambilan Term sesuai Kamus Hukum ... 114

Kode Program 4.35 Implementasi Pengambilan W_ij pada Pencarian Kasus.... 115

Kode Program 4.36 Implementasi Penghilang Duplikasi ................................... 116

Kode Program 4.37 Implementasi Pencarian Dokumen Kasus Pada Tabel Kasus

..................................................................................................................... 117

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

1

BAB I

1. PENDAHULUAN

1.1. Latar Belakang Masalah

Hukum menurut Aristoteles (1963) merupakan sumber dari kekuasaan,

dimana negara membutuhkan hukum untuk mengatur nafsu dan keinginan jahat

manusia. Hukum merupakan kecerdasan yang paling cerdas, bahkan bisa dalam

tingkat dewa atau lebih tinggi daripada pemimpin karena seorang pemimpin akan

mengambil suatu keputusan berdasarkan undang-undang yang berlaku (Rapar,

2002). Ada pula yang mengatakan bahwa hukum merupakan “himpunan

petunjuk-petunjuk hidup tata tertib suatu masyarakat dan seharusnya ditaati oleh

anggota masyarakat yang bersangkutan” (Utrecht, 1953).

Sumber hukum dari Negara Indonesia itu sendiri terdapat pada Undang-

Undang Dasar 1945 yang merupakan hukum dasar tertulis yang mengatur masalah

kenegaraan dan merupakan dasar ketentuan-ketentuan lainnya yang harus ditaati.

Tetapi pada kenyataanya sampai saat ini masih banyak kasus pelanggaran hukum

yang terjadi baik di dalam rumah tangga, masyarakat, dan sebagainya. Misalnya

saja dalam lingkup rumah tangga, yaitu pembatasan hak-hak anak, kekerasan

dalam rumah tangga, atau dalam lingkup masyarakat, yaitu korupsi, pencemaran

nama baik dan lain-lain.

Dengan semakin banyak kasus pelanggaran tersebut, sehingga membuat

para pihak yang berwenang (seperti advokat) yang membantu penggugat maupun

tergugat merasa kesulitan karena harus mencari pasal pada kitab undang-undang.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

2

Hal tersebut akan memerlukan waktu yang lama. Oleh sebab itu, dibutuhkannya

suatu sistem yang dapat membantu pihak-pihak berwenang dalam memperoleh

informasi pasal-pasal secara cepat dan tepat. Sistem yang akan digunakan ini

memerlukan konsep Pemerolehan Informasi (Information Retrieval), yaitu

aktivitas mendapatkan sumber informasi yang relevan untuk kebutuhan informasi

dari suatu koleksi sumber informasi.

Sistem pemerolehan informasi ini akan melakukan pencarian pasal pada

undang-undang (1946-2014) berupa dokumen (.txt) yang tersimpan di basis data.

Sistem ini akan menggunakan struktur data inverted index untuk mempercepat

proses pencarian serta metode pembobotan TF-IDF untuk menemukan dokumen

yang relevan dengan kasus pelanggaran. Kata kunci yang dimasukan tidak hanya

berupa query melainkan juga berupa dokumen kasus (.txt). Selanjutnya, untuk

membuat pemerolehan informasi ini menjadi efisien, diperlukan pula metode

untuk mencari kata dasar dari term, yaitu stemming yang dibuat oleh Bobby

Nazief dan Mirna Adriani, dan metode untuk menghilangkan term yang tidak

terlalu penting, yaitu eliminasi stopwords. Kemudian setelah dilakukan proses

pencarian, akan dilakukan evaluasi menggunakan metode recall dan precision

untuk mengetahui keefektifan sistem dalam memperoleh undang-undang yang

relevan.

1.2. Rumusan Masalah

1. Bagaimana cara menerapkan konsep pemerolehan informasi pada sub sistem

query to document dan document to document ?

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

3

2. Apakah penggunaan metode pembobotan TF-IDF ini efektif pada sub sistem

query to document dan document to document dalam memperoleh pasal-

pasal yang relevan terhadap kasus pelanggaran hukum ?

1.3. Tujuan

1. Untuk menerapkan konsep pemerolehan informasi pada sub sistem query to

document dan document to document.

2. Untuk mengetahui keefektifan dari metode pembobotan TF-IDF pada sub

sistem query to document dan document to document dalam memperoleh

pasal-pasal yang relevan terhadap kasus pelanggaran hukum.

1.4. Batasan Masalah

Batasan Masalah tugas akhir ini adalah :

1. Diasumsikan kata kunci dari pengguna adalah benar.

2. Sumber informasi : Undang-Undang tahun 1945-2014 dan dokumen kasus.

1.5. Sistematika Penulisan

BAB I : PENDAHULUAN

Bab ini berisi pendahuluan yang terdiri dari latar belakang

masalah, rumusan masalah, tujuan, batasan masalah, dan

metodologi penelitian.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

4

BAB II : TINJAUAN PUSTAKA

Bab ini berisi konsep dasar dari pembobotan TF-IDF, struktur

data inverted index, algoritma stemming, eliminasi stopwords, dan

metode evaluasi recall precision.

BAB III : ANALISIS DAN PERANCANGAN

Bab ini berisi analisis kebutuhan sistem, dan rancangan database

serta tampilan (interface) dari sistem.

BAB IV : IMPLEMENTASI

Bab ini berisi penjelasan dan fungsi dari program pencarian.

BAB V : ANALISIS HASIL

Bab ini berisi analisi hasil pengujian berupa kelebihan dan

kekurangan dari sistem pencarian.

BAB VI : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan saran dari pembuatan sistem

pencarian pasal-pasal yang relevan terhadap kasus pelanggaran

hukum.

DAFTAR PUSTAKA

LAMPIRAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

5

BAB II

2. TINJAUAN PUSTAKA

2.1. Konsep Pemerolehan Informasi (Information Retrieval)

Pemerolehan Informasi merupakan proses yang terlibat dalam

representation, storage, pencarian, dan mendapatkan informasi yang relevan

untuk kebutuhan informasi yang diperlukan oleh pengguna (Ingwersen, 1992,

2002). Tipe dari informasi tersebut dapat berupa dokumen, halaman web, online

catalogs, structured records, dan objek multimedia. Tujuan awal dari

pemerolehan informasi ini adalah indexing text dan pencarian yang berguna pada

suatu koleksi. Sekarang ini pemerolehan informasi telah melibatkan pemodelan,

pencarian web, visualisasi data, penyaringan dan bahasa dalam memperoleh

informasi yang relevan (Baeza-Yates, 1999). Proses pemerolehan informasi

disajikan pada gambar 2.1. :

Gambar 2.1 Proses Pemerolehan Informasi (Baeza-Yates, 1999)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

6

Dari gambar 2.1 tersebut, terdapat 5 langkah utama dalam proses

pemerolehan informasi. Tahap pertama yaitu operasi teks (text operations)

contohnya proses eliminasi stopwords (penghilangan kata umum), proses

stemming (pencarian kata dasar), dan sebagainya. Tahap kedua yaitu query

operations contohnya penggunaan operator AND, OR, dan NOT pada query.

Tahap ketiga yaitu pengindeksan (indexing) untuk mempercepat proses pencarian

dimana term diindeksan dengan id document. Tahap keempat yaitu pencarian

(searching) yang dilakukan pada inverted file yang sudah dibangun. Tahap kelima

yaitu pembobotan (ranking) terhadap dokumen yang diperoleh dari proses

pencarian.

2.1.1. Logical View dari Dokumen

Dalam kaitannya dengan historikal, dokumen-dokumen pada suatu koleksi

tertentu sering digambarkan secara langsung melalui kumpulan index terms atau

kata kunci (keywords). Kata kunci tersebut dapat diekstraksi langsung dari teks

pada dokumen atau dibuat manual (dispesifikasikan) oleh manusia. Kata kunci

atau index terms ini menyediakan logical view dari dokumen.

Komputer yang sudah modern dapat menggambarkan suatu dokumen

beserta seluruh teks yang terdapat di dalamnya. Pada kasus tersebut, sistem

pemerolehan telah menggunakan full text logical view dari dokumen-dokumen.

Tetapi dengan banyaknya koleksi, komputer modern pun juga harus mengurangi

kumpulan kata kunci yang ada. Hal ini dapat dilakukan dengan melakukan

eliminasi stopwords dan stemming. Operasi tersebut dinamakan dengan text

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

7

operation, yang merupakan pengurangan kompleksitas dari representasi dokumen

serta pemindahan logical view dari full text ke sekumpulan index terms. (Baeza-

Yates, 1999). Pada gambar 2.2 berikut ini merupakan gambaran logical view :

Gambar 2.2 Logical View dari Dokumen (Baeza-Yates, 1999)

2.1.1.1. Stopwords

Kata-kata yang terlalu sering muncul diantara dokumen-dokumen pada

sebuah koleksi, bukanlah merupakan discriminator yang baik. Faktanya, sebuah

kata yang terdapat dalam 80% dokumen-dokumen pada suatu koleksi, tidaklah

berguna untuk suatu pemerolehan. Kata-kata tersebut inilah yang dinamakan

sebagai stopwords (Baeza-Yates,1999). Stopwords perlu dieliminasi untuk

mengurangi waktu eksekusi query dengan cara menghindari proses list yang

panjang (Büttcher-Clarke-Cormack, 2010), sehingga text processing akan berhenti

ketika menemukan stopword, dan membuangnya. Pembuangan stopword ini akan

mengurangi ukuran indeks, meningkatkan efesiensi dan keefektifan dari

pemerolehan (Croft-Metzler-Strohman, 2010).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

8

Contoh stopwords dalam Bahasa Inggris yaitu “the”, “a”, “an”, “that”,

“those”. Contoh stopwords dalam Bahasa Indonesia yaitu kata ganti orang

(“mereka”, “dia”, “beliau”, “kami”), kata penghubung (“lalu”, “padahal”,

“namun”). Namun, penentuan stopwords itu sendiri berdasarkan frekuensi kata-

kata dari suatu koleksi dokumen tertentu.

2.1.1.2. Stemming

Konsep dari stemming adalah menghapus variasi kata untuk mendapatkan

kata dasar sebagai term pembeda, yang mengacu pada morfologi kata. Pada

umumnya kata dasar Bahasa Indonesia terdiri dari kombinasi berikut ini (Agusta,

2009) :

Perfiks 1 + Perfiks 2 + kata dasar + Sufiks 3 + Sufiks 2 + Sufiks 1 ..... (2.1)

Berikut ini merupakan algoritma dari Stemming yang dibuat oleh Bobby Nazief

dan Mirna Adriani (1996) :

1. Pertama cari kata yang akan di-stem dalam kamus kata dasar. Jika ditemukan

maka diasumsikan kata tersebut adalah root word maka algoritma berhenti.

2. Inflection Suffixes (-lah, -kah, -ku, -mu, atau –nya) dibuang. Jika berupa

particles (-lah, -kah, -tah, atau –pun) maka langkah ini diulangi lagi untuk

menghapus Possesive Pronouns (-ku, -mu, atau –nya) jika ada.

3. Hapus Derivation Suffixes (-i, -an, atau –kan). Jika kata ditemukan di kamus

maka algoritma berhenti. Jika tidak maka ke langkah 3a

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

9

a. Jika –an telah dihapus dan huruf terakhir dari kata tersebut adalah –k,

maka –k juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus

maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b.

b. Akhiran yang dihapus (-i, -an, atau –kan) akan dikembalikan dan lanjut

ke langkah 4.

4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka

pergi ke langkah 4a, jika tidak pergi ke langkah 4b.

a. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika

ditemukan maka algoritma berhenti, jika tidak maka :

- Pergi ke langkah 4b.

b. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root

word belum juga ditemukan lakukan langkah 5, jika sudah maka

algoritma berhenti. Catatan : jika awalan kedua sama dengan awalan

pertama algoritma berhenti.

5. Melakukan Recording.

6. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal

diasumsikan sebagai root word. Proses selesai.

Untuk aturan di atas, ditambahkan pula aturan-aturan berikut ini :

1. Aturan untuk reduplikasi

a. Jika kedua kata yang dihubungkan oleh kata penghubung adalah kata

yang sama maka root word adalah bentuk tunggalnya, contoh : “buku-

buku”, root word-nya adalah “buku”.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

10

b. Kata lain, misalnya “bolak-balik”, “berbalas-balasan”, “seolah-olah”.

Untuk mendapatkan root word-nya, kedua kata diartikan secara terpisah.

Jika keduanya memiliki root word yang sama maka diubah menjadi

bentuk tunggal. Contoh: kata “berbalas-balasan”, “berbalas”, dan

“balasan” memiliki root word yang sama yaitu “balas”, maka root word

“berbalas-balasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”,

“bolak” dan “balik” memiliki root word yang berbeda, maka root word-

nya adalah “bolak-balik”

2. Tambahan bentuk awalan dan akhiran serta aturannya.

a. Untuk tipe awalan “mem-”, kata yang diawali dengan awalan “memp-”

memiliki tipe awalan “mem-”.

b. Tipe awalan “meng-”, kata yang diawali dengan awalan “mengk-”

memiliki tipe awalan “meng-”

2.1.1.3. Tokenization

Tokenization merupakan proses dari pengenalan/pembentukan kata-kata dari

serangkaian karakter pada suatu dokumen (Croft-Metzler-Strohman, 2010). Proses

ini juga menyertakan pengasingan kata satu sama lain (word segmentation) dan

dari tanda baca (Goker-Davies, 2009).

Ketika kita membaca sebuah kalimat, biasanya pikiran kita memecahkan

atau menguraikan kalimat tersebut menjadi kata-kata individu dan tanda baca,

yang masing-masing menyampaikan arti untuk kita. Compiler juga melakukan

tokenization dengan menguraikan kalimat menjadi bagian individu seperti

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

11

keyword, identifier, operator, dan elemen lain dari suatu bahasa pemrograman.

Token dipisahkan dari satu sama lain dengan pembatas (whitespace seperti space,

tab, newline). Karakter lain juga bisa digunakan sebagai pembatas (Deitel, 2004).

Berikut ini pada gambar 2.3. merupakan contoh dari proses tokenization :

Gambar 2.3 Contoh Proses Tokenization (Deitel, 2004)

Pada gambar 2.3 terdapat kalimat yang terdiri dari 7 kata yaitu “This is a

sentence with seven tokens.” Dengan menggunakan proses tokenization sistem

tersebut dapat menguraikan kalimat tersebut menjadi per kata.

2.1.2. Inverted Index

Ada beberapa struktur data yang diterapkan dalam konsep pemerolehan

informasi yaitu digital tree hibrida, inverted index, struktur data utama dll. Pada

Sistem Pemerolehan Undang-Undang dan Kasus ini penulis memilih struktur data

inverted index.

Inverted index atau inverted file merupakan struktur data pokok yang

terdapat di sistem pemerolehan informasi (Büttcher-Clarke-Cormack, 2010).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

12

Inverted index digunakan untuk mempercepat proses pencarian terms pada koleksi

dokumen (Grossman-Frieder, 2004). Inverted index memiliki dua komponen

pokok yaitu dictionary dan postings lists. Untuk setiap term dalam koleksi,

terdapat posting list yang mengandung informasi mengenai term’s occurences di

koleksi. Informasi yang ditemukan oleh posting list akan digunakan oleh sistem

untuk memproses query pencarian (Büttcher-Clarke-Cormack, 2010).

2.1.2.1. Membangun Inverted Index

Tujuan dari membangun inverted index ini adalah untuk memperoleh

kecepatan dalam pengindeksan saat melakukan pemerolehan (retrieval). Langkah

utama dalam membangun inverted index (Manning, 2008) yaitu :

1. Kumpulkan dokumen-dokumen untuk diindekskan :

2. Lakukan proses tokenization pada text, kemudian kembalikan setiap dokumen

ke dalam list :

3. Lakukan proses berdasarkan ilmu bahasa, kemudian menghasilkan suatu list

dari tokens yang sudah ternormalisasi, yang mengindekskan istilah-istilah :

4. Lakukan pengindeksan terhadap dokumen-dokumen yang mengandung

istilah-istilah tersebut dengan membuat inverted index yang terdiri dari

dictionary dan postings yang direpresentasikan pada gambar 2.4. berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

13

Gambar 2.4 Inverted Index (Manning, 2008)

Pada gambar 2.5 berikut ini merupakan gambaran secara keseluruhan dari proses

membangun inverted index (Manning, 2008). :

Gambar 2.5 Membangun Inverted Index (Manning, 2008)

Pada sisi kiri di gambar 2.5 terdapat serangkaian istilah-istilah yang

disimpan dalam kolom “term” yang diurutkan berdasarkan abjad, sedangkan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

14

kolom “docID” menyimpan dokumen yang mengandung istilah (term) tersebut.

Kemudian kumpulan istilah yang ada di kolom “term” dan “docID” tersebut akan

dipisahkan ke dalam “term”, dan “document frequency” seperti yang digambarkan

pada gambar 2.5 sisi kanan. Term dan document frequency tersebut akan disimpan

di dictionary.

Dictionary berfungsi untuk menyimpan istilah-istilah dan mempunyai

pointer untuk menuju ke posting list pada setiap istilah. Informasi (term dan

document frequency) yang terdapat dalam dictionary dapat digunakan untuk

meningkatkan efisiensi waktu query dan melakukan pembobotan pada model

ranked retrieval.

Sedangkan posting list berfungsi untuk menyimpan list dari dokumen yang

mengandung suatu istilah tertentu. Selain itu, posting list juga dapat menyimpan

informasi lain seperti frekuensi istilah atau posisi istilah atau posisi istilah dalam

setiap dokumen (Manning, 2008).

2.1.2.2. Boolean Query pada Inverted Index

Pada system pemerolehan informasi undang-undang ini menggunakan

Boolean Query yang terdapat di inverted index yang berupa basic queries joined

seperti AND dan OR. Berikut ini pada gambar 2.6 merupakan representasi dari

Boolean Query dari klausa AND :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

15

Gambar 2.6 Representasi Boolean Query (Manning, 2008)

Pada gambar 2.6 terdapat query = “Brutus AND Calpurnia” (Manning,

2008), maka langkah dari proses pencarian di inverted index yaitu :

1. Cari Brutus pada kamus (dictionary).

2. Dapatkan posting list milik Brutus.

3. Cari Calpurnia pada kamus (dictionary).

4. Dapatkan posting list milik Calpurnia.

5. Lakukan pemotongan (intersection) pada kedua posting list tersebut.

Operasi pemotongan ini sangat penting agar dapat menemukan dokumen

yang mengandung istilah dari keduanya (Brutus dan Calpurnia) dengan cepat

yang direpresentasikan pada gambar 2.7. :

Gambar 2.7 Pemotongan (Intersection) Posting List (Manning, 2008)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

16

Berikut ini merupakan algoritma untuk pemotongan kedua posting lists di

atas menurut Manning (2008) :

INTERSECT(p1, p2)

1. answer ← ﴾ ﴿

2. while p1 ≠ NIL and p2 ≠ NIL

3. do if docID(p1) = docID(p2)

4. then ADD(answer, docID(p1))

5. p1 ← next(p1)

6. p2 ← next(p2)

7. else if docID(p1) < docID(p2)

8. then p1 ← next(p1)

9. else p2 ← next(p2)

10. return answer

Kemudian, di bawah ini pada gambar 2.8 merupakan contoh dokumen untuk

operator OR :

Gambar 2.8 Contoh Dokumen (Nejmeh-Dickey-Wartik, 1989)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

17

Dari contoh dokumen tersebut, terdapat query = "information or

retrieval" dengan menggunakan contoh dokumen pada Gambar2.8., maka

hasilnya adalah :

{doc1, doc3} {doc1, doc2, doc4} = {doc1, doc2, doc3, doc4}

Jadi semua dokumen yang mengandung kata “information” atau “retrieval”

akan ditampilkan, yaitu doc1,doc2,doc3, dan doc4, sedangkan doc5 tidak

ditampilkan karena tidak mengandung salah satu kata dari query tersebut.

Operator AND akan diimplementasikan pada kasus query to document,

dimana input dari pengguna merupakan kata kunci. Sedangkan operator OR

diimplementasikan pada kasus document to document, dimana input dari

pengguna merupakan dokumen kasus.

2.1.3. Metode Pembobotan TF-IDF

TF-IDF atau Term Frequency (TF) dan Inverse Document Frequency (IDF)

merupakan dasar dari skema pembobotan istilah yang paling populer di

pemerolehan informasi (Baeza-Yates, 1999). Teknik pembobotan TF-IDF

menurut Savoy (1993):

Wij = ntfij * nidfj ..…. (2.2)

dimana : ntfij=tfij

Max tfi dan nidfj =

log (m

dfj)

log(m) ..…. (2.3)

Keterangan :

Wij adalah bobot istilah Tj pada dokumen Di.

tfij merupakan frekuensi dari istilah Tj dalam dokumen Di.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

18

m adalah jumlah dokumen Di pada kumpulan dokumen.

dfj adalah jumlah dokumen yang mengandung istilah Tj.

idfj adalah kebalikan dari frekuensi dokumen (inverse document frequency)

Max tfi adalah frekuensi istilah terbesar pada satu dokumen

Pada teknik pembobotan TF-IDF ini, bobot istilah telah dinormalisasi,

sehingga tidak perlu melakukan tahap normalisasi lagi. Penentuan bobot dari

suatu istilah tidak hanya berdasarkan frekuensi kemunculan istilah pada satu

dokumen, tetapi juga perlu memperhatikan frekuensi terbesar pada suatu istilah

yang dimiliki oleh dokumen bersangkutan. Hal ini untuk menentukan posisi relatif

bobot dari istilah dibanding dengan istilah-istilah lain di dokumen yang sama.

Selain itu teknik pembobotan ini juga memperhitungkan jumlah dokumen. Hal ini

berguna untuk mengetahui posisi relatif bobot istilah bersangkutan pada suatu

dokumen dibandingkan dengan dokumen-dokumen lain yang memiliki istilah

yang sama. Sehingga jika sebuah istilah mempunyai frekuensi kemunculan yang

sama pada dua dokumen belum tentu mempunyai bobot yang sama (Hasibuan,

2001).

2.2. Evaluasi Pemerolehan

Pada dasarnya ada dua pengukuran umum yang efektif, yaitu recall dan

precision untuk membandingkan hasil pencarian. Recall digunakan untuk

mengukur seberapa baik suatu sistem melakukan pencarian terhadap dokumen-

dokumen yang relevan pada suatu query, sebaliknya precision digunakan untuk

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

19

mengukur seberapa baik sistem tersebut menolak atau mengeliminasi dokumen-

dokumen yang tidak relevan (Croft-Metzler-Strohman, 2010).

𝑅𝑒𝑐𝑎𝑙𝑙 =jumlah dokumen relevan yang diperoleh

jumlah seluruh dokumen relevan .… (2.4)

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =jumlah dokumen relevan yang diperoleh

jumlah dokumen yang diperoleh ..... (2.5)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

20

BAB III

3. ANALISIS DAN PERANCANGAN

3.1. Gambaran Umum Sistem

Sistem yang dirancang ini terdiri dari dua sub sistem berbeda, yaitu

pencarian query to document dan pencarian document to document. Sub sistem

pencarian query to document berfungsi untuk mencari pasal-pasal yang terkait

dengan kasus pelanggaran hukum, dimana input berupa query. Sedangkan sub

sistem pencarian document to document berfungsi untuk mencari pasal dan kasus-

kasus yang mirip dengan kasus yang baru terjadi, dimana input berupa dokumen

kasus berekstensi .txt.

Aktor yang terlibat pada sistem ini adalah pengguna dan administrator.

Pengguna merupakan aktor yang melakukan pencarian pada sistem ini, sedangkan

administrator merupakan aktor yang mempunyai hak akses untuk menambahkan

dokumen-dokumen pasal dan kasus ke dalam basis data. Kumpulan dokumen

yang digunakan dalam sistem ini yaitu Undang-Undang (1945-2014), dan contoh

kasus-kasus yang telah diselesaikan sebelumnya. Kedua jenis dokumen tersebut

disimpan dalam file berekstensi .txt, dimana untuk dokumen undang-undang harus

dipecah menjadi satuan pasal.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

21

Pada gambar 3.1. berikut ini merupakan gambaran dari sub sistem pencarian

query to document :

Pengguna Administrator

Basis Data Hukum

Memasukan kata kunci

berupa query

Operasi teks

tokenization

Operasi teks

stopwords

Operasi teks

stemming

Operasi AND

Membangun

Inverted index

Penjumlahan Wij :

ntfij * nidfj

Simpan isi tentang

ke tabel Kamus_Hukum Memasukan dok pasal (.txt)

Simpan id_pasal, tentang, dok_pasal, status

ke tabel Pasal

Memanggil dok pasal

Berstatus 0

Operasi teks

tokenization

Operasi teks

stopwords

Operasi teks

stemming

Perhitungan df_j, nidf_j

Simpan id_term, term, df_j, nidf_j

ke tabel Term_Pasal

Perhitungan tf_ij, w_ij, ntf_ij

Simpan

ke tabel Indeks_Pasal

Term_Pasal

Indeks_Pasal

rootwords

stopwords

rootwords

stopwords

indeks

Dokumen pasal

Gambar 3.1 Sub Sistem Pencarian Query to Document

Pada sub sistem pencarian query ke dokumen ini, pengguna memasukan

query (contoh: kekerasan pada anak), kemudian sistem akan melakukan tahap

operasi teks atau text operations yaitu tokenization, stopwords, dan stemming.

Pada tahap ini, terlebih dahulu sistem akan melakukan proses tokenization,

dimana sistem akan melakukan pemisahan pada query menjadi kata/istilah.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

22

Kemudian, sistem akan melakukan eliminasi stopwords untuk

menyaring/membuang kata yang sering muncul pada kumpulan dokumen.

Selanjutnya, sistem melakukan proses stemming untuk mencari kata dasar (root

word) dari suatu istilah dengan menggunakan algoritma Nazief dan Adriani pada

teks Bahasa Indonesia (Augusta, 2009).

Tahap selanjutnya adalah operasi query dengan menggunakan operator

AND. Sistem akan mencari kata kunci di struktur data inverted index pasal yang

telah dibangun. Setelah itu, hasil dari pencarian tersebut akan dibobotkan

berdasarkan tingkat kesesuaian query terhadap pasal yang tersimpan di tabel

Indeks_Pasal untuk mendapatkan hasil yang paling relevan dengan menggunakan

pembobotan TF-IDF menurut Savoy.

Kemudian, untuk proses penambahan data pasal ke koleksi dokumen, pihak

administrator memasukan pasal baru ke dalam sistem beserta informasi yang

diperlukannya (tahun, nomor, pasal dan tentang). Selanjutnya sistem akan

menyimpan informasi tersebut beserta dokumen pasal berekstensi .txt di tabel

pasal. Dokumen yang telah tersimpan di tabel pasal akan dipanggil lagi untuk

disaring menggunakan operasi teks (tokenization, stopwords, dan stemming).

Term yang dihasilkan dari proses operasi teks tersebut akan disimpan ke tabel

Term_Pasal. Kemudian sistem akan melakukan pembobotan dengan cara

menghitung dan menyimpan tf_ij, ntf_ij, dan w_ij ke tabel indeks_pasal serta df_j

dan nidf_j ke tabel Term_Pasal.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

23

Selanjutnya, pada gambar 3.2. berikut ini ini merupakan gambaran dari sub

sistem pencarian document to document :

Pengguna Administrator

Basis Data Hukum

Memasukan kata kunci

berupa dokumen kasus

Operasi teks

Pengambilan kata

Sesuai dengan isi tentang

Yang berada dit abel Kamus_Hukum

Operasi OR

Penjumlahan Wij :

ntfij * nidfj

Membangun

Inverted index

Memasukan

dok kasus (.txt)

Simpan id_kasus, judul, dok_kasus, status

ke tabel Kasus

Memanggil dok kasus

Berstatus 0

Perhitungan df_j, nidf_j

Perhitungan ntf_ij, w_ij

Simpan id_term, term, df_j, nidf_j

ke tabel Term_Kasus

Simpan tf_ij, ntf_ij, w_ij, id_term, id_kasus

ke tabel Indeks_Kasus

Operasi teks

Pengambilan kata

Sesuai dengan isi tentang

Yang berada di tabel Kamus_Hukum

Term_Kasus

Indeks_Kasus

Kamus_Hukum

Kamus_Hukum

Dokumen kasus dan pasal

Gambar 3.2 Sub Sistem Pencarian Document to Document

Pada sub sistem pencarian dokumen ke dokumen ini, pengguna memasukan

dokumen kasus ke dalam sistem. Kemudian sistem akan melakukan tahap operasi

teks atau text operations yaitu dengan melakukan proses penyaringan istilah

menggunakan tabel Kamus_Hukum yang berisi istilah-istilah dari tentang pada

setiap undang-undang. Pada tahap ini, sistem melakukan operasi teks yang

berbeda dari sub sistem pertama (query to document), yaitu dengan melakukan

pengambilan term yang sesuai dengan kamus_hukum. Hal ini bertujuan dengan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

24

pencocokan kamus hukum yang diambil dari isi tentang pada setiap undang-

undang untuk mempercepat proses pencarian tanpa harus membandingkan dengan

keseluruhan istilah yang ada di dokumen kasus.

Tahap selanjutnya adalah operasi query dengan menggunakan operator OR.

Sistem akan membandingkan dokumen kasus yang ada di struktur data inverted

index kasus yang telah dibangun. Setelah itu, hasil dari pencarian tersebut akan

dibobotkan berdasarkan tingkat kesesuaian dari tabel Indeks_Kasus untuk

mendapatkan hasil yang paling relevan dengan menggunakan pembobotan TF-

IDF menurut Savoy.

Kemudian, untuk proses penambahan data kasus ke koleksi dokumen, pihak

administrator memasukan dokumen-dokumen kasus baru ke dalam sistem beserta

informasi yang diperlukannya, yaitu judul dan pasal yang bersangkutan.

Selanjutnya sistem akan menyimpan informasi beserta dokumen kasus yang

berekstensi .txt tersebut ke tabel Kasus. Dokumen yang telah tersimpan di tabel

Kasus akan disaring oleh sistem menggunakan operasi teks berdasarkan term di

Kamus_Hukum. Istilah dari hasil penyaringan tersebut akan disimpan ke tabel

Term_Kasus. Kemudian sistem akan menghitung dan menyimpan tf_ij, ntf_ij,

dan w_ij ke tabel indeks_kasus serta df_j dan nidf_j ke tabel Term_Kasus.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

25

3.1.1. Perancangan Struktur Data Inverted Index

Pada gambar 3.3 berikut ini merupakan model dari struktur data inverted

index yang dibangun :

t

t

t

doc doc doc

doc doc

doc

id dok.

Dictionary /

termListPosting list

Linked list

HashMap

doc doc doc

iterator

List Iterator

Document

Term

Term

Term

Document

Document Document

Document Document

Document Document Document

Gambar 3.3 Model Struktur Data Inverted Index

Pada gambar 3.3 tersebut terdapat 2 komponen utama, yaitu dictionary yang

disimpan pada termList untuk menampung term dan postingList menampung

informasi term yaitu id dokumen. TermList dan postingList tersebut merupakan

objek yang bertipe LinkedListOrderedUnique<Term>. Hash Map digunakan

untuk memetakan term. LinkedList digunakan untuk menghubungkan antar id

dokumen. Sedangkan untuk menghubungkan masing-masing term dan postingList

dengan menggunakan iterator yang disimpan pada iteratorList (kelas bawaan

Java).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

26

3.1.2. Contoh Data yang Digunakan

Pada gambar 3.4 berikut ini merupakan contoh dokumen undang-undang

yang digunakan sebagai data dari Sistem Pemerolehan Informasi Undang-Undang

dan Kasus :

Gambar 3.4 Contoh Dokumen Undang-Undang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

27

Pada gambar 3.4 tersebut, isi dari tentang yaitu “Perlindungan Konsumen”

disimpan per kata ke dalam tabel Kamus_Hukum yang digunakan untuk proses

pencarian sub sistem document to document. Kemudian isi dari pasal yaitu

“Dalam Undang-Undang ini yang dimaksud dengan : 1. Perlindungan…..”

disimpan per pasal ke dalam table Pasal sebagai koleksi dokumen pasal yang

digunakan untuk proses pencarian sub sistem query to document. Jumlah

dokumen pasal yang digunakan sebagai data di sub sistem query to document

yaitu 1942 dokumen (.txt) yang disimpan di tabel Pasal, terdiri dari 2713 terms

yang disimpan di tabel Term_Pasal. Sedangkan contoh dokumen kasus disajikan

pada gambar 3.5 berikut ini :

Gambar 3.5 Contoh Dokumen Kasus

Pada gambar 3.5 tersebut, informasi kasus yang disimpan pada basis data

yaitu judul kasus (di paling atas), pasal-pasal yang terkait (Pasal 45, Pasal 28 UU

No. 11 Tahun 2008), dan file dokumen berekstensi .txt itu sendiri. Jumlah

dokumen-dokumen kasus yang digunakan sebagai data pada sub sistem document

to document yaitu 100 dokumen (.txt) yang tersimpan pada tabel Kasus, terdiri

dari 54 terms yang tersimpan pada tabel Term_Kasus. Dokumen-dokumen

tersebut berasal dari artikel-artikel kasus di www.hukumonline.com.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

28

3.2. Analisa Kebutuhan

Kebutuhan yang dibutuhkan oleh pengguna Sistem Pemerolehan Informasi

Undang-Undang dan Kasus ini adalah sebagai berikut :

Tabel 3.1 Analisa Kebutuhan

Pengguna

Sistem

Kebutuhan

Administrator 1. Dapat melakukan login sebagai administrator.

2. Dapat melakukan penambahan data dokumen pasal dan

kasus.

Pengguna 1. Dapat melakukan pencarian pasal berdasarkan query

2. Dapat melakukan pencarian kasus dan pasal berdasarkan

dokumen kasus pelanggaran hukum.

3. Dapat melihat isi dari pasal-pasal.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

29

3.4. Perancangan Sistem

3.4.1. Diagram Use Case

Diagram use case berfungsi untuk memperjelas kebutuhan-kebutuhan dari

pengguna sistem (administrator dan pengguna). Administrator dapat

menambahkan dokumen baru ke basis data. Sedangkan pengguna dapat

melakukan pencarian pasal dan kasus serta melihat isi dari masing-masing pasal

pada undang-undang tahun 1945-2014. Pada gambar 3.6 berikut ini merupakan

diagram use case :

Administrator

Pengguna

Menambah dokumen

pasal

Mencari pasal (query to document)

Login

Logout

Otorisasi Tambah Dokumen

Pencarian

<<depends on>>

Menambah dokumen

kasus

<<depends on>>

Mencari kasus dan pasal

(document to document)

Lihat Pasal

Melihat isi pasal

Gambar 3.6 Diagram Use Case

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

30

3.4.2. Narasi Use Case

3.4.2.1. Login

Pada tabel 3.2 berikut ini merupakan langkah-langkah saat administrator

melakukan login :

Tabel 3.2 Narasi Use Case Login

Nama Use Case Login Tipe Use Case

Nomor Use Case XXX001

Prioritas Tinggi Persyaratan Bisnis

Sumber -

Aktor Utama Administrator

Keterlibatan Aktor Lain -

Deskripsi Administrator harus melakukan login terlebih dahulu

untuk dapat menambah dokumen.

Kondisi Awal Form Utama

Kondisi Akhir Masuk ke Form Tambah Dokumen.

Typical Course of Events Tindakan Aktor Tanggapan Sistem

Langkah 1 :

Klik menu Administrator

pada pojok kiri bawah

Langkah 2 :

Menampilkan Form Login

Langkah 3 :

Memasukan username

dan password

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

31

Langkah 4:

Klik tombol Masuk

Langkah 5 :

Mengecek username dan

password di tabel User.

Langkah 6 :

Menampilkan Form Tambah

Dokumen.

Cara Alternatif :

Alternatif Langkah 6 :

Jika username salah

dan/atau password salah

akan muncul pesan

peringatan dan kembali ke

Langkah 3.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

32

3.4.2.2. Menambah Dokumen Pasal

Pada tabel 3.3 berikut ini merupakan langkah-langkah saat administrator

menambah dokumen pasal :

Tabel 3.3 Narasi Use Case Menambah Dokumen Pasal

Nama Use Case Menambah Dokumen Pasal Tipe Use Case

Nomor Use Case XXX002

Prioritas Tinggi Persyaratan Bisnis

Sumber -

Aktor Utama Administrator

Keterlibatan Aktor Lain -

Deskripsi Administrator dapat menambah dokumen Pasal ke tabel

Pasal.

Kondisi Awal Form Tambah Dokumen.

Kondisi Akhir Dokumen Pasal baru dapat dimasukan ke tabel Pasal.

Typical Course of Events Tindakan Aktor Tanggapan Sistem

Langkah 1 :

Memilih tab Undang-

Undang

Langkah 2 :

Memilih tahun, nomor,

dan pasal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

33

Langkah 3 :

Masukan tentang.

Langkah 4 :

Browse dokumen di folder

komputer untuk disimpan

ke tabel Pasal.

Langkah 5 :

Klik tombol Simpan

Langkah 6 :

Insert data ke tabel

Hukum_pasal jika UU

tersebut belum terdaftar.

Langkah 7 :

Insert data ke

Kamus_Hukum jika isi

tentang dari UU tersebut

belum terdaftar.

Langkah 8 :

Insert data ke tabel Pasal

Cara Alternatif :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

34

3.4.2.3. Menambah Dokumen Kasus

Pada tabel 3.4 berikut ini merupakan langkah-langkah saat administrator

menambah dokumen kasus :

Tabel 3.4 Narasi Use Case Menambah Dokumen Kasus

Nama Use Case Menambah Dokumen Kasus Tipe Use Case

Nomor Use Case XXX003

Prioritas Tinggi Persyaratan Bisnis

Sumber -

Aktor Utama Administrator

Keterlibatan Aktor Lain -

Deskripsi Administrator dapat menambah dokumen kasus ke tabel

Kasus.

Kondisi Awal Form Tambah Dokumen.

Kondisi Akhir Dokumen kasus baru dapat dimasukan ke tabel Kasus.

Typical Course of Events Tindakan Aktor Tanggapan Sistem

Langkah 1 :

Memilih tab Kasus.

Langkah 2 :

Memasukkan judul,

dokumen kasus, dan pasal-

pasal yang bersangkutan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

35

Langkah 3 :

Klik tombol Simpan.

Langkah 4 :

Menambahkan dokumen

kasus baru ke tabel Kasus.

Langkah 5 :

Menyimpan id_kasus dan

id_pasal ke tabel

Kasus_Pasal.

Cara Alternatif :

Alternatif Langkah 4 :

Jika informasi kasus yang

dimasukan tidak lengkap,

maka akan kembali ke

Langkah 2.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

36

3.4.2.4. Mencari Pasal (Query to Document)

Pada tabel 3.5 berikut ini merupakan langkah-langkah saat pengguna

mencari dokumen pasal berdasarkan query :

Tabel 3.5 Narasi Use Case Mencari Pasal (Query to Document)

Nama Use Case Mencari Pasal (Query to

Document)

Tipe Use Case

Nomor Use Case XXX004

Prioritas Tinggi Persyaratan Bisnis

Sumber -

Aktor Utama Pengguna

Keterlibatan Aktor Lain -

Deskripsi Pengguna dapat mencari pasal berdasarkan dengan query.

Kondisi Awal Form Utama

Kondisi Akhir Pasal-pasal relevan dapat ditemukan kembali oleh sistem.

Typical Course of Events Tindakan Aktor Tanggapan Sistem

Langkah 1 :

Klik menu Pencarian di Form

Utama.

Langkah 2 :

Menampilkan Form

Pencarian.

Langkah 3 :

Pilih tab Undang-Undang

Langkah 4 :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

37

Ketik kata kunci yang

dibutuhkan.

Langkah 5 :

Klik tombol Cari

Langkah 6 :

Operasi teks terhadap

kata kunci

Langkah 7 :

Operasi AND

Langkah 8 :

Pembobotan TF-IDF

Langkah 9 :

Menampilkan dokumen

pasal diurutkan dari

bobot tertinggi

Cara Alternatif :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

38

3.4.2.5. Mencari Kasus dan Pasal (Document to Document)

Pada tabel 3.6 berikut ini merupakan langkah-langkah saat pengguna

mencari pasal berdasarkan dokumen kasus :

Tabel 3.6 Narasi Use Case Mencari Kasus dan Pasal (Document to Document)

Nama Use Case Mencari Kasus dan Pasal

(Document to Document)

Tipe Use Case

Nomor Use Case XXX005

Prioritas Tinggi Persyaratan Bisnis

Sumber -

Aktor Utama Pengguna

Keterlibatan Aktor Lain -

Deskripsi Pengguna dapat mencari pasal yang terkait dengan kasus

pelanggaran hukum berdasarkan kasus.

Kondisi Awal Form Utama

Kondisi Akhir Pasal – pasal yang bersangkutan dapat ditemukan.

Typical Course of Events Tindakan Aktor Tanggapan Sistem

Langkah 1 :

Klik menu Pencarian di

Form Utama

Langkah 2 :

Sistem menampilkan Form

Pencarian.

Langkah 3 :

Pilih tab Kasus

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

39

Langkah 4 :

Memilih dokumen yang

akan dibandingkan

Langkah 5 :

Klik tombol Cari

Langkah 6 :

Operasi teks pengambilan

term sesuai dengan

Kamus_hukum.

Langkah 7 :

Operasi OR

Langkah 8 :

Pembobotan W_ij

Langkah 9 :

Menampilkan dokumen kasus

dan pasal diurutkan dari

bobot tertinggi.

Cara Alternatif :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

40

3.4.2.6. Melihat Isi Pasal

Pada tabel 3.7 berikut ini merupakan langkah-langkah saat pengguna

melihat isi pasal :

Tabel 3.7 Narasi Use Case Melihat Isi Pasal

Nama Use Case Melihat Isi Pasal Tipe Use Case

Nomor Use Case XXX006

Prioritas Sedang Persyaratan Bisnis

Sumber -

Aktor Utama Pengguna

Keterlibatan Aktor Lain -

Deskripsi Pengguna dapat melihat isi dari setiap pasal pada setiap

Undang-Undang.

Kondisi Awal Form Utama.

Kondisi Akhir Sistem dapat menampilkan isi dari pasal yang diperlukan

oleh pengguna.

Typical Course of Events Tindakan Aktor Tanggapan Sistem

Langkah 1 :

Klik menu Undang-

Undang di Form Utama

Langkah 2 :

Sistem menampilkan Form

Undang-Undang

Langkah 4 :

Pilih tahun, nomor dan

pasal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

41

Langkah 5 :

Klik tombol Lihat

Langkah 6 :

Sistem menampilkan list

pasal yang sesuai dengan

tahun, nomor maupun pasal

masukan dari pengguna.

Langkah 7 :

Klik pada row tabel yang

menampilkan pasal.

Langkah 8 :

Sistem menampilkan isi

dari pasal yang dituju.

Cara Alternatif :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

42

3.5. Perancangang Diagram Aktivitas

3.5.1. Diagram Aktivitas Login

Administrator dapat melakukan login berdasarkan username dan password

yang sudah ditentukan, tetapi jika username dan passoword salah maka akan

kembali ke halaman login.

Memasukkan

username dan password.

Klik tombol LoginMengecek username dan password

di tabel User.

Menampilkan

Form Tambah Dokumen.pesan peringatan

Administrator Sistem

benar salah

Gambar 3.7 Diagram Aktivitas Login

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

43

3.5.2. Diagram Aktivitas Menambah Dokumen Pasal

Administrator dapat menambahkan dokumen pasal (.txt) ke dalam tabel

Pasal dengan memasukan tahun, nomor, pasal, tentang, dan file pasal (.txt).

Memilih tab

Undang-Undang

Memilih tahun, nomor, pasal,

dan tentang

Cari dokumen di folder

untuk disimpan ke basis data

Klik tombol SimpanMenambahkan pasal yang baru

ke koleksi dokumen Undang-Undang

Administrator Sistem

Gambar 3.8 Diagram Aktivitas Menambah Dokumen Pasal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

44

3.5.3. Diagram Aktivitas Menambah Dokumen Kasus

Administrator dapat menambahkan dokumen kasus (.txt) ke dalam tabel

Kasus dengan memasukan judul, dokumen kasus (.txt), dan pasal-pasal yang

terkait pada Form Tambah Dokumen di kategori Kasus.

Memilih kategori

Kasus

Klik tombol SimpanMenambahkan kasus yang baru

ke koleksi dokumen Kasus

Administrator Sistem

input data

Masukan judul, dokumen,

dan pasal-pasal yang terkait

Gambar 3.9 Diagram Aktivitas Menambah Dokumen Kasus

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

45

3.5.4. Diagram Aktivitas Mencari Pasal (Query to Document)

Pengguna dapat melakukan pencarian pasal berdasarkan query atau kata

kunci yang diketikan langsung oleh pengguna. Kemudian sistem akan

mencocokan kata kunci dengan kata-kata yang telah diindekskan.

Klik menu Pencarian Menampilkan Form Pencarian.

Pilih tab Undang-Undang

Masukan kata kunci yang diperlukan.

Klik tombol CariMencari pasal-pasal yang berhubungan dengan

kata kunci yang dimasukkan oleh pengguna.

Pengguna Sistem

Gambar 3.10 Diagram Aktivitas Mencari Pasal (Query to Document)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

46

3.5.5. Diagram Aktivitas Mencari Kasus dan Pasal (Document to Document)

Pengguna dapat melakukan pencarian pasal berdasarkan dokumen kasus

sebagai kata kunci. Sistem akan menampilkan dokumen kasus yang relevan

dengan kata kunci serta pasal-pasal yang bersangkutan dengan kasus tersebut.

Klik menu Pencarian Menampilkan Form Pencarian

Pilih tab Kasus

Masukan dokumen kasus

Klik tombol CariMencari kasus-kasus yang berhubungan dengan

Dokumen kasus yang dimasukkan oleh pengguna.

Pengguna Sistem

Gambar 3.11 Diagram Aktivitas Mencari Kasus dan Pasal (Document to

Document)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

47

3.5.6. Diagram Aktivitas Melihat Isi Pasal

Pengguna dapat melihat isi pasal dengan memilih tahun, nomor, dan pasal

pada Form Undang-Undang.

Klik menu Undang-Undang Sistem menampilkan Form Undang-Undang

Sistem menampilkan isi pasal

yang terdapat dalam Undang-UndangKlik tombol Lihat

Pilih tahun, nomor, dan pasal

Pengguna Sistem

Gambar 3.12 Diagram Aktivitas Melihat Isi Pasal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

48

3.6. Perancangan Diagram Kolaborasi

3.6.1. Diagram Kolaborasi Login

Pada use case ini melibatkan 5 kelas yaitu FormUtama.java,

FormTambahDokumen.java dan FormLogin.java sebagai kelas view,

LoginControl.java sebagai kelas controller, dan User.java sebagai kelas model.

Pada gambar 3.13 berikut ini merupakan diagram kolaborasi dari use case Login :

FormUtama.java FormLogin.java LoginControl.java User.javaAdministrator

FormTambah

Dokumen.java

Gambar 3.13 Diagram Kolaborasi Login

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

49

3.6.2. Diagram Kolaborasi Menambah Dokumen Pasal

Pada use case ini melibatkan 7 kelas yaitu FormTambahDokumen.java

sebagai kelas view, Control.java, StopwordsControl.java sebagai kelas controller,

dan KamusHukum.java, Pasal.java, Hukum_Pasal.java, Stopwords.java sebagai

kelas model. Pada gambar 3.14 berikut ini merupakan diagram kolaborasi dari use

case Menambah Dokumen Pasal :

Administrator

FormTambah

Dokumen.javaControl.java

Pasal.java

Kamus_Hukum.java

Hukum_Pasal.java

Stopwords

Control.javaStopwords.java

Gambar 3.14 Diagram Kolaborasi Menambah Dokumen Pasal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

50

3.6.3. Diagram Kolaborasi Menambah Dokumen Kasus

Pada use case ini melibatkan 4 kelas yaitu FormTambahDokumen.java

sebagai kelas view, Control.java sebagai kelas controller, dan Kasus.java,

Kasus_Pasal.java sebagai kelas model. Pada gambar 3.15 berikut ini merupakan

diagram kolaborasi dari use case Menambah Dokumen Kasus :

Administrator

FormTambah

Dokumen.javaControl.java

Kasus_Pasal.java

Kasus.java

Gambar 3.15 Diagram Kolaborasi Menambah Dokumen Kasus

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

51

3.6.4. Diagram Kolaborasi Mencari Pasal (Query to Document)

Pada use case ini melibatkan 11 kelas yaitu FormUtama.java,

FormPencarian.java sebagai kelas view, OperatorAND_OR.java,

InvertedIndex.java, Control.java, StemmingBobbyNazief.java,

StopwordsControl.java sebagai kelas controller, dan Term_Pasal.java,

Indeks_Pasal.java, Stopwords.java, Pasal.java sebagai kelas model. Pada gambar

3.16 berikut ini merupakan diagram kolaborasi dari use case Mencari Pasal

(Query to Document) :

PenggunaFormUtama.java

Stopwords.java

FormPencarian.java

InvertedIndex.java

Operator

AND_OR.java

Term_Pasal.java

Pasal.java

Indeks_Pasal.java

Stemming

BobbyNazief.javaControl.java

Stopwords

Control.java

Gambar 3.16 Diagram Kolaborasi Mencari Pasal (Query to Document)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

52

3.6.5. Diagram Kolaborasi Mencari Kasus dan Pasal (Document to

Document)

Pada use case ini melibatkan 10 kelas yaitu FormUtama.java,

FormPencarian.java sebagai kelas view, OperatorAND_OR.java,

InvertedIndex.java, Control.java, StemmingBobbyNazief.java,

StopwordsControl.java sebagai kelas controller, dan Term_Kasus.java,

Indeks_Kasus.java, Kamus_Hukum.java, Kasus.java sebagai kelas model. Pada

gambar 3.17 berikut ini merupakan diagram kolaborasi dari use case Mencari

Kasus dan Pasal (Document to Document) :

PenggunaFormUtama.java

Kasus.java

FormPencarian.java

InvertedIndex.java

Operator

AND_OR.java

Term_Kasus.java

Kamus_Hukum.java

Indeks_Kasus.java

Control.java

Stopwords

Control.java

Gambar 3.17 Diagram Kolaborasi Mencari Kasus dan Pasal (Document to

Document

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

53

3.6.6. Diagram Kolaborasi Melihat Isi Pasal

Pada use case ini melibatkan 4 kelas yaitu FormUtama.java,

FormLihatUU.java sebagai kelas view, Control.java sebagai kelas controller, dan

Pasal.java sebagai kelas model. Pada gambar 3.18 berikut ini merupakan diagram

kolaborasi dari use case Melihat Isi Pasal :

FormLihatUU.java Pasal.javaFormUtama.java Control.javaPengguna

Gambar 3.18 Diagram Kolaborasi Melihat Isi Pasal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

54

3.7. Perancangan Diagram Sekuensial

3.7.1. Diagram Sekuensial Login

Sistem melakukan proses validasi dengan cara mencocolan username dan password ke table User, jika sesuai maka sistem

akan menampilkan FormTambahDokumen. Pada gambar 3.19 berikut ini merupakan diagram sekuensial Login :

Administrator

<<interface>>

FormUtama.java

<<interface>>

FormLogin.java<<controller>>

LoginControl.java

<<model>>

User.java

Klik menu

Administrator

Memasukan username dan password

Klik tombol MasukCekLogin(String username)

setUsername(String)

String password

<<interface>>

FormTambahDokumen.java

setVisible(true)

Gambar 3.19 Diagram Sekuensial Login

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

55

3.7.2. Diagram Sekuensial Menambah Dokumen Pasal

Administrator memilih tab Undang-Undang pada FormTambahDokumen kemudian memasukan dokumen pasal. Proses

tersebut disajikan pada gambar 3.20 berikut ini :

Administrator

<<interface>>

FormTambahDokumen.java

<<controller>>

Control.java

<<model>>

Kamus_Hukum.java

<<model>>

Hukum_Pasal.java

<<model>>

Pasal.java

Pilih

tab Undang-Undang

Pilih tahun, nomor,

pasal

Masukan tentang

Browse dokumen

Di folder komputer

<<controller>>

StopwordsControl

<<model>>

Stopwords

Gambar 3.20 Diagram Sekuensial Menambah Dokumen Pasal Bagian 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

56

Setelah administrator mengklik tombol Simpan, system melakukan pengecekan term dari isi tentang ke table Hukum_Pasal,

yang disajikan pada gambar 3.21 berikut ini :

<<model>>

Stopwords<<controller>>

Control.java

<<interface>>

FormTambahDokumen.java

Administrator

Klik tombol Simpan

Panggil

cariIdNoPsl_HP

(String id_no_psl)

String id_no_psl

<<model>>

Kamus_Hukum.java

<<model>>

Hukum_Pasal.java

<<model>>

Pasal.java

<<controller>>

StopwordsControl

cariStopwords(String kata)

String kata

setStopwords(String kata)

cariIdHkm_KH

(String kata)setTermHukum(String kata)

setId_no_psl(String)

String id_no_psl

Gambar 3.21 Diagram Sekuensial Menambah Dokumen Pasal Bagian 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

57

Pada gambar 3.22 berikut ini merupakan proses penyimpanan id_kasus dan id_pasal yang bersangkutan ke table Hukum_Pasal :

<<controller>>

StopwordsControl.java

<<model>>

Kamus_Hukum.java<<model>>

Stopwords.java

<<controller>>

Control.java

<<interface>>

FormTambahDokumen

Administrator

<<model>>

Hukum_Pasal.java

<<model>>

Pasal.java

HitungMaxIdHkm

(String initial_id)

Int nilai id max

InsertKamusHkm

(String id_hkm, String kata)

InsertHP

(id_no_psl, id_hkm)

setInitial(String)

setId_hkm(String), setTerm_hkm(String)

setId_no_psl(String), setId_hkm(String)

String id_hukum

Gambar 3.22 Diagram Sekuensial Menambah Dokumen Pasal Bagian 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

58

Pada gambar 3.23 berikut ini merupakan proses sistem melakukan penambahan dokumen pasal ke table Pasal :

<<model>>

Pasal.java

<<model>>

Hukum_Pasal.java

<<model>>

Kamus_Hukum.java

<<interface>>

FormTambahDokumen.java

<<controller>>

Control.java<<controller>>

StopwordsControl.java

InsertPasal

(Pasal p)

setId_pasal(String), setTentang(String), setDok_psl(InputStream), setStatus(String)

Administrator

<<model>>

Stopwords.java

Cek2_HP

(id_no_psl, id_hkm)setId_no_psl(String), setId_hkm(String)

String Id_no_psl, String id_hkm

InsertHP

(id_no_psl, id_hkm)setId_no_psl(String), setId_hkm(String)

Gambar 3.23 Diagram Sekuensial Menambah Dokumen Pasal Bagian 4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

59

3.7.3. Diagram Sekuensial Menambah Dokumen Kasus

Sistem melakukan proses penambahan dokumen kasus ke tabel Kasus dan menyimpan id_kasus dan id_pasal ke tabel

Kasus_Pasal. Pada gambar 3.24 berikut ini merupakan diagram sekuensial Menambah Dokumen Kasus :

Administrator

<<interface>>

FormTambahDokumen.java

<<controller>>

Control.java

<<model>>

Kasus.java

<<model>>

Kasus_Pasal.java

Pilih tab Kasus

Input

Dok kasus, judul,

Pasal-pasal

Klik

Tombol SimpanInsertKasus(Kasus k)

InsertKP(Kasus_Pasal kp)

Gambar 3.24 Diagram Sekuensial Menambah Dokumen Kasus

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

60

3.7.4. Diagram Sekuensial Mencari Pasal (Query to Document)

Pengguna memasukan query untuk memperoleh dokumen pasal yang bersangkutan dengan query. Pada tahap awal, sistem

melakukan pembuangan stopwords yang disajikan pada gambar 3.25 berikut ini :

<<controller>>

StopwordsControl.java

Pengguna

<<interface>>

FormUtama.java<<interface>>

FormPencarian.java

<<controller>>

Control.java

<<controller>>

OperatorAND_OR.java

<<model>>

Pasal,java

<<model>>

Term_Pasal.java

<<controller>>

InvertedIndex.java

<<controller>>

StemmingBobbyNazief.java

<<model>>

Indeks_Pasal

<<model>>

Stopwords.java

Pilih

Menu Pencarian

Pilih tab

Undang-Undang

input

query

Klik

Tombol CariSaringStopword2

(String input)getKata()

String kata

Gambar 3.25 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

61

Pada gambar 3.26 berikut ini merupakan proses operasi AND dan perhitungan DF_j dari kata yang telah didapat :

Pengguna

<<interface>>

FormUtama.java

<<interface>>

FormPencarian.java

<<controller>>

StopwordsControl.java

<<controller>>

Control.java

<<controller>>

OperatorAND_OR.java

<<controller>>

InvertedIndex.java<<controller>>

StemmingBobbyNazief.java

<<model>>

Stopwords.java<<model>>

Pasal.java

<<model>>

Term_Pasal.java

<<model>>

Indeks_Pasal.java

setKata(String kata)

String kata

getKata()

String input

TF_IDF_AND(Control, invertedIndex, String)

TotalDFJ

(String kata)

Term_Pasal

setTermPsl(String kata)

Term_Pasal

setTermPsl(String kata)

Term_Pasal

CariIdTerm(String)

Term_Pasal

Gambar 3.26 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

62

Pada gambar 3.27 berikut ini merupakan proses pengambilan informasi pasal yang sesuai ke tabel Pasal :

Pengguna

<<interface>>

FormUtama.java

<<interface>>

FormPencarian.java

<<controller>>

StopwordsControl.java

<<controller>>

Control.java

<<controller>>

OperatorAND_OR.java

<<controller>>

InvertedIndex.java

<<controller>>

StemmingBobbyNazief.java

<<model>>

Stopwords.java

<<model>>

Pasal.java

<<model>>

Term_Pasal.java

<<model>>

Indeks_Pasal.java

Indeks_Pasal AND(listTerm, listDF,

list_wij, listDok)

List<String>List<String>

AmbilPasal(String)

Pasal

setId_psl(String id_pasal)

setId_term(String), setTerm_psl(String)

Indeks_Pasal

cariW_ij2

(id_term, term)

Gambar 3.27 Diagram Sekuensial Mencari Pasal (Query to Document) Bagian 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

63

3.7.5. Diagram Sekuensial Mencari Kasus dan Pasal (Document to Document)

Pada gambar 3.28 berikut ini merupakan proses pengambilan term yang sesuai dengan tabel Kamus_Hukum kemudian sistem

melakukan operasi OR pada masing-masing term yang didapat :

Pengguna

<<interface>>

FormUtama.java

<<interface>>

FormPencarian.java

<<controller>>

Control.java

<<controller>>

OperatorAND_OR.java

<<controller>>

InvertedIndex.java<<model>>

Term_Kasus.java

<<model>>

Indeks_Kasus.java

<<model>>

Kamus_Hukum.java<<model>>

Kasus.java

Pilih

Menu Pencarian

Pilih tab Kasus

Pilih dokumen yang akan dibandingkan

Klik tombol Cari

<<controller>>

StopwordsControl.java

SaringStopwordBuffer2

(StringBuffer input)cariTermHkm_KH2

(String term_hukum)

String term_hukumString term

TF_IDF_OR(Control koneksi, InvertedIndexBasic ii, String cari)

setTermKasus(String)

Term_Kasus

printSearch2

(String cari)

String cari

String term_hukum

String term_hukum

CariIdTermKasus

(String term)

Term_Kasus

Gambar 3.28 Diagram Sekuensial Mencari Kasus dan Pasal (Document to Document) Bagian 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

64

Pada gambar 3.29 berikut ini merupakan proses pembobotan w_ij kemudian pengambilan informasi kasus yang dibutuhkan

serta pasal-pasal yang bersangkutan :

Pengguna

<<interface>>

FormUtama.java

<<interface>>

FormPencarian.java

<<controller>>

StopwordsControl.java

<<controller>>

Control.java

<<controller>>

OperatorAND_OR.java

<<controller>>

InvertedIndex.java

<<model>>

Term_Kasus.java

<<model>>

Indeks_Kasus.java

<<model>>

Kamus_Hukum.java

<<model>>

Kasus.java

setId_Term(String), setId_kasus(String)

Indeks_Kasus

cariW_ij_Kasus(ID_TERM, hsl)

List<String>List<String>

Klik row dari listKasusTabelListKasus_Pasal(String id_kasus)

<<model>>

Kasus_Pasal

setId_kasus(String id_kasus)

List<Kasus_Pasal>List<Kasus_Pasal>

AmbilPasal(String id_pasal)

<<model>>

Pasal.java

setId_Pasal(String id_pasal)

Pasal pPasal p

AmbilKasus(String id_kasus)setId_Kasus(String id_kasus)

Kasus kKasus k

cariW_ij_Kasus

(id_trm, id_ksus)

Indeks_Kasus

Gambar 3.29 Diagram Sekuensial Mencari Kasus dan Pasal (Document to Document) Bagian 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

65

3.7.6. Diagram Sekuensial Melihat Isi Pasal

Pada gambar 3.30 berikut ini merupakan proses pemanggilan isi dokumen pasal yang dibutuhkan pengguna :

Pengguna

<<interface>>

FormUtama.java

<<interface>>

FormLihatUU.java

<<controller>>

Control.java

<<model>>

Pasal.java

Klik menu

Undang-Undang

Pilih tahun, nomor,

Dan pasal

Klik

Tombol LihatListLihatPasal_thn

(String tahun)setId_pasal(String)

List<Pasal>List<Pasal>

Gambar 3.30 Diagram Sekuensial Melihat Isi Pasal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

66

3.8. Perancangan Basis Data

3.8.1. Desain Konseptual Basis Data

user stopwords

termkasus kasus

username password id_stopword stopword

indeks_kasus pasal termpasalindeks_pasal

id_term_kasus

df_j

term_kasus

nidfidf

id_pasal

dok_pasal

tentang

status

w_ij

ntf_ijtf_ij

w_ij

ntf_ijtf_ij

id_kasus

dok_kasus

judul

1..* 1..* 1..* 1..*

status

rootwords

id_rootword rootword

kasus_pasal

id_term_pasal term_pasal

df_j nidfidf

1..*1..*

Kamus_hukumHukum_pasal

Id_hukum Term_hukum

1..*

1..*

Gambar 3.31 Desain Konseptual Basis Data

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

67

3.8.2. Desain Logikal Basis Data

stopwords

PK id_stopword

stopword

rootwords

PK id_rootword

rootword

Pasal

PK id_pasal

tentang

dok_pasal

status

Indeks_p

tf_p

ntf_p

w_p

FK1 id_term_p

FK2 id_pasal

TermsPasal

PK id_term_p

term_p

df_p

idf_p

nidf_p

Kasus

PK id_kasus

judul

dok_kasus

status

1..*1..*

1..1

1..1

1..1

1..*1..*

1..1

user

PK username

password

TermsKasus

PK id_term_k

term_k

df_k

idf_k

nidf_k

Indeks_k

tf_k

ntf_k

w_k

FK1 id_kasus

FK2 id_term_k

KasusPasal

FK1 id_kasus

FK2 id_pasal

1..1

1..*1..*

1..1Kamus_hukum

PK id_hukum

term_hukum

Hukum_Pasal

id_no_psl

FK2 id_hukum

1..1

1..* 1..1

Gambar 3.32 Desain Logikal Basis Data

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

68

3.8.3. Desain Fisikal Basis Data

1. Tabel User

Tabel User digunakan untuk menyimpan username dan password

administrator agar dapat menambahkan dokumen ke basis data. Pada tabel

3.8 berikut ini merupakan desain fisikal Tabel User :

Tabel 3.8 Desain Tabel User

Nama Field Tipe Data Ukuran Keterangan

Username Varchar 100 primary key tabel user

Password Varchar 100 Kata sandi dari

pengguna

2. Tabel Rootwords

Tabel Rootwords ini menyimpan kata dasar yang digunakan untuk

proses stemming. Pada tabel 3.9 berikut ini merupakan desain fisikal dari

Tabel Rootwords :

Tabel 3.9 Desain Tabel Rootwords

Nama Field Tipe Data Ukuran Keterangan

Id_rootword Varchar 10 primary key tabel

rootwords

rootword Varchar 100 Kata dasar dari istilah

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

69

3. Tabel Stopwords

Tabel Stopwords digunakan untuk menyimpan kata umum Bahasa

Indonesia. Pada tabel 3.10 berikut ini merupakan desain fisikal dari Tabel

Stopwords :

Tabel 3.10 Desain Tabel Stopwords

Nama Field Tipe Data Ukuran Keterangan

Id_stopword varchar 10 Primary key tabel

stopwords

Stopword varchar 100 Stopword Bahasa

Indonesia

4. Tabel Pasal

Tabel Pasal ini menyimpan dokumen pasal .txt sebagai data dari sub

sistem query to document. Pada tabel 3.11 berikut ini merupakan desain

fisikal dari Tabel Pasal :

Tabel 3.11 Desain Tabel Pasal

Nama Field Tipe Data Ukuran Keterangan

Id_pasal varchar 15 Primary key tabel pasal

Tentang varchar 1000 Gambaran umum dari isi

pasal

Dok_pasal blob - Dokumen pasal

Status varchar 1 Status dari pengindeksan

pasal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

70

5. Tabel Termpasal

Tabel Termpasal ini menyimpan term atau istilah dari dokumen pasal.

Pada tabel 3.12 berikut ini merupakan desain fisikal dari Tabel Termpasal :

Tabel 3.12 Desain Tabel Termpasal

Nama Field Tipe Data Ukuran Keterangan

Id_term_pasal varchar 15 Primary key tabel

termpasal

Term_pasal varchar 100 Istilah dari pasal

DF_j double - Jumlah dokumen pasal

yang mengandung suatu

istilah tertentu

Nidf_j double - Normalisasi dari kebalikan

df_j

6. Tabel Indeks_pasal

Tabel Indeks_Pasal ini menyimpan pengindeksan dari term terhadap

id_pasal. Pada tabel 3.13 berikut ini merupakan desain fisikal dari Tabel

Pasal :

Tabel 3.13 Desain Tabel Indeks_Pasal

Nama Field Tipe Data Ukuran Keterangan

Tf_ij varchar 15 Jumlah istilah pada suatu

dokumen pasal

Ntf_ij varchar 100 Normalisasi dari tf_ij

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

71

W_ij double - Bobot dari istilah pada

suatu dokumen pasal

Id _pasal varchar 15 Foreign key dari tabel

Pasal

Id_term_pasal varchar 15 Foreign key dari tabel

TermPasal

7. Tabel Kasus

Tabel Kasus ini menyimpan dokumen kasus .txt sebagai data dari sub

sistem document to document. Pada tabel 3.14 berikut ini merupakan

desain fisikal dari Tabel Kasus :

Tabel 3.14 Desain Tabel Kasus

Nama Field Tipe Data Ukuran Keterangan

Id_kasus varchar 15 Primary key tabel Kasus

Judul varchar 3000 Judul dari kasus

Dok_kasus blob - Dokumen kasus

status varchar 1 Status dari pengindeksan

kasus

8. Tabel Termkasus

Tabel Termkasus ini menyimpan term atau istilah dari dokumen

kasus. Pada tabel 3.15 berikut ini merupakan desain fisikal dari Tabel

Termkasus :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

72

Tabel 3.15 Desain Tabel Termkasus

Nama Field Tipe Data Ukuran Keterangan

Id_term_kasus varchar 15 Primary key tabel

Termkasus

Term_kasus varchar 100 Istilah dari kasus

Df_j int 11 Jumlah dokumen kasus

yang mengandung suatu

istilah tertentu

Nidf_j double - Normalisasi dari

kebalikan df_j

9. Tabel Indeks_kasus

Tabel Indeks_kasus ini menyimpan pengindeksan dan bobot dari term

kasus. Pada tabel 3.16 berikut ini merupakan desain fisikal dari Tabel

Kasus :

Tabel 3.16 Desain Tabel Indeks_Kasus

Nama Field Tipe Data Ukuran Keterangan

Tf_ij double 15 Jumlah istilah pada suatu

dokumen kasus

Ntf_ij double 3000 Normalisasi dari tf_ij

W_ij double - Bobot dari istilah pada

suatu dokumen kasus

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

73

Id_term_kasus varchar 15 Foreign key dari tabel

Termkasus.

Id_kasus varchar 15 Foreign key dari tabel

Kasus

10. Tabel Kasus_pasal

Tabel Kasus_pasal ini menyimpan id_kasus dan id_pasal. Pada tabel

3.17 berikut ini merupakan desain fisikal dari Tabel Kasus_pasal :

Tabel 3.17 Desain Tabel Kasus_Pasal

Nama Field Tipe Data Ukuran Keterangan

Id_kasus varchar 15 Foreign key dari tabel

Kasus

Id_pasal varchar 15 Foreign key dari tabel

Pasal

11. Tabel Kamus_hukum

Tabel Kasus_hukum ini menyimpan isi tentang pada masing-masing

undang-undang. Pada tabel 3.18 berikut ini merupakan desain fisikal dari

Tabel Kamus_hukum :

Tabel 3.18 Desain Tabel Kamus_Hukum

Nama Field Tipe Data Ukuran Keterangan

Id_hukum varchar 6 Primary key dari tabel

Kamus_hukum

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

74

Term_hukum varchar 100 Istilah/term hukum yang

sering muncul pada setiap

dokumen pasal.

12. Tabel Hukum_pasal

Tabel Hukum_pasal ini menyimpan keterkaitan antara isi dari tabel

Kamus_Hukum dengan masing-masing pasal. Pada tabel 3.18 berikut ini

merupakan desain fisikal dari Tabel Hukum_pasal :

Tabel 3.19 Desain Tabel Hukum_Pasal

Nama Field Tipe Data Ukuran Keterangan

Id_no_psl varchar 10 Foreign key dari tabel

Pasal

Id_hukum varchar 6 Foreign key dari tabel

Kamus_hukum

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

75

3.8. Perancangan Antarmuka

3.8.1. Desain Form Utama

Pada gambar 3.24 di bawah ini merupakan desain dari Form Utama :

Gambar 3.24 Desain Form Utama

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

76

3.8.2. Desain Form Login

Pada gambar 3.25 di bawah ini merupakan desain dari Form Login :

Gambar 3.25 Desain Form Login

3.8.3. Desain Form Tambah Dokumen

Pada gambar 3.26 di bawah ini merupakan desain dari Form Undang-

Undang :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

77

Gambar 3.26 Desain Form Undang-Undang

3.8.4. Desain Form Pencarian

Pada gambar 3.27 di bawah ini merupakan desain dari Form Pencarian :

Gambar 3.27 Desain form Pencarian

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

78

3.8.5. Desain Form Lihat Isi Pasal

Pada gambar 3.28 di bawah ini merupakan desain dari Form Lihat Isi Pasal :

Gambar 3.28 Desain Form Lihat Isi Pasal

3.9. Perancangan Diagram Kelas

Perancangan diagram kelas bertujuan untuk mengetahui keterkaitan

antar kelas pada suatu aplikasi. Berikut ini merupakan diagram dari 8

package yaitu model, view, control, stemming, TF_IDF, inverted index,

conn, dan Thread.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

79

3.9.1. Package Model

+ getId_kasus() : String

+ setId_kasus(String)

+ getJudul() : String

+ setJudul(String)

+ getDok_ksus_stream() : InputStream

+ setDok_ksus_stream(InputStream)

+ getStatus() : Status

+ setStatus(String)

- id_kasus : String

- judul : String

- dok_ksus_stream : InputStream

- status : String

Kasus

+ getId_pasal() : String

+ setId_Pasal(String)

+ getTentang() : String

+ setTentang(String)

+ getStatus() : String

+ setStatus(String)

+ getDok_psl_stream() : InputStream

+ setDok_psl_stream(InputStream)

+ getNo() : String

+ setNo(String)

+ getTahun() : String

+ setTahun(String)

+ getPasal() : String

+ setPasal(String)

- id_pasal : String

- tentang : String

- dok_psl_stream : InputStream

- status : String

- no : String

- tahun : String

- pasal : String

Pasal

+ getDf_j() : Double

+ setDf_j(Double)

+ getNidf() : Double

+ setNidf(Double)

+ getId_term_pasal() : String

+ setId_term_pasal(String)

+ getTerm_pasal() : String

+ setTerm_pasal(String)

- df_j : Double

- nidf : Double

- id_term_pasal : String

- term_pasal : String

Term_Pasal

+ getId_term_kasus() : String

+ setId_term_kasus(String)

+ getTerm_kasus() : String

+ setTerm_kasus(String)

+ getDf_j() : int

+ setDf_j(int)

+ getNidf_j() : Double

+ setNidf_j(Double)

- id_term_kasus : String

- term_kasus : String

- df_j : int

- nidf_j : Double

Term_Kasus

+ getTf_ij() : Double

+ setTf_ij(Double)

+ getNtf_ij() : Double

+ setNtf_ij(Double)

+ getW_ij() : Double

+ setW_ij(Double)

+ getId_pasal() : String

+ setId_pasal(String)

+ getId_term_pasal() : String

+ setId_term_pasal(String)

+ getJumlah() : int

+ setJumlah(int)

- tf_ij : Double

- ntf_ij : Double

- w_ij : Double

- id_pasal : String

- id_term_pasal : String

- jumlah : int

Indeks_Pasal

+ getTf_ij() : Double

+ setTf_ij(Double)

+ getNtf_ij() : Double

+ setNtf_ij(Double)

+ getW_ij() : Double

+ setW_ij(Double)

+ getId_kasus() : String

+ setId_kasus(String)

+ getId_term_kasus() : String

+ setId_term_kasus(String)

- tf_ij : Double

- ntf_ij : Double

- w_ij : Double

- id_kasus : String

- id_term_kasus : String

Indeks_Kasus

+ getId_kasus() : String

+ setId_kasus(String)

+ getId_pasal() : String

+ setId_pasal(String)

- id_kasus : String

- id_pasal : String

Kasus_Pasal

+ getId_hukum() : String

+ setId_hukum(String)

+ getTerm_hukum() : String

+ setTerm_hukum(String)

- id_hukum : String

- term_hukum : String

Kamus_Hukum

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

80

3.9.2. Package View

<<constructor>>

FormLogin()

+ JFrame()

+ icon()

+ MasukButtonActionPerformed(java.awt.event.ActionEvent)

+ ResetButtonActionPerformed(java.awt.event.ActionEvent)

+ KembaliLoginButtonActionPerformed(java.awt.event.ActionEvent)

- KembaliLoginButton : JButton

- MasukButton : Jbutton

- ResetButton : Jbutton

- idFiled : JTextField

- jDesktopPane1 : JDesktopPane

- jLabel1 : jLabel

- jLabel2 : jLabel

- jLabel3 : jLabel

- jLabel4: jLabel

- jLabel5 : jLabel

- jLabel6 : jLabel

- jPanel1 : JPanel

- jPanel2 : JPanel

- jPanel3 : JPanel

- pwdField : JPasswordField

FormLogin

<<constructor>>

FormUtama()

+ icon()

+ JFrame()

+ Menu2ButtonActionPerformed(java.awt.event.ActionEvent)

+ AdminLabelMouseClicked(java.awt.event.MouseEvent)

+ Menu1ButtonActionPerformed(java.awt.event.ActionEvent)

- AdminLabel : JLabel

- Menu1Button : JButton

- Menu2Button : JButton

- jDesktopPane1 : JDesktopPane

- jLabel1 : jLabel

- jLabel2 : jLabel

- jLabel1 : jLabel

- jLabel2 : jLabel

- jLabel3 : jLabel

FormUtama

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

81

<<constructor>>

FormPencarian()

+ icon()

+ BangunInvertedIndexUU()

+ BangunInvertedIndexKasus()

+ CariButtonUUPencarianActionPerformed(java.awt.event.ActionEvent)

+ KembaliButtonPencarianActionPerformed(java.awt.event.ActionEvent)

+ TabelListPasalMouseClicked(java.awt.event.MouseEvent)

+ BrowseButtonPencarianActionPerformed(java.awt.event.ActionEvent)

+ CariButtonKasusPencarianActionPerformed(java.awt.event.ActionEvent)

+ listKasusTabelMouseClicked(java.awt.event.MouseEvent)

+ listKPTabelMouseClicked(java.awt.event.MouseEvent)

+ KataKunciFieldKeyReleased(java.awt.event.KeyEvent)

+ Jframe()

- BrowseButtonPencarian : JButton

- CariButtonKasusPencarian : JButton

- CariButtonUUPencarian : JButton

- KasusUUTab

- KataKunciField : JPasswordField

- KembaliButtonPencarian : JButton

- ScrollPaneTabelQuery

- TabelListPasal : JTable

- UraianUU : JTextArea

- jDesktopPane1 : JDesktopPane

- jLabel1 : JLabel

FormPencarian

<<constructor>>

FormLihatUU()

+ pasif1()

+ pasif2()

+ Jicon()

+ Jframe()

+ KembaliButtonActionPerformed(java.awt.event.ActionEvent)

+ TahunCheckBoxMouseClicked(java.awt.event.MouseEvent)

+ NomorCheckBoxMouseClicked(java.awt.event.MouseEvent)

+ PasalCheckBoxMouseClicked(java.awt.event.MouseEvent)

+ LihatButtonActionPerformed(java.awt.event.ActionEvent)

+ tabelListLihatUUMouseClicked(java.awt.event.MouseEvent)

- KembaliButton : JButton

- LihatButton : JButton

- NomorCheckBox : JCheckBox

- PasalCheckBox : JCheckBox

- TahunCheckBox : JCheckBox

- jDesktopPane1 : JDesktopPane

- jLabel1 : JLabel

- jScrollPane1 : JScrollPane

- jScrollPane2 : JScrollPane

- lihatUUTextArea : JTextArea

- no1UUchooser : JChooser

- no2UUchooser : JChooser

- psl1UUchooser : JChooser

FormihatUU

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

82

<<constructor>>

FormTambahDokumen()

+ JFrame()

+ Jicon()

+ BrowseButton_uuActionPerformed(java.awt.event.ActionEvent)

+ KeluarLabelMouseClicked(java.awt.event.MouseEvent)

+ SimpanUUButtonActionPerformed(java.awt.event.ActionEvent)

+ TambahButtonActionPerformed(java.awt.event.ActionEvent)

+ BrowseButtonKasusActionPerformed(java.awt.event.ActionEvent)

+ KurangButtonActionPerformed(java.awt.event.ActionEvent)

+ listUUTmbhKsusMouseClicked(java.awt.event.MouseEvent)

+ SimpanButtonKasusActionPerformed(java.awt.event.ActionEvent)

+ DokRadioButtonMouseClicked(java.awt.event.MouseEvent)

+ TextRadioButtonMouseClicked(java.awt.event.MouseEvent)

+ ResetAllActionPerformed(java.awt.event.ActionEvent)

- BrowseButtonKasus : JButton

- BrowseButton_uu : JButton

- DokRadioButton : JButton

- KeluarLabel : JLabel

- KurangButton : JButton

- SimpanUUButton : JButton

- SimpanButtonKasus : JButton

- TahunChooser : JTahunChooser

- TambahButton : JButton

- TentangText : JTextArea

- TextRadioButton : JRadioButton

- TextTextArea : JTextArea

- jDesktopPane1 : JDesktopPane

- jLabel10 : JLabel

- jLabel11 : JLabel

- jLabel12 : JLabel

- jLabel13 : JLabel

- jLabel14 : JLabel

- jLabel15 : JLabel

- jLabel16 : JLabel

- jLabel17 : JLabel

- jLabel19 : JLabel

- jLabel2 : JLabel

FormTambahDokumen

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

83

3.9.3. Package Control

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

84

3.9.4. Package Stemming

<<constructor>>

StemmingBobbyNazief(Connection)

+ StemmingBobbyNazief getkoneksi() : static

+ delReduplikasi() : String

+ hapusInflectionSuffixes1() : String

+ hapusDerivationSuffixes1() : String

+ hapusDerivationPrefix_1() : String

+ getKata() : String

+ setKata(String)

- conn : Connection

- kata : String

StemmingBobbyNazief

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

85

3.9.5. Package TF_IDF

+ TF_IDF_AND(Control , InvertedIndex, String) : List<String>

+ TF_IDF_OR(Control, InvertedIndex, String) : List<String>

- listDok : LinkedList

- list_wij : LinkedList

- listDF : LinkedList

- listTerm : LinkedList

- hasilAND : List<String>

- hasilOR : List<String>

OperatorAND_OR

3.9.6. Package inverted index

<<constructor>>

+ Document(String)

+ getDocument() : String

+ compareTo(Object) : int

+ toString() : String

- document : String

Document

<<constructor>>

+ Term(String)

+ getTerm() : String

+ getPostinglist() : LinkedListOrderedUnique<Document>

+ compareTo(Object) : int

+ toString() : String

- term : String

- postinglist : LinkedListOrderedUnique<Document>

Term

<<constructor>>

InvertedIndexBasic()

+ getTermList() : LinkedListOrderedUnique<Term>

+ add(String, String)

+ printSearch2(String cari) : String

+ duplikasiList_CountWij(LinkedList<String>, LinkedList<Double>)

+ AND(LinkedList<String>, LinkedList<Double>, LinkedList<Double>, LinkedList<String>) : List<String>

+ sortByValuesDescending(final Map<K, V>) : List<String>

+ sortByValuesAscending(final Map<K, V>)

listTermOrdered : List<String>

- termList : LinkedListOrderedUnique<Term>

InvertedIndex

+ addSort(E)

+ get(E) : E

+ toString : String

LinkedListOrderedUnique

3.9.7. Package conn

+ ConnectDB() : Connection

- conn : Connection

Koneksi

3.9.8. Package Thread

+ panggilThread()

- isRunning : boolean

ThreadPasal

+ panggilThreadKasus()

- isRunning2 : boolean

ThreadKasus

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

86

BAB IV

4. IMPLEMENTASI

4.1. Spesifikasi Software yang Digunakan

Spesifikasi software yang digunakan untuk implementasi sistem

pemerolehan informasi undang-undang menggunakan struktur data inverted index

dan pembobotan tf-idf adalah sebagai berikut :

1. Sistem operasi : Windows

2. MySQL Server 5.1

3. SQLyog 10.42

4. Java JDK 1.7.0

5. mysql-connector-java-5.1.6

6. Netbeans IDE 7.2

4.2. Implementasi Basis Data

1. Tabel User

Kode Program 4.1 Implementasi Pembuatan Tabel User

CREATE TABLE `user` (

`username` varchar(100) NOT NULL,

`password` varchar(100) DEFAULT NULL,

PRIMARY KEY (`username`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

87

2. Tabel Rootwords

Kode Program 4.2 Implementasi Pembuatan Tabel Rootwords

3. Tabel Stopwords

Kode Program 4.3 Implementasi Pembuatan Tabel Stopwords

4. Tabel Stopwords_hukum

Kode Program 4.4 Implementasi Pembuatan Tabel Soptwords_hukum

CREATE TABLE `rootwords` (

`id_rootword` varchar(10) NOT NULL,

`rootword` varchar(200) DEFAULT NULL,

PRIMARY KEY (`id_rootword`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE ‘stopwords’(

‘id_stopword varchar(10) NOT NULL,

‘stopword’ varchar(100) DEFAULT NULL,

PRIMARY KEY (‘id_stopword’))

ENGINE = InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `stopwords_hukum` (

`id_stopword_hukum` varchar(15) NOT NULL,

`stopword_hukum` varchar(50) DEFAULT NULL,

PRIMARY KEY (`id_stopword_hukum`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

88

5. Tabel Pasal

Kode Program 4.5 Implementasi Pembuatan Tabel Pasal

6. Tabel Termpasal

Kode Program 4.6 Implementasi Pembuatan Tabel Termpasal

CREATE TABLE `pasal` (

`id_pasal` varchar(15) NOT NULL,

`tentang` varchar(1000) DEFAULT NULL,

`dok_pasal` blob,

`status` varchar(1) DEFAULT NULL,

PRIMARY KEY (`id_pasal`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `termpasal` (

`id_term_pasal` varchar(15) NOT NULL,

`term_pasal` varchar(100) DEFAULT NULL,

`df_j` double DEFAULT NULL,

`nidf_j` double DEFAULT NULL,

PRIMARY KEY (`id_term_pasal`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

89

7. Tabel Indeks_pasal

Kode Program 4.7 Implementasi Pembuatan Tabel Indeks_Pasal

8. Tabel Kasus

Kode Program 4.8 Implementasi Pembuatan Tabel Kasus

CREATE TABLE `indeks_pasal` (

`tf_ij` double DEFAULT NULL,

`ntf_ij` double DEFAULT NULL,

`w_ij` double DEFAULT NULL,

`id_pasal` varchar(15) DEFAULT NULL,

`id_term_pasal` varchar(15) DEFAULT NULL,

KEY `id_pasal` (`id_pasal`),

KEY `id_term_pasal` (`id_term_pasal`),

CONSTRAINT `id_pasal` FOREIGN KEY (`id_pasal`) REFERENCES

`pasal` (`id_pasal`),

CONSTRAINT `id_term_pasal` FOREIGN KEY (`id_term_pasal`) R

EFERENCES `termpasal` (`id_term_pasal`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `kasus` (

`id_kasus` varchar(15) NOT NULL,

`judul` varchar(3000) DEFAULT NULL,

`dok_kasus` blob,

`status` varchar(1) DEFAULT NULL,

PRIMARY KEY (`id_kasus`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

90

9. Tabel Termkasus

Kode Program 4.9 Implementasi Pembuatan Tabel Termkasus

10. Tabel Indeks_kasus

Kode Program 4.10 Implementasi Pembuatan Tabel Indeks_kasus

CREATE TABLE `termkasus` (

`id_term_kasus` varchar(15) NOT NULL,

`term_kasus` varchar(100) DEFAULT NULL,

`df_j` int(11) DEFAULT NULL,

`nidf_j` double DEFAULT NULL,

PRIMARY KEY (`id_term_kasus`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `indeks_kasus` (

`tf_ij` double DEFAULT NULL,

`ntf_ij` double DEFAULT NULL,

`w_ij` double DEFAULT NULL,

`id_term_kasus` varchar(15) DEFAULT NULL,

`id_kasus` varchar(15) DEFAULT NULL,

KEY `id_kasus` (`id_kasus`),

KEY `id_term_kasus` (`id_term_kasus`),

CONSTRAINT `id_kasus` FOREIGN KEY (`id_kasus`) REFERENCES

`kasus` (`id_kasus`),

CONSTRAINT `id_term_kasus` FOREIGN KEY (`id_term_kasus`)

REFERENCES `termkasus` (`id_term_kasus`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

91

11. Tabel Kasus_pasal

Kode Program 4.11 Implementasi Pembuatan Tabel Kasus_Pasal

12. Tabel Kamus_hukum

Kode Program 4.12 Implementasi Pembuatan Tabel Kamus_Hukum

CREATE TABLE `kasus_pasal` (

`id_kasus` varchar(15) DEFAULT NULL,

`id_pasal` varchar(15) DEFAULT NULL,

KEY `id_kasus_kp` (`id_kasus`),

KEY `id_pasal_kp` (`id_pasal`),

CONSTRAINT `id_kasus_kp` FOREIGN KEY (`id_kasus`) REFERENCES

`kasus` (`id_kasus`),

CONSTRAINT `id_pasal_kp` FOREIGN KEY (`id_pasal`) REFERENCES

`pasal` (`id_pasal`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `kamus_hukum` (

`id_hukum` varchar(6) NOT NULL,

`term_hukum` varchar(100) DEFAULT NULL,

PRIMARY KEY (`id_hukum`)

) ENGINE=InnoDHD DEFAULT CHARSET=latin1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

92

13. Tabel Hukum_pasal

Kode Program 4.13 Implementasi Pembuatan Tabel Hukum_pasal

4.3. Implementasi Operasi Teks

4.3.1. Operasi Teks pada Query to Document

Operasi teks pada sub sistem ini terdapat 3 tahap, yaitu tokenization,

eliminasi stopwords, dan stemming. Berikut ini merupakan implementasi dari

ketiga tahap tersebut :

4.3.1.1. Tokenization

Proses tokenization dilakukan sebelum proses stopwords. Di bawah ini kode

program 4.14 merupakan implementasi dari proses tokenization :

Kode Program 4.14 Implementasi Tokenization

CREATE TABLE `hukum_pasal` (

`id_no_psl` varchar(10) NOT NULL,

`id_hukum` varchar(6) NOT NULL,

PRIMARY KEY (`id_no_psl`,`id_hukum`),

KEY `FK_hukum_pasal` (`id_hukum`),

CONSTRAINT `FK_hukum_pasal` FOREIGN KEY (`id_hukum`) REFERE

NCES `kamus_hukum` (`id_hukum`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

StringTokenizer st = new StringTokenizer(klmt.toString(),

"!@#$%^&*()_+{}|:<>?1234567890=[];',./€\"");

while (st.hasMoreTokens()) {

String test = st.nextToken();

StringTokenizer st2 = new

StringTokenizer(test.toLowerCase());

while (st2.hasMoreTokens()) {

String kata =

String.valueOf(st2.nextToken().toLowerCase());

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

93

4.3.1.2. Stopwords

Proses stopwords dilakukan setelah proses tokenization, dimana dilakukan

pemanggilan terhadap cariStopwords(String kata) terlebih dahulu untuk

menyeleksi stopwords, kemudian kata yang bukan termasuk stopwords akan

ditampung pada list bukanStopwords. Berikut ini pada kode program 4.15

merupakan uraian dari method cariStopwords :

Kode Program 4.15 Implementasi Stopwords

public Stopwords cariStopwords(String kata) throws

SQLException {

PreparedStatement statement = null;

ResultSet rs2 = null;

conn.setAutoCommit(false);

String sql = "SELECT stopword from stopwords where

stopword = '" + kata + "'";

statement = conn.prepareStatement(sql);

rs2 = statement.executeQuery();

Stopwords s = new Stopwords();

while (rs2.next()) {

s.setStopword(rs2.getString(1));

}

conn.commit();

return s;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

94

4.3.1.3. Stemming

Berikut ini pada kode program 4.16 merupakan method

StemmingBobbyNazief untuk mencari kata dasar dari setiap istilah dengan

menghilangkan awalan dan akhiran :

public class StemmingBobbyNazief {

ResultSet rs = null;

PreparedStatement pst = null;

private Connection conn;

private String kata;

public StemmingBobbyNazief(Connection koneksi) {

this.conn = koneksi;

}

public static StemmingBobbyNazief getkoneksi() throws SQLException {

StemmingBobbyNazief kon = new

StemmingBobbyNazief(Koneksi.ConnectDb());

return kon;

}

public void setKata(String kata) {

this.kata = kata;

}

public String getKata() {

try {

String cr, cr2;

delReduplikasi();

hapusInflectionSuffixes1();

hapusDerivationSuffixes1();

hapusDerivationPrefix_I();

cr = cariRootwords(kata);

if (cr != null) {

return kata;

} else {

kata = kata + "i";

cr2 = cariRootwords(kata);

if (cr2 != null) {

return kata;

} else if (cr2 == null) {

return kata = kata.substring(0, kata.length() - 1);

}

}

} catch (SQLException ex) {

Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE

, null, ex);

}

return kata;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

95

public String delReduplikasi() {

String cari;

try {

cari = cariRootwords(kata);

if (cari == null) {

String firstWord = null;

String secondWord = null;

if(kata.contains("-")) {

firstWord = kata.substring(0, kata.indexOf("-"));

secondWord = kata.substring(kata.indexOf("-") + 1);

String cr, cr2;

cr = cariRootwords(firstWord);

cr2 = cariRootwords(secondWord);

if (cr != null) {

kata = firstWord;

} else if (cr2 != null) {

kata = secondWord;

} else if (cr != null && cr2 != null) {

kata = firstWord + " " + secondWord;

} else {

kata = secondWord;

}

}

}

} catch (SQLException ex) {

Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE

, null, ex);

}

return kata;

}

public String hapusInflectionSuffixes1() {

try {

String cari;

cari = cariRootwords(kata);

if (cari == null) {

if (kata.endsWith("lah")) {

hapusInflectionSuffixes2();

} else if (kata.endsWith("kah")) {

kata = kata.substring(0, kata.length() - 3);

hapusInflectionSuffixes2();

} else if (kata.endsWith("tah")) {

kata = kata.substring(0, kata.length() - 3);

hapusInflectionSuffixes2();

} else if (kata.endsWith("pun")) {

kata = kata.substring(0, kata.length() - 3);

hapusInflectionSuffixes2();

} else {

hapusInflectionSuffixes2();

}

}

} catch (SQLException ex) {

Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE

, null, ex);

}

return kata;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

96

public String hapusDerivationSuffixes1() {

try {

String cari;

cari = cariRootwords(kata);

if (cari == null) {

if (kata.endsWith("i")) {

kata = kata.substring(0, kata.length() - 1);

} else if (kata.endsWith("kan")) {

kata = kata.substring(0, kata.length() - 3);

} else if (kata.endsWith("an")) {

kata = kata.substring(0, kata.length() - 2);

}

}

} catch (SQLException ex) {

Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE

, null, ex);

}

return kata;

}

public String hapusDerivationPrefix_I() {

try {

String cr, cari;

cari = cariRootwords(kata);

if (cari == null) {

if (kata.startsWith("di")) {

kata = kata.substring(2);

} else if (kata.startsWith("ke")) {

kata = kata.substring(2);

} else if (kata.startsWith("se")) {

kata = kata.substring(2);

} else if (kata.startsWith("te")) {

if (kata.startsWith("ter")) {

cr = cariRootwords("r" + kata.substring(3));

if (cr != null) {

kata = "r" + kata.substring(3);

} else {

kata = kata.substring(3);

}

} else {

kata = kata.substring(2);

}

} else if (kata.startsWith("be")) {

if (kata.startsWith("ber")) {

cr = cariRootwords(kata.substring(3));

if (cr == null) {

kata = kata.substring(2);

} else {

kata = kata.substring(3);

}

} else if (kata.startsWith("bel")) {

kata = kata.substring(3);

} else {

kata = kata.substring(2);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

97

} else if (kata.startsWith("me")) { //men, mem,

meng, meny, menge

if (kata.startsWith("meng")) {

cr = cariRootwords("k" + kata.substring(4));

if (cr != null) {

kata = "k" + kata.substring(4);

}

else {

kata = kata.substring(4);

}

} else if (kata.startsWith("meny")) {

cr = cariRootwords("s" + kata.substring(4));

if (cr != null) {

kata = "s" + kata.substring(4);

} else {

kata = kata.substring(4);

}

} else if (kata.startsWith("mem")) {

cr = cariRootwords("p" + kata.substring(3));

if (cr != null) {

kata = "p" + kata.substring(3);

} else {

kata = kata.substring(3);

}

} else if (kata.startsWith("men")) {

cr = cariRootwords("t" + kata.substring(3));

if (cr != null) {

kata = "t" + kata.substring(3);

} else {

kata = kata.substring(3);

}

} else {

kata = kata.substring(2);

}

} else if (kata.startsWith("pe")) {

if (kata.startsWith("per")) {

kata = kata.substring(3);

} else if (kata.startsWith("pem")) {

cr = cariRootwords("p" + kata.substring(3));

if (cr != null) {

kata = "p" + kata.substring(3);

} else {

kata = kata.substring(3);

}

} else if (kata.startsWith("peny")) {

cr = cariRootwords("s" + kata.substring(4));

if (cr != null) {

kata = "s" + kata.substring(4);

} else {

kata = kata.substring(4);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

98

Kode Program 4.16 Implementasi Stemming

} else if (kata.startsWith("pen")) {

cr = cariRootwords("t" + kata.substring(3));

if (cr != null) {

kata = "t" + kata.substring(3);

} else {

kata = kata.substring(3);

}

} else if (kata.startsWith("peng")) {

cr = cariRootwords("k" + kata.substring(4));

if (cr != null) {

kata = "k" + kata.substring(4);

} else {

kata = kata.substring(4);

}

} else {

kata = kata.substring(2);

}

}

}

} catch (SQLException ex) {

Logger.getLogger(StemmingBobbyNazief.class.getName()).log(Level.SEVERE

, null, ex);

}

return kata;

}

public String cariRootwords(String kata) throws

SQLException {

PreparedStatement statement = null;

ResultSet rs2 = null;

conn.setAutoCommit(false);

String sql = "SELECT rootword from rootwords

where rootword = '" + kata + "'";

statement = conn.prepareStatement(sql);

rs2 = statement.executeQuery();

String s = null;

while (rs2.next()) {

s = rs2.getString("rootword");

}

conn.commit();

return s;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

99

4.3.2. Operasi Teks pada Document to Document

Operasi Teks pada Kasus hanya melakukan proses pengambilan term yang

sesuai dengan tabel Kamus_hukum. Jika term tersebut terdaftar pada

Kamus_hukum, maka sistem akan langsung mencari posting list dari inverted

index.

4.3.2.1. Pengambilan Term

Berikut ini pada kode program 4.17 merupakan implementasi pengambilan

term dari isi tentang pada masing-masing pasal di tabel Hukum_Pasal untuk

dicocokan dengan dokumen kasus yang dimasukan oleh pengguna.

Kode Program 4.17 Implementasi Pengambilan Term

public void AmbilTermHukum(String id_kasus) {

try {

Control c = Control.getkoneksi();

List<String> idPsl = c.ListIdPasal_KP(id_kasus);

Collection<String> id_no_psl = new TreeSet<String>();

int size_idPsl = idPsl.size();

for (int i = 0; i < size_idPsl; i++) {

String id = idPsl.get(i);

String id_p_baru = id.substring(0, 7);

id_no_psl.add(id_p_baru);

List<String> ubah = new ArrayList<String>(id_no_psl);

for (int u = 0; u < ubah.size(); u++) {

List<String> id_hkm = c.ListIdHukum_HP(id_p_baru);

for (int j = 0; j < id_hkm.size(); j++) { //cari

term hukum

String trmHkm =

c.cariTermHkm_KH(id_hkm.get(j));

List_termHukum.add(trmHkm);

}

}

}

} catch (SQLException ex){

Logger.getLogger(HitungWij_Kasus.class.getName()).log(Level.SEVERE,

null, ex);

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

100

4.4. Implementasi Pembobotan TF-IDF

Implementasi proses Pembobotan TF-IDF pada dokumen pasal dan kasus

dilakukan dengan cara yang sama, yaitu dengan melakukan perhitungan nidf_j

dikali dengan ntf_ij.

Pada kode program 4.18 di bawah ini akan dijalankan jika istilah (term)

tersebut bukan merupakan stopwords dari hukum :

Term_Pasal cari = con.cariTermPasal(term);

String id = con.id_term();

Term_Pasal tp = new Term_Pasal();

Indeks_Pasal ip = new Indeks_Pasal();

if (cari.getTerm_pasal() == null) {//tdk ada term yg sama

int set_dfj = 1; //mka buat bru d tbl termpsl

tp.setId_term_pasal(id);

tp.setTerm_pasal(term);

tp.setDf_j(set_dfj);

con.InsertTermPasalversi2(tp);

double set_tfij = 1.0;

ip.setId_pasal(id_pasal);

ip.setId_term_pasal(id);

ip.setTf_ij(set_tfij);

con.InsertIndeksPasalversi2(ip);

} else if ((cari.getTerm_pasal()).equals(term)) { // jika term

sudah ada di tabel termpasal

Indeks_Pasal cr_id_psl = con.CariIdPasal(id_pasal);

String id_psl = cr_id_psl.getId_pasal();

Term_Pasal crIdTerm = con.CariIdTerm(term);

String idTrm = crIdTerm.getId_term_pasal();

//cari id term dan id pasal tersebut di tbl term pasal

String cariTermIndeks = con.CekIDP_IDT(id_pasal, idTrm);//ini

untuk search baris di indeks pasal

} else if ((cari.getTerm_pasal()).equals(term)) { // jika term sudah ada

di tabel termpasal

Indeks_Pasal cr_id_psl = con.CariIdPasal(id_pasal);

String id_psl = cr_id_psl.getId_pasal();

Term_Pasal crIdTerm = con.CariIdTerm(term);

String idTrm = crIdTerm.getId_term_pasal();

//cari id term dan id pasal di tbl term pasal, cr brs di IP

String cariTermIndeks = con.CekIDP_IDT(id_pasal, idTrm);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

101

Kode Program 4.18 Implementasi Perhitungan TF_ij

Setelah menghitung jumlah tf_ij, langkah selanjutnya adalah menghitung

jumlah df_j dan nidf_j yang diimplementasikan pada kode program 4.19 di bawah

ini :

Kode Program 4.19 Implementasi Perhitungan DF_j dan NIDF_j

if (cariTermIndeks == null) {

ip.setId_pasal(id_pasal);

ip.setId_term_pasal(idTrm);

ip.setTf_ij(1.0);

con.InsertIndeksPasalversi2(ip);

} else if (cariTermIndeks != null) {

Indeks_Pasal tfij1 = con.TotalTFIJ(id_psl, idTrm);

Double tfij_double11 = tfij1.getTf_ij();

Double total_tfij = tfij_double11 + 1.0;

con.SetTF_IJ(id_psl, idTrm, total_tfij);

}

}

public void HitungDF_nIDF_Pasal() {

try {

Control con = Control.getkoneksi();

int m = con.HitungJumlahPasal();

double nidfj;

//Hitung DF

List<Term_Pasal> listTP = con.ListTermPasal();

for (int b = 0; b < listTP.size(); b++) {

String idTrmPsl_b = listTP.get(b).getId_term_pasal();

Term_Pasal TP = con.HitungJmlhDf(idTrmPsl_b);

int jmlhDF = (int) TP.getDf_j();

con.SetDFJ(idTrmPsl_b, jmlhDF);

//hitung nidfj

nidfj = (Math.log(m / jmlhDF)) / (Math.log(m));

String nidfjStr = String.valueOf(nidfj);

if (nidfjStr.equals("NaN")) {

nidfj = 0;

con.SetNIDFj(nidfj, idTrmPsl_b);

} else if (!nidfjStr.equals("NaN")) {

con.SetNIDFj(nidfj, idTrmPsl_b);

}

}

} catch (SQLException ex){

{Logger.getLogger(HitungWij_Pasal.class.getName()).log(Level.SEVERE,

null, ex);

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

102

Langkah terakhir dari pembobotan TF-IDF adalah perhitungan W_ij yang

diimplementasikan pada kode program 4.20 berikut ini :

Kode Program 4.20 Implementasi Perhitungan W_ij

4.5. Implementasi Pencarian Melalui Inverted Index

Pada proses pencarian baik pada pasal maupun kasus diperlukan untuk

melakukan pembangunan inverted index terlebih dahulu agar proses pencarian

tidak menghabiskan waktu yang lama mengingat banyaknya koleksi dokumen

pada basis data. Selanjutnya akan dilakukan dengan operasi AND pada pasal dan

OR pada dokumen kasus untuk mendapatkan hasil pasal serta dokumen kasus

yang sesuai.

public void HitungWijPasal(String id_pasal) {

try {

Control con = Control.getkoneksi();

//hitung MaxTf

int maxtfi = con.HitungMaxTFi(id_pasal);

double ntfij;

double wij;

//ambil nilai TF dan hitung NTFij

List<Indeks_Pasal> list =

con.ListIndeksPasalperIdPasal(id_pasal);

for (int j = 0; j < list.size(); j++) {

ntfij = (list.get(j).getTf_ij()) / (maxtfi);

String id_trm = list.get(j).getId_term_pasal();

con.SetNTFij(ntfij, id_trm, id_pasal);

//hitung wij

Term_Pasal crNIDF = con.cariNIDF_j(id_trm);

wij = ntfij * crNIDF.getNidf();

con.SetWij(wij, id_trm, id_pasal);

}

} catch (SQLException ex) {

Logger.getLogger(HitungWij_Pasal.class.getName()).log(Level.SEVERE,

null, ex);

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

103

4.5.1. Pencarian pada Pasal (query to document)

Berikut ini pada kode program 4.21 merupakan implementasi dari proses

membangun inverted index pada pasal :

Kode Program 4.21 Implementasi Pembangunan Inverted Index Pasal

public void BangunInvertedIndexUU() {

try {

koneksi = Control.getkoneksi();

ii = new InvertedIndexBasic();

List<Indeks_Pasal> listIndeks = koneksi.ListIndeksPasal();

String trm, idpsl, idtrm2;

for (int i = 0; i < listIndeks.size(); i++) {

Indeks_Pasal listI = listIndeks.get(i);

idtrm2 = listI.getId_term_pasal();

idpsl = listI.getId_pasal();

Term_Pasal crTrm = koneksi.cariTermPasalKata(idtrm2);

trm = crTrm.getTerm_pasal();

ii.add(trm, idpsl);

}

ii.printInvertedIndexBasic();

} catch (SQLException ex) {

Logger.getLogger(FormPencarian.class.getName()).log(Level.SEVERE, null,

ex);

} catch (NullPointerException ex) {

Logger.getLogger(FormPencarian.class.getName()).log(Level.SEVERE, null,

ex);

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

104

Pada kode program 4.21 terdapat proses pengambilan list indeks_pasal

untuk mendapatkan id_term dan id_pasal untuk diindekskan. Proses pengambilan

list tersebut diimplementasikan pada kode program 4.22 berikut ini :

Kode Program 4.22 Implementatsi Pengambilan List Indeks_Pasal

Setelah melakukan pengambilan list id_term dan id_pasal, selanjutnya

sistem mencari term_pasal berdasarkan id_term yang diperoleh. Langkah tersebut

diimplementasikan pada kode program 4.23 berikut ini :

Kode Program 4.23 Implementasi Pencarian Term_Pasal

public List<Indeks_Pasal> ListIndeksPasal() throws SQLException {

PreparedStatement statement = null;

ResultSet result = null;

conn.setAutoCommit(false);

String sql = "SELECT tf_ij, ntf_ij, w_ij, id_pasal, id_term_pasal

FROM indeks_pasal";

statement = conn.prepareStatement(sql);

result = statement.executeQuery();

List<Indeks_Pasal> ip1 = new ArrayList<Indeks_Pasal>();

while (result.next()) {

Indeks_Pasal ip = new Indeks_Pasal();

ip.setTf_ij(result.getDouble(1));

ip.setNtf_ij(result.getDouble(2));

ip.setW_ij(result.getDouble(3));

ip.setId_pasal(result.getString(4));

ip.setId_term_pasal(result.getString(5));

ip1.add(ip);

}

conn.commit();

return ip1;

}

public Term_Pasal cariTermPasalKata(String idTrm) throws SQLException {

PreparedStatement statement = null;

ResultSet rs2 = null;

conn.setAutoCommit(false);

String sql = "SELECT term_pasal from termpasal where

id_term_pasal = '" + idTrm + "'";

statement = conn.prepareStatement(sql);

rs2 = statement.executeQuery();

Term_Pasal tp = new Term_Pasal();

while (rs2.next()) {

tp.setTerm_pasal(rs2.getString(1));

}

conn.commit();

return tp;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

105

Setelah itu, lakukan pengindeksan pada term_pasal dan id_pasal yang

merupakan inti dari pembangunan inverted index yang telah diimplementasikan

pada kode program 4.24 berikut ini :

Kode Program 4.24 Implementasi Pengindeksan

Pada kode program 4.25 di bawah ini merupakan implementasi pengurutan dari

posting list berdasarkan id_pasal pada setiap term_pasal :

Kode Program 4.25 Implementasi Pengurutan Posting List

public void add(String pTerm, String pDocument) {

Term vTerm = termList.get(new Term(pTerm));

if (vTerm == null) {

Term oTerm = new Term(pTerm);

oTerm.postinglist = new LinkedListOrderedUnique<Document>();

oTerm.postinglist.addSort(new Document(pDocument));

termList.add(oTerm);

} else {

vTerm.getPostinglist().addSort(new Document(pDocument));

}

}

public boolean addSort(E e) {

ListIterator<E> iterator = this.listIterator();

while (iterator.hasNext()) {

E temp = iterator.next();

if (((Comparable) temp).compareTo(e) > 0) {

iterator.previous();

iterator.add(e);

return true;

} else if (((Comparable) temp).compareTo(e) == 0) {

return true;

}

}

iterator.add(e);

return true;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

106

Setelah posting list diurutkan, maka inverted index sudah bisa dicetak yang

diimplementasikan pada kode program 4.26 :

Kode Program 4.26 Implementasi Cetak Inverted Index

public void printInvertedIndexBasic() {

ListIterator<Term> iterator = termList.listIterator();

while (iterator.hasNext()) {

Term vTerm = iterator.next();

System.out.print(vTerm.getTerm() + " => ");

ListIterator<Document> iterator2 =

vTerm.postinglist.listIterator();

while (iterator2.hasNext()) {

Document pDoc = iterator2.next();

System.out.print(" " +

vTerm.getPostinglist().get(pDoc));

}

System.out.println("");

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

107

4.5.1.1. Operator AND

Sebelum mengoperasikan operator AND, perlunya mencari bobot dari

masing-masing term yang telah didapat dari kesesuaian dengan query. Berikut ini

pada kode program 4.27 implementasi dari pengambilan bobot :

Kode Program 4.27 Implementasi Pencarian Bobot W_ij

public List<String> TF_IDF_AND(Control koneksi, InvertedIndexBasic ii,

String cari) {

try {

StringTokenizer token2 = new StringTokenizer(cari, " .,-

'[]{}/|@#!$%^&*-+=?<>:;()");

while (token2.hasMoreTokens()) {

String nxtTkn2 = token2.nextToken();

listTerm.add(nxtTkn2);

Term_Pasal cr1 = koneksi.CariIdTerm(nxtTkn2);

String ID_TERM = cr1.getId_term_pasal();

//cr DF

Term_Pasal cr2 = koneksi.TotalDFJ(nxtTkn2);

Double DF = cr2.getDf_j();

listDF.add(DF);

String test = ii.printSearch2(nxtTkn2);

if (test != null) {

StringTokenizer tokenTest = new

StringTokenizer(test, " .,-'[]{}/|@#!$%^&*-+=?<>:;()txt");

while (tokenTest.hasMoreTokens()) {

String dok = tokenTest.nextToken().toString();

Indeks_Pasal cr3 = koneksi.cariW_ij2(ID_TERM,

dok);

Double W_ij = cr3.getW_ij();

list_wij.add(W_ij);

listDok.add(dok);

}

}

}

hasilAND = new InvertedIndexBasic().AND(listTerm, listDF, list_wij,

listDok);

System.out.println("");

} catch (SQLException ex) {

Logger.getLogger(OperatorAND_OR.class.getName()).log(Level.SEVERE,

null, ex);

}

return hasilAND;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

108

Pada kode program 4.28 di bawah ini berfungsi untuk menjumlahkan Wij

berdasarkan query dan mengurutkan dokumen pasal berdasarkan Wij secara

descending :

public List<String> AND(LinkedList<String> listTERM,

LinkedList<Double> list_DF, LinkedList<Double> list_Wij,

LinkedList<String> list_dok) {

List<String> hasilAkhir = new ArrayList<>();

Map<String, Double> mp0 = new HashMap<>();

Map<String, Double> mp = new HashMap<>();

System.out.println("list term size : " + listTERM.size());

System.out.println("list DF size : " + list_DF.size());

System.out.println("list wij size : " + list_Wij.size());

System.out.println("list dok size : " + list_dok.size());

for (int i = 0; i < listTERM.size(); i++) {

String currentTerm = listTERM.get(i);

Double currentDF = list_DF.get(i);

mp.put(currentTerm, currentDF);

}

this.sortByValuesAscending(mp);

int sizeListTermOrdered = listTermOrdered.size();

System.out.println("Size Term Ordered : " +

sizeListTermOrdered);

List<String> listA = new ArrayList<>();

List<String> listB = new ArrayList<>();

List<String> listC = new ArrayList<>();

List<Double> listA1 = new ArrayList<>();

List<Double> listB1 = new ArrayList<>();

int ambil = 0;

while (sizeListTermOrdered > 0) {

if (ambil == 0) {

for (int j = 0; j < 2; j++) {

if (j == 0) {

String termORdered = listTermOrdered.get(j);

for (int i = 0; i < listTERM.size(); i++) {

if (listTERM.get(i).equals(termORdered)) {

indekDF1 = i;

dDF1 = list_DF.get(i);

}

}

} else {

String termORdered = listTermOrdered.get(j);

System.out.println("Term ke- " + j + " = " +

termORdered);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

109

for (int i = 0; i < listTERM.size(); i++) {

if (listTERM.get(i).equals(termORdered)) {

indekDF2 = i;

System.out.println("indekDF2 putaran1

: " + indekDF2);

dDF2 = list_DF.get(i);

System.out.println("isi DF2 putaran 1

: " + dDF2);

}

}

}

}

ambil = ambil + 2;

sizeListTermOrdered = sizeListTermOrdered - ambil;

if (indekDF1 != 0) {

for (int i = 0; i < indekDF1; i++) {

nilaiDF1 = list_DF.get(i);

countDF1 = countDF1 + nilaiDF1

}

} else if (indekDF1 == 0) {

countDF1 = 0;

}

if (indekDF2 != 0) {

for (int i = 0; i < indekDF2; i++) {

nilaiDF2 = list_DF.get(i);

countDF2 = countDF2 + nilaiDF2;

}

} else if (indekDF2 == 0) {

countDF2 = 0;

}

int batasA = (int) (countDF1 + dDF1);

String idDok;

Double wij_;

for (int i = (int) countDF1; i < batasA; i++) {

idDok = list_dok.get(i);

listA.add(idDok);

wij_ = list_Wij.get(i);

listA1.add(wij_);

}

System.out.println("list A : " + listA);

int batasB = (int) (countDF2 + dDF2);

String idDok2;

Double wij2_;

for (int i = (int) countDF2; i < batasB; i++) {

idDok2 = list_dok.get(i);

listB.add(idDok2);

wij2_ = list_Wij.get(i);

listB1.add(wij2_);

}

System.out.println("list B : " + listB);

}

else if (ambil > 0) {

countDF2 = 0; //hapus jmlh countDF putaran awal

listB.removeAll(listB);

for (int j = ambil; j < ambil + 1; j++) {

String termORdered = listTermOrdered.get(j);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

110

for (int i = 0; i < listTERM.size(); i++) {

if (listTERM.get(i).equals(termORdered)) {

indekDF2 = i;

dDF2 = list_DF.get(i);

}

}

}

ambil = ambil + 1;

sizeListTermOrdered = sizeListTermOrdered - 1;

System.out.println("sizeOrder saat ini : " +

sizeListTermOrdered);

if (indekDF2 > 0) {

for (int i = 0; i < indekDF2; i++) {

nilaiDF2 = list_DF.get(i);

countDF2 = countDF2 + nilaiDF2;

}

} else if (indekDF2 == 0) {

countDF2 = 0;

}

int batasB = (int) (countDF2 + dDF2);

String idDok2;

Double wij2_;

for (int i = (int) countDF2; i < batasB; i++)

{

idDok2 = list_dok.get(i);

listB.add(idDok2);

wij2_ = list_Wij.get(i);

listB1.add(wij2_);

}

System.out.println("list B : " + listB);

}

listC = listA;

System.out.println("list C : "+listC)

listA = this.intersection(listA, listB);

System.out.println("intersection : " + listA);

}

//penentuan urutan berdasarkan bobot wij :

Double Wij_C = 0.0, Wij_B = 0.0, TotalWij;

String A, B, C;

System.out.println("listA.size() : "+listA.size());

for (int a = 0; a < listA.size(); a++) {

A = listA.get(a);

System.out.println("A : " + A);

for (int c = 0; c < listC.size(); c++) {

C = listC.get(c);

if (C.equals(A)) {

Wij_C = listA1.get(c);

break;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

111

Kode Program 4.28 Implementasi Pengurutan Dokumen Pasal Berdasarkan W_ij

Pada kode program 4.28 terdapat pemanggilan method intersection yang

berfungsi untuk pemotongan pada posting list yang terdapat dikedua list yang

berbeda. Berikut ini pada kode program 4.29 merupakan uraian dari method

intersection :

Kode Program 4.29 Implementasi Intersection

for (int b = 0; b < listB.size(); b++) {

B = listB.get(b);

if (B.equals(A)) {

Wij_B = listB1.get(b);

break;

}

}

TotalWij = Wij_C + Wij_B;

System.out.println("TotalWij : " + TotalWij);

mp0.put(A, TotalWij);

}

hasilAkhir = sortByValuesDescending(mp0);

return hasilAkhir;

}

public <T> List<T> intersection(List<T> list1, List<T> list2) {

List<T> list = new ArrayList<T>();

for (T t : list1) {

if (list2.contains(t)) {

list.add(t);

}

}

return list;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

112

Berikut ini pada kode program 4.30 merupakan implementasi untuk

mengurutkan hasil list id_pasal secara descending berdasarkan bobot wij :

Kode Program 4.30 Implementasi Pengurutan List secara Descending

Setelah didapatkan hasil urutan id_pasal, maka selanjutnya sistem

menjalankan tahap pencarian tentang dan dokumen pasal berdasarkan id_pasal

yang disajikan pada kode program 4.31 berikut ini :

Kode Program 4.31 Implementasi Pencarian Dokumen Pasal di Basis Data

List<String> hasilDescending = new ArrayList<>();

public <K, V extends Comparable<V>> List<String>

sortByValuesDescending(final Map<K, V> map) {

Comparator<K> valueComparator = new Comparator<K>() {

public int compare(K k1, K k2) {

int compare = map.get(k2).compareTo(map.get(k1));

if (compare == 0) {

return 1;

} else {

return compare;

}

}

};

Map<K, V> sortedByValues = new TreeMap<K, V>(valueComparator);

sortedByValues.putAll(map);

Set set = sortedByValues.entrySet();

Iterator i = set.iterator();

while (i.hasNext()) {

Map.Entry me = (Map.Entry) i.next();

System.out.println(me.getKey());

hasilDescending.add(me.getKey().toString());

}

return hasilDescending; }

public Pasal AmbilPasal(String id_pasal) throws SQLException {

PreparedStatement statement = null;

ResultSet rs2 = null;

conn.setAutoCommit(false);

String sql = "SELECT id_pasal, tentang, dok_pasal from pasal "

+ "where id_pasal = '" + id_pasal + "'";

statement = conn.prepareStatement(sql);

rs2 = statement.executeQuery();

Pasal pasal = new Pasal();

while (rs2.next()) {

pasal.setId_pasal(rs2.getString(1));

pasal.setTentang(rs2.getString(2));

pasal.setDok_psl_stream(rs2.getBinaryStream(3));

}

conn.commit();

return pasal;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

113

4.5.2. Pencarian pada Kasus (document to document)

Proses pembangunan inverted index kasus sama dengan pasal sebelumnya

yang terdapat pada kode program 4.21. Berikut ini pada kode program 4.32

implementasi inverted index kasus :

Kode Program 4.32 Implementasi Pembangunan Inverted Index Kasus

Pada kode program 4.33 berikut ini merupakan implementasi untuk

membaca dokumen yang dimasukan oleh pengguna sebagai kata kunci.

Kode Program 4.33 Implementasi Membaca Dokumen sebagai Kata Kunci

public void BangunInvertedIndexKasus() {

try {

koneksi2 = Control.getkoneksi();

ii2 = new InvertedIndexBasic();

List<Indeks_Kasus> listIndeks = koneksi2.ListIndeksKasus();

String trm, idks, idtrm2;

for (int i = 0; i < listIndeks.size(); i++) {

Indeks_Kasus listI = listIndeks.get(i);

idtrm2 = listI.getId_term_kasus();

idks = listI.getId_kasus();

Term_Kasus crTrm = koneksi2.cariTermKasusKata(idtrm2);

trm = crTrm.getTerm_kasus();

ii2.add(trm, idks);

}

ii2.printInvertedIndexBasic();

} catch (SQLException ex) {

Logger.getLogger(FormPencarian.class.getName()).log(Level.SEVERE, null,

ex);

} catch (NullPointerException ex) {

Logger.getLogger(FormPencarian.class.getName()).log(Level.SEVERE, null,

ex);

}

}

List<Kasus> listKasus = new ArrayList<>();

FileReader fileReader = null;

File f = new File(file.getAbsolutePath());

fileReader = new FileReader(f);

BufferedReader bufferedReader = new

BufferedReader(fileReader);

StringBuffer stringBuffer = new StringBuffer();

String line;

while ((line = bufferedReader.readLine()) != null) {

stringBuffer.append(line);

stringBuffer.append(" " + "\n");

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

114

Selanjutnya sistem akan mengambil term yang sesuai dengan

Kamus_Hukum pada dokumen kasus, yang diimplementasikan pada kode

program 4.34 berikut ini :

Kode Program 4.34 Implementasi Pengambilan Term sesuai Kamus Hukum

public String SaringStopwordBuffer2(StringBuffer input) {

try {

Scanner inputSc = new Scanner(input.toString());

Control c = Control.getkoneksi();

String inputStr = input.toString();

while (inputSc.hasNextLine()) {

String klmt = inputSc.nextLine();

StringTokenizer st = new

StringTokenizer(klmt.toString(),

"!@#$%^&*()_+{}|:<>?1234567890=[];',./€");

while (st.hasMoreTokens()) {

String test = st.nextToken();

StringTokenizer st2 = new StringTokenizer(test);

while (st2.hasMoreTokens()) {

String kata =

String.valueOf(st2.nextToken().toLowerCase());

String ygdicari = c.cariTermHkm_KH2(kata);

if (ygdicari != null) {

listKataHukum.add(ygdicari);

}

}

}

}

for (int i = 0; i < listKataHukum.size(); i++) {

String term = listKataHukum.get(i);

cari = cari + " " + term;

}

} catch (SQLException ex) {

Logger.getLogger(StopwordsControl.class.getName()).log(Level.SEVERE,

null, ex);

}

return cari;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

115

4.5.2.1. Operator OR

Pengambilan bobot W_ij pada masing-masing term yang telah diperoleh,

yang diimplementasikan pada kode program 4.35 berikut ini :

Kode Program 4.35 Implementasi Pengambilan W_ij pada Pencarian Kasus

public List<String> TF_IDF_OR(Control koneksi, InvertedIndexBasic ii,

String cari) {

try {

StringTokenizer(cari, " .,-'[]{}/|@#!$%^&*+=?<>:;()");

while (token2.hasMoreTokens()) {

String nxtTkn2 = token2.nextToken();

Term_Kasus cr1 = koneksi.CariIdTermKasus(nxtTkn2);

String ID_TERM = cr1.getId_term_kasus();

String test = ii.printSearch2(nxtTkn2);

if (test != null) {

StringTokenizer tokenTest = new StringTokenizer(test);

while (tokenTest.hasMoreTokens()) {

String hsl = tokenTest.nextToken().toString();

Indeks_Kasus cr2 = koneksi.cariW_ij_Kasus(ID_TERM, hsl);

Double W_ij = cr2.getW_ij();

list_wij.add(W_ij);

listDok.add(hsl);

}

}

}

hasilOR = new

InvertedIndexBasic().duplikasiList_CountWij(listDok, list_wij);

} catch (SQLException ex){

Logger.getLogger(OperatorAND_OR.class.getName()).log(Level.SEVERE,

null, ex); } } return hasilOR; }

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

116

Proses yang diperlukan untuk operasi OR adalah proses untuk

menghilangkan duplikasi pada list id dokumen dan perhitungan W_ij, kemudian

akan diurutkan descending sebagai berikut :

Kode Program 4.36 Implementasi Penghilang Duplikasi

public List<String> duplikasiList_CountWij(LinkedList<String> list,

LinkedList<Double> list_wij) {

LinkedList<String> ListDokBaru = new LinkedList<String>();

LinkedList<Double> ListWijBaru = new LinkedList<Double>();

list_wij.size());

for (int i = 0; i < list.size(); i++) {

String currentDok = list.get(i);

Double currentWij = list_wij.get(i);

if (i == 0) {

ListDokBaru.add(currentDok);

ListWijBaru.add(currentWij);

} else if (i != 0) {

if (ListDokBaru.contains(currentDok)) {

int indx = ListDokBaru.indexOf(currentDok);

double wij = (double) ListWijBaru.get(indx);

Double wij_jumlah = list_wij.get(i) + wij;

ListWijBaru.set(indx, wij_jumlah);

} else if (!ListDokBaru.contains(currentDok)) {

ListDokBaru.add(currentDok);

ListWijBaru.add(currentWij);

}

}

}

Map<String, Double> mp = new HashMap<String, Double>();

for (int j = 0; j < ListDokBaru.size(); j++) {

String dok_2 = ListDokBaru.get(j);

Double wij_2 = ListWijBaru.get(j);

mp.put(dok_2, wij_2);

}

hasilDuplikasiList = this.sortByValuesDescending(mp);

return hasilDuplikasiList;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

117

Pada kode program 4.37 berikut ini merupakan implementasi pencarian

dokumen kasus pada tabel Kasus berdasarkan id_kasus :

Kode Program 4.37 Implementasi Pencarian Dokumen Kasus Pada Tabel Kasus

public Kasus AmbilKasus(String id_kasus) throws SQLException {

PreparedStatement statement = null;

ResultSet rs2 = null;

conn.setAutoCommit(false);

String sql = "SELECT id_kasus, judul, dok_kasus from kasus "

+ "where id_kasus = '" + id_kasus + "'";

statement = conn.prepareStatement(sql);

rs2 = statement.executeQuery();

Kasus kasus = new Kasus();

while (rs2.next()) {

kasus.setId_kasus(rs2.getString(1));

kasus.setJudul(rs2.getString(2));

kasus.setDok_ksus_stream(rs2.getBinaryStream(3));

}

conn.commit();

return kasus;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

118

4.6. Implementasi Antarmuka

4.6.1. Form Utama

Pada Form Utama ini pengguna dapat memilih menu Pencarian atau

Undang-Undang. Menu Pencarian berfungsi untuk mencari pasal berdasarkan

query maupun dokumen kasus, dan menu Undang-Undang berfungsi untuk

menampilkan isi pasal yang ingin dicari. Pihak administrator dapat login dengan

memilih menu Administrator.

Gambar 4.1 Antarmuka Form Utama

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

119

4.6.2. Form Login

Pihak administrator harus melakukan login di Form Login seperti pada

gambar 4.2 berikut ini :

Gambar 4.2 Antarmuka Form Login

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

120

4.6.3. Form Tambah Dokumen

Pada gambar 4.3 berikut ini merupakan form untuk menambah undang-

undang dalam satuan pasal, dengan cara memasukan tahun, nomor, pasal, tentang,

dan dokumen pasal. Penambahan dokumen dapat dilakukan berdasarkan browse

ke folder komputer (.txt) maupun memasukan teks secara langsung.

Gambar 4.3 Antarmuka Form Tambah Dokumen Undang-Undang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

121

Kemudian pada gambar 4.4 berikut ini merupakan form untuk

menambahkan dokumen kasus dengan cara memasukan judul, dokumen kasus

(.txt), dan pasal-pasal yang terkait pada kasus pelanggaran tersebut.

Gambar 4.4 Antarmuka Form Tambah Dokumen Kasus

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

122

4.6.4. Form Pencarian

Pada gambar 4.5 berikut ini merupakan form Pencarian Undang-Undang

berdasarkan query yang dimasukan oleh pengguna. Pada form tersebut terdapat

field uraian yang berisi uraian dari isi pasal apabila pengguna mengklik row tabel

Undang-Undang.

Gambar 4.5 Antarmuka Form Pencarian Pasal (Query to Document)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

123

Pada gambar 4.6 berikut ini merupakan form pencarian kasus dan pasal

(document to document) berdasarkan dokumen kasus yang dimasukan oleh

pengguna, selain itu pengguna dapat mengetahui beberapa pasal yang terkait pada

kasus pelanggaran yang terletak pada tabel Undang-Undang apabila pengguna

mengklik row pada tabel kasus.

Gambar 4.6 Antarmuka Form Pencarian Kasus dan Pasal (Document to

Document)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

124

4.6.5. Form Lihat Undang-Undang

Pada gambar 4.7 berikut ini merupakan form untuk mengetahui isi dari

undang-undang dalam satuan pasal berdasarkan tahun, atau tahun dan nomor, atau

tahun, nomor, dan pasal.

Gambar 4.7 Antarmuka Form Lihat Undang-Undang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

125

BAB V

5. ANALISIS HASIL

5.1. Analisa Hasil Sistem

Bab ini membahas hasil uji coba dari Sistem Pemerolehan Informasi

Undang-Undang dan Kasus yang telah dilakukan pada 5 orang responden advokat.

Masing-masing responden melakukan 2(dua) kali uji coba yaitu pada fitur

Pencarian Undang-Undang (query to document) dan Kasus (document to

document). Kemudian responden diminta untuk menentukan nilai relevansi dari

hasil uji coba. Hasil dari penilaian relevansi tersebut akan digunakan untuk

menentukan nilai recall dan precision dari sistem ini.

Berikut ini hasil yang diperoleh dari pengujian yang dilakukan responden

pada 30 Juni 2015 :

5.1.1. Hasil Uji Coba Query to Document

Berikut ini merupakan analisa dan pembahasan hasil uji coba dari sub sistem

query to document, dimana kata kunci yang akan digunakan yaitu :

1. penelantaran anak

2. memperbanyak hasil karya tanpa izin

3. penculikan anak

4. mengancam melalui elektronik

5. produksi barang tidak sesuai dengan jaminan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

126

5.1.1.1. Uji Coba Pertama Query to Document

Kata kunci sebelum operasi teks : penelantaran anak

Kata kunci setelah operasi teks : telantar anak

Dokumen ditemukan dari hasil pencarian : 5

Dokumen yang sesuai dari hasil pencarian : 4

Dokumen yang sesuai dari seluruh dokumen : 5

Terdapat 1 dokumen relevan yang tidak dapat ditemukan kembali yaitu pasal

26 UU No 23 Tahun 2002 yang terdapat pada gambar 5.1 berikut ini :

Gambar 5.1 Pasal 26 UU No. 23 Tahun 2002

Dokumen tersebut tidak dapat ditemukan oleh sistem karena hanya

mengandung kata “anak” maka tereliminasi oleh operasi AND tetapi dokumen

tersebut memiliki makna yang serupa dengan kata kunci.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

127

Berikut ini pada gambar 5.1 merupakan output uji coba pertama query to

document :

Gambar 5.2 Output Uji Coba Pertama Query to Document

Output uji coba pertama pada gambar 5.2 menampilkan 5 dokumen pasal

yang dapat ditemukan kembali oleh sistem. Selanjutnya, dari kelima dokumen

pasal tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.1

merupakan hasil penentuan relevansi dari dokumen yang diperoleh :

Tabel 5.1 Relevansi Uji Coba Pertama Query to Document

No. Urut Id_Pasal Relevansi

1. 2002_23_071 V

2. 2002_23_013 V

3. 2002_23_077 V

4. 2002_23_001 X

5. 2002_23_059 V

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

128

Berdasarkan tabel 5.1 terlihat bahwa ada 1 dokumen yang tidak relevan yaitu

dokumen ke-4 dan 4 dokumen sisanya relevan dengan kata kunci. Setelah

menentukan nilai relevansi dari masing-masing dokumen pasal pada tabel 5.1,

maka langkah selanjutnya adalah menentukan nilai recall dan precision yang

terdapat pada tabel 5.2 berikut ini :

Tabel 5.2 Recall dan Precision Uji Coba Pertama Query to Document

No. Urut Id_Pasal Recall Precision

1 2002_23_071 0.2 1

2 2002_23_013 0.4 1

3 2002_23_077 0.6 1

4 2002_23_001 0.6 0.75

5 2002_23_059 0.8 0.8

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.2 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.3 berikut ini :

Tabel 5.3 Interpolasi Uji Coba Pertama Query to Document

Recall Precision

0% 100%

10% 100%

20% 100%

30% 100%

40% 100%

50% 100%

60% 100%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

129

70% 80%

80% 80%

90% 0%

100% 0%

Pada gambar 5.2 berikut ini merupakan grafik dari hasil interpolasi pada tabel

5.3 :

Gambar 5.3 Recall Precision Uji Coba Pertama Query to Document

Pada gambar 5.3 garis yang dihasilkan hampir menyerupai garis horizontal

(mendekati kanan atas) yang artinya hampir semua dokumen yang diperoleh

relevan dengan kata kunci. Sedangkan titik-titik yang berada di 0% pada sumbu X

mempunyai arti bahwa ada dokumen yang relevan tetapi sistem tidak dapat

mendapatkannya kembali.

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

130

5.1.1.2. Uji Coba Kedua Query to Document

Kata kunci sebelum operasi teks : memperbanyak hasil karya tanpa izin

Kata kunci setelah operasi teks : perbanyak karya izin

Dokumen yang diperoleh : 6

Dokumen yang sesuai dari yang diperoleh : 4

Dokumen yang sesuai dari seluruh dokumen : 7

Terdapat 3 dokumen relevan yang tidak dapat ditemukan kembali, yang

pertama yaitu pasal 56 UU No. 19 Tahun 2002 yang disajikan pada gambar 5.4

berikut ini :

Gambar 5.4 Pasal 56 UU No. 19 Tahun 2002

Dokumen pertama pada gambar 5.4 tersebut tidak ditemukan karena

dokumen tersebut hanya mengandung kata “perbanyak” dan “karya” saja maka

tereliminasi oleh operasi AND. Kemudian dokumen yang kedua yaitu pasal 57

UU No. 19 Tahun 2002 yang disajikan pada gambar 5.5 berikut ini :

Gambar 5.5 Pasal 57 UU No. 19 Tahun 2002

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

131

Dokumen kedua pada gambar 5.5 tersebut tidak ditemukan karena tidak

mengandung kata yang sama dengan kata kunci tetapi memiliki makna yang mirip

dengan kata kunci. Kemudian dokumen yang ketiga yaitu pasal 72 UU No. 19

Tahun 2002 yang disajikan pada gambar 5.6 berikut ini :

Gambar 5.6 Pasal 7.2 UU No. 19 Tahun 2002

Dokumen ketiga pada gambar 5.6 tersebut tidak dapat ditemukan sistem

karena hanya mengandung kata “perbanyak” maka tereliminasi oleh operasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

132

AND, tetapi dokumen tersebut bersangkutan dengan pasal 49 yang relevan dengan

kata kunci. Berikut ini pada gambar 5.7 merupakan output uji coba kedua query to

document :

Gambar 5.7 Output Uji Coba Kedua Query to Document

Output uji coba kedua pada gambar 5.7 menampilkan 6 dokumen pasal yang

dapat ditemukan kembali oleh sistem. Selanjutnya, dari keenam dokumen pasal

tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.4 merupakan

hasil penentuan relevansi dari dokumen yang diperoleh :

Tabel 5.4 Relevansi Uji Coba Kedua Query to Document

No. Urut Id_Pasal Relevansi

1. 2002_19_049 V

2. 1997_12_001 V

3. 2002_19_002 X

4. 2002_19_010 V

5. 2002_19_001 X

6. 2002_19_016 V

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

133

Berdasarkan tabel 5.4 terlihat bahwa ada 2 dokumen yang tidak relevan yaitu

dokumen ke-3 dan ke-5 dan 4 dokumen sisanya relevan dengan kata kunci.

Setelah menentukan nilai relevansi dari masing-masing dokumen pasal pada tabel

5.4, maka langkah selanjutnya adalah menentukan nilai recall dan precision yang

terdapat pada tabel 5.5 berikut ini :

Tabel 5.5 Recall dan Precision Uji Coba Kedua Query to Document

No.Urut Id_Pasal Recall Precision

1 2002_19_049 0.142857 1

2 1997_12_001 0.285714 1

3 2002_19_002 0.285714 0.666667

4 2002_19_010 0.428571 0.75

5 2002_19_001 0.428571 0.6

6 2002_19_016 0.571429 0.666667

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.5 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.6 berikut ini :

Tabel 5.6 Interpolasi Uji Coba Kedua Query to Document

Recall Precision

0% 100%

10% 100%

20% 100%

30% 75%

40% 75%

50% 66%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

134

60% 0%

70% 0%

80% 0%

90% 0%

100% 0%

Pada gambar 5.4 berikut ini merupakan grafik dari hasil interpolasi pada tabel

5.6 :

Gambar 5.8 Recall Precision Uji Coba Kedua Query to Document

Pada gambar 5.8 garis yang dihasilkan masih jauh dari bentuk garis

horizontal yang artinya tingkat precision dari kata kunci pada uji coba kedua ini

kurang tepat. Sedangkan titik-titik yang berada di 0% pada sumbu X

menggambarkan bahwa ada dokumen yang relevan tetapi sistem tidak dapat

mendapatkannya kembali.

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

135

5.1.1.3. Uji Coba Ketiga Query to Document

Kata kunci sebelum operasi teks : penculikan anak

Kata kunci setelah operasi teks : culik anak

Dokumen yang diperoleh : 4

Dokumen yang sesuai dari yang diperoleh : 3

Dokumen yang sesuai dari seluruh dokumen : 4

Terdapat 1 dokumen relevan yang tidak dapat ditemukan kembali yaitu pasal

16 UU No. 23 Tahun 2002 yang disajikan pada gambar 5.9 berikut ini :

Gambar 5.9 Pasal 16 UU No. 23 Tahun 2002

Dokumen pada gambar 5.9 tersebut tidak dapat ditemukan kembali karena

hanya mengandung kata “anak” maka tereliminasi oleh operasi AND tetapi

terdapat kata “penahanan” dan “penangkapan” yang memiliki makna mirip

(sinonim) dengan kata “culik”. Berikut ini pada Gambar 5.10 merupakan output

uji coba ketiga query to document :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

136

Gambar 5.10 Output Uji Coba Ketiga Query to Document

Output uji coba pertama pada gambar 5.10 menampilkan 4 dokumen pasal

yang dapat ditemukan kembali oleh sistem. Selanjutnya, dari kelima dokumen

pasal tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.7

merupakan hasil penentuan relevansi dari dokumen yang diperoleh :

Tabel 5.7 Relevansi Uji Coba Ketiga Query to Document

No. Urut Id_Pasal Relevansi

1. 2002_23_068 V

2. 2002_23_001 X

3. 2002_23_059 V

4. 2002_23_078 V

Berdasarkan tabel 5.7 terlihat bahwa ada 1 dokumen yang tidak relevan yaitu

dokumen ke-2 dan 3 dokumen sisanya relevan dengan kata kunci. Setelah

menentukan nilai relevansi dari masing-masing dokumen pasal pada tabel 5.7,

maka langkah selanjutnya adalah menentukan nilai recall dan precision yang

terdapat pada tabel 5.8 berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

137

Tabel 5.8 Recall dan Precision Uji Coba Ketiga Query to Document

No. Urut Id_Pasal Recall Precision

1 2002_23_068 0.25 1

2 2002_23_001 0.25 0.5

3 2002_23_059 0.5 0.666667

4 2002_23_078 0.75 0.75

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.8 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.9 berikut ini :

Tabel 5.9 Interpolasi Uji Coba Ketiga Query to Document

Recall Precision

0% 100%

10% 100%

20% 100%

30% 75%

40% 75%

50% 75%

60% 75%

70% 75%

80% 0%

90% 0%

100% 0%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

138

Pada gambar 5.6 berikut ini merupakan grafik dari hasil interpolasi pada tabel

5.9 :

Gambar 5.11 Recall Precision Uji Coba Ketiga Query to Document

Pada gambar 5.11 garis yang dihasilkan jauh dari bentuk garis horizontal

yang artinya tingkat precision dari dokumen kasus yang diperoleh dengan kata

kunci uji coba ketiga ini kurang tepat. Sedangkan titik-titik yang berada di 0%

pada sumbu X menggambarkan bahwa ada dokumen yang relevan tetapi sistem

tidak dapat mendapatkannya kembali.

5.1.1.4. Uji Coba Keempat Query to Document

Kata kunci sebelum operasi teks : mengancam melalui elektronik

Kata kunci setelah operasi teks : ancam elektronik

Dokumen yang diperoleh : 3

Dokumen yang sesuai dari yang diperoleh : 2

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

139

Dokumen yang sesuai dari seluruh dokumen : 3

Terdapat 1 dokumen relevan yang tidak dapat ditemukan kembali yaitu pasal

45 UU No. 11 Tahun 2008 yang disajikan pada gambar 5.12 berikut ini :

Gambar 5.12 Pasal 45 UU No. 11 Tahun 2008

Dokumen pada gambar 5.12 tersebut tidak dapat ditemukan kembali karena

tidak mengandung kata yang sama dengan kata kunci, tetapi dokumen tersebut

bersangkutan dengan pasal 29 yang sesuai dengan kata kunci. Berikut ini pada

gambar 5.13 merupakan output uji coba keempat query to document :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

140

Gambar 5.13 Output Uji Coba Keempat Query to Document

Output uji coba keempat pada Gambar 5.13 menampilkan 3 dokumen pasal

yang dapat ditemukan kembali oleh sistem. Selanjutnya, dari ketiga dokumen

pasal tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.10

merupakan hasil penentuan relevansi dari dokumen yang diperoleh :

Tabel 5.10 Relevansi Uji Coba Keempat Query to Document

No. Urut Id_Pasal Relevansi

1. 2008_11_029 V

2. 2008_11_052 V

3. 1999_40_001 X

Berdasarkan tabel 5.10 terlihat bahwa ada 1 dokumen yang tidak relevan

yaitu dokumen ke-3 dan 2 dokumen sisanya relevan dengan kata kunci. Setelah

menentukan nilai relevansi dari masing-masing dokumen pasal pada tabel 5.10,

maka langkah selanjutnya adalah menentukan nilai recall dan precision yang

terdapat pada tabel 5.11 berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

141

Tabel 5.11 Recall dan Precision Uji Coba Keempat Query to Document

No. Urut Id_Pasal Recall Precision

1 2002_23_071 0.333333 1

2 2002_23_013 0.666667 1

3 2002_23_077 0.666667 0.666667

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.11 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.12 berikut ini :

Tabel 5.12 Interpolasi Uji Coba Keempat Query to Document

Recall Precision

0% 100%

10% 100%

20% 100%

30% 100%

40% 100%

50% 100%

60% 100%

70% 0%

80% 0%

90% 0%

100% 0%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

142

Pada gambar 5.8 berikut ini merupakan diagram garis dari hasil interpolasi

pada tabel 5.12 :

Gambar 5.14 Recall Precision Uji Coba Keempat Query to Document

Pada gambar 5.14 garis yang dihasilkan hampir menyerupai garis horizontal

(mendekati kanan atas) yang artinya hampir semua dokumen yang diperoleh

relevan dengan kata kunci. Sedangkan titik-titik yang berada di 0% pada sumbu X

mempunyai arti bahwa ada dokumen yang relevan tetapi sistem tidak dapat

mendapatkannya kembali.

5.1.1.5. Uji Coba Kelima Query to Document

Kata kunci sebelum operasi teks : produksi barang tidak sesuai dengan jaminan

Kata kunci setelah operasi teks : produksi barang jamin

Dokumen yang diperoleh : 7

Dokumen yang sesuai dari yang diperoleh : 4

Dokumen yang sesuai dari seluruh dokumen : 8

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

143

Terdapat 4 dokumen relevan yang tidak dapat ditemukan kembali, yang

pertama yaitu pasal 4 UU No.8 Tahun 1999 yang disajikan pada gambar 5.15

berikut ini :

Gambar 5.15 Pasal 4 UU No. 8 Tahun 1999

Dokumen pertama tidak dapat ditemukan kembali karena dokumen tersebut

hanya mengandung kata “barang” dan “jamin” maka tereliminasi oleh operasi

AND, tetapi memiliki makna yang sama. Kemudian dokumen kedua yaitu pasal

26 No. 8 Tahun 1999 yang disajikan pada gambar 5.16 berikut ini :

Gambar 5.16 Pasal 26 UU No. 8 tahun 1999

Dokumen kedua pada Gambar tersebut tidak dapat ditemukan kembali karena

hanya mengandung kata “jamin” maka tereliminasi oleh operasi AND, tetapi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

144

memiliki makna yang mirip dengan kata kunci. Kemudian dokumen ketiga yaitu

pasal 60 UU No. 8 Tahun 1999 yang disajikan pada gambar 5.17 berikut ini :

Gambar 5.17 Pasal 60 UU No. 8 Tahun 1999

Dokumen ketiga pada gambar 5.17 tersebut tidak dapat ditemukan kembali

karena tidak terdapat kata yang sama dengan kata kunci, tetapi dokumen tersebut

bersangkutan dengan pasal 25 yang merupakan dokumen relevan yang ditemukan

kembali dan pasal 26 yang merupakan dokumen relevan yang tidak dapat

ditemukan kembali. Kemudian dokumen yang keempat yaitu pasal 62 UU No. 8

Tahun 1999 yang disajikan pada gambar 5.18 berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

145

Gambar 5.18 Pasal 62 UU No. Tahun 1999

Dokumen keempat pada gambar 5.18 tersebut tidak dapat ditemukan kembali

karena tidak mengandung kata yang sama dengan kata kunci, tetapi dokumen

tersebut bersangkutan dengan pasal 17 dan 8 yang dapat ditemukan kembali dan

relevan dengan kata kunci. Berikut ini pada gambar 5.19 merupakan output uji

coba kelima query to document :

Gambar 5.19 Output Uji Coba Kelima Query to Document

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

146

Output uji coba pertama pada gambar 5.19 menampilkan 7 dokumen pasal

yang dapat ditemukan kembali oleh sistem. Selanjutnya, dari ketujuh dokumen

pasal tersebut akan ditentukan nilai relevansinya. Berikut ini pada tabel 5.13

merupakan hasil penentuan relevansi dari dokumen yang diperoleh :

Tabel 5.13 Relevansi Uji Coba Kelima Query to Document

No. Urut Id_Pasal Relevansi

1 1999_08_025 V

2 1999_08_007 V

3 1999_08_017 V

4 1999_08_008 V

5 1999_08_003 X

6 2009_35_009 X

7 1997_14_001 X

Berdasarkan tabel 5.13 terlihat bahwa ada 3 dokumen yang tidak relevan

yaitu dokumen ke-5, ke-6, ke-7 dan 4 dokumen sisanya relevan dengan kata

kunci. Setelah menentukan nilai relevansi dari masing-masing dokumen pasal

pada tabel 5.13, maka langkah selanjutnya adalah menentukan nilai recall dan

precision yang terdapat pada tabel 5.14 berikut ini :

Tabel 5.14 Recall dan Precision Uji Coba Kelima Query to Document

No. Urut Id_Pasal Recall Precision

1 1999_08_025 0.125 1

2 1999_08_007 0.25 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

147

3 1999_08_017 0.375 1

4 1999_08_008 0.5 1

5 1999_08_003 0.5 0.8

6 2009_35_009 0.5 0.666667

7 1997_14_001 0.5 0.571429

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.14 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.15 berikut ini :

Tabel 5.15 Interpolasi Uji Coba Kelima Query to Document

Recall Precision

0% 100%

10% 100%

20% 100%

30% 100%

40% 100%

50% 100%

60% 0%

70% 0%

80% 0%

90% 0%

100% 0%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

148

Pada gambar 5.20 berikut ini merupakan diagram garis dari hasil interpolasi

pada tabel 5.15 :

Gambar 5.20 Recall Precision Uji Coba Kelima Query to Document

Pada gambar 5.20 garis yang dihasilkan jauh dari bentuk garis horizontal

(mendekati kanan atas) yang artinya tingkat precision dari dokumen yang didapat

dan kata kunci tersebut kurang tepat yang disebabkan oleh adanya dokumen

relevan yang tidak dapat ditemukan kembali.

5.1.2. Hasil Uji Coba Document to Document

Berikut ini merupakan analisa dan pembahasan hasil uji coba dari sub

sistem document to document yang menggunakan dokumen kasus dengan judul :

1. “Korban Pembajakan Email Laporkan Kerugian Rp14 Miliar”

2. “Membakar Isteri Hingga Tewas, Terancam 15 Tahun Penjara”

3. “Setelah Manager BNI Gambir, Giliran Pemalsu Dokumen Diadili”

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

149

4. “Gara-Gara Uang Ceban, BI Digugat 125,34 Milyar”

5. “Terdakwa Kasus Chatting Facebook Ajukan Banding”

5.1.2.1. Uji Coba Pertama Document to Document

Judul kasus : “Korban Pembajakan Email Laporkan Kerugian Rp14 Miliar”

Kata kunci setelah operasi teks : elektronik tindak pidana badan pers

Dokumen yang diperoleh : 16

Dokumen yang sesuai dari yang diperoleh : 5

Dokumen yang sesuai dari seluruh dokumen : 5

Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem

document to document. Berikut ini pada gambar 5.21 merupakan output uji coba

pertama document to document :

Gambar 5.21 Output Uji Coba Pertama Document to Document

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

150

Pada hasil output gambar 5.21 tersebut terdapat 16 dokumen yang dapat

ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari

dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.16 merupakan hasil

penentuan relevansinya :

Tabel 5.16 Relevansi Uji Coba Pertama Document to Document

No.Urut Id_Kasus Relevansi

1 K150625_005 X

2 K150625_007 X

3 K150625_008 X

4 K150625_009 X

5 K150623_002 X

6 K150623_003 X

7 K150627_003 V

8 K150625_012 X

9 K150627_013 X

10 K150627_004 V

11 K150625_003 X

12 K150627_014 X

13 K150627_001 X

14 K150627_005 V

15 K150627_006 V

16 K150627_007 V

Berdasarkan tabel 5.16 terlihat bahwa ada 11 dokumen yang tidak relevan

yaitu dokumen ke-1,2,3,4,5,6,8,9,11,12,13 dan 5 dokumen sisanya relevan dengan

kata kunci. Setelah menentukan nilai relevansi dari masing-masing dokumen

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

151

kasus pada tabel 5.16, maka langkah selanjutnya adalah menentukan nilai recall

dan precision yang terdapat pada tabel 5.17 berikut ini :

Tabel 5.17 Recall dan Precision Uji Coba Pertama Document to Document

No.Urut Id_Kasus Recall Precision

1 K150625_005 0 0

2 K150625_007 0 0

3 K150625_008 0 0

4 K150625_009 0 0

5 K150623_002 0 0

6 K150623_003 0 0

7 K150627_003 0.2 0.142857143

8 K150625_012 0.2 0.125

9 K150627_013 0.2 0.111111111

10 K150627_004 0.4 0.2

11 K150625_003 0.4 0.181818182

12 K150627_014 0.4 0.166666667

13 K150627_001 0.4 0.153846154

14 K150627_005 0.6 0.214285714

15 K150627_006 0.8 0.266666667

16 K150627_007 1 0.3125

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.17 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.18 berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

152

Tabel 5.18 Interpolasi Uji Coba Pertama Document to Document

Recall Precision

0% 31%

10% 31%

20% 31%

30% 31%

40% 31%

50% 31%

60% 31%

70% 31%

80% 31%

90% 31%

100% 31%

Pada gambar 5.22 berikut ini merupakan grafik dari hasil interpolasi pada

tabel 5.18 :

Gambar 5.22 Recall Precision Uji Coba Pertama Document to Document

0%

5%

10%

15%

20%

25%

30%

35%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

153

Pada gambar 5.22 garis yang dihasilkan merupakan garis horizontal yang

artinya nilai precision dari dokumen yang didapat dan kata kunci tersebut sudah

baik.

5.1.2.2. Uji Coba Kedua Document to Document

Judul kasus : “Membakar Isteri Hingga Tewas, Terancam 15 Tahun

Penjara”

Kata kunci setelah operasi teks : kekerasan rumah tangga pengadilan

Dokumen yang diperoleh : 8

Dokumen yang sesuai dari yang diperoleh : 6

Dokumen yang sesuai dari seluruh dokumen : 6

Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem

document to document. Berikut ini pada gambar 5.23 merupakan output uji coba

kedua document to document :

Gambar 5.23 Output Uji Coba Kedua Document to Document

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

154

Pada hasil output gambar 5.23 tersebut terdapat 8 dokumen yang dapat

ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari

dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.19 merupakan hasil

penentuan relevansinya :

Tabel 5.19 Relevansi Uji Coba Kedua Document to Document

No. Urut Id_Kasus Relevansi

1. K150625_015 V

2. K150625_016 V

3. K150627_013 X

4. K150625_017 V

5. K150627_008 V

6. K150627_014 X

7. K150627_009 V

8. K150627_016 V

Berdasarkan tabel 5.19 terlihat bahwa ada 2 dokumen yang tidak relevan

yaitu dokumen ke-3 dan ke-6 dan 6 dokumen sisanya relevan dengan kata kunci.

Setelah menentukan nilai relevansi dari masing-masing dokumen kasus pada tabel

5.19, maka langkah selanjutnya adalah menentukan nilai recall dan precision

yang terdapat pada tabel 5.20 berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

155

Tabel 5.20 Recall dan Precision Uji Coba Kedua Document to Document

No. Urut Id_Kasus Recall Precision

1. K150625_015 0.166667 1

2. K150625_016 0.333333 1

3. K150627_013 0.333333 0.666667

4. K150625_017 0.5 0.75

5. K150627_008 0.666667 0.8

6. K150627_014 0.666667 0.666667

7. K150627_009 0.833333 0.714286

8. K150627_016 1 0.75

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.20 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.21 berikut ini :

Tabel 5.21 Interpolasi Uji Coba Kedua Document to Document

Recall Precision

0% 100%

10% 100%

20% 100%

30% 100%

40% 80%

50% 80%

60% 80%

70% 75%

80% 75%

90% 75%

100% 75%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

156

Pada gambar 5.24 berikut ini merupakan grafik dari hasil interpolasi pada

tabel 5.21 :

Gambar 5.24 Recall Precision Uji Coba Kedua Document to Document

Pada gambar 5.24 garis yang dihasilkan hampir menyerupai bentuk garis

horizontal (mendekati kanan atas) yang artinya tingkat precision dari dokumen

yang didapat dan kata kunci tersebut cukup baik.

5.1.2.3. Uji Coba Ketiga Document to Document

Judul kasus : “Setelah Manager BNI Gambir, Giliran Pemalsu

Dokumen Diadili”

Kata kunci setelah operasi teks : korupsi

Dokumen yang diperoleh : 8

Dokumen yang sesuai dari yang diperoleh : 8

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

157

Dokumen yang sesuai dari seluruh dokumen : 8

Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem

document to document. Berikut ini pada gambar 5.25 merupakan output uji coba

ketiga document to document :

Gambar 5.25 Output Uji Coba Ketiga Document to Document

Pada hasil output gambar 5.25 tersebut terdapat 8 dokumen yang dapat

ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari

dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.22 merupakan hasil

penentuan relevansinya :

Tabel 5.22 Relevansi Uji Coba Ketiga Document to Document

No. Urut Id_Kasus Relevansi

1 K150625_005 V

2 K150625_007 V

3 K150625_008 V

4 K150625_009 V

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

158

5 K150625_012 V

6 K150627_013 V

7 K150627_014 V

8 K150627_001 V

Berdasarkan tabel 5.22 terlihat bahwa 8 dokumen yang ditemukan

merupakan dokumen yang relevan dengan kata kunci. Setelah menentukan nilai

relevansi dari masing-masing dokumen kasus pada tabel 5.22, maka langkah

selanjutnya adalah menentukan nilai recall dan precision yang terdapat pada tabel

5.23 berikut ini :

Tabel 5.23 Recall dan Precision Uji Coba Ketiga Document to Document

No. Urut Id_Kasus Recall Precision

1 K150625_005 0.125 1

2 K150625_007 0.25 1

3 K150625_008 0.375 1

4 K150625_009 0.5 1

5 K150625_012 0.625 1

6 K150627_013 0.75 1

7 K150627_014 0.875 1

8 K150627_001 1 1

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.23 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.24 berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

159

Tabel 5.24 Interpolasi Uji Coba Ketiga Document to Document

Recall Precision

0% 100%

10% 100%

20% 100%

30% 100%

40% 100%

50% 100%

60% 100%

70% 100%

80% 100%

90% 100%

100% 100%

Pada gambar 5.26 berikut ini merupakan grafik dari hasil interpolasi pada

tabel 5.24 :

Gambar 5.26 Recall Precision Uji Coba Ketiga Document to Document

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

160

Pada gambar 5.26 garis yang dihasilkan sesuai dengan bentuk garis

horizontal yang artinya tingkat precision dari dokumen kasus yang diperoleh

dengan kata kunci ini baik.

5.1.2.4. Uji Coba Keempat Document to Document

Judul kasus : “Gara-Gara Uang Ceban, BI Digugat 125,34 Milyar”

Kata kunci setelah operasi teks : pengadilan tindak pidana hak cipta

elektronik sosial

Dokumen yang diperoleh : 18

Dokumen yang sesuai dari yang diperoleh : 4

Dokumen yang sesuai dari seluruh dokumen : 4

Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem

document to document. Berikut ini pada gambar 5.27 merupakan output uji coba

keempat document to document :

Gambar 5.27 Output Uji Coba Keempat Document to Document

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

161

Pada hasil output Gambar 5.27 tersebut terdapat 18 dokumen yang dapat

ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari

dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.25 merupakan hasil

penentuan relevansinya :

Tabel 5.25 Precision Uji Coba Keempat Document to Document

No. Urut Id_Kasus Relevansi

1 K150627_003 V

2 K150625_005 X

3 K150627_013 X

4 K150625_014 V

5 K150627_014 X

6 K150625_007 X

7 K150627_010 V

8 K150625_008 X

9 K150627_012 V

10 K150625_009 X

11 K150625_004 X

12 K150623_003 X

13 K150625_012 X

14 K150627_004 X

15 K150627_001 X

16 K150627_005 X

17 K150627_006 X

18 K150627_007 X

Berdasarkan tabel 5.25 terlihat bahwa ada 4 dokumen yang relevan yaitu

dokumen ke-1,4,7,9 dan 14 dokumen sisanya tidak relevan dengan kata kunci.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

162

Setelah menentukan nilai relevansi dari masing-masing dokumen kasus pada

Tabel 5.25, maka langkah selanjutnya adalah menentukan nilai recall dan

precision yang terdapat pada tabel 5.26 berikut ini :

Tabel 5.26 Recall dan Precision Uji Coba Keempat Document to Document

No. Urut Id_Kasus Recall Precision

1 K150627_003 0.25 1

2 K150625_005 0.25 0.5

3 K150627_013 0.25 0.333333

4 K150625_014 0.5 0.5

5 K150627_014 0.5 0.4

6 K150625_007 0.5 0.333333

7 K150627_010 0.75 0.428571

8 K150625_008 0.75 0.375

9 K150627_012 1 0.444444

10 K150625_009 1 0.4

11 K150625_004 1 0.363636

12 K150623_003 1 0.333333

13 K150625_012 1 0.307692

14 K150627_004 1 0.285714

15 K150627_001 1 0.266667

16 K150627_005 1 0.25

17 K150627_006 1 0.235294

18 K150627_007 1 0.222222

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.26 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.27 berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

163

Tabel 5.27 Interpolasi Uji Coba Keempat Document to Document

Recall Precision

0% 100%

10% 100%

20% 100%

30% 50%

40% 50%

50% 50%

60% 44%

70% 44%

80% 44%

90% 44%

100% 44%

Pada gambar 5.28 berikut ini merupakan grafik dari hasil interpolasi pada

Tabel 5.27 :

Gambar 5.28 Recall Precision Uji Coba Keempat Document to Document

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

164

Pada gambar 5.28 garis yang dihasilkan hampir menyerupai bentuk garis

horizontal yang artinya tingkat precision dari dokumen kasus yang diperoleh

dengan kata kunci ini belum baik.

5.1.2.5. Uji Coba Kelima Document to Document

Judul kasus : “Terdakwa Kasus Chatting Facebook Ajukan Banding”

Kata kunci setelah operasi teks : pengadilan sosial tindak pidana

informasi transaksi elektronik umum

Dokumen yang diperoleh : 15

Dokumen yang sesuai dari yang diperoleh : 5

Dokumen yang sesuai dari seluruh dokumen : 5

Semua dokumen yang relevan dapat ditemukan kembali oleh sub sistem

document to document. Berikut ini pada gambar 5.29 merupakan output uji coba

kelima document to document :

Gambar 5.29 Output Uji Coba Kelima Document to Document

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

165

Pada hasil output gambar 5.29 tersebut terdapat 15 dokumen yang dapat

ditemukan kembali. Langkah berikutnya adalah menentukan relevansi dari

dokumen kasus yang telah ditemukan. Berikut ini pada tabel 5.28 merupakan hasil

penentuan relevansinya :

Tabel 5.28 Relevansi Uji Coba Kelima Document to Document

No. Urut Id_Kasus Relevansi

1 K150627_013 X

2 K150627_014 X

3 K150623_003 X

4 K150627_003 V

5 K150627_004 V

6 K150625_005 X

7 K150627_005 V

8 K150627_006 V

9 K150625_007 X

10 K150627_007 V

11 K150625_008 X

12 K150625_009 X

13 K150627_017 X

14 K150625_012 X

15 K150627_001 X

Berdasarkan tabel 5.28 terlihat bahwa ada 5 dokumen yang relevan yaitu

dokumen ke-4,5,7,8,10 dan 10 dokumen sisanya tidak relevan dengan kata kunci.

Setelah menentukan nilai relevansi dari masing-masing dokumen kasus pada tabel

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

166

5.28, maka langkah selanjutnya adalah menentukan nilai recall dan precision

yang terdapat pada tabel 5.29 berikut ini :

Tabel 5.29 Recall dan Precision Uji Coba Kelima Document to Document

No. Urut Id_Kasus Recall Precision

1 K150627_013 0 0

2 K150627_014 0 0

3 K150623_003 0 0

4 K150627_003 0.2 0.25

5 K150627_004 0.4 0.4

6 K150625_005 0.4 0.333333333

7 K150627_005 0.6 0.428571429

8 K150627_006 0.8 0.5

9 K150625_007 0.8 0.444444444

10 K150627_007 1 0.5

11 K150625_008 1 0.454545455

12 K150625_009 1 0.416666667

13 K150627_017 1 0.384615385

14 K150625_012 1 0.357142857

15 K150627_001 1 0.333333333

Kemudian dari hasil perhitungan recall dan precision pada tabel 5.29 dapat

dihitung 11 titik interpolasi yang terdapat pada tabel 5.30 berikut ini :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

167

Tabel 5.30 Interpolasi Uji Coba Kelima Document to Document

Recall Precision

0% 50%

10% 50%

20% 50%

30% 50%

40% 50%

50% 50%

60% 50%

70% 50%

80% 50%

90% 50%

100% 50%

Pada gambar 5.30 berikut ini merupakan diagram garis dari hasil interpolasi

pada tabel 5.30 :

Gambar 5.30 Recall Precision Uji Coba Kelima Document to Document

0%

10%

20%

30%

40%

50%

60%

1 2 3 4 5 6 7 8 9 10 11

Recall Precision

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

168

Pada gambar 5.30 garis yang dihasilkan merupakan bentuk garis horizontal

yang artinya tingkat precision dari dokumen kasus yang diperoleh dengan kata

kunci cukup baik.

5.1.3. Rata-Rata Precision

Rata-rata precision pada masing-masing sub sistem ditentukan dari hasil

perhitungan recall precision sebelum tahap interpolasi 11 titik.

5.1.3.1. Query to Document

Pada tabel 5.31 berikut ini merupakan rata-rata precision dari dokumen

yang relevan pada sub sistem query to document :

Tabel 5.31 Rata-Rata Precision dari Sub Sistem Query to Document

Precision

Uji Coba

Pertama

Precision

Uji Coba

Kedua

Precision

Uji Coba

Ketiga

Precision

Uji Coba

Keempat

Precision

Uji Coba

Kelima

1 1 1 1 1

1 1 0.66667 1 1

1 0.75 0.75 1

0.8 0.66667 1

Rata-rata 0.95 0.8542 0.8056 1 1

Total

Rata-rata 0.9219

Pada tabel 5.31 tersebut, recall precision dari dokumen yang tidak relevan

tidak diperhitungkan. Kemudian untuk mengetahui bentuk grafik dari rata-rata

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

169

precision pada sub sistem ini ditentukan dari hasil rata-rata perhitungan

interpolasi 11 titik dari kelima percobaan yang telah dilakukan. Pada tabel 5.32

berikut ini merupakan hasil perhitungan rata-rata interpolasi recall precision sub

sistem query to document :

Tabel 5.32 Rata-Rata Perhitungan Interpolasi Sub Sistem Query to Document

Recall p1 p2 p3 p4 p5 Rata-Rata

0% 100% 100% 100% 100% 100% 100%

10% 100% 100% 100% 100% 100% 100%

20% 100% 100% 100% 100% 100% 100%

30% 100% 75% 75% 100% 100% 90%

40% 100% 75% 75% 100% 100% 90%

50% 100% 66% 75% 100% 100% 88%

60% 100% 0% 75% 100% 0% 55%

70% 80% 0% 75% 0% 0% 31%

80% 80% 0% 0% 0% 0% 16%

90% 0% 0% 0% 0% 0% 0%

100% 0% 0% 0% 0% 0% 0%

Keterangan :

p1 = precision dari interpolasi 11 titik recall precision uji coba pertama

p2 = precision dari interpolasi 11 titik recall precision uji coba kedua

p3 = precision dari interpolasi 11 titik recall precision uji coba ketiga

p4 = precision dari interpolasi 11 titik recall precision uji coba keempat

p5 = precision dari interpolasi 11 titik recall precision uji coba kelima

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

170

Pada gambar 5.31 di bawah ini merupakan grafik dari rata-rata interpolasi

11 titik recall precision pada sub sistem query to document berdasarkan

perhitungan dari tabel 5.32 :

Gambar 5.31 Grafik Rata-Rata Interpolasi Sub Sistem Query to Document

Berdasarkan gambar 5.31 terlihat bahwa grafik rata-rata interpolasi 11 titik

recall precision sub sistem query to document ini membentuk garis ke arah kanan

atas. Semakin garis tersebut mengarah ke kanan atas dan hingga membentuk garis

horizontal, maka tingkat relevansi atau kecocokan dokumen yang dihasilkan dari

suatu sistem akan semakin baik. Nilai rata-rata precision dari dokumen relevan

yang dihasilkan pada sub sistem ini mencapai 0.9219.

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

p1

p2

p3

p4

p5

Rata-Rata

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

171

5.1.3.2. Document to Document

Pada tabel 5.33 berikut ini merupakan hasil perhitungan rata-rata

precision dari dokumen yang relevan sub sistem document to document :

Tabel 5.33 Rata-Rata Precision dari Sub Sistem Document to Document

Precision

Percobaan

Pertama

Precision

Percobaan

Kedua

Precision

Percobaan

Ketiga

Precision

Percobaan

Keempat

Precision

Percobaan

Kelima

0.143 1 1 1 0.25

0.2 1 1 0.5 0.4

0.214 0.75 1 0.429 0.429

0.267 0.8 1 0.444 0.5

0.313 0.714 1 0.5

0.75 1

1

1

Rata-rata 0.227 0.8357 1 0.59325 0.4157

Total

Rata-rata 0.614

Pada tabel 5.33 tersebut, recall precision dari dokumen yang tidak relevan

tidak diperhitungkan. Kemudian untuk mengetahui bentuk grafik dari rata-rata

precision pada sub sistem ini ditentukan dari hasil rata-rata perhitungan

interpolasi 11 titik dari kelima percobaan yang telah dilakukan. Pada tabel 5.34

berikut ini merupakan hasil perhitungan rata-rata interpolasi recall precision sub

sistem document to document :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

172

Tabel 5.34 Rata-Rata Perhitungan Interpolasi Sub Sistem Document to

Document

Recall p1 p2 p3 p4 p5 Rata-Rata

0% 31% 100% 100% 100% 50% 76%

10% 31% 100% 100% 100% 50% 76%

20% 31% 100% 100% 100% 50% 76%

30% 31% 100% 100% 50% 50% 66%

40% 31% 80% 100% 50% 50% 62%

50% 31% 80% 100% 50% 50% 62%

60% 31% 80% 100% 44% 50% 61%

70% 31% 75% 100% 44% 50% 60%

80% 31% 75% 100% 44% 50% 60%

90% 31% 75% 100% 44% 50% 60%

100% 31% 75% 100% 44% 50% 60%

Keterangan :

p1 = precision dari interpolasi 11 titik recall precision uji coba pertama

p2 = precision dari interpolasi 11 titik recall precision uji coba kedua

p3 = precision dari interpolasi 11 titik recall precision uji coba ketiga

p4 = precision dari interpolasi 11 titik recall precision uji coba keempat

p5 = precision dari interpolasi 11 titik recall precision uji coba kelima

Pada gambar 5.32 di bawah ini merupakan grafik dari rata-rata interpolasi

11 titik recall precision pada sub sistem document to document berdasarkan

perhitungan dari tabel 5.34 :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

173

Gambar 5.32 Grafik Rata-Rata Interpolasi Sub Sistem Document to Document

Berdasarkan gambar 5.32 terlihat bahwa grafik nilai rata-rata precision pada

11 titik untuk sub sistem document to document ini membentuk garis ke arah

kanan atas hampir menyerupai garis horizontal. Semakin garis tersebut mengarah

ke kanan atas dan hingga membentuk garis horizontal, maka tingkat relevansi atau

kecocokan dokumen yang dihasilkan dari suatu sistem akan semakin baik. Nilai

rata-rata precision dari dokumen relevan yang dihasilkan pada sub sistem ini

mencapai 0.614.

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

p1

p2

p3

p4

p5

Rata-Rata

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

174

Pada tabel 5.35 berikut ini merupakan perbandingan rata-rata precision

antara sub sistem query to document dan document to document :

Tabel 5.35 Rata-Rata Precision Kedua Sub Sistem

Rata-Rata tersebut merupakan rata-rata hasil interpolasi dari tabel 5.32 dan 5.34.

Recall Rata-Rata Precision dari

Query to Document

Rata-Rata Precision dari

Document to Document

0% 100% 76%

10% 100% 76%

20% 100% 76%

30% 90% 66%

40% 90% 62%

50% 88% 62%

60% 55% 61%

70% 31% 60%

80% 16% 60%

90% 0% 60%

100% 0% 60%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

175

Berdasarkan tabel 5.35 dapat diimplementasikan menjadi grafik pada

gambar 5.33 berikut ini :

Gambar 5.33 Grafik Rata-Rata Precision Kedua Sub Sistem

Pada gambar 5.33 tersebut terlihat bahwa grafik rata-rata precision sub

system query to document lebih baik daripada document to document karena garis

yang terbentuk lebih tinggi dari garis rata-rata precision sub sistem document to

documen. Nilai rata-rata precision dari sub sistem query to document mencapai

0.9219 dan sub sistem document to document mencapai 0.614.

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11

Rata-Rata Precisiondari Query toDocument

Rata-Rata Precisiondari Document toDocument

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

176

5.2. Kelebihan dan Kekurangan Sistem

5.2.1. Kelebihan Sistem

Kelebihan dari Sistem Pemerolehan Informasi Undang-Undang dan Kasus

adalah sebagai berikut :

1. Sistem ini terdiri dari 2 sub sistem pencarian yaitu query to document dan

document to document. Dimana kata kunci tidak hanya berupa query tetapi

juga bisa menggunakan dokumen (.txt).

5.2.2. Kekurangan Sistem

Kekurangan dari Sistem Pemerolehan Informasi Undang-Undang dan Kasus

adalah :

1. Pada sub sistem query to document terdapat dokumen relevan yang tidak

dapat ditemukan kembali oleh sistem.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

177

BAB VI

KESIMPULAN DAN SARAN

6.1. Kesimpulan

Bab ini membahas mengenai kesimpulan hasil uji coba dari dua sub sistem

(query to document dan document to document) pada Sistem Pemerolehan

Informasi Undang-Undang dan Kasus.

1. Query to Document

- Konsep pemerolehan informasi pada sub sistem ini telah berhasil

diterapkan dengan cara melakukan pencocokan term terhadap dokumen

pasal setelah melewati tahap stopwords dan stemming.

- Penggunaan pembobotan TF-IDF terbukti efektif dengan menghasilkan

tingkat relevansi 11 titik recall precision yang cukup baik, dimana garis

pada grafik recall precision mendekati kanan atas. Nilai rata-rata

precision dari dokumen yang relevan mencapai 0.9219.

2. Document to Document

- Konsep pemerolehan informasi pada sub sistem ini telah berhasil

diterapkan dengan cara melakukan pencocokan term yang sesuai

dengan Kamus_Hukum yang merupakan isi tentang pada Undang-

Undang.

- Penggunaan pembobotan TF-IDF terbukti efektif pada sub sistem ini

dengan menghasilkan tingkat relevansi 11 titik recall precision yang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

178

178

baik, dimana garis pada grafik recall precision mendekati kanan atas.

Nilai rata-rata precision dari dokumen yang relevan mencapai 0.614.

6.2. Saran

Berdasarkan hasil pengujian yang sudah dilakukan dapat dilihat bahwa

sistem masih memiliki kekurangan. Maka saran yang mungkin dapat berguna

untuk penelitian selanjutnya yaitu pada sub sistem query to document perlu

adanya tambahan proses lagi dengan melakukan operasi OR pada output hasil

pencarian operasi AND agar sistem dapat menemukan kembali dokumen pasal

relevan yang hanya mencantumkan nama pasal relevan yang berhasil ditemukan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

179

DAFTAR PUSTAKA

Agusta, Ledy. (2009). Perbandingan Algoritma Stemming Porter dengan

Algoritma Nazief & Adriani untuk Stemming Dokumen Teks Bahasa

Indonesia. Jurnal Konferensi Nasional Sistem dan Informatika 2009, Bali.

Adendrata, Adrian. (2013). Sistem Pemerolehan Informasi Data Gambar pada

Dokumen Fotografi Menggunakan Struktur Data Inverted Index dan

Pembobotan TF-IDF. Universitas Sanata Dharma, Yogyakarta.

Baeza-Yates, R., Ribeiro-Neto, B. (1999). Modern Information Retrieval the

Concepts and Technology Behind Search. England: A division of the

association for Computing Machinary.

Büttcher, Stefan., Clarke, L.A Charles., Cormack, V. Gordon. (2010). Information

Retrieval Implementing and Evaluating Search Engines. USA:

Massachusetts Institute of Technology.

Croft, Bruce W., Metzler, Donald., Strohman, Trevor. (2010). Search Engines

Information Retrieval in Practice. USA: University of Massachusetts,

Amherst. Pearson Education USA.

Deitel, M. Harvey., & Deitel, J. Paul. (2004). Java How to Program. USA:

Prentice-Hall, Inc. Upper Saddle River, NJ (6th edition).

E.Utrecht, Saleh Djindang, Moh, (1983). Pengantar Dalam Hukum Indonesia,

Cetakan Kesebelas, Penerbit PT.Ichtiar Baru, Jakarta.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

180

Göker, Ayşe., & Davies, John. (2009). Information Retrieval Searching in the 21st

Century. UK: John Wiley & Sons, Ltd, The Atrium, Southern Gate,

Chichester, West Sussex, PO19 8SQ.

Grossman, David A., & Frieder, Ophir. (2004). Information Retrieval Alhorithms

and Heuristics. USA: Illinois Institute of Technology Chicago.

Hasibuan, Zainal A., & Andri, Yofi. (2001). Penerapan Berbagai Teknik Sistem

Temu-Kembali Informasi Berbasis Hiperteks. Jurnal Ilmu Komputer dan

Teknologi Informasi, Volume 1, Nomor 2.

Ingwersen, Peter. (2002). Information Retrieval Interaction. Denmark: Royal

School of Library and Information Science.

Manning, Christopher, D., Raghavan, Prabhakar., Schütze, Hinrich. (2008).

Introduction to Information Retrieval. England: Cambridge University

Press.

Netmeh, Brian A., Dickey, Thomas E., Wartik, Steven P. (1989). Traceability

Technology at the Software Productivity Consortium.

Rapar, J. H. (2002). Filsafat Politik. Jakarta: PT Raja Grafindo Persada.

Wulandari S., Justina. (2013). Sistem Pemerolehan Informasi Makalah Ilmiah

Berbahasa Indonesia Menggunakan Struktur Data Inverted Index dengan

Metode Pembobotan TF-IDF Berbasis ORDBMS. Universitas Sanata

Dharma, Yogyakarta.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

181

Lampiran

Kode Program

Package Inverted Index

1. Kode Program Kelas Document :

2. Kode Program Kelas Term :

package inverted_index;

public class Document implements Comparable {

protected String document;

public Document(String pDocument) {

document = pDocument;

}

public String getDocument() {

return document;

}

public int compareTo(Object o) {

return document.compareTo(((Document) o).getDocument());

}

public String toString() {

return document;

}

}

package inverted_index;

public class Term implements Comparable {

private String term;

protected LinkedListOrderedUnique<Document> postinglist;

public Term(String pTerm) {

term = pTerm;

}

public String getTerm() {

return term;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

182

3. Kode Program Kelas InvertedIndex :

public LinkedListOrderedUnique<Document> getPostinglist() {

return postinglist;

}

public int compareTo(Object o) {

return term.compareTo(((Term) o).getTerm());

}

@Override

public String toString() {

String temp = term + " => ";

temp = temp + postinglist.toString();

return temp;

}

}

package inverted_index;

public class Term implements Comparable {

private String term;

protected LinkedListOrderedUnique<Document> postinglist;

public Term(String pTerm) {

term = pTerm;

}

public String getTerm() {

return term;

}

public LinkedListOrderedUnique<Document> getPostinglist() {

return postinglist;

}

public int compareTo(Object o) {

return term.compareTo(((Term) o).getTerm());

}

@Override

public String toString() {

String temp = term + " => ";

temp = temp + postinglist.toString();

return temp;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

183

4. Kode Program Kelas LinkedListOrderedUnique :

package inverted_index;

import java.util.LinkedList;

import java.util.ListIterator;

public class LinkedListOrderedUnique<E> extends LinkedList<E> {

public boolean addSort(E e) {

ListIterator<E> iterator = this.listIterator(); //ngambil

dari dirinya sendiri

while (iterator.hasNext()) {

E temp = iterator.next();//temp bertipe E karena

menggunakan general, jika tidak maka pake Object

if (((Comparable) temp).compareTo(e) > 0) {

iterator.previous();

iterator.add(e);

return true;

} else if (((Comparable) temp).compareTo(e) == 0) {

return true;

}

}

iterator.add(e);

return true;

}

public E get(E e) {

ListIterator<E> iterator = this.listIterator();

while (iterator.hasNext()) {

E temp = iterator.next();

if (((Comparable) temp).compareTo(e) == 0) {

return temp;

}

}

return null;

}

public String toString() {

String temp = "";

ListIterator<E> iterator = this.listIterator();

while (iterator.hasNext()) {

temp = temp + iterator.next() + "\n ";

}

return temp;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI