71
BAB IV HASIL DAN ANALISIS HASIL
Bab ini berisi mengenai implementasi, hasil dan analisis hasil dari metodologi yang dibahas pada bab sebelumnya.
4.1 Implementasi
4.1.1 Data
Data yang digunakan ialah data berekstensi .txt diambil dari tweet yang bersumber dari netlytic.com, yang terdiri dari lima emosi yaitu cinta, senang, sedih,
takut, dan marah. Data yang diolah sebanyak 500 data. Berikut kumpulan data dan contoh data tweet :
Gambar 4. 1 Kumpulan Data
Gambar 4. 2 Contoh Data
4.1.2 Preprocessing
Processing merupakan tahap awal dalam proses agglomerative hierarchical clustering. Pada tahap ini pengelompokkan tweet akan diubah dari data mentah
menjadi data yang sudah memiliki bobot dan siap diproses pada tahap selanjutnya. Tahap preprocessing adalah sebagai berikut :
1. Tokenizing
Tokenizing bertujuan untuk memecah kalimat menjadi per kata dengan memanfaatkan karakter spasi sebagai pemisah setiap kata. Berikut merupakan
implementasi dari proses tokenizing dengan menggunakan bahasa pemograman matlab. Langkah pertama adalah membaca data tweet, lalu dipisah menjadi per kata,
selanjutnya data tweet diubah menjadi huruf kecil lowercase, kemudian karakter yang terdiri dari tanda baca dan angka dihapus. Gambar menunjukkan potongan
source code proses tokenizing :
Gambar 4. 3 Source code Tokenizing
2. Stopword
Proses stopword bertujuan untuk menghilangkan kata – kata umum yang
sering muncul. Gambar beriku menunjukkan sebagian stopword yang disimpan dalam file stopwordID.txt. Sistem akan mengambil data dari file stopwordID.txt
lalu dicek terhadap data tweet, apabila ada kata yang terkandung dalam file tersebut maka kata pada data tweet akan dihapus.
Gambar 4. 4 Source code Stopword Pada gambar 4.4 merupakan implementasi stopword, dimana kamus kata
pada stopword yang ada dalam atribut kataTiada Arti, lalu program mengecek apakah data yang ada pada dokumen termasuk dalam kata stopword, jika ada
maka kata tersebut dihilangkan.
3. Stemming
Proses stemming ialah mengembalikan kata – kata berimbuhan ke bentuk
dasarnya. Proses dilakukan dengan menghapus awalan prefiks dan akhiran surfiks. Dalam proses ini, program dibantu dengan kamus kata dasar. Berikut
merupakan implementasi program stemming :
Gambar 4. 5 Source code Stemming
Pada gambar 4.5 tahapan proses stemming yaitu mengecek kata dasar yang ada di kamus lalu mencocokkan dengan dataKataPrefixSurfix, jika ada maka kata
disimpan dan menjadi kata unik yang nantinya akan di proses pada tahap selanjutnya.
4. Penanganan Sinonim
Kata yang terkandung di dalam data tweet mengandung kata umum yang sering digunakan, oleh karena itu banyak kata yang memiliki satu makna, maka
dapat digabung. Berikut implementasi penanganan sinonim :
Gambar 4. 6 Kamus Kata Sinonim
Gambar 4. 7 Source code Penanganan Sinonim
Pada gambar 4.7 merupakan implementasi tahap penanganan sinonim, dimana data kamus sinonim disimpan dalam atribut gabungfeature, didalam kamus
sinonim terdapat kata yang memiliki makna sama dipisah dengan tanda koma, maka ketika membandingkan data dengan sinonim, apabila kata pada dokumen
terdapat dalam kamus sinonim, maka akan dikenali sebagai kata unik adalah kata terdepan yang ada di kamus sinonim.
5. Pembobotan
Tahap selanjutnya ialah tahap pembobotan menggunakan tf-idf, dimana pada tahap ini akan menghitung bobot tweet yaitu pertama menghitung frekuensi
kata dari tiap kata pada tiap tweet kemudian mengalikannya dengan idf. Berikut implementasi pembobotan tf-idf :
Gambar 4. 8 Source code Pembobotan
6. Normalisasi
Setelah menghitung bobot kata tiap tweet, selanjutnya data di normalisasi. Normalisasi dilakukan agar tidak ada nilai yang mendominasi. Normalisasi yang
digunakan yaitu normalisasi Z-Score dan normalisasi min – max. Normalisasi ini
dilakukan terpisah untuk mengetahui normalisasi yang lebih cocok pada penelitian ini.
a. Normalisasi Min
– Max Berikut implementasi normalisasi min- max :
Gambar 4. 9 Source code Normalisasi Min – Max
b. Normalisasi Z-Score
Berikut implementasi normalisasi Z-Score :
Gambar 4. 10 Source code Normalisasi Z-Score
4.1.3 Pengujian Sistem
1. Perhitungan Jarak
Setelah data dinormalisasi, selanjutnya dilakukan perhitungan jarak antar setiap data tweet. Perhitungan jarak yang digunakan ialah perhitungan jarak
menggunakan euclidean distance dan perhitungan jarak menggunakan cosine similarity. Perhitungan jarak ini dilakukan terpisah agar mengetahui perhitungan
jarak yang cocok untuk penelitian ini.
a. Euclidean distance
Berikut implementasi perhitungan jarak menggunakan euclidean distance
Gambar 4. 11 Source code Hitung Jarak Euclidean b.
Cosine similarity Berikut implementasi perhitungan jarak menggunakan cosine similarity
Gambar 4. 12 Source code Hitung Jarak Cosine
2. Agglomerative Hierarchical Clustering
Setelah mengukur jarak setiap tweet, selanjutnya data akan dikelompokkan menggunakan Agglomerative hierarchical clustering. Agglomerative hierarchical
clustering dibagi menjadi tiga metode yaitu single linkage , complete linkage, dan average linkage. Metode pengelompokkan AHC ini dilakukan terpisah agar
mengetahui metode yang cocok untuk penelitian ini. Berikut implementasi AHC :
Gambar 4. 13 Source code AHC
3. Output
Hasil setiap metode AHC akan ditampilkan dalam tabel yang berisi hasil prediksi dan dendrogram.
Gambar 4. 14 Gambar Output Hasil
4. Akurasi
Pada penelitian ini, perhitungan akurasi yang digunakan ialah Confusion Matrix. Hasil prediksi akan dibandingkan dengan label aktual. Banyaknya
kecocokan antara prediksi dan label aktual akan mempengaruhi tingkat akurasi sistem. Berikut implementasi proses perhitungan Confusion Matrix :
Gambar 4. 15 Source code Confusion Matrix
Gambar 4. 16 Hasil Implementasi Confusion Matrix
4.1.4 Pengujian Data Baru Pengujian data baru digunakan pada sebuah kalimat tweet Data baru tersebut
akan melalui tahap ekstraksi ciri, kemudian program akan menentukan tweet termasuk pada cluster cinta, marah, senang, sedih, atau takut. Penentuan dilakukan
dengan mengukur kedekatan data baru pada centroid tiap cluster.
Gambar 4.17 menunjukkan contoh tweet yang digunakan sebagai data baru. Menurut prediksi, data baru termasuk dalam cluster cinta. Hasil prediksi
ditunjukkan pada Gambar 4.18.
Gambar 4. 17 Contoh Tweet Uji
Gambar 4. 18 Hasil Tweet Uji
4.2 Hasil Analisis Hasil
Setelah melakukan implementasi maka selanjutnya menganalisa hasil terhadap pengelompokkan tweet. Analisa dilakukan terhadap seluruh data tweet,
sehingga dengan demikian dapat diketahui kelompok emosi pada seluruh data tweet. Tahapan yang telah dilakukan mulai dari preprocessing yang terdiri dari
tokenizing untuk memisahkan kalimat tweet menjadi tiap - tiap kata dan menghilangkan tanda baca, stopword untuk menghapus kata yang tidak memiliki
arti, stemming untuk menghilangkan kata berimbuhan menjadi kata dasar lalu
mencocokkan kembali dengan kamus stopword. Tahap selanjutnya ialah proses pembobotan kata yaitu untuk menghitung frekuensi kemunculan kata pada tiap data
tweet, sehingga kata yang lebih sering muncul pada suatu tweet dianggap lebih penting. Frekuensi kemunculan kata unik perlu dibatasi. Kemudian melakukan
proses normalisasi data, pada penelitian ini menggunakan normalisasi min - max dan normalisasi z-score. Hal ini dilakukan agar dapat mengetahui normalisasi yang
paling optimal. Setelah melakukan normalisasi data, kemudian masuk pada proses Agglomerative Hierarchical Clustering AHC dalam tiga metodesingle linkage,
complete linkage, average linkage. Masing – masing metode menggunakan
euclidean distance dan cosine similarity untuk perhitungan jarak. Sejalan dengan proses AHC, setiap pengelompokkan diuji dengan Confusion Matrix, dimana data
prediksi dibandingkan dengan data actual kemudian dikalikan dengan 100.
Berikut langkah – langkah percobaan yang dilakukan :
1. Menentukan jumlah cluster=5. Sesuai dengan emosi yang telah ditentukan.
2. Data tweet=500
3. Menginputkan batas atas dan batas bawah yang pada akhirnya sangat
menentukan tingkat akurasi 4.
Memilih normalisasi min – max atau z-score
5. Memilih perhitungan jarak euclidean distance atau cosine similarity
6. Memilih metode AHC single linkage, complete linkage, average linkage
Sebelum masuk pada tahap normalisasi, frekuensi kemunculan kata perlu dibatasi. Frekuensi kemunculan kata dengan batas atas = 85 dan batas bawah = 2
menghasilkan pengelompokkan yang baik sehingga batas atas = 85 dan batas bawah = 2 digunakan untuk percobaan ini. Hasil dari percobaan dapat dilihat pada tabel
dan gambar berikut :
1. Percobaan tanpa normalisasi