CLUSTERING DOKUMEN RINGKASAN TESIS MAHASISWA PASCASARJANA IPB BERBASIS FREQUENT ITEMSETS MENGGUNAKAN ALGORITME BISECTING K-MEANS ARI SETIAWAN SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR BOGOR 2016 PERNYATAAN MENGENAI TESIS DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa tesis berjudul Clustering Dokumen Ringkasan Tesis Mahasiswa Pascasarjana IPB berbasis Frequent Itemsets menggunakan Algoritme Bisecting K-Means adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir tesis ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Mei 2016 Ari Setiawan NIM G651120051 RINGKASAN ARI SETIAWAN. Clustering Dokumen Ringkasan Tesis Mahasiswa Pascasarjana IPB berbasis Frequent Itemsets menggunakan Algoritme Bisecting K-Means. Dibimbing oleh IMAS SUKAESIH SITANGGANG dan IRMAN HERMADI. Proses pencarian dokumen tesis mahasiswa Pascasarjana IPB pada repository IPB dapat dipercepat dengan cara mengelompokkan dokumen tersebut berdasarkan kata kunci dan kombinasi kata kunci yang sering muncul dalam dokumen tersebut. Metode frequent itemsets dapat memunculkan term-term yang frekuensi kemunculannya tinggi terhadap kumpulan dokumen. Term-term yang sering muncul dalam dokumen dapat mewakili sebuah dokumen. Dalam proses temu kembali dokumen, pada umumnya kata kunci dimasukkan oleh pengguna. Pengelompokkan dokumen berdasarkan frequent term (dalam hal ini kata kunci) dapat mempercepat pengembalian dokumen yang dicari. Penelitian ini dilakukan untuk menggali frequent itemsets dari kumpulan dokumen ringkasan tesis mahasiswa Pascasarjana IPB menggunakan algoritme Apriori. Proses clustering terhadap frequent itemsets yang terbentuk menggunakan algoritme Bisecting K-Means, untuk kemudian digunakan dalam proses clustering dokumen. Proses pencarian dokumen akan dilakukan terhadap dokumen yang telah dikelompokkan. Metode dalam penelitian ini diawali dengan mengumpulkan data ringkasan tesis mahasiswa Pascasarjana pada repositori IPB. Kemudian dilakukan praposes data yang meliputi tonization, remove number, stopword removal, stemming, remove punctuation, dan remove sparse term. Selanjutnya proses menggali frequent itemsets menggunakan algoritme Apriori dan pengelompokkan dokumen berbasis frequent itemsets menggunakan algoritme Bisecting K-Means. Tahap terakhir adalah melakukan analisis dan evaluasi hasil cluster. Pada tahap ini akan diuji pencarian dokumen terhadap kata kunci yang dimasukkan berdarakan itemsets yang dihasilkan. Hasil penelitian menunjukkan bahwa pengelompokan dokumen menggunakan algoritme Bisecting K-Means dapat pengelompokkan itemsets yang mempunyai nilai support tinggi. Pengujian dengan nilai k=3 sampai dengan k=10, pada pengujian k=10 dapat memperoleh hasil cluster yang baik, dengan nilai Sum of Squared Error yaitu 132.15. Pengujian dengan nilai k=10, cluster dua dapat mengelompokkan beberapa itemsets yang mempunyai nilai support tertinggi, yaitu itemsets {base,method}, {base,develop}, {analysi,base}, dan {base,product}. Akurasi hasil clustering berbasis frequent itemsets sangat dipengaruhi oleh term-term yang dihasilkan pada tahap praproses data, yaitu pada tahap penghapusan term berdasarkan tabel stopword, remove sparse term dan nilai minimum support (minsup) karena berdampak terhadap banyaknya jumlah frequent itemsets yang dihasilkan. Term-term yang dihasilkan dengan pendekatan frequent itemsets masih bersifat umum sehingga tidak dapat digunakan untuk pencarian dokumen dengan topik penelitian yang spesifik. Kata kunci: Apriori, Bisecting K-Means, document clustering, frequent itemsets SUMMARY ARI SETIAWAN. Clustering IPB Graduate Student Thesis Summary based on Frequent Itemsets using Bisecting K-Means Algorithm. Supervised by IMAS SUKAESIH SITANGGANG and IRMAN HERMADI. The searching documents of IPB graduate student’s thesis in IPB repository can be accelerated by grouping these documents based on keywords and its combinations that often appear in the document. Frequent itemsets approach can discover terms that are frequently occurred in the documents. These frequent terms may represent content of the documents. In the document retrieval process, keywords are commonly entered by users. Grouping documents based on frequent term including keywords can accelerate the document retrieval. This research was conducted to explore the frequent itemsets of document summaries IPB graduate student’s thesis using Apriori algorithm. Clustering frequent itemsets was performed using the bisecting K-Means algorithm. The searching documents will be done on clusters of documents. The research steps in this research begin by collecting of IPB Graduate student thesis’s summaries. Data preprocessing consists of several tasks including tokenization, stopword removal, stemming, removing numbers, removing punctuation and removing spare terms. Furthermore, frequent terms were discovered using Apriori algorithm. Based on the frequent terms, documents were clustered using bisecting K-Means algorithm. The last step is analyzing and evaluating the clustering results. At this stage clusters of documents were evaluated based on keywords that were selected from the frequent terms. The results show that the best clustering result was obtained at number of clusters of 10 with the Sum of Squared Error is 132.15. These clusters contain documents that have frequent terms {base, method}, {base, develop}, {analysi, base}, and {base, product}. This study show that data preprocessing task including removing stopwords and removing sparse terms have high influence on frequent terms generation. This study discovers frequents terms related to the common topics in the summaries of IPB graduate student’s thesis therefore the terms cannot be used to discover thesis related to specific topics. Keywords: Apriori, Bisecting K-Means, document clustering, frequent itemsets © Hak Cipta Milik IPB, Tahun 2016 Hak Cipta Dilindungi Undang-Undang Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan IPB Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis ini dalam bentuk apa pun tanpa izin IPB CLUSTERING DOKUMEN RINGKASAN TESIS MAHASISWA PASCASARJANA IPB BERBASIS FREQUENT ITEMSETS MENGGUNAKAN ALGORITME BISECTING K-MEANS ARI SETIAWAN Tesis sebagai salah satu syarat untuk memperoleh gelar Magister Komputer pada Program Studi Ilmu Komputer SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR BOGOR 2016 Penguji Luar Komisi pada Ujian Tesis: DrEng Wisnu Ananta Kusuma, ST MT PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian yang dilaksanakan sejak bulan April 2014 ini ialah text minning, dengan judul Clustering Dokumen Ringkasan Tesis Mahasiswa Pascasarjana IPB berbasis Frequent Itemsets menggunakan Algoritme Bisecting K-Means. Terima kasih penulis ucapkan kepada Ibu Dr Imas Sukaesih Sitanggang, SSi MKom dan Bapak Irman Hermadi, SKom MS PhD selaku pembimbing, serta Bapak DrEng Wisnu Ananta Kusuma, ST MT selaku penguji yang telah banyak memberikan saran untuk penelitan ini. Ungkapan terima kasih juga disampaikan kepada ayahanda, ibunda, isteriku tersayang Dewi Tirta Ayu, Anak-anakku tersayang Devan, Abel, Nadine, Reynand, dan keluarga Bapak Haji Saefulloh. Tak lupa pula saya ucapkan terima kasih kepada Priyo Puji Nugroho yang telah membantu pengumpulan data serta teman-teman Andri Hidayat, Mulyani yang telah membantu dan menemani saya saat menempuh masa-masa sulit penelitian. Ungkapan terima kasih juga penulis sampaikan pada pengelola Pascasarjana, seluruh Dosen dan Staf Akademik Departemen Ilmu Komputer Institut Pertanian Bogor, teman-teman MKom Angkatan 14. Semoga karya ilmiah ini bermanfaat. Bogor, Mei 2016 Ari Setiawan DAFTAR ISI DAFTAR TABEL vi DAFTAR GAMBAR vi DAFTAR LAMPIRAN vi 1 PENDAHULUAN Latar Belakang Rumusan Masalah Tujuan Penelitian Ruang Lingkup Penelitian Manfaat Penelitian 1 1 2 3 3 3 2 TINJAUAN PUSTAKA Document Clustering Partitional Clustering Algoritme Bisecting K-Means Representasi Dokumen Menggunakan Vector Space Model (VSM) Clustering Dokumen Berbasis Frequent Itemset Algoritme Apriori Term Frequency – Invers Document Frequency 3 3 4 4 5 5 6 6 3 METODE Data Penelitian Metode Penelitian Praproses Data Penggalian frequent itemsets dengan algoritme Apriori Clustering Frequent Term Menggunakan Algoritme Bisecting K-Means Evaluasi Cluster Dokumen 7 7 7 8 10 10 11 4 HASIL DAN PEMBAHASAN Data Penelitian Praproses Data Penggalian frequent itemsets dengan algoritme Apriori Clustering Frequent Term Menggunakan algoritme Bisecting K-Means Evaluasi Cluster Dokumen 11 11 12 18 21 22 4 SIMPULAN DAN SARAN Simpulan Saran 28 28 29 DAFTAR PUSTAKA 29 LAMPIRAN 31 RIWAYAT HIDUP 38 DAFTAR TABEL 1 Frequent Itemsets 2 Dokumen yang mengandung frequent itemsets 3 Nilai SSE cluster dokumen menggunakan algoritme Bisecting K-Means 4 Cluster frequent itemsets menggunakan algoritme Bisecting K-Means berdasarkan frequent itemsets dengan nilai k 10 5 Jum;ah dokumen yang mengandung frequent itemsets 6 Daftar tabel stopword tambahan untuk memunculkan term yang lebih spesifik 7 Pembentukan frequent itemsets terhadap pengujian nilai sparsity, minsup dan mincof 8 Pembentukan frequent itemsets terhadap pengujian nilai sparsity 0.90, minsup 0.08, dan mincof 0.8 19 21 21 22 24 25 26 27 DAFTAR GAMBAR 1 2 3 4 Diagram alir penelitian Dokumen ringkasan tesis mahasiswa Pascasarjana IPB Document term matrix Wordcloud untuk dokumen ringkasan tesis mahasiswa Pascasarjana IPB 5 Korelasi antar items (term) 6 Wordcloud perubahan pembentukan itemsets akibat penambahan tabel stopword 7 Korelasi antar items setelah penambahan tabel stopword 8 11 17 18 20 26 28 DAFTAR LAMPIRAN 1 Source code praposes data 2 Source code Source code Penggalian Frequent Itemsets 3 Source code clustering menggunakan algoritme Bisecting K-Means 31 33 34 1 PENDAHULUAN Latar Belakang Pengelompokan dokumen atau pengelompokan teks adalah salah satu tema utama dalam text mining. Hal ini mengacu pada proses pengelompokan dokumen dengan isi atau topik yang sama ke dalam kelompok untuk meningkatkan ketersediaan dan keandalan aplikasi text mining seperti pencarian informasi (Zamir et al. 1997), klasifikasi teks (Aggarwal et al. 1999), dan peringkasan dokumen (Larson et al. 1999). Ada tiga jenis masalah dalam pengelompokan dokumen. Masalah pertama adalah bagaimana mendefinisikan kesamaan dua dokumen. Masalah kedua adalah bagaimana menentukan jumlah yang tepat dari cluster dokumen koleksi teks dan yang ketiga adalah bagaimana mengelompokkan dokumen secara tepat sesuai dengan cluster. Document clustering adalah proses pengelompokkan dokumen secara otomatis ke dalam suatu cluster, sehingga dokumen-dokumen yang berada dalam sebuah cluster akan memiliki kemiripan yang tinggi dibandingkan dokumen pada cluster yang berbeda (Steinbach et al. 2000). Dalam beberapa tahun terakhir, clustering dokumen web telah menjadi area penelitian yang sangat menarik di antara komunitas akademis dan ilmiah yang terlibat dalam temu kembali informasi (information retrieval) dan pencarian web (Carpineto et al. 2009). Sistem klasifikasi dokumen web berusaha untuk meningkatkan cakupan (jumlah) dokumen yang disajikan bagi pengguna untuk meninjau, sekaligus mengurangi waktu yang dihabiskan dalam pencarian dokumen (Yates et al. 1999). Dalam information retrieval, sistem klasifikasi dokumen web disebut mesin pengelompokan web. Sistem tersebut biasanya terdiri atas empat komponen utama yaitu hasil akuisisi pencarian, pre-prosesing input, konstruksi dan pelabelan cluster, serta visualisasi yang dihasilkan cluster (Carpineto et al. 2009). Konsep frequent itemsets berasal dari association rule mining yang digunakan untuk menemukan hubungan aturan item dalam basis data transaksional yang besar (Agrawal et al. 1993). Sebuah frequent itemsets adalah sekumpulan frequent item, yang sering terjadi pada transaksi yang melebihi nilai ambang batas tertentu yang disebut minimum support (minsup). Penambangan frequent itemsets lebih sering mengarah ke penemuan asosiasi dan korelasi antara item dalam jumlah data yang besar yang telah dikumpulkan dan disimpan secara terus menerus ke dalam data transaksional. Frequent itemsets dalam pengelompokan dokumen dapat dikaitkan dengan permintaan pengurangan dimensi untuk representasi. Dalam Vector Space Model (VSM), keterbatasan tempat penyimpanan sementara dari kata-kata individu menyebabkan dimensi ruang yang besar. Tidak semua dokumen dalam koleksi berisi semua indeks istilah yang digunakan dalam representasi dan sebagai akibat kekurangan ruang terjadi pada vektor dokumen sangat besar. Sebuah frequent itemsets adalah satu set kata-kata individu yang mencakup makna konseptual dan kontekstual dari kata individu (Wen et al. 2010). Repositori IPB adalah suatu website yang berisi kumpulan tugas akhir, tesis dan disetasi mahasiswa IPB. Fitur yang ditampilkan pada repositori sudah termasuk lengkap. Tampilan antar muka mempermudah dalam proses pencarian dokumen. Pengguna dapat mencari dokumen berdasarkan jenis dokumen karya ilmiah, tahun penerbitan, nama penulis, judul, dan subjek. Responses time dalam proses informasi retrieval juga terbilang cepat. Namun dalam beberapa kasus tingkat efektifitas pengembalian dokumen tidak relevan dengan kata kunci yang dimaksukkan. Hal ini dapat disebabkan beberapa faktor, salah satu di antaranya mengenai pengelompokkan dokumen. Dengan mengelompokkan dokumen dalam suatu cluster dengan tingkat kemiripan dokumen yang sama, maka proses pencarian tersebut tertuju pada suatu cluster tertentu, dokumen yang akan dikembalikan akan berisi dokumen yang ada pada cluster tersebut, sehingga tingkat relevansi dokumen bisa dikatakan efektif. Clustering selain dapat mengelompokkan dokumen dengan tingkat kemiripan yang tinggi dalam suatu cluster, dapat juga digunakan dalam hal peringkasan dokumen dan proses information retrieval. Dalam penelitian ini digunakan data repositori IPB, khususnya pada kumpulan dokumen ringkasan tesis mahasiswa Pascasarjana IPB. Clustering dokumen diperlukan untuk mengelompokkan dokumen berdasarkan kemiripan dokumen ke dalam satu cluster, dan akan dilakukan pengujian terhadap tingkat efektifitas dalam proses temu kembali dokumen. Teknik data mining yang digunakan dalam penelitian ini adalah Frequent Pattern Mining dan Clustering. Frequent Pattern Mining akan menentukan terms dalam kumpulan dokumen berbasis frequent itemsets dari kumpulan dokumen. Clustering frequent term menggunakan algoritme Bisecting K-Means digunakan untuk proses pengelompokkan kemiripan dokumen ke dalam masing–masing cluster. Clustering dokumen berbasis frequent itemsets merupakan salah satu metode clustering dokumen yang dapat digunakan untuk mengatasi masalah tingginya ruang dimensi dari dokumen yang akan dikelompokkan. Namun waktu komputasi yang dibutuhkan pada proses clustering terhadap database yang besar akan terasa lama. Oleh sebab itu akan dipadukan dengan metode clustering menggunakan algoritme Bisecting K-Means. Dalam beberapa penelitian sebelumnya, algoritme Bisecting K-Means mampu mempercepat proses kumputasi terhadap database yang besar karena dapat melakukan pengulangan fungsi yang kompleksitasnya tinggi. Pengulangan tersebut mampu mengelompokkan suatu objek atau dokumen dalam suatu cluster dengan tingkat kemiripan yang tinggi. Rumusan Masalah Berdasarkan latar belakang masalah di atas maka rumusan masalah dalam penelitian ini adalah bagaimana menggali frequent itemsets dan mengelompokkan dokumen berbasis frequent itemsets pada kumpulan dokumen ringkasan tesis mahasiswa Pascasarjana IPB, sehingga proses pencarian yang dilakukan terhadap cluster dapat mengembalikan dokumen yang sesuai dengan kata kunci yang dimasukkan. Tujuan Penelitian 1. 2. Tujuan dari penelitian ini adalah sebagai berikut: Menentukan frequent term dari kumpulan dokumen ringkasan tesis mahasiswa Pascasarjana IPB menggunakan algoritme Apriori. Pengelompokkan dokumen berbasis frequent itemset menggunakan algoritme Bisecting K-Means. Ruang Lingkup Penelitian Adapun ruang lingkup dalam penelitian ini adalah data dokumen berupa ringkasan tesis mahasiswa Pascasarjana IPB dalam Bahasa Inggris sebanyak 295 dokumen yang diambil secara acak dari berbagai disiplin ilmu. Manfaat Penelitian Hasil penelitian ini diharapkan dapat mempercepat proses pencarian dokumen berdasarkan kata kunci yang dimasukkan pengguna terhadap hasil clustering dokumen dan bukan terhadap keseluruhan kumpulan dokumen. 2 TINJAUAN PUSTAKA Document Clustering Secara umum clustering dokumen adalah proses mengelompokkan dokumen berdasarkan kemiripan antara satu dengan yang lain dalam satu cluster. Tujuannya adalah untuk memisahkan dokumen yang relevan dari dokumen yang tidak relevan (Zhang et al. 2001). Pengelompokan ini didasarkan pada hipotesa yang dikemukakan oleh Van Rijsbergen bahwa dokumen-dokumen yang berkaitan erat cenderung sesuai dengan permintaan informasi yang sama. Atau dengan kata lain, dokumen-dokumen yang relevan dengan suatu query cenderung memiliki kemiripan satu sama lain dari pada dokumen yang tidak relevan, sehingga dapat dikelompokkan ke dalam suatu cluster. Oleh karena itu, suatu cluster berisi kelompok dokumen homogen yang saling berkaitan antara satu dengan yang lain. Clustering dokumen dapat dilakukan sebelum atau sesudah proses temu kembali (Zhang et al. 2001). Clustering dokumen yang dilakukan sebelum proses temu kembali informasi, koleksi dokumen dikelompokkan dalam cluster berdasarkan kemiripan (similarity) antar dokumen. Selanjutnya dalam proses temu kembali informasi, apabila suatu dokumen ditemukan maka seluruh dokumen yang berada dalam cluster yang sama dengan dokumen tersebut juga dapat ditemukan. Sementara itu, clustering dokumen yang dilakukan setelah proses temu kembali informasi, dokumen-dokumen yang dihasilkan disajikan dalam gugus yang terbentuk berdasarkan kemiripan antar dokumen tersebut, sehingga mempermudah pencari informasi untuk memberikan interpretasi terhadap hasil penelusuran sesuai dengan kebutuhannya. Menurut Rijbergen (1979), clustering dokumen telah lama diterapkan untuk meningkatkan efekifitas temu kembali informasi. Penerapan clustering ini didasarkan pada suatu hipotesis (cluster-hypothesis) bahwa dokumen yang relevan akan cenderung berada pada cluster yang sama jika pada koleksi dokumen dilakukan clustering. Beberapa penelitian untuk dokumen berbahasa Inggris menerapkan clustering dokumen untuk memperbaiki kinerja dalam proses pencarian (Tombros 2002). Satu hal menarik adalah tidak ada algoritma clustering terbaik yang dapat diaplikasikan terhadap semua bentuk data (Achtert et al. 2005). Partitional Clustering Dalam partitional clustering, algoritme awal melakukan pembagian data dalam cluster dan kemudian memindahkannya dari satu kelompok ke yang lain didasarkan pada optimisasi dari kriteria yang telah ditentukan atau fungsi tujuan (Jain et al. 1999). Algoritme yang paling representatif menggunakan teknik ini adalah K-Means dan K-Medoids. Metode partisi akan memindahkan dokumen dari satu cluster ke cluster yang lain, mulai dari partisi awal. Metode tersebut berdasarkan pada jumlah cluster yang ditetapkan oleh pengguna. Untuk mencapai optimalitas global dalam pengelompokkan berbasis partisi, proses pembagian lengkap dari semua partisi yang mungkin diperlukan. Karena proses tersebut tidak layak, maka metode greedy digunakan dalam bentuk optimasi iteratif dengan menggunakan metode relokasi iteratif untuk merelokasi poin antara k-cluster. Ada dua cara untuk komputasi clustering dokumen dalam metode partitional clustering, baik secara langsung atau melalui urutan bisecting atau perpecahan berulang (Zhao dan Karypis 2002). Metode partisi pertama menciptakan set awal partisi k, di mana k adalah parameter jumlah partisi untuk membangun cluster, kemudian menggunakan teknik relokasi berulang yang mencoba untuk meningkatkan partisi dengan benda bergerak dari satu kelompok ke kelompok lain. Metode partisi khas termasuk K-Means, K-Medoids, dan CLARANS (Han et al. 2012). Pada tahun 2000 (Steinbach et al. 2000), sebuah penelitian menghasilkan algoritme Bisecting K-means dengan menggabungkan metode Divisive Hierarchical Clustering dan Partitional Clustering memberikan hasil yang lebih baik mengenai akurasi dan efisiensi dibandingkan dengan metode Unweighted Pair Group Method with Arithmetic Mean (UPGMA) dan algoritme K-Means (Steinbach et al. 2000). Algoritme Bisecting K-Means Algoritme clustering K-Means, adalah varian dari algoritme K-Means yang dikenal karena kesederhanaan dan digunakan dalam berbagai bidang untuk pengenalan pola dan analisis cluster. Namun, perkembangan algoritme dalam text mining telah banyak dikembangkan, salah satunya adalah algoritme Bisecting K-Means, yaitu dengan mengembangkan varian dari algoritme K-Means, sehingga memberikan hasil pengelompokan yang lebih baik daripada K-Means. Metode Bisecting K-Means (Steinbach et al. 2000) mencoba menggabungkan pendekatan partitional dengan divisive hierarchical, yaitu mula-mula seluruh dokumen dibagi dua dengan cara K-Means (bisecting-step). Selanjutnya cara itu dikenakan pada tiap-tiap cluster sampai diperoleh k buah cluster. Algoritme Bisecting K-Means dimulai dengan satu cluster dan kemudian membagi cluster menjadi dua. Cluster perpecahan ditentukan dengan meminimalkan Sum of Squared Error (SSE). Dasar algoritme Bisecting K-Means (Steinbach et al. 2000) adalah: 1. Inisialisasi satu cluster yang akan di split (dibagi). 2. Split dua cluster dengan mencari 2 sub cluster menggunakan algoritme K-Mean. 3. Ulangi langkah 2, untuk nilai tetap sebanyak iterasi yg dilakukan dan mengambil perpecahan yang menghasilkan clustering dengan keseluruhan kesamaan tertinggi, ambil hasil clustering yang terbaik yaitu rata-rata nilai document similarity yang terbaik. 4. Ulangi langkah 1, 2, dan 3 sampai jumlah cluster yang diinginkan tercapai (memilih split gugus yang memberikan nilai SSE terkecil). Untuk menentukan perpecahan atau membagi cluster sesuai nilai k ditentukan dengan menggunakan nilai SSE terkecil. Persamaan 1 digunakan untuk mencari SSE (Steinbach et al. 2000). K SSE d ( p, m ) 2 i (1) i 1 xci dengan : pci ci mi d : : : : setiap data titik pada cluster i center cluster i centroid pada cluster i jarak pada masing-masing cluster i Representasi Dokumen Menggunakan Vector Space Model (VSM) Vector Space Model (VSM) adalah metode untuk melihat tingkat kedekatan atau kesamaan (similarity) term dengan cara pembobotan term. Dokumen dipandang sebagi sebuah vektor yang memiliki magnitude (jarak) dan direction (arah). Pada VSM, sebuah istilah direpresentasikan dengan sebuah dimensi dari ruang vektor. Relevansi sebuah dokumen ke sebuah query didasarkan pada similaritas diantara vektor dokumen dan vektor query (Yates 1999). VSM digunakan untuk representasi dokumen. Dalam model vektor setiap dokumen secara konseptual direpresentasikan sebagai vektor dari kata kunci yang diambil dari dokumen dengan bobot terkait mewakili pentingnya istilah kunci dalam dokumen maupun dalam keseluruhan dokumen corpus. Pada model ini, query dan dokumen dianggap sebagai vektor-vektor pada ruang n-dimensi, dimana n adalah jumlah dari seluruh term yang ada dalam leksikon (Ian et al. 1999). Leksikon adalah daftar semua term yang ada dalam indeks. Clustering Dokumen Berbasis Frequent Itemsets Konsep frequent itemsets sebenarnya berasal dari penggalian kaidah asosiasi (association rule mining). Frequent itemsets untuk text mining dapat dibagi menjadi dua kategori yaitu: penggunaan frequent itemsets untuk kategorisasi dokumen dan penggunaan frequent itemsets dalam clustering dokumen. Motivasi dalam mengadaptasi frequent itemsets pada proses clustering dokumen berkaitan dengan permintaan untuk mengurangi dimensi dari representasi suatu dokumen. Dalam VSM, sekumpulan kata-kata akan mengakibatkan tingginya dimensi. Padahal tidak semua dokumen dalam koleksi berisi semua indeks istilah atau term yang digunakan dalam representasi. Algoritme Apriori Sebuah kaidah dalam analisis asosiasi dituliskan dalam bentuk AB, dimana A dan B adalah dua item yang berbeda. Kekuatan relasi antara A dan B dapat diukur dengan nilai support dan confidence. Support menunjukkan seberapa sering sebuah itemsets diaplikasikan dalam sebuah basis data transaksi atau dataset. Confidence adalah seberapa sering item B muncul pada transaksi yang melibatkan item A. Untuk menemukan kaidah asosiasi dari sebuah daftar transaksi, dibutuhkan nilai batasan yaitu minimum support (minsup) dan minimum confidence (minconf). Persamaan untuk mencari Support diberikan pada persamaan 2 dan confidence diberikan pada persamaan 3 (Han et al. 2012). count A B D count A B Support(A B) countA Support(A B) (2) (3) dengan : A : Antecendent aturan (bagian jika) B : Consequent aturan (bagian maka) D : Dataset (transaction) Prosedur umum yang banyak dipakai dalam menemukan kaidah asosiasi adalah sebagai berikut (Han et al. 2012): a. Pembentukan frequent itemsets bertujuan untuk menemukan semua itemsets yang memiliki nilai support lebih besar atau sama dengan nilai minsup. b. Pembentukan kaidah (rule generation) bertujuan untuk membentuk kaidah yang kuat (strong rule) yaitu kaidah dengan tingkat kepercayaan (confidence) yang tinggi dari frequent itemsets yang dihasilkan pada tahap sebelumnya. Term Frequency – Invers Document Frequency Term Frequency-Inverse Document Frequency (TF-IDF) merupakan pembobotan klasik berbasis frekuensi dan IDF kemudian menjadi inspirasi untuk mengkombinasikan kedua metode pembobotan tersebut, dengan mempertimbangkan frekuensi inter-dokumen dan frekuensi intra-dokumen dari suatu term. Dengan menggunakan frekuensi term pada suatu dokumen dan distribusinya pada keseluruhan dokumen, yakni kemunculannya pada dokumen-dokumen lain (IDF). Skema pembobotan istilah (Salton dan Buckley 1988) tf-idf digunakan untuk memberikan pembobotan yang tinggi untuk istilah yang sering muncul dalam koleksi dokumen secara keseluruhan. Sesuai skema, bobot istilah terdiri dari frekuensi istilah dalam dokumen dikalikan dengan inverse frekuensi dari istilah dalam seluruh dokumen corpus. Metode pembobotan yang menggabungkan konsep frekuensi intra-dokumen dan inter-dokumen ini kemudian dikenal sebagai metode TF-IDF, yang dinyatakan pada persamaan 4. W tf *id ij ij ij (4) N tf ij * log df j dengan: Wij tfij N idij = = = = bobot term j pada dokumen i frekuensi term j pada dokumen i jumlah total dokumen yang diproses jumlah dokumen yang memiliki term j didalamnya 3 METODE Data Penelitian Data yang digunakan dalam penelitian ini adalah kumpulan ringkasan tesis mahasiswa Pascasarjana IPB dalam bahasa Inggris sebanyak 295 dokumen yang bersumber dari Direktorat Integritas Data dan Sistem Informasi (DIDSI) IPB. Metode Penelitian Bagian metode penelitian akan menjelaskan secara sistematis tahapan-tahapan dan metode yang dilakukan dalam penelitian. Tahapan ini dibuat agar penelitian menjadi lebih terarah. Ilustrasi tahapan kegiatan penelitian dapat dilihat pada Gambar 1. Penelitian dimulai mengumpulkan data ringkasan tesis mahasiswa pascasarjana pada repositori IPB sebanyak 295 dokumen. Tahap kedua dilakukan praposes data terhadap kumpulan dokumen ringkasan tesis. Tahap ketiga adalah menggali frequent itemsets menggunakan algoritme Apriori. Tahap keempat adalah mengelompokkan dokumen berbasis frequent itemsets menggunakan algoritme Bisecting K-means. Tahap kelima adalah evaluasi hasil cluster dokumen yang terbentuk. Pada tahap ini juga akan diuji seberapa relevan dokumen yang ditemukan terhadap kata kunci yang dimasukkan. Penjelasan lebih lanjut setiap tahapan yang dilakukan pada metode penelitian akan dibahas pada sub bahasan berikutnya. Praproses Data Dokumen Ringkasan Tesis Mulai Tokenization Remove Number Stemming Stopword Removal Remove Punctuation Remove Sparse Term Minsup dan Minconf Tabel Doc-List Penggalian Frequent Itemset dengan Algoritme Apriori Kata Kunci Frequent Term Clustering Frequent Term Menggunakan Algoritme Bisecting K-Means Selesai Evaluasi Clusters Dokumen Gambar 1 Diagram alir penelitian Praproses Data Praproses data terdiri atas beberapa langkah yang mengambil dokumen teks biasa sebagai input dan mengembalikan satu set token sebagai output (manning et al. 2009). Vector Space Model (VSM) adalah metode untuk melihat tingkat kedekatan atau kesamaan (similarity) term dengan cara pembobotan term. Dokumen dipandang sebagi sebuah vektor yang memiliki magnitude (jarak) dan direction (arah). Pada VSM, sebuah istilah direpresentasikan dengan sebuah dimensi dari ruang vektor. Relevansi sebuah dokumen ke sebuah query didasarkan pada similaritas antar vektor dokumen dan vektor query (Yates 1999). Dalam model ruang vektor (vector space model), sekumpulan kata-kata akan mengakibatkan tingginya dimensi. Langkah awal dari penelitian ini adalah praproses data yang meliputi tonization, remove number, stopword removal, stemming, remove punctuation, dan menghilangkan term yang kemunculannya kurang dari nilai remove sparse term yang ditentukan, sehingga kumpulan dokumen terdiri dari kumpulan term. Hasil dari praproses data dipresentasikan ke dalam document term matrix, yaitu sebuah matriks yang berisikan semua dokumen dari kumpulan dokumen yang terdiri atas term yang telah bersifat individu. Setiap sel dalam matriks bersesuaian dengan bobot yang diberikan dari suatu term dalam dokumen yaitu 1 dan 0, dengan nilai nol berarti bahwa term tersebut tidak hadir di dalam dokumen. Tokenization Tokenisasi merupakan proses pemisahan suatu rangkaian karakter berdasarkan karakter spasi, dan mungkin pada waktu yang bersamaan dilakukan juga proses penghapusan karakter tertentu, seperti simbol. Token seringkali disebut sebagai istilah (term) atau kata, sebagai contoh sebuah token merupakan suatu urutan karakter dari dokumen tertentu yang dikelompokkan sebagai unit semantik yang berguna untuk diproses (Salton dan Christopher 1988). Remove number Remove number merupakan proses penghilangan karakter angka yang terdapat dalam suatu dokumen. Penghilangan karakter angka bertujuan agar dokumen tidak mengandung karakter angka sehingga memudahkan dalam hal representasi dokumen dalam sebuah term matrix. Stopword removal Stopword removal akan menghilangkan sebagian besar kata yang tidak signifikan, yang tidak menyampaikan makna apapun sebagai dimensi dalam model vektor. Oleh karena itu kata-kata dari daftar membentuk set kata-kata yang unik. Strategi yang paling umum untuk menghilangkan stopword adalah untuk membandingkan setiap istilah dengan daftar stopword. Proses stopword removal merupakan proses penghapusan term yang tidak memiliki arti atau tidak relevan (Tala 2003). Stemming Stemming adalah proses penghilangan prefiks dan sufiks dari query dan istilah-istilah dokumen (Porter 1997). Stemming dilakukan atas dasar asumsi bahwa kata-kata yang memiliki stem yang sama memiliki makna yang serupa sehingga memperoleh dokumen-dokumen yang di dalamnya terdapat kata-kata dengan stem yang sama dengan query. Proses clustering dapat dipercepat dengan menggunakan algoritme Porter (Tala 2003) untuk mereduksi jumlah kata melalui penghilangan imbuhan (stemming). Remove punctuation Remove punctuation merupakan proses menghilangkan karakter tanda baca seperti koma, titik, dan lain lain. Remove sparse term Remove sparse term adalah proses menghilangkan istilah-istilah yang jumlah frekuansi kemunculannya lebih kecil dari nilai sparsity yang diberikan dalam document term matrix. Nilai sparsity digunakan untuk menentukan seberapa banyak term yang akan dihilangkan. Semakin besar nilai sparsity yang diberikan, maka semakin banyak term yang akan dimunculkan. Nilai sparsity adalah nlai yang dihasilkan dari perhitungan sparse dari setiap term. Sebagai contoh apabila nilai remove sparse term yang akan digunakan adalah 0.90 dan jumlah dokumen sebanyak 295 dokumen, maka perhitungan untuk menentukan term yang akan dihilangkan menggunakan persamaan dfj > N * ( 1 0.90 ), dengan dfj adalah jumlah frekuensi kemunculan term j dari keseluruhan dokumen, dan N adalah jumlah dokumen keseluruhan. Apabila jumlah frekuensi suatu term lebih kecil dari jumlah dokumen yang dikalikan dengan hasil 1 dikurangi nilai sparse, maka term tersebut akan dihilangkan, namum apabila nilai jumlah frekuensi lebih besar, maka term tersebut akan digunakan. Setiap term akan dilakukan proses tersebut, sehingga hanya tersisa term yang mempunyai nilai lebih besar dari nilai sparsity yang akan dipertahankan. Penggalian frequent itemsets dengan Algoritme Apriori Algoritme Apriori (Han et al. 2012) diaplikasikan dalam penggalian frequent itemsets dari sekumpulan dokumen dengan menentukan nilai minimal support dan minimum confidence. Algoritme Apriori pada umumnya digunakan pada basis data transaksional. Oleh karena itu, dalam penelitian ini terdapat beberapa proses yang dilakukan pada algoritme Apriori tersebut agar dapat digunakan dalam proses clustering dokumen. Algoritme Apriori digunakan untuk menentukan himpunan data yang paling sering muncul (frequent itemsets) dalam sebuah kumpulan data (David 2008). Sebuah frequent itemsets adalah seperangkat individu kata-kata yang mencakup makna konseptual dan kontekstual daripada kata yang berdiri sendiri. Dalam sebuah transaksi, I={i1, i2, i3, ... , id} adalah himpunan barangbarang (item) yang dapat ditransaksikan dan T={t1, t2, t3,..., tN} adalah suatu himpunan transaksi. Setiap transaksi ti terdiri dari item yang merupakan subset dari I. Itemsets adalah himpunan dari 0 atau banyak item. Bila terdiri dari k item, maka dapat disebut dengan k-itemsets. Itemsets juga disebut sebagai suatu pola. Support count menunjukkan jumlah transaksi yang mengandung itemsets tertentu. Dalam penelitian ini penggalian frequent itemsets dilakukan menggunakan algoritme Apriori, dengan pengujian nilai minimum support 0.10 dan minimum confidence 0.8. Hasil penggalian frequent itemsets inilah yang akan dilakukan proses clustering menggunakan algoritme Bisecting K-means. Clustering Frequent Itemsets Menggunakan Algoritme Bisecting K-Means Metode Bisecting K-Means (Steinbach et al. 2000) menggabungkan pendekatan partitional dengan divisive hierarchical, yaitu mula-mula seluruh dokumen dibagi dua dengan cara K-Means (bisecting-step). Selanjutnya cara itu dikenakan pada tiap-tiap cluster sampai diperoleh k buah cluster. Algoritme Bisecting K-Means dimulai dengan satu cluster dan kemudian membagi cluster menjadi dua. Cluster perpecahan ditentukan dengan meminimalkan Sum of Squared Error (SSE). Pemisahan ini didasarkan pada nilai SSE terkecil dan akan diulang sampai jumlah cluster yang ditetapkan pengguna tercapai. Sebelum dilakukan clustering, dokumen yang mengandung frequent itemset terlebih dulu dihitung pembototan term mengunakan persamaan TF-IDF. Dari hasil perhitungan pembobotan term tersebut maka dilakukan proses clustering dokumen menggunakan algoritme Bisecting K-Means dengan pengujian nilai jumlah (k) cluster yang diujikan, yaitu k 3 sampai dengan k 10. Penentuan jumlah cluster yang digunakan hanya sampai dengan k 10 dilakukan untuk mempermudah dalam proses analisa cluster yang terbentuk. Evaluasi Cluster Dokumen Evaluasi cluster dokumen dilakukan terhadap clustering dokumen yang terbentuk menggunakan algoritme Bisecting K-Means. Evaluasi dilakukan pada hasil pengelompokkan frequen itemset dan dokumen mana yang masuk dalam satu cluster. Pembentukkan cluster dilakukan dengan memberikan nilai k 3 sampai dengan k 10, dan menganalisa cluster mana yang terbaik berdasarkan nilai SSE terkecil. Tahap pengujian pencarian dokumen yang mengandung frequent itemset dilakukan dengan memasukkan kata kunci berdasarkan term yang terkandung dalam frequent itemsets. Proses pencarian dilakukan terhadap cluster dan kumpulan dokumen ringkasan tesis. Pada tahap ini akan diujikan apakah dokumen yang dikembalikan relevan dengan kata kunci yang dimasukkan. 4 HASIL DAN PEMBAHASAN Data Penelitian Data yang digunakan dalam penelitian ini adalah dokumen ringkasan tesis mahasiswa Pascasarjana IPB dalam bahasa Inggris yaitu sebanyak 295 dokumen yang bersumber dari Direktorat Integritas Data dan Sistem Informasi (DIDSI) IPB. Gambar 2 adalah contoh dokumen ringkasan tesis mahasiswa pascasarjana IPB yang dapat diunduh pada halaman website repository IPB pada laman http://repository.ipb.ac.id. Header yang berisi nama penulis, judul tesis dan komisi pembimbing. Isi ringkasan tesis yang berisi latar belakang masalah, tujuan penelitian, metode yang digunakan serta hasil penelitian. Footer yang berisi kata kunci yang berhubungan dengan penelitian. Gambar 2 Dokumen ringkasan tesis mahasiswa Pascasarjana IPB Praposes Data Tahap yang dilakukan sebelum tahap praproses data adalah mengumpulkan sebanyak 295 dokumen yang diambil secara acak dari berbagai disiplin ilmu pascasarjana IPB dan semua dokumen tersebut disimpan dalam sebuah file teks dengan format csv (comma delimited). Tahap praproses data adalah untuk menjadikan data kumpulan dokumen sebanyak 295 dokumen menjadi kumpulan term. Tahapan-tahapan praproses yang dilakukan adalah proses tokenisasi yaitu proses pemisahan suatu rangkaian kalimat menjadi rangkaian kata berdasarkan karakter dan dipisahkan dengan sehingga setiap istilah (term) bersifat individu dan bersifat konseptual. Stopword removal menghilangkan term berdasarkan daftar stopword, penghapusan angka, stemming menghilangkan imbuhan dan akhiran sehingga hanya menjadi kata dasar dari setiap istilah dan penghapusan tanda baca. Pada sub-bab ini juga dijelaskan perintah-perintah dalam bahasa pemrograman R pada tahap praposes data sehingga menghasilkan sebuah document term matrix. Pada tahap praproses data menggunakan bahasa pemrograman R, setiap fungsi yang akan dijalankan menggunakan library yang telah disediakan. Dalam hal ini library yang digunakan adalah library(tm). Sebagai ilustrasi akan dipaparkan tahapan praproses data dengan menggunakan dokumen asli, namun dalam bentuk satu paragraf untuk menjelaskan perubahan dokumen dari setiap tahapan dalam tahap praproses data dapat dijelaskan sebagai berikut: Following the global spike in food prices in 2008, there is renewed interest in Indonesia in self-sufficiency as a means of achieving food security. Restrictive trade policies, including specific tariffs on rice and sugar, and quantitative restrictions on imports and exports, have been used in an attempt to meet conflicting objectives of assisting both producers and consumers. Tokenizaion Tokenisasi merupakan proses pemisahan suatu rangkaian kata sehingga setiap kata besifat individu dan berdiri sendiri, dan pada waktu yang bersamaan dilakukan juga proses penghapusan karakter tertentu, seperti simbol dan mengubah semua huruf kapital menjadi huruf kecil. Untuk proses tokenisasi dan transformasi dokumen dilakukan dengan menjalankan perintah-perintah dalam Bahasa R berikut: 1 2 3 4 5 6 7 8 for (j in seq(my.corpus)) { my.corpus[[j]] <- gsub("ƒ", " ", my.corpus[[j]]) my.corpus[[j]] <- gsub("@", " ", my.corpus[[j]]) my.corpus[[j]] <- gsub("-", " ", my.corpus[[j]]) my.corpus[[j]] <- gsub("\\|", " ", my.corpus[[j]]) } my.corpus <- tm_map(my.corpus, tolower) Baris pertama sampai dengan baris ketujuh pada pernyataan di atas menyatakan sebuah fungsi untuk mentransformasi dokumen terhadap karakter tertentu seperti karakter simbol sehingga tidak terdapat karakter simbol dalam kumpulan dokumen. Sementara itu, baris kedelapan menyatakan proses tolower, yaitu merubah huruf kapital menjadi huruf kecil, sehingga dokumen sudah terdiri dari kata-kata yang terpisah satu dengan lainnya tanpa huruf kapital pada semua kumpulan dokumen. Hasil dokumen yang terbentuk sebagai berikut: following the global spike in food prices in 2008, there is renewed interest in indonesia in self sufficiency as a means of achieving food security. restrictive trade policies, including specific tariffs on rice and sugar, and quantitative restrictions on imports and exports, have been used in an attempt to meet conflicting objectives of assisting both producers and consumers. Remove Number Remove number merupakan proses penghilangan karakter angka yang terdapat dalam kumpulan dokumen, sehingga tidak terdapat karakter angka. Perintah dalam Bahasa R berikut digunakan dalam proses remove number. my.corpus <- tm_map(my.corpus, removeNumbers) Hasil dari proses remove number berikut sudah tidak terdapat karakter angka. Penghilangan karakter angka dilakukan terhadap semua dokumen. follow global spike food price in , renew interest indonesia self suffici mean achiev food security. restrict trade policies, includ specif tariff rice sugar, quantit restrict import exports, use attempt meet conflict object assist produc consumers. Stopword Removal Stopword removal akan menghilangkan sebagian besar kata yang tidak signifikan, yang tidak menyampaikan makna apapun sebagai dimensi dalam model vektor berdasarkan tabel stopword bahasa Inggris dengan menjalankan perintah-perintah dalam Bahasa R berikut: my.corpus<- tm_map(my.corpus,removeWords,stopwords("english")) Hasil dari proses stopword removal tersebut menghilangkan beberapa term misalkan kata the, in, there dan lain-lain sesuai dengan tabel stopword dalam bahasa Inggris. Hasil dokumen yang terbentuk sebagai berikut: following global spike food prices , renewed interest indonesia self sufficiency means achieving food security. restrictive trade policies, including specific tariffs rice sugar, quantitative restrictions imports exports, used attempt meet conflicting objectives assisting producers consumers. Stemming Proses stemming bertujuan untuk menghilangkan awalan dan akhiran dari setiap kata, sehingga terbentuk kata dasar. Perintah dalam Bahasa R berikut digunakan dalam proses stemming. my.corpus <- tm_map(my.corpus, stemDocument) Hasil dari proses stemming tersebut adalah sebagai berikut, dimana telah dihilangkannya awalan dan akhiran, sehingga setiap term bermakna kata dasar. follow global spike food price , renew interest indonesia self suffici mean achiev food security. restrict trade policies, includ specif tariff rice sugar, quantit restrict import exports, use attempt meet conflict object assist produc consumers. Remove Punctuation Remove punctuation merupakan proses menghilangkan karakter tanda baca seperti koma, titik, dan lain lain. Perintah yang digunakan menghilangkan tanda baca dalam Bahasa R adalah sebagai berikut: my.corpus <- tm_map(my.corpus, removePunctuation) Hasil dari proses remove punctuation tersebut adalah kalimat yang terbentuk sudah tidak dipisahkan dengan suatu tanda baca seperti titik, koma dan lain-lain, sehingga sudah tidak terdapat karakter tanda baca dalam kumpulan dokumen. follow global spike food price renew interest indonesia self suffici mean achiev food secur restrict trade polici includ specif tariff rice sugar quantit restrict import export use attempt meet conflict object assist produc consumer Strip White Space Strip white space merupakan proses menghilangkan karakter spasi. Hal ini perlu dilakukan karena pada tahap proses sebelumnya, jarak antara term masih tidak beraturan, tiap term dipisahkan dengan satu atau lebih karakter spasi. Oleh karena itu perlu penghapusan karakter spasi agar setiap kata hanya dipisahkan dengan satu karakter spasi. Perintah dalam Bahasa R berikut yang digunakan untuk memisahkan jarak antara term dengan satu karakter spasi. tm_map(my.corpus, stripWhitespace) Hasil dari proses strip white space tersebut adalah kalimat yang terbentuk sudah tidak dipisahkan dengan beberapa karakter spasi, melainkan setiap kata hanya dipisahkan dengan satu karakter spasi. follow global spike food price renew interest indonesia self suffici mean achiev food security restrict trade policies includ specif tariff rice sugar quantit restrict import exports use attempt meet conflict object assist produc consumers Pembuangan stopword Langkah berikutnya adalah pembuatan tabel stopword tambahan yang digunakan untuk menghilangkan term yang frekuensi kemunculannya tinggi. Hal ini perlu dilakukan karena proses stopword awal hanya menghilangkan term yang bersifat umum namun sebenarnya masih terdapat term yang muncul tidak mempunyai makna. Pada tahap ini akan dilakukan proses menghilangkan term misalkan can, use, result, research, studi dan lain-lain. Term tersebut muncul hampir disetiap dokumen, namun sebenarnya term tersebut tidak bermakna atau mempresentasikan isi dokumen. Perintah-perintah dalam Bahasa R berikut yang dijalankan dalam pembuatan tabel dan penghapusan stopword. 1 2 mystopwords <c("a","about","above","above","across","after","afterwards","a gain","against","all","almost","alone","along","already","also ","although","always","am","among","amongst","amoungst","amoun t","an","and","another","any","anyhow","anyone","anything","an yway","anywhere","are","around","as","at","back","be","became" ,"because","become","becomes","becoming","been","before","befo rehand","behind","being","below","beside","besides","between", "beyond","bill","both","bottom","but","by","call","cannot","ca nt","co","con","could","couldnt","cry","de","describe","detail ","do","done","down","due","during","each","eg","eight","eithe r","eleven","else","elsewhere","empty","enough","etc","even"," ever","every","everyone","everything","everywhere","except","f ew","fifteen","fify","fill","find","fire","first","five","for" ,"former","formerly","forty","found","four","from","front","fu ll","further","get","give","go","had","has","hasnt","have","he ","hence","her","here","hereafter","hereby","herein","hereupon ","hers","herself","him","himself","his","how","however","hund red","ie","if","in","inc","indeed","interest","into","is","it" ,"its","itself","keep","last","latter","latterly","least","les s","ltd","made","many","may","me","meanwhile","might","mill"," mine","more","moreover","most","mostly","move","much","must"," my","myself","name","namely","neither","never", "nevertheless","next","nine","no","nobody","none","noone","nor ","not","nothing","now","nowhere","of","off","often", "on","once","one","only","onto","or","other","others","otherwi se","our","ours","ourselves","out","over","own","part","per"," perhaps","please","put","rather","re","same","see","seem","see med","seeming","seems","serious","several","she","should","sho w","side","since","sincere","six","sixty","so","some","somehow ","someone","something","sometime","sometimes","somewhere","st ill","such","system","take","ten","than","that","the","their", "them","themselves","then","thence","there","thereafter","ther eby","therefore","therein","thereupon","these","they","thickv" ,"thin","third","this","those","though","three","through","thr oughout","thru","thus","to","together","too","top","toward","t owards","twelve","twenty","two","un","under","until","up","upo n","us","very","via","was","we","well","were","what","whatever ","when","whence","whenever","where","whereafter","whereas","w hereby","wherein","whereupon","wherever","whether","which","wh ile","whither","who","whoever","whole","whom","whose","why","w ill","with","within","without","would","yet","you","your","you rs","yourself","yourselves","zero","can","use","result","dan", "end","get","iii","indah","jati","just","like","take","user"," view","one","research","studi" my.corpus <- tm_map(my.corpus, removeWords, mystopwords) Baris pertama pada pernyataan di atas menyatakan tentang pembuatan tabel stopword yang digunakan untuk menghilangkan term yang sering muncul dalam setiap dokumen yang tidak merepresentasikan makna dari isi dokumen. Seperti halnya term indah dan jati, kedua term tersebut masih dalam bentuk ejaan bahasa Indonesia, term indah berkaitan dengan nama sebuah tempat penginapan dan term jati berkaitan dengan kayu jati. Karena kedua term tersebut menggunakan ejaan dalam bahasa Indonesia maka perlu dimasukkan dalam tabel stopword sehingga dapat dihilangkan. Baris kedua menyatakan tentang pembuangan term berdasarkan tabel stopword yang dibuat. Hasil penghilangan term berdasarkan stopword adalah sebagai berikut: follow global spike food price renew indonesia self suffici mean achiev food security restrict trade policies includ specif tariff rice sugar quantit restrict import exports attempt meet conflict object assist produc consumers Remove sparse term Remove sparse term adalah proses menghilangankan term yang frekuensi kemunculannya rendah. Nilai sparsity adalah nilai yang dipakai untuk menentukan seberapa banyak term yang akan dihilangkan dari document term matrix. Rentang nilai sparsity berkisar antara 0 sampai dengan 1. Pemberian nilai sparsity yang besar akan mengakibatkan jumlah term yang dihasilkan semakin banyak. Perintah-perintah dalam Bahasa R berikut digunakan untuk mempresentasikan dokumen dalam document term matrix. Proses yang dilakukan pada tahap ini adalah menghitung frekuensi kemunculan tiap-tiap term pada document term matrix, dan menghilangkan term yang jumlah frekuensi kemunculannya lebih kecil dari nilai remove sparse time yang diberikan yaitu sebesar 0.90. Nilai remove sparse term 0.90 akan menghilangkan term yang jumlah frekuensi kemunculanya dari seluruh dokumen yang lebih kecil dari hasil perhitungan jumlah dokumen keseluruhan yang dikalikan dengan hasil 1 0.90. Sebagai contoh apabila jumlah frekuensi kemuncuan term j dari seluruh dokumen sebanyak 34, sedangkan jika nilai N * (1 0.90) adalah 40, N adalah jumlah dokumen keseluruhan, maka term j tersebut akan dihilangkan, karena jumlah frekuensi kemunculan term j yaitu 34 lebih kecil dari dari 40. Begitu juga sebaliknya, apabila jumlah frekuensi kemunculan term j dari keseluruhan dokumen lebih besar dari nilai sparse maka term j tersebut tidak akan dihilangkan. Proses ini dilakukan terhadap semua term, sehingga isi dari document term matrix berisi term-term yang frekuensi kemunculannya lebih besar dari nilai sparse yang ditentukan. 1 2 3 4 5 # PEMBENTUKAN DOCUMENT TERM MATRIX term.doc.matrix.stm <- TermDocumentMatrix(my.corpus) dim(doc.term.matrix.stm) doc.term.matrix <- removeSparseTerms(doc.term.matrix.stm, 0.90) dim(doc.term.matrix) Baris pertama pada pernyataan di atas menyatakan tentang judul pembentukan document term matrix. Baris kedua adalah proses pembentukan document term matrix. Baris ketiga adalah untuk menampilkan hasil document term matrix yang terbentuk. Baris keempat adalah proses pembentukan document term matrix yang baru dengan memberikan nilai sparsity 0.90, dan baris kelima adalah untuk menampilkan hasil document term matrix yang terbentuk setelah diberikan nilai sparsity. Gambar 3 memperlihatkan hasil dari proses pembentukan document term matrix yang dijalankan dengan perintah Bahasa R. Gambar 3 Document term matrix Gambar 3 menunjukkan hasil akhir pada tahap proposes data. Document term matrix yang dihasilkan dari dari kumpulan dokumen memiliki sebanyak 5321 term. Kemudian dilakukan penghapusan term yang kemunculannya kurang dari nilai sparsity yang ditentukan yaitu 0.90, sehingga dihasilkan sebanyak 110 term. Document term matrix sebanyak 110 term inilah yang akan dilakukan proses penggalian frequent itemsets dan proses clustering. Visualiasi Wordcloud dokumen berdasarkan frekuensi term yang dihasilkan dapat dilihat pada Gambar 4. Perintah-perintah dalam Bahasa R berikut digunakan untuk menggambarkan visualisasi wordcloud. 1 2 3 4 5 6 #EXPLORING AND DISTRIBUTION OF TERM FREQUENCIES freq <- sort(colSums(as.matrix(dtm)), decreasing=TRUE) #VISUALISASI WORD CLOUDS library(wordcloud) set.seed(142) wordcloud(names(freq), freq, min.freq=30, scale=c(2, .1), colors=brewer.pal(6, "Dark2")) Baris pertama pada pernyataan di atas menyatakan tentang judul menggali dan mendistribusikan frekuensi kemunculan term. Baris kedua menjelaskan distristibusi frekuensi kemunculan term dari document term matrix yang mempunyai frekuensi kemunculan yang tinggi secara berurutan. Baris ketiga menjelaskan judul visualisasi dalam bentuk wordcloud. Baris keempat menjelaskan pemanggilan library(wordcloud) yang digunakan untuk memvisualisasikan frekuensi kemunculan term dalam bentuk wordcloud. Baris kelima menjelaskan membuat set gambar wordcloud, dan baris keenam menjelaskan proses menampilkan bentuk wordcloud dengan menggunakan data frekuensi yang kemunculannya sama atau lebih besar dari 30, dan visualisasi term yang sering muncul dilambangkan dengan huruf yang lebih besar. Gambar 4 adalah bentuk visualiasi frekuensi term dalam bentuk wordcloud. Gambar 4 Wordcloud untuk dokumen ringkasan tesis mahasiswa Pascasarjana IPB Dari visualisasi wordcloud pada Gambar 4, dapat dijelaskan bahwa ukuran huruf term yang lebih besar menandakan bahwa frekuensi kemunculan term tersebut lebih tinggi dibandingkan dengan term yang lain dari kumpulan dokumen. Term product, develop, method, data, increase dan base mempunyai frekuensi kemunculan yang tinggi pada kumpulan dokumen. Frekuensi kemunculan term product sebanyak 207, develop sebanyak 195, method sebanyak 188, data sebanyak 185, increase sebanyak 185, dan base sebanyak 184. Perintahperintah dalam tahap proposes data secara lengkap dapat dilihat pada lampiran 1. Penggalian Frequent Itemset dengan Algoritme Apriori Tahap penggalian frequent itemsets dilakukan berdasarkan data document terms matrix dengan menggunakan algoritme Apriori. Proses penggalian frequent itemsets dilakukan dengan memberikan nilai support 0.10 dan nilai confidence 0.8. Nilai support menunjukkan persentasi jumlah transaksi yang mengandung {term1, term2, term3} dan nilai confidence menunjukkan persentasi {term3} yang terdapat pada transaksi yang mengandung {term1, term2}. Frequent itemsets adalah set term yang dihasilkan dari algoritme Apriori yang melakukan proses transaksi terhadap semua term. Algoritme Apriori akan memproses keterkaitan kemunculan suatu term terhadap term yang lain yang muncul secara bersamaan dalam suatu dokumen yang mempunyai nilai support ≥ minimum support. Sebuah frequent itemsets adalah seperangkat individu kata-kata yang mencakup makna konseptual dan kontekstual daripada kata yang berdiri sendiri. Perintah-perintah dalam Bahasa R berikut digunakan untuk menggali frequent itemsets. 1 2 3 4 5 6 # PEMBENTUKAN TRANSAKSI TERM library(arules) trans <- as(doc.term.matrix, "transactions") # GENERATE FREQUENT ITEMSET USING APRIORI frequent <- apriori(trans, parameter = list(sup=0.10, conf = 0.8, target="frequent itemsets", minlen=2, maxlen=4)) # PEMBENTUKAN MATRIK FREQUENT ITEMSETS 7 frequent <- as(items(frequent), "matrix") Baris pertama pada pernyataan di atas menyatakan tentang judul pembentukan transaksi term. Baris kedua menjelaskan pemanggilan library(arules) yang mempunyai fungsi menentukan frequent itemsets. Baris ketiga menjelaskan transaksi terhadap semua term dari document term matrix yang nantinya akan digunakan dalam proses penggalian frequent itemsets. Baris keempat menjelaskan judul menggali frequent itemsets menggunakan algoritme Apriori. Baris kelima menjelaskan pembentukan frequent itemsets menggunakan algoritma Apriori dengan batasan nilai minimum support 0.10 dan minimum confidence 0.80, target adalah menentukan kaidah frequent itemsets, dengan minimal itemsets (minlen) sebanyak dua term dan maksimal itemset (maxlen) sebanyak empat term. Baris keenam menjelaskan mengenai judul transformasi frequent itemsets dalam sebuah matriks, dan baris ketujuh menjelaskan representasi frequent itemsets dalam sebuah matriks. Matriks frequent itemset inilah yang akan digunakan dalam proses clustering. Frequent itemsets yang dihasilkan dengan nilai minimum support 0.10 dan minimum confidence 0.8 dihasilkan sebanyak 36 frequent itemsets yang diberikan pada Tabel 1. Kemudian frequent itemsets yang dihasilkan akan dikelompokkan menggunakan algoritme Bisecting K-Means. Tabel 1 Frequent Itemsets No Frequent Itemsets Support No Frequent Itemsets Support 1 {effect,signific} 0.1152 19 {effect,increas} 0.1084 2 {area,develop} 0.1084 20 {develop,product} 0.1016 3 {area,base} 0.1016 21 {analysi,product} 0.1016 4 {develop,indonesia} 0.1050 22 {method,product} 0.1016 5 {base,object} 0.1050 23 {base,product} 0.1254 6 {base,determin} 0.1050 24 {analysi,develop} 0.1016 7 {base,conduct} 0.1016 25 {data,develop} 0.1220 8 {analysi,process} 0.1016 26 {develop,method} 0.1050 9 {method,process} 0.1016 27 {develop,increas} 0.1152 10 {activ,method} 0.1084 28 {base,develop} 0.1457 11 {activ,base} 0.1084 29 {analysi,data} 0.1423 12 {data,need} 0.1050 30 {analysi,method} 0.1389 13 {method,need} 0.1118 31 {analysi,increas} 0.1084 14 {base,need} 0.1016 32 {analysi,base} 0.1423 15 {analyz,effect} 0.1050 33 {data,method} 0.1322 16 {analyz,data} 0.1084 34 {base,data} 0.1152 17 {effect,product} 0.1118 35 {increas,method} 0.1016 18 {effect,method} 0.1084 36 {base,method} 0.1457 Dari Tabel 1 dijelaskan bahwa terdapat beberapa term yang dihasilkan terlihat tidak sempurna, misalkan pada term analyz dan term analysi. Kedua term tersebut berasal dari kata analyzed dan analysis. Keduanya tampak tidak menunjukkan kata dasar diakibatkan proses stemming pada tahap proposes data. Penghilangan awalan dan akhiran menyebabkan kedua terms tersebut menjadi berbeda. Hal ini disebabkan salah satunya adalah bahasa pemrograman yang digunakan. Setiap bahasa peprograman mempunyai cara yang berbeda ketika proses stemming dijalankan walaupun algoritme stemming yang digunakan sama. Untuk itu perlu diadakan kajian mendalam mengenai proses stemming¸ sehingga ada persamaan persepsi tentang hal tersebut. Namun hal ini bukanlah suatu kendala disebabkan merupakan bentuk representasi term pada VSM. Representasi tersebut tidak mempengaruhi keutuhan dokumen asli. Itemsets {base,develop} dan itemsets {base,method} mempunyai nilai support tertinggi, yaitu 0.1457. Nilai support adalah nilai atau persentase dari frekuensi transaksi kombinasi term yang muncul secara bersamaan pada suatu dokumen terhadap semua transaksi. Kemunculan term base terhadap term develop, dan term base terhadap term method sangatlah dominan dalam kumpulan dokumen. Hal ini dikarenakan kedua itemsets tersebut mempunyai frekuensi kemunculan secara bersamaan pada setiap dokumen sangat tinggi. Frequent itemsets yang terbentuk adalah hasil korelasi antara suatu term dengan term yang lain yang akan muncul secara bersamaan dengan batasan nilai minsup dan mincof. Korelasi menggambarkan hubungan term satu dengan term yang lain yang terkandung dalam suatu itemsets berdasarkan nilai support. Berikut perintah dalam Bahasa R untuk menggambarkan korelasi antar term dalam penggalian itemsets pada Gambar 5. plot(frequent, method="graph") Pernyataan di atas menyatakan pemanggilan fungsi untuk memvisualisasikan hubungan antara term berdasarkan nilai minsup dan mincof. Visualisasi korelasi antar term ditampilkan pada Gambar 5 menggunakan metode graph. Gambar 5 Korelasi antar items (term) Gambar 5 menjelaskan korelasi items yang dilambangkan dengan simbol lingkaran. Semakin besar lingkaran, maka semakin besar hubungan suatu term dengan terms yang lain dalam hal kemunculan kedua term yang muncul secara bersamaan dalam suatu dokumen berdasarkan nilai support. Lingkaran yang besar manandakan bahwa hubungan kedua term tersebut mempunyai nilai support yang tinggi. Itemsets {base,develop}, itemsets {base,method}, itemsets {analysi,data}, dan itemsets {analysi,data}. Nilai support {base,develop} dan {base,method} adalah 0.1457, sedangkan {analysi,data} dan {analysi,base} adalah 0.1423. Itemsets yang dihasilkan tidak semua terdapat pada tiap-tiap dokumen, hal ini dikarenakan algoritme Apriori menggali itemsets yang nilai support-nya di atas atau sama dengan minimum support. Dalam beberapa dokumen hanya terdapat beberapa term yang dapat dijadikan kandidat dalam pembentukan itemsets. Tabel 2 menyatakan dokumen yang mengandung itemsets pada kumpulan dokumen terhadap empat itemsets yang mempunyai nilai support tertinggi. Itemset dengan nilai support tertinggi akan berisi kumpulan dokumen yang lebih banyak dibandingkan dengan itemsets dengan nilai terendah. Perintah-perintah dalam Bahasa R pada tahap penggalian frequent itemsets secara lengkap dapat dilihat pada lampiran 2. Tabel 2 Dokumen yang mengandung frequent itemsets Frequent No Support Dokumen Mengandung Frequent Itemsets Itemsets 1 {base,develop} 0.1457 2 {base,method} 0.1457 3 {analysi,base} 0.1423 4 {analysi,data} 0.1423 5, 8, 14, 16, 17, 34, 35, 56, 59, 61, 66, 83, 84, 86, 89, 91, 109, 115, 117, 121, 128, 129, 134, 143, 149, 164, 179, 183, 186, 190, 229, 237, 239, 245, 248, 262, 265, 272, 181, 282, 284, 286, 289 5, 16, 19, 27, 30, 32, 35, 45, 55, 59, 66, 75, 76, 86, 89, 91, 99, 111, 121, 122, 130, 162, 173, 174, 180, 183, 190, 216, 217, 224, 228, 237, 239, 245, 251, 258, 262, 269, 272, 281, 282, 286, 293 4, 28, 30, 34, 37, 38, 39, 48, 83, 89, 91, 92, 109, 111, 115, 117, 122, 129,131, 143, 149, 173, 174, 180, 183, 186, 190, 213, 218, 228, 229, 232, 245, 251, 265, 269, 280, 281, 282, 288, 291 28, 30, 39, 49, 51, 60, 67, 70, 71, 77, 81, 89, 94, 106, 109, 114, 115, 117, 122, 131, 149, 173, 174, 180, 181, 185, 192, 197, 211, 221, 229, 232, 234, 238, 239, 243, 244, 260, 267, 268, 281, 288 Clustering Frequent Itemset Menggunakan Algoritme Bisecting K-Means Pembentukan cluster yang digunakan adalah algoritme Bisecting Kmeans, dengan jumlah cluster yang diujikan adalah k 3 sampai dengan k 10. Hal ini dilakukan untuk melihat perbandingan hasil cluster yang terbentuk. Pembentukan cluster dilakukan menggunakan data matrix frequent itemsets. Matrix frequent itemsets adalah sebuah matriks yang berisi frequent itemsets. Tabel 3 berisi hasil pembentukan cluster dokumen berdasarkan nilai Sum of Squared Error (SSE) tiap-tiap pembentukan jumlah cluster yang diujikan. Perintah-perintah dalam Bahasa R pada tahap pembentukan cluster menggunakan algoritme Bisecting K-Means secara lengkap dapat dilihat pada lampiran 3. Tabel 3 Nilai SSE cluster dokumen menggunakan algoritme Bisecting K-Means Jumlah Cluster (k) Nilai SSE 3 282.43 4 214.36 Jumlah Cluster (k) Nilai SSE 5 199.15 6 184.40 7 168.87 8 155.34 9 142.91 10 132.15 Evaluasi Cluster Dokumen Dengan menggunakan algoritme Bisecting K-Means, pembentukan cluster pada pengujian dengan nilai k 3 sampai dengan k 10, nilai SSE terkecil terdapat pada pengujian dengan nilai k 10, yaitu 132.15. Pengujian dengan nilai k = 10 memperoleh hasil pembentukan cluster yang terbaik. Semakin kecil nilai SSE yang dihasilkan menandakan bahwa maka semakin baik suatu cluster yang terbentuk. Pengelompokkan dokumen menggunakan algoritme Bisecting K-Means yang mengandung frequent itemset dapat dilihat pada Tabel 4. Tabel 4 Clustering frequent itemsets menggunakan algoritme Bisecting K-Means dengan nilai k = 10 Id cluster Itemsets Jumlah Dokumen 1 {base,data}, {activ,base}, {base,determin}, {base,object}, {base,need}, {base,conduct}, {area,base} 86 2 {base,method}, {base,develop}, {analysi,base}, {base,product} 88 3 {data,method}, {method,need}, {effect,method}, {activ,method}, {increas,method}, {method,process} 90 Id dokumen 3, 8, 5, 14, 16, 17, 19, 22, 27, 28, 30, 32, 34, 35, 36, 37, 39, 54, 55, 56, 59, 61, 66, 75, 83, 84, 86, 89, 91, 99, 101, 109, 111, 115, 117, 121, 122, 224, 128, 129, 131, 134, 135, 146, 149, 160, 164, 173, 174, 177, 178, 179, 180, 183, 190, 200, 213, 216, 220, 228, 229, 232, 235, 237, 239, 240, 143, 245, 258, 248, 253, 262, 263, 265, 269, 272, 275, 281, 282, 284, 286, 288, 289, 291, 293, 294 4, 5, 8, 14, 16, 17, 19, 22, 27, 28, 30, 32, 34, 35, 37, 38, 45, 48, 55, 56, 59, 61, 66, 75, 76, 83, 84, 86, 89, 91, 92, 99, 101, 102, 109, 111, 115, 117, 121, 122, 128, 129, 130, 131, 134, 143, 149, 162, 164, 173, 174, 178, 179, 180, 183, 186, 190, 206, 213, 216, 217, 218, 224, 228, 229, 232, 237, 239, 240, 245, 248, 251, 258, 262, 265, 269, 272, 275, 280, 281, 282, 284, 286, 288, 289, 291, 293, 294 5, 13, 16, 19, 25, 27, 30, 31, 32, 33, 35, 43, 49, 50, 51, 52, 55, 58, 59, 60, 64, 66, 67, 68, 70, 76, 77, 86, 89, 91, 93, 94, 95, 99, 106, 111, 121, 122, 130, 132, 136, 137, 139, 142, 145, 156, 159, 161, 169, 172, 173, 174, 180, 181, 183, 184, 185, 190, 192, 205, 207, 209, 215, 211, 216, 217, 228, 233, 237, 239, 242, 243, 244, 245, 251, 255, 256, 260, 262, 264, 266, 267, 269, 272, 279, 280, 281, 282, 286, 293 Id cluster Itemsets Jumlah Dokumen 4 {effect,signific}, {effect,increas}, {analyz,data}, {analyz,effect} 69 5 {develop,increas}, {area,develop}, {develop,indonesia} 67 6 {develop,method}, {method,product} 47 7 {analysi,method}, {analysi,develop}, {analysi,product} 64 8 {analysi,data}, {data,develop}, {data,need}, 70 9 {analysi,increas}, {analysi,process} 46 10 {effect,product}, {develop,product} 50 Id dokumen 1, 3, 13, 14, 35, 36, 37, 38, 40, 49, 57, 58, 59, 62, 63, 64, 67, 70, 71, 76, 77, 85, 92, 94, 95, 100, 105, 106, 112, 114, 117, 122, 126, 129, 132, 133, 147, 148, 160, 161, 168, 170, 175, 183, 185, 189, 190, 192, 199, 207, 208, 223, 226, 227, 229, 238, 242, 243, 248, 254, 267, 268, 270, 275, 278, 279, 281, 284, 295 1, 8, 14, 16, 17, 21, 24, 25, 29, 35, 47, 56, 61, 63, 83, 84, 86, 88, 89, 91, 94, 98, 104, 118, 125, 127, 128, 134, 143, 147, 149, 164, 165, 168, 179, 183, 185, 186, 187, 190, 194, 197, 198, 199, 207, 212, 212, 222, 227, 229, 234, 237, 238, 239, 244, 245, 248, 252, 255, 260, 265, 271, 272, 279, 281, 284, 285 1, 8, 9, 14, 26, 29, 30, 35, 47, 51, 58, 61, 66, 67, 83, 86, 91, 106, 115, 117, 127, 129, 132, 145, 157, 164, 183, 185, 187, 192, 216, 222, 224, 242, 243, 248, 251, 255, 258, 261, 262, 264, 266, 271, 281, 286, 293 4, 25, 28, 30, 34, 37, 43, 49, 51, 60, 67, 68, 70, 71, 77, 79, 81, 83, 89, 91, 94, 106, 109, 111, 115, 117, 122, 129, 143, 149, 163, 173, 181, 183, 185, 186, 188, 190, 192, 197, 199, 202, 211, 213, 228, 229, 232, 234, 238, 239, 242, 243, 244, 245, 251, 260, 264, 265, 267, 269, 279, 281, 282, 291 17, 28, 29, 30, 35, 36, 39, 49, 51, 52, 56, 60, 64, 66, 67, 70, 71, 77, 81, 84, 89, 94, 95, 104, 106, 109, 114, 115, 117, 121, 122, 131, 133, 134, 136, 149, 168, 173, 174, 180, 181, 185, 192, 197, 207, 212, 211, 221, 227, 229, 232, 233, 234, 238, 239, 243, 244, 248, 249, 260, 267, 268, 272, 277, 281, 284, 285, 287 25, 28, 30, 37, 43, 49, 67, 68, 70, 71, 83, 89, 91, 92, 94, 111, 114, 115, 117, 122, 129, 143, 149, 183, 185, 190, 192, 199, 211, 213, 221, 228, 232, 238, 239, 243, 244, 245, 251, 254, 260, 265, 267, 279, 281, 288 1, 8, 9, 14, 26, 29, 35, 37, 47, 61, 66, 67, 71, 76, 83, 86, 91, 100, 105, 106, 112, 115, 117, 127, 129, 132, 145, 157, 164, 170, 178, 183, 185, 187, 189, 204, 222, 242, 243, 248, 255, 261, 262, 266, 271, 275, 281, 286, 290, 295 Dari hasil pengelompokkan menggunakan algoritme Bisecting K-Means terhadap itemsets, terlihat bahwa pada cluster dua menunjukkan pengelompokan yang berisi empat itemsets yang mempunyai nilai support yang tinggi. Dari empat itemsets tersebut, itemsets {base,method} dan {base,develop} dengan nilai support 0.1457, itemsets {analysi,base} dengan nilai support 0.1423, dan itemsets {base,product} dengan nilai support 0.1254. Suatu sistem temu kembali informasi memiliki sejumlah metode yang dapat digunakan antara lain query atau bahasa perintah (query or command language), formulasi query dengan Boolean (Boolean query formulation), pemurnian penelusuran (search refinement), pemendekan atau pemotongan dan penelusuran rentetan teks (truncation and text string searching), pembatasan penelusuran (stop list or common word list), thesaurus atau pendukung perbendaharaan kosa kata (thesaurus/vocabulary support), kedekatan penelusuran (proximity searching), pembatasan penelusuran dengan ruas (limiting searching by field), dan penelusuran kawasan numerik (numeric range searching). Boolean query formulation atau yang lebih dikenal dengan operator Boolean logic merupakan hubungan dari istilah-istilah yang ditelusuri. Boolean logic terdiri dari 3 operator logis, yaitu operator AND, operator OR dan operator NOT. Operator boolean berfungsi sebagai instruksi atas informasi yang diinginkan pengguna. Operator boolean berperan sebagai pembentuk konsep dari apa yang hendak dipakai terhadap sistem temu kembali informasi, misalkan mengunakan salah satu operator atau memadukan beberapa operator sesuai dengan kebutuhan informasi yang akan ditampilkan. Pada penelitian ini metode yang digunakan untuk proses temu kembali dokumen yang digunakan adalah menggunakan operator boolean AND. Operator Boolean AND digunakan untuk menghadirkan dokumen-dokumen dimana kedua istilah yang ditelusur sama-sama disebutkan dalam satu dokumen. Penelusuran dengan menggunakan operator AND akan memperkecil hasil informasi yang ditemukan. Sebagai contoh kata kunci yang dimasukkan berdasarkan term base AND method maka akan menghadirkan dokumen yang mengandung term base dan term method saja, dokumen yang hanya berisi salah satu dari istilah tersebut tidak akan muncul. Maka, semakin banyak jumlah term dalam suatu itemsets yang terbentuk, semakin sedikit persentase perolehan dokumen. Contoh penggunaan operator AND dalam penelusuran dokumen dalam sistem menggunakan bahasa pemrograman R adalah sebagai berikut: query <- base&&method Dari perintah tersebut dapat dijelaskan bahwa query dipresentasikan dengan term base dan method. Penelusuran akan dilakukan terhadap kedua term tersebut yang muncul secara bersamaan dalam sebuah dokumen. Dokumen yang mengandung kedua term tersebut akan dikembalikan dalam proses penelusuran, sedangkan dokumen yang hanya mengandung salah satu term tersebut akan diabaikan. Pengujian terhadap inputan dari kata kunci menggunakan frequent itemsets terhadap dokumen ringkasan tesis mahasiswa Pascasarjana IPB berdasarkan cluster yang terbentuk dapat dilihat pada Tabel 5. Tabel 5 Jumlah dokumen yang mengandung frequent itemsets Frequent itemsets {base,data}, {activ,base}, {base,determin}, {base,object}, {base,need}, {base,conduct}, {area,base} {base,method}, {base,develop}, (analysi,base}, {base,product} Jumlah dokumen hasil query 86 88 Jumlah dokumen yang mengandung itemsets {base,method}, {base,develop}, {analysi,base} dan {base,product} yang terkelompokkan pada clusters 2 adalah sebanyak 88 dokumen dari 295 dokumen secara keseluruhan. Apabila pencarian dokumen terhadap kata kunci yang dimasukkan berdasarkan itemsets {base,method}, maka pencarian akan dilakukan terhadap 88 dokumen yang terdapat pada cluster tersebut. Dokumen yang akan dikembalikan berdasarkan kata kunci itemsets {base,method} adalah sebanyak 42 dokumen dari 88 dokumen yang ada pada cluster tersebut. Namun apabila pencarian dilakukan terhadap kumpulan dokumen, maka pencarian akan dilakukan terhadap 295 dokumen secara keseluruhan, dan mengembalian dokumen berdasarkan kata kunci itemsets {base,method} sebanyak 42 dokumen. Oleh karena itu proses pencarian dokumen akan lebih cepat apabila tertuju pada cluster yang berisi dokumen yang telah dikelompokkan dibandingkan apabila pencarian dokumen dilakukan terhadap keseluruhan kumpulan dokumen. Hal yang perlu diperhatikan bahwa, penggalian itemsets berdasarkan frekuensi kemunculan istilah akan mendapatkan term-term yang masih bersifat umum. Hal ini dapat disebabkan oleh beberapa faktor. Pertama, tabel stopword pada tahap praproses data belum mencakup istilah-istilah umum yang perlu dihapus dan untuk menghapus term yang masih bersifat umum, perlu dibuat sebuah tabel stopword tambahan. Dari hasil pengujian terhadap term yang terbentuk, ternyata masih banyak mengandung term yang masih bersifat umum dan tidak mempunyai makna. Term yang muncul juga masih bersifat umum, dan hampir semua dokumen memuat term tersebut. Hal ini dikarenakan format penulisan setiap dokumen ringkasan tesis mengacu pada aturan yang berlaku, sehingga term-term tersebut banyak muncul hampir pada setiap dokumen. Oleh sebab itu akan dilakukan pengujian terhadap penambahan stopword yang dapat memunculkan term-term yang lebik spesifik dan lebih bermakna. Tabel 6 berisi term-term yang akan dihilangkan, sehingga dapat memunculkan term yang mengandung makna atau yang bersifat unik. Tabel 6 Daftar tabel stopword tambahan untuk memunculkan term yang lebih spesifik manag active develop method increase result product effect level analysi analyz need signific process produc determin group Pembuatan tabel stopword diatas dilakukan terhadap hasil pengujian sebelumnya. Term-term yang terdapat pada tabel tersebut yang akan digunakan untuk menghilangkan term-term tersebut dan bertujuan untuk menguji apakah dengan penambahan tabel stopword yang baru akan memunculkan term-term yang lebih spesifik. Pengujian terhadap penambahan tabel stopword yang baru dapat dilihat dari hasil visualisasi wordcloud pada Gambar 6. Gambar 6 (a) memperlihatkan term-term yang dihasilkan dari tabel stopword awal, sedangkan Gambar 6 (b) memperlihatkan term-term yang dihasilkan dengan penambahan tabel stopword. (a) Hasil awal (b) Hasil penambahan stopword Gambar 6 perubahan pembentukan itemsets akibat penambahan tabel stopword Dari visualisasi wordcloud pada Gambar 6, dapat dilihat bahwa termterm yang frekuensi kemunculannya tinggi dan tidak bermakna sudah dihilangkan, seperti term method, develop, increase, product, dan lain-lain. Sedangkan hasil document term matrix akibat penambahan stopword juga masih terdapat beberapa term yang sebenarnya masih dapat dihilangkan, karena pada hakekatnya tidak mengandung makna. Hal ini mengacu dari hasil pembentukan freguent itemsets yang diperlihatkan pada Tabel 7, bahwa sejumlah itemsets yang terbentuk berisi term-term yang sebenarnya masih bersifat umum. Oleh sebab itu, untuk membuat tabel stopword harus mempertimbangkan kaidah dan kajian yang mendalam terhadap istilah-istilah yang sering muncul namun tidak mempunyai makna, dan juga terhadap istilah yang jarang muncul namun mempunyai makna yang sifatnya unik. Penambahan tabel stopword dapat mempengaruhi hasil dari proses pembentukan frequent itemsets, clustering dan information retrieval. Kedua, pemberian nilai sparsity, minsup dan mincof pada tahap penentuan frequent itemsets. Pemberian nilai sparsity, minsup dan mincof juga sangat berpengaruh dalam menentukan frequent itemset yang terbentuk. Semakin besar nilai sparsity dan semakin kecil nilai minsup yang diberikan maka akan semakin banyak frequent itemsets yang terbentuk, dan dapat menampilan itemsets dengan jumlah term lebih dari dua. Oleh sebab itu, kedua faktor tersebut memerlukan perhatian khusus karena akan mempengaruhi hasil pada tahap penggalian frequent itemsets, clustering, dan information retrieval. Tabel 7 memperlihatkan hasil pembentukkan frequent itemsets yang diakibatkan perubahan daftar stopword menggunakan nilai remove sparse term (sparsity) yaitu 0.70 s/d 0.99, nilai minsup 0.005 s/d 0.11, dan nilai mincof 0.08. Tabel 7 Pembentukan frequent itemsets terhadap pengujian nilai sparsity, minsup dan mincof Nilai Sparsity Jumlah term 0.70 0.80 0.90 1 9 94 0.05 0 30 185 Jumlah Frequent itemsets yang terbentuk berdasarkan nilai minsup 0.06 0.07 0.08 0.90 0.10 0.11 0 0 0 0 0 0 23 15 11 7 4 1 80 33 18 9 4 1 Nilai Sparsity Jumlah term 0.90 0.95 0.99 94 257 1407 0.05 185 202 202 Jumlah Frequent itemsets yang terbentuk berdasarkan nilai minsup 0.06 0.07 0.08 0.90 0.10 0.11 80 33 18 9 4 1 83 33 18 9 4 1 83 33 18 9 4 1 Dari tabel di atas dapat disimpulkan bahwa semakin besar nilai sparsity dan semakin kecil nilai minsup yang diberikan, maka makin banyak itemsets yang terbentuk. Namun pemberian nilai minsup yang lebih besar dari 0.11, maka tidak akan terbentuk suatu itemsets, walaupun nilai sparsity yang diberikan besar. Pemberian nilai sparsity 0.70 pada semua pengujian dengan nilai minsup yang diberikan tidak menghasilkan itemsets. Hal ini dikarenakan term yang dihasilkan dari nilai tersebut hanya sebanyak satu term. Nilai mincof tidak berpengaruh terhadap hasil pembentukan frequent itemsets walaupun diujikan dengan merubah nilainya pada semua pengujian. Pada tahap praproses data pada dasarnya tidak menghilangkan makna dari setiap dokumen. Document term matrix yang dihasilkan merupakan representasi dokumen dalam vector space model, sehingga memudahkan untuk melakukan transaksi pembentukan frequent itemsets. Pada pengujian berdasarkan nilai sparsity 0.90, nilai minsup 0.10 dan nilai mincof 0.8, hasil yang didapat adalah sebanyak 36 itemsets. Namun setelah ada penambahan stopword maka pengujian dengan nilai yang sama diperoleh hanya sebanyak 4 itemsets yang terbentuk. Dengan demikian dapat dikatakan bahwa penambahan tabel stopword mempengaruhi hasil pembentukan frequent itemsets. Selanjutnya dilakukan pengujian dengan nilai sparsity 0.90, nilai minsup 0.08 dan nilai mincof 0.8. Hal ini dilakukan untuk menggali dan melihat hasil pembentukan itemsets dari penambahan stopword. Tabel 8 memperlihatkan hasil pembentukan frequent itemsets berdasarkan nilai sparsity 0.90, nilai minsup 0.08 dan nilai mincof 0.8. Tabel 8 Pembentukan frequent itemsets terhadap pengujian nilai sparsity 0.90, minsup 0.08, dan mincof 0.8 No Frequent Itemsets Support No Frequent Itemsets Support 1 {data,year} 0.0813 10 {area,data} 0.0847 2 {base,valu} 0.0915 11 {area,base} 0.1016 3 {data,inform} 0.0813 12 {base,indonesia} 0.0813 4 {base,inform} 0.0813 13 {data,differ} 0.0847 5 {base,includ} 0.0813 14 {base,differ} 0.0915 6 {data,test} 0.0915 15 {base,conduct} 0.1016 7 {data,import} 0.0813 16 {base,high} 0.0915 8 {data,object} 0.0881 17 {aim,base} 0.0983 9 {base,object} 0.1050 18 {base,data} 0.1152 Berdasarkan pembentukan itemsets yang dihasilkan setelah dilakukan penambahan tabel stopword, kemunculan itemsets {base,data), {base,object}, {area,base} dan {base,conduct} masih tetap ada. Hal ini dikarenakan term-term yang terdapat pada itemsets tersebut tidak dihilangkan karena diasumsikan masih mempunyai makna. Gambar 7 memperlihatkan hubungan korelasi antara term-term yang membentuk itemsets setelah dilakukan penambahan tabel stopword. Perbedaan itemsets yang terbentuk sebelum dan sesudah adanya penambahan tabel stopword dapat dilihat dari visualisasi Gambar 5 dan Gambar 7. Dari kedua gambar tersebut menunjukkan bahwa itemsets dengan nilai support yang tinggi terkadang dapat dihilangkan karena term yang membentuk itemsets tersebut diasumsikan tidak mengandung makna. Gambar 7 Korelasi antar items setelah penambahan tabel stopword Dari pengujian yang dilakukan, term-term yang membentuk itemsets dipengaruhi pada saat praproses data. Pada proses inilah diharapkan data yang akan dioleh sudah tidak mengandung term-term yang masih bersifat umum dan tidak bermakna. Pembuatan tabel stopword dan pemberian nilai sparsity hendaknya dapat memunculkan term-term yang membentuk itemsets lebih spesifik dan bersifat unik, sehingga dapat mewakili sebuah dokumen secara keseluruhan. Pembentukan itemsets dapat mempengaruhi hasil clustering maupun proses temu kembali dokumen. Dalam temu kembali dokumen, pada umumnya penguna akan memasukkan keyword atau kata kunci dengan suatu istilah yang sifatnya unik dan lebih spesifik. SIMPULAN DAN SARAN Simpulan Hasil penelitian ini pengelompokan dokumen menggunakan algoritme Bisecting K-Means dapat pengelompokkan itemsets yang mempunyai nilai support tinggi. Proses clustering dengan pengujian nilai k 3 sampai dengan k=10. Pengujian dengan nilai k 10 memperoleh hasil clustering yang baik (nilai Sum of Squared Error adalah 132.15). Pengujian dengan nilai k 10, cluster dua dapat mengelompokkan beberapa itemsets yang mempunyai nilai support tertinggi, yang berisi itemsets {base,method}, {base,develop}, {analysi,base}, dan {base,product}. Hasil clustering berbasis itemsets dan proses temu kembali dokumen sangat dipengaruhi oleh term-term yang dihasilkan pada tahap praproses data, yaitu pada tahap penghapusan term berdasarkan tabel stopword dan remove sparse term. Dokumen yang mengandung frequent itemsets akan dikelompokkan dalam satu kelompok, hal ini dilakukan untuk mempercepat proses pencarian term berdasarkan frequent itemset. Proses pencarian terhadap kumpulan dokumen berbasis frequent itemsets yang telah terkelompokkan dalam suatu cluster dapat memperoleh hasil yang maksimal dibandingkan dengan pencarian term terhadap kumpulan dokumen berbasis frequent itemsets yang belum terkelompokkan. Saran Pada penelitian selanjutnya dapat dilakukan pengkajian mendalam terhadap pemberian nilai remove sparse term (sparsity) dan pembuatan tabel stopword yang berhubungan dengan bidang pertanian, peternakan, sosial, budaya, ekonomi, keteknikan, dan lain-lain. Sehingga dapat menghilangkan istilah-istilah yang frekuensi kemunculannya tinggi namun masih bersifat umum, dan dapat memunculkan istilah-istilah yang lebih spesifik atau bersifat unik walaupun frekuensi kemunculannya rendah. Frequent itemsets yang terbentuk diharapkan dapat mempresentasikan isi pokok dari sebuah dokumen. DAFTAR PUSTAKA Achtert E, Böhm C, Kriegel H.P, Kröger P. 2005. Online Hierarchical Clustering In A Data Warehouse Environment. Proc of the 5th international conference on data mining (ICDM). Houston (TX). 10–17 Agrawal R, Imielinski T, Swami A. 1993. Mining association rules between sets of Items In Very Large Databases. in: Proceedings of the ACM SIGMOD Conference on Management of data. Pp. 207–216 Aggarwal R, Gates P, Yu S. 1999. On The Merits of Building Categorization Systems By Supervised Clustering. in: Proceedings of the 5th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. Pp.352–356. Carpineto C. 2009. A survey of Web clustering engines, ACM Comput. Surv. vol. 41. Pp. 1-38. Chisholm E, Kolda TG. 1999. New Term Weighting Formula for the Vector Space Method in Information Retrieval. Research Report. Computer Science and Mathematics Division. Oak Ridge National Library. Oak Ridge. TN 3781-6367. Manning CD, Raghavan P, Schutze H. 2009, An Introduction to Inf Information retrieval, Online edition (c) 2009 Cambridge University Press, Cambridge, England. David S. 2008. Penerapan Stuktur FP-Treedan Algoritma FP Growth dalam Optimasi Penentuan Frequent Itemset. Institut Teknologi Bandung. Larson B, Aone C. 1999. Fast and effective text mining using linear-time document clustering, in: Proceedings of the 5th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. vol. 98(463). Pp. 16–22. Han J, Kamber M, Pei J. 2012. Data Mining: Concepts and Techniques. San Francisco (US):Morgan–Kauffman Publisher. Ian HM, Alistair B, Timothy C, 1999. “Managing Gigabytes: Compressing and Indexing Documents and Images”. second edition. Morgan Kaufmann Publishers. Academic Press. Jian Z, Jianfeng G, Ming Z, Jiaxing W. 2001. Improving the Effectiveness of Information Retrieval with Clustering and Fusion. Computational Linguistics and Chinese Language Processing. Porter M (1997). An Algorithm for Suffix Stripping. Readings in Information Retrieval. Pp.313-316. Reprint. Rijbergen CJ. 1979. Information Retrieval. Information Retrieval Group. University of Glasgow. UK. Salton G, Christopher B. 1988. Term-Weighting Approaches In Automatic Text Retrieval. Information Processing & Management. Vol. 24. No. 5. Pp. 513-523. Steinbach M, Karypis G, Kumar V. 2000. A Comparison of Document Clustering Techniques. In: Proc. of Workshop on Text Mining. 6th ACM SIGKDD Int. Conf. on Data Mining. Tala, FZ. 2003, A Studio s Stemming Effect on Information Retrieval in bahasa Indonesia. Institute for Logic, Language and Computational Universiteit van Amsterdam The Netherlands. Tombros A. 2002. The Effectiveness of QueryBased Hierarchic Clustering of Documents for Information Retrieval. PhD Thesis. Univerity of Glasgow. Wen Z, Taketoshi Y, Xijin T, Qing W. 2010. Text clustering using frequent itemsets. Knowledge - Based Systems. 23. Pp.379–388, doi:10.1016/j.knosys.2010.01.011 Yates RB. 1999. Modern Information Retrieval. Addison Wesley-Pearson international edition, Boston. USA. Zamir O, Etzioni O, Madani O, Karp RM. 1997. Fast and intuitive clustering of web documents. in: Proceedings of the 3rd International Conference on Knowledge Discovery and Data Mining. Pp. 287–290. Zhang W, Taketoshi Y, Xijin T, Qing W. 2010. Text clustering using frequent itemsets. Knowledge-Based Systems 23. Pp.379–388, doi:10.1016/j.knosys.2010.01.011 Zhao Y, Karypis G. 2002, Comparison of Agglomerative and Partitional Document Clustering Algorithms, The SIAM workshop on Clustering High-dimensional Data and Its Applications. Washington (DC). Lampiran 1 Source code praposes data # PEMBERSIHAN MEMORI rm(list=ls(all=TRUE)) # PEMANGGILAN PACKAGE library(SnowballC) library(Matrix) library(tm) # PEMANGGILAN DOKUMEN DAN PEMBUATAN CORPUS mydata <- read.csv(file = "C:/RDATA/PERCOBAAN/data.csv", header = FALSE, sep = "\t", quote = "\"", dec = ".", na.strings = "NA", colClasses = NA, skip = 0, check.names = TRUE, fill = TRUE, strip.white = FALSE, comment.char = "", allowEscapes = FALSE, flush = FALSE, stringsAsFactors = FALSE, fileEncoding = "") coba <- Corpus(DataframeSource(mydata)) coba doc.list <- list(coba) hasil <- data.frame(doc.list) dim(hasil) N.docs <- length(hasil) names(hasil) <- paste0("doc", c(1:N.docs)) my.docs <- VectorSource(c(hasil)) my.docs$Names <- c(names(hasil)) my.corpus <- Corpus(my.docs) my.corpus # TRANSFORM DOKUMEN for (j in seq(my.corpus)) { my.corpus[[j]] <- gsub("ƒ", " my.corpus[[j]] <- gsub("@", " my.corpus[[j]] <- gsub("-", " my.corpus[[j]]) my.corpus[[j]] <- gsub("\\|", } ", my.corpus[[j]]) ", my.corpus[[j]]) ", " ", my.corpus[[j]]) Lanjutan #PRAPROSES DOKUMEN my.corpus <- tm_map(my.corpus, tolower) my.corpus$doc1 my.corpus<- tm_map(my.corpus, removeWords, stopwords("english")) my.corpus <- tm_map(my.corpus, removePunctuation) my.corpus <- tm_map(my.corpus, removeNumbers) my.corpus <- tm_map(my.corpus, stemDocument) my.corpus <- tm_map(my.corpus, stripWhitespace) # STOPWORD DOKUMEN mystopwords <c("can","use","result","dan","end","get","iii","ind ah","jati","just","like","take","user","view","one" ,"research","result","studi") my.corpus <- tm_map(my.corpus, removeWords, mystopwords) my.corpus$doc1 # PEMBENTUKAN DAN PENYIMPANAN DOCUMEN TERM MATRIX doc.term.matrix.stm <DocumentTermMatrix(my.corpus) dim(doc.term.matrix.stm) doc.term.matrix <removeSparseTerms(doc.term.matrix.stm, 0.90) doc.term.matrix <- as.matrix(doc.term.matrix) dim(doc.term.matrix) #EXPLORING AND DISTRIBUTION OF TERM FREQUENCIES freq <- sort(colSums(as.matrix(dtm)), decreasing=TRUE) #VISUALISASI WORDCLOUDS library(wordcloud) set.seed(142) wordcloud(names(freq), freq, min.freq=30, scale=c(2, .1), colors=brewer.pal(6, "Dark2")) Lampiran 2 Source code penggalian frequent itemsets # PEMBENTUKAN TRANSAKSI TERM library(arules) trans <- as(doc.term.matrix, "transactions") # PENGGALIAN FREQUENT ITEMSET MENGGUNAKAN APRIORI frequent <- apriori(trans, parameter = list(sup=0.10, conf = 0.8, target="frequent itemsets", minlen=2, maxlen=4)) # PEMBENTUKAN MATRIK FREQUENT ITEMSETS frequent <- as(items(frequent), "matrix") DISTRIBUTION OF TERM FREQUENCIES freq <- sort(colSums(as.matrix(dtm)), decreasing=TRUE) #VISUALISASI WORDCLOUDS FREQUENT ITEMSETS library(wordcloud) set.seed(142) wordcloud(names(freq), freq, min.freq=30, scale=c(2, .1), colors=brewer.pal(6, "Dark2")) Lampiran 3 Source code clustering menggunakan algoritme Bisecting K- Means # MENGHITUNG BOBOT TERM MATRIX get.tf.idf.weights <- function(tf.vec, df) { # Computes tfidf weights from a term frequency vector and a document frequency scalar weight = rep(0, length(tf.vec)) weight[tf.vec > 0] = (1 + log2(tf.vec[tf.vec > 0])) * log2(N.docs/df) weight } get.weights.per.term.vec <- function(tfidf.row) { term.df <- sum(tfidf.row[1:N.docs] > 0) ) tf.idf.vec <- get.tf.idf.weights(tfidf.row, term.df) return(tf.idf.vec) } tfidf.matrix <- t(apply(doc.term.matrix, c(1), FUN = get.weights.per.term.vec)) colnames(tfidf.matrix) <- colnames(doc.term.matrix) tfidf.matrix <- scale(tfidf.matrix, center = FALSE, scale = sqrt(colSums(tfidf.matrix^2))) # GENERAT MATRIX PEMBOBOTAN TERM mat <- as.matrix(tfidf.matrix) rownames(mat) <- 1:nrow(mat) # NORMALISASI VEKTOR MENGGUNAKAN EUCLIDEAN norm_Euclidean <- function(mat) mat/apply(mat, MARGIN=1, FUN=function(x) sum(x^2)^.5) Normalized <- norm_Euclidean(mat) # FUNGSI MENGHITUNG JARAK CENTROID centroidDistance <- function(inputData, inputCentroid) { dists = apply(inputData, 1, function(subDataMatrix) apply(inputCentroid,1,function(subCentroid) dist(rbind(subDataMatrix, subCentroid)) ) ) return(t(dists)) } assignToClusters<-function(inputData, inputCentroid) { Lanjutan distanceToCentroid <- centroidDistance(inputData, inputCentroid) clusterLabel = apply(distanceToCentroid, 1, function(subdistanceToCentroid) which.min(subdistanceToCentroid)) return(clusterLabel) } # MENGHITUNG SSE TIAP CLUSTER SSECalculator<-function(inputData, inputCentroid) { dists = apply(inputData, 1, function(subDataMatrix) apply(inputCentroid,1,function(subCentroid) dist(rbind(subDataMatrix, subCentroid))^2 ) ) ##return transpose of dists calcualted return(sum(dists)) } # FUNGSI K-Means KMeans <- function(inputdata,k) { dataMatrix <- as.matrix(inputdata) rows <- as.integer(nrow(dataMatrix)) columns <- as.integer(ncol(dataMatrix)) storage.mode(dataMatrix)='double' currentCentroid <- matrix(nrow=k,ncol=columns) randomCentroidIndex <- sample(1:rows, k) currentCentroid <-dataMatrix[randomCentroidIndex,] prevCentroid <- matrix(nrow=k,ncol=columns,0) while(all(currentCentroid == prevCentroid)!=TRUE){ prevCentroid <- currentCentroid clusters <assignToClusters(dataMatrix,currentCentroid) for(i in 1:k) currentCentroid[i,] <colMeans(dataMatrix[which(clusters == i), ]) currentCentroid <- replace(currentCentroid, is.na(currentCentroid), .Machine$integer.max) } newDataMatrix = cbind(dataMatrix,clusters) result = data.frame(newDataMatrix) centroid = currentCentroid; SSE = matrix(nrow=k,ncol=1) Lanjutan for(i in 1:k) { inputMat = newDataMatrix[(which(newDataMatrix[,ncol(newDataMat rix)] == i)),-c(ncol(newDataMatrix))] inputCent =matrix(centroid[i,],1,columns) SSE[i,] <-SSECalculator(inputMat,inputCent) } return(list(result=result,centroid=centroid,SSE=SSE )) } # FUNGSI BISECTING K-MEANS BiKMeans <- function(inputdata,numberOfClusters) { dataMatrix <- as.matrix(inputdata) SSE = matrix(nrow=numberOfClusters,ncol=1,.Machine$integer.max) result = KMeans(dataMatrix,2) resultmatrix = result$result; SSE[1,] = result$SSE[1,] SSE[2,] = result$SSE[2,] k=2 clusters = result$clusters ##repeat the steps till we get all k clusters while(k < numberOfClusters) { clusterToSplit = which.max(SSE) points = which(resultmatrix[,ncol(resultmatrix)] == clusterToSplit) inputMat = resultmatrix[points,ncol(resultmatrix)] outResult = KMeans(inputMat,2) outResultMat <- outResult$result outResultMat <- as.matrix(outResultMat) outResultMat[(which(outResultMat[,ncol(resultmat rix)] == 1)),ncol(outResultMat)] = 'a' outResultMat[(which(outResultMat[,ncol(resultmat rix)] == 2)),ncol(outResultMat)] = 'b' outResultMat[(which(outResultMat[,ncol(resultmat rix)] == 'a')),ncol(outResultMat)] = clusterToSplit outResultMat[(which(outResultMat[,ncol(resultmat rix)] == 'b')),ncol(outResultMat)] = k +1 storage.mode(outResultMat)='double' for(i in 1:length(points)) { resultmatrix[points[i],ncol(resultmatrix)] = outResultMat[i,ncol(outResultMat)] } outPutSSE = outResult$SSE Lanjutan SSE[clusterToSplit] = outPutSSE[1,]; SSE[k+1] = outPutSSE[2,]; k <- k +1 outPutclusters <- outResult$clusters clusters = outPutclusters } result = data.frame(resultmatrix) return(list(result=result, SSE=SSE, clusters=clusters )) } # PROSES CLUSTERING BISECTING KMEANS k <-3 result = BiKMeans(cosine, 3) result_clusters = result$result result_SSE = result$SSE # MENYIMPAN HASIL CLUSTERING BISECTING KMEANS write.csv(result_clusters,file="C:/RDATA/PERCOBAAN/ bikmeans_k=3.csv") write.csv(result_SSE,file="C:/RDATA/PERCOBAAN/SSE_c osine_k=10.csv") RIWAYAT HIDUP Penulis lahir di Jayapura, provinsi Papua pada tanggal 03 Desember 1974 sebagai anak Pertama dari tiga bersaudara oleh pasangan Bapak Ngadimin dan Ibu Karyati. Pada tahun 2001 penulis mendapatkan gelar sarjana dari Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK) AKAKOM Yogyakarta pada Program Studi Sistem Informasi. Mulai tahun 2008 penulis bekerja sebagai staf pengajar di Amik Umel Mandiri Jayapura pada Program Studi Manajemen Informatika. Kemudian pada tahun 2012 penulis melanjutkan pendidikan jenjang Magister di Institut Pertanian Bogor (IPB) pada Program Studi Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam.