LAMPIRAN Lampiran 1 Contoh preprocessing
No Tweet Preprocessing
1 100 hari kerja kabinet indonesia maju #MataNajwa
hari kerja kabinet indonesia maju
2 Gelandang bertahan terbaik, Versi
Kabinet Indonesia Maju
gelandang tahan versi
kabinet indonesia maju 3 Menanti gebrakan 100 hari kerja kabinet
Indonesia Maju…
gebrak hari kerja kabinet indonesia maju
4 ICW: 8 Menteri Kabinet Indonesia Maju
tak Patuh LHKPN
icw menteri kabinet
indonesia maju patuh lhkpn
5 saya usul bubarkan Kabinet Indonesia
Maju
usul bubar kabinet indonesia maju
Pada tabel diatas terdapat 5 data yang akan digunakan untuk training. Ke 5 data tersebut telah dilakukan proses preprocessing untuk mengecilkan huruf, menghilangkan karakter, serta penghapusan kata yang tidak penting. Setelah itu masuk ke proses pembobotan dengan TF-IDF.
Lampiran 2 Contoh TF-IDF
Frekuensi kemunculan kata dalam kalimat
1. Perhitungan TF (frekuensi kata dalam kalimat / jumlah kata dalam kalimat)
Data 1 Data 2 Data 3 Data 4 Data 5
Hari 0.20 gelandang 0.16 gebrak 0.16 Icw 0.14 usul 0.20
Kerja 0.20 tahan 0.16 hari 0.16 Menteri 0.14 burar 0.20
Kabinet 0.20 versi 0.16 kerja 0.16 Kabinet 0.14 kabinet 0.20
Indonesia 0.20 kabinet 0.16 kabinet 0.16 indonesia 0.14 indonesia 0.20
Maju 0.20 indonesia 0.16 indonesia 0.16 Maju 0.14 maju 0.20
maju 0.16 maju 0.16 Patuh 0.14
Lhkpn 0.14
Contoh pada perhitungan tf ini pada data 1 dan data 3 didapatkan hasil 0.20 karena kemunculan kata yang hanya terjadi satu kali dimana hasil tersebut didapatkan dari jumlah frekuensi kata pada kalimat yaitu 1 dibagi dengan jumlah kata pada kalimat yang berjumlah 5. Begitu pula dengan nilai tf pada data 2 dan 3 dengan hasil 0.16
dengan masing-masing kemunculan kata hanya 1 kali dengan jumlah 6 kata dalam satu data.
2. Perhitungan IDF (log (jumlah data training (tweet) / jumlah data yang mengandung kata ))
Frekuensi kemunculan kata
No Kata Frekuensi IDF
(𝐷/𝑑𝑓𝑗) log(𝐷/𝑑𝑓𝑗) 1 Hari 2 5 / 2 = 2.5 0.397940009 2 kerja 2 5 / 2 = 2.5 0.397940009 3 kabinet 5 5 / 5 = 1 0 4 indonesia 5 5 / 5= 1 0 5 Maju 5 5 / 5 = 1 0 6 gelandang 1 5 / 1 = 5 0.698970004 7 tahan 1 5 / 1 = 5 0.698970004 8 versi 1 5 / 1 = 5 0.698970004 9 gebrak 1 5 / 1 = 5 0.698970004 10 Icw 1 5 / 1 = 5 0.698970004 11 menteri 1 5 / 1 = 5 0.698970004 12 patuh 1 5 / 1 = 5 0.698970004 13 lhkpn 1 5 / 1 = 5 0.698970004 14 Usul 1 5 / 1 = 5 0.698970004 15 Bubar 1 5 / 1 = 5 0.698970004
Pada perhitungan idf ini terdapat 3 variasi nilai frekuensi yaitu kata yang memiliki 1 frekuensi dengan nilai idf 0.6989700043 dan kata yang memiliki 2 frekuensi dengan nilai idf 0.3979400087 dan juga kata yang memiliki 5 frekuensi kemunculan dengan nilai idf 0. Dimana nilai itu didapat dari jumlah data yang di training dibagi dengan jumlah frekuensi kata yang muncul dari semua data.
3. Perhitungan TF-IDF
Untuk mendapatkan nilai tf-idf yaitu dengan cara mengkalikan nilai tf dengan idf. Contohnya pada kata hari di kalimat 1 memiliki nilai tf-idf 0.079588002. dimana nilai tf pada kata kata “hari” bernilai 0.20 dan nilai idf kata “hari” memiliki nilai 0.397940009.
Nilai TF – IDF
Data 1 Data 2 Data 3 Data 4 Data 5
W1 hari 0.079588002 0 0.066323335 0 0 W2 Kerja 0.079588002 0 0.066323335 0 0 W3 Kabinet 0 0 0 0 0 W4 indonesia 0 0 0 0 0 W5 Maju 0 0 0 0 0 W6 gelandang 0 0.116495001 0 0 0 W7 Tahan 0 0.116495001 0 0 0 W8 Versi 0 0.116495001 0 0 0 W9 gebrak 0 0 0.116495001 0 0 W10 Icw 0 0 0 0.142857143 0 W11 menteri 0 0 0 0.142857143 0 W12 patuh 0 0 0 0.142857143 0 W13 lhkpn 0 0 0 0.142857143 0 W14 usul 0 0 0 0 0.139794001 W15 bubar 0 0 0 0 0.139794001
Lampiran 3 Perhitungan K-Means
Untuk training dengan metode k-means dibutuhkan beberapa data untuk menjalakan prosesnya, dibawah ini terdaat 5 tweet yang telah melalui proses preprocessing dan juga pembobotan dengan tf-idf. Dalam kolom tersebut jika terdapat angka 1 maka pada data tersebut terdapat kata (w1 = dukung), jika 0 maka tidak terdapat kata yang dimaksud.
W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 W14 W15 DATA 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 DATA 2 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 DATA 3 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 DATA 4 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 DATA 5 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1
Pada kolom dibawah ini merupakan nilai tf-idf dari setiap kata yang dimiliki oleh data.
W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 W14 W15 D1 0.07959 0.06632 0 0 0 0 0 0 0 0 0 0 0 0 0 D2 0 0 0 0 0 0.11650 0.11650 0.11650 0 0 0 0 0 0 0 D3 0.06632 0.06632 0 0 0 0 0 0 0.11650 0 0 0 0 0 0 D4 0 0 0 0 0 0 0 0 0 0.14286 0.14286 0.14286 0.14286 0 0 D 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13979 0.13979
Langkah 1 : Tentukan Centroid Awal *Iterasi ke-0
W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 W14 W15
K1 0.07959 0.06632 0 0 0 0 0 0 0 0 0 0 0 0 0
K2 0 0 0 0 0 0.116495001 0.116495001 0.116495001 0 0 0 0 0 0 0
K3 0 0 0 0 0 0 0 0 0 0 0 0 0 0.139794001 0.139794001
Langkah 2 : Hitung Jarak Tiap data ke centroid
K1 K2 K3 KLASTER D1 0 0.495396339 0.425499338 1 D1 D2 D3 D4 D5 SSE D2 0.495396339 0 0.629073004 2 K1 0 0.0168376 0.51457654 0.53141411488 D3 0.129759668 0.598626672 0.528729672 1 K2 0 0 D4 0.717339908 0.920913574 0.851016573 1 K3 0 0 D5 0.425499338 0.629073004 0 3 SSE 0.53141411488
Untuk mendapatkan hasil cluster dari tiap data, dibutuhkan perhitungan jarak dengan menggunakan rumus jarak manhattan 𝐷(𝑥2 , 𝑥1) = ‖𝑥2− 𝑥1‖1 = ∑𝑝𝑗=1|𝑥2𝑗− 𝑥1𝑗|. Contohnya pada data ke 4 termasuk dalam kelaster 1 karena nilai jarak minimumnya terdapat pada K1.
(D4 , K1) = |0 − 0.07959| + |0 − 0.06632| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0 − 0| + |0 − 0| = 0.717339908 (D4 , K2) = |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0.116495| + |0 − 0.116495| + |0 − 0.116495| + |0 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0 − 0| + |0 − 0| = 0.920913574 (D4 , K3) = |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0.142857 − 0| + |0 − 0.139794| + |0 − 0.139794| = 0.851016573
Langkah 3 : Hitung Nilai Centroid Baru
W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 W14 W15
K1 0.048637112 0.044215557 0 0 0 0 0 0 0.038831667 0.047619048 0.047619048 0.047619048 0.047619048 0 0
K2 0 0 0 0 0 0.116495001 0.116495001 0 0 0 0 0 0 0 0
K3 0 0 0 0 0 0 0 0 0 0 0 0 0 0.139794001 0.139794001
Untuk mendapatkan nilai centroid baru yaitu dengan menghitung nilai rata-rata dari tiap klaster. Contoh pada klaster 1 di w1 memiliki nilai 0.053058668 didapat dari rata-rata w1 pada data 1, 3 dan 4.
𝐶𝑤1 =
0.07959 + 0.06632 + 0 3
= 0.048637112
Langkah 4 : Hitung iterasi ke-1 hingga iterasi ke-n sampai hasil ditemukan *Iterasi ke-1 W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 W14 W15 D1 0.07959 0.06632 0 0 0 0 0 0 0 0 0 0 0 0 0 D2 0 0 0 0 0 0.11650 0.11650 0.11650 0 0 0 0 0 0 0 D3 0.06632 0.06632 0 0 0 0 0 0 0.11650 0 0 0 0 0 0 D4 0 0 0 0 0 0 0 0 0 0.14286 0.14286 0.14286 0.14286 0 0 D 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13979 0.13979
Hitung jarak dengan centroid baru
K1 K2 K3 KLASTER K BARU
D1 0.282366525 0.495396339 0.425499338 1 1 D1 D2 D3 D4 D5
D3 0.307933525 0.598626672 0.528729672 1 2 K2 0.000000 0.35835389 0.35835389297
D4 0.512636717 0.920913574 0.851016573 1 1 K3 0 0
D5 0.601748528 0.629073004 0 3 3 SSE 0.700881151
Yang terakhir adalah menghitung sse, pada iterasi ke-0 didapat sse dengan nilai 0.53141411488. dan Iterasi ke-1 dengan0.700881151. Dimana nilai tersebut didapat dari penjumlahan nilai rata-rata klaster yang dipangkatkan. Berikut adalah contoh perhitungan nilai sse pada iterai ke-1 : D1 - K1 = (|0.07959 − 0.048637112| + |0.06632 − 0.044215557| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0.038831667| + |0 − 0.047619048| + |0 − 0.047619048| + |0 − 0.047619048| + |0 − 0.047619048| + |0 − 0| + |0 − 0|)^2 = 0.07973085 D4 - K1 = |0 − 0.048637112| + |0 − 0.044215557| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0.038831667| + |0.14286 − 0.047619048| + |0.14286 − 0.047619048| + |0.14286 − 0.047619048| + |0.14286 − 0.047619048| + |0 − 0| + |0 − 0| = 0.26279640 SSE K1 = 0.07973085 + 0 + 0 + 0.26279640 + 0 = 0.34252725771
Untuk klaster 1 karena data 2, 3 dan 5 tidak termasuk kedalam klaster tersebut maka nilainya adalah 0.
D3 - K2 = (|0.6632 − 0| + |0.6632 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0.116495001| + |0 − 0.116495001| + |0 − 0| + |0.11650 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0| + |0 − 0|)^2
= 0.35835389297
= 0.35835389297
Untuk klaster 2 karena data 1, 4 dan 5 tidak termasuk kedalam klaster tersebut dan data 2 merupakananggotanya sendiri maka nilainya adalah 0.
SSE K3 = 0
Untuk sse klaster 3 bernilai 0 karena klaster tersebut hanya beranggotakan dirinya sendiri.
Training dari keseluruhan iterasi berhenti di iterasi ke-0 karena nilai sse iterasi ke-0 lebih kecil dibandingkan dengan sse pada iterasi ke-1, dimana sse iterasi ke-0 bernilai 0.53141411488.