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