PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PENGELOMPOKAN TEMA LIRIK LAGU MENGGUNAKAN METODE K-MEANS CLUSTERING (Studi Kasus : Radio Masdha Yogyakarta)
SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Disusun Oleh : Dionisia Bhisetya Rarasati 115314045 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015
i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
A GROUPING OF SONG-LYRIC THEMES USING K-MEANS CLUSTERING (Case Study : Radio Masdha of Yogyakarta)
FINAL PROJECT Presented as Partial Fulfillment of Requirements To Obtain Sarjana Komputer Degree In Informatics Engineering Study Program
Written By : Dionisia Bhisetya Rarasati 115314045
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PENGESAIIAN SKRIPSI
PENGELOMPOKAN TEMA LIRIK LAGU MENGGUNAKAN METODN K-MEANS CLUSTERING (Studi Kasus : Radio Masdha Yogyakarta)
Dipersiapkan dan ditulis oleh
:
Dionisia Bhisetya Rarasati 115314045
Telah dipertahankan di depan Panitia Penguji Pada tanggal 27 Agustus 2015
Dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap
Ketua
: Dr. Anastasia Rita
Tanda Tangan
ffilqr?-r
Widiarti, M.Kom
ruL-
Sekretaris : Robertus Adi Nugroho S.T., M.Eng.
Anggota : Dr. C. Kuntoro Adi, S.J., M.A,
M.Sc.
Yogyakarta,.{J...fu-Y*g
20
lE
Fakultas Sains dan Teknologi Universitas Sanata Dharma
d.e &' iit
Paulina
Dekan,
ningsih Prima Rosa, S.Si., M.Sc.
iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN
“The key for a happiness is when you thankful for the grace that God has given.”
This final project belongs to: My Parents and my family thank you so much for guiding me My Best Partner thank you so much for all support
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa di dalam skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 27 Agustus 2015 Penulis
Dionisia Bhisetya Rarasati
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Dionisia Bhisetya Rarasati NIM
: 115314045
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul:
PENGELOMPOKAN TEMA LIRIK LAGU MENGGUNAKAN METODE K-MEANS CLUSTERING
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 27 Agustus 2015
Yang menyatakan,
Dionisia Bhisetya Rarasati
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
INTISARI Penempatan atau pengelompokan lagu sesuai dengan tema, sangat diperlukan dalam suatu siaran radio. Penempatan tema lagu yang tepat akan memudahkan penyiar radio memilihkan lagu sesuai permintaan pendengar. Cara pengelompokan tema secara otomatis dapat dipergunakan, salah satunya dengan K-means clustering. Pada penelitian ini tema lagu diambil dari teks lirik lagu. Tujuan dari penelitian ini adalah membangun sistem yang secara otomatis mampu mengelompokkan tema lirik lagu, dan mengetahui tingkat akurasi pengelompokan. Tahapan proses dimulai dari pengolahan kata atau pengolahan teks disebut dengan text mining. Dalam text mining terdapat beberapa proses yaitu text operation yang terdiri dari tokenizing, stopword, stemming serta pembobotan kata, selanjutnya dapat diolah menggunakan K-Means clustering. Proses clustering terdiri dari, inisialisasi centroid awal menggunakan Variance Initialization, selanjutnya menghitung jarak centroid pada data menggunakan Euclidean distance, hingga dapat pengelompokkan yang sesuai dengan akurasi. Penghitungan akurasi menggunakan confusion matrix. Selanjutnya untuk melihat kesesuaian sistem yang dibuat, maka dimasukkan data baru yang diproses dengan sistem, lalu dapat menentukan data baru tergolong salah satu jenis tema. Dari penelitian yang dilakukan pada studi kasus Radio Masdha Yogyakarta, didapatkan total data lirik lagu sebanyak 400 serta jumlah cluster terbagi menjadi empat. Cluster tersebut terdiri dari, cluster percintaan, persahabatan, religi dan perjuangan. Hasil penelitian pengelompokkan lirik lagu berdasarkan tema dapat berjalan baik dengan akurasi 93,25% untuk jumlah frekuensi kata unik maksimal 121 (batas atas) dan kata unik minimal 0 (batas bawah). Kata kunci : K-Means clustering, Text Operation, Variance Initialization, Confusion Matrix.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT
The song placement or grouping based on the theme is really needed in a radiobroadcast. The accurate song theme placement will ease the broadcaster to choose the song in accordance with the listeners’ requests. One of the automatic way of theme grouping that can be used is K-Means Clustering. In this research, the song theme is taken from the text of song lyrics. The aim of this study is developing a system that can automatically group the song lyric theme and know the accuracy level of the grouping. The process stage is started with the data processing or text processing called as text mining. In text mining, there are some processes. First, the text operation. The text operation consists of tokenizing, stopword, steeming, and word weighting then can be processed using K-Means clustering. In clustering process, it consists of initial centroid initialization uses Variance Initialization, next counts the centroid distance on the data using Euclidean distance until get the proper grouping accurately. The accuracy counting uses confusion matrix. The next step to see the suitability system that has been made, new data is added which then is processed by a system. After that, it can decide the new data is classified into one specific theme. From the research that has been conducted as case study in Masdha Radio Yogyakarta, total data available 400 and divided into four clusters. The clusters consist of love cluster, friendship cluster, religion cluster, and fighting cluster. The result of research song lyric grouping based on the theme works well with 93.25% accuracy for the unique word frequency numbers 121 maximum and unique word 0 minimum. Keywords: K-Means clustering, Text Operation, Variance Initialization, Confusion Matrix.
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas berkat yang diberikan dalam penyusunan Skripsi ini sehingga semuanya dapat berjalan dengan baik dan lancar. Skripsi ini merupakan salah satu syarat mahasiswa untuk mendapatkan gelar sarjana S-1 pada Prodi Teknik Informatika, Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta. Berkat bimbingan dan dukungan dari berbagai pihak, Skripsi ini dapat terselesaikan. Pada kesempatan ini dengan segenap kerendahan hati penulis menyampaikan rasa terimakasih kepada : 1. Paulina Heruningsih Prima Rosa, S.Si., M.Sc., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta. 2. Dr. C. Kuntoro Adi, S.J.,M.A.,M.Sc. selaku Dosen Pembimbing Skripsi, yang dengan sabar memberi arahan serta bimbingan kepada penulis dalam pembuatan skripsi. 3. Drs. Ignatius Pratomo, Anastasia Sri Sumarni, Maria Sukarsih, Bernardus Grawiradhika, Caroline Pundyaresmi selaku keluarga penulis yang senantiasa telah mendukung dan memberi semangat penulis dalam menyelesaikan skripsi. 4. Timotius Slamet Putro Cahyono yang selalu mendukung, memberikan semangat serta menjadi pendengar setiap cerita suka-duka yang penulis hadapi dalam proses pembuatan skripsi hingga dapat menyelesaikan skripsi ini
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5. Romo Poldo, Eric, Dio, Bee, Priska serta teman-teman Teknik Informatika Universitas Sanata Dharma khususnya Angkatan 2011 dan teman penulis lain yang tidak dapat disebutkan satu-persatu yang telah mendukung penulis dalam menyelesaikan Skripsi ini. Penulis menyadari dalam penulisan Skripsi ini masih jauh dari sempurna. Segala kritik dan saran yang membangun sangat diharapkan oleh penulis demi penyempurnaan dikemudian hari. Akhir kata, semoga Skripsi ini dapat berguna bagi kita semua.
Yogyakarta, 27 Agustus 2015 Penulis,
Dionisia Bhisetya Rarasati
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI HALAMAN JUDUL................................................................................................ i TITLE PAGE .......................................................................................................... ii HALAMAN PERSETUJUAN ............................................................................... iii PENGELOMPOKAN TEMA LIRIK LAGU ........................................................ iii HALAMAN PENGESAHAN ................................................................................ iv PENGELOMPOKAN TEMA LIRIK LAGU ........................................................ iv HALAMAN PERSEMBAHAN ............................................................................. v PERNYATAAN KEASLIAN KARYA ................................................................ vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ................ vii PENGELOMPOKAN TEMA LIRIK LAGU ....................................................... vii INTISARI............................................................................................................. viii ABSTRACT ........................................................................................................... ix KATA PENGANTAR ............................................................................................ x BAB I ...................................................................................................................... 1 1.1.
Latar Belakang ......................................................................................... 1
1.2.
Rumusan Masalah .................................................................................... 3
1.3.
Tujuan Penelitian ...................................................................................... 3
1.4.
Batasan Masalah ....................................................................................... 3
1.5.
Sistematika Penulisan ............................................................................... 3
BAB II ..................................................................................................................... 5 2.1. Information Retrieval ................................................................................... 5 2.1.1. Proses Information Retrieval ................................................................. 5 2.1.1.1. Text Operation ................................................................................ 6 2.1.1.1.1. Tokenizing .............................................................................. 6 2.1.1.1.2. Stopwords Removal / Filtering ............................................... 7 2.1.1.1.3. Stemming ................................................................................ 7 2.1.1.1.3.1. Aturan / Rule Stemming ................................................... 8 2.1.1.1.4. Penggabungan Kata Berdasarkan Sinonim ........................... 12 2.1.1.1.5. Pembobotan Kata .................................................................. 12 2.1.1.1.6. Normalisasi ZScore ............................................................... 15
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.1.1.1.7. Variance Initialization .......................................................... 16 2.2.
K-Means Clustering ............................................................................... 17
2.2.1.
Langkah Algoritma K-Means clustering ......................................... 19
2.2.2.
Flowchart K-Means Clustering ....................................................... 21
2.3.
Confusion Matrix .................................................................................... 22
BAB III ................................................................................................................. 24 3.1.
Data ........................................................................................................ 24
3.2.
Deskripsi Sistem ..................................................................................... 24
3.3.
Model Analisis ....................................................................................... 25
3.3.1.
Diagram Block ................................................................................ 25
3.3.1.1.
Text Operation ......................................................................... 27
3.3.1.1.1. Tokenizing ............................................................................. 27 3.3.1.1.2. Stopword removal / filtering ................................................. 29 3.3.1.1.3. Stemming ............................................................................... 32 3.3.1.1.4. Pembobotan Kata .................................................................. 34 3.3.1.1.5. Penggabungan Kata (Sinonim) ............................................. 40 3.3.1.1.6. Normalisasi Z-Score .............................................................. 41 3.3.1.2.
K-Means Clustering ................................................................. 43
3.3.1.3.
Pengujian Akurasi .................................................................... 46
3.4.
Desain Interface ...................................................................................... 47
3.5.
Spesifikasi Software dan Hardware ....................................................... 48
BAB IV ................................................................................................................. 49 4.1. Implementasi .............................................................................................. 49 4.1.1. User Interface ....................................................................................... 49 4.1.2. Data ...................................................................................................... 57 4.1.2.1. Text Operation .............................................................................. 58 4.1.2.1.1. Tokenizing .............................................................................. 58 4.1.2.1.2. Stopword ................................................................................. 58 4.1.2.1.3. Stemming ................................................................................ 59 4.1.2.1.4. Sinonim .................................................................................. 60 4.1.2.1.5. Pembobotan Kata ................................................................... 61 4.1.2.1.6. Normalisasi Z-Score ............................................................... 61
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.1.2.2. K-Means Clustering ...................................................................... 62 4.1.2.3. Output Centroid............................................................................. 63 4.1.2.4. Akurasi .......................................................................................... 63 4.2. Analisa Hasil .............................................................................................. 63 BAB V................................................................................................................... 68 5.1. Kesimpulan ................................................................................................. 68 5.2. Saran ........................................................................................................... 69 DAFTAR PUSTAKA ........................................................................................... 70 LAMPIRAN .......................................................................................................... 71
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR Gambar 2.1 Proses Information Retrieval (Manning C. D., 2008) ................ 5 Gambar 2.2 Ilustrasi Penentuan Keanggotaan Kelompok Berdasarkan Jarak (Turban dkk, 2005)...................................................................... 18 Gambar 2.3 Flowchart Algoritma KMeans .................................................... 21 Gambar 3.1 Diagram Block ........................................................................... 25 Gambar 3.2 Tokenizing dokumen pertama .................................................... 27 Gambar 3.3 Tokenizing dokumen kedua ....................................................... 28 Gambar 3.4 Tokenizing dokumen ketiga ....................................................... 28 Gambar 3.5 Tokenizing dokumen keempat ................................................... 29 Gambar 3.6 Stopword dokumen pertama...................................................... 30 Gambar 3.7 Stopword dokumen kedua .......................................................... 30 Gambar 3.8 Stopword dokumen ketiga ......................................................... 31 Gambar 3.9 Stopword dokumen keempat ..................................................... 31 Gambar 3.10 Stemming dokumen pertama .................................................... 32 Gambar 3.11 Stemming dokumen kedua ....................................................... 32 Gambar 3.12 Stemming dokumen ketiga ....................................................... 33 Gambar 3.13 Stemming dokumen keempat ................................................... 33 Gambar 3.14 Pembobotan kata dokumen pertama ........................................ 34 Gambar 3.15 Pembobotan kata dokumen kedua ............................................ 34 Gambar 3.16 Pembobotan kata dokumen ketiga ........................................... 35 Gambar 3.17 Pembobotan kata dokumen keempat ......................................... 35 Gambar 3.18 Desain Interface ....................................................................... 48 Gambar 4.1 Implementasi user interface sebelum proses dilakukan ............. 50 Gambar 4.2 Implementasi user interface setelah proses dilakukan ............... 50 Gambar 4.3 Jumlah data dan button Preprocessing....................................... 51 Gambar 4.4 Batas bawah dan batas atas ........................................................ 52 Gambar 4.5 Button Proses Clustering ............................................................ 52 Gambar 4.6 Input File .................................................................................... 53
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.7 Hasil Cluster ............................................................................... 54 Gambar 4.8 Hasil Akurasi .............................................................................. 55 Gambar 4.9 Hasil Input Data Baru ............................................................................ 55 Gambar 4.10 Tampil Teks Lagu ..................................................................... 56 Gambar 4.11 Hasil message informasi ........................................................... 56 Gambar 4.12 Kumpulan data .......................................................................... 57 Gambar 4.13 Salah satu contoh data lirik lagu .............................................. 57 Gambar 4.14 Implementasi Program Tokenizing ........................................... 58 Gambar 4.15 Implementasi Program Stopword ............................................. 59 Gambar 4.16 Implementasi Program Stemming ............................................ 59 Gambar 4.17 Kamus Sinonim ....................................................................... 60 Gambar 4.18 Implementasi Program Sinonim .............................................. 60 Gambar 4.19 Hasil akurasi ............................................................................ 63 Gambar 4.20 Hasil akurasi Batas Atas 121 dan Batas Bawah 0-5................ 66 Gambar 4.21 Hasil akurasi Batas Atas 80 dan Batas Bawah 0-5 ................. 66
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Tabel 2.1 Kombinasi Awal dan Akhir ........................................................... 10 Tabel 2.2 Cara Menentukan Tipe Awalan Untuk awalan "te-" ..................... 10 Tabel 2.3 Jenis Awalan Berdasarkan Tipe ..................................................... 11 Tabel 2.4 Tabel Confusion Matrix ................................................................. 22 Tabel 3.1 Tabel menghitung DF .................................................................... 36 Tabel 3.2 Tabel menghitung IDF ................................................................... 36 Tabel 3.3 Tabel menghitung bobot pertama .................................................. 38 Tabel 3.4 Tabel menghitung bobot kedua ..................................................... 38 Tabel 3.5 Tabel menghitung bobot ketiga .................................................... 39 Tabel 3.6 Tabel menghitung bobot keempat ................................................. 39 Tabel 3.7 Tabel contoh data belum mengalami penggabungan kata ............ 40 Tabel 3.8 Tabel contoh data telah mengalami penggabungan kata .............. 40 Tabel 3.9 Tabel Pembobotan......................................................................... 41 Tabel 3.10 Tabel Standar Deviasi Per Lirik .................................................... 42 Tabel 3.11 Tabel Mean ................................................................................... 42 Tabel 3.12 Tabel Normalisasi ......................................................................... 43 Tabel 3.13 Tabel Variance .............................................................................. 44 Tabel 3.14 Tabel Sort Lirik ............................................................................. 45 Tabel 3.15 Tabel Centroid .............................................................................. 45 Tabel 3.16 Tabel Jarak Terdekat (Euclidean Distance) .................................. 46 Tabel 3.17 Tabel hasil cluster ......................................................................... 46 Tabel 4.1 Tabel kata unik hasil preprocessing .............................................. 53 Tabel 4.2 Tabel Hasil Centroid ..................................................................... 54 Tabel 4.3 Tabel Confusion Matrix ................................................................ 55 Tabel 4.4 Tabel Pembobotan Kata ................................................................ 61 Tabel 4.5 Normalisasi Z-Score ...................................................................... 62 Tabel 4.6 Hasil pengelompokkan cluster ...................................................... 62 Tabel 4.7 Hasil centroid ................................................................................ 63
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 4.8 Tabel Percobaan dengan batas atas 121-70 dan batas bawah 0-5 . 65
xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN 1.1.
Latar Belakang Radio Masdha FM adalah radio kampus dengan segala dinamika kemahasiswaan yang dimiliki oleh Universitas Katholik yaitu Universitas Sanata Dharma dan telah resmi berbentuk badan hukum dengan nama PT. Radio Swara Mahasiswa Sanata Dharma. Radio Masdha FM menawarkan program acara yang mengerti dunia kaum muda dimana tema sangat diperlukan untuk menjelaskan perasaan atau emosi yang dapat dirangkai melalui lirik lagu. Terdapat banyak tema lagu yang dikenal masyarakat yaitu seperti percintaan, persahabatan, perjuangan, religi serta jenis tema lainnya. Maka untuk menghindari penempatan tema lagu yang tidak sesuai dengan lirik lagu diperlukan suatu metode untuk menentukan tema lagu sesuai dengan lirik lagu. Kata-kata pada lirik lagu diolah sehingga nantinya dapat untuk menggolongkan berdasarkan kesesuaian tema. Pengolahan kata atau pengolahan teks disebut dengan text mining. Setelah proses pengolahan kata selesai selanjutnya diperlukan penggolongan atau clustering tema pada lirik lagu, salah satunya menggunakan metode K-Means. K-Means clustering merupakan salah satu metode yang sering digunakan, karena memiliki akurasi yang tinggi serta pengolahannya yang mudah dimengerti sehingga dinilai cukup efisien, yang ditunjukkan dengan kompleksitasnya O(tkn), dengan catatan n adalah banyaknya obyek data, k adalah jumlah cluster yang dibentuk dan t banyaknya iterasi. Biasanya nilai
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
k dan t jauh lebih kecil daripada nilai n. Selain itu, dalam iterasinya metode ini akan berhenti dalam kondisi optimum lokal (Williams, 2006). Penelitian yang sudah pernah dilakukan berkaitan dengan tema pada lirik lagu adalah menggunakan metode
Transformed Weight-Normalized
Complement Naive Bayes (TWCNB). Evaluasi sistem yang dilakukan terhadap 29 data uji dan 224 data latih dengan perubahan jumlah data latih yang berbeda-beda pada 4 skenario menghasilkan nilai terbaik pada precision senilai 0,89, recall senilai 0,856 dan nilai F-measure senilai 0,857. (Pratiwi, 2014). Melalui penjelasan metode K-Means diatas, maka pada penelitian ini menggunakan metode K-Means untuk clustering tema pada lirik lagu. Salah satu contoh kasus yang telah dipecahkan dengan menggunakan metode KMeans Clustering adalah untuk pengelompokkan posisi pemain sepakbola (Nugroho, 2012), dimana pada penelitian ini hasil pengujian akurasi program dengan menggunakan 5 cross validation yaitu 53,49%, 46,52%, 54,72%, 66,50%, 50,83% (rata-rata akurasi 54,41%). Sehingga dengan melakukan penelitian ini dapat mengetahui tingkat akurasi serta efisien untuk menyelesaikan masalah clustering tema pada lirik lagu menggunakan metode ini. Maka masalah pokok yang ingin dijawab pada penelitian ini ialah dengan menggunakan metode K-Means clustering, mampukah sistem secara otomatis mengelompokkan tema lirik lagu dengan baik, sehingga dapat mengetahui lirik lagu yang sesuai terhadap pengelompokan tema.
2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1.2.
Rumusan Masalah Berdasarkan Latar Belakang yang ada dapat di rumuskan masalah yaitu : Berapakah tingkat akurasi pengelompokan lirik lagu berdasarkan tema dengan menggunakan metode K-Means clustering ?
1.3.
Tujuan Penelitian Tujuan dari penelitian ini adalah membangun sistem yang secara otomatis mampu mengelompokan tema lirik lagu, dan mengetahui tingkat akurasi pengelompokkan.
1.4.
Batasan Masalah Dalam batasan masalah ini, penulis membatasi permasalahan yang perlu, yaitu :
1. Data pada lirik lagu adalah lirik lagu yang berbahasa Indonesia. 2. Clustering yang digunakan sebanyak empat cluster yaitu percintaan, persahabatan, religi, dan perjuangan. 3. Data lirik lagu yang diambil adalah Refrain.
1.5.
Sistematika Penulisan BAB I :
Pendahuluan Berisi penjelasan mengenai masalah yang akan diteliti, berisi latar belakang, rumusan masalah, tujuan penelitian, batasan masalah, dan sistematika penulisan.
3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II :
Landasan Teori Berisi mengenai penjelasan dan uraian mengenai teori-teori yang berkaitan dengan topik dari clustering tema pada lirik lagu menggunakan metode K-Means.
BAB III :
Metodologi Berisi analisis dan desain yang merupakan detil teknis sistem yang akan dibangun.
BAB IV :
Implementasi dan Analisis Hasil Berisi implementasi dan perancangan sistem yang telah dibuat sebelumnya serta analisis hasil dari program yang telah dibuat.
BAB V :
Penutup Berisi kesimpulan dan saran dari sistem yang telah dibuat, melalui pembahasan pada bab-bab sebelumnya.
4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II LANDASAN TEORI Pada bab ini membahas tentang penjelasan serta uraian mengenai teoriteori yang berkaitan dengan topik dari clustering tema pada lirik lagu menggunakan metode K-Means. Berikut ini teori-teori yang akan dibahas:
2.1. Information Retrieval Information Retrieval merupakan sekumpulan algoritma dan teknologi untuk melakukan pemrosesan, penyimpanan, dan menemukan kembali informasi (terstruktur) pada suatu koleksi data yang besar (Manning dkk., 2008). Data yang digunakan dapat berupa teks, tabel, gambar maupun video. Sistem IR yang baik memungkinkan pengguna menentukan secara cepat dan akurat apakah isi dari dokumen yang diterima memenuhi kebutuhannya. 2.1.1. Proses Information Retrieval Proses information retrieval secara garis besar digambarkan dalam Gambar 2.1 dibawah ini:
Gambar 2.1 Proses Information Retrieval (Manning dkk., 2008) 5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.1.1.1. Text Operation Text mining memiliki definisi menambang data yang berupa teks di mana sumber data biasanya didapatkan dari dokumen, dan tujuannya adalah mencari kata - kata yang dapat mewakili isi dari dokumen sehingga dapat dilakukan analisa keterhubungan antar dokumen. (Harlian, 2006). Proses kerja dari text mining terdapat beberapa tahapan, yaitu: Dalam text mining melalui proses text preprocessing, yaitu proses yang diterapkan terhadap data teks yang bertujuan untuk menghasilkan data numerik. Tahapan dalam proses ini, yaitu :
2.1.1.1.1. Tokenizing Tokenizing : tahap pemotongan string input berdasarkan tiap kata yang menyusunnya. Sehingga mengubah semua huruf dalam dokumen menjadi huruf kecil dan karakter selain huruf dihilangkan. Contoh proses tokenizing : Kalimat asal : Kuketuk pintuMu dan Kau bukakan. Hasil dari text preprocessing: Kuketuk
kau
Pintumu
bukakan
Dan
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.1.1.1.2. Stopwords Removal / Filtering Tahap stopword adalah tahap penyaringan kata-kata penting dari hasil tokenizing, dimana kata yang tidak relevan dibuang. Proses ini menggunakan pendekatan stoplist atau stopword. Contoh stopword yaitu “ada”, “kita”, “kamu”, dan lain lain. Contoh proses stopword: Hasil dari text preprocessing : Kuketuk
Kau
Pintumu
bukakan
Dan
Hasil dari stopword: Ketuk Pintu Bukakan
2.1.1.1.3.Stemming Stemming merupakan tahap mencari root kata dari tiap kata hasil stopword. Hasil dari stopword: Ketuk Pintu Bukakan
7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Hasil dari stemming: Ketuk Pintu Buka 2.1.1.1.3.1.Aturan / Rule Stemming Algoritma Stemming untuk menghilangkan kata berimbuhan memiliki tahap-tahap sebagai berikut (Nazief dan Adriani, 2007): 1. Pertama cari kata yang akan distem dalam kamus kata dasar. Jika ditemukan maka diasumsikan kata adalah root word. Maka algoritma berhenti. 2. Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”) dibuang. Jika berupa particles (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini diulangi lagi untuk menghapus Possesive Pronouns(“-ku”, “-mu”, atau “nya”), jika ada. 3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a a. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah “-k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b. b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut ke langkah 4. 4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi ke langkah 4a, jika tidak pergi ke langkah 4b.
8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
a. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika ditemukan maka algoritma berhenti, jika tidak b. pergi ke langkah 4b. c. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti. 5. Melakukan Recoding. 6. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai.
Tipe awalan ditentukan melalui langkah-langkah berikut: 1. Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-turut adalah “di-”, “ke-”, atau “se-”. 2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya. 3. Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti. 4. Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan “none” maka awalan dapat dilihat pada Tabel 2.2 Hapus awalan jika ditemukan.
9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 2.1 Kombinasi Awal dan Akhir Awalan
Akhiran yang tidak diizinkan
be-
-i
di-
-an
ke-
-i, -kan
me-
-an
se-
-i, -kan
Tabel 2.2 Cara Menentukan Tipe Awalan Untuk awalan "te-" Following Characters Set 1
Set 2
Set 3
Set 4
Tipe Awalan
“-r-“
“-r-“
–
–
none
–
–
ter-luluh
“-r-“ “-r-“
not (vowel or “r-”)
“-er-“
vowel
ter
“-r-“
not (vowel or “r-”)
“-er-“
not vowel
ter-
“-r-“
not (vowel or “r-”)
not “-er-“
–
ter
not (vowel or “-r-”)
“-er-“
vowel
–
none
not (vowel or “-r-”)
“-er-“
not vowel
–
te
10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 2.3. Jenis Awalan Berdasarkan Tipe Tipe Awalan
Awalan yang harus dihapus
di-
di-
ke-
ke-
se-
se-
te-
te-
ter-
ter-
ter-luluh
Ter
Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturanaturan dibawah ini: 1. Aturan untuk reduplikasi.
Jika kedua kata yang dihubungkan oleh kata penghubung adalah kata yang sama maka root word adalah bentuk tunggalnya, contoh : “bukubuku” root word-nya adalah “buku”.
Kata lain, misalnya “bolak-balik”, “berbalas-balasan, dan ”seolah-olah”. Untuk mendapatkan root word-nya, kedua kata diartikan secara terpisah. Jika keduanya memiliki root word yang sama maka diubah menjadi bentuk tunggal, contoh: kata “berbalas-balasan”, “berbalas” dan “balasan” memiliki root word yang sama yaitu “balas”, maka root word “berbalasbalasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”, “bolak” dan “balik” memilikiroot word yang berbeda, maka root word-nya adalah “bolak-balik”.
11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Tambahan bentuk awalan dan akhiran serta aturannya.
Untuk tipe awalan “mem-“, kata yang diawali dengan awalan “memp-” memiliki tipe awalan “mem-”.
Tipe awalan “meng-“, kata yang diawali dengan awalan “mengk-” memiliki tipe awalan “meng-”.
2.1.1.1.4. Penggabungan Kata Berdasarkan Sinonim Menurut Kamus Besar Bahasa Indonesia (KBBI) sinonim adalah bentuk bahasa yg maknanya mirip atau sama dengan bentuk bahasa lain. Proses sinonim akan dilakukan ketika ada kata berbeda namun memiliki makna yang sama, untuk me-minimal-kan jumlah kata yang terdapat pada sistem, tanpa menghilangkan jumlah frekuensi.
2.1.1.1.5. Pembobotan Kata Pemberian bobot terhadap suatu kata dilakukan dengan memberikan nilai frekuensi suatu kata sebagai bobot. Apabila kemunculan suatu kata dalam dokumen semakin besar maka nilai kesesuaian semakin besar pula. Pembobotan kata dipengaruhi oleh hal-hal berikut ini (Mandala dan Setiawan, 2004):
1. Term Frequency (tf) factor, yaitu faktor yang menentukan bobot term pada suatu dokumen berdasarkan jumlah kemunculannya dalam dokumen tersebut.
Nilai
jumlah
kemunculan
suatu
kata
(term
frequency)
12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
diperhitungkan dalam pemberian bobot terhadap suatu kata. Semakin besar jumlah kemunculan suatu term (tf tinggi) dalam dokumen, semakin besar pula bobotnya dalam dokumen atau akan memberikan nilai kesesuian yang semakin besar. 2. Inverse Document Frequency (idf) factor, yaitu pengurangan dominansi term yang sering muncul di berbagai dokumen. Hal ini diperlukan karena term yang banyak muncul di berbagai dokumen, dapat dianggap sebagai term umum (common term) sehingga tidak penting nilainya. Sebaliknya faktor kejarangmunculan kata (term scarcity) dalam koleksi dokumen harus diperhatikan dalam pemberian bobot. Kata yang muncul pada sedikit dokumen harus dipandang sebagai kata yang lebih penting (uncommon tems) daripada kata yang muncul pada banyak dokumen (Mandala dan Setiawan, 2004). Pembobotan akan memperhitungkan faktor kebalikan frekuensi dokumen yang mengandung suatu kata (inverse document frequency). Pada metode ini, perhitungan bobot term t dalam dokumen dilakukan dengan mengalikan nilai Term Frequency dengan Inverse Document Frequency.
Pada Term Frequency (tf) terdapat beberapa perhitungan yang dapat digunakan yaitu (Mandala dan Setiawan, 2004): 1. tf biner (binery tf), hanya memperhatikan apakah suatu kata ada atau tidak dalam dokumen, jika ada diberi nilai satu, jika tidak diberi nilai nol
13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. tf murni (raw tf), nilai tf diberikan berdasarkan jumlah kemunculan suatu kata di dokumen. 3. tf logaritmik, hal ini untuk menghindari dominansi dokumen yang mengandung sedikit kata dalam query, namun mempunyai frekuensi yang tinggi. tf = 1 + log (tf) 4.
(2.1)
tf normalisasi, menggunakan perbandingan antara frekuensi sebuah kata dengan jumlah keseluruhan kata pada dokumen.
(2.2)
Pada Inverse Document Frequency (idf) perhitungannya adalah : idf j = log (D /df j )
(2.3)
Keterangan : D
: jumlah semua dokumen dalam koleksi
df j
: jumlah dokumen yang mengandung term t j
Jenis formula yang akan digunakan untuk perhitungan term frequency (tf) yaitu tf murni (raw tf (Robertson, 1974). Oleh karena itu untuk rumus yang digunakan untuk TF-IDF adalah nilai raw tf dikalikan dengan nilai inverse document frequency Persamaan (2.3):
14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
(2.4) Keterangan : wij
: bobot term tj terhadap dokumen di
tfij
: jumlah kemunculan term tj dalam dokumen di
D
: jumlah semua dokumen yang ada dalam database
dfj
: jumlah dokumen yang mengandung term tj (minimal ada satu kata yaitu term tj)
Berdasarkan Persamaan (2.4) berapapun besarnya nilai tfij , jika D = dfj didapatkan hasil 0 (nol) untuk perhitungan idf. Maka dapat ditambahkan nilai 1 pada sisi idf, sehingga perhitungan bobot menjadi sebagai berikut :
(2.5) 2.1.1.1.6. Normalisasi ZScore Z-score merupakan metode normalisasi yang berdasarkan mean (nilai rata-rata) dan standar deviasi dari data. Metode ini sangat berguna jika kita tidak mengetahui nilai aktual minimum dan maksimum dari data. (Martiana, 2013). Lihat Persamaan (2.6) newdata = (data-mean)/std
(2.6)
Pada persamaan (2.6) new data = data baru mean = rata-rata std = standar deviasi
15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.1.1.1.7. Variance Initialization Variance Initialization merupakan salah satu teknik analisis multivariate yang berfungsi untuk membedakan rerata lebih dari dua kelompok data dengan cara membandingkan variansinya. Analisis varian termasuk dalam kategori statistik parametric. (Ghozali, 2009). Untuk membandingkan variansinya, maka digunakan rumus variance yang terdapat pada persamaan (2.7) (2.7)
Pada persamaan (2.7) xi = nilai x ke-i = rata-rata n = ukuran sampel s2 = varian Untuk menghitung standar deviasi (simpangan baku) maka digunakan rumus standar deviasi seperti yang terdapat pada persamaan (2.8)
(2.8)
Pada persamaan (2.8) s2 = varian s = standar deviasi (simpangan baku)
16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.2.
K-Means Clustering K Means clustering merupakan metode yang populer digunakan untuk mendapatkan deskripsi dari sekumpulan data dengan cara mengungkapkan kecenderungan setiap individu data untuk berkelompok dengan individuindividu data lainnya. Kecenderungan pengelompokan tersebut didasarkan pada kemiripan karakteristik tiap individu data yang ada. Ide dasar dari metode ini adalah menemukan pusat dari setiap kelompok data yang mungkin ada untuk kemudian mengelompokkan setiap data individu kedalam salah satu dari kelompok-kelompok tersebut berdasarkan jaraknya (Turban dkk., 2005). Semakin dekat jarak data individual, sebut saja X1 dengan salah satu pusat dari kelompok yang ada , sebut saja A, maka semakin jelas bahwa X1 tersebut merupakan anggota dari kelompok yang berpusat di A dan semakin jelas pula bahwa X1 bukan anggota dari kelompok-kelompok yang lainnya (ilustrasi dapat dilihat pada gambar 2.2). Secara kuantitatif hal ini ditunjukkan melalui fakta bahwa d1A yaitu jarak dari X1 ke A mempunyai nilai yang paling kecil jika dibandingankan dengan d1B dan d1C.
17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2.2 Ilustrasi Penentuan Keanggotaan Kelompok Berdasarkan Jarak (Turban dkk., 2005)
Cara untuk menemukan pusat yang paling sesuai sebagai upaya merepresentasikan posisi dari sebuah kelompok data terhadap kelompok data yang lainnya dilakukan sebuah proses perulangan. Proses perulangan ini dimulai dengan menentukan secara sembarang posisi dari pusat-pusat kelompok yang telah ditetapkan. Selanjutnya ditentukan keanggotaan setiap individu data berdasarkan jarak terpendek terhadap pusat-pusat tersebut. Pada iterasi kedua dan seterusnya dilakukan pembaharuan posisi pusat untuk semua kelompok. Langkah selanjutnya dilakukan pembaharuan keanggotaan untuk setiap kelompok.
18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.2.1. Langkah Algoritma K-Means clustering Langkah-langkah dalam algoritma K-means clustering adalah (Agusta, 2007) : 1. Tentukan k sebagai jumlah cluster yang di bentuk. Untuk menentukan banyaknya cluster k dilakukan dengan beberapa pertimbangan seperti pertimbangan teoritis dan konseptual yang mungkin diusulkan untuk menentukan berapa banyak cluster. 2. Bangkitkan k Centroid (titik pusat cluster) awal secara random. Penentuan centroid awal dilakukan secara random/acak dari objek-objek yang tersedia sebanyak k cluster, kemudian untuk menghitung centroid cluster ke-i berikutnya, digunakan rumus sebagai berikut :
(2.9) dimana;
: centroid pada cluster
: objek ke-i n : banyaknya objek/jumlah objek yang menjadi anggota cluster 3. Hitung jarak setiap objek ke masing-masing centroid dari masing-masing cluster. Untuk menghitung jarak antara objek dengan centroid penulis menggunakan Euclidian Distance.
(2.10) dimana ; xi : objek x ke-i
19
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
yi : daya y ke-i n : banyaknya objek 4. Alokasikan masing-masing objek ke dalam centroid yang paling terdekat. Untuk melakukan pengalokasian objek kedalam masing-masing cluster pada saat iterasi secara umum dapat dilakukan dengan cara hard k-means, dimana secara tegas setiap objek dinyatakan sebagai anggota cluster dengan mengukur jarak kedekatan sifatnya terhadap titik pusat cluster tersebut. 5.Lakukan iterasi, kemudian tentukan posisi centroid baru dengan menggunakan persamaan (2.9). 6. Ulangi langkah 3 jika posisi centroid baru tidak sama. Pengecekan konvergensi dilakukan dengan membandingkan matriks group assignment pada iterasi sebelumnya dengan matrik group assignment pada iterasi yang sedang berjalan. Jika hasilnya sama maka algoritma k-means cluster analysis sudah konvergen, tetapi jika berbeda maka belum konvergen sehingga perlu dilakukan iterasi berikutnya.
20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.2.2. Flowchart K-Means Clustering Berikut penggambaran algoritma k-means clustering menggunakan flowchart:
Gambar 2.3 Flowchart Algoritma KMeans
Gambar diatas merupakan algoritma K-Means clustering dengan menggunakan flowchart. Langkah pertama adalah menentukan banyaknya jumlah cluster K, selanjutnya menentukan titik pusat, penentuan titik pusat dapat ditentukan secara random atau menggunakan salah satu cara yaitu Variance Initialization. Tahapan selanjutnya menghitung jarak obyek ke pusat salah satu penghitungannya menggunakan kedekatan Euclidean Distance, lalu kelompokkan obyek berdasar jarak minimum. Tahapan terakhir adalah apabila ada obyek yang harus dipindah, maka terjadi
21
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
pengulangan pada tahap penentuan titik pusat, ketika tidak ada lagi obyek yang harus dipindah maka selesai.
2.3. Confusion Matrix Pada tahapan pengujian akurasi suatu clustering maka hal yang diproses adalah pemberian label pada masing-masing cluster. Pemberian label di dapat dari studi kasus, dimana pada label satu ialah percintaan, label dua ialah perjuangan, label ketiga ialah religi dan label empat ialah persahabatan. Setelah didapat empat label pada masing-masing cluster maka diproses menggunakan pengujian Confusion Matrix. Confusion Matrix berisi informasi yang aktual dan dapat diprediksi (Kohavi dan Provost, 1998), dimana kinerja sistem dapat di evaluasi menggunakan data dalam matriks. Tabel dibawah ini menunjukkan confusion matrix untuk dua class (Kohavi dan Provost, 1998) : Tabel 2.4 . Tabel Confusion Matrix
Keterangan : a adalah jumlah prediksi yang benar bahwa contoh bersifat negatif. b adalah jumlah prediksi yang salah bahwa contoh bersifat positif. c adalah jumlah prediksi yang salah bahwa contoh bersifat positif d adalah jumlah prediksi yang benar bahwa contoh bersifat positif.
22
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Beberapa macam cara untuk menghitung akurasi, antara lain dengan menggunakan :
Akurasi (AD)
Recall atau true positive rate (TP)
False positive rate (FP)
True negative rate (TN)
False negative rate (FN)
Tahap terakhir yaitu precision (P)
Dalam
penelitian
ini,
untuk
menghitung
tingkat
akurasi
penulis
menggunakan perhitungan Akurasi (AD), dengan penjelasan: Akurasi adalah jumlah prediksi yang benar, yang ditentukan dengan persamaan (2.11): (2.11)
23
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III METODOLOGI Bab ini menjelaskan tentang perancangan penelitian yang akan dibuat oleh penulis, yang berisi data, deskripsi sistem, model analisis serta desain interface. Penjelasannya sebagai berikut:
3.1. Data Data yang digunakan adalah data lagu yang bersumber dari Radio Masdha Yogyakarta, langkah selanjutnya mencari lirik lagu berdasarkan data lagu yang diperoleh dari Radio Masdha Yogyakarta, selanjutnya data lirik lagu untuk diolah hanya diambil pada bagian refrain.
3.2. Deskripsi Sistem Sistem ini digunakan untuk mengetahui tingkat akurasi penggolongan tema berdasarkan lirik lagu dengan menggunakan metode K-Means clustering. Langkahnya adalah melalui data lirik lagu yang berekstensi .txt, teks akan mengalami tahapan preprocessing yang terdiri dari (tokenizing, stopword dan stemming). Tahap kedua yaitu tahapan pembobotan kata menggunakan TF-IDF untuk menentukan nilai frekuensi dari dokumen, serta melakukan penggabungan kata (sinonim), apabila terdapat kata yang berbeda namun makna sama, maka gabungkan menjadi satu kata, setelah mendapatkan bobot, maka hasil pembobotan di normalisasi menggunakan zscore, supaya dapat membandingkan bobot pada kata satu terhadap kata lainnya. Tahapan ketiga adalah Variance Initialization digunakan untuk
24
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
menemukan centroid awal yang akan diproses pada tahapan K-Means clustering. Tahap selanjutnya yaitu menentukan kedekatan atau kemiripan data pada centroid yaitu tema (percintaan, perjuangan, religi dan persahabatan) dengan metode K-Means Clustering menggunakan Euclidean Distance. Tahap terakhir adalah proses penghitungan akurasi menggunakan Confusion Matrix. Setelah menemukan hasil akurasi serta pengelompokkan selanjutnya sistem melakukan proses input data baru, yang berfungsi untuk mengetahui data baru termasuk dalam tema yang mana. Maka data baru dapat dikategorikan termasuk salah satu dari tema yang ada.
3.3. Model Analisis Pada bagian model analisis berisi diagram block yang terdiri dari text operation, K-means clustering, pengujian akurasi serta input data baru. Penjelasannya sebagai berikut: 3.3.1. Diagram Block Dibawah ini merupakan proses sistem menggunakan Diagram Block: Information Retrieval
K-Means
Output
Tokenizing
Input Data
Akurasi
Variance Initialization Stopword K-Means
Hasil Cluster
Confusion Matrix
Stemming Pembobotan
Input Data Baru Penggabungan Kata Normalisasi Z-Score
Hasil Klasifikasi Data Baru
Gambar 3.1 Diagram Block 25
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada gambar 3.1. proses clustering dimulai dari input data yang berupa lirik lagu, kemudian dilanjutkan dengan text operation, pada proses ini terdapat beberapa tahapan yaitu tokenizing untuk pemisahan kata, stopword untuk menghilangkan kata-kata yang tidak mengandung makna, stemming untuk menghilangkan kata berimbuhan, dan pembobotan untuk proses memberi index atau frekuensi yang terdapat pada kata hasil akhir dari proses stemming, selanjutnya masuk ke proses penggabungan kata (sinonim), apabila terdapat kata berbeda tetapi memiliki makna yang sama, maka sistem dapat menggabungkan bersama dengan frekuensinya, lalu kata hasil pembobotan
melakukan
proses
normalisasi
menggunakan
Z-Score
membandingkan kata yang satu dengan lainnya. Tahapan selanjutnya yaitu tahapan K-Means yang terdiri dari Variance Initialization proses ini digunakan untuk mencari variance terbesar sehingga penentuan nilai awal centroid, selanjutnya proses K-Means, dicari kedekatan antara centroid yang telah didapat dengan data menggunakan kedekatan Euclidean Distance. Selanjutnya untuk output terdiri dari hasil cluster, dimana terdapat pembagian data dalam empat cluster berdasarkan centroid terdekat. Untuk pengujian menggunakan Confusion Matrix, dimana jumlah prediksi yang benar dibagi dengan total seluruh data. Setelah menemukan hasil akurasi, maka sistem menambahkan data baru untuk menemukan hasil klasifikasi data baru berdasarkan data yang diolah melalui proses clustering.
26
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.3.1.1. Text Operation Langkah kerja serta penjelasan mengenai Text Operation adalah sebagai berikut: 3.3.1.1.1.Tokenizing Pada proses tokenizing proses yang terjadi adalah pemenggalan kalimat menjadi tiap-tiap kata, kata diubah menjadi huruf kecil dan menghilangkan karakter yang bukan termasuk kata. Maka dibawah ini merupakan contoh lirik lagu dari tema perjuangan, religi, percintaan dan persahabatan yang mengalami proses tokenizing. Dokumen pertama (perjuangan) :
Garuda pancasila Akulah pendukungmu Patriot proklamasi Sedia berkorban untukmu Pancasila dasar negara Rakyat adil makmur sentosa Pribadi bangsaku Ayo maju maju Ayo maju maju Ayo maju maju
garuda pancasila akulah pendukungmu patriot proklamasi sedia berkorban untukmu pancasila dasar negara
rakyat adil makmur sentosa pribadi bangsaku ayo maju maju ayo maju maju ayo maju maju
Gambar 3.2 Tokenizing dokumen pertama Pada gambar 3.2 merupakan contoh lirik lagu yang mengalami proses tokenizing, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema perjuangan.
27
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Dokumen kedua (religi) : Kau b’ri yang kupinta Saat kumencari kumendapatkan Kuketuk pintuMu dan Kau bukakan S’bab Kau Bapaku, Bapa yang kekal
kau bri yang kupinta saat kumencari kumendapatkan kuketuk pintumu
dan kau bukakan sbab kau bapaku bapa yang kekal
Gambar 3.3. Tokenizing dokumen kedua Pada gambar 3.3 merupakan contoh lirik lagu yang mengalami proses tokenizing, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema religi.
Dokumen ketiga (percintaan) : (Mencoba) mengerti, arti hadirmu, Mengerti, sinar diwajahmu Mengerti, tenangnya jiwaku, Akhirnya ku mengerti, diriku memang untuk kau miliki
mencoba mengerti arti hadirmu mengerti sinar diwajahmu mengerti tenangnya
jiwaku akhirnya ku mengerti diriku memang untuk kau miliki
Gambar 3.4. Tokenizing dokumen ketiga
Pada gambar 3.4 merupakan contoh lirik lagu yang mengalami proses tokenizing, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema percintaan.
28
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Dokumen keempat (persahabatan) : kau teman sejati kita teman sejati hadapilan dunia genggam tanganku
kau teman sejati kita teman
sejati hadapilah dunia genggam tanganku
Gambar 3.5. Tokenizing dokumen keempat Pada gambar 3.5 merupakan contoh lirik lagu yang mengalami proses tokenizing, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema persahabatan.
3.3.1.1.2. Stopword removal / filtering Setelah mengalami proses tokenizing, langkah selanjutnya adalah proses stopword. Stopword merupakan tahap penyaringan kata-kata yang penting, sehingga kata yang tidak relevan dapat dibuang. Kata-kata yang tidak relevan memiliki kamus kata tersendiri, sehingga sistem mengecek kata yang muncul di dokumen lirik lagu terhadap kamus kata stopword. Jika kata pada data lirik lagu ada dengan kamus kata stopword maka kata tersebut dibuang. Maka dibawah ini merupakan contoh lirik lagu dari tema perjuangan, religi, percintaan dan persahabatan yang mengalami proses stopword.
29
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Dokumen pertama (perjuangan) : garuda pancasila akulah pendukungmu patriot proklamasi sedia berkorban untukmu pancasila dasar negara
rakyat adil makmur sentosa pribadi bangsaku ayo maju maju ayo maju maju ayo maju maju
garuda pancasila pendukung patriot proklamasi sedia berkorban pancasila dasar negara
rakyat adil makmur sentosa pribadi bangsa ayo maju maju ayo maju maju ayo maju maju
Gambar 3.6. Stopword dokumen pertama
Pada gambar 3.6 merupakan contoh lirik lagu yang mengalami proses stopword, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema perjuangan.
Dokumen kedua (religi) : kau bri yang kupinta saat kumencari kumendapatkan kuketuk pintumu
dan kau bukakan sbab kau bapaku bapa yang kekal
bukakan pinta mencari ketuk pintu
bapa bapa kekal
Gambar 3.7. Stopword dokumen kedua
Pada gambar 3.7 merupakan contoh lirik lagu yang mengalami proses stopword, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema religi.
30
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Dokumen ketiga (percintaan) : mencoba mengerti arti hadirmu mengerti sinar diwajahmu mengerti tenangnya
jiwaku ku mengerti diriku memang untuk kau miliki
mencoba mengerti
jiwa
hadir mengerti sinar diwajah mengerti tenangnya
mengerti
miliki
Gambar 3.8. Stopword dokumen ketiga
Pada gambar 3.8 merupakan contoh lirik lagu yang mengalami proses stopword, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema percintaan.
Dokumen keempat (persahabatan) : kau teman sejati kita teman sejati hadapilan dunia genggam tanganku
teman sejati teman
sejati hadapilah dunia genggam tangan
Gambar 3.9. Stopword dokumen keempat
Pada gambar 3.9 merupakan contoh lirik lagu yang mengalami proses stopword, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema persahabatan.
31
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.3.1.1.3.Stemming Pada proses selanjutnya ialah proses stemming dimana mencari kata dasar dari data lirik lagu yang diperoleh. Dibawah ini merupakan contoh data lirik lagu yang mengalami proses stemming: Dokumen pertama (perjuangan) : garuda pancasila pendukung patriot proklamasi sedia berkorban pancasila dasar negara
rakyat adil makmur sentosa pribadi bangsa ayo maju maju ayo maju maju ayo maju maju
garuda pancasila dukung patriot proklamasi sedia korban pancasila dasar negara
rakyat adil makmur sentosa pribadi bangsa ayo maju maju ayo maju maju ayo maju maju
Gambar 3.10. Stemming dokumen pertama Pada gambar 3.10 merupakan contoh lirik lagu yang mengalami proses stemming, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema perjuangan.
Dokumen kedua (religi) :
bukakan pinta mencari ketuk pintu
buka pinta
bapa bapa kekal
cari ketuk pintu
bapa bapa kekal
Gambar 3.11. Stemming dokumen kedua
32
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada gambar 3.11 merupakan contoh lirik lagu yang mengalami proses stemming, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema religi.
Dokumen ketiga (percintaan) : mencoba mengerti
jiwa
coba mengerti
jiwa
hadir mengerti sinar diwajah mengerti tenangnya
mengerti
hadir mengerti sinar wajah mengerti tenang
mengerti
miliki
milik
Gambar 3.12. Stemming dokumen ketiga Pada gambar 3.12 merupakan contoh lirik lagu yang mengalami proses stemming, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema percintaan.
Dokumen keempat (persahabatan) :
teman sejati teman
sejati hadapilah dunia genggam tangan
teman sejati teman
sejati hadapi dunia genggam tangan
Gambar 3.13. Stemming dokumen keempat Pada gambar 3.13 merupakan contoh lirik lagu yang mengalami proses stemming, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema persahabatan.
33
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.3.1.1.4.Pembobotan Kata Pada proses pembobotan kata, tahapan yang dilakukan adalah memberikan nilai frekuensi suatu kata sebagai bobot, yang nantinya dapat diproses pada K-means clustering. Dibawah ini merupakan contoh proses pembobotan kata: Menghitung TF (Term Frequency)
garuda pancasila dukung patriot proklamasi sedia korban pancasila dasar negara
rakyat adil makmur sentosa pribadi bangsa ayo maju maju ayo maju maju ayo maju maju
D1
TF garuda = 1 pancasila = 2 dukung = 1 patriot = 1 proklamasi = 1 sedia=1 korban=1 dasar=1 negara=1 rakyat=1 adil=1 makmur=1 sentosa=1 pribadi=1 bangsa=1 ayo=3 maju=6
Gambar 3.14. Pembobotan kata dokumen pertama Pada gambar 3.14 merupakan contoh lirik lagu yang mengalami proses penghitungan term frequency, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema perjuangan. TF buka pinta cari ketuk pintu
D2 bapa bapa
pinta=1 cari=1 ketuk=1 pintu=1 buka=1 bapa=2 kekal=1
kekal
Gambar 3.15. Pembobotan kata dokumen kedua
34
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada gambar 3.15 merupakan contoh lirik lagu yang mengalami proses penghitungan term frequency, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema religi.
coba mengerti
jiwa
hadir mengerti sinar wajah mengerti tenang
mengerti
D3
milik
TF coba=1 mengerti=4 hadir=1 sinar=1 wajah=1 tenang=1 jiwa=1 milik=1
Gambar 3.16. Pembobotan kata dokumen ketiga
Pada gambar 3.16 merupakan contoh lirik lagu yang mengalami proses penghitungan term frequency, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema percintaan.
teman sejati teman
sejati hadapi dunia genggam tangan
D4
TF teman=2 sejati=2 hadapi=1 dunia=1 genggam=1 tangan=1
Gambar 3.17. Pembobotan kata dokumen keempat
Pada gambar 3.17 merupakan contoh lirik lagu yang mengalami proses penghitungan term frequency, lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema persahabatan.
35
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Menghitung DF (Document Frequency) ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Tabel 3.1. Tabel menghitung DF word DF Garuda 1 21 pintu pancasila 2 22 buka dukung 1 23 bapa Patriot 1 24 kekal proklamasi 1 25 coba Sedia 1 26 mengerti Korban 1 27 hadir Dasar 1 28 sinar Negara 1 29 wajah Rakyat 1 30 tenang Adil 1 31 jiwa makmur 1 32 milik sentosa 1 33 teman pribadi 1 34 sejati Bangsa 1 35 hadapi Ayo 3 36 dunia Maju 6 37 genggam Pinta 1 38 tangan Cari 1 Ketuk 1
1 1 2 1 1 4 1 1 1 1 1 1 2 2 1 1 1 1
Pada Tabel 3.1 merupakan contoh penghitungan document frequency, document frequency merupakan banyaknya bobot (term frequency) yang terkandung dalam seluruh data lirik. Menghitung IDF (Inverse Document Frequency) ID 1 2 3 4 5 6 7 8 9 10
Tabel 3.2. Tabel menghitung IDF word DF IDF garuda 1 1.7243 pancasila 2 1.4232 dukung 1 1.7243 patriot 1 1.7243 proklamasi 1 1.7243 sedia 1 1.7243 korban 1 1.7243 dasar 1 1.7243 negara 1 1.7243 rakyat 1 1.7243
36
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 3.2. Tabel menghitung IDF (Lanjutan) ID word DF IDF 11 adil 1 1.7243 12 makmur 1 1.7243 13 sentosa 1 1.7243 14 pribadi 1 1.7243 15 bangsa 1 1.7243 16 ayo 3 1.2472 17 maju 6 0.9461 18 pinta 1 1.7243 19 cari 1 1.7243 20 ketuk 1 1.7243 21 pintu 1 1.7243 22 buka 1 1.7243 23 bapa 2 1.4232 24 kekal 2 1.4232 25 coba 1 1.7243 26 mengerti 4 1.1222 27 hadir 1 1.7243 28 sinar 1 1.7243 29 wajah 1 1.7243 30 tenang 1 1.7243 31 jiwa 1 1.7243 32 milik 1 1.7243 33 teman 2 1.4232 34 sejati 2 1.4232 35 hadapi 1 1.7243 36 dunia 1 1.7243 37 genggam 1 1.7243 38 tangan 1 1.7243
Pada Tabel 3.2 merupakan contoh penghitungan inverse document frequency.
Menghitung Wij Langkah selanjutnya ialah menghitung bobot (Wij) yang terdapat pada masing-masing data lagu. Dimana Wij didapat dari hasil perkalian antara
37
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
term frequency dengan inverse document frequency. Dibawah ini merupakan contoh data lagu yang melakukan proses penghitungan Wij.
Menghitung bobot pertama
Tabel 3.3. Tabel menghitung bobot pertama ID word DF IDF Wij 1 garuda 1 1.72427587 1.7242759 2 pancasila 2 1.423245874 2.8464917 3 dukung 1 1.72427587 1.7242759 4 patriot 1 1.72427587 1.7242759 5 proklamasi 1 1.72427587 1.7242759 6 sedia 1 1.72427587 1.7242759 7 korban 1 1.72427587 1.7242759 8 dasar 1 1.72427587 1.7242759 9 negara 1 1.72427587 1.7242759 10 rakyat 1 1.72427587 1.7242759 11 adil 1 1.72427587 1.7242759 12 makmur 1 1.72427587 1.7242759 13 sentosa 1 1.72427587 1.7242759 14 pribadi 1 1.72427587 1.7242759 15 bangsa 1 1.72427587 1.7242759 16 ayo 3 1.247154615 3.7414638 17 maju=6 6 0.946124619 5.6767477 Total Wij 36.404565 Pada Tabel 3.3 merupakan contoh penghitungan Wij yang terkandung dalam setiap data lirik. Lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema perjuangan. ID 18 19 20 21 22 23 24
Menghitung bobot kedua Tabel 3.4. Tabel menghitung bobot kedua word DF IDF Wij pinta 1 1.72427587 1.7242759 cari 1 1.72427587 1.7242759 ketuk 1 1.72427587 1.7242759 pintu 1 1.72427587 1.7242759 buka 1 1.72427587 1.7242759 bapa 2 1.423245874 2.8464917 kekal 1 1.72427587 1.7242759 Total Wij 13.19215
38
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada Tabel 3.4 merupakan contoh penghitungan Wij yang terkandung dalam setiap data lirik. Lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema religi. ID 25 26 27 28 29 30 31 32
Menghitung bobot ketiga
Tabel 3.5. Tabel menghitung bobot ketiga word DF IDF Wij coba 1 1.72427587 1.7242759 mengerti 4 1.122215878 4.4888635 hadir 1 1.72427587 1.7242759 sinar 1 1.72427587 1.7242759 wajah 1 1.72427587 1.7242759 tenang 1 1.72427587 1.7242759 jiwa 1 1.72427587 1.7242759 milik 1 1.72427587 1.7242759 Total Wij 16.558795
Pada Tabel 3.5 merupakan contoh penghitungan Wij yang terkandung dalam setiap data lirik. Lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema percintaan. ID 33 34 35 36 37 38
Menghitung bobot keempat
Tabel 3.6. Tabel menghitung bobot keempat word DF IDF Wij teman 2 1.423245874 2.8464917 sejati 2 1.423245874 2.8464917 hadapi 1 1.72427587 1.7242759 dunia 1 1.72427587 1.7242759 genggam 1 1.72427587 1.7242759 tangan 1 1.72427587 1.7242759 Total Wij 12.590087
39
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada Tabel 3.6 merupakan contoh penghitungan Wij yang terkandung dalam setiap data lirik. Lirik lagu yang digunakan pada gambar diatas adalah contoh lirik lagu dengan tema persahabatan.
3.3.1.1.5.Penggabungan Kata (Sinonim) Penggabungan Kata dilihat dari sinonim yang bersumber dari Kamus Besar Bahasa Indonesia (KBBI). Menurut Kamus Besar Bahasa Indonesia (KBBI) sinonim adalah bentuk bahasa yang maknanya mirip atau sama dengan bentuk bahasa lain, maka pada proses penggabungan kata dapat dilakukan ketika terdapat kata berbeda namun memiliki arti sama, maka dapat digabungkan menjadi satu kata, tanpa mengubah nilai frekuensi. Dibawah ini adalah contoh kata yang mengalami proses penggabungan kata Lihat tabel 3.7 dan 3.8: Tabel 3.7. Tabel contoh data belum mengalami penggabungan kata kata tf kangen 1 kawan 1 rindu 1 sahabat 1 teman 1 Tabel 3.8. Tabel contoh data telah mengalami penggabungan kata kata tf rindu 2 teman 3
Berdasarkan contoh data diatas, terdapat lima kata yang masing-masing memiliki tf=1, tetapi ketika mengalami proses penggabungan kata, kata tersebut kemudian dicek dengan sinonim, dan ternyata hanya terdapat dua
40
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
kata yang memiliki makna berbeda, sedangkan kata lainnya masuk kedalam dua kata tersebut. 3.3.1.1.6.Normalisasi Z-Score Setelah menemukan pembobotan, langkah selanjutnya adalah proses normalisasi menggunakan z-score, yang berfungsi supaya kata hasil pembobotan yang satu dengan yang lainnya dapat dibandingkan. Dibawah ini merupakan langkah-langkah untuk mendapatkan hasil normalisasi: 1. Hasil Pembobotan yang telah mengalami proses tokenizing, stopword dan stemming. Lihat tabel 3.9.
Dokumen 1 Dokumen 2 Dokumen 3 Dokumen 4 Dokumen 5 Dokumen 6 Dokumen 7 Dokumen 8
Tabel 3.9. Tabel Pembobotan cinta bendera tuhan teman 0.60206 0 0 0 0.60206 0 0 0 0 0.823909 0 0 0 5.20412 0 0 0.60206 0 1.124939 0 0 0 1.124939 0 0 0 0 2.40824 0 0 0 0.60206
Berdasarkan Tabel 3.9 telah mengalami proses pembobotan. Sebagai contoh pada kata cinta di Dokumen 1, Bobot (Wij) sebesar 0.60206 yang didapat dari Term Frequency yang bernilai 1, dikalikan dengan inverse document frequency yang bernilai 0.60206. Proses tersebut dilakukan pada masing-masing data di seluruh dokumen.
41
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Mencari nilai standar deviasi dari masing-masing data lirik. Lihat tabel 3.10. Tabel 3.10. Tabel Standar Deviasi Per Lirik STD Dokumen 1 0.30103 Dokumen 2 0.30103 Dokumen 3 0.411954 Dokumen 4 2.60206 Dokumen 5 0.54232 Dokumen 6 0.562469 Dokumen 7 1.20412 Dokumen 8 0.30103 Pada Tabel 3.10 masing-masing dokumen dicari nilai standar deviasi, untuk dapat diproses pada tahapan normalisasi.
3. Mencari nilai mean dari masing-masing data lirik. Lihat Tabel 3.11. Tabel 3.11. Tabel Mean MEAN Dokumen 1 0.150515 Dokumen 2 0.150515 Dokumen 3 0.205977 Dokumen 4 1.30103 Dokumen 5 0.43175 Dokumen 6 0.281235 Dokumen 7 0.60206 Dokumen 8 0.150515 Pada Tabel 3.11 masing-masing dokumen dicari nilai mean, untuk dapat diproses pada tahapan normalisasi.
4. Hasil normalisasi, berdasarkan perhitungan rumus yang telah dipaparkan pada bab sebelumnya. Lihat Tabel 3.12.
42
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Dokumen 1 Dokumen 2 Dokumen 3 Dokumen 4 Dokumen 5 Dokumen 6 Dokumen 7 Dokumen 8
Tabel 3.12. Tabel Normalisasi cinta bendera tuhan 1.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 1.5 -0.5 -0.5 1.5 -0.5 0.31404 -0.79612 1.278192 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 -0.5 -0.5 -0.5
teman -0.5 -0.5 -0.5 -0.5 -0.79612 -0.5 1.5 1.5
Berdasarkan Tabel 3.12 mengalami proses normalisasi dengan menggunakan Z-Score, nilai yang diperoleh pada tabel diatas adalah data dikurangi dengan rata-rata (mean) lalu dibagi dengan standar deviasi, maka diperoleh nilai masing-masing normalisasi pada setiap dokumen. 3.3.1.2. K-Means Clustering Setelah
melakukan
proses
text
operation
selanjutnya
langkah
pengelompokkan menggunakan K-Means Clustering. Centroid awal=4 centroid, dipilih empat centroid dikarenakan sudah dibatasi dengan pengelompokan topik yang diasumsikan menjadi empat kelompok/cluster yaitu percintaan, perjuangan, persahabatan dan religi, selanjutnya untuk penentuan centroid menggunakan variance initialization, dicari variance terbesar, kemudian lirik di sort menggunakan hasil variance terbesar dan lirik yang sudah di sort dibagi menjadi empat bagian, setiap bagian pada kelompok/cluster dicari rata-rata/mean, maka itulah centroid awal. Setelah menemukan centroid awal langkah selanjutnya adalah mencari kedekatan
43
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
antara centroid dengan masing-masing dokumen menggunakan Euclidean distance. Penjelasan dari langkah kerja Metode K-Means : 1. Menentukan banyaknya cluster k 2. Menentukan centroid menggunakan Variance Initialization. 3. Menghitung centroid cluster ke-i 4. Menghitung jarak objek ke masing-masing centroid pada tiaptiap cluster menggunakan Euclidean Distance. 5. Pengalokasian objek ke dalam tiap-tiap cluster. Pada tabel 3.12 menunjukkan contoh dokumen lagu yang telah mengalami proses normalisasi, kemudian dicari variance menggunakan persamaan(2.7):
Berikut ini contoh dokumen yang telah mengalami proses variance. Lihat tabel 3.13.
Dokumen 1 Dokumen 2 Dokumen 3 Dokumen 4 Dokumen 5 Dokumen 6 Dokumen 7 Dokumen 8 Variance
Tabel 3.13. Tabel Variance cinta bendera tuhan teman 1.5 -0.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 1.5 -0.5 -0.5 0.31404 -0.79612 1.278192 -0.79612 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 1.5 0.823684 0.910406 0.768232 0.910406
44
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Setelah mendapatkan nilai dari variance, maka mencari variance terbesar, lalu sort dokumen berdasarkan variance terbesar. Pada data diatas, variance terbesar berada pada kata : bendera didokumen 3 dan 4, serta teman didokumen 7 dan 8, sebagai acuan diambil pada kata bendera didokumen 3, maka sort dokumen 3 yang memiliki variance terbesar. Lihat tabel 3.14.
Dokumen 3 Dokumen 4 Dokumen 1 Dokumen 2 Dokumen 6 Dokumen 7 Dokumen 8 Dokumen 5
Tabel 3.14. Tabel Sort Lirik Cinta bendera tuhan -0.5 1.5 -0.5 -0.5 1.5 -0.5 1.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 -0.5 -0.5 -0.5 0.31404 -0.79612 1.278192
teman -0.5 -0.5 -0.5 -0.5 -0.5 1.5 1.5 -0.79612
Selanjutnya untuk mencari centroid langkahnya adalah bagi jumlah data dokumen menjadi empat bagian, lalu cari rata-rata (mean) pada tiap-tiap bagian, maka itulah centroid awal yang didapat. Lihat Tabel 3.15.
Dokumen 3 Dokumen 4 Dokumen 1 Dokumen 2 Dokumen 6 Dokumen 7 Dokumen 8 Dokumen 5
Tabel 3.15. Tabel Centroid cinta bendera tuhan -0.5 1.5 -0.5 -0.5 1.5 -0.5 1.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 -0.5 -0.5 -0.5 0.31404 -0.79612 1.278192
teman -0.5 -0.5 -0.5 -0.5 -0.5 1.5 1.5 -0.79612
C1
-0.5
1.5
-0.5
-0.5
C2
1.5
-0.5
-0.5
-0.5
C3
-0.5
-0.5
0.5
0.5
C4
-0.09298
-0.64806
0.389096
0.351942 45
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Setelah menemukan centroid awal menggunakan variance initializaion, selanjutnya mencari jarak antara centroid dengan dokumen menggunakan kedekatan Euclidean Distance. Maka terbentuklah empat cluster.Lihat Tabel 3.16. Tabel 3.16. Tabel Jarak Terdekat (Euclidean Distance)
Dokumen 1 Dokumen 2 Dokumen 3 Dokumen 4 Dokumen 5 Dokumen 6 Dokumen 7 Dokumen 8
C1 2.828427125 2.828427125 2.93737E-16 2.22045E-16 3.030588336 2.828427125 2.828427125 2.828427125
C2 0 0 2.828427 2.828427 2.178035 2.828427 2.828427 2.828427
C3 2.44949 2.44949 2.44949 2.44949 1.742368 1.414214 1.414214 1.414214
C4 2.018862 2.018862 2.509206 2.509206 1.515294 1.465435 1.515294 1.515294
Jarak Terdekat C2 C2 C1 C1 C4 C3 C3 C3
Setelah mendapatkan jarak terdekat maka centroid baru di cek kembali dengan dokumen hingga centroid tidak berubah lagi. 3.3.1.3. Pengujian Akurasi Pada pengujian akurasi menggunakan confusion matrix. Confusion Matrix digunakan untuk mengetahui seberapa besar keberhasilan sistem. Langkahnya adalah membuat kelompok kelas, yaitu kelas aktual dan kelas prediksi. Kelas aktual merupakan kelas yang akan dicek terhadap kelas prediksi.
Cls1 Cls2 Cls3 Cls4
Tabel 3.17. Tabel hasil cluster 1; 2; 3; 4; 5; 7; 8; 13; 17; 20; 6 ;9; 10 11;12;14;15; 16;18;19
46
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada Tabel 3.17. merupakan tabel permisalan hasil cluster yang telah diproses oleh sistem, terdapat kelompok data pada tiap tiap cluster. Data dokumen lagu ada sebanyak 20 dokumen, dimana dokumen 1-5 merupakan cluster 1, dokumen 6-10 merupakan cluster 2, dokumen 11-12 merupakan cluster 3, dokumen 16-20 merupakan cluster 4. Tetapi pada tabel diatas yang terjadi, cluster 1 terdapat berbagai dokumen, maka itu untuk melihat keakuratan sistem maka dihitung menggunakan confusion matrix. Rumus dari confusion matrix yang tercantum pada Tabel (2.4): Tabel 2.4 . Tabel Confusion Matrix
Untuk menghitung jumlah prediksi yang benar, maka menggunakan Persamaan (2.11) (2.11)
3.4.
Desain Interface Gambar 3.18 merupakan desain interface yang akan dibuat pada sistem ini.
47
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Jumlah Data:
Button Preprocessing
Batas Bawah :
Batas Atas :
Hasil Cluster Tabel Preprocessing
Button Proses Clustering Cluster
Tabel Confusion Matrix
Tabel Centroid
Input file
Nama File : Masuk Cluster:
Text Lagu Akurasi
Gambar 3.18. Desain Interface
Spesifikasi Software dan Hardware
3.5.
Untuk proses membuat sistem dan data digunakan software dan hardware sebagai berikut : 1. Software a) Sistem Operasi : Windows 7 Ultimate32-bit b) Bahasa Pemprograman : Matlab version 8.0.0.783 (R2012b) 2. Hardware a) Processor : Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz b) Memory : 2 GB c) Hardisk : 500 GB
48
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV IMPLEMENTASI DAN ANALISA HASIL Bab ini menjelaskan tentang metodologi yang dijelaskan pada bab sebelumnya, maka implementasinya sebagai berikut:
4.1. Implementasi Implementasi mencakup proses information retrieval, pengelompokkan data dengan menggunakan K-Means clustering hingga pengujian akurasi menggunakan Confusion Matrix. 4.1.1. User Interface Dalam pembuatan user interface sistem menggunakan sarana yang diberikan oleh Matlab version 8.0.0.783 (R2012b). Melihat dari desain user interface pada bab sebelumnya, maka bab ini mengimplementasikan user interface untuk melakukan text operation hingga mengetahui akurasi dari pengelompokan data dengan K-Means Clustering, maka sistem dapat langsung menampilkan hasil keseluruhan proses. Gambar 4.1 dan 4.2 merupakan tampilan keseluruhan sistem yang telah dibentuk.
49
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.1. Implementasi user interface sebelum proses dilakukan
Gambar 4.2. Implementasi user interface setelah proses dilakukan
Berdasarkan gambar diatas, langkah pertama pengguna menginputkan banyaknya data yang diinginkan, maksimal banyaknya data adalah 400, kemudian menekan button Preprocessing, untuk melihat kata-kata unik yang digunakan dalam proses, maka seluruh kata unik akan muncul beserta dengan jumlah dan nilai terkecil serta terbesar. Ketika telah ada peringatan bahwa preprocessing telah berhasil, maka langkah selanjutnya user menekan
50
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
button Proses, maka muncul keseluruhan proses, dari pengelompokkan centroid , hasil cluster yang tebentuk, confusion matrix, hingga akurasi. Setelah proses clustering telah berhasil selanjutnya masuk dalam proses input data baru, untuk mengetahui data lirik lagu yang baru masuk dalam salah satu jenis tema. Berikut merupakan penjelasan yang lengkap dari user interface yang dibuat: 1. Proses a. Button Preprocessing Pengguna menginputkan jumlah data yang ingin diproses, maksimal jumlah data adalah 400, selanjutnya pengguna menekan button Preprocessing untuk melakukan proses Information Retrievel, dari langkah text operation (tokenizing, stopword, stemming, dan pembobotan kata), dapat dilihat pada Gambar 4.3.
Gambar 4.3. Jumlah data dan button Preprocessing
b. Button Proses Ketika telah menekan tombol preprocessing dan hasil dari preprocessing telah muncul, maka langkah selanjutnya pengguna menginputkan nilai batas bawah serta batas atas, batas bawah digunakan untuk membatasi kata minimum yang
51
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ada pada data, jika frekuensi kata tidak mencukupi batas bawah yang kita inputkan, maka kata tersebut tidak dapat masuk kedalam proses, sebaliknya dengan batas atas. Lihat Gambar 4.4.
Gambar 4.4. Batas bawah dan batas atas c. Button Proses Clustering Setelah pengguna menginputkan batas bawah serta batas atas, langkah selanjutnya pengguna menekan button Proses Clustering untuk memproses hasil clustering dan mengetahui hasil akurasi. Lihat Gambar 4.5.
Gambar 4.5. Button Proses Clustering d. Button Input File Selanjutnya setelah muncul akurasi beserta tabel confusion matrix dan tabel centroid maka pengguna menekan button Input File, berfungsi untuk memasukkan data baru yang ingin diproses, hingga data baru yang diinputkan masuk kedalam salah satu cluster yang ada. Lihat Gambar 4.6.
52
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.6. Input File 2. Hasil Proses a. Hasil Preprocessing Selanjutnya hasil proses preprocessing yang terdiri dari proses (tokenizing, stopword, stemming) telah muncul dan dapat diketahui bahwa jumlah seluruh kata yang telah mengalami preprocessing,
serta nilai minimum dan maksimum yang
terdapat dalam jumlah seluruh data, dapat dilihat pada Tabel 4.1. Tabel 4.1. Tabel kata unik hasil preprocessing
b. Hasil Centroid Ketika pengguna telah menekan button Proses maka akan muncul hasil centroid, dimana terdapat empat centroid sepanjang banyaknya data yang ada. Lihat Tabel 4.2.
53
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 4.2. Tabel Hasil Centroid
c. Hasil Cluster Hasil Cluster juga akan muncul, ketika pengguna menekan button Proses, hasil cluster berupa titik-titik sebanyak data yang ada, dan telah mengelompok menjadi empat cluster, warna yang ada pada cluster menjadi ciri bahwa titik-titik dengan warna yang sama itulah anggota kelompoknya. Lihat Gambar 4.7.
Gambar 4.7. Hasil Cluster d. Hasil Akurasi Pada hasil akurasi sangat berpengaruh dengan batas atas dan batas bawah yang diinputkan pengguna. Ketika batas bawah=0 dan batas atas=121 memiliki akurasi 93,25%. Lihat Gambar 4.8.
54
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.8. Hasil Akurasi e. Hasil Confusion Matrix Ketika data yang diproses sebanyak 400, maka dapat dihitung akurasi menggunakan confusion matrix. Lihat Tabel 4.3. Tabel 4.3. Tabel Confusion Matrix
f. Hasil Klasifikasi Data Baru Ketika proses clustering telah selesai, selanjutnya input data baru , input data baru mengalami text operation yang nantinya digunakan untuk proses klasifikasi, data baru dicek memiliki kata apa saja, lalu di bandingkan dengan kata yang ada di centroid, apabila ada maka menggunakan index yang ada pada bobot centroid. Lihat Gambar 4.9.
Gambar 4.9. Hasil Input Data Baru
55
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
g. Tampil Teks Lagu Untuk mengetahui isi dari teks lagu yang belum mengalami proses apapun, maka setelah pengguna menekan button input file, lalu memilih file berekstensi .txt, maka dengan otomatis isi dari teks yang diinputkan tampil seperti Gambar 4.10.
Gambar 4.10. Tampil Teks Lagu
h. Message Informasi Message Box merupakan feedback dari suatu aksi yang dilakukan pengguna, aksi yang dilakukan adalah menekan button proses dan button preprocessing. Message box membantu pengguna dalam mengetahui suatu proses yang dilakukan sistem. Lihat Gambar 4.11.
Gambar 4.11. Hasil message informasi
56
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.1.2. Data Data yang digunakan adalah data berekstensi .txt diambil dari lagu yang bersumber dari Radio Masdha yang terdiri dari empat tema yaitu, percintaan, perjuangan, persahabatan dan religi, lalu dicari lirik lagu dan diambil bagian refrain. Data yang diolah sebanyak 400 data. Kumpulan data dan contoh data lirik lagu dapat dilihat Gambar 4.12 dan 4.13.
Gambar 4.12. Kumpulan data
Gambar 4.13. Salah satu contoh data lirik lagu
57
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.1.2.1. Text Operation Text Operation merupakan tahap awal yang dilalui sebelum masuk kedalam
proses
K-Means
clustering.
Pada
text
operation
ini
pengelompokkan data lirik lagu diubah dari data mentah menjadi data yang sudah memiliki bobot dan siap diproses pada tahap selanjutnya. Proses ini merupakan proses information retrieval. Tahapannya adalah sebagai berikut: 4.1.2.1.1. Tokenizing Tokenizing bertujuan untuk memisahkan lirik lagu berupa kalimat menjadi per-kata. Dibawah ini merupakan implementasi dari proses tokenizing dengan menggunakan bahasa pemrograman matlab. Langkah pertama adalah data lirik lagu dibaca, lalu dipisahkan menjadi per kata, selanjutnya data lirik lagu diubah menjadi huruf kecil lower case, kemudian karakter yang terdiri dari tanda baca dan angka dihapus. Implementasi program dapat dilihat pada Gambar 4.14.
Gambar 4.14. Implementasi Program Tokenizing 4.1.2.1.2. Stopword Stopword merupakan lanjutan dari proses tokenizing, langkahnya adalah menghilangkan kata yang bukan merupakan kata unik (tidak memiliki arti seperti halnya kata hubung), stopword memiliki kamus tersendiri, maka sistem akan mengambil data kamus dari stopwordID.txt lalu dicek terhadap
58
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
data lirik lagu, apabila ada kata yang terkandung dalam stopwordID.txt maka kata pada data lirik lagu akan dihapus.
Gambar 4.15. Implementasi Program Stopword Pada Gambar 4.15 merupakan implementasi program stopword, tahapannya adalah mengambil kamus kata stopword yang ada dalam atribut kataTiadaArti, lalu program mengecek apabila data yang ada pada dokumen termasuk dalam kamus kata stopword, maka kata tersebut di hilangkan. 4.1.2.1.3. Stemming Setelah proses stopword selesai, maka langkah selanjutnya masuk dalam proses stemming, dalam proses ini dimana setiap imbuhan baik itu di awal, tengah, maupun akhir akan dihilangkan sehingga dihasilkan kata dasar. Dibawah ini merupakan implementasi program stemming.
Gambar 4.16. Implementasi Program stemming
59
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada Gambar 4.16 tahapan proses stemming yaitu mengecek kata dasar yang ada di kamus lalu mencocokan dengan dataKataPrefixSufix, jika ada maka kata disimpan dan menjadi kata unik yang nantinya akan diproses pada tahapan K-Means clustering. 4.1.2.1.4. Sinonim Data pada dokumen lagu merupakan data umum yang sering digunakan, oleh karena itu terdapat banyak kata tetapi hanya memiliki satu makna, sebagai contoh kata teman, sahabat dan kawan sebenarnya hanya memiliki satu makna, maka dapat digabung menjadi satu kata. Dibawah ini merupakan contoh kamus Sinonim serta implementasi program Sinonim.
Gambar 4.17. Kamus Sinonim
Gambar 4.18. Implementasi Program Sinonim Pada Gambar 4.17 merupakan kamus kata berdasarkan Kamus Besar Bahasa Indonesia. Pada Gambar 4.18 merupakan implementasi program sinonim, dimana kamus sinonim disimpan dalam atribut gabungfeature didalam kamus sinonim terdapat beberapa kata yang memiliki makna sama
60
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
dipisahkan dengan tanda koma (,) maka ketika membandingkan data dengan sinonim, apabila kata pada dokumen terdapat dalam kamus sinonim, maka yang nanti akan muncul sebagai kata unik adalah kata terdepan yang ada di kamus sinonim. 4.1.2.1.5. Pembobotan Kata Langkah selanjutnya masuk pada proses pembobotan. Proses ini diawali dengan menghitung frekuensi kata dari tiap kata yang pada tiap lirik, kemudian dilanjutkan dengan mengalikannya dengan idf. Berdasarkan perhitungan tf dan idf, diterapkanlah rumus pembobotan/weight (tf.idf). Berikut adalah hasil pembobotan dapat dilihat pada Tabel 4.4.
ID 33 34 35 36 37 38
Tabel 4.4. Tabel Pembobotan Kata word DF IDF teman 2 1.423245874 sejati 2 1.423245874 hadapi 1 1.72427587 dunia 1 1.72427587 genggam 1 1.72427587 tangan 1 1.72427587 Total Wij
Wij 2.8464917 2.8464917 1.7242759 1.7242759 1.7242759 1.7242759 12.590087
4.1.2.1.6. Normalisasi Z-Score Setelah mendapat bobot kata tiap lirik, selanjutnya di normalisasi menggunakan z-score untuk menemukan kedekatan antara bobot kata yang satu dan yang lainnya. Berikut adalah bobot hasil normalisasi dapat dilihat pada Tabel 4.5.
61
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 4.5. Normalisasi Z-Score
4.1.2.2. K-Means Clustering Setelah data lirik telah diproses hingga menemukan bobot tiap kata, maka masuk kedalam proses K-Means clustering, langkah awal adalah penentuan cluster, cluster yang ditentukan sebanyak empat seperti yang telah dijabarkan pada bab sebelumnya, selanjutnya penentuan centroid awal menggunakan rumus varian, kemudian mencari varian terbesar, maka sort lirik berdasarkan varian terbesar, selanjutnya di normalisasi menggunakan Zscore, lalu kelompokkan data lirik menjadi empat bagian, ketika telah terbagi cari rata-rata kelompok data lirik, maka ditemukan hasil rata-rata, selanjutnya bandingkan rata-rata tiap cluster dengan data lirik, cari kedekatannya menggunakan Euclidean distance. Berikut Tabel 4.6. Tabel 4.6. Hasil pengelompokkan cluster
62
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.1.2.3. Output Centroid Output yang diperoleh adalah hasil dari centroid. Centroid yang ada sebanyak empat centroid, karena memiliki empat cluster, selanjutnya masing-masing bobot kata memiliki empat centroid. Lihat Tabel 4.7. Tabel 4.7. Hasil centroid
4.1.2.4. Akurasi Menghitung akurasi sistem menggunakan confusion matrix, data prediksi di bandingkan dengan data actual lalu dibagi dengan seluruh data yang ada, apabila data actual dengan data prediksi sama, maka berpengaruh pada tingkat akurasi. Lihat gambar 4.19.
Gambar 4.19. Hasil akurasi
4.2. Analisa Hasil Setelah melakukan implementasi maka dapat membantu untuk analisa terhadap pengelompokkan tema pada lirik lagu. Analisa dilakukan terhadap seluruh data lirik lagu, sehingga dengan demikian dapat diketahui kelompok lirik lagu pada seluruh data. Tahapan yang telah dilalui mulai dari tahap information retrieval yang terdiri dari, tokenizing untuk memisahkan data
63
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
lirik menjadi tiap-tiap kata dan menghilangkan tanda baca, stopword untuk menghilangkan kata yang tidak memiliki arti (tanda hubung), stemming untuk
menghilangkan
kata
berimbuhan
menjadi
kata
dasar
lalu
mencocokkan kembali dengan kamus stopword. Tahap selanjutnya adalah proses pembobotan kata, berfungsi untuk menghitung frekuensi kemunculan kata pada tiap data lirik, sehingga kata yang lebih sering muncul pada suatu data lirik dianggap lebih penting. Lalu masuk pada proses k-means clustering, tahapan untuk proses ini adalah inisialisasi centroid berdasarkan varian terbesar, lalu data lirik di sort sesuai dengan varian terbesar, lalu data lirik dikelompokkan menjadi empat bagian, dan tiap-tiap bagian dicari ratarata/mean, selanjutnya adalah normalisasi menggunakan Z-score supaya mendekatkan nilai yang rentang terlalu jauh, setelah itu membandingkan centroid dengan data lirik menggunakan kedekatan Euclidean distance maka terbentuklah
kelompok
clusternya.
Tahap
terakhir
adalah
tahap
penghitungan akurasi, penghitungan akurasi menggunakan confusion matrix dimana data pediksi dibandingkan dengan data actual, selanjutnya total dari hasil data prediksi dan data actual yang sesuai dibagi oleh seluruh banyak kata yang terkandung. Untuk mengukur tingkat keberhasilan dari penulisan ini adalah dengan melakukan percobaan. Berikut langkah-langkah percobaan yang dilakukan: 1. Menentukan jumlah cluster=4, sesuai dengan tema yang telah ditentukan. 2. Data lirik lagu=400
64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3. Menginputkan batas bawah dan batas atas yang pada akhirnya sangat menentukan tingkat akurasi. 4. Melakukan masing-masing percobaan sebanyak 36 kali. Tabel 4.8. Tabel Percobaan dengan batas atas 121-70 dan batas bawah 0-5 Batas Bawah 0 1 2 3 4 5 121 93.25% 88.75% 80.25% 78.25% 77.50% 76.50% 110 92.00% 85.25% 82.50% 80.50% 74.50% 73.25% 100 92.00% 85.25% 82.50% 80.50% 74.50% 73.25% Batas Atas 90 84.50% 83.50% 73.50% 69.25% 69.25% 64.50% 80 84.50% 83.50% 73.50% 69.25% 69.25% 64.50% 70 84.50% 83.50% 73.50% 69.25% 69.25% 64.50%
Pada Tabel 4.8 merupakan hasil akurasi dengan percobaan sebanyak 36 kali, Batas Atas atau Batas Bawah merupakan batas yang digunakan untuk membatasi total hasil term frequency yang terdapat pada kata unik. Apabila pengguna menginputkan Batas Atas 121, maka kata unik paling maksimal yaitu 121, maka dengan batas atas 121 program akan memproses dari Batas Atas 121, sebaliknya dengan Batas Bawah. Batas Bawah merupakan batas minimal. Sehingga apabila pengguna menginputkan Batas Bawah 0, maka program mulai memproses dari Batas Bawah 0. Dilihat pada Tabel 4.8 dapat disimpulkan bahwa semakin besar Batas Atas serta semakin kecil Batas Bawah maka akurasi semakin tinggi. Berdasarkan hasil percobaan diatas, maka grafik dibawah ini adalah grafik dengan Batas Atas=121 dan Batas Atas=70 dengan masing-masing Batas Bawah=0-5 :
65
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
a. Batas Atas = 121 dengan Batas Bawah = 0-5
Hasil Akurasi dengan Batas Atas 121 dan Batas Bawah 0-5 100,00% 80,00% 60,00% Hasil Akurasi
40,00% 20,00% 0,00% 0
2
4
6
Gambar 4.20. Hasil akurasi Batas Atas 121
Pada Gambar 4.20 diketahui bahwa pengguna menginputkan Batas Atas adalah 121 dan Batas Bawah 0-5, dengan akurasi tertinggi pada nilai 93,25% berada saat Batas Bawah=0, sedangkan untuk akurasi terendah pada nilai 76,50% berada saat Batas Bawah=5. b. Batas Atas = 70 dengan Batas Bawah = 0-5
Hasil Akurasi dengan Batas Atas 70 dan Batas Bawah 0-5 90,00% 80,00% 70,00% 60,00% 50,00% 40,00% 30,00% 20,00% 10,00% 0,00%
Hasil Akurasi
0
1
2
3
4
5
6
Gambar 4.21. Hasil akurasi Batas Atas 80
66
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada Gambar 4.21 diketahui bahwa pengguna menginputkan Batas Atas adalah 70 dan Batas Bawah 0-5, dengan akurasi tertinggi pada nilai 84,50% berada saat Batas Bawah=0, sedangkan untuk akurasi terendah pada nilai 64,50% berada saat Batas Bawah=5. Melalui grafik diatas, dapat disimpulkan bahwa akurasi tertinggi berada pada Batas atas=121 dan Batas bawah=0 dengan akurasi 93.25%. Maka ketika sistem ingin menambah proses input data baru, maka untuk membandingkan data baru dengan centroid, menggunakan hasil akurasi dengan batas atas dan batas bawah tertinggi.
67
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V PENUTUP Bab ini berisi tentang hasil kesimpulan dan saran. Kesimpulan berisi tentang hal yang berkaitan dengan pengelompokkan tema berdasarkan lirik lagu, sedangkan saran berisi tentang pengembangan sistem.
5.1. Kesimpulan Berdasarkan hasil analisis pengelompokkan tema berdasarkan lirik lagu dengan data lirik lagu berjumlah 400 dan cluster =4, maka diperoleh kesimpulan sebagai berikut: 1. Proses clustering pada lirik lagu dengan menggunakan metode K-Means clustering dapat disimpulkan bahwa tingkat akurasi tertinggi berada pada, batas atas dengan jumlah kata unik sebesar 121 batas bawah dengan jumlah kata unik sebesar 0 yaitu 93,25%. Sedangkan yang memiliki tingkat akurasi terendah berada pada batas atas dengan jumlah kata unik sebesar 70 dan batas bawah dengan jumlah kata unik sebesar 5 dengan tingkat akurasi 64,5%. 2. Semakin besar Batas Atas jumlah kata unik serta semakin kecil Batas Bawah jumlah kata unik maka akurasi semakin tinggi. 3. Hasil pengelompokan dari keseluruhan data bergantung pada jumlah kata unik.
68
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5.2. Saran Berikut ini adalah saran yang dapat membantu penelitian ini agar lebih baik dan berkembang, antara lain: 1. Input data baru menggunakan salah satu algoritma klasifikasi tidak hanya diambil dari perbandingan clustering yang telah dibentuk, sehingga hasil klasifikasi pada data baru lebih sesuai terhadap penggolongan tema. 2. Penginputan data lirik lagu tidak hanya terbatas dalam file berekstensi .txt namun juga dapat dalam file .pdf.
69
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PUSTAKA Agusta Y., 2007, K-Means-Penerapan, Permasalahan dan Metode Terkait. Denpasar, Bali: Jurnal Sistem dan Informatika, Vol. 3, pp. 47-60. Ghozali, Imam., 2006, Statistik Nonparametrik, Semarang: Badan Penerbit UNDIP. Harlian, Milkha., 2006, Text Mining, http://iwanarif.lecturer.pens.ac.id/kuliah/dm/6Text%20Mining.pdf, diakses 14 Mei 2014. Kohavi dan Provost., 1998, Confusion Matrix, http://www2.cs.uregina.ca/~dbd/ cs831/notes/confusion_matrix/confusion_matrix.html, diakses 11 Juni 2014. Mandala, R., dan Setiawan, H., 2004, Peningkatan Performansi Sistem Temu Kembali Informasi dengan Perluasan Query secara Otomatis. Bandung, Indonesia: Institut Teknologi Bandung. Manning, C. D., Ragvana, P., Schütze, H., 2008, Introduction to Information Retrieval, Cambridge University Press. Martiana, E., 2013, Normalization Method, Data Preprocessing, Institut Teknologi Surabaya. Nazief, Bobby dan Mirna Adriani., 2007, Confix-stripping : Approach to stemming algorithm for bahasa indonesia, Faculty of Computer Science University of Indonesia. Nugroho, Cahyo Ridho., 2012, Pengelompokkan Posisi Pemain Sepakbola Dengan Metode K-Means Clustering, Skripsi, Jurusan Teknik Informatika Universitas Sanata Dharma, Yogyakarta. Pratiwi, A. T., 2014, Klasifikasi Tema Pada Lirik Lagu Dengan Metode Transformed Weight-Normalized Complement Naive Bayes (TWCNB), Universitas Brawijaya, Malang. Robertson, S. E., 1974, Specificity and weighted retrieval [documentation note], Journal of Documentation, Vol. 30 No. 1, pp. 41–46. Turban, E., Aronson, J. E., Liang, T. P., 2005, Decision Support Systems and Intelligent Systems. Yogyakarta: Andi Offset. Williams, Graham., 2005, Data Mining Algorithms Cluster Analysis, Journal of Introduction Requirements Measuring Similarity, Vol. 1, pp. 3-19.
70
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN Source Code 1. preprocessingPerLagu.m function [ kataDasarHasilStem,dataKataPrefixSufixGagal,ktTiadaA rti] = preprocessingPerLagu(data,kataTiadaArti,gabungfeatur e,kamus ) %UNTITLED Summary of this function goes here % Detailed explanation goes here tiadaArti=[]; data=lower(data); % Mengubah huruf besar menjadi kecil data=regexprep(data,'[.,?!"-+=\/:;_12345678910]',' '); % Menghilangkan tanda baca tiadaArtiTemp=ismember(data,kataTiadaArti); % Mengambil kata tiada arti dari teks mTiadaArti=size(tiadaArtiTemp); n=1; for i=1:mTiadaArti if tiadaArtiTemp(i) == 1 tiadaArti{n}=data{i}; n=n+1; end end tiadaArti=tiadaArti'; ktTiadaArti=tiadaArti; data = strjoin(data(~ismember(data,kataTiadaArti)),' '); % Menghilangkan kata yang tidak punya arti dari data data=regexprep(data,'-',' '); % Menghilangkan tanda baca data = textscan(data,'%s'); % Membaca file data=data{1}; % Memasukkan data file ke dalam matriks cell array data=data(~cellfun('isempty',data)); % Menghilangkan cell yang kosong data=sort(data);
71
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
[kamusKataDasar]=unique(kamus); % Memastikan bahwa di kamus data tidak ada kata yang sama [kataDasarHasilStem,dataKataPrefixSufixGagal]=stemmi ng(data,kamusKataDasar); % steming end 2. stemming.m function [kataDasar,dataKataPrefixSufixGagal]=stemming(data,k amus) dataKataPrefixSufixGagal=[]; % Stemming % Cek awal untuk mengambil kata dasar atau tidak [kataDasar,dataKataPrefixSufix]=cekKeKamus(data,kamu s); if ~isempty(dataKataPrefixSufix) [kataDasar,dataKataPrefixSufixGagal]=cekPrefixSufix( dataKataPrefixSufix,kamus,kataDasar); end end function [kataDasar,dataKataPrefixSufix]=cekKeKamus(data,kamu s) % Cek ke kamus dan mengambil kata dasar dan tidak x=1; y=1; kataDasar={}; dataKataPrefixSufix={}; yaTidak=ismember(data,kamus); for i=1:length(data) if yaTidak(i)==1 kataDasar{x}=data{i}; x=x+1; else dataKataPrefixSufix{y}=data{i}; y=y+1; end end kataDasar=sort(kataDasar'); dataKataPrefixSufix=sort(dataKataPrefixSufix'); end
72
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
function [kataDasar,dataKataPrefixSufixGagal]=cekPrefixSufix( dataKataPrefixSufix,kamus,kataDasarTemp) % Hilangkan akhiran % -kah, -lah, pun inflection_particle={'kah' 'lah' 'pun' 'kan'}; dataHilangSufix1={}; kataDasarTempKahLahPun={}; for i=1:length(dataKataPrefixSufix) kataTemp=dataKataPrefixSufix{i}; if length(kataTemp)>4 if ismember(kataTemp(end2:end),inflection_particle) dataHilangSufix1{i}=kataTemp(1:end-3); if ismember(dataHilangSufix1{i},kamus); kataDasarTempKahLahPun{i}=dataHilangSufix1{i}; dataHilangSufix1{i}=''; else dataHilangSufix1{i}=kataTemp; end else dataHilangSufix1{i}=kataTemp; end else dataHilangSufix1{i}=kataTemp; end end dataHilangSufix1=dataHilangSufix1'; kataDasarTempKahLahPun=kataDasarTempKahLahPun'; kataDasarTemp=[kataDasarTemp;kataDasarTempKahLahPun] ; dataHilangSufix1=dataHilangSufix1(~cellfun('isempty' ,dataHilangSufix1)); % Menghilangkan cell yang kosong % -ku, -mu, -nya inflection_possesif1={'ku' 'mu'}; inflection_possesif2={'nya'}; kataDasarTempKuMU={}; kataDasarTempNya={}; dataHilangSufix2={}; for i=1:length(dataHilangSufix1) kataTemp=dataHilangSufix1{i}; if length(kataTemp)>3 73
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
if ismember(kataTemp(end1:end),inflection_possesif1) dataHilangSufix2{i}=kataTemp(1:end-2); if ismember(dataHilangSufix2{i},kamus); kataDasarTempKuMU{i}=dataHilangSufix2{i}; dataHilangSufix2{i}=''; else dataHilangSufix2{i}=kataTemp; end elseif ismember(kataTemp(end2:end),inflection_possesif2) dataHilangSufix2{i}=kataTemp(1:end-3); if ismember(dataHilangSufix2{i},kamus); kataDasarTempNya{i}=dataHilangSufix2{i}; dataHilangSufix2{i}=''; else dataHilangSufix2{i}=kataTemp; end else dataHilangSufix2{i}=kataTemp; end else dataHilangSufix2{i}=kataTemp; end end kataDasarTempKuMU=kataDasarTempKuMU'; kataDasarTempNya=kataDasarTempNya'; dataHilangSufix2=dataHilangSufix2'; dataHilangSufix2=dataHilangSufix2(~cellfun('isempty' ,dataHilangSufix2)); % Menghilangkan cell yang kosong kataDasarTemp=[kataDasarTemp;kataDasarTempKuMU;kataD asarTempNya]; % Cek awalan % pen-, ter-, me-, di-, keprefix1_2={ 'me' 'di' 'ke' 'ku'}; prefix1_3={'pen' 'ter'}; kataDasarTempMeDiKe={}; kataDasarTempPenTer={}; dataHilangPrefix1={}; for i=1:length(dataHilangSufix2) kataTemp=dataHilangSufix2{i}; if length(kataTemp)>3 74
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
if ismember(kataTemp(1:2),prefix1_2) dataHilangPrefix1{i}=kataTemp(3:end); if ismember(dataHilangPrefix1{i},kamus); kataDasarTempMeDiKe{i}=dataHilangPrefix1{i}; dataHilangPrefix1{i}=''; else [hasilKata]=hilangkanSufixKanAnI(dataHilangPrefix1{i },kamus); if ismember(hasilKata,kamus); kataDasarTempMeDiKe{i}=hasilKata; dataHilangPrefix1{i}=''; else dataHilangPrefix1{i}=kataTemp; end end elseif ismember(kataTemp(1:3),prefix1_3) dataHilangPrefix1{i}=kataTemp(4:end); if ismember(dataHilangPrefix1{i},kamus); kataDasarTempPenTer{i}=dataHilangPrefix1{i}; dataHilangPrefix1{i}=''; else [hasilKata]=hilangkanSufixKanAnI(dataHilangPrefix1{i },kamus); if ismember(hasilKata,kamus); kataDasarTempMeDiKe{i}=hasilKata; dataHilangPrefix1{i}=''; else dataHilangPrefix1{i}=kataTemp; end end else dataHilangPrefix1{i}=kataTemp; end else dataHilangPrefix1{i}=kataTemp; end end kataDasarTempMeDiKe=kataDasarTempMeDiKe'; kataDasarTempPenTer=kataDasarTempPenTer'; dataHilangPrefix1=dataHilangPrefix1';
75
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
dataHilangPrefix1=dataHilangPrefix1(~cellfun('isempt y',dataHilangPrefix1)); % Menghilangkan cell yang kosong kataDasarTemp=[kataDasarTemp;kataDasarTempMeDiKe;kat aDasarTempPenTer]; % meng-, peng-, meny-, meng-, peng-, peny-, pem-, mem-, menprefix2_3={'pem' 'mem' 'men'}; prefix2_4={'meng' 'peng' 'meny' 'meng' 'peng' 'peny'}; kataDasarTempMengPengMenyMengPengPeny={}; kataDasarTempPemMemMen={}; kataDasarTempPrefixLain={}; dataHilangPrefix2={}; for i=1:length(dataHilangPrefix1) kataTemp=dataHilangPrefix1{i}; if length(kataTemp)>4 % Cek apakah masuk prefix2_3 dan pefix2_4 atau tidak if ismember(kataTemp(1:3),prefix2_3) || ismember(kataTemp(1:4),prefix2_4) if ismember(kataTemp(1:4),prefix2_4) dataHilangPrefix2{i}=kataTemp(5:end); % Cek apakah huruf awal fokal atau tidak [hasilKata]=jikaKondisiPrefixHurufAwalVokalAtauTidak (dataHilangPrefix2{i},kamus); % Menghilangkan sufix -kan,-an,i [hasilKata]=hilangkanSufixKanAnI(hasilKata,kamus); kataDasarTempMengPengMenyMengPengPeny{i}=hasilKata; dataHilangPrefix2{i}=''; elseif ismember(kataTemp(1:3),prefix2_3) dataHilangPrefix2{i}=kataTemp(4:end); % Cek apakah huruf awal fokal atau tidak [hasilKata]=jikaKondisiPrefixHurufAwalVokalAtauTidak (dataHilangPrefix2{i},kamus); % Menghilangkan sufix -kan,-an,i [hasilKata]=hilangkanSufixKanAnI(hasilKata,kamus); kataDasarTempPemMemMen{i}=hasilKata; dataHilangPrefix2{i}=''; 76
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
end else % -kan, -an, -i [hasilKata]=hilangkanSufixKanAnI(kataTemp,kamus); [hasilKata]=hilangkanPrefixBerBelBePerPelPe(kataTemp ,kamus); kataDasarTempPrefixLain{i}=hasilKata; end else dataHilangPrefix2{i}=kataTemp; end end kataDasarTempMengPengMenyMengPengPeny=kataDasarTempM engPengMenyMengPengPeny'; kataDasarTempPemMemMen=kataDasarTempPemMemMen'; kataDasarTempPrefixLain=kataDasarTempPrefixLain'; dataHilangPrefix2=dataHilangPrefix2'; dataHilangPrefix2=dataHilangPrefix2(~cellfun('isempt y',dataHilangPrefix2)); % Menghilangkan cell yang kosong kataDasarTemp=[kataDasarTemp;kataDasarTempMengPengMe nyMengPengPeny;kataDasarTempPemMemMen;kataDasarTempP refixLain]; kataDasarTemp=kataDasarTemp(~cellfun('isempty',kataD asarTemp)); % Menghilangkan cell yang kosong kataDasarTemp=sort(kataDasarTemp); [kataDasarTemp,dataKataPrefixSufixGagal]=cekKeKamus( kataDasarTemp,kamus); kataDasar=sort(kataDasarTemp); end function [hasilKata]=jikaKondisiPrefixHurufAwalVokalAtauTidak (data,kamus) kataTemp=data; vokal='[aiuoe]'; if ismember(kataTemp(1:1),vokal) kataTemp=strcat('s',kataTemp); if ismember(kataTemp,kamus); hasilKata=kataTemp; else 77
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
[kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus); hasilKata=kataTemp; else kataTemp(1:1)='t'; if ismember(kataTemp,kamus); hasilKata=kataTemp; else [kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus); hasilKata=kataTemp; else kataTemp(1:1)='p'; if ismember(kataTemp,kamus); hasilKata=kataTemp; else [kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus); hasilKata=kataTemp; else kataTemp(1:1)='l'; if ismember(kataTemp,kamus); hasilKata=kataTemp; else [kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus); hasilKata=kataTemp; else kataTemp(1:1)='k'; if ismember(kataTemp,kamus); hasilKata=kataTemp; else [kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus);
78
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
hasilKata=kataTemp; else kataTemp(1:1)='c'; if ismember(kataTemp,kamus); hasilKata=kataTemp; else [kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus); hasilKata=kataTemp; else kataTemp(1:1)=''; hasilKata=kataTemp; end end end end end end end end end end end end else % Kondisi huruf awal bukan vokal hasilKata=kataTemp; end end % Menghilangkan sufix -kan,-an,i function [hasilKata]=hilangkanSufixKanAnI(data,kamus) sufixKan={'kan'}; sufixAn={'an'}; sufixI={'i'};
79
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
kataTemp=data; if length(kataTemp)>3 if ismember(kataTemp(end-2:end),sufixKan) dataHilangSufixKan=kataTemp(1:end-3); if ismember(dataHilangSufixKan,kamus); hasilKata=dataHilangSufixKan; else % dataHilangSufixKan cek awalan ber dll [hasilKata]=hilangkanPrefixBerBelBePerPelPe(dataHila ngSufixKan,kamus); end elseif ismember(kataTemp(end-1:end),sufixAn) dataHilangSufixAn=kataTemp(1:end-2); if ismember(dataHilangSufixAn,kamus); hasilKata=dataHilangSufixAn; else % dataHilangSufixAn cek awalan ber dll [hasilKata]=hilangkanPrefixBerBelBePerPelPe(dataHila ngSufixAn,kamus); end elseif ismember(kataTemp(end:end),sufixI) dataHilangSufixI=kataTemp(1:end-1); if ismember(dataHilangSufixI,kamus); hasilKata=dataHilangSufixI; else % dataHilangSufixI cek awalan ber dll [hasilKata]=hilangkanPrefixBerBelBePerPelPe(dataHila ngSufixI,kamus); end else hasilKata=data; end else hasilKata=data; end end % Menghilangkan prefix ber-, bel-, be-, per-, pel-, atau pefunction [hasilKata]=hilangkanPrefixBerBelBePerPelPe(data,kam us) prefix1_3={'ber' 'bel' 'per' 'pel'}; 80
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
prefix2_2={'be' 'pe'}; kataTemp=data; if length(kataTemp)>3 if ismember(kataTemp(1:3),prefix1_3) dataHilangPrefix=kataTemp(4:end); if ismember(dataHilangPrefix,kamus); hasilKata=dataHilangPrefix; else [hasilKata]=hilangkanSufixKanAnI(dataHilangPrefix,ka mus); end elseif ismember(kataTemp(1:2),prefix2_2) dataHilangPrefix=kataTemp(3:end); if ismember(dataHilangPrefix,kamus); hasilKata=dataHilangPrefix; else [hasilKata]=hilangkanSufixKanAnI(dataHilangPrefix,ka mus); end else hasilKata=kataTemp; end else hasilKata=kataTemp; end end 3. preprocessing.m function [ semuaJmlPerKataUnik,matrixFIle,semuaKataUnik ] = preprocessing( N,matrixFIle,kataTiadaArti,kamusKataDasar,gabungfeat ure) %UNTITLED Summary of this function goes here % Detailed explanation goes here matrixGabunganKataUnique=[]; for i=1:N matrixGabunganKataUnique=[matrixGabunganKataUnique;m atrixFIle{i}]; %#ok
end
81
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
yaTdk=ismember(matrixGabunganKataUnique,kataTiadaArt i); [m,n]=size(matrixGabunganKataUnique); dataTemp=[]; n=1; for j=1:m if yaTdk(j,1)==0 dataTemp{n}=matrixGabunganKataUnique{j}; n=n+1; end end hasilStem=dataTemp'; idexHasilKamus=ismember(hasilStem,kamusKataDasar); [m,~]=size(idexHasilKamus); n=1; for i=1:m if idexHasilKamus(i,1)==1 hasilKamus{n,1}=hasilStem{i,1}; n=n+1; end end hasilKamus=hasilKamus(~cellfun('isempty',hasilKamus) ); % Menangani sinonim data=hasilKamus; sinonim=regexp(gabungfeature,',', 'split'); [m,~]=size(data); for i=1:m [o,~]=size(sinonim); for j=1:o ismem=ismember(data{i},sinonim{j}); if ismem==1 data{i}=regexprep(data{i},data{i},sinonim{j}(1)); end end end data=sort(data); hasilKamus=data; [kataUnik,~,indeksKata]=unique(hasilKamus); % Menentukan kata unik beserta indeksnya 82
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
jmlReduksiKataUnik = length(kataUnik); % Jumlah total kata unik jmlPerKataUnik = hist(indeksKata,1:jmlReduksiKataUnik); % Jumlah per kata unik jmlPerKataUnik=jmlPerKataUnik'; semuaKataUnik=kataUnik; semuaJmlPerKataUnik=jmlPerKataUnik; end 4. proses.m function [ calonDataCell,kataUnik ] = proses( N,matrixFIle,jmlPerKataUnik,kataUnik,batasBawah,bata sAtas ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here [m,~]=size(jmlPerKataUnik); dataTemp2=[]; dataTemp3=[]; dataTemp4=[]; dataTemp5=[]; x=1; y=1; for i=1:m if jmlPerKataUnik(i,1)> batasBawah && jmlPerKataUnik(i,1) < batasAtas dataTemp2(x,1)=jmlPerKataUnik(i,1); dataTemp3{x,1}=kataUnik{i,1}; x=x+1; else dataTemp4(y,1)=jmlPerKataUnik(i,1); dataTemp5{y,1}=kataUnik{i,1}; y=y+1; end end jmlPerKataUnik= dataTemp2; kataUnik= dataTemp3; jmlSelainKataUnik=dataTemp4; selainKataUnik=dataTemp5;
83
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
assignin('base','KataUnikTdkDigunakan',selainKataUni k); countKataUnik = sum(jmlPerKataUnik); [m,n]=size(jmlPerKataUnik); matrixBobot=zeros(m,n); for i=1:m matrixBobot(i)=(jmlPerKataUnik(i))*log10(countKataUn ik/jmlPerKataUnik(i)); end calonData=zeros(size(matrixBobot,1),N); for i=1:N tempMatrixFile=matrixFIle{i}; [m,n]=size(tempMatrixFile); for j=1:m [row,~] = find(ismember(kataUnik,tempMatrixFile(j,1))); calonData(row, i)=matrixBobot(row,1); end end calonDataCell{1}=calonData'; end 5. CariCentroid.m function [ sortVarian ] = CariCentroid( calonData ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here c=[]; varian=var(calonData,0,2); [~,I] = max(varian); calonData=calonData'; sortVarian=sortrows(calonData, -I); end 6. Kmeans.m function [cluster,centroid,counter,dist]= Kmeans(N,data,k,option, inisial_centroid ) %UNTITLED4 Summary of this function goes here centroid=[]; cluster=[]; [n,m]=size(data); 84
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
% selected=[]; %inisal centroid awal berdasarkan option if (option==1) centroid=data(N+1:end,:); data=data(1:N,:); else centroid=inisial_centroid; end flag=0; count=0; counter=[]; %pelompokkan data while(flag==0) [dist,cluster,dist]=Distance(centroid,data); %dist matlab if(count~=0) temp=(cluster==prevclass); if( max(max(temp))==1 && min(min(temp))==1) flag=1; counter; break; end end prevclass=cluster; [centroid,counter]=CalculateCentroid(centroid,cluste r,data); count=count+1; end %hitung & CARI Centroid baru function [centroidBaru,counter]=CalculateCentroid(centroid,cl ass,data) [n,m]=size(data); [k,l]=size(centroid); centroidBaru=zeros(k,l); 85
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
counter=zeros(k,1); for j=1:k for i=1:n if(class(i,1)==j) for p=1:m centroidBaru(j,p)=centroidBaru(j,p)+data(i,p); end counter(j,1)=counter(j,1)+1; end end end for j=1:k for p=1:m centroidBaru(j,p)= centroidBaru(j,p)/counter(j,1); end end %Function untuk cek apakah item data sudah dipilih sebagai initial centroid function [flag] = Exists(Arr, item) flag=0; [n,m]=size(Arr); for i=1:m if(Arr(1,i)==item) flag=1; break; end end %hitung distance dan menandai cluster function [dist,classify,d]=Distance(centroid,data) [n,m]=size(data); [k,l]=size(centroid); dist=[]; classify=[]; for i=1:k for j=1:n %hitung distance setiap centroid dengan tiap data sum=0; for p=1:m 86
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
sum=sum+(data(j,p)-centroid(i,p))^2; end dist(i,j)=sum^0.5; end end d=dist; for j=1:n [~,mindex]=min(dist(:,j)); classify(j,1)=mindex; end 7. hitungConfusionmat.m function ConMatrix=hitungConfusionmat(class_test,class_predic t) yu=unique(class_test); confMat=zeros(length(yu)); for i=1:length(yu) for j=1:length(yu) confMat(i,j)=sum(class_test==yu(i) & class_predict==yu(j)); end end ConMatrix=confMat; end 8. Main.m function varargout = Main(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Main_OpeningFcn, ... 'gui_OutputFcn', @Main_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end
87
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
function Main_OpeningFcn(hObject, eventdata, handles, varargin) %#ok handles.output = hObject; clc; % Logo axes(handles.axLogoUSD); imshow('Images\LogoUSD.jpg'); axes(handles.axCluster); imshow('Images\Cluster.jpg'); set(handles.tblKataUnik,'Data',''); set(handles.tblKataUnik,'ColumnWidth',{25,70}); set(handles.tblConfMat,'Data',''); set(handles.tblConfMat,'ColumnWidth',{40}); set(handles.tblCentroid,'Data',''); set(handles.edAkurasi,'String','0 '); set(handles.edJmlKataUnik,'String','0'); set(handles.axCluster,'Visible','off'); set(handles.txtMin,'String','0'); set(handles.txtMax,'String','100'); set(handles.edProgres,'String','0'); guidata(hObject, handles); function varargout = Main_OutputFcn(hObject, eventdata, handles) %#ok varargout{1} = handles.output; function btnPreprocessing_Callback(hObject, eventdata, handles) %#ok clc; axes(handles.axCluster); imshow('Images\Cluster.jpg'); set(handles.tblKataUnik,'Data',''); set(handles.tblKataUnik,'ColumnWidth',{25,70}); set(handles.tblConfMat,'Data',''); set(handles.tblConfMat,'ColumnWidth',{40}); set(handles.tblCentroid,'Data',''); set(handles.edAkurasi,'String','0 '); 88
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
set(handles.edJmlKataUnik,'String','0'); set(handles.axCluster,'Visible','off'); set(handles.txtMin,'String','0'); set(handles.txtMax,'String','0'); set(handles.edBtsBawah,'String','0'); set(handles.edBtsAtas,'String','0'); set(handles.edProgres,'String','0'); N=str2double(get(handles.edJmlData,'String')); [matrixFIle{1:N,1}]=deal(zeros(0)); dirLagu='DataLagu\'; fileID = fopen('KamusKata\stopwordID.txt'); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file kataTiadaArti=data{1}; % Memasukkan data file ke dalam matriks cell array fileID = fopen('KamusKata\gabungfeature.txt'); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file gabungfeature=data{1}; % Memasukkan data file ke dalam matriks cell array fileID = fopen('KamusKata\kamuskata.txt'); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file kamusKataDasar=data{1}; % Memasukkan data file ke dalam matriks cell array gagalStem=[]; progresTemp=100/N; progres=0; for i=1:N fileLagu=strcat(dirLagu,int2str(i),'.txt'); fileID = fopen(fileLagu); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file data=data{1}; % Memasukkan data file ke dalam matriks [kataDasarHasilStem,dataKataPrefixSufixGagal,tiadaAr 89
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ti] = preprocessingPerLagu(data,kataTiadaArti,gabungfeatur e,kamusKataDasar ); [kataUnikPerLagu,~,~]=unique(kataDasarHasilStem); % Menentukan kata unik beserta indeksnya gagalStem=[gagalStem;dataKataPrefixSufixGagal;tiadaA rti]; %#ok matrixFIle{i} = kataUnikPerLagu; % Progres progres=progres+progresTemp; set(handles.edProgres,'String',num2str(int8(progres) )); pause(0.01); end assignin('base','gagalStem',gagalStem); [ jmlPerKataUnik,matrixFIle,kataUnik] = preprocessing( N,matrixFIle,kataTiadaArti,kamusKataDasar,gabungfeat ure ); %#ok set(handles.tblKataUnik,'Data',[num2cell(jmlPerKataU nik),kataUnik]); set(handles.tblKataUnik,'ColumnWidth',{25,70}); set(handles.edJmlKataUnik,'String',num2str(size(jmlP erKataUnik,1))); set(handles.txtMin,'String',num2str(min(jmlPerKataUn ik))); set(handles.txtMax,'String',num2str(max(jmlPerKataUn ik))); set(handles.edBtsBawah,'String',num2str(min(jmlPerKa taUnik)-1)); set(handles.edBtsAtas,'String',num2str(max(jmlPerKat aUnik)+1)); save('hasilPreprocessing.mat','N','jmlPerKataUnik',' matrixFIle','kataUnik','gagalStem'); uiwait(msgbox('Berhasil Preprocessing.','Peringatan','modal')); function btnProses_Callback(hObject, eventdata, handles) %#ok
90
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
clc; axes(handles.axCluster); imshow('Images\Cluster.jpg'); set(handles.tblKataUnik,'Data',''); set(handles.tblKataUnik,'ColumnWidth',{25,70}); set(handles.tblConfMat,'Data',''); set(handles.tblConfMat,'ColumnWidth',{40}); set(handles.tblCentroid,'Data',''); set(handles.edAkurasi,'String','0 '); set(handles.edJmlKataUnik,'String','0'); set(handles.axCluster,'Visible','off'); set(handles.edProgres,'String','0'); load('hasilPreprocessing.mat','N'); load('hasilPreprocessing.mat','jmlPerKataUnik'); load('hasilPreprocessing.mat','matrixFIle'); load('hasilPreprocessing.mat','kataUnik'); load('hasilPreprocessing.mat','gagalStem'); assignin('base','gagalStem',gagalStem); assignin('base','kataUnik',kataUnik); jmlCluster=4; batasBawah=str2double(get(handles.edBtsBawah,'String ')); batasAtas=str2double(get(handles.edBtsAtas,'String') ); nMod=N/jmlCluster; progresTemp=100/N; progres=0; set(handles.tblKataUnik,'Data',[num2cell(jmlPerKataU nik),kataUnik]); %#ok set(handles.tblKataUnik,'ColumnWidth',{25,70}); set(handles.edJmlKataUnik,'String',num2str(size(jmlP erKataUnik,1))); set(handles.txtMin,'String',num2str(min(jmlPerKataUn ik))); set(handles.txtMax,'String',num2str(max(jmlPerKataUn ik))); [ calonDataCell,kataUnik ] = proses( N,matrixFIle,jmlPerKataUnik,kataUnik,batasBawah,bata sAtas ); %#ok 91
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
assignin('base','matrixFIle',matrixFIle); [k,~]=size(batasBawah); calonData=calonDataCell{1}; assignin('base','calonData',calonData); calonData=zscore(calonData); calonDataNonNorm=calonData'; %#ok calonData=calonData'; assignin('base','Data',calonData); [ sortVarian ] = CariCentroid( calonData ); C=mat2cell(sortVarian, [nMod nMod nMod nMod]); c=[]; for i=1:4 cTempt=mean(C{i}); c=[c;cTempt]; %#ok end assignin('base','Centroid',c); data=calonData'; data=[data;c]; [cluster,c,counter,dist]=Kmeans(N,data,k,1,1 ); %#ok assignin('base','cluster',cluster); % Pembentukan class test nCls=N; class=1; class_test=zeros(nCls,1); for i=1:nCls if mod(i,nMod) == 0 class_test(i,1)=class; class=class+1; if i < nCls class_test(i+1,1)=class; end else class_test(i,1)=class; end % Progres progres=progres+progresTemp; set(handles.edProgres,'String',num2str(int8(progres) )); pause(0.001); 92
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
end assignin('base','class_test',class_test); dist=dist'; axes(handles.axCluster) X=dist(:,1); Y=dist(:,2); Z=dist(:,3); scatter3(X,Y,Z,50,cluster,'filled'); rotate3d on; confMat=hitungConfusionmat(class_test,cluster); [M,~]=max(confMat); acc=(sum(M)/sum(confMat(:)))*100; [confMat]=warnaConfusion(hObject, eventdata, handles,confMat); set(handles.edAkurasi,'String',[num2str(acc),' ']); set(handles.tblConfMat,'Data',confMat); set(handles.tblConfMat,'ColumnWidth',{40}); set(handles.tblCentroid,'Data',c); save('hasilProses.mat','c','kataUnik','calonDataNonN orm'); uiwait(msgbox('Proses berhasil.','Peringatan','modal')); function [dataConfMat]=warnaConfusion(hObject, eventdata, handles,dataConfMat) %#ok X=dataConfMat; % Konversi matrix dari nomor ke cell array string XX = reshape(strtrim(cellstr(num2str(X(:)))), size(X));
93
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
% Penentuan yang akan diberi warna dengan fotmat html [~,I] = max(X); for i=1:size(I,2) XX(I(i),i) = strcat(... '<span style="color: #429808; fontweight: bold;font-size:14;">', ... XX(I(i),i), ... ' '); end dataConfMat=XX; function btnInputFile_Callback(hObject, eventdata, handles) %#ok