ANALISIS SENTIMEN DENGAN KLASIFIKASI NAÏVE BAYES PADA PESAN TWITTER MENGGUNAKAN DATA SEIMBANG
EGA ADITYAWAN
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 Analisis Sentimen dengan Klasifikasi Naïve Bayes pada Pesan Twitter Menggunakan Data Seimbang 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, Agustus 2014 Ega Adityawan NIM G64100099
ABSTRAK EGA ADITYAWAN. Analisis Sentimen dengan Klasifikasi Naïve Bayes pada Pesan Twitter Menggunakan Data Seimbang. Dibimbing oleh AHMAD RIDHA. Penelitian ini bertujuan untuk mengklasifikasi data tweet menjadi 3 sentimen yaitu positif, negatif, dan netral menggunakan data seimbang. Data yang digunakan terdiri atas 8 entitas berbeda dengan masing-masing entitas setiap sentimennya terdiri atas 80-90 data. Pengklasifikasian data tweet menggunakan metode naïve Bayes dengan Multinomial dan Bernoulli. Sebelum klasifikasi, dilakukan beberapa tahap praproses seperti normalisasi dan pembuangan stopwords. Pengujian dilakukan pada 60 data setiap entitas per sentimennya untuk mendapatkan model terbaik menggunakan 3-fold cross validation. Setelah itu, data yang tersisa pada setiap entitas per sentimennya dianggap menjadi data baru. Data baru tersebut akan dilakukan klasifikasi dengan menggunakan data latih dari model terbaik pada 3-fold cross validation. Hasil klasifikasi pada data baru menunjukkan, metode naïve Bayes memberikan nilai akurasi sebesar 71.09% untuk Multinomial dan 66.42% untuk Bernoulli. Adapun nilai akurasi tiap sentimennya untuk model Multinomial dan Bernoulli masing-masing yaitu 58.62% dan 64.53% untuk sentimen positif, 77.42% dan 65.53% untuk sentimen negatif, 64.40% dan 84.18% untuk sentimen netral. Katakunci: Analisis Sentimen, Data Seimbang, Klasifikasi, Naïve Bayes, Twitter
ABSTRACT EGA ADITYAWAN. Sentiment Analysis with Naïve Bayes Classification on Twitter Data Using Balanced Data. Supervised by AHMAD RIDHA. The purpose of this research is to classify tweet data into 3 sentiments, i.e., positive, negative, and neutral using balanced data. The data consists of 8 different entities where each entity consists of 80-90 tweets for each sentiment. Data classification uses naïve Bayes with Multinomial and Bernoulli method. Before classification, preprocessing includes normalization and stopword removal. Evaluation is conducted on 60 data of each entity per sentiment to get the best model using 3-fold cross validation. After that, the remaining data from previous evaluation is considered to be new data. The new data will be classified using the training data of the best models in the 3-fold cross validation. Classification results on new data shows, that naïve Bayes method gives an accuracy rate of 71.09% and 66.42% for the Multinomial and Bernoulli. The accuracy rate of each sentiment for Multinomial and Bernoulli models respectively are 58.62% and 64.53% and for the positive sentiment, 77.42% and 65.53% for the negative sentiment, 64.40% and 84.18% for the neutral sentiment. Keywords: Balanced Data, Classification, Naïve Bayes, Sentiment Analyst, Twitter.
ANALISIS SENTIMEN DENGAN KLASIFIKASI NAÏVE BAYES PADA PESAN TWITTER MENGGUNAKAN DATA SEIMBANG
EGA ADITYAWAN
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
Penguji : 1 Aziz Kustiyo, SSi MKom 2 Dr Imas S Sitanggang, SSi MKom
Judul Skripsi : Analisis Sentimen dengan Klasifikasi Naïve Bayes pada Pesan Twitter Menggunakan Data Seimbang Nama : Ega Adityawan NIM : G64100099
Disetujui oleh
Ahmad Ridha, SKom MS Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
PRAKATA Segala puji bagi Allah subhanahu wata’ala atas segala rahmat serta karuniaNya yang telah diberikan sehingga penulis mampu menyelesaikan karya ilmiah ini dengan baik. Shalawat dan salam semoga senantiasa tercurah kepada Nabi Muhammad shallallahu ‘alaihi wasallam serta kepada keluarganya, sahabatnya, serta para pengikutnya yang selalu berpegang kepada Al-Quran dan As-Sunnah. Terima kasih penulis ucapkan kepada Bapak Ahmad Ridha, SKom MS selaku pembimbing yang telah memberikan banyak ide, saran, bantuan, serta dukungan sampai selesainya karya ilmiah ini, serta yang telah berkenan menjadi penguji Bapak Aziz Kustiyo, SSi MKom dan Ibu Dr Imas S Sitanggang, SSi MKom yang telah banyak memberikan saran. Ungkapan terima kasih juga disampaikan kepada ayah, ibu, adik, serta seluruh keluarga, atas doa dan kasih sayangnya. Terima kasih juga disampaikan kepada Ahmad Thoriq Abdul Aziz atas bantuan diberikannya semua sumberdaya pada penelitian sebelumnya serta rekan-rekan seperjuangan di Ilmu Komputer IPB angkatan 47 atas segala kebersamaan, bantuan, dukungan, serta kenangan bagi penulis selama menjalani masa studi. Semoga karya ilmiah ini bermanfaat.
Bogor, Agustus 2014 Ega Adityawan
DAFTAR ISI DAFTAR TABEL
x
DAFTAR LAMPIRAN
x
PENDAHULUAN
1
Latar Belakang
1
Tujuan Penelitian
1
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
METODE
2
Pengumpulan Data
3
Penentuan Sentimen Secara Manual
3
Normalisasi Teks
3
Evaluasi Normalisasi Teks
3
Pembuangan Stopword
4
K-fold Cross Validation
4
Klasifikasi Menggunakan Naïve Bayes
4
EvaluasiHasil Klasifikasi
6
Lingkungan Implementasi
6
HASIL DAN PEMBAHASAN
6
Pengumpulan Data
6
Penentuan Sentimen Secara Manual
6
Normalisasi Teks
7
Evaluasi Normalisasi Teks
7
Pembuangan Stopword
7
K-fold Cross Validation
8
Klasifikasi Menggunakan Naïve Bayes
9
KESIMPULAN DAN SARAN
11
Kesimpulan
11
Saran
12
DAFTAR PUSTAKA
12
RIWAYAT HIDUP
22
DAFTAR TABEL 1 Hasil 3-Fold Cross Validation untuk entitas XL 2 Hasil 3-Fold Cross Validation 3 Confusion matrix untuk hasil klasifikasi menggunakan naïve Bayes model Multinomial 4 Confusion matrix untuk hasil klasifikasi menggunakan naïve Bayes model Bernoulli
8 9 11 11
DAFTAR LAMPIRAN 1 Contoh keyword pada pengumpulan data 2 Contoh tabel kamus kata dalam normalisasi teks 3 Daftar kata buang pada stoplist (Ridha et al. 2002) 4 Daftar kata tambahan normalisasi teks 5 Confusion matrix 3-fold cross validation terbaik 6 Contoh tabel kata dan frekuensi pada tiap sentimen 7 Contoh tabel kata dan peluang pada tiap sentimen
13 13 14 15 16 20 21
2
1
PENDAHULUAN Latar Belakang Jejaring sosial adalah struktur sosial yang terdiri atas elemen-elemen individual atau organisasi. Jejaring sosial menunjukkan cara mereka berhubungan karena kesamaan sosial, mulai dari mereka yang dikenal sehari-hari sampai dengan keluarga (Barnes 1969). Terjadinya perubahan era teknologi membuat banyak dikenalnya sosial media yang merupakan sebuah media untuk bersosialisasi satu sama lain. Sosialisasi secara online yang memungkinkan manusia untuk saling berinteraksi tanpa dibatasi ruang dan waktu (Saumi 2012). Twitter merupakan salah satu social networking yang tersedia dan cukup populer. Twitter berada di urutan 8 untuk situs umum yang sering dikunjungi (Alexa 2013). Menurut data yang dirilis Twitter, pada tahun 2012 Indonesia menjadi negara dengan pengguna Twitter terbesar kelima di dunia (Tempo 2012). Lalu Jakarta juga didaulat sebagai penyumbang 2.4% tweet yang lalu lalang selama bulan Juni 2012 berdasarkan 1058 miliar tweet publik yang diambil datanya (Semiocast 2012). Data ini menjadi dasar untuk dilakukannya penelitian pada Twitter. Aziz (2013) telah melakukan analisis sentimen dengan proses klasifikasi pada entitas yang sedang dibicarakan pada Twitter. Hasil klasifikasinya pun menunjukkan akurasi 96%, namun akurasi setiap sentimennya sangat tidak berimbang. Sentimen netral memiliki akurasi yang jauh lebih besar yaitu 97% dibandingkan sentimen positif dan negatif yang masing-masing hanya 30% dan 0%. Hal ini disebabkan oleh jumlah data sentimen netral yang lebih banyak dibanding sentimen lainnya. Jumlah data sentimen netral terdiri atas 13161 data sedangkan sentimen positif dan negatif masing-masing terdiri atas 657 data dan 143 data. Pada penelitian ini dilakukan pengambilan data ulang dengan data yang lebih seimbang pada setiap sentimennya. Sebelum proses klasifikasi, dilakukan tahap praproses yaitu normalisasi teks untuk mengubah kata yang tidak baku menjadi kata baku dan pembuangan stopwords untuk membuang kata yang kemunculannya tinggi tetapi tidak memiliki arti. Proses pengujiannya pun menggunakan 3-fold cross validation agar didapat model terbaik pada data tersebut. Perumusan Masalah Rumusan masalah dalam penelitian ini adalah adanya permasalahan imbalanced data yang belum diperhatikan pada penelitian sebelumnya yang dilakukan oleh Aziz (2013). Tujuan Penelitian Penelitian ini bertujuan mengklasifikasikan data tweet dengan jenis data seimbang pada sentimen yang telah ditentukan menggunakan metode naïve Bayes dengan model Multinomial dan Bernoulli.
2
Manfaat Penelitian Penelitian ini diharapkan dapat membantu entitas yang ingin mengetahui perbincangan tentang entitas tersebut di Twitter. Selain itu, penelitian ini diharapkan dapat memberikan informasi mengenai perbincangan tersebut apakah mengandung sentimen positif, negatif, atau netral.
Ruang Lingkup Penelitian Ruang lingkup penelitian ini menggunakan data statis dari Twitter yang telah dikumpulkan dan berbahasa Indonesia. Data tweet diklasifikasikan menggunakan teknik naïve Bayes dengan 3 kelas sentimen, yaitu positif, negatif, dan netral. Penelitian ini tidak menangani keberadaan entitas yang ambigu.
METODE Metode yang digunakan dalam penelitian ini terdiri atas 8 tahap, seperti pada Gambar 1. Tahap pertama adalah pengumpulan data. Data yang digunakan berasal dari jejaring sosial Twitter. Setelah data didapatkan, langkah selanjutnya ialah melakukan penentuan sentimen secara manual terhadap data tersebut. Kemudian, data dianalisis untuk mendapatkan sentimennya. Namun, sebelum dilakukan analisis sentimen, data harus masuk ke dalam tahap praproses terlebih dahulu, yaitu normalisasi dan pembuangan stopwords. Normalisasi teks bertujuan mengubah tweet yang awalnya sulit dimengerti menjadi tweet yang mudah dimengerti. Untuk mengetahui tingkat efektivitas proses normalisasi teks ini, dilakukan evaluasi terhadap hasil normalisasi. Tahap praproses selanjutnya adalah pembuangan stopwords, pada proses ini kata-kata yang kemunculannya tinggi dan dianggap tidak memiliki makna akan dihilangkan. Setelah itu dilakukan k-fold cross validation dengan tujuan mendapatkan model data latih terbaik. Pada bagian klasifikasi sentimen digunakan klasifikasi naïve Bayes model Multinomial dan Bernoulli. Tahap terakhir adalah evaluasi hasil klasifikasi. 1. Pengumpulan Data
2. Penentuan Sentimen Secara Manual
3. Normalisasi Teks
6. K-fold Cross Validation
5. Pembuangan Stopword
4. Evaluasi Normalisasi Teks
7. Klasifikasi Menggunakan Naïve Bayes
8. Evaluasi Hasil Klasifikasi Gambar 1 Metode penelitian
3 Pengumpulan Data Tahap pertama adalah pengumpulan data. Data berupa kumpulan tweet yang belum terklasifikasi namun sudah diekstraksi berdasarkan keyword yang ditentukan. Penentuan keyword (contoh pada Lampiran 1), ditentukan sesuai entitas yang ingin di ambil datanya. Data diperoleh selama periode 1 Februari 2014 sampai dengan 20 April 2014. Pengambilan data ini memanfaatkan Twitter API dan dilakukan secara real time menggunakan aplikasi yang telah dibuat oleh Hawksey (2013). Untuk menghindari adanya tweet spam digunakan juga batas minimal follower suatu akun yaitu 200. Tiap tweet dilengkapi dengan atribut seperti identitas, sentimen, topik, isi pesan, keyword, nama pengguna Twitter, nama entitas, tanggal, dan identitas editor. Penentuan Sentimen Secara Manual Penentuan sentimen secara manual adalah pengelompokan data pada sentimen yang telah ditentukan sebelumnya secara manual agar dapat digunakan untuk kebutuhan klasifikasi. Data tweet dikelompokkan menurut pendapat dari peneliti sehingga pengelompokannya bersifat subjektif. Normalisasi Teks Tweet hasil pengumpulan data selanjutnya dinormalisasi. Hal ini bertujuan mempermudah proses analisis sentimen terhadap entitas-entitas tadi mengingat banyaknya kata yang tidak baku didalam tweet seperti singkatan, tanggal, jumlah mata uang, dan akronim. Kata yang tidak baku memiliki kecenderungan yang lebih tinggi dalam hal ambiguitas interpretasinya atau pelafalannya dibanding kata yang sudah baku. Misalnya, kata kamu bisa ditulis dengan kata lo, km ,kmu, anda, dan masih banyak lagi. Jika tidak dilakukan normalisasi, kata-kata tersebut akan berdiri sendiri. Padahal, seharusnya kata-kata tersebut terkelompokkan ke dalam konteks yang sama, yaitu saya. Kasus semacam ini dapat diselesaikan dengan normalisasi teks dengan cara mengganti kata yang tidak baku dengan kata yang sesuai konteksnya (Sproat et al. 2001). Proses normalisasi teks dilakukan menggunakan penggantian pada kata yang tidak baku menjadi kata baku dengan sistem yang telah dibuat oleh Aziz (2013). Sebelum dilakukan penggantian dengan kata baku, harus dibuat terlebih dahulu sebuah kamus yang berisi kata yang tidak baku berikut kata bakunya (contoh pada Lampiran 2). Evaluasi Normalisasi Teks Tweet hasil normalisasi teks dievaluasi secara manual. Evaluasi ini bertujuan menghitung tingkat akurasi dari hasil normalisasi. Proses evaluasi dilakukan terhadap 1000 tweet yang diambil secara acak mengingat banyaknya jumlah tweet yang ada.
4 Pembuangan Stopword Tahap ini dilakukan dengan menghilangkan kata yang termasuk dalam daftar kata buang pada data tweet setelah selesai dilakukan proses normalisasi teks. Kata buang adalah kata yang tingkat kemunculannya tinggi namun tidak memiliki arti untuk proses klasifkasi. Daftar kata buang didapat dari penelitian Ridha et al. (2004). Daftar kata buang dapat dilihat pada Lampiran 3. K-fold Cross Validation Pada proses selanjutnya dilakukan proses k-fold cross validation yaitu dengan membagi dataset sebanyak k subset data yang jumlahnya sama besar dan melakukan uji coba dengan satu subset data menjadi data uji dan subset data lainnya menjadi data latih (Meira dan Zaki 2014). Proses fold dilakukan hingga setiap subset data tepat satu kali menjadi data uji. Pada penelitian ini, data dibagi menjadi 3 subset data dengan jumlah data masing-masing 60 data setiap entitas per sentimennya. Pengujian pada proses ini menggunakan metode naïve Bayes dengan model Multinomial dan Bernoulli. Nantinya pasangan subset terbaik dari hasil proses ini akan digunakan sebagai data latih untuk proses klasifikasi pada data yang tersisa pada setiap entitas per sentimennya. Klasifikasi Menggunakan Naïve Bayes Proses klasifikasi dilakukan terhadap data tweet hasil praproses untuk mengklasifikasikan entitas berdasarkan respon terhadap entitas tersebut atau analisis sentimen. Sentimen pada penelitian ini terdiri atas 3 kelas, yaitu positif, negatif, dan netral. Tweet yang termasuk di dalam sentimen positif contohnya: @BeresNews: Masyarakat Ingin Presiden Tegas Seperti Prabowo. Sentimen netral contohnya: @erikadrenata: Pagi pak prabowo. Sentimen negatif contohnya: Hubungan Baik Indonesia-AS Terancam Memburuk Jika Prabowo Jadi Presiden. Klasifikasi ini menggunakan sistem yang telah dibuat oleh Aziz (2013). Sebelum dilakukan klasifikasi, data dibagi 2 menjadi data latih dan data uji. Data latih digunakan untuk memberi pengetahuan kepada sistem tentang ciri-ciri suatu sentimen. Untuk mengambil ciri-ciri suatu sentimen, dilakukan proses ekstraksi fitur yang di dalamnya terdapat pembobotan kata berdasarkan kemunculan kata. Data uji diperoleh dari data yang tersisa pada proses sebelumnya. Fungsi klasifikasi yang digunakan adalah fungsi klasifikasi dengan basis peluang yaitu naïve Bayes dengan model Multinomial dan model Bernoulli. Penggunaan klasifikasi naïve Bayes dikarenakan prosesnya yang sederhana dan mudah diaplikasikan pada berbagai keadaan serta tidak akan mengalami kegagalan secara keseluruhan pada hasilnya (Manning et al. 2008). Pada model Multinomial, setiap data uji dihitung frekuensi kata t pada tiap data latih sentimen c (Tct) dan jumlah kata unik pada data uji (N). Kemudian dari data latih, jumlah kata (∑t’€vTct’) dan jumlah vocabulary (B) dihitung. vocabulary (B) merupakan jumlah kata pada keseluruhan data latih. Setelah frekuensi kata, jumlah kata, dan jumlah vocabulary
5 didapatkan, akan dihitung nilai peluang untuk kata t masuk pada sentimen c (P(t|c)). Perhitungan peluang ini dapat bernilai nol apabila frekuensi kata pada data uji di sentimen c (Tct) bernilai nol. Untuk mengatasi masalah ini, dimasukkan koreksi seperti Laplace smoothing di semua probabilitas perkiraan sehingga peluang tidak bernilai nol (Manning et al. 2008). Perhitungan peluang model Multinomial dapat dilihat pada persamaan berikut: P tc =
Tct+1 ( t'∈V Tct')+B
(1)
Setelah didapatkan nilai peluang tiap kata, selanjutnya adalah mengalikan nilai peluang tiap kata dengan memberikan pangkat (n) sesuai nilai frekuensi kemunculan kata tersebut pada data uji. Hasilnya dikalikan kembali dengan nilai peluang tiap sentimen (P(c)) (Manning et al. 2008). Nilai peluang tiap sentimen (P(c)) dihitung dengan cara membagi jumlah data latih tiap sentimen dengan jumlah data latih keseluruhan sentimen. Perhitungan akhir peluang kalimat pada sebuah sentimen dapat dilihat pada Persamaan 2. Laplace smoothing digunakan agar tidak ada kata uji yang berpeluang nol. Hasil yang diambil adalah hasil perkalian yang terbesar pada setiap sentimennya. (2)
N n
P cd =
P t c *P c i=1
Sementara itu, pada model Bernoulli, setiap data uji dihitung nilai peluang tiap kata terhadap masing-masing sentimen. Perbedaannya dengan model yang pertama yaitu perhitungan peluang menggunakan jumlah data yang mengandung kata t (Tct), bukan frekuensi kemunculan kata t (Manning et al. 2008). Selain itu, jika model Multinomial menggunakan jumlah kata dan jumlah vocabulary, model Bernoulli menggunakan jumlah data latih tiap sentimen (Tc) dan jumlah sentimen (∑c). Peluang tiap kata dihitung menggunakan persamaan: P tc =
Tct+1 Tc+∑c
(3)
Setelah peluang tiap kata didapatkan, nilai dari hasil perkalian invers untuk tiap peluang kata pada data latih selain kata pada data uji dihitung. Misalnya ada sekumpulan kata pada data latih D dan sekumpulan kata pada data uji T. Selanjutnya dicari kata-kata pada data latih D yang independen dengan kata-kata pada data uji T. Dari kata-kata tersebut, diambil nilai peluang kata (dalam hal ini diberi simbol P(t’|c)) dan jumlah kata (M) (Manning et al. 2008). Nilai peluang kalimat terhadap suatu sentimen dihitung dengan persamaan: N
P cd =
M
(1-P(t' |c))
P t c *P c * i=1
i=1
(4)
6 Evaluasi Hasil Klasifikasi Tahap terakhir adalah evaluasi untuk mengetahui tingkat akurasi dari hasil klasifikasi data pada data uji. Perhitungan tingkat akurasi dilakukan dengan membandingkan antara hasil klasifikasi menggunakan metode naïve Bayes dan klasifikasi secara manual. Evaluasi ini menggunakan sistem yang telah dibuat oleh Aziz (2013). Lingkungan Implementasi Lingkungan implementasi yang digunakan sebagai berikut: Perangkat lunak: Microsoft Windows 7 Professional 64bit, Notepad++ 6.4.5, PHP, dan XAMPP 3.1.0 beserta MySQL 3.5.2.2 Perangkat keras: prosesor Intel® Core™ i5-2350M CPU @ 2.30GHz, memori 8 GB, dan hardisk 500 GB
HASIL DAN PEMBAHASAN Pengumpulan Data Pada tahap pengumpulan data diperoleh 1997 data tweet yang terdiri dari 8 entitas dengan 8 atribut setiap datanya dan menggunakan 41 keyword yang berbeda untuk pencarian. Setiap entitas per sentimennya terdiri atas sekitar 80-90 data. Dari atribut yang didapat hanya beberapa atribut saja yang digunakan, yaitu id sebagai pengenal tweet, isi tweet sebagai input system, dan keyword sebagai penciri dari entitas. Data dikumpulkan dengan melakukan penyaringan pada isi tweet-nya menggunakan keyword tertentu. Sebagai contoh untuk melakukan penyaringan data pada entitas 'Prabowo', peneliti menggunakan keyword 'Prabowo'. Nantinya tweet yang mengandung kata 'Prabowo' akan tersaring secara otomatis dan masuk kedalam database. Penentuan Sentimen Secara Manual Tahap penentuan sentimen secara manual dilakukan untuk menentukan sentimen pada setiap tweet yang tersaring dikarenakan data tweet belum terklasifikasi secara otomatis. Tidak semua tweet yang didapat secara real time diberikan sentimen, ada beberapa tweet yang cenderung ambigu sehingga dapat mempengaruhi akurasi dari proses klasifikasi. Contoh tweet yang ambigu: @budhi Sebenernya Aku setuju pd prabowo namun tdk setuju pada sikapnya. Tweet ambigu tidak dimasukkan karena tidak termasuk pada ruang lingkup penelitian ini.
7 Normalisasi Teks Banyak tweet yang mengandung kata tidak baku. Kata yang tidak baku dapat berupa pengulangan karakter sehingga sulit dikenali maupun singkatansingkatan kata, contohnya @indosatcare knapa sinyal hp ku sdh 3 hr ini tidak ada?. Kasus pengulangan karakter perlu dilakukan penghilangan karakter yang berulang. Penghilangan karakter hanya dilakukan pada perulangan karakter teks, bukan karakter angka, karena jika dilakukan pada angka justru membuat tweet semakin sulit dipahami atau memiliki arti yang berbeda. Contohnya pada kasus perulangan angka nomor telepon 0011 yang angka 1 dan 0 pada nomer telepon tersebut tidak akan dilakukan penghilangan. Pada kasus singkatan-singkatan kata yang tidak baku, dibuat sebuah kamus yang berisi kata yang tidak baku beserta kata bakunya. Proses normalisasi melalui 2 tahap, pertama adalah menghilangkan semua tanda baca seperti titik, tanda koma, dan tanda tanya. Setelah itu dilakukan proses penggantian kata tidak baku yang ada di tweet dengan kata baku berdasarkan kamus yang sebelumnya sudah di siapkan. Kata yang dianggap tidak baku akan digantikan oleh kata yang baku secara otomatis oleh sistem. Kamus yang digunakan diambil dari penelitian Aziz (2013) dengan melakukan penambahan beberapa kata (Lihat Lampiran 4) disebabkan oleh karena adanya perbedaan entitas yang digunakan pada penelitian ini. Dalam normalisasi teks juga terdapat beberapa kasus kata yang tidak tertangani karena kata yang tidak baku memiliki makna lebih dari satu, contohnya: bet, bkn, bwt, gws, dah, dan masih banyak lagi. Kata bet bisa berarti banget, namun bisa juga berarti nama panggilan seseorang. Evaluasi Normalisasi Teks Untuk mengetahui hasil normalisasi teks, dilakukan evaluasi secara manual. Sebanyak 1000 tweet diambil sebagai sampel secara acak dan dilakukan proses evaluasi dengan membandingkan tweet sebelumnya. Evaluasi dianggap berhasil jika tweet hasil normalisasi lebih mudah dimengerti secara subjektif. Setiap tweet yang berhasil akan diberikan keterangan 1 dan 0 untuk yang lainnya. Dari total 1000 tweet ada 826 yang memiliki nilai 1 dengan tingkat akurasi 82.6 %. Pembuangan Stopword Tahap praproses selanjutnya yaitu pembuangan stopword. Pada tahap ini suatu data tweet akan dikenali setiap kata yang terkandungnya, bila ada suatu kata yang termasuk dalam daftar kata buang maka kata tersebut akan dihilangkan. Contoh pada tweet "Kenapa XL ini sangat menyebalkan @XLcare". Tweet tersebut dikenali bahwa kata kenapa, sangat, dan ini termasuk dalam daftar kata buang sehingga akan dihilangkan. Setelah dihilangkan data tweet tersebut akan menjadi XL menyebalkan @XLcare.
8 K-fold Cross Validation Setelah itu dilakukan pengujian k-fold croos validation untuk 60 data setiap entitas per sentimennya. Setiap kelompok data akan tepat satu kali menjadi data uji dan kelompok lainnya menjadi data latih. Data dibagi menjadi 3 subset data dan diberi label A, B, dan C dengan jumlah masing-masing sebanyak 60 data yang terdiri dari 20 data sentimen positif, 20 data sentimen negatif, dan 20 data sentimen netral. Ada 3 tahap pada proses ini, pertama subset data A dan B akan menjadi data latih sedangkan subset data C akan menjadi data uji. Kedua data kelompok B dan C menjadi data latih sedangkan data kelompok A menjadi data uji. Terakhir data kelompok A dan C menjadi data latih sedangkan data kelompok B menjadi data uji. Ketiga tahap proses tersebut dilakukan terpisah masing-masing untuk setiap entitas per sentimennya agar didapat model terbaik untuk setiap entitas per sentimennya. Setelah semua selesai, didapatkan pasangan subset data yang terbaik dari proses ini. Contoh proses ini sebagai berikut, pada entitas XL dikelompokkan data A, B, dan C. Setelah itu, dilakukan pengujian pada data tersebut. Hasil klasifikasi untuk kedua modelnya pada setiap kelompok data untuk entitas XL dapat dilihat pada Tabel 1. Tabel 1 Hasil 3-Fold Cross Validation untuk entitas XL Multinomial Perlakuan Akurasi Latih (A dan B) Uji (C) Latih (C dan B) Uji (A) Latih (A dan C) Uji (B)
Bernoulli Perlakuan Akurasi
43.33% 43.33% 50%
Latih (A dan B) Uji (C) Latih (C dan B) Uji (A) Latih (A dan C) Uji (B)
55% 46.67% 60%
Model Multinomial pasangan kelompok data A dan C memiliki nilai akurasi lebih besar dibandingkan pasangan kelompok data lainnya sebagai data latih. Begitu juga untuk model Bernoulli, pasangan kelompok data A dan C juga memiliki nilai akurasi yang lebih besar dibandingkan pasangan kelompok data lainnya sehingga kelompok A dan C akan dijadikan sebagai data latih untuk entitas XL pada proses klasifikasi model Multinomial dan Bernoulli untuk data baru. Tidak tertutup kemungkinan bahwa suatu entitas memiliki kelompok data latih yang berbeda untuk digunakan pada kedua modelnya. Untuk hasil K-Fold seluruh entitas beserta nilai akurasi terbaiknya dan pasangan kelompok datanya adalah seperti pada Tabel 2 dan confusion matrix pasangan terbaiknya dapat dilihat pada Lampiran 5.
9 Tabel 2 Hasil 3-Fold Cross Validation
Entitas XL TSEL Indosat ARB HR Jokowi Prabowo Wiranto
Multinomial Nilai Kelompok Akurasi 55% A dan C 65% B dan C 70% A dan B 75% B dan C 85 % A dan C 65% B dan C 85% A dan C 85% A dan C
Bernoulli Nilai Kelompok Akurasi 60% A dan C 80% A dan C 68.33% A dan C 68.33% A dan C 98.33 % A dan C 61.67% B dan C 81.67% A dan C 65% B dan C
Seperti ditunjukan oleh Tabel 2 dan Lampiran 5, data tweet yang diduga bernilai positif banyak yang hasil klasifikasinya menjadi negatif begitu juga sebaliknya. Hal ini disebabkan oleh belum diperhatikannya penggantian frase pada kata sehingga saat kata tersebut terkena proses stoplist teks akan berubah maknanya pada kata yang sebaliknya. Contohnya pada tweet @kurnia Pak Wiranto orang yang tidak layak menjadi presiden. Setelah mengalami pemotongan stopword tweet menjadi @kurnia Pak Wiranto orang layak menjadi presiden sehingga tweet yang diduga sentimen negatif, hasil klasifikasinya sentimen positif. Klasifikasi Menggunakan Naïve Bayes Data latih berjumlah 960 yang terdiri atas 320 sentimen positif, 320 sentimen negatif, dan 320 sentimen netral. Data uji berjumlah 557 yang terdiri dari 203 sentimen positif, 177 sentimen negatif, dan 177 sentimen netral. Data uji maupun data latih telah diwakili oleh setiap entitas per sentimennya yang digunakan pada penelitian ini. Data tweet yang tersisa dari proses k-fold cross validation terdiri atas sekitar 20-30 data dianggap sebagai data baru dan akan menjalani proses klasifikasi sebagai data uji. Proses klasifikasi mengunakan naïve Bayes model Multinomial dan model Bernouli, dengan data latih untuk setiap entitasnya didapatkan dari proses k-fold croos validation yang telah dilakukan. Model pertama yaitu model Multinomial. Model Multinomial menghitung nilai peluang setiap data uji terhadap tiap sentimen dengan mengambil nilai peluang terbesar. Misalnya, sebuah data memliki peluang terhadap sentimen positif sebesar 0.7, sentimen negatif sebesar 0.2, dan sentimen netral sebesar 0.5. Hal ini menunjukkan bahwa data masuk ke dalam sentimen positif. Data uji dalam penelitian ini berupa kalimat sehingga harus dipotong menjadi kata dan dihitung jumlah kata yang unik atau tidak sama (N). Dari tiap kata tersebut, dihitung nilai frekuensi kemunculannya pada keseluruhan data latih di tiap sentimen (Tct) dan frekuensi kemunculannya pada kalimat (n). Untuk mempermudah proses perhitungan frekuensi kemunculan kata pada keseluruhan data latih, dilakukan proses training terhadap data latih. Training ini berupa pembuatan suatu tabel yang berisi kata beserta frekuensi kemunculannya di dalam data latih (contoh pada Lampiran 6). Selanjutnya, jumlah kata pada data latih masing-masing sentimen
10 dihitung (Tct'). Total kata pada data latih sentimen positif sebanyak 7065, sentimen negatif sebanyak 3625, dan sentimen netral sebanyak 10060. Pada keseluruhan data latih, dihitung juga jumlah kata yang unik atau vocabulary (B) yang dalam penelitian ini berjumlah 3066. Setelah nilai Tct, Tct', dan B didapatkan, maka nilai peluang suatu kata terhadap suatu sentimen (P(t|c)) dapat dihitung menggunakan Persamaan 1. Setelah nilai peluang tiap kata didapatkan, selanjutnya dicari jumlah data latih keseluruhan suatu sentimen dan jumlah data latih masing-masing sentimen. Nilai peluang kalimat (d) terhadap suatu sentimen (c) dihitung menggunakan Persamaan 2. Penempatan suatu data ke dalam suatu sentimen dilakukan berdasarkan nilai peluang P(c|d). Nilai P(c|d) terbesar menunjukkan bahwa peluang data untuk masuk ke dalam sentimen tersebut paling besar atau paling memungkinkan. Rata-rata waktu eksekusi yang dibutuhkan dalam proses klasifikasi menggunakan naïve Bayes model Multinomial adalah sebesar 4.30 detik per tweet. Model kedua yaitu model Bernoulli. Model Bernoulli memiliki konsep dasar yang sama dengan model Multinomial. Perbedaannya terletak pada proses perhitungan peluang pada model ini menggunakan jumlah dokumen yang mengandung suatu kata. Langkah pertama, setiap data uji dipotong menjadi katakata. Tiap kata dihitung banyaknya dokumen yang mengandung kata tersebut untuk setiap sentimen (Tct). Kemudian, total dokumen data latih tiap sentimen (Tc) dan jumlah sentimen (∑c) dihitung juga. Selanjutnya, nilai peluang tiap kata dihitung dengan Persamaan 3. Untuk mempermudah perhitungan nilai peluang tiap kata, dilakukan proses training seperti pada model Multinomial. Perbedaannya dengan model Multinomial, pada training kali ini dilakukan pembuatan tabel yang berisi kata, nilai peluang, dan sentimen (contoh pada Lampiran 7). Perhitungan nilai peluang kata didapatkan dari tabel jika ada atau menggunakan Persamaan 3 jika tidak dengan nilai Tct = 0. Setelah nilai peluang tiap kata didapatkan, dihitung nilai dari hasil perkalian invers untuk tiap peluang kata pada data latih selain kata pada data uji. Misalnya, ada sekumpulan kata pada data latih D dan sekumpulan kata pada data uji T. Selanjutnya dicari kata-kata pada data latih D yang independen dengan kata-kata pada data uji T. Dari kata-kata tersebut diambil nilai peluang kata (dalam hal ini diberi simbol P(t’|c)) dan jumlah kata (M). Nilai peluang kalimat terhadap suatu sentimen dihitung menggunakan Persamaan 4. Rata-rata waktu eksekusi yang dibutuhkan dalam proses klasifikasi menggunakan naïve Bayes model Bernoulli adalah sebesar 3.03 detik per tweet. Evaluasi Hasil Klasifikasi Tahap terakhir adalah evaluasi hasil dari klasifikasi menggunakan naïve Bayes. Evaluasi bertujuan mengetahui tingkat akurasi klasifikasi. Data tidak terklasifikasi secara benar jika hasil sentimennya berbeda dari sentimen yang seharusnya. Total hasil klasifikasi yang salah dari model Multinomial sebanyak 187 dari 557 sehingga tingkat akurasi sebesar 66.42%. Hasil evaluasi model ini dapat dilihat pada Tabel 3 dengan akurasi sentimen negatif sebesar 77.4%, sentimen positif sebesar 58.62%, dan sentimen netral sebesar 64.40%. Sementara itu, untuk model Bernoulli total hasil klasifikasi yang salah sebanyak 161 dari 557
11 sehingga tingkat akurasi sebesar 71.09%. Hasil evaluasi model ini dapat dilihat pada Tabel 4 dengan tingkat akurasi sentimen positif sebesar 64.53%, sentimen negatif sebesar 65.53%, dan sentimen netral sebesar 84.18%. Tabel 3 Confusion matrix untuk hasil klasifikasi menggunakan naïve Bayes model Multinomial Dugaan
Positif
Negatif
Netral
Positif
119
18
13
Negatif
29
137
50
Netral
55
22
114
Hasil
Tabel 4 Confusion matrix untuk hasil klasifikasi menggunakan naïve Bayes model Bernoulli Dugaan
Positif
Negatif
Netral
Positif
131
13
11
Negatif
20
116
17
Netral
52
48
149
Hasil
Kebanyakan data yang diduga pada sentimen positif dan negatif justru menghasilkan sentimen netral pada hasil klasifikasinya. Contohnya pada tweet @AndiJ pilih mantan menteri ekonomi pak hatta rajasa presiden. Tweet ini termasuk dalam sentimen positif tetapi hasil klasifikasinya sentimen netral. Kesalahan tersebut dikarenakan kata menteri banyak terdapat pada sentimen netral seperti pada contoh tweet @Gerindra Pak prabowo bertemu menteri pertanian pagi atau @siddikak Hari ini Pak Jokowi mendatangi menteri pekerjaan umum. Hal ini terjadi karena suatu kata pada entitas bisa berbeda makna dientitas lainnya.
KESIMPULAN DAN SARAN Kesimpulan Simpulan dari penelitian ini adalah sistem pengklasifikasian data tweet menggunakan naïve Bayes pada data seimbang belum menunjukan akurasi yang cukup baik yaitu 66.42% untuk model Multinomial dan 71.09% untuk model Bernoulli. Namun jika dilihat dari akurasi setiap sentimennya sudah cukup baik.
12 Selisih akurasi setiap sentimennya tidak terlalu besar dan juga tidak ada satu sentimen yang lebih dominan secara mutlak dibanding sentimen lainnya. Saran Saran untuk penelitian selanjutnya adalah menggunakan metode klasifikasi lainnya dan memperhatikan proses pemecahan frase kata pada data tweet.
DAFTAR PUSTAKA [Alexa]. 2013. Top 500 sites on the web [internet]. [diunduh 2014 januari 1]. Tersedia dari: http://www.alexa.com/topsites. Aziz ATA. 2013. Sistem pengklasifikasian entitas pada pesan Twitter menggunakan ekspresi regular dan Naïve Bayes [skripsi]. Bogor (ID): Institut Pertanian Bogor. Barnes JA. 1969. Graph theory and social networks: a technical comment on connectedness and connectivity. Sociology. 3(2): 215-232. Hawksey M. 2013. Twitter Archiving Google Spreadsheet TAGS v5 [internet]. [diunduh 2014 Januari 21]. Tersedia dari: http://mashe.hawksey.info/2013/02/twitter-archive-tagsv5/. Manning CD, Raghavan P, Schütze H. 2008. An Introduction to Information Retrieval. Cambridge (UK): Cambridge University Press. Meira JR, Zaki MJ. 2014. Data Mining and Analysis Fundamental Concepts and Algorithms. Cambridge (UK): Cambridge University Press. Ridha A, Adisantoso J, Bukhari F. 2004. Pengindeksan otomatis dengan istilah tunggal untuk dokumen berbahasa Indonesia. Prosiding Seminar Nasional Ilmu Komputer dan Teknologi Informasi V, SNIKTI 2014; [Waktu dan tempat pertemuan tidak diketahui]. hlm 328-335. Saumi RR. 2012. Apa itu sosial media [internet]. [diunduh 2014 April 24]. Tersedia dari: http://www.unpas.ac.id/apa-itu-sosial-media/. [Semiocast]. 2012. Top 20 Cities By Number Of Tweets [Internet]. [diunduh 2013 Des 20]. Tersedia dari: http://semiocast.com/publications/2012_07_30_Twitter_reaches_half_a_bil lion_accounts_140m_in_the_US. Sproat S, Black AW, Chen S, Kumar S, Ostendorf M, Richards C. 2001. Normalization of non-standard words. Computer Speech and Language. 15:287-333.doi:10.1006/csla.2001.0169. [Tempo]. 2012. Indonesia Pengguna Twitter Terbesar Kelima Dunia [internet]. [diunduh 2013 Des 1]. Tersedia dari: http://www.tempo.co/read/news/2012/02/02/07238132.
13 Lampiran 1 Contoh keyword pada pengumpulan data No 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Keyword xlcare xl123 indosat indosatcare telkomsel telkomselflash tselbb prabowo jokowi wiranto hatta rajasa arb aburizal bakrie hr
Entitas xl xl indosat indosat tsel tsel tsel prabowo jokowi wiranto hatta rajasa arb arb hatta rajasa
Lampiran 2 Contoh tabel kamus kata dalam normalisasi teks No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Kata tidak baku
Kata baku
bgmn gakjadi kesane makin2 makin njupuk nelepon mangis ngeliatin sdg buanget mantabh dkt mperpanjang maning kemenkes ngebo smua mrah2-marah day katany
bagaimana tidak jadi kesannya makin mengambil menelpon manggis memperlihatkan sedang banget mantap dekat memperpanjang lagi Kementerian Kesehatan tidur semua marah hari katanya
14 Lampiran 3 Daftar kata buang pada stoplist (Ridha et al. 2002) ada biasanya kalau menunjukkan adalah bila kalian menurut adanya bilamana kami mereka adapun buat kamu merupakan aduh bukan karena meski agar dalam kata meskipun ah dan katanya misalnya akan dapat kau mungkin aku dari ke namun alih-alih daripada kebanyakan nanti anda dekat kecuali nyaris andai demi kemanakah oleh antar demikian kemudian pada antara dengan kenapa padahal apa depan kenapakah para apakah di kepada pasti apalagi dia ketika pelbagai asalkan dikatakan ketimbang per atas dilakukan kini peri atau dkk kita perihal ataupun dll lagi pinggir bagai dsb lain pula bagaikan engkau lain-lain pun bagaimana hal lainnya saat bagaimanakah hamper lalu saja bagaimanapun hanya lebih sambil bagi harus lepas sampai bahkan hingga lewat samping bahwa ia maka sang balik ialah makin sangat banyak ini manakala sangatlah barangkali itu masih saya bawah iya masing-masing seakan beberapa jadi masing-masingnya seakan-akan begini jangan maupun seantero begitu jarang melainkan sebab belakang jauh melakukan sebabnya belum jika melalui sebagai berapa jikalau memang sebagaimana berbagai juga mengatakan sebagainya bersama jumlah mengenai sebelum beserta justru menjadi sebelumnya betapa kadang menjelang sebuah biar kadang-kadang menuju secara
sedang sedangkan sedikit segera sehabis sehingga sehubungan sejak sejumlah sekarang sekeliling seketika sekitar sekonyong-konyong selagi selain selalu selama selanjutnya selesai seluruh seluruhnya semakin semenjak sementara semua semuanya seorang sepanjang seperti sepertinya seputar seraya sering seringkali serta sesuai sesuatu sesudah sesudahnya sesungguhnya setelah seterusnya setiap
seusai sewaktu si siapa siapakah siapapun suatu sudah supaya tak tanpa tapi tatkala telah tengah tentang tentu tentunya tergolong terhadap terjadi terkadang terlalu terlebih termasuk ternyata tersebut tertentu tetap tetapi tiap tiba-tiba tidak ujar ujarnya umumnya untuk walau walaupun ya yaitu yakni yang
15 Lampiran 4 Daftar kata tambahan normalisasi teks No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Kata tidak baku ARB Aburiezal HR Hatta Korup Berpikir UUD Praturan Syart Aturn RI-1 Ekonom Pemimpn Kenerja Daerh rakyt Mekanism Rpt Brtemu Sanbutan Kampoeng Prospk Ungulan Mentri N Sopir Calek Rlawan Nyoblos Plih Greget Jeblok Kesemsem Amandemn berkwalitas Nyalonin Bertgs Andln
Kata baku Aburizal Bakrie Aburizal Bakrie Hatta Rajasa Hatta Rajasa Korupsi Berfikir Undang-undang Peraturan Syarat Aturan Presiden Ekonomi Pemimpin Kinerja Daerah Rakyat Mekanisme Rapat Bertemu Sambutan Kampung Prospek Unggulan Menteri Dan Supir Caleg Relawan Coblos Pilih Cocok Turun Senang Amandemen berkualitas Calon Bertugas Andalan
16 Lampiran 5 Confusion matrix 3-fold cross validation terbaik Entitas XL Model Multinomial Dugaan
Positif
Negatif
Netral
Positif
10
3
6
Negatif
6
11
2
Netral
4
6
12
Positif
Negatif
Netral
Positif
15
4
5
Negatif
3
13
7
Netral
2
3
8
Positif
Negatif
Netral
Positif
16
0
4
Negatif
1
18
13
Netral
3
2
3
Positif
Negatif
Netral
Positif
18
0
1
Negatif
0
18
7
Netral
2
2
12
Hasil
Model Bernoulli Dugaan Hasil
Entitas TSEL Model Multinomial Dugaan Hasil
Model Bernoulli Dugaan Hasil
17 Lanjutan Entitas Indosat Model Multinomial Dugaan
Positif
Negatif
Netral
Positif
10
0
3
Negatif
4
17
2
Netral
6
3
15
Positif
Negatif
Netral
Positif
9
1
1
Negatif
0
14
1
Netral
11
5
18
Positif
Negatif
Netral
Positif
13
2
1
Negatif
4
17
3
Netral
3
1
16
Positif
Negatif
Netral
Positif
12
6
1
Negatif
6
13
3
Netral
2
1
16
Hasil
Model Bernoulli Dugaan Hasil
Entitas ARB Model Multinomial Dugaan Hasil
Model Bernoulli Dugaan Hasil
18 Lanjutan Entitas HR Model Multinomial Dugaan
Positif
Negatif
Netral
Positif
16
0
0
Negatif
3
18
3
Netral
1
2
17
Positif
Negatif
Netral
Positif
19
0
0
Negatif
0
20
0
Netral
1
0
20
Positif
Negatif
Netral
Positif
10
3
2
Negatif
6
15
4
Netral
4
2
14
Positif
Negatif
Netral
Positif
15
1
1
Negatif
0
8
5
Netral
5
11
14
Hasil
Model Bernoulli Dugaan Hasil
Entitas Jokowi Model Multinomial Dugaan Hasil
Model Bernoulli Dugaan Hasil
19 Lanjutan Entitas Prabowo Model Multinomial Dugaan
Positif
Negatif
Netral
Positif
14
1
0
Negatif
6
18
1
Netral
0
1
19
Positif
Negatif
Netral
Positif
15
2
3
Negatif
3
17
0
Netral
2
1
17
Positif
Negatif
Netral
Positif
18
3
3
Negatif
2
16
0
Netral
0
1
17
Positif
Negatif
Netral
Positif
15
7
3
Negatif
1
10
3
Netral
4
3
14
Hasil
Model Bernoulli Dugaan Hasil
Entitas Wiranto Model Multinomial Dugaan Hasil
Model Bernoulli Dugaan Hasil
20 Lampiran 6 Contoh tabel kata dan frekuensi pada tiap sentimen No Kata Frekuensi Sentimen 1 edge 1 positif 1 negatif 2 netral 2 survei 1 positif 1 negatif 1 netral 3 masalah 10 positif 8 negatif 12 netral 4 sinyal 17 positif 16 negatif 24 netral 5 jam 6 positif 4 negatif 6 netral 6 jalan 33 positif 26 negatif 35 netral 7 politik 8 positif 3 negatif 8 netral 8 hadiah 2 positif 1 negatif 2 netral 9 menang 5 positif 2 negatif 6 netral 10 kudeta 1 positif 1 negatif 1 netral
21 Lampiran 7 Contoh tabel kata dan peluang pada tiap sentimen No 1
Kata edge
2
survei
3
masalah
4
sinyal
5
jam
6
jalan
7
politik
8
hadiah
9
menang
10
kudeta
Nilai Peluang 0.0030 0.0061 0.0061 0.0030 0.0061 0.0030 0.0092 0.0278 0.0092 0.0061 0.0526 0.0247 0.0092 0.0154 0.0030 0.0185 0.0743 0.0009 0.0185 0.0123 0.0030 0.0061 0.0061 0.0003 0.0123 0.0092 0.0061 0.0030 0.0061 0.0030
Sentimen positif negatif netral positif negatif netral positif negatif netral positif negatif netral positif negatif netral positif negatif netral positif negatif netral positif negatif netral positif negatif netral positif negatif netral
22
RIWAYAT HIDUP Penulis dilahirkan di Trenggalek, Jawa Timur pada tanggal 30 Juni 1992 dan merupakan anak pertama dari pasangan Agus Suharyanto dan Narwati. Pada tahun 2010, penulis menamatkan pendidikan di SMAI Nurul Fikri Boarding School, Banten. Penulis lulus seleksi masuk Institut Pertanian Bogor (IPB) pada tahun yang sama melalui jalur Undangan Seleksi Masuk IPB dan diterima sebagai mahasiswa di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam. Selama aktif menjadi mahasiswa, penulis pernah menjadi asisten praktikum Algoritma dan Pemrograman (2012). Penulis juga melaksanakan kegiatan Praktik Kerja Lapangan di PT. Pertamina EP pada tahun 2013. Selain itu, penulis juga aktif mengikuti berbagai pelatihan diluar kampus yang diantaranya Oracle database 11g SQL Fundamental 2013, Oracle database 11g Administrator 1 2014, dan Building Datawarehouse 2014. Penulis juga telah tersertifikasi untuk bidang database pada Oracle database 11g ascociate tahun 2014 dan Junior database programmer SKKNI.