Model Analisis BAB III

42 Stopword removal tweet sedih inilah saat terakhirku melihat passus jatuh air mataku menangis pilu hanya mampu ucapkan selamat jalan passus  terakhirku melihat passus jatuh air mataku menangis pilu ucapkan selamat jalan passus Gambar 3.14 Stopword Removal Tweet Sedih Gambar 3.14 menunjukkan contoh kalimat tweet yang dikenai proses stopword removal. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi sedih. Stopword removal tweet senang sahabat seperti dia menyenangkan bisa bekerja sama jalan bersama dan selalu bahagia  sahabat menyenangkan bekerja sama jalan bersama bahagia Gambar 3.15 Stopword Removal Tweet Senang Gambar 3.15 menunjukkan contoh kalimat tweet yang dikenai proses stopword removal. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi senang. 43 Stopword removal tweet takut dpat kbar kalau ad ank kampus yg di begal astafirullah jdi takut sndri kalau kluar mlm  kbar ank kampus begal astafirullah takut sndri kluar mlm Gambar 3.16 Stopword Removal Tweet Takut Gambar 3.16 menunjukkan contoh kalimat tweet yang dikenai proses stopword removal. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi takut.

3.3.1.3 Stemming

Stemming bertujuan untuk mengembalikan tiap kata dalam dokumen menjadi kata dasar. Stemming dilakukan dengan menghilangkan awalan prefiks dan akhiran sufiks. Gambar-gambar di bawah menunjukkan contoh perlakuan stemming terhadap kalimat tweet cinta, marah, sedih, senang, dan takut. Stemming tweet cinta cnta indah seindah senyuman candaan cinta memeluk hati insan menyatukan dalam ikatan  cinta indah indah senyum canda cinta peluk hati insan satu ikat Gambar 3.17 Stemming Tweet Cinta 44 Gambar 3.17 menunjukkan contoh kalimat tweet yang dikenai proses stemming. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi cinta. Stemming tweet marah dibuat marah sama kerjaan gangguin sebel jengkel puasa  marah sama kerja ganggu sebal jengkel puasa Gambar 3.18 Stemming Tweet Marah Gambar 3.18 menunjukkan contoh kalimat tweet yang dikenai proses stemming. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi marah. Stemming tweet sedih terakhirku melihat passus jatuh air mataku menangis pilu ucapkan selamat jalan passus  akhir lihat passus jatuh air mata tangis pilu ucap selamat jalan passus Gambar 3.19 Stemming Tweet Sedih Gambar 3.19 menunjukkan contoh kalimat tweet yang dikenai proses stemming. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi sedih. 45 Stemming tweet senang sahabat menyenangkan bekerja sama jalan bersama bahagia  sahabat senang kerja sama jalan sama bahagia Gambar 3.20 Stemming Tweet Senang Gambar 3.20 menunjukkan contoh kalimat tweet yang dikenai proses stemming. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi senang. Stemming tweet takut kbar ank kampus begal astafirullah takut sndri kluar mlm  kabar anak kampus begal astagfirullah takut sendiri keluar malam Gambar 3.21 Stemming Tweet Takut Gambar 3.21 menunjukkan contoh kalimat tweet yang dikenai proses stemming. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi takut. 46

3.3.1.4 Preprocessing Tambahan

Penghapusan Noise Tweet Selain tahap tokenizing, stopword removal, dan stemming, data tweet memerlukan beberapa preprocessing tambahan untuk membersihkan data dari noise. Preprocessing tambahan meliputi menghapus link url, username, tanda retweet, dan beragam noise lain. riefianindita_ Tetes air mata basahi pipiku disaat kita kan berpisah https:instagram.compz1- sl9LJrF  Tetes air mata basahi pipiku disaat kita kan berpisah Gambar 3.22 Penghapusan Noise Tweet Gambar 3.22 menunjukkan contoh kalimat tweet yang dikenai proses penghapusan noise. Username dan link url yang terdapat dalam tweet dihapus melalui tahap ini. Penggabungan Sinonim Kata Kata-kata yang terdapat dalam kalimat tweet berasal dari banyak orang sehingga penulisan kata-kata tersebut sangat bervariasi. Kalimat tweet dapat berisi kata tidak baku, kata yang disingkat, dan kata yang dihilangkan beberapa huruf vokalnya. Oleh karena itu, proses penggabungan kata berdasarkan kesamaan arti perlu dilakukan. Penggabungan kata akan mengembalikan kata tidak baku atau kata yang disingkat ke bentuk baku. Tabel 3.1 dan tabel 3.2 menunjukkan 47 contoh penggabungan kata dan kaitannya dengan penghitungan term frequency tf. Tabel 3.1 Kata Sebelum Penggabungan kata tf Sayang 1 Sang 1 sayank 1 takut 1 takutt 1 tkutt 1 Tabel 3.2 Kata Setelah Penggabungan kata tf sayang 3 takut 3 Tabel 3.1 menunjukkan kata sayang memiliki tiga variasi penulisan yaitu “sayang”, “syng”, dan “sayank”. Masing-masing variasi kata memiliki nilai tf = 1. Setelah proses penggabungan, kata “syng” dan “sayank” digabung dengan kata “sayang” sehingga kata “sayang” memiliki nilai tf = 3. Penghitungan nilai tf setelah penggabungan kata ditunjukkan pada Tabel 3.2. Penanganan Kata Negasi Pada pengelompokkan teks berdasarkan emosi, kata “tidak”, “tanpa”, dan “bukan” menjadi sangat berarti dan tidak boleh dihilangkan. Perlakuan data sebelum clustering sangat penting supaya data yang diolah benar-benar mewakili maksud dari sebuah dokumen. 48 Kata “tanpa cinta” dan “tidak senang” dapat menempatkan dokumen dalam cluster yang berbeda. Kata “tidak”, “tanpa”, dan “bukan” akan digabung dengan kata yang berada tepat di belakang. Aku merasa tidak senang dengan hasil ujian tadi  Aku merasa tidaksenang dengan hasil ujian tadi Gambar 3.23 Penanganan Kata Negasi Gambar 3.23 menunjukkan contoh kalimat tweet yang dikenai proses penanganan negasi. Kata “tidak” dan “senang” digabung menjadi “tidaksenang”.

3.3.2 Pembobotan

Setelah melalui tahap preprocessing, data akan masuk ke tahap pembobotan. Pembobotan bertujuan untuk mendapatkan nilai bobot dari tiap kata. Langkah pertama yaitu menghitung nilai term frequency tf tiap kata. Langkah kedua yaitu menghitung nilai document frequency idf tiap kata. Langkah ketiga yaitu menghitung inverse document frequency idf. Langkah terakhir yaitu menghitung bobot atau weight w dari hasil perkalian term frequency tf dengan inverse document frequency idf. Gambar-gambar di bawah menunjukkan contoh pembobotan tf-idf terhadap kalimat tweet cinta, marah, sedih, senang, dan takut. 49 Hitung term frequency tf tweet cinta cinta indah indah senyum canda cinta peluk hati insan satu ikat tf cinta=2 indah=2 senyum=1 canda=1 peluk=1 hati=1 insan=1 satu=1 ikat=1 Gambar 3.24 Hitung term frequency tf Tweet Cinta Gambar 3.24 menunjukkan contoh perhitungan term frequency tf pada kalimat tweet. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi cinta. Hitung term frequency tf tweet marah marah sama kerja ganggu sebal jengkel puasa tf marah=1 sama=1 kerja=1 ganggu=1 sebal=1 jengkel=1 puasa=1 Gambar 3.25 Hitung term frequency tf Tweet Marah Gambar 3.25 menunjukkan contoh perhitungan term frequency tf pada kalimat tweet. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi marah. 50 Hitung term frequency tf tweet sedih akhir lihat passus jatuh air mata tangis pilu ucap selamat jalan passus tf akhir=1 lihat=1 passus=2 jatuh=1 air=1 mata=1 tangis=1 pilu=1 ucap=1 selamat=1 jalan=1 Gambar 3.26 Hitung term frequency tf Tweet Sedih Gambar 3.26 menunjukkan contoh perhitungan term frequency tf pada kalimat tweet. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi sedih. Hitung term frequency tf tweet senang sahabat senang kerja sama jalan sama bahagia tf sahabat=1 senang=1 kerja=1 sama=1 jalan=1 bahagia=1 Gambar 3.27 Hitung term frequency tf Tweet Senang Gambar 3.27 menunjukkan contoh perhitungan term frequency tf pada kalimat tweet. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi senang. 51 Hitung term frequency tf tweet takut kabar anak kampus begal astagfirullah takut sendiri keluar malam tf kabar=1 anak=1 kampus=1 begal=1 astagfirullah=1 takut=1 sendiri=1 keluar=1 malam=1 Gambar 3.28 Hitung term frequency tf Tweet Takut Gambar 3.28 menunjukkan contoh perhitungan term frequency tf pada kalimat tweet. Kalimat tweet yang digunakan pada gambar di atas adalah tweet yang mengandung emosi takut. 52 Hitung document frequency df Tabel 3.3 Hitung document frequency df ID kata df ID kata df 1 cinta 1 21 air 1 2 indah 1 22 mata 1 3 senyum 1 23 tangis 1 4 canda 1 24 pilu 1 5 peluk 1 25 ucap 1 6 hati 1 26 selamat 1 7 insan 1 27 jalan 2 8 satu 1 28 sahabat 1 9 ikat 1 29 senang 1 10 marah 1 30 bahagia 1 11 sama 2 31 kabar 1 12 kerja 2 32 anak 1 13 ganggu 1 33 kampus 1 14 sebal 1 34 begal 1 15 jengkel 1 35 astagfirullah 1 16 puasa 1 36 takut 1 17 akhir 1 37 sendiri 1 18 lihat 1 38 keluar 1 19 passus 1 39 malam 1 20 jatuh 1 Tabel 3.3 menunjukkan contoh perhitungan document frequency df semua kata yang ada dalam dokumen. 53 Hitung inverse document frequency idf Tabel 3.4 Hitung inverse document frequency idf ID kata df Idf ID kata df idf 1 cinta 1 0,6989700043 21 air 1 0,6989700043 2 indah 1 0,6989700043 22 mata 1 0,6989700043 3 senyum 1 0,6989700043 23 tangis 1 0,6989700043 4 canda 1 0,6989700043 24 pilu 1 0,6989700043 5 peluk 1 0,6989700043 25 ucap 1 0,6989700043 6 hati 1 0,6989700043 26 selamat 1 0,6989700043 7 insan 1 0,6989700043 27 jalan 2 0,3979400087 8 satu 1 0,6989700043 28 sahabat 1 0,6989700043 9 ikat 1 0,6989700043 29 senang 1 0,6989700043 10 marah 1 0,6989700043 30 bahagia 1 0,6989700043 11 sama 2 0,3979400087 31 kabar 1 0,6989700043 12 kerja 2 0,3979400087 32 anak 1 0,6989700043 13 ganggu 1 0,6989700043 33 kampus 1 0,6989700043 14 sebal 1 0,6989700043 34 begal 1 0,6989700043 15 jengkel 1 0,6989700043 35 astagfirullah 1 0,6989700043 16 puasa 1 0,6989700043 36 takut 1 0,6989700043 17 akhir 1 0,6989700043 37 sendiri 1 0,6989700043 18 lihat 1 0,6989700043 38 keluar 1 0,6989700043 19 passus 1 0,6989700043 39 malam 1 0,6989700043 20 jatuh 1 0,6989700043 Tabel 3.4 menunjukkan contoh perhitungan inverse document frequency idf semua kata yang ada dalam dokumen. Hitung weight w Nilai bobot atau weight w didapat dari hasil perkalian term frequency tf dengan inverse document frequency idf. Tabel di bawah menunjukkan perhitungan bobot tiap kalimat tweet. 54 Hitung weight w tweet cinta Tabel 3.5 Hitung weight w Tweet Cinta kata tf idf w Cinta 2 0,6989700043 1,397940009 indah 2 0,6989700043 1,397940009 senyum 1 0,6989700043 0,6989700043 canda 1 0,6989700043 0,6989700043 peluk 1 0,6989700043 0,6989700043 Hati 1 0,6989700043 0,6989700043 insan 1 0,6989700043 0,6989700043 Satu 1 0,6989700043 0,6989700043 Ikat 1 0,6989700043 0,6989700043 Tabel 3.5 menunjukkan contoh perhitungan bobot pada kalimat tweet. Kalimat tweet yang digunakan pada tabel di atas adalah tweet yang mengandung emosi cinta. Hitung weight w tweet marah Tabel 3.6 Hitung weight w Tweet Marah kata tf idf w marah 1 0,6989700043 0,6989700043 sama 1 0,3979400087 0,3979400087 kerja 1 0,3979400087 0,3979400087 ganggu 1 0,6989700043 0,6989700043 sebal 1 0,6989700043 0,6989700043 jengkel 1 0,6989700043 0,6989700043 puasa 1 0,6989700043 0,6989700043 Tabel 3.6 menunjukkan contoh perhitungan bobot pada kalimat tweet. Kalimat tweet yang digunakan pada tabel di atas adalah tweet yang mengandung emosi marah. 55 Hitung weight w tweet sedih Tabel 3.7 Hitung weight w Tweet Sedih kata tf idf w akhir 1 0,6989700043 0,6989700043 Lihat 1 0,6989700043 0,6989700043 passus 2 0,6989700043 1,397940009 jatuh 1 0,6989700043 0,6989700043 Air 1 0,6989700043 0,6989700043 mata 1 0,6989700043 0,6989700043 tangis 1 0,6989700043 0,6989700043 Pilu 1 0,6989700043 0,6989700043 Ucap 1 0,6989700043 0,6989700043 selamat 1 0,6989700043 0,6989700043 Jalan 1 0,3979400087 0,3979400087 Tabel 3.7 menunjukkan contoh perhitungan bobot pada kalimat tweet. Kalimat tweet yang digunakan pada tabel di atas adalah tweet yang mengandung emosi sedih. Hitung weight w tweet senang Tabel 3.8 Hitung weight w Tweet Senang kata tf idf w sahabat 1 0,6989700043 0,6989700043 senang 1 0,6989700043 0,6989700043 kerja 1 0,3979400087 0,3979400087 sama 1 0,3979400087 0,3979400087 jalan 1 0,3979400087 0,3979400087 bahagia 1 0,6989700043 0,6989700043 Tabel 3.8 menunjukkan contoh perhitungan bobot pada kalimat tweet. Kalimat tweet yang digunakan pada tabel di atas adalah tweet yang mengandung emosi senang. 56 Hitung weight w tweet takut Tabel 3.9 Hitung weight w Tweet Takut kata tf idf w kabar 1 0,6989700043 0,6989700043 Anak 1 0,6989700043 0,6989700043 kampus 1 0,6989700043 0,6989700043 begal 1 0,6989700043 0,6989700043 astagfirullah 1 0,6989700043 0,6989700043 takut 1 0,6989700043 0,6989700043 sendiri 1 0,6989700043 0,6989700043 keluar 1 0,6989700043 0,6989700043 malam 1 0,6989700043 0,6989700043 Tabel 3.9 menunjukkan contoh perhitungan bobot pada kalimat tweet. Kalimat tweet yang digunakan pada tabel di atas adalah tweet yang mengandung emosi takut.

3.3.3 Normalisasi

Tahap selanjutnya yaitu tahap normalisasi. Metode normalisasi yang digunakan pada penelitian ini adalah metode normalisasi z-score dan metode normalisasi min-max. Tabel 3.10 menunjukkan contoh tabel hasil tahap pembobotan yang belum dikenai proses normalisasi. Tabel 3.10 Tabel Pembobotan kata sayang dengki sedih gembira seram Tweet 1 1,14806254 Tweet 2 1,7220938 Tweet 3 4,01821887 Tweet 4 0 0,57403127 Tweet 5 0 4,01821887 Tweet 6 1,7220938 0 0,57403127 Tweet 7 0 0,57403127 Tweet 8 0 2,29612507 0 0,57403127 57 kata sayang dengki sedih gembira seram Tweet 9 0 0,57403127 Tweet 10 0,57403127 0 0,57403127 Tweet 11 0 3,44418761 Tweet 12 0 0,57403127 Tweet 13 0 0,57403127 0 2,87015634 Tweet 14 0 0,57403127 Tweet 15 0 0,57403127 Pada tabel 3.10, terdapat bobot yang dominan atau melampaui bobot-bobot lain. Pada contoh di atas, bobot yang dianggap dominan adalah bobot yang melebihi angka 2. Bobot dominan ditunjukkan dengan warna kuning. Penjelasan di bawah merupakan langkah-langkah normalisasi z- score dan normalisasi min-max:

3.3.3.1 Z-Score

Langkah-langkah normalisasi z-score adalah sebagai berikut: 1. Hitung masing-masing nilai rata-rata mean pada setiap kalimat tweet. Tabel 3.11 Tabel Mean Tweet Mean Tweet 1 0,229613 Tweet 2 0,344419 Tweet 3 0,803644 Tweet 4 0,114806 Tweet 5 0,803644 Tweet 6 0,459225 Tweet 7 0,114806 Tweet 8 0,574031 Tweet 9 0,114806 58 Tweet Mean Tweet 10 0,229613 Tweet 11 0,688838 Tweet 12 0,114806 Tweet 13 0,688838 Tweet 14 0,114806 Tweet 15 0,114806 Tabel 3.11 menunjukkan hasil hitung rata-rata mean setiap kalimat tweet. Nilai mean digunakan pada normalisasi z-score. 2. Hitung masing-masing nilai standard deviation pada setiap kalimat tweet. Tabel 3.12 Tabel Standard Deviation Tweet STD Tweet 1 0,513429 Tweet 2 0,770144 Tweet 3 1,797002 Tweet 4 0,256715 Tweet 5 1,797002 Tweet 6 0,748445 Tweet 7 0,256715 Tweet 8 0,994251 Tweet 9 0,256715 Tweet 10 0,31441 Tweet 11 1,540288 Tweet 12 0,256715 Tweet 13 1,24447 Tweet 14 0,256715 Tweet 15 0,256715 Tabel 3.12 menunjukkan hasil hitung standard deviation setiap kalimat tweet. Nilai standard deviation digunakan pada normalisasi z- score. 59 3. Hitung nilai bobot baru berdasarkan persamaan 2.2. Lihat persamaan 2.2 pada bab 2. Tabel 3.13 Hasil Normalisasi Z-Score Kata sayang dengki sedih gembira seram Tweet 1 1,14806254 Tweet 2 1,7220938 Tweet 3 1,78885438 Tweet 4 0 0,57403127 Tweet 5 0 1,78885438 Tweet 6 1,7220938 0 0,57403127 Tweet 7 0 0,57403127 Tweet 8 0 1,73205081 0 0,57403127 Tweet 9 0 0,57403127 Tweet 10 0,57403127 0 0,57403127 Tweet 11 0 1,78885438 Tweet 12 0 0,57403127 Tweet 13 0 0,57403127 1,7528093 Tweet 14 0 0,57403127 Tweet 15 0 0,57403127 Tabel 3.13 menunjukkan hasil hitung bobot baru menggunakan normalisasi z-score. Bobot baru didapat dari bobot lama dikurangi rata- rata mean kemudian dibagi standard deviation. Bobot baru ditunjukkan dengan warna kuning.

3.3.3.2 Min-Max

Langkah-langkah normalisasi min-max adalah sebagai berikut: 1. Cari masing-masing nilai terkecil min dan nilai terbesar max pada setiap kata term. 60 Tabel 3.14 Tabel Min-Max Min Max sayang 0 4,01821887 dengki 0 4,01821887 sedih 0 2,29612507 gembira 0 3,44418761 seram 0 2,87015634 Tabel 3.14 menunjukkan nilai terkecil min dan nilai terbesar max pada setiap kata term. Nilai min dan max digunakan pada normalisasi min-max. 2. Hitung nilai bobot baru berdasarkan persamaan 2.3. Lihat persamaan 2.3 pada bab 2. Tabel 3.15 Hasil Normalisasi Min-Max kata sayang dengki sedih gembira seram Tweet 1 1,14806254 Tweet 2 1,7220938 Tweet 3 1 0 0,57403127 Tweet 4 0 0,57403127 Tweet 5 1 Tweet 6 1,7220938 0 0,57403127 Tweet 7 0 0,57403127 Tweet 8 1 0 0,57403127 Tweet 9 0 0,57403127 Tweet 10 0,57403127 0 0,57403127 Tweet 11 1 Tweet 12 0 0,57403127 Tweet 13 0 0,57403127 1 Tweet 14 0 0,57403127 Tweet 15 0 0,57403127 Tabel 3.15 menunjukkan hasil hitung bobot baru menggunakan normalisasi min-max. Bobot baru didapat dari bobot lama dikurangi 61 nilai terkecil min kemudian dibagi dengan nilai terbesar max dikurangi nilai terkecil min. Jika nilai min sama dengan nilai max, bobot baru akan ditentukan bernilai 0,5. Bobot baru ditunjukkan dengan warna kuning.

3.3.4 K-Means Clustering

Setelah melalui tahap normalisasi, data akan masuk ke tahap clustering. Metode clustering yang digunakan adalah K-Means Clustering. Cluster yang dipakai adalah lima k=5 karena sesuai dengan pengelompokan lima emosi dasar yaitu cinta, marah, sedih, senang, dan takut. Pada algoritma partition clustering, termasuk K-Means clustering, penentuan centroid awal sangat mempengaruhi hasil akhir clustering. Oleh karena itu, penelitian ini menggunakan algoritma variance initialization untuk menentukan centroid awal.

3.3.4.1 Variance Initialization

Langkah-langkah variance initialization akan ditunjukkan dengan penjelasan di bawah ini: 1. Hitung nilai variance pada setiap kolom data. Tabel 3.16 Hitung Variance kata sayang dengki sedih gembira seram Tweet 1 1,14806254 Tweet 2 1,7220938 Tweet 3 1,78885438 62 kata sayang dengki sedih gembira seram Tweet 4 0 0,57403127 Tweet 5 0 1,78885438 Tweet 6 1,7220938 0 0,57403127 Tweet 7 0 0,57403127 Tweet 8 0 1,73205081 0 0,57403127 Tweet 9 0 0,57403127 Tweet 10 0,57403127 0 0,57403127 Tweet 11 0 1,78885438 Tweet 12 0 0,57403127 Tweet 13 0 0,57403127 1,7528093 Tweet 14 0 0,57403127 Tweet 15 0 0,57403127 Variance 0,42767986 0,38447489 0,22808057 0,23457084 0,2355331 Tabel 3.16 menunjukkan hasil hitung variance pada setiap kolom data. Nilai variance pada kolom data menunjukkan nilai variance setiap term dalam dokumen. 2. Pilih kolom data dengan nilai variance terbesar. Tabel 3.17 Pilih Kolom Data dengan Variance Terbesar kata sayang dengki sedih gembira Seram Tweet 1 1,14806254 Tweet 2 1,7220938 Tweet 3 1,78885438 Tweet 4 0 0,57403127 Tweet 5 0 1,78885438 Tweet 6 1,7220938 0 0,57403127 Tweet 7 0 0,57403127 Tweet 8 0 1,73205081 0 0,57403127 Tweet 9 0 0,57403127 Tweet 10 0,57403127 0 0,57403127 Tweet 11 0 1,78885438 Tweet 12 0 0,57403127 Tweet 13 0 0,57403127 1,7528093 Tweet 14 0 0,57403127 Tweet 15 0 0,57403127 63 kata sayang dengki sedih gembira Seram Variance 0,42767986 0,38447489 0,22808057 0,23457084 0,2355331 Tabel 3.17 menunjukkan kolom data yang memiliki nilai variance terbesar. Nilai variance terbesar dimiliki oleh kata term cinta yaitu 0,42767986. 3. Sort data berdasarkan nilai variance pada kolom terpilih kolom dengan variance terbesar. Tabel 3.18 Sort Seluruh Dokumen kata sayang dengki sedih gembira seram Tweet 3 1,78885438 Tweet 2 1,7220938 Tweet 1 1,14806254 Tweet 10 0,57403127 0 0,57403127 Tweet 4 0 0,57403127 Tweet 5 0 1,78885438 Tweet 6 1,7220938 0 0,57403127 Tweet 7 0 0,57403127 Tweet 8 0 1,73205081 0 0,57403127 Tweet 9 0 0,57403127 Tweet 11 0 1,78885438 Tweet 12 0 0,57403127 Tweet 13 0 0,57403127 1,7528093 Tweet 14 0 0,57403127 Tweet 15 0 0,57403127 Tabel 3.18 menunjukkan hasil sort data berdasarkan kolom terpilih. Proses sort akan mengubah susunan atau urutan data. Pada tabel di atas, urutan data tweet telah berubah. Tweet 1 bertukar posisi dengan tweet 3 dan tweet 10 berpindah pada urutan ke-4. 64 4. Bagi dokumen menjadi k bagian. K adalah jumlah cluster yang digunakan. Tabel 3.19 Bagi Dokumen Menjadi k Bagian k=5 Kata sayang dengki sedih gembira seram Tweet 3 1,78885438 Tweet 2 1,7220938 Tweet 1 1,14806254 Tweet 10 0,57403127 0 0,57403127 Tweet 4 0 0,57403127 Tweet 5 0 1,78885438 Tweet 6 1,7220938 0 0,57403127 Tweet 7 0 0,57403127 Tweet 8 0 1,73205081 0 0,57403127 Tweet 9 0 0,57403127 Tweet 11 0 1,78885438 Tweet 12 0 0,57403127 Tweet 13 0 0,57403127 1,7528093 Tweet 14 0 0,57403127 Tweet 15 0 0,57403127 Tabel 3.19 menunjukkan hasil pembagian dokumen menjadi k bagian. Pada penelitian ini, jumlah cluster yang dipakai adalah lima, maka dokumen dibagi menjadi lima bagian sama besar. Setiap bagian ditunjukkan pada tabel dengan warna yang berbeda. Sebagai contoh, tweet 1, tweet 2, dan tweet 3 berada pada kelompok yang sama. 5. Pilih median pada setiap bagian sebagai centroid awal. Tabel 3.20 Pilih Median Tiap Bagian Sebagai Centroid Awal kata sayang dengki sedih gembira seram Tweet 3 1,78885438 Tweet 2 1,7220938 Tweet 1 1,14806254 65 kata sayang dengki sedih gembira seram Tweet 10 0,57403127 0 0,57403127 Tweet 4 0 0,57403127 Tweet 5 0 1,78885438 Tweet 6 1,7220938 0 0,57403127 Tweet 7 0 0,57403127 Tweet 8 0 1,73205081 0 0,57403127 Tweet 9 0 0,57403127 Tweet 11 0 1,78885438 Tweet 12 0 0,57403127 Tweet 13 0 0,57403127 1,7528093 Tweet 14 0 0,57403127 Tweet 15 0 0,57403127 Tabel 3.20 menunjukkan hasil pemilihan median pada setiap bagian dokumen. Pada penelitian ini, jumlah cluster yang dipakai adalah lima, maka centroid terpilih juga berjumlah lima. Setiap centroid terpilih ditunjukkan pada tabel dengan warna yang berbeda. Centroid awal yang terpilih yaitu tweet 2, tweet 4, tweet 7, tweet 11, dan tweet 14.

3.3.4.2 Langkah K-Means Clustering

Langkah-langkah algoritma K-Means Clustering adalah sebagai berikut: 1. Initialization: pilih k vector data sebagai inisialisasi pusat cluster. Tabel 3.21 Centroid Awal kata sayang dengki sedih gembira seram C1 1,7220938 C2 0 0,57403127 C3 0 0,57403127 C4 0 1,78885438 66 kata sayang dengki sedih gembira seram C5 0 0,57403127 Tabel 3.21 menunjukkan centroid awal yang didapat melalui tahap variance initialization. Pada penelitian ini, jumlah cluster yang dipakai adalah lima, maka centroid terpilih juga berjumlah lima. Masing-masing centroid diberi identitas sebagai C1, C2, C3, C4, dan C5. 2. Nearest-neighbor search: untuk setiap vector data, temukan pusat cluster terdekat, dan masukkan data pada cluster terdekat. Tabel 3.22 K-Means Clustering C1 C2 C3 C4 C5 Centroid terdekat Tweet 1 1,0 0,0 0,0 0,0 0,0 C1 Tweet 2 1,0 0,0 0,0 0,0 0,0 C1 Tweet 3 1,0 0,0 0,0 0,0 0,0 C1 Tweet 4 0,0 1,0 0,0 0,0 0,0 C2 Tweet 5 0,0 1,0 0,0 0,0 0,0 C2 Tweet 6 0,0 0.94868 0,0 0,0 0,31622 C2 Tweet 7 0,0 0,0 1,0 0,0 0,0 C3 Tweet 8 0,0 0,0 0.94922 0,0 0.31459 C3 Tweet 9 0,0 0,0 1,0 0,0 0,0 C3 Tweet 10 0.70710 0.0 0.0 0.70710 0,0 C1 Tweet 11 0,0 0,0 0,0 1,0 0,0 C4 Tweet 12 0,0 0,0 0,0 1,0 0,0 C4 Tweet 13 0,0 0,0 0,31122 0,0 0.95033 C5 Tweet 14 0,0 0,0 0,0 0,0 1,0 C5 Tweet 15 0,0 0,0 0,0 0,0 1,0 C5 Tabel 3.22 menunjukkan hasil hitung kedekatan setiap data tweet dengan centroid. Kedekatan data tweet dengan centroid dihitung menggunakan cosine similarity. Jika nilai cosine similarity adalah 1 67 atau mendekati 1, data tweet tersebut cenderung mirip dengan centroid. Sebaliknya, jika nilai cosine similarity adalah 0 atau mendekati 0, data tweet tersebut cenderung tidak mirip dengan centroid. Tabel 3.23 Hasil Clustering Nama Cluster Anggota Cluster Cluster 1 1,2,3,10 Cluster 2 4,5,6 Cluster 3 7,8,9 Cluster 4 11,12 Cluster 5 13,14,15 Tabel 3.23 menunjukkan contoh hasil clustering berupa penempatan setiap data tweet pada cluster terdekat. Sebagai contoh, cluster 1 memiliki empat anggota yaitu tweet 1, tweet 2, tweet 3, dan tweet 10. 3. Mean update: update pusat cluster menggunakan rata-rata mean vector yang tergabung dalam setiap cluster. Tabel 3.24 Update Centroid kata cinta marah sedih senang takut C1 1,3082605 0 0,14350782 C2 0 1,36165982 0 0,19134376 C3 0 0,96003778 0 0,19134376 C4 0 1,18144282 C5 0 0,19134376 0 0,96695728 Tabel 3.24 menunjukkan contoh hasil update centroid. Centroid baru merupakan rata-rata mean dari vector anggota cluster pada 68 iterasi sebelumnya. Sebagai contoh, C1 baru merupakan hasil rata-rata vector tweet 1, tweet 2, tweet 3, dan tweet 10. 4. Stopping rule: ulangi langkah 2 dan 3 sampai tidak ada perubahan nilai rata-rata mean.

3.3.5 Hitung Akurasi

Hasil clustering akan melalui tahap uji akurasi. Pengujian akurasi menggunakan confusion matrix untuk mengukur tingkat keberhasilan sistem. Agar pengujian confusion matrix dapat dilakukan, diperlukan label aktual pada setiap data. Label aktual tersebut akan dibandingkan dengan label hasil prediksi sistem. Jumlah kecocokan label aktual dan label prediksi berpengaruh pada tingkat akurasi sistem. Tabel 3.25 Perbandingan Cluster Hasil Prediksi dan Label Aktual Prediksi Aktual Tweet 1 1 1 Tweet 2 1 1 Tweet 3 1 1 Tweet 4 2 2 Tweet 5 2 2 Tweet 6 2 2 Tweet 7 3 3 Tweet 8 3 3 Tweet 9 3 3 Tweet 10 1 4 Tweet 11 4 4 Tweet 12 4 4 Tweet 13 5 5 Tweet 14 5 5 Tweet 15 5 5 69 Tabel 3.25 menunjukkan contoh perbandingan label aktual dan label prediksi setiap data tweet. Data tweet pada contoh di atas berjumlah 15. Pada label aktual, tweet 1-3 masuk cluster 1, tweet 4-6 masuk cluster 2, tweet 7-9 masuk cluster 3, tweet 10-12 masuk cluster 4, dan tweet 13-15 masuk cluster 5. Pada label prediksi, terdapat satu perbedaan yaitu tweet 10 yang masuk ke cluster 1. Perbandingan label aktual dan prediksi direpresentasikan sebagai sebuah matriks bernama confusion matrix. Tabel 3.26 merupakan confusion matrix yang merepresentasikan perbandingan label aktual dan prediksi pada tabel 3.25. Tabel 3.26 Confusion Matrix Prediksi 1 2 3 4 5 Aktual 1 3 2 3 3 3 4 1 2 5 3 Tabel 3.26 menunjukkan jumlah data yang berhasil maupun tidak berhasil masuk pada cluster sesuai label aktual. Jumlah data yang dikenali sesuai dengan label aktual ditunjukkan oleh angka-angka yang berada pada diagonal matriks. Sedangkan jumlah data yang dikenali tidak sesuai dengan label aktual ditunjukkan oleh angka-angka yang berada di luar diagonal matriks. 70 Pada contoh confusion matrix di atas, data yang tepat dikenali berjumlah 14 dari total 15 data, sehingga akurasi yang didapat yaitu: � � � = × = ,

3.4 Kebutuhan Hardware dan Software

Sistem ini mempunyai kebutuhan hardware dan software untuk menjalankan sistem.

1. Kebutuhan Hardware

Sistem ini membutuhkan hardware dengan spesifikasi minimal sebagai berikut: 1. Processor : Intel Core 2 Duo CPU T5800 2GHz 2. Memory : 3 GB DDR2 3. Hard drive : 250 GB

2. Kebutuhan Software

Sistem ini membutuhkan software sebagai berikut: 1. Microsoft Windows 8.1 2. Netbeans IDE 8.0 71

3.5 Desain Pengujian

Pengujian yang dilakukan pada penelitian ini menggunakan tiga macam pendekatan yaitu pengujian tanpa menggunakan normalisasi, pengujian menggunakan normalisasi z-score, dan pengujian menggunakan normalisasi min-max. Perbedaan perlakuan pada saat pengujian dilakukan untuk menemukan perlakuan yang paling optimal untuk mendapatkan hasil akurasi tertinggi. Pengujian Tanpa Normalisasi Pengujian dilakukan tanpa menggunakan tahap normalisasi data. Nilai parameter yang diubah-ubah pada pengujian ini yaitu batas minimal kemunculan kata pada keseluruhan dokumen. . Tabel 3.27 Template Tabel Pengujian Tanpa Normalisasi Tanpa Normalisasi No. Minimal kemunculan kata Akurasi 1 … … 2 … … 3 … … Pengujian Menggunakan Normalisasi Z-Score Pengujian dilakukan menggunakan normalisasi z-score. Nilai parameter yang diubah-ubah pada pengujian ini yaitu batas minimal kemunculan kata pada keseluruhan dokumen dan batas threshold nilai bobot yang dinormalisasi. 72 Tabel 3.28 Template Tabel Pengujian Menggunakan Normalisasi Z-Score Normalisasi Z-Score No. Z-Score Threshold Minimal kemunculan kata Akurasi 1 … … … 2 … … 3 … … 4 … … 5 … … 6 … … 7 … … 8 … … Pengujian Menggunakan Normalisasi Min-Max Pengujian dilakukan menggunakan normalisasi z-score. Nilai parameter yang diubah-ubah pada pengujian ini yaitu batas minimal kemunculan kata pada keseluruhan dokumen dan batas threshold nilai bobot yang dinormalisasi. Tabel 3.29 Template Tabel Pengujian Menggunakan Normalisasi Min-Max Normalisasi Min-Max No. Min-Max Threshold Minimal kemunculan kata Akurasi 1 … … … 2 … … 3 … … 4 … … 5 … … 6 … … 7 … … 8 … … 73

4. BAB IV

IMPLEMENTASI DAN ANALISIS HASIL Bab ini berisi implementasi dari metodologi yang dibahas pada bab sebelumnya serta analisis hasil.

4.1 Analisis Hasil

Percobaan pada penelitian ini dilakukan dengan tiga macam perlakuan yaitu tanpa normalisasi, menggunakan normalisasi z-score, dan menggunakan normalisasi min-max.

1. Pengujian Tanpa Normalisasi

Tabel 4.1 Tabel Pengujian Tanpa Normalisasi Tanpa Normalisasi No. Minimal kemunculan kata Akurasi 1 1 57,7 2 2 64,9 3 3 69,4 4 4 68,6 5 5 68,4 6 6 67,7 7 7 67,4 8 8 67,1 9 9 67 10 10 65,4 Tabel 4.1 menunjukkan hasil percobaan tanpa menggunakan tahap normalisasi. Percobaan dilakukan dengan mengubah-ubah nilai minimal kemunculan kata. Minimal kemunculan kata = 3 berarti kata yang digunakan hanyalah kata yang mempunyai jumlah kemunculan 74 lebih dari sama dengan 3. Akurasi tertinggi ditandai dengan warna kuning yaitu sebesar 69,4. Perbandingan akurasi setiap percobaan dapat dilihat lebih jelas pada grafik di bawah ini. Lihat Gambar 4.1. Gambar 4.1 Hasil Akurasi Tanpa Normalisasi 2. Pengujian Menggunakan Normalisasi Z-Score Tabel 4.2 Tabel Pengujian Menggunakan Normalisasi Z-Score Normalisasi Z-Score No. Z-Score Threshold Minimal kemunculan kata Akurasi 1 1 1 47,5 2 2 49,7 3 3 58,4 4 4 63,8 5 5 61,7 6 6 63,8 7 7 60,5 8 8 61,6 10 20 30 40 50 60 70 80 90 100 1 2 3 4 5 6 7 8 9 10 ak u ras i minimal kemunculan kata Grafik Percobaan Tanpa Normalisasi 75 Normalisasi Z-Score No. Z-Score Threshold Minimal kemunculan kata Akurasi 9 9 61,5 10 10 59,8 11 2 1 44 12 2 46,4 13 3 51,3 14 4 35,5 15 5 53,7 16 6 53,8 17 7 54,8 18 8 55,1 19 9 54,9 20 10 52,9 21 3 1 33,5 22 2 42,8 23 3 57,4 24 4 54,9 25 5 56,2 26 6 55,5 27 7 58,9 28 8 52 29 9 54 30 10 53,1 31 4 1 40,2 32 2 35,6 33 3 44,4 34 4 51 35 5 58,3 36 6 52,2 37 7 51,8 38 8 57,9 39 9 54,1 40 10 49,5 41 5 1 49 42 2 64,2 43 3 58,4 44 4 58,9 45 5 60,3 46 6 62