APLIKASI MOBILE UNTUK IDENTIFIKASI EMOSI MANUSIA BERBASIS TEKS PADA JEJARING SOSIAL TWITTER DENGAN KLASIFIKASI DECISION TREE
JEFRI PAKPAHAN
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Aplikasi Mobile untuk Identifikasi Emosi Manusia Berbasis Teks pada Jejaring Sosial Twitter dengan Klasifikasi Decision Tree adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Juni 2014 Jefri Pakpahan
ABSTRAK JEFRI PAKPAHAN. Aplikasi Mobile untuk Identifikasi Emosi Manusia Berbasis Teks pada Jejaring Sosial Twitter dengan Klasifikasi Decision Tree. Dibimbing oleh FIRMAN ARDIANSYAH. Manusia adalah makhluk sosial yang butuh berkomunikasi dengan orang lain. Manusia dalam berkomunikasi tidak jarang mengungkapkan suatu emosi secara langsung maupun tidak langsung. Kesadaran akan emosi orang yang berkomunikasi merupakan salah satu alasan identifikasi emosi. Teknologi identifikasi emosi dibagi ke dalam 3 kategori, yaitu sinyal fisiologis, ekspresi wajah dan suara. Akan tetapi identifikasi tersebut mempunyai keterbatasan dalam penggunaan ataupun biaya. Solusi yang mungkin adalah komputasi afektif yang dapat mengidentifikasi emosi melalui perilaku pengguna dan konteks pengguna dari data sensor touchscreen, accelerometer, dan global positioning system (GPS) pada smartphone. Penelitian ini diaplikasikan pada aplikasi smartphone Android pada layanan jejaring sosial Twitter. Penelitian ini menerapkan metode klasifikasi decision tree untuk melakukan identifikasi 7 tipe emosi senang, kaget, marah, muak, sedih, takut, dan netral dengan menggunakan 10 fitur. Data yang digunakan dalam penelitian ini sebanyak 300 dataset. Akurasi tertinggi yang dihasilkan adalah sebesar 44%. Kata kunci: decision tree, identifikasi emosi, komputasi afektif
ABSTRACT JEFRI PAKPAHAN. Mobile Application for Human Emotion Recognition Based on Text on Twitter Social Network with Decision Tree Classification. Supervised by FIRMAN ARDIANSYAH. Humans are social beings that need to communicate with others. Humans in communication often reveal emotions either directly or indirectly. Awareness of people’s emotions when communicating is one of the reasons of emotion recognition. Emotion recognitions divided into 3 categories, namely physiological signals, facial expressions, and voice. However the existing method has limitations in use or cost. A potential solution is affective computing, which can recognize emotion through typing patterns by collecting and analyzing user behavior and context from touchscreen, accelerometer, and GPS on the smartphone. This method was implemented as an Android app on Twitter social networking service. This research used decision tree classification method to identify 7 types of emotions i.e. happiness, surprise, anger, disgust, sadness, fear, and neutral by using 10 features. The data used in this study consisted 300 datasets. The highest accuracy in the research produced 44%. Keywords: affective computing, decision tree, emotion recognition
APLIKASI MOBILE UNTUK IDENTIFIKASI EMOSI MANUSIA BERBASIS TEKS PADA JEJARING SOSIAL TWITTER DENGAN KLASIFIKASI DECISION TREE
JEFRI PAKPAHAN
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
Judul Skripsi : Aplikasi Mobile untuk Identifikasi Emosi Manusia Berbasis Teks pada Jejaring Sosial Twitter dengan Klasifikasi Decision Tree Nama : Jefri Pakpahan NIM : G64104018
Disetujui oleh
Firman Ardiansyah, SKom MSi Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
PRAKATA Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas berkat dan hikmat-Nya sehingga penulis dapat menyelesaikan tugas akhir ini. Judul yang dipilih dalam penelitian ini ialah Aplikasi Mobile untuk Identifikasi Emosi Manusia Berbasis Teks pada Jejaring Sosial Twitter dengan Klasifikasi Decision Tree. Penulis sadar bahwa tugas akhir ini tidak akan terselesaikan tanpa bantuan dari berbagai pihak. Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada: 1 Orang tua tercinta Bapak Saut Pakpahan dan Ibu Lina Sitorus, adik penulis Junita Pakpahan, SPd, dan Riko Pakpahan atas segala doa dan dukungan yang tiada hentinya. 2 Bapak Firman Ardiansyah, SKom MSi selaku dosen pembimbing yang telah memberikan saran, bimbingan, dan dukungan dalam penyelesaian tugas akhir ini. 3 Deniary Lusiana Purba atas dukungan, bantuan dan semangat yang diberikan kepada penulis. 4 Seluruh dosen pengajar Departemen Ilmu Komputer FMIPA IPB dan staf yang telah membantu selama proses pembelajaran hingga selesai. 5 Teman-teman Alih Jenis Ilmu Komputer X5 atas kebersamaan dan dukungannya selama ini. 6 Seluruh teman-teman Kosan White House dan Ilkomerz Angkatan 5 atas persahabatan, dukungan, bantuan, semangat, dan kekeluargaannya selama ini. Penulis menyadari bahwa masih terdapat kekurangan dalam penulisan tugas akhir ini. Semoga penelitian tugas akhir ini dapat bermanfaat.
Bogor, Juni 2014 Jefri Pakpahan
DAFTAR ISI DAFTAR TABEL
vii
DAFTAR GAMBAR
vii
DAFTAR LAMPIRAN
vii
PENDAHULUAN
1
Latar Belakang
1
Tujuan Penelitian
2
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
METODE
3
Pengumpulan Data
3
Pembentukan Model
4
Evaluasi
4
Lingkungan Pengembangan
4
HASIL DAN PEMBAHASAN
5
Pengumpulan Data
5
Pembentukan Model
6
Implementasi
7
Evaluasi
8
SIMPULAN DAN SARAN
9
SIMPULAN
9
SARAN
9
DAFTAR PUSTAKA
10
LAMPIRAN
11
RIWAYAT HIDUP
17
DAFTAR TABEL 1 2 3 4 5 6 7 8
Daftar fitur Daftar lokasi dalam kategori Daftar keadaan cuaca Daftar fitur waktu Susunan kelas emosi dari data yang terkumpul Susunan data latih dan uji Confusion matrix 10-fold cross validation (Akurasi 44%) Confusion matrix 3-fold cross validation (Akurasi 39%)
4 5 5 6 7 7 8 9
DAFTAR GAMBAR 1 Metode penelitian 2 Antarmuka aplikasi pengumpulan data 3 Alur kerja sistem
3 6 8
DAFTAR LAMPIRAN 1 Algoritme C4.5 untuk membangun decision tree 2 Tree yang dihasilkan dari pengujian 10-fold cross validation 3 Tree yang dihasilkan dari pengujian 3-fold cross validation
11 12 15
1
PENDAHULUAN Latar Belakang Twitter merupakan layanan jejaring sosial online yang bertujuan untuk membangun dan mengelola hubungan sosial antara manusia. Pengguna layanan jejaring sosial dapat berinteraksi kepada sesama pengguna dengan beragam cara seperti messaging, share file, diskusi grup, dan lain-lain. Tidak sedikit pula pengguna jejaring sosial Twitter menggunakan berbagai macam aplikasi pada perangkat mobile untuk berbagi ide, ketertarikan atau kegiatan setiap saat dan di mana saja dengan teman-teman mereka melalui sebuah tweet. Pada saat pengguna mengetikkan sebuah tweet, pengguna secara tidak langsung mengungkapkan suatu emosi. Emosi ini juga dapat diungkapkan secara langsung dengan emoticon sehingga para follower akan menanggapi tweet yang dimilikinya dengan lebih aktif atau lebih berempati. Akan tetapi, terkadang beberapa pengguna hampir tidak menunjukkan apa yang sedang mereka rasakan sehingga teman-teman mereka tidak dapat merasakan atau bereaksi terhadap emosi mereka dengan tepat. Kesadaran akan emosi orang yang berkomunikasi dengan orang lain melalui teks merupakan tantangan mendasar dalam membangun sistem cerdas yang dapat mengenali emosi. Teknologi identifikasi emosi dibagi dalam 3 kategori berdasarkan jenis data yang dianalisis untuk mengenali emosi manusia, yaitu sinyal fisiologis, ekspresi wajah, dan suara. Identifikasi emosi fisiologis memiliki kinerja yang baik, namun memiliki beberapa kelemahan yakni pengguna harus menggunakan skin conductance sensor, monitor tekanan darah atau electrocardiography (ECG) yang memantau denyut jantung pada tubuh mereka dan jelas tidak hanya mengganggu tetapi juga membutuhkan biaya (Knapp et al. 2011). Di sisi lain, identifikasi emosi dengan menggunakan ekspresi wajah atau suara juga memiliki keterbatasan penggunaan. Hal ini disebabkan perangkat harus diposisikan di depan wajah pengguna atau harus selalu mendengarkan suara dari pengguna. Padahal perangkat tersebut tidak selalu digunakan pada kehidupan sehari-hari seperti halnya penggunaan pesan teks. Solusi yang mungkin untuk menentukan emosi pengguna tanpa menggunakan sensor tambahan adalah mengadopsi teknologi identifikasi emosi yang sedang dipelajari secara ekstensif oleh para peneliti komputasi afektif. Komputasi afektif adalah studi tentang teknologi untuk mengenali emosi, suasana hati, sikap, dan kepribadian sifat manusia. Picard (1995) adalah peneliti yang pertama kali mengusulkan dasar konsep komputasi afektif dalam identifikasi emosi manusia dan membangun model untuk mengidentifikasi emosi manusia di komputer. Dalam teknologi identifikasi emosi, Epp et al. (2011) mengusulkan solusi identifikasi emosi pengguna komputer dengan menganalisis irama pola mengetik pada keyboard standar. Dalam studi lapangan, mereka mengumpulkan penekanan tombol dari berbagai peserta dan membangun decision tree C4.5 untuk 15 tipe emosi. Percobaan tersebut berhasil memodelkan menjadi 6 tipe emosi yaitu
2 percaya diri, keraguan, gugup, santai, sedih, dan kelelahan dengan tingkat akurasi berkisar antara 77.4% sampai 87.8%. Lee et al. (2012) menggunakan penelitian Epp et al. (2011) dengan pendekatan machine learning klasifikasi Bayesian Network untuk mengenali emosi pengguna smartphone dengan cara mengumpulkan berbagai jenis data sensor dari smartphone. Data sensor dikategorikan menjadi dua jenis yakni perilaku dan konteks pengguna. Penelitian tersebut menghasilkan dan mengklasifikasi pengguna dalam 7 tipe emosi senang, kaget, marah, muak, sedih, takut, dan netral menggunakan 10 fitur dengan akurasi rata-rata sebesar 67.52%. Penelitian ini dilakukan berdasarkan kedua penelitian tersebut yaitu aplikasi smartphone untuk identifikasi emosi manusia dengan menganalisis irama pola mengetik pada jejaring sosial Twitter dengan menggunakan klasifikasi decision tree C4.5 menggunakan sistem operasi Android. Meskipun ada banyak algoritme klasifikasi, decision tree digunakan karena merupakan solusi sederhana dan cepat untuk mengidentifikasi emosi. Decison tree adalah sebuah struktur yang dapat digunakan untuk membagi kumpulan data yang besar menjadi himpunanhimpunan record yang lebih kecil dengan menerapkan serangkaian aturan keputusan. Algoritme C4.5 adalah pengembangan algoritme ID3 (Iterative Dichotomiser 3) dasar yang dirancang oleh Quinlan (1993) untuk membangun decision tree. Algoritme C4.5 mampu menangani atribut dengan tipe diskret atau kontinu dan mampu menangani atribut kosong. Algoritme C4.5 untuk membangun decision tree dapat dilihat pada Lampiran 1.
Tujuan Penelitian Tujuan penelitian ini adalah membangun aplikasi mobile pada smartphone Android untuk mengidentifikasi emosi manusia berbasis teks dengan metode klasifikasi decision tree C4.5.
Manfaat Penelitian Manfaat penelitian ini adalah untuk mengenali emosi manusia melalui perangkat smartphone. Pengenalan emosi pada perangkat smartphone kedepannya diharapkan dapat digunakan untuk seseorang yang mengalami kesulitan komunikasi sosial dalam mengenali dan mengekspresikan emosi.
Ruang Lingkup Penelitian Ruang lingkup pada penelitian ini adalah: 1 Klasifikasi decision tree untuk identifikasi emosi. 2 Perangkat smartphone dengan sistem operasi Android. 3 Jumlah fitur yang digunakan sebanyak 10 fitur dan klasifikasi 7 jenis emosi senang, kaget, marah, muak, sedih, takut, netral berdasarkan penelitian Lee et al (2012). 4 Klasifikasi jenis emosi berdasarkan perilaku dan konteks pengguna.
3
METODE Metode yang digunakan pada penelitian ini adalah decision tree. Alur penelitian yang dilakukan dapat dilihat pada Gambar 1. Langkah awal yang dilakukan dalam penelitian ini adalah pengumpulan data. Data yang digunakan pada penelitian ini adalah data sensor touchscreen, accelerometer, dan global positioning system (GPS) pada smartphone. Kemudian data dibagi menjadi data latih dan data uji. Pelatihan pada data latih dan pengujian pada data uji dilakukan menggunakan decision tree untuk menghasilkan model. Evaluasi dilakukan dengan cara menganalisis hasil dari model untuk menguji tingkat akurasi klasifikasi decision tree.
Decision Tree C4.5
Gambar 1 Metode penelitian Pengumpulan Data Data dalam penelitian ini didapatkan dari berbagai data sensor yang pada smartphone. Sensor yang dibutuhkan adalah smartphone yang memiliki sensor touchscreen, accelerometer, dan global positioning system (GPS). Data dikategorikan ke dalam 2 jenis. Pertama, data perilaku pengguna yaitu data yang mencakup kebiasaan mengetik pengguna seperti kecepatan mengetik, frekuensi menekan tombol yang spesifik, panjang maksimum teks, banyaknya teks yang dihapus dan jumlah sentuhan. Kedua, data konteks pengguna yaitu data yang menggambarkan lingkungan di sekitar pengguna seperti lokasi, zona waktu, dan kondisi cuaca. Seluruh daftar fitur ditunjukkan pada Tabel 1.
4 Tabel 1 Daftar fitur Nama Atribut
Deskripsi
Kecepatan mengetik
Semua fitur diambil berdasarkan perilaku mengetik pada bawaan widget Android bernama EditText. Semua nilai adalah numerik.
Frekuensi backspace ditekan Frekuensi simbol spesial ditekan Panjang maksimum teks Panjang teks yang dihapus Penghitungan sentuhan
Lokasi
Berapa kali pengguna memanggil edit window di EditText untuk melakukan berbagai fungsi seperti perpindahan cursor, seleksi kata, copy & paste. Semua nilai adalah numerik. Berapa sering perangkat digoyang. Nilainya adalah numerik. Rumah, Kantor, Perjalanan, Hiburan, Lainnya.
Waktu
Pagi, Siang, Sore, Malam.
Cuaca
10 kondisi cuaca.
Perhitungan perangkat digoyang
Pembentukan Model Pada tahap ini sebanyak 300 dataset akan dianalisis dengan mengekstraksi 10 fitur berdasarkan penelitian Lee et al. (2012). Semua fitur diformalisasi sebagai attribute-relation file format (arff). Berikutnya data latih dan uji akan diproses menggunakan 10-fold cross validation dan 3-fold cross validation secara manual sebagai pembanding tingkat akurasi. Pengujian 3-fold cross validation data dibagi menjadi dua subset untuk data latih dan satu subset untuk data uji. Hasil pengujian akan menghasilkan model klasifikasi. Evaluasi Evaluasi dari kinerja aplikasi mobile dilakukan pada data uji yang didasarkan pada banyaknya prediksi data uji secara benar dan tidak benar oleh model. Lingkungan Pengembangan -
Perangkat lunak yang digunakan dalam penelitian ini adalah : Eclipse berguna sebagai IDE (Integrated Developmet Environment) untuk mengembangkan perangkat lunak Android SDK (Software Development Kit) berguna sebagai perkakas untuk mengembangkan aplikasi Android Java 1.6 berguna sebagai bahasa pemrograman untuk mengembangkan perangkat lunak MySQL berguna sebagai perangkat lunak manajemen basis data
5
-
Perangkat keras yang digunakan dalam penelitian ini adalah : Processor Intel(R) Core(TM) Core 2 duo CPU @ 2.40GHz Memori SDRAM 4GB 1066 MHz DDR3 (PC3-8500) Harddisk 750 GB. Perangkat mobile yang digunakan dalam penelitian ini adalah : Samsung Galaxy Ace 2 NovaThor U8500 CPU Dual-core @ 800 MHz RAM 768MB Sensor akselerometer, magnetometer, GPS dengan A-GPS Sistem operasi Android 2.3 (Gingerbread)
HASIL DAN PEMBAHASAN Pengumpulan Data Pengumpulan data mengikutsertakan partisipasi seorang wanita berumur 22 tahun yang kesehariannya berada di rumah. Partisipan diminta untuk menggunakan aplikasi klien Twitter yang sudah dibangun. Implementasi klien Twitter berjalan pada sistem operasi Android 2.3 menggunakan Application Programming Interface (API) Foursquare, API Myweather2, dan akses layanan Twitter. API Foursquare digunakan untuk mengambil informasi lokasi. Daftar lokasi dalam kategori didapatkan dengan cara mengategorikan informasi lokasi yang ada di Foursquare. Daftar lokasi dalam kategori ditunjukkan pada Tabel 2. Tabel 2 Daftar lokasi dalam kategori Lokasi Rumah Kantor
Kategori dalam Foursquare Residences dan subkategorinya College & University dan subkategorinya Professional & Other Places dan subkategorinya
Hiburan
Arts & Entertainment dan subkategorinya Nightlife Spot dan subkategorinya
Perjalanan Lainnya
Travel & Transport dan subkategorinya Parks & Outdoors dan subkategorinya Shops & Service dan subkategorinya Food dan subkategorinya
Tabel 2 merupakan pengelompokan kategori pada Foursquare, digunakan untuk fitur lokasi. API Myweather2 digunakan untuk mengambil informasi kondisi cuaca. Daftar keadaan cuaca ditunjukkan pada Tabel 3. Tabel 3 Daftar keadaan cuaca Keadaan Cuaca Cloudy Partly-Cloudy Thunderstorms Rain Snow Drizzle Showers Sleet Fog Sunny
6 Kedua informasi tersebut menerima masukan latitude dan longitude dari hasil GPS pada smartphone. Daftar fitur waktu menggunakan aturan yang mengacu pada petunjuk praktis Badan Bahasa (2013). Daftar fitur waktu ditunjukkan pada Tabel 4. Tabel 4 Daftar fitur waktu Keadaan Pagi hari Siang hari Sore hari Malam hari
Waktu Pukul 00.00 – 10.00 Pukul 10.00 – 14.00 Pukul 14.00 – 18.00 Pukul 18.00 – 00.00
Antarmuka aplikasi mobile yang digunakan dalam pengumpulan data ditunjukkan pada Gambar 2. Adapun cara pengambilan data adalah pada saat pengguna merasakan emosi tertentu di dalam kehidupan sehari-hari mereka akan menulis pesan singkat/tweet dan diminta untuk menunjukkan emosi mereka dengan memilih emoticon yang tersedia. Kemudian dari hasil tweet tersebut seluruh daftar fitur yang dibutuhkan akan disimpan. Data yang berhasil dikumpulkan adalah sebanyak 300 dataset.
Gambar 2 Antarmuka aplikasi pengumpulan data Pembentukan Model Data yang telah dikumpulkan adalah berbentuk dataset. Setiap dataset terdiri dari 10 fitur dan memiliki 1 kelas emosi. Susunan banyaknya emosi pada data yang telah dikumpulkan dapat dilihat pada Tabel 5.
7
Tabel 5 Susunan kelas emosi dari data yang terkumpul Emosi Jumlah Senang 119 Kaget 34 Marah 16 Muak 7 Sedih 30 Takut 25 Netral 69 Tabel 5 merupakan kelas susunan banyaknya kelas emosi pada tiap dataset. Pembentukan model dilakukan dengan menggunakan semua data yang sudah dikumpulkan sebelumnya yang tersimpan dalam database, untuk kemudian diubah ke attribute-relation file format (arff). Penelitian ini menggunakan 10-fold cross validation dan 3-fold cross validation secara manual. Pada 3-fold cross validation data yang terkumpul akan dibagi menjadi 3 subset, masing-masing subset berisi 7 kelas emosi yang telah dibagi secara merata. Percobaan pertama (fold I) menggunakan 200 data sebagai data latih yang berisi subset 1, 2. Subset 3 yang berisi 100 data dijadikan sebagai data uji. Percobaan terus dilakukan hingga setiap subset pernah menjadi data uji. Susunan data pelatihan dan data pengujian untuk 3-fold cross validation disajikan pada Tabel 6. Tabel 6 Susunan data latih dan uji Fold Pelatihan Pengujian Fold I S1, S2 S3 Fold II S1, S3 S2 Fold III S2, S3 S1 Pada Tabel 6 merupakan susunan pembagian data latih dan uji pada 3-fold cross validation, sehingga menghasilkan 3 percobaan yang berbeda-beda. Hasil percobaan yang memiliki akurasi tertinggi akan dipilih untuk menjadi model klasifikasi. Pada fase pembentukan model akan menghasilkan model klasifikasi berupa tree. Tree yang dihasilkan dapat dilihat pada Lampiran 2 dan Lampiran 3. Implementasi Penelitian ini menghasilkan sebuah aplikasi klien Twitter yang berjalan pada platform Android. Aplikasi ini menggunakan library Twitter4J untuk dapat mengakses API Twitter. Web service digunakan untuk memproses data masukan dengan memanggil API Myweather2 dan API Foursquare, seluruh data masukan akan diklasifikasikan dengan model klasifikasi yang sudah terbentuk sehingga menghasilkan prediksi emosi. Gambar 3 memperlihatkan alur kerja sistem yang dikembangkan.
8
Perangkat
Web Service
API
Gambar 3 Alur kerja sistem Evaluasi Pada penelitian ini dilakukan evaluasi model untuk menguji tingkat akurasi klasifikasi decision tree. Untuk melihat akurasi dari setiap percobaan dari perhitungan confusion matrix. Pada penelitian ini terdapat 7 kelas, sehingga confusion matrix yang terbentuk berukuran 7x7. Pengenalan emosi dianggap benar apabila kelas asal dan kelas prediksi dari data uji terletak pada indeks dan kolom yang sama. Selain itu pengenalan dianggap salah apabila kelas prediksi tidak sama dengan kelas asal. Untuk lebih jelasnya confusion matrix dapat dilihat pada Tabel 7 dan Tabel 8. Tabel 7 Confusion matrix 10-fold cross validation (Akurasi 44%) Emosi Kelas Asal
S K Ma Mu Se T N Keterangan : S : Senang K : Kaget Ma: Marah Mu: Muak
S 77 19 5 4 16 6 24 Se: Sedih T : Takut N : Netral
K 14 4 0 1 3 7 4
Ma 2 1 4 1 0 0 1
Kelas Prediksi Mu Se 5 5 0 1 2 1 0 0 0 4 0 1 0 13
T 2 3 1 1 3 7 1
N 14 6 3 0 4 4 36
9 Tabel 7 menunjukkan confusion matrix pada pengujian 10-fold cross validation, rata-rata akurasi yang diperoleh sebesar 44%. Jenis emosi yang dikenali adalah senang, kaget, marah, sedih, takut, dan netral. Tabel 8 Confusion matrix 3-fold cross validation (Akurasi 39%)
Kelas Asal
Emosi S K Ma Mu Se T N
S 28 6 2 1 5 4 11
K 2 0 0 0 1 0 0
Ma 3 0 0 0 2 0 1
Kelas Prediksi Mu Se 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T 0 1 0 1 2 0 0
N 6 5 3 0 0 5 11
Tabel 8 menunjukkan confusion matrix pada pengujian 3-fold cross validation, menghasilkan akurasi tertinggi hanya sebesar 39%. Jenis emosi yang paling banyak dikenali adalah senang dan netral. Dari hasil percobaan pada evaluasi terlihat bahwa emosi yang memiliki klasifikasi yang buruk adalah emosi muak. Hal ini dikarenakan faktor kecepatan mengetik, panjang teks, jumlah perangkat digoyang serta lokasi dari pengguna sangat mempengaruhi hasil prediksi dari emosi. Data yang diperoleh dari partisipan kurang memperkaya dataset, karena data partisipan rata-rata berada di lingkungan rumah.
SIMPULAN DAN SARAN SIMPULAN Berdasarkan hasil penelitian yang dilakukan, metode klasifikasi decision tree C4.5 dapat digunakan untuk mengidentifikasi emosi manusia. Hasil identifikasi emosi manusia diperoleh dari perilaku pengguna dan konteks pengguna dengan memanfaatkan sensor pada smartphone. Fitur yang digunakan sebanyak 10 fitur. Nilai akurasi tertinggi yang didapatkan sebesar 44%. SARAN Untuk keperluan penelitian selanjutnya disarankan agar pengambilan data lebih mobile, menyerupai kondisi sebenarnya dengan mengambil data pengguna dari berbagai tempat, berbagai cuaca, dan suasana untuk memperunik karakteristik emosi dan meningkatkan akurasi.
10
DAFTAR PUSTAKA Ekman P. 1972. Universals and cultural differences in facial expressions of emotions. Nebraska Symposium on Motivation [internet]. [diunduh 2013 Jul 5];19:207-283. Tersedia pada: https://www.paulekman.com/wpcontent/uploads/2013/07/Universals-And-Cultural-Differences-In-FacialExpressions-Of.pdf. Epp C, Lippold M, Mandryk RL. 2011. Identifying emotional states using keystroke dynamics. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems; 2011 Mei 07-12; Vancouver, CA. New York (US): ACM. hlm 715-724. doi: 10.1145/1978942.1979046. [KEMDIKBUD] Kementrian Pendidikan dan Kebudayaan. 2013. Bagaimanakah Penggunaan Kata Siang, Malam, Pagi, Dan Sore Dalam Sapaan? [internet]. [diacu 2013 Februari 6]. Tersedia dari: http://badanbahasa.kemdikbud.go.id/lamanbahasa/petunjuk_praktis/210. Knapp RB, Kim J, André E. 2011. Emotion-Oriented Systems. Berlin (DE): Springer-Verlag. Lee H, Choi YS, Lee S, Park IP. 2012. Towards Unobtrusive Emotion Recognition for Affective Social Communication. Consumer Communications and Networking Conference (CCNC); 2012 Jan 14-17; Las Vegas, US. Las Vegas (US): IEEE. hlm 260-264. doi: 10.1109/CCNC.2012.6181098. Picard RW. 1995. Affective Computing [internet]. [diunduh 2012 Mei 25]. Tersedia pada: http://affect.media.mit.edu/pdfs/TR-321/TR-321.pdf. Quinlan JR. 1993. C4.5: Programs for Machine Learning. San Francisco (US): Morgan Kaufmann Publishers Inc.
11 Lampiran 1 Algoritme C4.5 untuk membangun decision tree Algoritme C4.5 untuk membangun decision tree dapat dijabarkan sebagai berikut: Langkah 0: Pilih atribut yang memiliki nilai information gain terbesar dengan menghitung Entropy dan Information Gain dari setiap atribut, Information Gain dapat dituliskan dengan persamaan : dengan: A = atribut S = ruang (data) sampel yang digunakan untuk training = jumlah sampel untuk nilai i = jumlah seluruh sampel data = entropy untuk sampel data yang memiliki nilai i Gain didapatkan dari perhitungan entropy dari koleksi S, dengan nilai dari entropy setelah S di partisi menggunakan fitur A. Entropy adalah ukuran derajat kemurnian suatu variabel. Entropy didefinisikan sebagai :
dengan : A = ruang (data) sampel yang digunakan untuk training = jumlah pada data sampel kriteria tertentu Langkah 1: Bentuk simpul yang berisi atribut tersebut Langkah 2: Ulangi proses perhitungan information gain yang akan terus dilakukan sampai semua data telah termasuk kelas yang sama. Atribut yang terlah dipilih tidak diikutsertakan lagi ke dalam perhitungan nilai information gain
12 Lampiran 2 Tree yang dihasilkan dari pengujian 10-fold cross validation MaxTextLength <= 21 | Location = Rumah | | Waktu = Pagi | | | SpecialSymbolPressFrequency <= 0.2444 | | | | TypingSpeed <= 0.4483: Netral (4.0) | | | | TypingSpeed > 0.4483: Kaget (5.0/2.0) | | | SpecialSymbolPressFrequency > 0.2444 | | | | TypingSpeed <= 0.5: Takut (4.0) | | | | TypingSpeed > 0.5: Netral (5.0/1.0) | | Waktu = Siang | | | MaxTextLength <= 13: Netral (8.0/1.0) | | | MaxTextLength > 13 | | | | MaxTextLength <= 19 | | | | | DeviceShakeCount <= 90 | | | | | | MaxTextLength <= 14: Kaget (2.0) | | | | | | MaxTextLength > 14: Senang (10.0/3.0) | | | | | DeviceShakeCount > 90: Netral (3.0/1.0) | | | | MaxTextLength > 19 | | | | | TypingSpeed <= 0.6842: Netral (3.0) | | | | | TypingSpeed > 0.6842: Kaget (2.0/1.0) | | Waktu = Sore: Takut (4.0/2.0) | | Waktu = Malam | | | SpecialSymbolPressFrequency <= 0.3333: Netral (24.0/7.0) | | | SpecialSymbolPressFrequency > 0.3333: Takut (3.0) | Location = Kantor: Senang (3.0/1.0) | Location = Hiburan: Netral (0.0) | Location = Perjalanan: Netral (0.0) | Location = Lainnya: Sedih (1.0) MaxTextLength > 21 | Location = Rumah | | Waktu = Pagi | | | Weather = Cloudy: Senang (0.0) | | | Weather = Partly-Cloudy | | | | ErasedTextLength <= 5: Senang (7.0/3.0) | | | | ErasedTextLength > 5: Takut (4.0/1.0) | | | Weather = Thunderstorms: Senang (0.0) | | | Weather = Rain: Senang (0.0) | | | Weather = Snow: Senang (0.0) | | | Weather = Drizzle: Senang (0.0) | | | Weather = Showers: Senang (0.0) | | | Weather = Sleet: Senang (0.0) | | | Weather = Fog: Sedih (4.0/1.0) | | | Weather = Sunny | | | | ErasedTextLength <= 7 | | | | | DeviceShakeCount <= 107 | | | | | | SpecialSymbolPressFrequency <= 0.1684: Senang (3.0/1.0) | | | | | | SpecialSymbolPressFrequency > 0.1684
13 Lanjutan Lampiran 2 Tree yang dihasilkan dari pengujian 10-fold cross validation | | | | | | | SpecialSymbolPressFrequency <= 0.2239: Kaget (4.0) | | | | | | | SpecialSymbolPressFrequency > 0.2239 | | | | | | | | TypingSpeed <= 1.3235: Kaget (2.0/1.0) | | | | | | | | TypingSpeed > 1.3235: Takut (3.0/1.0) | | | | | DeviceShakeCount > 107: Sedih (3.0) | | | | ErasedTextLength > 7: Senang (5.0/1.0) | | Waktu = Siang: Senang (70.0/24.0) | | Waktu = Sore | | | Weather = Cloudy: Senang (0.0) | | | Weather = Partly-Cloudy | | | | TypingSpeed <= 1.8095: Kaget (2.0/1.0) | | | | TypingSpeed > 1.8095: Senang (2.0) | | | Weather = Thunderstorms: Senang (0.0) | | | Weather = Rain: Senang (0.0) | | | Weather = Snow: Senang (0.0) | | | Weather = Drizzle: Senang (0.0) | | | Weather = Showers: Senang (0.0) | | | Weather = Sleet: Senang (0.0) | | | Weather = Fog: Senang (0.0) | | | Weather = Sunny: Marah (2.0/1.0) | | Waktu = Malam | | | Weather = Cloudy: Senang (0.0) | | | Weather = Partly-Cloudy | | | | TouchCount <= 0 | | | | | SpecialSymbolPressFrequency <= 0.2444 | | | | | | MaxTextLength <= 30 | | | | | | | ErasedTextLength <= 1: Sedih (3.0) | | | | | | | ErasedTextLength > 1 | | | | | | | | BackspacePressFrequency <= 0.1316: Netral (2.0) | | | | | | | | BackspacePressFrequency > 0.1316: Senang (2.0/1.0) | | | | | | MaxTextLength > 30 | | | | | | | BackspacePressFrequency <= 0.1026 | | | | | | | | TypingSpeed <= 10.3 | | | | | | | | | SpecialSymbolPressFrequency <= 0.2121: Senang (6.0) | | | | | | | | | SpecialSymbolPressFrequency > 0.2121 | | | | | | | | | | TypingSpeed <= 1.1944: Senang (2.0) | | | | | | | | | | TypingSpeed > 1.1944: Sedih (3.0/1.0) | | | | | | | | TypingSpeed > 10.3: Muak (2.0/1.0) | | | | | | | BackspacePressFrequency > 0.1026 | | | | | | | | BackspacePressFrequency <= 0.1628: Kaget (4.0) | | | | | | | | BackspacePressFrequency > 0.1628: Senang (6.0/1.0) | | | | | SpecialSymbolPressFrequency > 0.2444 | | | | | | MaxTextLength <= 40 | | | | | | | BackspacePressFrequency <= 0.0741 | | | | | | | | MaxTextLength <= 30: Senang (2.0) | | | | | | | | MaxTextLength > 30: Netral (3.0/1.0) | | | | | | | BackspacePressFrequency > 0.0741: Senang (3.0)
14 Lanjutan Lampiran 2 Tree yang dihasilkan dari pengujian 10-fold cross validation | | | | | | MaxTextLength > 40: Netral (7.0/2.0) | | | | TouchCount > 0: Senang (2.0/1.0) | | | Weather = Thunderstorms: Senang (0.0) | | | Weather = Rain: Senang (0.0) | | | Weather = Snow: Senang (0.0) | | | Weather = Drizzle: Senang (0.0) | | | Weather = Showers: Senang (0.0) | | | Weather = Sleet: Senang (0.0) | | | Weather = Fog | | | | BackspacePressFrequency <= 0: Takut (3.0/1.0) | | | | BackspacePressFrequency > 0 | | | | | TypingSpeed <= 2.3429: Netral (6.0/1.0) | | | | | TypingSpeed > 2.3429: Senang (9.0/2.0) | | | Weather = Sunny | | | | ErasedTextLength <= 4 | | | | | SpecialSymbolPressFrequency <= 0.234 | | | | | | ErasedTextLength <= 3: Senang (8.0/2.0) | | | | | | ErasedTextLength > 3: Marah (3.0/1.0) | | | | | SpecialSymbolPressFrequency > 0.234 | | | | | | SpecialSymbolPressFrequency <= 0.2444: Netral (3.0/1.0) | | | | | | SpecialSymbolPressFrequency > 0.2444: Marah (3.0) | | | | ErasedTextLength > 4 | | | | | MaxTextLength <= 34 | | | | | | TypingSpeed <= 1.7037: Muak (2.0/1.0) | | | | | | TypingSpeed > 1.7037: Kaget (2.0) | | | | | MaxTextLength > 34 | | | | | | BackspacePressFrequency <= 0.4: Senang (14.0/3.0) | | | | | | BackspacePressFrequency > 0.4: Kaget (2.0/1.0) | Location = Kantor: Marah (2.0/1.0) | Location = Hiburan: Senang (0.0) | Location = Perjalanan: Senang (0.0) | Location = Lainnya: Marah (4.0/1.0)
15 Lampiran 3 Tree yang dihasilkan dari pengujian 3-fold cross validation Location = Rumah | MaxTextLength <= 21: Netral (48.0/20.0) | MaxTextLength > 21 | | Waktu = Pagi | | | Weather = Cloudy: Senang (0.0) | | | Weather = Partly-Cloudy | | | | ErasedTextLength <= 5: Senang (7.0/3.0) | | | | ErasedTextLength > 5: Takut (4.0/1.0) | | | Weather = Thunderstorms: Senang (0.0) | | | Weather = Rain: Senang (0.0) | | | Weather = Snow: Senang (0.0) | | | Weather = Drizzle: Senang (0.0) | | | Weather = Showers: Senang (0.0) | | | Weather = Sleet: Senang (0.0) | | | Weather = Fog: Senang (0.0) | | | Weather = Sunny | | | | BackspacePressFrequency <= 0.1333 | | | | | BackspacePressFrequency <= 0.0769: Takut (3.0/1.0) | | | | | BackspacePressFrequency > 0.0769: Kaget (5.0/1.0) | | | | BackspacePressFrequency > 0.1333: Senang (7.0/2.0) | | Waktu = Siang: Senang (44.0/15.0) | | Waktu = Sore: Senang (0.0) | | Waktu = Malam | | | Weather = Cloudy: Senang (0.0) | | | Weather = Partly-Cloudy | | | | TouchCount <= 0 | | | | | SpecialSymbolPressFrequency <= 0.2444 | | | | | | MaxTextLength <= 30 | | | | | | | ErasedTextLength <= 1: Sedih (3.0) | | | | | | | ErasedTextLength > 1 | | | | | | | | BackspacePressFrequency <= 0.1316: Netral (2.0) | | | | | | | | BackspacePressFrequency > 0.1316: Senang (2.0/1.0) | | | | | | MaxTextLength > 30 | | | | | | | TypingSpeed <= 4.1429 | | | | | | | | ErasedTextLength <= 4: Senang (8.0/2.0) | | | | | | | | ErasedTextLength > 4 | | | | | | | | | ErasedTextLength <= 9: Kaget (4.0) | | | | | | | | | ErasedTextLength > 9: Senang (4.0/1.0) | | | | | | | TypingSpeed > 4.1429 | | | | | | | | DeviceShakeCount <= 105: Senang (2.0/1.0) | | | | | | | | DeviceShakeCount > 105 | | | | | | | | | BackspacePressFrequency <= 0.125: Sedih (2.0) | | | | | | | | | BackspacePressFrequency > 0.125: Senang (2.0) | | | | | SpecialSymbolPressFrequency > 0.2444 | | | | | | MaxTextLength <= 40 | | | | | | | BackspacePressFrequency <= 0.0741 | | | | | | | | MaxTextLength <= 30: Senang (2.0)
16 Lanjutan Lampiran 3 Tree yang dihasilkan dari pengujian 3-fold cross validation | | | | | | | | MaxTextLength > 30: Netral (3.0/1.0) | | | | | | | BackspacePressFrequency > 0.0741: Senang (3.0) | | | | | | MaxTextLength > 40: Netral (7.0/2.0) | | | | TouchCount > 0: Senang (2.0/1.0) | | | Weather = Thunderstorms: Senang (0.0) | | | Weather = Rain: Senang (0.0) | | | Weather = Snow: Senang (0.0) | | | Weather = Drizzle: Senang (0.0) | | | Weather = Showers: Senang (0.0) | | | Weather = Sleet: Senang (0.0) | | | Weather = Fog: Senang (0.0) | | | Weather = Sunny | | | | ErasedTextLength <= 4 | | | | | ErasedTextLength <= 3 | | | | | | MaxTextLength <= 48 | | | | | | | BackspacePressFrequency <= 0.0385: Kaget (2.0/1.0) | | | | | | | BackspacePressFrequency > 0.0385: Netral (2.0) | | | | | | MaxTextLength > 48: Senang (5.0/1.0) | | | | | ErasedTextLength > 3: Marah (5.0/1.0) | | | | ErasedTextLength > 4 | | | | | TypingSpeed <= 1.7037 | | | | | | MaxTextLength <= 34: Muak (2.0/1.0) | | | | | | MaxTextLength > 34: Senang (4.0/1.0) | | | | | TypingSpeed > 1.7037 | | | | | | TypingSpeed <= 3.1143: Kaget (3.0/1.0) | | | | | | TypingSpeed > 3.1143 | | | | | | | ErasedTextLength <= 7: Kaget (3.0/1.0) | | | | | | | ErasedTextLength > 7: Senang (5.0) Location = Kantor: Marah (1.0) Location = Hiburan: Senang (0.0) Location = Perjalanan: Senang (0.0) Location = Lainnya: Marah (4.0/1.0)
17
RIWAYAT HIDUP Penulis dilahirkan di Jakarta pada tanggal 20 Juni 1988 dari Ibu Lina Sitorus dan Bapak Saut Pakpahan. Penulis merupakan anak ke-1 dari 3 bersaudara. Pada tahun 2006, penulis lulus dari Sekolah Menengah Kejuruan (SMK) SMKN 1 Cibinong dan pada tahun yang sama diterima di Program Diploma Institut Pertanian Bogor (IPB) Program Studi Manajemen Informatika dan menyelesaikan program diploma pada tahun 2009. Tahun 2010, penulis melanjutkan pendidikan di Program Alih Jenis Ilmu Komputer, Institut Pertanian Bogor.