Klasifikasi Emosi Pada Tekas Bahasa Indonesia Menggunakan Metode K-Nearest Neighbor Dengan Pembobotan Widf

BAB 1
PENDAHULUAN

1.1 Latar Belakang Masalah
Bahasa dalam sebuah tulisan merupakan alat komunikasi untuk menerjemahkan
sebuah pikiran yang ingin diungkapkan oleh seorang penulis. Dalam sebuah tulisan
seorang penulis tidak hanya menyampaikan sebuah keterangan dari suatu
informasi, tetapi juga berisi informasi tentang perilaku manusia termasuk emosi [1].
Emosi yang tersembunyi dibalik tulisan sangat sulit untuk ditafsirkan oleh pembaca
dikarenakan pengaruh oleh sudut pandang yang berbeda antara penulis dan
pembaca [2]. Maka dari itu untuk memudahkan pembaca mengetahui emosi dari
sebuah tulisan bisa menggunakan cara klasifikasi.
Banyak metode yang bisa digunakan dalam klasifikasi teks diantaranya yaitu
metode naive bayes, k-nearest neighbor (KNN), support vector machine (SVM)
decision tree, neural network dan sebagainya. Masing – masing metode mempunyai
kelebihan dan kekurangan masing – masing dan tingkat akurasi yang berbeda-beda.
Seperti pada penelitian yang berjudul “Review on Comporation Between Text
Classification Algorithms” dari hasil perbandingan algoritma naive bayes, knearest neighbor (KNN), dan support vector machine (SVM), diketahui bahwa
algoritma K-nearest neighbor (KNN) memiliki kinerja yang bagus dengan nilai
akurasi sampai 86% [3].
Pada penelitian yang sudah dilakukan sebelumnya dengan judul “Klasifikasi

Emosi Untuk Teks Berbahasa Indonesia Dengan Menggunakan K-Nearest
Neighbor” dijelaskan tahapan untuk mengenali emosi pada lirik lagu dilakukan
beberapa proses. Adapun tahapan yang dilakukan sebelum proses klasifikasi
dengan k-nearest neighbor (KNN) adalah tahapan preprocessing dan tahapan
pembobotan dengan menggunakan metode TF.IDF, hasil akurasi yang didapatkan
adalah sekitar 50% – 60% [4]. Hasil tersebut dipengaruhi oleh metode pembobotan
yang digunakan, seperti dalam penelitian “Text Categorization Based on Weighted
Inverse Document Frequency” menjelaskan pada pembobotan term dengan metode

1

2

TF.IDF mempunyai kelemahan yaitu semua text yang berisi term tertentu
diperlakukan sama, sehingga IDF tidak memperhitungkan jumlah kemunculan
suatu term pada suatu dokumen. Sehingga untuk metode pembobotan term yang
akan digunakan dalam penelitian ini adalah metode WIDF (Weighted Inverse
Document Frequency), metode ini memiliki kinerja yang lebih baik dibanding
dengan TF.IDF dengan memberikan peningkatan akurasi pada IDF sebesar 7.4%
Maksimum [5].

Berdasarkan gambaran yang telah dijelaskan, dalam penelitian ini digunakan
metode K-nearest neighbor (KNN) dengan metode pembobotan term WIDF untuk
mengklasifikasikan emosi pada teks bahasa Indonesia dan mengetahui besar
akurasi yang didapatkan.
1.2 Perumusan Masalah
Berdasarkan penjelasan dari latar belakang masalah, maka rumusan masalah
yang dapat teridentifikasi adalah bagaimana K-nearest neighbor dengan
pembobotan WIDF dalam mengklasifikasikan emosi pada sebuah teks bahasa
Indonesia dan mengetahui seberapa besar akurasi yang didapatkan.
1.3 Maksud dan Tujuan
Berdasarkan permasalahan yang akan diteliti, maka maksud penelitian ini
adalah mengklasifikasikan emosi pada teks bahasa Indonesia menggunakan metode
K-nearest neighbor dengan pembobotan WIDF
Tujuan yang ingin dicapai dalam simulasi pengenalan emosi pada teks bahasa
Indonesia adalah :
1. Untuk mengklasifikasikan emosi pada teks bahasa Indonesia
2. Untuk mengetahui besar akurasi yang didapatkan dari pengklasifikasian
emosi pada teks bahasa Indonesia menggunakan metode K-nearest
neighbor dengan pembobotan WIDF.
1.4 Batasan Masalah

Ada pun batasan masalah dalam penelitian ini adalah sebagai berikut :
1. Data latih digunakan adalah dari ISEAR (International Survey On Emotion
Antecedents And Reaction)
2. Data uji yang digunakan adalah lirik lagu dengan berformat (.txt)

3

3. Kategori emosi senang, takut, marah, sedih dan bersalah yang disesuaikan
dengan penelitian sebelumnya.
1.5 Metodologi Penelitian
Metodologi penelitian merupakan sekumpulan peraturan, kegiatan dan prosedur
yang digunakan oleh peneliti untuk memecahkan suatu masalah agar lebih efisien.
Metode penelitian yang digunakan adalah metode deskriptif. Metode deskriptif
bertujuan untuk mendapatkan gambaran yang jelas tentang hal-hal yang diperlukan,
melalui tahapan sebagai berikut:
1.5.1 Metode Pengumpulan Data
Dalam tahapan ini pengumpulan data yang dilakukan adalah :
a. Studi Literatur
Pada tahap ini akan dilakukan pengumpulan informasi yang berhubungan
dengan Tugas Akhir ini khususnya pada metode yang diterapkan K-Nearset

Neighbor (KNN) melalui sumber-sumber seperti jurnal penelitian, buku-buku
teori, dan sumber-sumber lain.
b. Observasi
Observasi merupakan metode pengumpulan data dengan cara mengamati
objek yang berkaitan dengan penelitian secara langsung terhadap
permasalahan yang diambil. Di mana observasi yang dilakukan adalah dengan
menggunakan data dari ISEAR (International Survey On Emotion Antecedents
And Reaction) untuk data latihnya dan data uji mengggunakan lirik lagu yang
akan diteliti.
1.5.2 Metode Pembangunan Perangkat Lunak
Metode pembangunan perangkat lunak merupakan langkah – langkah yang
akan dilaksanakan dalam membangun simulasi untuk mengklasifikasikan emosi
pada teks bahasa Indonesia dengan pembobotan WIDF. Berikut tahapan metode
yang akan dilakukan dalam penelitian ini :

4

1. Analisis Metode
Dalam tahapan ini dilakukan untuk mempelajari konsep dan analisi
mengenai klasifikasi teks, metode K-Nearest Neighbor, dan pembobotan

WIDF yang akan diimplementasikan dalam sistem
2. Perancangan Desain
Pada tahap ini dilakukan perancangan desain dari simulasi klasifikasi
emosi pada teks bahasa indonesia yang akan dibuat dengan analisis yang
telah dilakukan pada tahap sebelumnya.
3. Pembangunan simulasi
Pada tahap ini dilakukan proses implementasi metode K-Nearest
Neighbor dengan pembobotan WIDF ke dalam simulasi yang akan
dibangun sesuai dengan desain yang telah dibuat pada tahap sebelumnya.
4. Pengujian simulasi
Pada tahap ini simulasi yang telah dibangun akan diuji oleh penguji,
penguji menilai apakah simulasi yang dibangun sudah sesuai dengan tujuan
dari penelitian.
Adapun gambaran dari tahapan pembangunan perangkat lunak yang akan dilakukan
dalam penelitian ini dapat dilihat pada gambar 1.1

Pengumpulan Data

Analisis Metode


Perancangan Desain

Pembangunan Simulasi

Pengujian Simulasi

Gambar 1.1 Tahapan Pembangunan Perangkat Lunak
1.6 Sistematika Penulisan
Penulisan skripsi ini terbagi menjadi beberapa bab yang masing – masing bab
membahas tentang :
BAB 1 PENDAHULUAN
Bab ini menjelaskan tentang latar belakang masalah, perumusan masalah, maksud
dan tujuan, menentukan batasan masalah, serta menjelaskan mengenai metode
penelitian dan sistematika penulisan.

5

BAB 2 LANDASAN TEORI
Di dalam bab ini membahas tentang konsep dasar dan teori-teori yang berkaitan
dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses

analisis permasalahan serta tinjauan terhadap penelitian.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini menjelaskan analisis dan perancangan sistem. Analisis yang dilakukan
berupa analisis masalah, analisis penyelesaian masalah, analisis data masukan,
analisis kebutuhan non fungsional dan analisis kebutuhan fungsional. Perancangan
yang dilakukan berupa perancangan data, perancangan antarmuka, dan
perancangan prosedural.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini menjelaskan mengenai implementasi dari hasil tahapan analisis dan
perancangan sistem yang dibangun. Serta berisi pengujian perangkat lunak seperti
pengujian black box, pengujian precision, recall.
BAB 5 KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan yang didapatkan selama penelitian yang
dilakukan, selain itu juga berisi saran untuk perbaikan dan menindaklanjuti hasil
penelitian.

6

7


BAB 2
LANDASAN TEORI
2.1 Emosi
Emosi adalah suatu perasaan yang mendorong individu untuk merespon atau
bertingkah laku terhadap stimulus, baik yang berasal dari dalam maupun dari luar
dirinya. Emosi cenderung terjadi dalam kaitannya dengan perilaku yang mengarah
(approach) atau menyingkiri (avoidance) terhadap sesuatu, dan perilaku tersebut
pada umumnya disertai adanya ekspresi kejasmanian, sehingga orang lain dapat
mengetahui bahwa seseorang sedang mengalami emosi.
Beberapa studi tentang emosi manusia telah dilakukan sehingga ada
kesepakatan tentang emosi dasar yaitu, takut digambarkan sebagai ancaman fisik
atau sosial bagi diri sendiri, kemarahan sebagai ketidakpuasan atau frustrasi dari
peran atau tujuan yang dicapai oleh orang lain, jijik saat yang jarak, kelalaian, atau
penolakan dari ide untuk diri sendiri, kesedihan sebagai kegagalan atau penderitaan
pada peran dan tujuan, kebahagiaan atau sukacita sebagai keberhasilan atau gerakan
untuk prestasi peran berharga [6].
2.2 ISEAR (International Survey On Emotion Antecedents And Reaction)
ISEAR adalah sebuah data tentang emosi yang selama bertahun-tahun dimulai
pada tahun 1990-an, sebuah kelompok besar psikolog di seluruh dunia
mengumpulkan data dalam proyek ISEAR, dipimpin oleh Klaus R. Scherer dan

Harald Wallbott. Mahasiswa responden, baik psikolog dan non-psikolog, diminta
untuk melaporkan situasi di mana mereka mengalami semua 7 emosi utama
(senang, takut, marah, sedih, jijik, malu, dan rasa bersalah). Dalam setiap kasus,
pertanyaan-pertanyaan

meliputi cara mereka telah

mengenali

situasi dan

bagaimana mereka bereaksi. Data akhir ini memuat laporan tentang tujuh emosi
masing-masing sekitar 3000 responden di 37 negara di 5 benua [7].
Dalam penelitian ini data latih yang digunakan diambil dari ISEAR yang
berbahasa inggris kemudian diterjemahkan kedalam bahasa Indonesia tanpa
mengurangi maksud dari kalimat – kalimat dalam ISEAR. Data yang diambil

7

8


sebanyak 1000 data dengan banyak masing – masing emosi adalah 250 data karena
ada empat emosi yang akan diklasifikasikan.
2.3 Text Mining
Teks mining adalah salah satu bidang khusus dari data mining. Teks mining
merupakan sebuah teknologi baru yang dapat digunakan untuk menambang data
yang telah ada dalam sebuah database dengan membuat suatu data berupa teks
yang tidak terstruktur menjadi data yang dapat dianalisa. Text mining juga dapat
didefinisikan sebagai proses mendapatkan informasi secara intensif dimana
pengguna berinteraksi dengan koleksi-koleksi dokumen menggunakan seperangkat
tools analisis [8].
Secara umum, proses-proses pada text mining adalah mengadopsi dari proses
data mining. Oleh karena itu, text mining dan data mining mempunyai banyak
kesamaan arsitekturnya. Proses-proses yang ada pada text mining juga hampir sama
dengan data mining. Proses-proses utama pada text mining diantaranya pemrosesan
awal (text preprocessing), penemuan pola (pattern discovery), transformasi teks
(text transformation), dan pemilihan fitur (feature selection).
2.4 Preprocessing
Text preprocessing adalah tahapan untuk mempersiapkan teks menjadi data
yang akan diolah di tahapan berikutnya. Inputan awal pada proses ini adalah berupa

dokumen teks. Teks yang akan dilakukan proses text mining pada umumnya
memiliki beberapa karakteristik, diantaranya adalah memiliki dimensi yang tinggi,
terdapat noise pada data, dan terdapat struktur teks yang tidak baik. Agar dapat
dihasilkan fitur yang baik dan mewakili data dengan baik, perlu dilakukan tahapan
preprocessing [10].
Adapun tahapan preprocessing yang akan dilakukan antara lain case folding,
tokenizing, stopword removal dan stemming.
1. Case Folding
Pada tahap ini dilakukan perubahan pada semua huruf dalam dokumen
menjadi huruf kecil dan menghilangkan karakter selain a-z, dengan tujuan untuk
menyeragamkan karakter dalam dokumen tersebut
2. Convert Negation

9

Convert Negation merupakan proses konversi kata-kata negasi yang
terdapat pada suatu kalimat, karena kata negasi mempunyai pengaruh dalam
merubah nilai emosi pada sebuah kalimat. Jika terdapat kata negasi maka akan
disatukan dengan kata setelahnya. Kata - kata negasi tersebut meliputi kata
“bukan”, “tidak”, “tak”, “tanpa” dan “jangan”.
Langkah – langkah pada tahap convert negation adalah sebagai berikut :
a. Kata yang digunakan adalah hasil dari case folding
b. Jika ditemukan lirik yang mengandung kata – kata negasi maka akan
disatukan kata negasi tersebut dengan kata setelah kata negasi tersebut.
3. Tokenizing
Tokenizing merupakan tahap pemotongan kalimat berdasarkan tiap kata
yang menyusunnya. Proses ini melakukan penguraian deskripsi yang semula
berupa kalimat-kalimat menjadi kata-kata dan menghilangkan simbol seperti
titik(.), tanda seru(!), tanda tanya (?), koma(,), spasi, emoticon.
4. Stopword removal
Tahapan ini bertujuan untuk menghilangkan kata yang dianggap tidak dapat
memberikan pengaruh dalam menentukan suatu kategori tertentu dalam suatu
dokumen. Proses ini dilakukan karena kata tersebut sering muncul hampir
disetiap dokumen sehingga dianggap tidak dapat menjadi pembeda yang baik
dalam membedakan kategori yang satu dengan kategori yang lain.
Setiap kata akan diperiksa apakah masuk dalam daftar stopword, jika sebuah
kata masuk di dalam daftar stopword maka kata tersebut tidak akan diproses
lebih lanjut dan kata tersebut akan dihilangkan. Sebaliknya apabila sebuah kata
tidak termasuk di dalam daftar stopword maka kata tersebut akan masuk
keproses berikutnya.
Untuk daftar stopword yang digunakan diambil dari websitenya budi
susanto seorang praktisi IT yang fokus terhadap software open source, semantic
web and information retrieval [11]. Banyak kata yang disimpan didatabase
stopword sebanyak 937 kata. Kata-kata yang termasuk stopword tersebut
biasanya berupa kata ganti orang, kata penghubung, pronominal penunjuk, dan
lain sebagainya.

10

5. Stemming
Stemming merupakan tahap untuk mentransformasi kata-kata yang terdapat
dalam suatu dokumen ke kata-kata akarnya (root word) dengan menggunakan
aturan-aturan tertentu. Dengan menggunakan stemming dapat mengurangi

variasi kata yang sebenarnya memiliki kata dasar yang sama. Salah satu
algoritma stemming yaitu Algoritma Nazief dan Adriani.
Algoritma stemming Nazief dan Adriani menggunakan morfologi imbuhan
sebagai berikut :
a. Inflection suffixes merupakan kumpulan akhiran (suffixes) yang tidak
merubah kata dasar. Seperti : ‘-lah’, ‘-kah’, ‘-nya’, ‘-mu’
b. Derivation suffixes (DS) merupakan kumpulan akhiran (suffixes) yang
langsung menempel pada kata dasar, seperti : ‘-i’, ‘-an’ dan ‘kan’.
c. Derivation prefixes (DP) merupakan himpunan awalan (prefixes) yang
menempel langsung pada kata dasar maupun terhadap kata yang telah
mempunyai sampai dua derivation prefixes. Seperti : ‘mem-‘ dan ‘per-‘.
2.5 Pembobotan (Term Weighting)
Term weighting merupakan tahapan untuk memberikan suatu nilai/bobot pada
term yang terdapat pada suatu dokumen yang telah berhasil diekstrak. Metode yang
akan digunakan dalam penelitian dalam pembobotan adalah pembobotan WIDF.
Metode WIDF (Weighted Inverse Document Frequency) adalah sebuah metode

pengembangan dari metode Inverse Document Frequency (IDF), IDF adalah proses
mengukur term yang jarang muncul pada corpus. Penilaiannya menggunakan
seluruh dokumen latih yang digunakan. Jika sebuah term sering muncul, maka term
tersebut tidak bisa dianggap sebagai term yang mewakili dokumen tersebut.
Sebaliknya, jika term yang jarang muncul pada corpus, maka term tersebut
dikatakan memiliki hubungan dengan dokumen. Inverse Document Frequency
merupakan perhitungan dari jumlah seluruh dokumen (D) dibagi dengan Frekuensi
Dokumen (DF) dari kata (ti), dapat dituliskan dengan persamaan sebagai berikut
[11]
IDF = log (

N
)
Dfi

(2.1)

11

Keterangan :
IDF = inverse document frequency
N

= Jumlah kalimat yang berisi term(t)

Dfi

= Jumlah kemunculan term terhadap D
Kelemahan dari metode IDF adalah semua teks yang berisi term tertentu

diperlakukan sama. Artinya, IDF tidak memperhitungkan jumlah kemunculan suatu
term pada suatu dokumen. Contohnya pada tabel 2.1 berikut, dimana d (kolom)
adalah text dan t (row) adalah term yang dicari, pertemuan antara di dan tj adalah
termfrequency dari term tj di dalam text di

Gambar 2.1 Contoh Perhitungan Kemunculan Term
Dapat dilihat dari persamaan (2.1) bahwa IDF (tx) dan IDF (ty) masing-masing
bernilai 0, karena term yang dicari muncul pada semua text. Sedangkan, distribusi
frekuensi tx dan ty terhadap d1 sampai d5 berbeda, IDF tidak dapat
mengidentifikasi perbedaannya, karena bersifat binary counting. Sehingga, tidak
dapat menentukan jumlah frekuensi dari term.
IDF mengasumsikan bahwa term berbanding terbalik dengan jumlah text yang
mengandung term tersebut. Oleh karena itu, bagian penting dari persamaan (1) di
atas adalah faktor 1/df(t). Metode WIDF menghitung factor ini dengan term
frekuensi. Sebagai contoh, 1/df(t) dari tabel 2.1 di atas menjadi
+

+

+

+

+

+ +

+

untuk semua text. Kemudian angka “1” diganti dengan frekuensi dari masingmasing term, menjadi

12

pada kasus d2. Faktor inilah yang yang disebut WIDF. Tidak seperti IDF, WIDF
dapat membedakan masing-masing text d1…d5. Sehingga, WIDF dengan term t
dalam text d dapat dituliskan sebagai persamaan (2) berikut :
���� �, � = ∑

��

,

��� ��

�,

(2.2)

dimana TF(d,t) adalah term frequency dari term t di dalam text d dan i menyatakan
jumlah text. WIDF dari term t menjumlahkan semua term frequency dari dari semua
kumpulan text. Dengan kata lain WIDF adalah bentuk normalisasi term frequency
dari semua kumpulan text [5].
2.6 K-NN
K-Nearest Neighbor (KNN) adalah suatu metode yang menggunakan algoritma
supervised dimana hasil dari query instance yang baru diklasifikan berdasarkan
mayoritas dari kategori pada KNN. Tujuan dari algoritma ini adalah
mengklasifikasikan obyek baru berdasarkan atribut dan training sample. Classifier
tidak menggunakan model apapun untuk dicocokkan dan hanya berdasarkan pada
memori. Diberikan titik query, akan ditemukan sejumlah k obyek atau (titik
training) yang paling dekat dengan titik query. Klasifikasi menggunakan voting
terbanyak diantara klasifikasi dari k obyek. algoritma KNN menggunakan
klasifikasi ketetanggaan sebagai nilai prediksi dari query instance yang baru.
Algoritma metode KNN sangatlah sederhana, bekerja berdasarkan jarak
terpendek dari query instance ke training sample untuk menentukan KNN-nya.
Training sample diproyeksikan ke ruang berdimensi banyak, dimana masingmasing dimensi merepresentasikan fitur dari data. Ruang ini dibagi menjadi bagianbagian berdasarkan klasifikasi training sample. Pada fase training, algoritma ini
hanya melakukan penyimpanan vektor-vektor fitur dan klasifikasi data training
sample. Pada fase klasifikasi, fitur-fitur yang sama dihitung untuk testing data (yang
klasifikasinya tidak diketahui). Jarak dari vektor baru yang ini terhadap seluruh
vektor training sample dihitung dan sejumlah k buah yang paling dekat diambil.
Titik yang baru klasifikasinya diprediksikan termasuk pada klasifikasi terbanyak
dari titik-titik tersebut.

13

Nilai k yang terbaik untuk algoritma ini tergantung pada data training. k dipilih
dengan nilai ganjil akan mendapatkan hasil yang lebih baik dibandingkan dengan k
dengan nilai genap, karena akan relevan terhadap kasus, dengan kategori yang sama
nilai jumlahnya. Nilai k yang tinggi akan mengurangi efek noise pada klasifikasi,
tetapi membuat batasan antara setiap klasifikasi menjadi semakin kabur. Ketepatan
algoritma KNN sangat dipengaruhi oleh ada atau tidaknya fitur-fitur yang tidak
relevan atau jika bobot fitur tersebut tidak setara dengan relevansinya terhadap
klasifikasi. Riset terhadap algoritma ini sebagian besar membahas bagaimana
memilih dan memberi bobot terhadap fitur agar performa klasifikasi menjadi lebih
baik.
KNN memiliki beberapa kelebihan yaitu ketangguhan terhadap training data
yang memiliki banyak noise dan efektif apabila training data-nya besar. Sedangkan,
kelemahan KNN adalah KNN perlu menentukan nilai dari parameter k (jumlah dari
tetangga terdekat), training berdasarkan jarak tidak jelas mengenai jenis jarak apa
yang harus digunakan dan atribut mana yang harus digunakan untuk mendapatkan
hasil terbaik, dan biaya komputasi cukup tinggi karena diperlukan perhitungan jarak
dari tiap query instance pada keseluruhan training sample.
Adapun algortima k-NN dapat digambarkan dalam diagram alir K-Nearest
Neighbor sebagai berikut.

Start

End

Input (Hasil
Pembobotan)

Simpan Hasil
Klasifikasi

Hitung Similarity
Antar Dokumen

Tentukan Kategori
Emosi berdasarkan
pernyataan terbanyak

Gambar 2.2 Diagram Alur K-Nearest Neighbor

Mengurutkan
Kemiripan Tertinggi

Tentukan Nilai K

14

1. Hitung jarak antara data sampel (data uji) dengan data latih yang telah dibangun.
Salah satu persamaan dalam menghitung jarak kedekatan dapat menggunakan
persamaan 2.3 Cosine Similarity.
2. Menentukan parameter nilai k = jumlah tetanggaan terdekat bebas.
3. Mengurutkan jarak terkecil dari data uji
4. Pasangkan kategori sesuai dengan kesesuaian
5. Cari jumlah terbanyak dari tetanggaan terdekat kemudian tetapkan kategori.
Jarak yang digunakan dalam penelitian ini adalah Cosine Similarity.

CosSim(i, k ) 

 (d d )
d d
k

2

k

i

ik

k

k

2

.....

(2.3)

jk

Keterangan :

 (d d )
i

k

k

d

2

d

2

k

k

: Vector dot produk dari i dan k

ik

: Panjang vector i

jk

: Panjang vector k

i

: data uji ke-i

k

: data latih ke-j

2.7 Pemrograman Beorientasi Objek
Pemrogramman berorientasi objek pertama kali muncul pada pertengahan 60an dengan bahasa pemgrogramman yang disebut Simula dan terus berkembang
higga pada tahun 2002 microsoft memperkenalkan bahasa pemgoramman yaitu C#
yang

benar-benar

merupakan

bahasa

pemrograman

berorientasi

objek.

Pemrograman berorientasi objek adalah sebuah pendekatan yang berdasarkan
kepada interaksi antar objek dalam menyelesaikan tugas [12]. Terdapat
karakteristrik pada pemrograman berorientasi objek yaitu:
1. Objects
Dalam pemrograman berorientasi objek, sebuah objek adalah struktur untuk
menggabungkan data dan prosedur untuk bekerja dengan data tersebut.

15

2. Abstraction
Saat objek berinteraksi dengan objek lain perlu diperhatikan mengenai
bagian dari property objek tersebut. Sebagai contoh abstraksi jika suatu objek
berinteraksi dengan 2 objek lain di mana 2 objek tersebut memiliki atribut yang
sama dan nilainya berbeda maka akan berbeda pula hasil interaksi tersebut.
3. Encapsulation
Enkapsulasi yaitu proses di mana transaksi dengan sebuah data dilakukan
secara tidak langsung, contohnya jika kita ingin berinteraksi data mahasiswa
maka kita harus berinteraksi melalui objek mahasiswa tersebut, jika kita ingin
melihat data mahasiswa maka kita mengirimkan pesan kepada objek mahasiswa
lalu objek tersebut membaca pesan kita dan memberikan respon. Hal ini
membuat program lebih mudah dan menyederhanakan proses debugging.
4. Polymorphism
Dengan polymorphism, 2 objek yang berbeda dapat menerima pesan yang
sama namun dengan aksi yang berbeda. Dalam pemrograman berorientasi objek
kita dapat menerapkan jenis polymorphism yang bernama overloading yaitu
penerapan metode atau aksi yang berbeda pada objek yang memiliki nama yang
sama. Objek tersebut dapat membedakan dari objek yang memiliki nama yang
sama tersebut mana objek yang harus dijalankan seperti membedakan
berdasarkan parameter.
5. Inheritance
Sebuah pewarisan fungsi dan karakteristik dari objek yang umum pada
objek yang lebih spesifik seperti objek orangtua ke objek anak sehingga objek
anak tersebut mewarisi fungsi dan karakteristik yang ada pada objek orangtua
dan menggunakannya. Contohnya yaitu objek bangun datar sebagai objek
orangtua yang memiliki fungsi luas dan keliling, dan objek segitiga menjadi
objek anak yang mempunyai karakteristik alas dan tinggi, sehingga dengan
inheritance objek segitiga dapat memakai fungsi luas dan keliling.
6. Agregation
Agregasi yaitu ketika sebuah objek merupakan hasil dari gabungan objekobjek lain yang bekerja sama.

16

2.8 UML (Unified Modeling Language)
UML merupakan suatu alat dalam memodelkan analisis dan desain berorientasi
objek. UML adalah sebuah bahasa pemodelan standar untuk perangkat lunak dan
pengembangan sistem. Desain sistem dengan skala besar merupakan hal yang sulit,
bagaimana pengembang perangkat lunak dan timnya menjaga komponen yang
dibutuhkan, bagaimana membagi komponen-komponen kedalam beberapa bagian
agar dapat dikerjakan bersama secara tim dan terdapat pemahaman yang sabar
dalam pembangunan sistem tersebut sehingga detail pekerjaan tidak disalahartikan.
Agar desain model lebih efektif maka diperlukan bahasa pemodelan yang dapat
menjelaskan kompleksitas tersebut yang disebut UML. Berikut adalah beberapa
diagram pada UML beserta apa yang dimodelkannya [13].
1. Use Case Diagram
Use Case Diagram menggambarkan fungsionalitas yang diharapkan dari
sebuah sistem. Di dalam use case diagram ini sendiri lebih ditekankan kepada apa
yang diperbuat sistem dan bagaimana sebuah sistem itu bekerja. Sebuah use case
merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case
merupakan bentuk dari sebuah pekerjaan tertentu, misalnya login ke dalam sistem,
posting, dan sebagainya, sedangkan seorang aktor adalah sebuah entitas manusia
atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan
tertentu [13]. Adapun komponen-komponen dalam use case diagram diantaranya:
a. Aktor
Aktor merupakan suatu entitas yang berkaitan dengan sistem tapi bukan dari
bagian dalam sistem itu sendiri. Aktor berada diluar sistem namun berkaitan erat
dengan fungsionalitas didalamnya. Aktor dapat memiliki hubungan secara
langsung terhadap fungsi utama baik terhadap salah satu atau semua fungsionalitas
utama. Aktor juga dapat dibagi terhadap berbagai jenis atau tingkatan dengan cara
digeneralisasi atau dispesifikasi tergantung kebutuhan sistemnya. Aktor biasanya
dapat berupa pengguna atau database yang secara pandang berada dalam suatu
ruang lingkup sistem tersebut.

17

b. Use Case
Use case merupakan gambaran umum dari fungsi atau proses utama yang
menggambarkan tentang salah satu perilaku sistem. Perilaku sistem ini terdefinisi
dari proses bisnis sistem yang akan dimodelkan. Tidak semua proses bisnis
digambarkan secara fungsional pada use case, tetapi yang digambarkan hanya
fungsionalitas utama yang berkaitan dengan sistem. Use case menitik beratkan
bagaimana suatu sistem dapat berinteraksi baik antar sistem maupun diluar sistem.
Contoh use case diagram dapat dilihat pada gambar 2.3 berikut.

Gambar 2.3 Contoh Use Case Diagram
2. Use Case Scenario
Use case description digunakan untuk menunjukkan use case dan actor,
mungkin menjadi titik awal yang bagus tapi ini tidak memberikan cukup detail
untuk desainer sistem agar benarbenar memahami persis bagaimana sistem akan
dipenuhi [13].
Tidak ada aturan baku untuk apa yang masuk ke dalam use case description
menurut UML, tetapi beberapa contoh jenis informasi yang ditampilkan dalam tabel
2.1
Tabel 2.1 Contoh Use Case Scenario
Use case name
Related
Requirements

Create a new Blog Account
Requirement A.1.

18

Goal In Context
Preconditions
Successful End
Condition
Failed
End
Condition
Primary Actors
Secondary
Actors
Trigger
Main Flow

A new or existing author requests a new blog account from the
Administrator.
The system is limited to recognized authors and so the author needs to
have appropriate proof of identity.
A new blog account is created for the author.
The application for a new blog account is rejected.
Adminidtrator
Author Credentials Database.
The Administrator asks the CMS to create a
account.
Step
Action
1

blog

2

The Administrator asks the system to create a new blog
account.
The Administrator selects an account type.

3

The Administrator enters the author's details.

4

The author's details are verified using the Author
Credentials Database.
The new blog account is created.

5
6
Extensions

new

Step
4.1
4.2

A summary of the new blog account's details are
emailed to the author.
Branching Action
The Author Credentials Database does not verify the
author's details.
The author's new blog account application is rejected.

3. Activity Diagram
Activity Diagram adalah sebuah tahapan yang lebih fokus kepada
menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses. Di mana
biasanya dipakai pada business modeling untuk memperlihatkan urutan aktifitas
proses bisnis. Activity Diagram ini sendiri memiliki struktur diagram yang mirip
flowchart atau data flow diagram pada perancangan terstruktur. Activity Diagram
dibuat berdasarkan sebuah atau beberapa use case pada use case diagram. Contoh
activity diagram dapat dilihat pada gambar 2.4 berikut.

19

Gambar 2.4 Contoh Activity Diagram
4. Class Diagram
Class Diagram adalah sebuah class yang menggambarkan struktur dan
penjelasan class, paket, dan objek serta hubungan satu sama lain. Class diagram
juga menjelaskan hubungan antar class secara keseluruhan di dalam sebuah sistem
yang sedang dibuat dan bagaimana caranya agar mereka saling berkolaborasi untuk
mencapai sebuah tujuan [13]. Contoh class diagram dapat dilihat pada berikut.

Gambar 2.5 Contoh Class Diagram

20

5. Sequence Diagram
Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah
skenario. Diagram jenis ini memberikan kejelasan sejumlah objek dan pesan-pesan
yang diletakkan diantaranya di dalam sebuah use case. Komponen utamanya adalah
objek yang digambarkan dengan kotak segi empat atau bulat, message yang
digambarkan dengan garis penuh, dan waktu yang ditunjukkan dengan progress
vertical. Manfaat dari sequence diagram adalah memberikan gambaran detail dari
setiap use case diagram yang dibuat sebelumnya [13]. Contoh sequence diagram
dapat dilihat pada berikut.

Gambar 2.6 Contoh Sequence Diagram
1.9 Pengujian
Pengujian yang dilakukan pada penelitian ini menggunakan precision, recall,
dan F-measure.
1. Precision
Precision bersama recall merupakan salah satu pengujian dasar dan paling
sering digunakan dalam penentuan efektifitas information retrival system maupun
recommendation system. True positive (tp) pada information retrival merupakan
item relevan yang dihasilkan oleh sistem. Sedangkan false positive (fp) merupakan
semua item yang dihasilkan oleh sistem. Sehingga dalam information retrival,
precision dihitung dengan persamaan 2.4 berikut [14].

21

Precision =

��

=

+



� �

� �



(2.4)

Istilah positive dan negative mengacu pada prediksi yang dilakukan oleh sistem.
Sedangkan istilah true dan false mengacu pada prediksi yang dilakukan oleh pihak
luar atau pihak yang melakukan observasi. Pembagian kondisi tersebut dapat dilihat
pada Tabel 2.2
Tabel 2.2 Pembagian Kondisi Hasil
Relevant

Non relevant

Retrieved

True positif (tp)

False positive (fp)

Not retrieved

False negatif (fn)

True negatif (tn)

2. Recall
Recall digunakan sebagai ukuran dokumen yang relevan yang dihasilkan oleh
sistem. False negative (fn) merupakan semua item relevan yang tidak dihasilkan
oleh sistem. Dalam evaluasi information retrival system, recall dihitung dengan
persamaan 2.5 [14]
Recall =
3. F-measure

+

=

��



��



� �

(2.5)

F-measure merupakan nilai tunggal hasil kombinasi antara nilai precision dan
nilai recall. F-measure dapat digunakan untuk mengukur kinerja dari
recommendation system ataupun information retrival system. Karena merupakan
rata-rata harmonis dari

precision dan recall, F-measure dapat memberikan

penilaian kinerja yang lebih seimbang. Persamaan (2.6) merupakan persamaan
untuk menghitung F-measure [14]
F-measure =

.

� �

� �

.

+





(2.6)

22

23

BAB 5
KESIMPULAN DAN SARAN
1.1 Kesimpulan
Berdasarkan penelitian yang telah dilakukan mengenai klasifikasi emosi pada
teks bahasa Indonesia menggunakan metode k-nearest neighbor dengan
pembobotan WIDF dapat disimpulkan sebagai berikut :
1. Simulator yang dibuat untuk pengklasifikasian emosi pada teks bahasa
Indonesia

menggunakan

metode

k-nearest

neighbor

dengan

mengimplementasikan lirik lagu berbahasa Indonesia sebagai data ujinya
berhasil dilakukan, dengan memberikan kategori emosi yang sesuai dengan
kandungan lirik lagu tersebut.
2. Keberhasilan mengkalsifikasikan emosi pada lirik lagu dipengaruhi oleh nilai
K dalam proses k-nearest neighbor dan data latih yang digunakan.
3. Penggunaan metode pembobotan WIDF dalam proses pengklasifikasian emosi
memberikan nilai akurasi yang meningkat dari penelitian sebelumnya dengan
besar akurasi yang didapatkan sebesar 73.3%.
4. Untuk nilai relevansi dari setiap kategori emosi dengan menggunakan precision
dan recall menghasilkan nilai maksimum sebesar 100%. Nilai tersebut
didapatkan di kategori “Takut” untuk precision, dan kategori “Marah” untuk
recallnya.
1.2 Saran
Berdasarkan penelitian yang telah dilakukan ada kekurangan yang didapat
yaitu proses pengklasifikasian yang memerlukan waktu lama, sehingga penulis
memberikan saran untuk penelitian selanjutnya untuk bisa menyempurnakan lagi
dan data latih yang digunakan untuk bisa menggunakan data asli berbahasa
Indonesia agar hasil yang didapatkan lebih relevan.

91

92

BIODATA PENULIS
1. DATA PRIBADI
Nama Lengkap

: Wildan Abdul Gani

Jenis Kelamin

: Laki-laki

Tempat, Tanggal Lahir

: Garut, 12 Januari 1994

Agama

: Islam

Kewarganegaraan

: Indonesia

Status

: Belum Menikah

Anak ke

: 4 dari 4 bersaudara

Alamat

: Kp. Pasir Cibolang No.171 Rt.01 Rw.03 Desa.
Karanganyar Kec. Leuwigoong Kab. Garut

No. Telepon

: 085794024412

Email

: wildan12gani@gmail.com

2. RIWAYAT PENDIDIKAN
1

SD Negeri Karanganyar 2

1999 -2005

2

MTs. Persis 76 Tarogong – Garut

2005-2008

3

SMK Negeri 1 Garut (Jurusan Multimedia)

2008-2011

4

Universitas Komputer Indonesia

2011-2016

Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan
sadar dan tanpa paksaan.
Bandung, 27 Februari 2016

(Wildan Abdul Gani)

KLASIFIKASI EMOSI PADA TEKS BAHASA INDONESIA
MENGGUNAKAN METODE K-NEAREST NEIGHBOR
DENGAN PEMBOBOTAN WIDF

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

WILDAN ABDUL GANI
10111402

PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2016

DAFTAR ISI

ABSTRAK ............................................................................................................... i
ABTRACT .............................................................................................................. ii
KATA PENGANTAR ........................................................................................... iii
DAFTAR ISI ............................................................................................................v
DAFTAR GAMBAR ........................................................................................... viii
DAFTAR TABEL ....................................................................................................x
DAFTAR SIMBOL ............................................................................................. xiii
DAFTAR LAMPIRAN ....................................................................................... xvii
BAB 1 ......................................................................................................................1
1.1

Latar Belakang Masalah ............................................................................1

1.2

Perumusan Masalah...................................................................................2

1.3

Maksud dan Tujuan ...................................................................................2

1.4

Batasan Masalah ........................................................................................2

1.5

Metodologi Penelitian ...............................................................................3

1.5.1 Metode Pengumpulan Data .....................................................................3
1.5.2 Metode Pembangunan Perangkat Lunak ................................................3
1.6

Sistematika Penulisan ................................................................................4

BAB 2 ......................................................................................................................7
2.1

Emosi .........................................................................................................7

2.2

ISEAR (International Survey On Emotion Antecedents And Reaction) ..7

2.3

Text Mining ...............................................................................................8

2.4

Preprocessing ............................................................................................8

2.5

Pembobotan (Term Weighting) ................................................................... 10

2.6

K-NN .......................................................................................................12

v

2.7

Pemrograman Beorientasi Objek.............................................................14

2.8

UML (Unified Modeling Language) .......................................................16

2.9

Pengujian .................................................................................................20

BAB 3 ....................................................................................................................23
3.1

Analisis Masalah .....................................................................................23

3.2

Analisis Data Masukan ............................................................................23

3.3

Analisis Proses ........................................................................................23

3.3.1 Analisis Preprocessing .........................................................................25
3.3.2 Analisis Pembobotan (WIDF) ...............................................................40
3.3.3 Analisis Penerapan Algoritma K-Nearest Neighbor .............................45
3.4

Analisis Kebutuhan Non-Fungsional ......................................................48

3.4.1 Analisis Kebutuhan Perangkat Keras ....................................................48
3.4.2 Analisis Kebutuhan Perangkat Lunak ...................................................49
3.4.3 Analisis Pengguna .................................................................................49
3.5 Analisis Kebutuhan Fungsional ...................................................................49
3.5.1 Use Case Diagram.....................................................................................49
3.5.1.1 Definisi Actor.....................................................................................50
3.5.1.2 Definisi Use Case ...............................................................................50
3.5.1.3 Use Case Skenario .............................................................................51
3.5.2 Activity Diagram ......................................................................................54
3.5.3 Class Diagram ...........................................................................................57
3.5.4 Sequence Diagram ....................................................................................58
3.6 Perancangan Arsitektur Sistem ....................................................................60
3.6.1 Perancangan Data..................................................................................60
3.6.2 Perancangan Struktur Menu ..................................................................64
vi

3.6.3 Perancangan Antarmuka .......................................................................64
3.6.4 Perancangan Antarmuka Pesan .............................................................64
3.6.5 Jaringan Simantik..................................................................................67
BAB 4 ....................................................................................................................69
4.1

Implementasi Sistem ...............................................................................69

4.1.1

Implementasi Perangkat Keras.........................................................69

4.1.2

Implementasi Perangkat Lunak ........................................................69

4.1.3

Implementasi Data ...........................................................................70

4.1.4

Implementasi Antarmuka .................................................................72

4.1.5

Implementasi Class ..........................................................................73

4.2

Pengujian Sistem .....................................................................................73

4.2.1

Rencana Pengujian ...........................................................................73

4.2.2

Skenario Pengujian ..........................................................................73

4.2.3

Hasil Pengujian ................................................................................75

4.2.4

Evaluasi ............................................................................................90

BAB 5 ....................................................................................................................91
5.1

Kesimpulan..............................................................................................91

5.2

Saran ........................................................................................................91

DAFTAR PUSTAKA ................................................................................... ……93

vii

DAFTAR PUSTAKA
[1] C. Z.-j. H.W, "Multimodal Emotion Recognation From Speech," p. 1, 2004.
[2] S. M. Kim, "Recognising Emotions and Sentiments in Text," Sydney, The
University of Sydney, 2011, p. 26.
[3] J. A. Vaibhav C.Gandhi, "Review on Comparison between Text
Classification Algorithms," International Journal of Emerging Trends &
Technology in Computer Science (IJETTCS) , vol. 1, no. 3, 2012.
[4] M. I. Takenobu Tokunage, "Text Categorization Based on Weighted Inverse
Document Frequency," in ISSN 0918-2802, Ookayama, Meguro Tokyo
Japang, Department Of Computer Science Tokyo Institute Of Technology ,
1994.
[5] L. Sofiyana, "Klasifikasi Emosi Untuk Teks Berbahasa Indonesia Dengan
Menggunakan K-Nearest Neighbor," Saintek UIN Maliki Malang, 2014.
[6] K. E. P. Arifin, "Classification of Emotions in Indonesia Text," Internasional
Journal of Information and Electronics Engineering , vol. 2, no. 6, 2012.
[7] "emotion-research.net," AAAC (The Association for the Advancement of
Affective

Computing),

[Online].

Available:

http://emotion-

research.net/toolbox/toolboxdatabase.2006-10-13.2581092615.

[Accessed

25 Oktober 2015].
[8] R. d. J. S. Fieldman, The Text Mining Handbook., Cambridge: Cambridge
University , 2007.
[9] F. Z. Tala, "A Study of Stemming Efects on Information Retrieval in Bahasa
Indonesia.," 2003.

93

[10] B. Susanto, "Stopword Indonesia," 6 Juni 2011. [Online]. Available:
https://budsus.wordpress.com/2011/06/06/stopword-indonesia/.

[Accessed

30 12 2015].
[11] R. A. d. N. H. Rahmi Pratiwi, "Penerapan Metode Neighbor Weighted-K
Nearest Neighbor (NW-KNN) Pada Pengklasifikasian Spam Email.,"
Program Studi Informatika/Ilmu Komputer PTIIK Universitas Brawijaya. ,
2013.
[12] D. Clark, Beginning C# Object-Oriented Programming, New YorkSpringer:
Springer Science+Business Media, 2011.
[13] K. Hamilton and M. Russell, Learning UML 2.0, Sebastopol: O'Reilly Media,
2006.
[14] P. R. Christopher D. Manning, "An Introduction to Information Retrieval,"
Cambridge, England, Cambridge University Press, 2009, pp. 155 - 156.
[15] N.

Fajrin,

"PENERAPAN

METODE

FK-NN

UNTUK

PENGKLASIFIKASIAN SPAM EMAIL DENGAN PEMBOBOTAN
WIDF," 2013.
[16] t. tutorialspoint.com, "Software Development Life Cycle," [Online].
Available: tutorialspoint.com. [Accessed 1 November 2015].

94

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

KLASIFIKASI EMOSI PADA TEKS BAHASA INDONESIA
MENGGUNAKAN METODE K-NEAREST NEIGHBOR DENGAN
PEMBOBOTAN WIDF
Wildan Abdul Gani
Teknik Informatika – Universitas Komputer Indonesia
Jl. Dipatiukur 112-114 Bandung
wildan12gani@gmail.com

ABSTRAK

1. PENDAHULUAN
1.1 Latar Belakang

Emosi merupakan sebuah ekspresi dari suatu
keadaaan yang berkaitan dengan perasaan seseorang
yang dipengaruhi berbagai faktor baik internal
maupun eksternal. Dalam mengekpresikan sebuah
emosi seseorang biasanya menggunakan berbagai
cara salah satunya dalam sebuah tulisan. Sebuah
tulisan yang mengandung emosi sangat sulit untuk
ditafsirkan oleh pembaca karena dipengaruhi oleh
sudut pandang yang berbeda antara penulis dan
pembaca. Maka dari itu untuk memudahkan pembaca
mengetahui emosi dari sebuah tulisan bisa
menggunakan cara klasifikasi.
Pada penelitian ini metode yang digunakan
dalam mengklasifikasikan emosi pada teks yaitu KNearest Neighbor, pemilihan metode ini didasarkan
pada penelitian yang dilakukan yang menjelaskan
bahwa metode ini memiliki kinerja yang baik dengan
hasil akurasi sampai 86%. Pada penelitian
sebelumnya yang telah dilakukan dengan tahapan
proses dari mulai preprocessing, pembobotan TF.IDF
dan pengklasifikasian hasil akurasi yang didapat
masih kurang sekitar 60%, hal ini dipengaruhi oleh
beberapa kelemahan salah satunya dalam metode
pembobotan yang digunakan. Oleh karena itu dalam
penelitian ini metode pembobotan yang akan
digunakan adalah WIDF yang memiliki kinerja yang
baik dan pengembangan dari TF.IDF.
Berdasarkan hasil pengujian dari penelitian ini
yang mengimplementasikan lirik lagu bahasa
Indonesia dalam mengklasifikasikan emosi dengan
metode K-Nearest Neighbor dan pembobotan WIDF
ke dalam lima kategori yaitu senang, takut, marah,
sedih dan bersalah, menghasilkan akurasi sebesar
73.3% pada nilai K = 5. Untuk nilai relevansi dari
setiap kategori emosi dengan menggunakan precision
dan recall menghasilkan nilai rata-rata terbaik pada
kategori “Takut” untuk precision, dan kategori
“Marah” untuk recall.
Kata kunci : Emosi, Klasifikasi,
Neighbor, Pembobotan WIDF

K-Nearest

Bahasa dalam sebuah tulisan merupakan alat
komunikasi untuk menerjemahkan sebuah pikiran
yang ingin diungkapkan oleh seorang penulis. Dalam
sebuah tulisan seorang penulis tidak hanya
menyampaikan sebuah keterangan dari suatu
informasi, tetapi juga berisi informasi tentang
perilaku manusia termasuk emosi [1]. Emosi yang
tersembunyi dibalik tulisan sangat sulit untuk
ditafsirkan oleh pembaca dikarenakan pengaruh oleh
sudut pandang yang berbeda antara penulis dan
pembaca [2]. Maka dari itu untuk memudahkan
pembaca mengetahui emosi dari sebuah tulisan bisa
menggunakan cara klasifikasi.
Banyak metode yang bisa digunakan dalam
klasifikasi teks diantaranya yaitu metode naive bayes,
k-nearest neighbor (KNN), support vector machine
(SVM) decision tree, neural network dan sebagainya.
Masing – masing metode mempunyai kelebihan dan
kekurangan masing – masing dan tingkat akurasi
yang berbeda-beda. Seperti pada penelitian yang
berjudul “Review on Comporation Between Text
Classification Algorithms” dari hasil perbandingan
algoritma naive bayes, k-nearest neighbor (KNN),
dan support vector machine (SVM), diketahui bahwa
algoritma K-nearest neighbor (KNN) memiliki
kinerja yang bagus dengan nilai akurasi sampai 86%
[3].
Pada penelitian sebelumnya dalam pengolahan
teks dalam metode pembobotan term sering
menggunakan metode TF.IDF. metode ini memiliki
kelemahan seperti yang disebutkan dalam penelitian
yang berjudul “Text Categorization Based on
Weighted
Inverse
Document
Frequency”
menjelaskan yaitu semua text yang berisi term
tertentu diperlakukan sama, sehingga IDF tidak
memperhitungkan jumlah kemunculan suatu term
pada suatu dokumen. Sehingga untuk metode
pembobotan term yang akan digunakan dalam
penelitian ini adalah metode WIDF (Weighted
Inverse Document Frequency), metode ini memiliki
kinerja yang lebih baik dibanding dengan TF.IDF
dengan memberikan peningkatan akurasi pada IDF
sebesar 7.4% Maksimum [4].

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033
Berdasarkan gambaran yang telah dijelaskan,
dalam penelitian ini digunakan metode K-nearest
neighbor (KNN) dengan metode pembobotan term
WIDF untuk mengklasifikasikan emosi pada teks
bahasa Indonesia dan mengetahui besar akurasi yang
didapatkan.

1.2 Maksud dan Tujuan
Berdasarkan permasalahan yang akan diteliti,
maka
maksud
penelitian
ini
adalah
mengklasifikasikan emosi pada teks bahasa Indonesia
menggunakan metode K-nearest neighbor dengan
pembobotan WIDF
Tujuan yang ingin dicapai dalam simulasi
pengenalan emosi pada teks bahasa Indonesia adalah
:
1. Untuk mengklasifikasikan emosi pada teks
bahasa Indonesia
2. Untuk mengetahui besar akurasi yang didapatkan
dari pengklasifikasian emosi pada teks bahasa
Indonesia menggunakan metode K-nearest
neighbor dengan pembobotan WIDF.

1.3 Tahapan Pembangunan Sistem
Sistem klasifikasi emosi yang akan dibangun
akan melewati tahapan-tahapan sebagai berikut :
a. Analisis Sumber Data
Data latih yang digunakan berasal dari data
ISEAR (International Survey On Emotion
Antecedents and Reaction) yang berbahasa inggris
kemudian diterjemahkan ke dalam bahasa indonesia
tanpa mengurangi maksud dari kalimat – kalimat
dalam ISEAR.
Sedangkan untuk data uji yang akan digunakan
adalah data lirik lagu berbahasa Indonesia dengan
format (.txt)
b. Preprocessing
Pada tahap ini, data yang terkumpul akan diproses
sehingga data yang didapat menjadi lebih terstruktur
dan mudah untuk diolah. Langkah - langkah
preprocessing terdiri dari case folding, convert
negation, tokenizing, stopword removal dan
stemming.
c. Pembobotan Kata
Pada tahap ini akan dilakukan proses pengekstrakan
keyword menggunakan nilai WIDF (Weighted
Inverse Document Frequency). Term (kata) di ambil
dari hasil proses prepocessing terakhir yaitu
stemming. Nilai dari hasil pembobotan akan
digunakan sebagai tahapan pengklasifikasian
menggunakan metode k-nearest neigbor.
d. Klasifikasi
Langkah selanjutnya adalah proses pengklasifikasian
yang akan diproses menggunakan metode k-nearest
neighbor untuk menentukan kandungan