Sistem pemerolehan informasi karya ilmiah berbasis Cluster dengan G-Means Clustering.

(1)

Dalam kurun waktu terakhir, pertambahan jumlah dokumen karya ilmiah berbahasa Indonesia meningkat sangat pesat. Tanpa ada pengubahan dalam sistem pemerolehan informasi, volume data yang meningkat dapat mengakibatkan turunnya performa sistem pemerolehan informasi, terutama dalam hal waktu retrieval.

Salah satu metode yang diusulkan untuk mempersingkat waktu retrieval adalah pengelompokan koleksi. Dalam tugas akhir ini, G-Means dipilih sebagai algoritma pemodelan cluster. Keuntungan implementasi G-Means adalah kemampuan algoritma ini untuk memilih jumlah cluster yang paling optimal.

Hasil pengelompokan koleksi kemudian diuji dalam lingkungan sistem pemerolehan informasi untuk melihat seberapa baik pengelompokan koleksi dalam mempersingkat waktu retrieval, dan seberapa besar pengaruhnya terhadap precision.

Data yang digunakan adalah karya ilmiah berbahasa Indonesia sebanyak 100 karya. Dari hasil pengujian, ditemukan bahwa waktu retrieval lebih singkat hingga 16,3%, dengan rerata waktu retrieval sebesar 12,88 detik dan precision sebesar 47%.


(2)

In recent years, Indonesian-written scientific papers grow significantly in term of number. Without any improvement in information retrieval systems, increasing data volume could lead to poor system performance, especially in its retrieval time.

One proposed method to improve retrieval time is collection clustering. G-Means was chosen for cluster modeling algorithm, as it can determine number of generated clusters automatically. Clustering collection results are tested in information retrieval system to find how significant

clustering can reduce retrieval time, and whether it has impact to system’s average precision.

We use 100 Indonesian scientific papers as collection. Based from the results, retrieval time gain 16.3% faster, with average retrieval time is about 12,88 seconds and average precision is about 47%.


(3)

CLUSTER DENGAN G-MEANS CLUSTERING

SKRIPSI

Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik Informatika (S.Kom.)

Program Studi Teknik Informatika

Disusun Oleh :

AGUSTINUS AGRI ARDYAN NIM : 125314109

PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA


(4)

THESIS

Presented as partial fulfillment of the requirements To obtain the Bachelor Degree of Computer (S.Kom.)

In Informatics Engineering

Written by :

AGUSTINUS AGRI ARDYAN NIM : 125314109

DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA


(5)

(6)

(7)

(8)

vi

HALAMAN MOTTO


(9)

vii

HALAMAN PERSEMBAHAN

Penelitian ini dipersembahkan untuk :

Allah Bapa, Putera dan Roh Kudus atas berkat dan bimbinganNya

Kedua orangtuaku, Mikael ‘Pae’ Santosa dan Fransiska ‘Ibuk’ Tasri Aryani yang dengan sabar selalu membimbing langkahku

Adikku, Philipus ‘Bro' Agri Adhiatma, yang selalu menghibur setiap saat

Teman-teman Teknik Informatika yang selalu suportif dan memberikan banyak sekali pengalaman dan ilmu baru.

Kepada segenap masyarakat yang terpanggil dan ikut berkontribusi dalam kemajuan ilmu pengetahuan.

Semoga penelitian ini bisa ikut memberikan kontribusi yang baik bagi ilmu pengetahuan. Amin.


(10)

viii

DAFTAR ISI

SISTEM PEMEROLEHAN INFORMASI KARYA ILMIAH BERBASIS

CLUSTER DENGAN G-MEANS CLUSTERING ... i

CLUSTER BASED INFORMATION RETRIEVAL SYSTEM FOR SCIENTIFIC PAPER RETRIEVAL USING G-MEANS CLUSTERING ... ii

HALAMAN PERSETUJUAN SKRIPSI ... iii

HALAMAN PENGESAHAN SKRIPSI ... iv

PERNYATAAN KEASLIAN KARYA ... v

HALAMAN MOTTO ... vi

HALAMAN PERSEMBAHAN ... vii

DAFTAR ISI ... viii

DAFTAR GAMBAR ... xii

DAFTAR TABEL ... xiv

DAFTAR PERSAMAAN ... xviii

ABSTRAK ... xix

ABSTRACT ... xx

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI... xxi

KATA PENGANTAR ... xxii

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 2

1.3. Tujuan Penelitian ... 2

1.4. Batasan Masalah ... 3

1.5. Metodologi Penelitian ... 3

1.6. Sistematika Penulisan ... 5

BAB II LANDASAN TEORI ... 7

2.1. Konsep Pemerolehan Informasi ... 7

2.1.1. Operasi Teks ... 7

2.1.1.1. Stopword ... 7

2.1.1.2. Stemming ... 7


(11)

ix

2.1.2. Term-Document Matrix ... 10

2.1.3. TF-IDF sebagai Metode Pembobotan ... 11

2.1.4. Evaluasi Pemerolehan Informasi ... 12

2.2. Konsep Pengelompokan Dokumen ... 12

2.2.1. Clustering dalam Pemerolehan Informasi... 12

2.2.2. Hipotesis Cluster ... 13

2.2.3. K-Means ... 13

2.2.4. G-Means ... 15

2.2.5. Evaluasi Cluster ... 18

2.2.5.1. Purity ... 18

BAB III ANALISIS DAN PERANCANGAN SISTEM ... 19

3.1. Analisis Sistem ... 19

3.1.1. Deskripsi Sistem ... 19

3.1.1.1. Sub Sistem Pengelompokan Dokumen ... 19

3.1.1.2. Sub Sistem Pencarian Dokumen ... 23

3.1.2. Data yang Digunakan ... 26

3.1.3. Analisis Kebutuhan Pengguna ... 26

3.2. Perancangan Sistem ... 26

3.2.1. Data Flow Diagram ... 26

3.2.1.1. Diagram Konteks ... 26

3.2.1.2. Overview DFD ... 27

3.2.1.3. DFD Level 2 ... 28

3.2.2. Diagram Berjenjang ... 30

3.2.3. Deskripsi Proses ... 30

3.2.3.1. Deskripsi Proses 1 : Pengelompokan Dokumen ... 30

3.2.3.2. Deskripsi Proses 2 : Pencarian Dokumen ... 31

3.2.4. Rancangan Basis Data ... 33

3.2.4.1. Desain Konseptual ... 33

3.2.4.2. Desain Logikal ... 33

3.2.4.3. Desain Fisikal ... 34

3.2.5. Rancangan Antarmuka Pengguna ... 37

3.2.5.1. Antarmuka Pengelompokan Dokumen ... 37


(12)

x

BAB IV IMPLEMENTASI SISTEM ... 38

4.1. Struktur Data ... 38

4.2. Implementasi Basis Data ... 39

4.3. Implementasi Pengelompokan Dokumen ... 39

4.3.1. Implementasi G-Means ... 39

4.4. Implementasi Pencarian Dokumen ... 48

4.4.1. Implementasi Preprocessing Query ... 48

4.4.2. Implementasi Pencarian Berbasis Cluster dan Konvensional ... 50

4.5. Implementasi Antarmuka Pengguna... 51

4.5.1. Implementasi Antarmuka Pengelompokan Dokumen ... 51

4.5.2. Implementasi Antarmuka Pencarian Dokumen ... 52

BAB V ANALISIS HASIL PENELITIAN ... 54

5.1. Analisis Hasil Sistem ... 54

5.1.1. Hasil Pengelompokan Dokumen ... 54

5.1.1.1. Purity ... 58

5.1.2. Hasil Pengujian Pencarian Dokumen berdasar Kueri Pengguna ... 59

5.1.2.1. Pencarian dengan query data i i g ... 59

5.1.2.2. Pencarian dengan query aï e ayes ... 64

5.1.2.3. Pencarian dengan query klasifikasi ... 68

5.1.2.4. Pencarian dengan query siste pe duku g keputusa ... 73

5.1.2.5. Pencarian dengan query jari ga ko puter ... 78

5.1.2.6. Pencarian dengan query data i i g e ggu aka k- ea s ... 82

5.1.2.7. Pencarian dengan query kesehata a usia ... 86

5.1.2.8. Pencarian dengan query diag osa pe yakit ... 90

5.1.2.9. Pencarian dengan query t p udp ... 94

5.1.2.10. Pencarian dengan query ireless ... 98

5.2. Pembahasan ... 102

5.2.1. Rerata Interpolasi 11 Titik Recall – Precision ... 102

5.2.1.1. Sistem Pemerolehan Informasi berbasis Cluster ... 102

5.2.1.2. Sistem Pemerolehan Informasi Konvensional ... 103

5.2.2. Waktu Eksekusi ... 105

5.3. Kelebihan dan Kekurangan Sistem ... 107


(13)

xi

5.3.2. Kekurangan Sistem ... 107

BAB VI KESIMPULAN DAN SARAN ... 108

6.1. Kesimpulan ... 108

6.2. Saran ... 108


(14)

xii

DAFTAR GAMBAR

Gambar 2.1. Visualisasi term-document matrix... 11

Gambar 2.2. Pseudocode algoritma K-Means (Manning et al, 2008) ... 13

Gambar 2.3. Visualisasi proses yang terjadi dalam algoritma K-Means (Manning et al, 2008) ... 14

Gambar 2.4. Visualisasi G-Means dalam suatu dataset 2 dimensi dengan 1000 point. Algoritma G-Means mencoba mencari normalitas dalam sebaran titik pada suatu cluster (Hamerly et al., 2004) ... 15

Gambar 3.1. Alur proses pengklusteran dokumen ... 20

Gambar 3.2. Alur proses pencarian dokumen ... 24

Gambar 3.3. Sistem Pemerolehan Informasi Konvensional (Baeza, 1999)... 25

Gambar 3.4. Sistem Pemerolehan Informasi Berbasis Cluster ... 25

Gambar 3.5. Diagram konteks dari sistem yang akan dibangun ... 26

Gambar 3.6. Overview DFD dari sistem yang akan dibangun ... 27

Gambar 3.7. DFD level 2 dari proses pengelompokan dokumen ... 28

Gambar 3.8. DFD level 2 dari proses pencarian dokumen ... 29

Gambar 3.9. Diagram berjenjang dari sistem yang akan dikembangkan ... 30

Gambar 3.10. ERD untuk sistem yang akan dibangun ... 33

Gambar 3.11. Model relasional untuk sistem yang akan dibangun ... 33

Gambar 3.12. Rancangan antarmuka pengguna untuk proses pengelompokan dokumen ... 37

Gambar 3.13. Rancangan antarmuka pengguna untuk proses pencarian dokumen ... 37

Gambar 4.1 Struktur data untuk term list yang menggunakan LinkedList dan document list yang menggunakan ArrayList ... 38

Gambar 4.2. Struktur data untuk master term list yang berupa HashMap ... 39

Gambar 4.3 Capture screen antarmuka subsistem pengelompokan dokumen (1) ... 51

Gambar 4.4. Capture screen antarmuka subsistem pengelompokan dokumen (2) ... 52

Gambar 4.5. Capture screen antarmuka subsistem pencarian dokumen ... 52

Gambar 4.6. Implementasi antarmuka pengguna subsistem pencarian dokumen berbasis cluster ... 53

Gambar 4.7. Implementasi antarmuka pengguna subsistem pencarian dokumen berbasis cluster ... 53

Gambar 5.1. Grafik interpolasi 11 titik recall precision terhadap query data i i g pada Sistem Pemerolehan Informasi berbasis Cluster ... 61

Gambar 5.2. Grafik interpolasi 11 titik recall precision terhadap query data i i g pada Sistem Pemerolehan Informasi Konvensional ... 64

Gambar 5.3. Grafik interpolasi 11 titik recall precision terhadap query aï e ayes pada Sistem Pemerolehan Informasi berbasis Cluster ... 66

Gambar 5.4. Grafik interpolasi 11 titik recall precision terhadap query aï e ayes pada Sistem Pemerolehan Informasi Konvensional ... 68


(15)

xiii

Gambar 5.5. Grafik interpolasi 11 titik recall precision terhadap query klasifikasi pada

Sistem Pemerolehan Informasi berbasis Cluster ... 70

Gambar 5.6. Grafik interpolasi 11 titik recall precision terhadap query klasifikasi pada Sistem Pemerolehan Informasi Konvensional ... 72

Gambar 5.7. Grafik interpolasi 11 titik recall precision terhadap query siste pe duku g keputusa pada “iste Pe eroleha I for asi er asis Cluster ... 75

Gambar 5.8. Grafik interpolasi 11 titik recall precision terhadap query siste pe duku g keputusa pada “iste Pe eroleha I formasi Konvensional ... 78

Gambar 5.9. Grafik interpolasi 11 titik recall precision terhadap query jari ga ko puter pada “iste Pe eroleha I for asi er asis Cluster ... 80

Gambar 5.10. Grafik interpolasi 11 titik recall precision terhadap query jari ga ko puter pada “iste Pe eroleha I for asi Ko e sio al ... 82

Gambar 5.11. Grafik interpolasi 11 titik recall precision terhadap query aï e ayes pada Sistem Pemerolehan Informasi berbasis Cluster ... 84

Gambar 5.12. Grafik interpolasi 11 titik recall precision terhadap query data i i g menggunakan k- ea s pada “iste Pe eroleha I for asi Ko e sio al ... 86

Gambar 5.13. Grafik interpolasi 11 titik recall precision terhadap query kesehata a usia pada “iste Pe eroleha I for asi er asis Cluster ... 88

Gambar 5.14. Grafik interpolasi 11 titik recall precision terhadap query aï e ayes pada Sistem Pemerolehan Informasi Konvensional ... 90

Gambar 5.15. Grafik interpolasi 11 titik recall precision terhadap query diag osa pe yakit pada “iste Pe eroleha I for asi er asis Cluster ... 92

Gambar 5.16. Grafik interpolasi 11 titik recall precision terhadap query diag osa pe yakit pada “iste Pe eroleha I for asi Ko e sio al ... 94

Gambar 5.17. Grafik interpolasi 11 titik recall precision terhadap query t p udp pada Sistem Pemerolehan Informasi berbasis Cluster ... 96

Gambar 5.18. Grafik interpolasi 11 titik recall precision terhadap query t p udp pada Sistem Pemerolehan Informasi Konvensional ... 98

Gambar 5.19. Grafik interpolasi 11 titik recall precision terhadap query ireless pada Sistem Pemerolehan Informasi berbasis Cluster ... 100

Gambar 5.20. Grafik interpolasi 11 titik recall precision terhadap query ireless pada Sistem Pemerolehan Informasi Konvensional ... 102

Gambar 5.21. Grafik rerata interpolasi 11 titik recall precision kedua jenis sistem ... 104

Gambar 5.22 Grafik rerata waktu retrieval kedua jenis sistem (1) ... 106


(16)

xiv

DAFTAR TABEL

Tabel 2.1. Tabel kombinasi awalan dan akhiran yang tidak diijinkan ... 8

Ta el 2.2. Cara Me e tuka Tipe A ala U tuk a ala te- ... 9

Tabel 2.3. Awalan yang diijinkan dihapus berdasarkan Tipe Awalannya ... 10

Tabel 2.4. Perancangan term document matrix ... 10

Tabel 3.1. Kebutuhan fungsional pengguna sistem ... 26

Tabel 3.2. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Cluster ... 34

Tabel 3.3. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Documents ... 34

Tabel 3.4. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Centroid ... 35

Tabel 3.5. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Term... 35

Tabel 3.6. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Term_Document ... 36

Tabel 3.7. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Stopword_Ina ... 36

Tabel 3.8. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Rootword_Ina ... 36

Tabel 5.1. Hasil pengelompokan dokumen yang dilakukan oleh sistem ... 58

Tabel 5.2. Hasil penghitungan dokumen-dokumen yang sesuai dengan cluster yang ditempati ... 58

Tabel 5.3. Hasil pencarian dengan query data i i g pada “iste Pe eroleha Informasi berbasis Cluster ... 60

Tabel 5.4. Penghitungan recall - precision terhadap query data i i g pada “iste Pemerolehan Informasi berbasis Cluster ... 60

Tabel 5.5. Interpolasi 11 titik recall precision terhadap query data i i g pada “iste Pemerolehan Informasi berbasis Cluster ... 61

Tabel 5.6. Hasil pencarian dengan query data i i g pada “iste Pe eroleha Informasi Konvensional... 62

Tabel 5.7. Penghitungan recall - precision terhadap query data i i g pada “iste Pemerolehan Informasi Konvensional ... 63

Tabel 5.8. Interpolasi 11 titik recall precision terhadap query data i i g pada “iste Pemerolehan Informasi berbasis Cluster ... 63

Tabel 5.9. Hasil pencarian dengan query aï e ayes pada “iste Pe eroleha Informasi berbasis Cluster ... 64

Tabel 5.10. Penghitungan recall - precision terhadap query aï e ayes pada “iste Pemerolehan Informasi berbasis Cluster ... 65

Tabel 5.11. Interpolasi 11 titik recall precision terhadap query aï e ayes pada “iste Pemerolehan Informasi berbasis Cluster ... 65


(17)

xv

Tabel 5.12. Hasil pencarian dengan query aï e ayes pada “iste Pe eroleha Informasi Konvensional... 66 Tabel 5.13. Penghitungan recall - precision terhadap query aï e ayes pada “iste Pemerolehan Informasi Konvensional ... 67 Tabel 5.14. Interpolasi 11 titik recall precision terhadap query aï e ayes pada “iste Pemerolehan Informasi Konvensional ... 67 Tabel 5.15. Hasil pencarian dengan query klasifikasi pada “iste Pe eroleha

Informasi berbasis Cluster ... 69 Tabel 5.16. Penghitungan recall - precision terhadap query klasifikasi pada “iste Pemerolehan Informasi berbasis Cluster ... 69 Tabel 5.17. Interpolasi 11 titik recall precision terhadap query klasifikasi pada “iste Pemerolehan Informasi berbasis Cluster ... 69 Tabel 5.18. Hasil pencarian dengan query klasifikasi pada “iste Pe eroleha

Informasi Konvensional... 71 Tabel 5.19. Penghitungan recall - precision terhadap query klasifikasi pada “iste Pemerolehan Informasi Konvensional ... 72 Tabel 5.20. Interpolasi 11 titik recallprecision terhadap query“klasifikasi” pada Sistem

Pemerolehan Informasi Konvensional ... 72 Tabel 5.21. Hasil pencarian dengan query siste pe duku g keputusa pada “iste Pemerolehan Informasi berbasis Cluster ... 74 Tabel 5.22. Penghitungan recall - precision terhadap query siste pe duku g

keputusa pada “iste Pe eroleha I for asi er asis Cluster ... 74 Tabel 5.23. Interpolasi 11 titik recall precision terhadap query siste pe duku g

keputusa pada “iste Pe eroleha I for asi er asis Cluster ... 75 Tabel 5.24. Hasil pencarian dengan query siste pe duku g keputusa pada “iste Pemerolehan Informasi Konvensional ... 77 Tabel 5.25. Penghitungan recall - precision terhadap query siste pe duku g

keputusa pada “iste Pe eroleha I for asi Ko e sio al ... 77 Tabel 5.26. Interpolasi 11 titik recall precision terhadap query siste pe duku g

keputusa pada “iste Pe eroleha I for asi Ko e sio al ... 78 Tabel 5.27. Hasil pencarian dengan query jari ga ko puter pada “iste

Pemerolehan Informasi berbasis Cluster ... 79 Tabel 5.28. Penghitungan recall - precision terhadap query jari ga ko puter pada Sistem Pemerolehan Informasi berbasis Cluster ... 79 Tabel 5.29. Interpolasi 11 titik recall precision terhadap query jari ga ko puter pada Sistem Pemerolehan Informasi berbasis Cluster ... 79 Tabel 5.30. Hasil pencarian dengan query jari ga ko puter pada “iste

Pemerolehan Informasi berbasis Cluster ... 81 Tabel 5.31. Penghitungan recall - precision terhadap query jari ga ko puter pada Sistem Pemerolehan Informasi Konvensional ... 81 Tabel 5.32. Interpolasi 11 titik recall precision terhadap query jari ga ko puter pada Sistem Pemerolehan Informasi Konvensional ... 82 Tabel 5.33. Hasil pencarian dengan query data i i g e ggu aka k- ea s pada Sistem Pemerolehan Informasi berbasis Cluster ... 83


(18)

xvi

Tabel 5.34. Penghitungan recall - precision terhadap query data i i g e ggu aka k

-ea s pada “iste Pe eroleha I for asi erbasis Cluster ... 83 Tabel 5.35. Interpolasi 11 titik recall precision terhadap query data i i g

menggunakan k- ea s pada “iste Pemerolehan Informasi berbasis Cluster ... 83 Tabel 5.36. Hasil pencarian dengan query data i i g e ggu aka k- ea s pada Sistem Pemerolehan Informasi Konvensional ... 84 Tabel 5.37. Penghitungan recall - precision terhadap query data i i g e ggu aka k -means pada “iste Pe eroleha I for asi Ko e sio al ... 85 Tabel 5.38. Interpolasi 11 titik recall precision terhadap query data i i g

menggunakan k- ea s pada “iste Pe eroleha I for asi Ko e sio al ... 85 Tabel 5.39. Hasil pencarian dengan query kesehata a usia pada “iste

Pemerolehan Informasi berbasis Cluster ... 87 Tabel 5.40. Penghitungan recall - precision terhadap query kesehata a usia pada Sistem Pemerolehan Informasi berbasis Cluster ... 87 Tabel 5.41. Interpolasi 11 titik recall precision terhadap query kesehata a usia pada Sistem Pemerolehan Informasi berbasis Cluster ... 87 Tabel 5.42. Hasil pencarian dengan query kesehata a usia pada “iste

Pemerolehan Informasi Konvensional ... 88 Tabel 5.43. Penghitungan recall - precision terhadap query kesehata a usia pada Sistem Pemerolehan Informasi Konvensional ... 89 Tabel 5.44. Interpolasi 11 titik recall precision terhadap query aï e ayes pada “iste Pemerolehan Informasi Konvensional ... 89 Tabel 5.45. Hasil pencarian dengan query diag osa pe yakit pada “iste Pe eroleha Informasi berbasis Cluster ... 90 Tabel 5.46. Penghitungan recall - precision terhadap query diag osa pe yakit pada Sistem Pemerolehan Informasi berbasis Cluster ... 91 Tabel 5.47. Interpolasi 11 titik recall precision terhadap query diag osa pe yakit pada Sistem Pemerolehan Informasi berbasis Cluster ... 91 Tabel 5.48. Hasil pencarian dengan query diag osa pe yakit pada “iste Pe eroleha Informasi Konvensional... 93 Tabel 5.49. Penghitungan recall - precision terhadap query diag osa pe yakit pada Sistem Pemerolehan Informasi Konvensional ... 93 Tabel 5.50. Interpolasi 11 titik recall precision terhadap query diag osa pe yakit pada Sistem Pemerolehan Informasi Konvensional ... 93 Tabel 5.51. Hasil pencarian dengan query t p udp pada “iste Pe eroleha I for asi berbasis Cluster ... 95 Tabel 5.52. Penghitungan recall - precision terhadap query t p udp pada “iste

Pemerolehan Informasi berbasis Cluster ... 95 Tabel 5.53. Interpolasi 11 titik recall precision terhadap query t p udp pada “iste Pemerolehan Informasi berbasis Cluster ... 95 Tabel 5.54. Hasil pencarian dengan query t p udp pada “iste Pe eroleha I for asi Konvensional ... 96 Tabel 5.55. Penghitungan recall - precision terhadap query t p udp pada “iste


(19)

xvii

Tabel 5.56. Interpolasi 11 titik recall precision terhadap query t p udp pada “iste Pemerolehan Informasi Konvensional ... 97 Tabel 5.57. Hasil pencarian dengan query ireless pada “iste Pe eroleha I for asi berbasis Cluster ... 99 Tabel 5.58. Penghitungan recall - precision terhadap query ireless pada “iste Pemerolehan Informasi berbasis Cluster ... 99 Tabel 5.59. Interpolasi 11 titik recall precision terhadap query ireless pada “iste Pemerolehan Informasi berbasis Cluster ... 99 Tabel 5.60. Hasil pencarian dengan query ireless pada “iste Pe eroleha I for asi Konvensional ... 101 Tabel 5.61. Penghitungan recall - precision terhadap query ireless pada “iste Pemerolehan Informasi Konvensional ... 101 Tabel 5.62. Interpolasi 11 titik recall precision terhadap query ireless pada “iste Pemerolehan Informasi Konvensional ... 101 Tabel 5.63. Interpolasi 11 titik recall precision dari pengujian dengan 10 query pencarian dengan menggunakan Sistem Pemerolehan Informasi berbasis Cluster ... 102 Tabel 5.64. Interpolasi 11 titik recall precision dari pengujian dengan 10 query pencarian dengan menggunakan Sistem Pemerolehan Informasi Konvensional ... 103 Tabel 5.65. Rata-rata interpolasi 11 titik recall precision dari pengujian dengan 10 query pencarian dari kedua sistem ... 103 Tabel 5.66. Hasil penghitungan rerata waktu eksekusi dalam satuan detik dari kedua sistem ... 105


(20)

xviii

DAFTAR PERSAMAAN

Persamaan 2.1. Rumus pembobotan TF-IDF (Savoy, 1993) ... 11

Persamaan 2.2. Rumus penghitungan skor dan perankingan dokumen terhadap query 12 Persamaan 2.3. Rumus penghitungan nilai recall (Manning et al, 2008) ... 12

Persamaan 2.4. Rumus penghitungan nilai precision (Manning et al, 2008) ... 12

Persamaan 2.5. Rumus Uji Statistik Anderson Darling ... 16

Persamaan 2.6. Rumus Uji Statistik Anderson Darling ... 17

Persamaan 2.7. Rumus mencari anak cluster (Hamerly et al., 2004) ... 17

Persamaan 2.8. Rumus proyeksi vektor-vektor di X ke vektor v ... 17

Persamaan 2.9. Rumus penghitungan nilai purity ... 18


(21)

xix

ABSTRAK

Dalam kurun waktu terakhir, pertambahan jumlah dokumen karya ilmiah berbahasa Indonesia meningkat sangat pesat. Tanpa ada pengubahan dalam sistem pemerolehan informasi, volume data yang meningkat dapat mengakibatkan turunnya performa sistem pemerolehan informasi, terutama dalam hal waktu retrieval.

Salah satu metode yang diusulkan untuk mempersingkat waktu retrieval adalah pengelompokan koleksi. Dalam tugas akhir ini, G-Means dipilih sebagai algoritma pemodelan cluster. Keuntungan implementasi G-Means adalah kemampuan algoritma ini untuk memilih jumlah cluster yang paling optimal.

Hasil pengelompokan koleksi kemudian diuji dalam lingkungan sistem pemerolehan informasi untuk melihat seberapa baik pengelompokan koleksi dalam mempersingkat waktu retrieval, dan seberapa besar pengaruhnya terhadap precision.

Data yang digunakan adalah karya ilmiah berbahasa Indonesia sebanyak 100 karya. Dari hasil pengujian, ditemukan bahwa waktu retrieval lebih singkat hingga 16,3%, dengan rerata waktu retrieval sebesar 12,88 detik dan precision sebesar 47%.


(22)

xx

ABSTRACT

In recent years, Indonesian-written scientific papers grow significantly in term of number. Without any improvement in information retrieval systems, increasing data volume could lead to poor system performance, especially in its retrieval time.

One proposed method to improve retrieval time is collection clustering. G-Means was chosen for cluster modeling algorithm, as it can determine number of generated clusters automatically. Clustering collection results are tested in information retrieval system to find how significant clustering can reduce retrieval time, and whether it has impact to system’s average precision.

We use 100 Indonesian scientific papers as collection. Based from the results, retrieval time gain 16.3% faster, with average retrieval time is about 12,88 seconds and average precision is about 47%.


(23)

(24)

xxii

KATA PENGANTAR

Puji dan Syukur saya panjatkan kepada Tuhan Yang Maha Esa, atas berkat dan kuasa-Nya yang diberikan sehingga penelitian ini dapat berhasil dan selesai. Penelitian ini tidak mungkin diselesaikan tanpa adanya keterlibatan dan dukungan dari banyak pihak. Dalam penyelesaian penelitian ini, saya ingin mengucapkan terima kasih sebesar-besarnya kepada pihak-pihak tersebut, antara lain :

1. Bapak Sudi Mungkasi, S.Si, M.Sc.Math., Ph.D. selaku dekan Fakultas Sains dan Teknologi, Universitas Sanata Dharma.

2. Ibu Dr. Anastasia Rita Widiarti selaku Ketua Program Studi Teknik Informatika, Universitas Sanata Dharma

3. Bapak J.B. Budi Darmawan, M.Sc. selaku dosen pembimbing penelitian. Beliau memberikan banyak masukan dan saran serta pembelajaran yang amat sangat berharga dalam penelitian ini.

4. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., selaku dosen penguji skripsi, atas saran dan kritik yang diberikan untuk menunjang skripsi ini.

5. Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku dosen penguji skripsi, atas saran dan kritik yang diberikan untuk menunjang skripsi ini.

6. Keluarga yang tercinta, Bapak, Mikael Santosa, Ibu, Fransiska Tasri Aryani, dan Adik, Philipus Agri Adhiatma yang selalu memberi dukungan terbaik dan kasih sayang.

7. Adika Dwi Ananda Putra (Dika), yang telah berbaik hati meminjami unit komputer untuk menyelesaikan penelitian ini.


(25)

(26)

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Jumlah publikasi karya ilmiah dari Indonesia terus bertambah dari tahun ke tahun. Dari tahun 2011 hingga 2016, prosiding KNSI menampung 1590 karya ilmiah, SRITI menampung 51 karya ilmiah pada tahun 2016. Sementara itu, terdapat 110 karya ilmiah dipublikasikan di JUTI, jurnal teknologi informasi ITS, sejak 2010 hingga 2016 dan 51 karya ilmiah pada JURTEK Akprind dari tahun 2014 hingga 2016. Jumlah karya ilmiah yang tidak termasuk dalam publikasi tersebut tentunya jauh lebih besar lagi.

Dengan pertambahan jumlah karya ilmiah yang tersebut, permasalahan yang muncul berasal dari besarnya volume data yang ada. semakin besar suatu koleksi dokumen, maka proses pemerolehan informasi cenderung makin membutuhkan waktu yang lebih banyak (Grossman et al., 2004).

Untuk itu, diperlukan pengembangan dalam sistem pemerolehan informasi. Salah satu pengembangan yang dapat dilakukan antara lain dengan mengelompokkan koleksi dokumen yang ada. Antar dokumen dalam satu kelompok memiliki kemiripan yang semirip-miripnya, dan antar dokumen dalam kelompok yang berbeda memiliki ketidakmiripan yang sejauh-jauhnya. Sehingga sistem tidak membutuhkan waktu eksekusi yang lama, karena tiap koleksi sudah dibagi menjadi kelompok-kelompok yang seragam, atau yang disebut juga dengan


(27)

2

Tiap cluster direpresentasikan dengan satu centroid. Pengelompokan akan dilakukan dengan algoritma Means. Keuntungan menggunakan algoritma G-Means adalah selain melakukan pengelompokan, algoritma ini juga dapat menghitung jumlah cluster yang optimum dengan melihat apakah suatu cluster

sudah terdistribusi normal atau belum.

Setelah terbentuk kelompok-kelompok dokumen, maka tiap query dari

user akan dicocokan dengan centroid tiap cluster saja. Kluster yang memiliki skor paling tinggi dengan query pencarian akan dicatat, lalu isi dari cluster itulah yang akan diberikan skor terhadap query dari pengguna, lalu kemudian ditampilkan.

1.2. Rumusan Masalah

1. Bagaimana hasil dan kualitas cluster yang dihasilkan dari proses pengelompokan dokumen oleh sistem?

2. Bagaimana pengaruh pengelompokan dokumen dalam sistem pemerolehan informasi berbasis cluster terhadap waktu retrieval dan dampaknya terhadap

precision?

1.3. Tujuan Penelitian

1. Mengetahui hasil evaluasi dan kualitas cluster yang dihasilkan dari proses pengelompokan dokumen oleh sistem.


(28)

3

2. Mengetahui seberapa baik sistem pemerolehan informasi berbasis cluster

dalam menurunkan waktu retrieval, dan seberapa besar pengaruhnya terhadap precision.

1.4. Batasan Masalah

1. Dokumen yang digunakan sebagai korpus adalah karya ilmiah dalam bentuk digital yang diambil dari prosiding berbagai seminar.

2. Dokumen yang digunakan sebagai korpus adalah dokumen yang menggunakan bahasa Indonesia.

3. Dokumen yang digunakan sebagai korpus untuk penelitian ini diambil secara acak.

4. Dokumen digital yang digunakan sebagai korpus dalam penelitian ini telah diubah menjadi format TXT.

5. Pengelompokan dokumen dalam karya tulis ini tidak menggunakan data training.

1.5. Metodologi Penelitian

Langkah-langkah metodologi penelitian yang dilakukan dalam penelitian ini adalah sebagai berikut :

1. Studi Pustaka

Studi pustaka dilakukan untuk mengumpulkan teori-teori yang mendukung penelitian ini. Teori tersebut antara lain mengenai pemerolehan informasi (information retrieval), clustering dokumen dengan menggunakan G-Means, dan informasi lain yang mendukung implementasian pemerolehan informasi berbasis cluster ini.


(29)

4

2. Pembangunan Sistem Pemerolehan Informasi berbasis Cluster

Pembangunan sistem pemerolehan informasi berbasis cluster ini menggunakan metode Framework for the Application System Technique

(FAST) dengan tahap sebagai berikut: a. Analisis Sistem

1) Analisis Masalah

Hal yang dilakukan dalam tahap ini adalah analisis masalah yang dapat dipecahkan dengan pembangunan sistem.

2) Analisis Kebutuhan

Hal yang dilakukan dalam tahap ini adalah identifikasi kebutuhan sistem dengan mengumpulkan data kebutuhan pengguna sistem yang kemudian dimodelkan dalam diagram Use Case.

b. Desain Sistem 1) LogicalDesign

Hal yang dilakukan dalam tahap ini adalah penggambaran model data, proses dan antarmuka dalam bentuk logical.

2) PhysicalDesignand Integration

Implementasi secara teknis dengan pembuatan desain antarmuka pengguna secara fisik dan desain basis data apabila diperlukan.

3) Construction and Testing

Pengembangan rancangan ke dalam program dengan menggunakan bahasa pemrograman Java, dan MySQL sebagai pengelola basis datanya.

3. Uji Coba Relevansi terhadap Pengguna

Uji coba terhadap pengguna dilakukan untuk melihat unjuk kerja sistem yang telah dibangun. Parameter yang diberikan adalah tingkat relevansi untuk


(30)

5

uji relevansi. Hasil dari uji coba ini akan menjadi sumber data untuk analisis hasil uji coba.

4. Analisis Hasil Uji Coba Relevansi

Analisis hasil uji coba dilakukan dengan melihat data yang didapatkan dari uji coba pengguna. Tujuan dari analisis ini adalah untuk mendapatkan kesimpulan dari tujuan penelitian.

1.6. Sistematika Penulisan

1. BAB I : PENDAHULUAN

Berisi pendahuluan berupa permasalahan yang melatarbelakangi penelitian ini, tujuan dari penelitian ini, batasan-batasan yang ada dalam penelitian, serta sistematika dokumen proposal ini.

2. BAB II : TINJAUAN PUSTAKA

Berisi jabaran konsep dan hasil penelitian dari peneliti lain yang berkaitan dengan penelitian ini. Isinya antara lain konsep dasar pemerolehan informasi,

stemming, eliminasi stopword, term weighting, evaluasi hasil pemerolehan informasi, serta konsep dasar pengelompokan teks, dan algoritma G-Means untuk pemodelan data dan pemilihan jumlah cluster optimum.

3. BAB III : ANALISIS DAN PERANCANGAN

Bab ini berisi gambaran umum dari sistem yang akan dibangun, analisis kebutuhan sistem dan rancangan basis data untuk sistem tersebut.

4. BAB IV : IMPLEMENTASI

Bab ini berisi jabaran dari implementasi pemodelan G-Means dalam bahasa pemrograman Java.


(31)

6

5. BAB V : ANALISIS HASIL PENELITIAN

Bab ini berisi hasil pengujian sistem, serta pembahasan dari hasil pengujian tersebut.

6. DAFTAR PUSTAKA

Berisi referensi pustaka yang digunakan dalam penulisan karya ilmiah ini.

7. LAMPIRAN


(32)

7

BAB II

LANDASAN TEORI

2.1. Konsep Pemerolehan Informasi

Pemerolehan informasi (Information Retrieval) adalah kumpulan berbagai algoritma dan teknologi untuk melakukan pemrosesan, penyimpanan, dan temu kembali informasi pada suatu koleksi data yang besar dan tidak terstruktur (Manning et al, 2008).

Jenis informasi tersebut beragam, bisa berupa teks dokumen, halaman web, maupun objek multimedia seperti foto dan video.

2.1.1. Operasi Teks

2.1.1.1. Stopword

Stopword adalah suatu kata yang sangat sering muncul dalam berbagai dokumen adalah diskriminator yang buruk dan tidak berguna dalam temu kembali informasi. Stopword perlu dieliminasi untuk mengurangi waktu eksekusi query

dengan cara menghindari proses list yang panjang (Butcher et al., 2010). Pembuangan stopword ini akan mengurangi ukuran indeks, meningkatkan efisiensi dan keefektifan dari pemerolehan informasi (Croft et al., 2010). Contoh

stopword dalam bahasa Indonesia, yaitu kata ganti orang (“aku”, “kamu”, “kita”,

dsb.), konjungsi (“dan”, “atau”, dsb.), dan beberapa kata lainnya.

2.1.1.2. Stemming

Stemming adalah proses pengenalan suatu kata. Stemming sering melibatkan pemisahan kata dari imbuhan dan tanda baca (Göker et al, 2009).

Menurut Agusta (2010), pola suatu kata dalam bahasa Indonesia adalah sebagai berikut :


(33)

8

2.1.1.2.1. Algoritma Nazief – Adriani sebagai Algoritma Stemming

Algoritma Stemming Nazief – Adriani diperkenalkan oleh Nazief dan Adriani (1996). Algoritma ini memiliki tahap-tahap sebagai berikut ini :

1. Cari kata yang akan diistem dalam basis data kata dasar. Jika ditemukan maka diasumsikan kata adalah root word. Maka algoritma berhenti.

2. Selanjutnya adalah pembuangan Inflection Suffixes (“-lah”, “-kah”, “-ku”, “ -mu”, atau “-nya”). Jika berupaparticles (“-lah”, “-kah”, “-tah” atau “-pun”) dan terdapat Possesive Pronouns (“-ku”, “-mu”, atau “-nya”), maka langkah ini diulangi lagi untuk menghapus Possesive Pronouns.

3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a berikut ini : 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”) dikembalikan, 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 pada Tabel 2.1. Jika ditemukan maka algoritma berhenti, jika tidak, pergi ke langkah 4b. Tabel kombinasi awalan-akhiran yang tidak diijinkan ditampilkan pada tabel berikut ini :

Awalan Akhiran yang tidak diizinkan

be- -i

di- -an

ke- -i, -kan

me- -an

se- -i, -kan

Tabel 2.1. Tabel kombinasi awalan dan akhiran yang tidak diijinkan

b. Tentukan tipe awalan kemudian hapus awalan. Jika awalan kedua sama dengan awalan pertama algoritma berhenti.


(34)

9

c. Jika root word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti..

5. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai.

Tipe awalan ditentukan melalui langkah-langkah berikut:

1. Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-turut adalah “di-”, “ke-”, atau “se-”.

2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya.

3. Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti.

4. Dengan melihat Tabel 2.2, jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan “none” maka awalan dapat dilihat pada Tabel 2.4. Hapus awalan jika ditemukan.

Tipe-tipe awalan dapat dilihat dalam tabel berikut ini :

Karakter huruf setelah awalan Tipe awalan

Set 1 Set 2 Set 3 Set 4

“-r-“ “-r-“ – – None

“-r-“ – – ter-luluh

“-r-“ not (vowel or “-r-”) “-er-“ vowel Ter “-r-“ not (vowel or “-r-”) “-er-“ not vowel ter- “-r-“ not (vowel or “-r-”) not “-er-“ – Ter not (vowel or “-r-”) “-er-“ vowel – None not (vowel or “-r-”) “-er-“ not vowel – Te

Tabel 2.2. Cara Menentukan Tipe Awalan Untuk awalan “te-”

Awalan yang diijinkan dihapus berdasarkan tipe awalannya ditunjukkan pada tabel berikut ini :

Tipe Awalan Awalan yang harus dihapus

di- di-

ke- ke-

se- se-


(35)

10

ter- ter-

ter-luluh ter

Tabel 2.3. Awalan yang diijinkan dihapus berdasarkan Tipe Awalannya

2.1.1.3. Tokenisasi

Tokenisasi adalah proses pemisahan kata dari kumpulannya, sehingga menghasilkan suatu kata yang berdiri sendiri, baik dalam bentuk perulangan maupun tunggal. Proses ini juga akan menghilangkan tanda baca maupun karakter yang ada pada kata tersebut dan semua huruf menjadi huruf kecil. (Manning et al, 2008).

Contoh dari input dan output dari tokenisasi adalah sebagai berikut : Input : Suatu deret angka genap

Output : suatu, deret, angka, genap

2.1.2. Term-Document Matrix

Term-document matrix adalah matriks yang memperlihatkan frekuensi kemunculan suatu term didalam suatu dokumen. Dalam term-document matrix, baris-baris menunjukkan term dalam suatu koleksi dan kolom menunjukkan dokumen. (Manning et al, 2008).

Contoh perancangan matriks term-document diperlihatkan seperti berikut ini : doc 1 doc 2 doc 3 doc 4 doc 5 doc 6

term 1 1 2 2 1 1 0

term 2 0 4 4 1 2 0

term 3 2 5 0 1 3 0

term 4 3 1 0 0 1 1

term 5 2 0 2 0 0 1

term 6 1 0 1 1 3 2

Tabel 2.4. Perancangan termdocumentmatrix

Sehingga matriks term-documentnya (matriks M) akan menjadi seperti berikut ini :


(36)

11

[

] Gambar 2.1. Visualisasi term-documentmatrix

2.1.3. TF-IDF sebagai Metode Pembobotan

Terms Frequency – Inverse Documents Frequency (TF-IDF) adalah skema pembobotan term yang paling populer dalam ranah pemerolehan informasi (Baeza – Yates, 1999).

Rumus pembobotan TF-IDF menurut Savoy (1993) adalah sebagai berikut :

Persamaan 2.1. Rumus pembobotan TF-IDF (Savoy, 1993)

Dimana,

, dan

Keterangan :

 w = bobot term (Tj) pada dokumen Di

 tfij = frekuensi kemunculan term (Tj) pada dokumen Di  m = jumlah dokumen Di pada kumpulan dokumen  dfj = jumlah dokumen yang mengandung term (Tj)

 idfj = invers frekuensi dokumen (inverse document frequency)  max tfi = frekuensi term terbesar dalam suatu dokumen

Dari penghitungan nilai TF-IDF ini, scoring atau penilaian terhadap query


(37)

12

Persamaan 2.2. Rumus penghitungan skor dan perankingan dokumen terhadap query

2.1.4. Evaluasi Pemerolehan Informasi

Pengukuran hasil relevansi dapat dilakukan dengan penghitungan recall dan

precision. Recall digunakan untuk mengukur seberapa baik suatu sistem melakukan pencarian terhadap dokumen yang relevan terhadap suatu query

pengguna. Sementara itu, precision digunakan untuk melihat seberapa baik sistem pemerolehan informasi mengeliminasi dokumen yang tidak relevan (Croft et al., 2010).

Rumus dari recall dan precision adalah sebagai berikut (Manning et al, 2008) :

Persamaan 2.3. Rumus penghitungan nilai recall (Manning et al, 2008)

Persamaan 2.4. Rumus penghitungan nilai precision (Manning et al, 2008)

2.2. Konsep Pengelompokan Dokumen

2.2.1. Clustering dalam Pemerolehan Informasi

Algoritma clustering mengelompokan sekumpulan dokumen ke dalam suatu subset atau cluster. Tujuan algoritma clustering dalam pemerolehan informasi bertujuan untuk mengelompokan sekumpulan dokumen yang koheren secara internal, namun memiliki perbedaan jauh dengan dokumen dari cluster

yang lain. Dengan kata lain, antar dokumen di dalam satu cluster yang sama seharusnya memiliki tingkat kemiripan yang tinggi, dan antar dokumen di dalam


(38)

13

cluster yang berbeda seharusnya memiliki tingkat perbedaan yang setinggi-tingginya (Manning et al, 2008).

2.2.2. Hipotesis Cluster

Hipotesis cluster berisi tentang asumsi dasar yang dibuat ketika menerapkan

clustering dalam pemerolehan informasi. Hipotesis cluster menyebutkan bahwa dokumen dalam cluster yang sama akan memiliki keidentikan sifat, berkenaan dengan relevansi terhadap kebutuhan informasi (Manning et al, 2008).

2.2.3. K-Means

K-Means adalah salah satu algoritma flat clustering yang paling penting (Manning et al, 2008). Tujuan K-Means adalah meminimalkan rata-rata kuadrat jarak Euclidean dokumen terhadap centroid (pusat cluster) dokumen tersebut (Manning et al, 2008).

Algoritma k-Means ditunjukkan dalam gambar berikut ini :

Gambar 2.2. Pseudocode algoritma K-Means (Manning et al, 2008)

Dalam bukunya, Manning (2008) menjabarkan langkah dari algoritma K-Means. Pertama-tama, dilakukan pemilihan pusat cluster K secara acak dari dokumen yang ada. Terjadi proses iteratif dimana pusat cluster bergerak terus


(39)

14

untuk meminimalkan RSS (residual sum of squares). Setelah itu, tiap dokumen ditempatkan pada cluster yang memiliki centroid terdekat dengan dokumen tersebut. Proses kembali lagi ke iterasi pergerakan pusat cluster.

Visualisasi proses yang terjadi dalam k-Means ditampilkan dalam gambar berikut ini :


(40)

15

Ada beberapa cara penghentian iterasi, antara lain :

 Banyak iterasi I yang telah ditetapkan sebelumnya. Ketika iterasi telah mencapai langkah ke-i, maka proses akan berhenti.

 Penempatan dokumen dalam suatu cluster (fungsi partisi γ) tidak berubah -ubah lagi.

 Centroid µk tidak berubah lagi. Hal ini sama dengan γ tidak berubah.  Berhenti ketika nilai RSS dibawah batas yang ditentukan.

2.2.4. G-Means

Algoritma G-Means diperkenalkan oleh Greg Hamerly dan Charles Elkan dari University of California pada tahun 2004. G-Means adalah algoritma pengembangan dari K-Means yang memiliki fitur penghitungan jumlah cluster

yang optimum dengan menggunakan uji statistik untuk memutuskan apakah suatu pusat cluster perlu dipecah menjadi dua pusat cluster (Hamerly et al., 2004).

Algoritma G-Means akan dimuai dari jumlah pusat cluster yang kecil, misalnya satu atau dua. Tiap iterasi dimulai dengan pengelompokan data menggunakan K-Means seperti biasa untuk mendapatkan himpunan anggota tiap

cluster, selanjutnya algoritma ini akan memecah pusat cluster menjadi dua apabila suatu cluster nampak tidak terdistribusi normal.

Visualisasi G-Means dalam suatu dataset 2 dimensi dengan 1000 point ditampilkan dalam gambar berikut ini :

Gambar 2.4. Visualisasi Means dalam suatu dataset 2 dimensi dengan 1000 point. Algoritma G-Means mencoba mencari normalitas dalam sebaran titik pada suatu cluster (Hamerly et al., 2004)


(41)

16

Algoritma G-Means dapat dilihat sebagai berikut (Hamerly et al., 2004) : 1. Pilih C sebagai sekumpulan pusat cluster (centroid) awal

2. Lakukan K-Means pada dataset X dengan C sebagai pusat-pusat clusternya. 3. xi adalah sekumpulan datapoint yang menjadi member centroid cj, dimana { xi

| class(xi) = j }

4. Gunakan uji statistik untuk melihat apakah tiap { xi | class(xi) = j } mengikuti

distribusi normal (pada suatu confidence levelα).

5. Jika data terlihat terdistribusi normal, maka cj tidak berubah. Namun jika

sebaliknya, maka cj diganti menjadi dua pusat cluster

6. Ulangi langkah no. 2 hingga tidak ada lagi pusat cluster yang ditambahkan.

Terdapat dua hipotesis dalam uji statistik pada no. 4, yaitu sebagai berikut (Hamerly et al., 2004) :

 H0 : data disekitar pusat cluster terdistribusi normal  H1 : data disekitar pusat cluster tidak terdistribusi normal

Jika H0 diterima, maka pusat cluster tidak perlu dipisah lagi menjadi dua.

Sementara itu, jika H1 diterima, maka pusat cluster harus dipecah menjadi dua.

Uji statistik yang digunakan adalah adalah uji Anderson-Darling, dengan formula sebagai berikut :

Persamaan 2.5. Rumus Uji Statistik Anderson Darling


(42)

17

[

Persamaan 2.6. Rumus Uji Statistik Anderson Darling

X adalah subset dengan pusat cluster C. Tiap instance dari X diwakili dengan xi, xi+1, …, xn-1, xn. Sementara itu, zi adalah hasil dari fungsi distribusi

kumulatif untuk distribusi normal baku terhadap nilai xi.

Untuk melakukan uji statistik diatas, dilakukan langkah seperti berikut ini (Hamerly et al., 2004) :

1. Ambil suatu subset X

2. Pilih level signifikan α untuk uji.

3. Dari pusat cluster tersebut, ambil dua buah “anak” pusat cluster, dinotasikan dengan c1 dan c2. Caranya dengan menggunakan rumus c±m, dimana m adalah random atau dengan rumus berikut :

Persamaan 2.7. Rumus mencari anak cluster (Hamerly et al., 2004)

Dimana,

m = vector anak

s = eigenvalue terbesar yang didapat dari data

λ = principal component utama, yaitu eigenvector dengan eigenvalue terbesar

4. Jalankan K-Means pada X dengan dua centroid tersebut (c1 dan c2). 5. Hitung nilai vektor v dengan v = c1 – c2.

6. Proyeksikan X ke v, menjadi X, dengan rumus sebagai berikut

‖ ‖

Persamaan 2.8. Rumus proyeksi vektor-vektor di X ke vektor v


(43)

18 8. Hitung zi dengan rumus zi = F(xi).

9. Hitung . Apabila berada pada daerah non-kritis, maka H0

diterima. Sebaliknya apabila berada di dalam daerah kritis, maka H1

diterima dan pusat cluster yang baru adalah c1 dan c2.

2.2.5. Evaluasi Cluster

2.2.5.1. Purity

Purity adalah salah satu pengukuran dalam evaluasi cluster. Untuk menghitung purity, tiap cluster diberikan label kelas berdasarkan label yang paling sering muncul dalam cluster tersebut, dan kemudian akurasi cluster

dihitung dengan jumlah data yang benar dibagi dengan banyak data (Chen, 2010). Rentang purity dari 0 hingga 1. Semakin besar nilai purity, semakin baik cluster

tersebut. Formula purity adalah sebagai berikut (Chen, 2010) :

∑ | |


(44)

19

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

3.1.1. Deskripsi Sistem

Sistem yang akan dikembangkan dalam penelitian ini adalah sebuah sistem pengelompokan koleksi dan pencarian dokumen berdasarkan input query

pengguna. Sistem ini terdiri dari dua sub sistem, yaitu sub sistem pengelompokan dokumen dan sub sistem pencarian dokumen.

3.1.1.1. Sub Sistem Pengelompokan Dokumen

Sub sistem pengelompokan dokumen bertindak sebagai modul clustering

dokumen. Nantinya koleksi dokumen yang diunggah oleh User ke dalam sistem mula-mula diproses oleh subsistem ini. Proses yang terjadi adalah tokenisasi, eliminasi stopword, stemming, lalu dilanjutkan dengan pembangunan term

-documentmatrix.

Dalam penelitian ini, kolom dalam term-document matrix akan merepresentasikan term, selanjutnya disebut atribut atau feature. Sementara baris dalam term-document matrix akan merepresentasikan dokumen. Dari term

-documentmatrix inilah akan dilakukan pengelompokan koleksi.

Jumlah cluster optimum akan dicari secara otomatis oleh sistem menggunakan algoritma G-Means, yaitu pemodelan cluster dengan memperhitungkan kenormalan distribusi dari tiap anggota cluster terhadap pusatnya masing-masing. Dari situ, dapat diketahui berapa jumlah cluster yang optimum.


(45)

20

Normalitas distribusi tiap cluster akan dihitung dengan menggunakan test statistik, dimana akan digunakan uji Anderson-Darling untuk menentukan apakah

cluster sudah terdistribusi normal atau belum. Apabila suatu cluster belum terdistribusi normal, maka suatu cluster akan dipecah menjadi dua, dan seterusnya hingga terdistribusi normal.

Alur subsistem ini ditunjukkan dalam gambar berikut ini :

Input dokumen karya ilmiah

Operasi tokenizing

Operasi stopword

Operasi stemming

Penghitungan tf, df dan w

Pembangunan term-document matrix

Implementasi G-Means untuk pemodelan cluster

Pengklusteran Dokumen

Simpan data cluster dan membernya, serta centroidnya

Feature selection


(46)

21

3.1.1.1.1. Clustering dengan G-Means

Penggunaan algoritma G-Means serta parameter-parameter yang digunakan dalam penelitian ini adalah sebagai berikut :

1. Ambil suatu subset X

Subset X pada saat ini adalah seluruh dataset yang ada. Dataset ini dianggap sebagai satu cluster. Karena hanya terdapat satu cluster saja, centroid dari cluster ini adalah rerata dari tiap atribut dari dataset tersebut.

2. Pilih level signifikan α untuk uji.

Level signifikan α dalam penelitian ini diinisalisasi dengan nilai 0.05. Nilai ini nantinya akan dibandingkan dengan p-value dari hasil penghitungan uji statistik Anderson – Darling.

3. Dari pusat cluster (centroid)yang dibentuk pada point 1 tadi, ambil dua buah “anak” pusat cluster, dinotasikan dengan c1 dan c2. Caranya dengan menggunakan rumus pada Persamaan 2.1.

4. Jalankan K-Means pada X dengan dua centroid tersebut (c1 dan c2).

K-Means dilakukan pada cluster yang diobservasi. Parameter jumlah

cluster (k) memiliki nilai 2, dan seed untuk centroid awal adalah c1 dan c2. Kriteria penghentian iterasi dalam tahap ini adalah sebagai berikut :

a. Jumlah iterasi telah melewati batas iterasi yang ditentukan, yaitu 1000 kali iterasi, atau,

b. Salah satu cluster kehilangan seluruh anggotanya (empty cluster), atau, c. Cluster sudah konvergen, ditandai dengan centroid dan anggota cluster

tidak mengalami perubahan. Dengan kata lain, memiliki nilai dan jumlah yang sama dengan iterasi sebelumnya.


(47)

22

6. Proyeksikan X ke v, menjadi X, dengan rumus pada Persamaan 2.8. 7. Normalisasi X` sehingga memiliki rerata 0 dan varian 1.

Normalisasi untuk mengubah X’ sehingga memiliki rerata 0 dan varian 1 dilakukan dengan menggunakan normalisasi z-score, yaitu normalisasi dengan rumus berikut ini :

Persamaan 3.1. Rumus penghitungan normalisasi z-score pada suatu data

Dimana,

- si = nilai normalisasi di titik data ke i dalam suatu atribut

- xi = nilai awal data di titik data ke i dalam suatu atribut

- µ = nilai atribut dari atribut dimana terdapat data i

- = nilai standar deviasi dari atribut dimana terdapat data i

8. Hitung zi dengan rumus zi = F(xi).

Penghitungan Cummulative Distribution Function (CDF) menggunakan java library yang dikhususkan untuk statistika, yaitu jdistlib.

9. Hitung . Apabila berada pada daerah non-kritis, maka H0

diterima. Sebaliknya apabila berada di dalam daerah kritis, maka H1

diterima dan pusat cluster yang baru adalah c1 dan c2.

Penghitungan p-value akan digunakan untuk mengetahui apakah nilai

berada pada daerah kritis atau non-kritis. Penghitungan p-value dilakukan dengan java library yang dikhususkan untuk statistika, yaitu jdistlib. Apabila nilai p-value lebih besar sama dengan nilai α, maka H0 diterima, yang

artinya cluster tidak perlu dipecah menjadi dua cluster. Begitu pula sebaliknya, maka H1 diterima, yang artinya cluster perlu dipecah menjadi dua cluster.


(48)

23

3.1.1.2. Sub Sistem Pencarian Dokumen

Sub sistem pencarian dokumen berfungsi untuk mencari dokumen yang memiliki kemiripan atau relevan dengan query yang diberikan oleh pengguna sistem. Query hanya akan dicocokkan dengan centroid tiap cluster dengan menggunakan operator boolean AND, dengan menggunakan Persamaan 2.2 untuk menghitung skor. Cluster yang memiliki centroid dengan skor yang tertinggi terhadap query pencarian user akan dicatat oleh sistem. Apabila tidak ada kecocokan dengan semua centroid, maka dicoba pencocokan dengan menggunakan operator OR.

Apabila sudah ditemukan cluster yang sesuai, dokumen yang berada dalam

cluster tersebut akan dibobot ulang oleh sistem menggunakan TF-IDF untuk kemudian ditampilkan urut ke pengguna berdasarkan bobot terhadap query yang diberikan oleh pengguna. Jumlah dokumen untuk penghitungan IDF didasarkan pada jumlah dokumen yang berada pada cluster terpilih.

Aktor yang terlibat dalam sistem ini adalah User. User adalah aktor yang memiliki wewenang untuk melakukan pencarian dokumen dengan memberikan input berupa query pencarian pada sistem. Selain itu, user memiliki wewenang untuk memulai proses clustering dokumen.


(49)

24 Input query pencarian

Operasi tokenizing

Operasi stopword

Operasi stemming

Penghitungan tf, df, w

Pembangunan term-query matrix

Pembobotan cluster terhadap kueri, dengan membandingkan centroid terhadap kueri, dapat ditemukan bobot yang paling besar (cluster yg paling mirip

dgn kueri)

Load document id dari cluster yang paling mirip

Hitung ulang bobot document member cluster tadi terhadap kueri

Tampilkan hasil pencarian ke user

Pencarian

Gambar 3.2. Alur proses pencarian dokumen

Subsistem ini memiliki dua opsi untuk retrieval, yaitu retrieval berbasis

cluster dan retrieval tanpa cluster. Retrieval berbasis cluster selanjutnya disebut dengan Sistem Pemerolehan Informasi berbasis Cluster, sementara retrieval tanpa

cluster disebut dengan Sistem Pemerolehan Informasi Konvensional.


(50)

25

Text database

Index

Index Text operation

Query operation Indexing DB Manager Module Searching Ranking User interface Inverted file Text Text Logical view Ranked docs feedback User need Logical operation query Retrieved docs

Gambar 3.3. Sistem Pemerolehan Informasi Konvensional (Baeza, 1999)

Text database Text operation

Query operation Indexing DB Manager Module Searching Ranking User interface Inverted file Text Text Logical view Ranked docs feedback User need Logical operation query Retrieved docs Clustering Cluster Member (Documents) Cluster Member (Documents) Cluster Index (Centroid) Cluster Index (Centroid)


(51)

26

3.1.2. Data yang Digunakan

Data yang digunakan dalam penelitian ini adalah 100 karya ilmiah berbahasa Indonesia yang diambil dari berbagai prosiding dan jurnal.

3.1.3. Analisis Kebutuhan Pengguna

Kebutuhan yang dibutuhkan tiap aktor dalam sistem ini disajikan dalam tabel berikut ini :

Pengguna Sistem Kebutuhan

User 1. Melakukan clustering dokumen

2. Melakukan pencarian dengan menggunakan

query

3. Melihat isi dokumen

Tabel 3.1. Kebutuhan fungsional pengguna sistem

3.2. Perancangan Sistem

3.2.1. Data Flow Diagram

3.2.1.1. Diagram Konteks

Diagram konteks atau diagram aliran data pada level 0 untuk sistem yang akan dibangun, ditampilkan pada gambar berikut ini :

Dokumen Sistem Pemerolehan Informasi

koleksi

cluster

User query pencarian

list dokumen Sistem

pemerolehan informasi


(52)

27

3.2.1.2. Overview DFD

Overview dari diagram aliran data untuk sistem yang akan dibangun, ditampilkan pada gambar berikut ini :

D o k u m e n S is te m P e m e ro le h an In fo rm as i k o le k si cl u ste r 1 . P e n g e lo m p o k an d o k u m e n S is te m P e m e ro le h a n Inf o rm as i U se r q u e ry p e n car ian li st d o k u m e n 2 . P e n car ian d o k u m e n T e rm C lu ste r Re co rd C e n tr o id Te rm li st Kolek si, ind

ex cluste r cen tro id In d e x d o k u m e n ce n tr o id Ind ex d ok um en D o k u m e n se su ai in d e x cl u st e r


(53)

28

3.2.1.3. DFD Level 2

3.2.1.3.1. DFD Proses 1 : Pengelompokan Dokumen

Diagram aliran data pada level 2 untuk proses pengelompokan dokumen ditampilkan pada gambar berikut :

Dokumen Sistem Pemerolehan Informasi koleksi

1.2. pembobotan

1.3. Pengelompokan

dokumen 1.1. preprocessing

Term

Cluster

Record Centroid Token list,

koleksi

Tf,df,w, term-document

matrix, koleksi

Term list

Index dok

umen

Koleksi, index cluster

centroid


(54)

29

3.2.1.3.2. DFD Proses 2 : Pencarian Dokumen

Diagram aliran data pada level 2 untuk proses pencarian dokumen ditampilkan pada gambar berikut :

User Sistem Pemerolehan Informasi query

1.2. Pembobotan query

1.3. Pemilihan cluster

termirip 1.1. Preprocessing query

Term

Cluster

Record Centroid Token list

TF-IDF query

df

Index dok umen

Dokumen sesuai index cluster

centroid

1.4. Perankingan dokumen Index

cluster, TF-IDF query Dokumen

terurut


(55)

30

3.2.2. Diagram Berjenjang

Diagram berjenjang (hierarchial chart) dari system yang akan dibangun ini ditampilkan pada gambar berikut :

Sistem pemerolehan informasi 1. Pengelompokan dokumen 2. Pencarian dokumen 1.1. preprocessing 1.2. pembobotan 1.3. Pengelompokan dokumen 2.1. Preprocessing query 2.2. Pembobotan query 2.3. Pemilihan cluster termirip 2.4. Perankingan dokumen Level 0 Level 1 Level 2

Gambar 3.9. Diagram berjenjang dari sistem yang akan dikembangkan

3.2.3. Deskripsi Proses

3.2.3.1. Deskripsi Proses 1 : Pengelompokan Dokumen

3.2.3.1.1. Deskripsi Proses 1.1 : Preprocessing

Preprocessing dilakukan untuk menghilangkan stopword dan menyederhanakan bentuk-bentuk term dengan cara stemming. Preprocessing ini berguna untuk mengurangi dimensi matriks term-document.

Setelah semua term diubah menjadi bentuk kata dasarnya, selanjutnya dilakukan tokenisasi. Dalam sistem ini, token yang diambil adalah semua token yang mengandung alfabet saja. Apabila token terdiri dari karakter alphanumeric atau numerik, maka token akan dibuang. Setiap token akan dicatat kemunculannya di tiap dokumen. Nilai ini menghasilkan term frequency (TF).


(56)

31

Selain itu, jumlah dokumen yang mengandung token tersebut akan dicatat juga. Jumlah ini menghasilkan nilai document frequency (DF).

Hasil dari proses ini adalah TF, DF, dan token-token yang nantinya akan dibobot oleh proses selanjutnya.

3.2.3.1.2. Deskripsi Proses 1.2 : Pembobotan

Input dari proses pembobotan adalah nilai-nilai TF tiap dokumen, DF tiap

term, serta token list. Token list selanjutnya disebut term list. Pembobotan dilakukan dengan rumus pada Persamaan 2.1.

Metode yang digunakan untuk pembobotan ini adalah metode TF-IDF. Hasil dari pembobotan ini kemudian dinormalisasi dengan normalisasi kosinus.

Hasil dari proses ini adalah tabel berisi bobot kata di tiap dokumen, dengan kolom sebagai term dan baris sebagai dokumen.

3.2.3.1.3. Deskripsi Proses 1.3 : Pengelompokan Dokumen

Setelah bobot kata per dokumen diketahui, maka pengelompokan dokumen dapat dilakukan. Algoritma yang digunakan adalah G-Means. Hasil dari proses ini adalah term list, centroid, serta dokumen yang telah dikelompokkan. Hasil ini kemudian disimpan dalam basis data.

3.2.3.2. Deskripsi Proses 2 : Pencarian Dokumen

3.2.3.2.1. Deskripsi Proses 2.1 : Preprocessing Query

Proses ini mirip dengan proses preprocessing dokumen. Perbedaannya adalah preprocessing ini dilakukan hanya untuk mendapat token dalam bentuk sederhana saja dari query dengan cara penghilangan stopword dan stemming.


(57)

32

3.2.3.2.2. Deskripsi Proses 2.2 : Pembobotan Query

Karena DF sudah diketahui dari proses pembobotan saat pengelompokan dokumen yang disimpan dalam basis data, maka proses pembobotan dapat dilakukan dengan menggunakan Persamaan 2.1.

3.2.3.2.3. Deskripsi Proses 2.3 : Pemilihan Cluster Termirip

Dalam proses ini, centroid bertindak sebagai dokumen. Dengan rumus pada Persamaan 2.2, maka dapat ditemukan cluster mana yang paling mirip dengan

query, yaitu yang memiliki skor paling tinggi.

3.2.3.2.4. Deskripsi Proses 2.4 : Perangkingan Dokumen

Dalam proses ini, dilakukan pembobotan ulang terhadap dokumen yang ada di dalam cluster yang terpilih. Pembobotan ulang dilakukan dengan menghitung DF dari tiap term yang ada. Hasil penghitungan DF akan digunakan untuk menghitung ulang nilai TF-IDF. Dari hasil tersebut, rumus pada Persamaan 2.2 digunakan lagi untuk memberikan ranking pada dokumen. Hasil proses ini adalah daftar dokumen-dokumen yang dianggap relevan oleh sistem, tersusun dari paling relevan ke paling tidak relevan.


(58)

33

3.2.4. Rancangan Basis Data

3.2.4.1. Desain Konseptual

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level konseptual disajikan dalam gambar berikut :

Cluster

Document Term

wakil punya

Id_cluster

Id_cluster uuiduuid valuevalue

N N

Id_term

Id_term termterm

N

N

tf

tf valuevalue

assign

assign

content

content topictopic Id_document

Id_document Record_idRecord_id 1

N

Stopword_Ina Id_stopword

Id_stopword stopwordstopword

Rootword_Ina Id_rootword

Id_rootword rootwordrootword

Gambar 3.10. ERD untuk sistem yang akan dibangun

3.2.4.2. Desain Logikal

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level logikal disajikan dalam gambar berikut :

Document Id_document (PK) Id_cluster Record_id Topic content Cluster Id_cluster (PK) uuid Term Id_term (PK) term Term_Document Id_document (FK) Id_term (FK) Tf w Centroid Id_cluster (FK) Id_term (FK) value Stopword_Ina Id_stopword stopword Rootword_Ina Id_rootword rootword


(59)

34

3.2.4.3. Desain Fisikal

3.2.4.3.1. Tabel Cluster

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Cluster disajikan dalam gambar berikut :

NO Nama Field Tipe Data Ukuran Keterangan

1 idCluster INT 11 Primary key dari tabel

Cluster

2 Uuid VARCHAR 300 UUID dari tiap cluster

Tabel 3.2. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Cluster

3.2.4.3.2. Tabel Document

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Document disajikan dalam gambar berikut :

NO Nama Field Tipe Data Ukuran Keterangan

1 Id_document INT 11 Primary key dari tabel

ClusterMember

2 Id_cluster INT 11 Foreign key tabel ini,

referensi dari tabel

Cluster

3 Record_id VARCHAR 1000 Path menuju ke

dokumen terkait

4 Content TEXT Isi dari dokumen

terkait

5 Topic TEXT Topik dari dokumen

terkait

Tabel 3.3. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Documents


(60)

35

3.2.4.3.3. Tabel Centroid

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Centroid disajikan dalam gambar berikut :

NO Nama Field Tipe Data Ukuran Keterangan

1 Id_cluster INT 100 Foreign key tabel ini,

referensi dari tabel

Cluster

2 Id_term INT 11 Foreign key tabel ini,

referensi dari tabel

Term

3 Value DOUBLE Nilai bobot tiap term

di centroid

Tabel 3.4. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Centroid

3.2.4.3.4. Tabel Term

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Term disajikan dalam gambar berikut :

NO Nama Field Tipe Data Ukuran Keterangan

1 Id_term INT 11 Primary key dari tabel

ini

2 Term VARCHAR 300 Kata yang disimpan

Tabel 3.5. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Term

3.2.4.3.5. Tabel Term_Document

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Term_Document disajikan dalam gambar berikut :

NO Nama Field Tipe Data Ukuran Keterangan

1 Id_document INT 11 Foreign key tabel ini,


(61)

36

Document

2 Id_term INT 11 Foreign key tabel ini,

referensi dari tabel

Term

3 Tf INT 11 Term frequency

4 W DOUBLE Bobot term

Tabel 3.6. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Term_Document

3.2.4.3.6. Tabel Stopword_Ina

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Stopword_Ina disajikan dalam gambar berikut :

NO Nama Field Tipe Data Ukuran Keterangan

1 Id INT 11 Primary key dari tabel

ini

2 Stopword VARCHAR 50 Kata yang menjadi

stopword

Tabel 3.7. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Stopword_Ina

3.2.4.3.7. Tabel Rootword_Ina

Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Rootword_Ina disajikan dalam gambar berikut :

NO Nama Field Tipe Data Ukuran Keterangan

1 Id INT 11 Primary key dari tabel

Rootword

2 Rootword VARCHAR 50 Kata yang menjadi

rootword

Tabel 3.8. Desain basis data untuk Sistem Pemerolehan Informasi berbasis Cluster pada level fisikal untuk relasi Rootword_Ina


(62)

37

3.2.5. Rancangan Antarmuka Pengguna

3.2.5.1. Antarmuka Pengelompokan Dokumen

Rancangan antarmuka pengguna untuk proses pengelompokan dokumen ditunjukkan dalam gambar berikut ini :

Gambar 3.12. Rancangan antarmuka pengguna untuk proses pengelompokan dokumen

3.2.5.2. Antarmuka Pencarian Dokumen

Rancangan antarmuka pengguna untuk proses pencarian dokumen ditunjukkan dalam gambar berikut ini :


(63)

38

BAB IV

IMPLEMENTASI SISTEM

4.1. Struktur Data

Data berupa daftar term dan hubungannya dengan dokumen yang terkait disimpan dalam sebuah matriks logikal. Matriks ini tersusun atas baris sebagai dokumen-dokumen dan kolom sebagai term, selanjutnya disebut atribut.

Dokumen disimpan dalam list yang disebut document list. Struktur data yang diimplementasikan untuk document list ini adalah ArrayList. Sementara itu, term

disimpan dalam term list. Term list menggunakan struktur data LinkedList yang dimodifikasi, selanjutnya disebut Modified LinkedList. Modified LinkedList pada dasarnya adalah LinkedList yang secara otomatis mengurutkan data yang masuk ke dalamnya. Pemilihan LinkedList didasarkan pada kemampuan struktur data tersebut dalam penyimpanan dengan ruang dinamis. Dalam sistem ini, term

digunakan sebagai basis pengurutan.

Secara ringkas, struktur data untuk menyimpan informasi hubungan dokumen dan term ini ditampilkan dalam gambar berikut ini :

Cluster 1 Cluster 1 Cluster 1

D

o

c 1

D

o

c 2

Term 1 Term 2 ClusterPool

Cluster

Document

Gambar 4.1 Struktur data untuk termlist yang menggunakan LinkedList dan documentlist yang menggunakan ArrayList


(64)

39

Sementara itu, HashMap digunakan untuk menyimpan master term dan DFnya. Master term ini nantinya digunakan untuk melakukan merge termlist agar seluruh dokumen memiliki panjang term list yang sama. Dengan kata lain, memiliki index yang sama untuk term yang sama.

Hashmap dalam penelitian ini memiliki struktur String term sebagai key dan int DF sebagai value. Pemilihan HashMap pada kasus ini didasarkan pada efisiensi HashMap dalam kecepatan pencarian nilai DF dibandingkan dengan penyimpanan dalam array ataupun List.

Visualisasi HashMap yang diimplementasikan adalah sebagai berikut :

Gambar 4.2. Struktur data untuk master termlist yang berupa HashMap

4.2. Implementasi Basis Data

Tabel-tabel yang digunakan dalam sistem ini terlampir dalam bentuk create statement di bagian lampiran dokumen ini.

4.3. Implementasi Pengelompokan Dokumen

4.3.1. Implementasi G-Means

Implementasi algoritma G-Means menurut Hamerly (2004), dengan Java adalah sebagai berikut:

1. Pilih level signifikan α untuk uji. 1. public double step1() { 2. double alpha = 0.05;


(65)

40 3. return alpha;

4. }

Listing 4.1. Penentuan level signifikan 0.05

2. Dari pusat cluster tersebut, ambil dua buah “anak” pusat cluster, dinotasikan dengan c1 dan c2.

1. public double[][] step2Alternate2(Cluster cs) { 2. Calculation calc = new Calculation(); 3. Utility util = new Utility();

4. double[][] valueMatrix = util.convert2DPCAListToMatrix(cs); 5. double[] clusterCenter =

util.convert1DPCARecordToArray(cs.getCentroid()); 6.

7. for (int i = 0; i < valueMatrix.length; i++) { 8. for (int j = 0; j < valueMatrix[i].length; j++) { 9. if (j == valueMatrix[i].length - 1) {

10. System.out.println(valueMatrix[i][j] + ""); 11. } else {

12. System.out.print(valueMatrix[i][j] + ","); 13. }

14. } 15. } 16.

17. Matrix dataMatrix = new Matrix(valueMatrix); 18.

19. PCA pca = new PCA(dataMatrix, true); 20.

21. Matrix eigenvectorsMatrix = pca.getEigenvectorsMatrix(); 22. double eigenval = pca.getEigenvalue(0);

23.


(66)

41

eigenvectorsMatrix.getRowDimension() - 1, 0, 0); 25. double[][] array = princCompMtr.getArray(); 26.

27. double[] princComp = new double[array.length]; 28. for (int i = 0; i < array.length; i++) {

29. princComp[i] = (array[i][0] * (Math.sqrt(2*eigenval/Math.PI))); 30. }

31.

32. double[] initCentroid1 = new double[clusterCenter.length]; 33. double[] initCentroid2 = new double[clusterCenter.length]; 34.

35. for (int i = 0; i < clusterCenter.length; i++) { 36.

37. if(Double.isNaN(princComp[i]) || Double.isInfinite(princComp[i])) { 38. princComp[i] = 0.0; 39. }

40.

41. initCentroid1[i] = clusterCenter[i] + princComp[i]; 42. initCentroid2[i] = clusterCenter[i] - princComp[i]; 43. }

44.

45. double[][] child = new double[2][initCentroid1.length]; 46.

47. child[0] = initCentroid1; 48. child[1] = initCentroid2; 49.

50. return child; 51.

52. }


(1)

920. if (preg_match("/terpelajar/", kata)) { 921. kata1 = preg_replace("/terpel/", "", kata); 922. if (cekKamus(kata1)) {

923. return kata1; // Jika ada balik 924. }

925. kata2 = Del_Derivation_Suffixes(kata1); 926. if (cekKamus(kata2)) {

927. return kata2; 928. }

929. }

930. /*---e d “terpelajar―-―, ---*/ 931. /*---kata seseorang(kasus khusus), ---*/ 932. if (preg_match("/seseorang/", kata)) {

933. kata1 = preg_replace("/^(sese)/", "", kata); 934. if (cekKamus(kata1)) {

935. return kata1; // Jika ada balik 936. }

937. }

938. /*---end seseorang-―, ---*/ 939. /*---awalan "diber-"---*/ 940. if (preg_match("/^(diber)\\S{1,}/", kata)) {

941. kata1 = preg_replace("/^(diber)/", "", kata); 942. if (cekKamus(kata1)) {

943. return kata1; // Jika ada balik 944. }

945. kata2 = Del_Derivation_Suffixes(kata1); 946. if (cekKamus(kata2)) {

947. return kata2; 948. }

949. /*-- Cek luluh -l---*/

950. kata1 = preg_replace("/^(diber)/", "r", kata); 951. if (cekKamus(kata1)) {

952. return kata1; // Jika ada balik 953. }

954. kata2 = Del_Derivation_Suffixes(kata1); 955. if (cekKamus(kata2)) {

956. return kata2; 957. }

958. }

959. /*---end "diber-"---*/ 960. /*---awalan "keber-"---*/ 961. if (preg_match("/^(keber)\\S{1,}/", kata)) {

962. kata1 = preg_replace("/^(keber)/", "", kata); 963. if (cekKamus(kata1)) {

964. return kata1; // Jika ada balik 965. }

966. kata2 = Del_Derivation_Suffixes(kata1); 967. if (cekKamus(kata2)) {


(2)

968. return kata2; 969. }

970. /*-- Cek luluh -l---*/

971. kata1 = preg_replace("/^(keber)/", "r", kata); 972. if (cekKamus(kata1)) {

973. return kata1; // Jika ada balik 974. }

975. kata2 = Del_Derivation_Suffixes(kata1); 976. if (cekKamus(kata2)) {

977. return kata2; 978. }

979. }

980. /*---end "keber-"---*/ 981. /*---awalan "keter-"---*/ 982. if (preg_match("/^(keter)\\S{1,}/", kata)) {

983. kata1 = preg_replace("/^(keter)/", "", kata); 984. if (cekKamus(kata1)) {

985. return kata1; // Jika ada balik 986. }

987. kata2 = Del_Derivation_Suffixes(kata1); 988. if (cekKamus(kata2)) {

989. return kata2; 990. }

991. /*-- Cek luluh -l---*/

992. kata1 = preg_replace("/^(keter)/", "r", kata); 993. if (cekKamus(kata1)) {

994. return kata1; // Jika ada balik 995. }

996. kata2 = Del_Derivation_Suffixes(kata1); 997. if (cekKamus(kata2)) {

998. return kata2; 999. }

1000. }

1001. /*---end "keter-"---*/ 1002. /*---awalan "berke-"---*/ 1003. if (preg_match("/^(berke)\\S{1,}/", kata)) {

1004. kata1 = preg_replace("/^(berke)/", "", kata); 1005. if (cekKamus(kata1)) {

1006. return kata1; // Jika ada balik 1007. }

1008. kata2 = Del_Derivation_Suffixes(kata1); 1009. if (cekKamus(kata2)) {

1010. return kata2; 1011. }

1012. }

1013. /*---end "berke-"---*/

1014. /* --- Cek Ada Tidak ya Prefik/A ala “di-―, “ke-―, “se-―, “te-―, “be-―, “me-―, atau “pe-―) ---*/


(3)

1015. if (preg_match("/^(di|[kstbmp]e)\\S{1,}/", kata) == false) { 1016. return kataAsal;

1017. } 1018.

1019. return kataAsal; 1020. }

1021.

1022. public boolean eregi(String regex, String word) { 1023. // regex = regex.replace("+$", "++$");

1024. Matcher matcher = Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(word); 1025. return matcher.find();

1026. } 1027.

1028. public String eregi_replace(String regex, String replacement, String word) { 1029. // regex = regex.replace("+$", "++$");

1030. Matcher matcher = Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(word); 1031. return matcher.replaceAll(replacement);

1032. } 1033.

1034. public boolean preg_match(String regex, String word) { 1035. char[] charArray = regex.toCharArray();

1036. regex = regex.substring(1, charArray.length - 1); 1037. return eregi(regex, word);

1038. } 1039.

1040. public String preg_replace(String regex, String replacement, String word) { 1041. char[] charArray = regex.toCharArray();

1042. regex = regex.substring(1, charArray.length - 1); 1043. return eregi_replace(regex, replacement, word); 1044. }

1045. 1046. }

1.2.1.10.

Package stopwordremover

1.2.1.10.1.

Kelas StopWordRemover.java

1. /*

2. * To change this license header, choose License Headers in Project Properties. 3. * To change this template file, choose Tools | Templates

4. * and open the template in the editor. 5. */

6.

7. package stopwordremover; 8.

9. import database.Connection; 10. import java.io.File;


(4)

12. import java.sql.PreparedStatement; 13. import java.sql.ResultSet;

14. import java.sql.SQLException; 15. import java.util.ArrayList; 16. import java.util.List;

17. import java.util.logging.Level; 18. import java.util.logging.Logger;

19. import org.apache.commons.io.FileUtils; 20.

21. /** 22. *

23. * @author pacman 24. */

25. public class StopWordRemover { 26.

27. private List<String> resources; 28.

29. public StopWordRemover() { 30. }

31.

32. public StopWordRemover(String path) { 33. try {

34. loadFile(path);

35. } catch (IOException ex) {

36. Logger.getLogger(StopWordRemover.class.getName()).log(Level.SEVERE, null, ex); 37. } catch (SQLException ex) {

38. Logger.getLogger(StopWordRemover.class.getName()).log(Level.SEVERE, null, ex); 39. }

40. } 41.

42. private boolean isInList(String word) throws SQLException { 43.

44. word = word.trim(); 45.

46. java.sql.Connection conn = Connection.getConnection(); 47.

48. String sql = "SELECT stopword FROM stopword_ina WHERE stopword = ?"; 49. conn.setAutoCommit(false);

50.

51. PreparedStatement ps = conn.prepareStatement(sql); 52. ps.setString(1, word);

53.

54. ResultSet rs = ps.executeQuery(); 55.

56. conn.commit(); 57.

58. boolean check = false; 59.


(5)

60. while (rs.next()) { 61. check = true; 62. break; 63. }

64.

65. conn.close(); 66.

67. return check; 68. }

69.

70. public String removeStopWord(String words) { 71. String[] wordArray = words.split("\\s+"); 72. String newSentence = "";

73.

74. for (String word : wordArray) { 75. boolean inList = false; 76. try {

77. inList = isInList(word); 78. } catch (SQLException ex) {

79. Logger.getLogger(StopWordRemover.class.getName()).log(Level.SEVERE, null, ex); 80. }

81.

82. if(!inList && !containNumeric(word)) { // if tidak ada di stopword list AND tidak mengandung angka

83. newSentence = newSentence + word + " "; 84. }

85. }

86. return newSentence; 87. }

88.

89. public boolean containNumeric(String word) { 90. return word.matches(".*\\d+.*");

91. } 92.

93. public String[] removeNonAlphaNumeric(String[] sentence) { 94. for (int i = 0; i < sentence.length; i++) {

95. sentence[i] = removeNonAlphaNumeric(sentence[i]); 96. }

97. return sentence; 98. }

99.

100. public String removeNonAlphaNumeric(String words) { 101. String newWords = words.replaceAll("[^a-zA-Z0-9 ]", " "); 102. return newWords;

103. } 104.

105. public String[] removeStopWord(String[] sentence) { 106.


(6)

107. for (int i = 0; i < sentence.length; i++) {

108. sentence[i] = removeStopWord(sentence[i]); 109. }

110. return sentence; 111. }