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.
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.
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
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
vi
HALAMAN MOTO
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.
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.
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.
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.
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
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
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
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
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
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
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
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
xxi
xxii
DAFTAR TABEL
xxiii
xxiv
xxv
DAFTAR KODE PROGRAM
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
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.
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
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 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
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. :
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.
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
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.
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
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).
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 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 :
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)
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
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. :
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 :
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=
Ma dan nidfj =
m dfj
..…. (2.3)
Keterangan :
 Wij adalah bobot istilah Tj pada dokumen Di.
 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
mengukur seberapa baik sistem tersebut menolak atau mengeliminasi dokumen-dokumen yang tidak relevan (Croft-Metzler-Strohman, 2010).
������ = a a a a a .… (2.4)
� ��� � = a a a
20 BAB III
3. ANALISIS DAN PERANCANGAN
3.1. Gambaran Umum Sistem
Sistem yang dirancang ini terdiri dari dua sub sistem berbeda, yaitu pencarian query to document dan pencarian document to document. Sub sistem pencarian query to document berfungsi untuk mencari pasal-pasal yang terkait dengan kasus pelanggaran hukum, dimana input berupa query. Sedangkan sub sistem pencarian document to document berfungsi untuk mencari pasal dan kasus-kasus yang mirip dengan kasus-kasus yang baru terjadi, dimana input berupa dokumen kasus berekstensi .txt.
Pada gambar 3.1. berikut ini merupakan gambaran dari sub sistem pencarian query to document :
Pengguna Administrator
ke tabel Kamus_Hukum Memasukan dok pasal (.txt)
Simpan id_pasal, tentang, dok_pasal, status ke tabel Pasal
Simpan id_term, term, df_j, nidf_j ke tabel Term_Pasal
Gambar 3.1 Sub Sistem Pencarian Query to Document
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.
Selanjutnya, pada gambar 3.2. berikut ini ini merupakan gambaran dari sub sistem pencarian document to document :
Pengguna Administrator Yang berada dit abel Kamus_Hukum
Operasi OR
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
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.
3.1.1. Perancangan Struktur Data Inverted Index
Pada gambar 3.3 berikut ini merupakan model dari struktur data inverted index yang dibangun :
t
Gambar 3.3 Model Struktur Data Inverted Index
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 :
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
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
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
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 :
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 :
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 :
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
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 :
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 :
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 :
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 :
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 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 :
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 :
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.
3.5. Perancangang Diagram Aktivitas
3.5.1. Diagram Aktivitas Login
Administrator dapat melakukan login berdasarkan username dan password yang sudah ditentukan, tetapi jika username dan passoword salah maka akan kembali ke halaman login.
Memasukkan username dan password.
Klik tombol Login Mengecek username dan password di tabel User.
Menampilkan
Form Tambah Dokumen. pesan peringatan
Administrator Sistem
benar salah
3.5.2. Diagram Aktivitas Menambah Dokumen Pasal
Administrator dapat menambahkan dokumen pasal (.txt) ke dalam tabel Pasal dengan memasukan tahun, nomor, pasal, tentang, dan file pasal (.txt).
Memilih tab Undang-Undang
Memilih tahun, nomor, pasal, dan tentang
Cari dokumen di folder untuk disimpan ke basis data
Klik tombol Simpan Menambahkan pasal yang baru
ke koleksi dokumen Undang-Undang
Administrator Sistem
3.5.3. Diagram Aktivitas Menambah Dokumen Kasus
Administrator dapat menambahkan dokumen kasus (.txt) ke dalam tabel Kasus dengan memasukan judul, dokumen kasus (.txt), dan pasal-pasal yang terkait pada Form Tambah Dokumen di kategori Kasus.
Memilih kategori Kasus
Klik tombol Simpan Menambahkan kasus yang baru
ke koleksi dokumen Kasus
Administrator Sistem
input data
Masukan judul, dokumen, dan pasal-pasal yang terkait
3.5.4. Diagram Aktivitas Mencari Pasal (Query to Document)
Pengguna dapat melakukan pencarian pasal berdasarkan query atau kata kunci yang diketikan langsung oleh pengguna. Kemudian sistem akan mencocokan kata kunci dengan kata-kata yang telah diindekskan.
Klik menu Pencarian Menampilkan Form Pencarian.
Pilih tab Undang-Undang
Masukan kata kunci yang diperlukan.
Klik tombol Cari Mencari pasal-pasal yang berhubungan dengan kata kunci yang dimasukkan oleh pengguna.
Pengguna Sistem
3.5.5. Diagram Aktivitas Mencari Kasus dan Pasal (Document to Document)
Pengguna dapat melakukan pencarian pasal berdasarkan dokumen kasus sebagai kata kunci. Sistem akan menampilkan dokumen kasus yang relevan dengan kata kunci serta pasal-pasal yang bersangkutan dengan kasus tersebut.
Klik menu Pencarian Menampilkan Form Pencarian
Pilih tab Kasus
Masukan dokumen kasus
Klik tombol Cari Mencari kasus-kasus yang berhubungan dengan Dokumen kasus yang dimasukkan oleh pengguna.
Pengguna Sistem
3.5.6. Diagram Aktivitas Melihat Isi Pasal
Pengguna dapat melihat isi pasal dengan memilih tahun, nomor, dan pasal pada Form Undang-Undang.
Klik menu Undang-Undang Sistem menampilkan Form Undang-Undang
Sistem menampilkan isi pasal yang terdapat dalam Undang-Undang Klik tombol Lihat
Pilih tahun, nomor, dan pasal
Pengguna Sistem
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.java Administrator
FormTambah Dokumen.java
3.6.2. Diagram Kolaborasi Menambah Dokumen Pasal
Pada use case ini melibatkan 7 kelas yaitu FormTambahDokumen.java sebagai kelas view, Control.java, StopwordsControl.java sebagai kelas controller, dan KamusHukum.java, Pasal.java, Hukum_Pasal.java, Stopwords.java sebagai kelas model. Pada gambar 3.14 berikut ini merupakan diagram kolaborasi dari use case Menambah Dokumen Pasal :
Administrator
FormTambah
Dokumen.java Control.java
Pasal.java Kamus_Hukum.java
Hukum_Pasal.java
Stopwords Control.java Stopwords.java
3.6.3. Diagram Kolaborasi Menambah Dokumen Kasus
Pada use case ini melibatkan 4 kelas yaitu FormTambahDokumen.java sebagai kelas view, Control.java sebagai kelas controller, dan Kasus.java, Kasus_Pasal.java sebagai kelas model. Pada gambar 3.15 berikut ini merupakan diagram kolaborasi dari use case Menambah Dokumen Kasus :
Administrator
FormTambah
Dokumen.java Control.java
Kasus_Pasal.java
Kasus.java
3.6.4. Diagram Kolaborasi Mencari Pasal (Query to Document)
Pada use case ini melibatkan 11 kelas yaitu FormUtama.java, FormPencarian.java sebagai kelas view, OperatorAND_OR.java, InvertedIndex.java, Control.java, StemmingBobbyNazief.java, StopwordsControl.java sebagai kelas controller, dan Term_Pasal.java, Indeks_Pasal.java, Stopwords.java, Pasal.java sebagai kelas model. Pada gambar 3.16 berikut ini merupakan diagram kolaborasi dari use case Mencari Pasal (Query to Document) :
Pengguna
FormUtama.java
Stopwords.java FormPencarian.java
InvertedIndex.java Operator
AND_OR.java Term_Pasal.java
Pasal.java
Indeks_Pasal.java
Stemming BobbyNazief.java Control.java
Stopwords Control.java
3.6.5. Diagram Kolaborasi Mencari Kasus dan Pasal (Document to
Document)
Pada use case ini melibatkan 10 kelas yaitu FormUtama.java, FormPencarian.java sebagai kelas view, OperatorAND_OR.java, InvertedIndex.java, Control.java, StemmingBobbyNazief.java, StopwordsControl.java sebagai kelas controller, dan Term_Kasus.java, Indeks_Kasus.java, Kamus_Hukum.java, Kasus.java sebagai kelas model. Pada gambar 3.17 berikut ini merupakan diagram kolaborasi dari use case Mencari Kasus dan Pasal (Document to Document) :
Pengguna
FormUtama.java
Kasus.java FormPencarian.java
InvertedIndex.java Operator
AND_OR.java Term_Kasus.java
Kamus_Hukum.java Indeks_Kasus.java
Control.java
Stopwords Control.java
3.6.6. Diagram Kolaborasi Melihat Isi Pasal
Pada use case ini melibatkan 4 kelas yaitu FormUtama.java, FormLihatUU.java sebagai kelas view, Control.java sebagai kelas controller, dan Pasal.java sebagai kelas model. Pada gambar 3.18 berikut ini merupakan diagram kolaborasi dari use case Melihat Isi Pasal :
FormLihatUU.java Pasal.java
FormUtama.java Control.java
Pengguna
54 3.7.1. Diagram Sekuensial Login
Sistem melakukan proses validasi dengan cara mencocolan username dan password ke table User, jika sesuai maka sistem akan menampilkan FormTambahDokumen. Pada gambar 3.19 berikut ini merupakan diagram sekuensial Login :
Administrator
<<interface>> FormUtama.java
<<interface>> FormLogin.java
<<controller>> LoginControl.java
<<model>> User.java
Klik menu Administrator
Memasukan username dan password
Klik tombol Masuk
CekLogin(String username)
setUsername(String)
String password
<<interface>> FormTambahDokumen.java
setVisible(true)
55
Administrator memilih tab Undang-Undang pada FormTambahDokumen kemudian memasukan dokumen pasal. Proses tersebut disajikan pada gambar 3.20 berikut ini :
Administrator
<<interface>> FormTambahDokumen.java
<<controller>> Control.java
<<model>> Kamus_Hukum.java
<<model>> Hukum_Pasal.java
<<model>> Pasal.java
Pilih tab Undang-Undang
Pilih tahun, nomor, pasal
Masukan tentang
Browse dokumen Di folder komputer
<<controller>> StopwordsControl
<<model>> Stopwords
56
yang disajikan pada gambar 3.21 berikut ini :
<<model>>
57
58
Pada gambar 3.23 berikut ini merupakan proses sistem melakukan penambahan dokumen pasal ke table Pasal :
<<model>>
59
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 Simpan
InsertKasus(Kasus k)
InsertKP(Kasus_Pasal kp)
60
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>>
61
Pada gambar 3.26 berikut ini merupakan proses operasi AND dan perhitungan DF_j dari kata yang telah didapat :
Pengguna
62
63
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
Pilih dokumen yang akan dibandingkan Klik tombol Cari
TF_IDF_OR(Control koneksi, InvertedIndexBasic ii, String cari)
setTermKasus(String)
64
serta pasal-pasal yang bersangkutan :
Pengguna
65
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 Lihat ListLihatPasal_thn
(String tahun)
setId_pasal(String)
List<Pasal> List<Pasal>
66 3.8.1. Desain Konseptual Basis Data
user stopwords
67 3.8.2. Desain Logikal Basis Data
stopwords
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
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
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
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 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
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
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
3.8. Perancangan Antarmuka
3.8.1. Desain Form Utama
Pada gambar 3.24 di bawah ini merupakan desain dari Form Utama :