Anda di halaman 1dari 16

Pembuatan Aplikasi Datamining Facebook dan Twitter dengan

Nave Bayes Classifier

Yosef Ganisaputra, Robby Tan


Program Studi S1Teknik Informatika, Fakultas Teknologi Informasi
Universitas Kristen Maranatha, Bandung
email: yos_gani@yahoo.com, robby.tan@itmaranatha.org

Abstract
Facebook and Twitter are 2 social networking that have so many registered
members. Every single person usually has account in one of those social networking
website. Facebook and Twitter users can post a statement or something to say in
their profile. Unfortunately, not all status that published is appropriate to be seen in
the public. MyStatement is a PHP application that can collect data using Facebook
and Twitter API (Application Programming Interface) which can show information
about users status whose logged in this application. Every status that collected is
classified into positive, negative, or neutral status using Nave Bayes Classifier
algorithm for sentiment analysis. User can get recommendation for posting positive
status by using MyStatement application.
Keywords: Facebook, Nave Bayes Classifier, sentiment analysis, Twitter

1. PENDAHULUAN

Facebook adalah sebuah layanan jejaring sosial dan situs web yang diluncurkan
pada bulan Februari 2004 yang dimiliki dan dioperasikan oleh Facebook,
Inc. Pada Mei 2012, Facebook memiliki lebih dari 900 juta pengguna aktif dan
terus bertambah hingga saat ini. Situs ini menyediakan fitur yang membuat
pengguna dapat mengatur profil pribadi, menambahkan pengguna lain sebagai
teman, dan bertukar pesan. Selain itu, pengguna dapat bergabung dengan grup
pengguna dengan ketertarikan yang sama, berdasarkan tempat kerja, sekolah
atau perguruan tinggi, maupun ciri khas lainnya.

173

Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188

Sebuah layanan web yang lain adalah Twitter. Twitter ini dimiliki dan
dioperasikan oleh Twitter Inc., yang menawarkan jejaring sosial berupa
mikroblog sehingga memungkinkan penggunanya untuk mengirim dan
membaca pesan yang disebut kicauan(tweets). Kicauan adalah teks tulisan
hingga 140 karakter yang ditampilkan pada halaman profil pengguna. Twitter
memiliki istilah follower dan following. Follower adalah orang yang dapat
membaca kicauan pengguna, sedangkan following adalah orang yang dikuti atau
dengan kata lain orang yang dapat dibaca kicauannya.
Facebook dan Twitter memberikan kesempatan bagi penggunanya untuk
melakukan update status. Tidak jarang status tersebut berbicara mengenai halhal yang berbau negatif. Tentu saja energi negatif yang dihasilkan dari
statustersebut mampu mempengaruhi pembaca yang lain, baik dalam hal mood
maupun emosi. Status negatif inilah yang mendorong penulis untuk melakukan
penelitian ini. Penulis berharap dengan adanya aplikasi ini, pengguna mampu
menyadari status mana yang mengandung hal positif dan negatif. Selain itu,
penulis juga berharap pengguna dapat menjadi lebih terdorong atau termotivasi
untuk membagikan suatu status yang lebih positif atau membangun.

2. LANDASAN TEORI
2.1 Sentiment Analysis

Tugas dasar dalam analisis sentimen adalah mengelompokkan polaritas dari


teks yang ada dalam dokumen, kalimat, atau fitur/tingkat aspek dan menentukan
apakah pendapat yang dikemukakan dalam dokumen, kalimat atau fitur
entitas/aspek bersifat positif, negatif atau netral.Lebih lanjut sentimentanalysis
dapat menyatakan emosional sedih, gembira, atau marah[7].
Ekspresi atau sentiment mengacu pada fokus topik tertentu, pernyataan pada
satu topik mungkin akan berbeda makna dengan pernyataan yang sama pada
subject yang berbeda. Sebagai contoh, adalah hal yang baik untuk mengatakan
alur film tidak terprediksi, tapi adalah hal yang tidak baik jika tidak terprediksi
dinyatakan pada kemudi dari kendaraan. Bahkan pada produk tertentu, kata-kata
yang sama dapat menggambarkan makna kebalikan, contoh adalah hal yang

174

Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)

buruk untuk waktu start-up pada kamera digital jika dinyatakan lama, namun
jika lama dinyatakan pada usia batere maka akan menjadi hal positif. Oleh
karena itu pada beberapa penelitian, terutama pada review produk, pekerjaan
didahului dengan menentukan elemen dari sebuah produk yang sedang
dibicarakan sebelum memulai proses opinionmining [3].
Hal pertama dalam pemrosesan dokumen adalah memecah kumpulan karakter
ke dalam kata atau token, sering disebut sebagai tokenisasi. Tokenisasi adalah
hal yang kompleks untuk program komputer karena beberapa karakter dapat
dapat ditemukan sebagai token delimiters. Delimiter adalah karakter spasi, tab
dan baris baru (newline), sedangkan karakter ( ) <> ! ? kadang dijadikan
delimiter namun, kadang juga bukan, tergantung pada lingkungannya [11].
Jadi sentimentanalysis atau opinionmining ini mengacu pada bidang yang luas
dari pengolahan bahasa alami, komputasi linguistik dan textmining.Secara
umum, bertujuan untuk menentukan attitude seorang penulis berkenaan dengan
topik tertentu. Attitude mungkin penilaian atau evaluasi, pernyataan afektif
(pernyataan emosional saat menulis) atau komunikasi emosional dimaksud
(efek emosional penulis inginkan terhadap pembaca).

2.2 Nave Bayes Classifier (NBC)

NaveBayesclassifier adalah classifier probabilistik sederhana berdasarkan


penerapan teorema Bayes (dari statistik Bayesian) dengan asumsi independen
(naif) yang kuat. Sebuah istilah yang lebih deskriptif untuk model probabilitas
yang digarisbawahi adalah "model fitur independen".
Dalam terminologi sederhana, sebuah NBC mengasumsikan bahwa kehadiran
(atau ketiadaan) fitur tertentu dari suatu kelas tidak berhubungan dengan
kehadiran (atau ketiadaan) fitur lainnya. Sebagai contoh, buah mungkin
dianggap apel jika merah, bulat, dan berdiameter sekitar 4 inchi. Bahkan jika
fitur ini bergantung satu sama lain atau atas keberadaan fitur lain. Sebuah NBC
menganggap bahwa seluruh sifat-sifat berkontribusi mandiri untuk probabilitas
bahwa buah ini adalah apel.

175

Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188

Tergantung pada situasi yang tepat dari model probabilitas, NBC dapat dilatih
sangat efisien dalam supervised learning. Dalam aplikasi praktis, parameter
estimasi untuk model NBC menggunakan metode likelihood maksimum,
dengan kata lain, seseorang dapat bekerja dengan model NaveBayes tanpa
mempercayai probabilitas Bayesian atau menggunakan metode Bayesian
lainnya [10].
Dibalik desain naifnya dan asumsi yang tampaknya terlalu disederhanakan,
NBC telah bekerja cukup baik dalam banyak situasi dunia nyata yang
kompleks. Pada tahun 2004, analisis masalah klasifikasi Bayesian telah
menunjukkan bahwa ada beberapa alasan teoritis untuk keberhasilan yang
tampaknya tidak masuk akal dari NBC. Selain itu, perbandingan yang
komprehensif dengan metode klasifikasi lainnya pada tahun 2006 menunjukkan
bahwa klasifikasi Bayes mengungguli pendekatan terbaru, seperti boostedtree
atau randomforest.
Sebuah keuntungan dari NBC adalah hanya memerlukan sejumlah kecil data
pelatihan untuk mengestimasi parameter (rata-rata dan varian dari variabel)
yang diperlukan untuk klasifikasi. Karena variabel diasumsikan independen,
hanya varian dari variabel untuk setiap kelas yang perlu ditentukan dan bukan
keseluruhan covariancematrix.
NBC didasari oleh teorema Bayes | =

   |
 

. X adalah datasample

yang label kelasnya belum diketahui. H adalah hipotesis data sample X. Untuk
classification, P(H|X) adalah probabilitas hipotesis H dipenuhi terhadap sample
data X.
Misalnya terdapat suatu buah yang digambarkan dengan warna dan bentuknya.
X: merah dan bulat. H: X adalah apel. Maka, P(H|X) adalah keyakinan bahwa X
adalah apel karena X adalah merah dan bulat. P(H) adalah prior probability dari
H, probabilitas bahwa data sample adalah apel, tanpa peduli bagaimana wujud
sample. P(X|H) adalah posteriorprobability untuk X, probabilitas observasi
sampleX, bila hipotesis dipenuhi. P(X) adalah prior probability dari X, yaitu
probabilitas bahwa sampel data adalah merah dan bulat. Cara kerja Nave Bayes
Classifier adalah:
1. Tiap data sampel dengan n atribut disajikan dalam bentuk n-dimensional
feature vector, X = (x1,x2,.,xn)

176

Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)

2. Misalkan terdapatm kelas, C1 ,C2 , Cm.Dengan data sample X, NBC akan


memprediksi bahwa X adalah anggota kelas yang memiliki posterior
probability tertinggi dengan kondisi X. Sesuai teorema Bayes, maka NBC
   |
memiliki persamaan | =
. Namun, karena P(X) selalu
 

konstan untuk seluruh kelas (positif,negatif,dan netral), maka pada


persamaan tersebut P(X) dapat dihilangkan.
Ringkasan algoritma untuk Nave Bayes Classifier adalah sebagai berikut:
1. Proses pelatihan. Input adalah dokumen-dokumen contoh yang telah
diketahui kategorinya. Kosakata himpunan semua kata yang unik dari
dokumen-dokumen contoh. Untuk setiap kelas i lakukan :
a. Docsi Himpunan dokumen-dokumen yang berada pada kelas i
b. Hitung P(Ci)
c. Untuk setiap kata X pada kosakata, hitung P(Ci|X)
2. Proses klasifikasi. Input adalah dokumen yang belum diketahui kategorinya.
Hitung P(Ci|X) untuk masing-masing kelasnya (positif, negatif, dan netral)
menggunakan P(Ci) dan P(X|Ci) yang telah diperoleh dari proses pelatihan.
2.3 Modifikasi Nave Bayes Classifier

Dalam pengaplikasiannya, NaveBayesClassifier seringkali tidak hanya dipakai


begitu saja, namun masih perlu beberapa modifikasi untuk meningkatkan
performansi algoritma itu sendiri. Beberapa modifikasi yang dapat dilakukan
adalah:
1. Preprocessing ini adalah tahap awal yang dilakukan untuk memulai suatu
proses sentimentanalysis. Dalam preprocessing ini, ada beberapa tahapan
yang harus dijalankan, yaitu:
a. Mengubah seluruh teks status menjadi huruf kecil (lowercase).
b. Menghapus url yang terdapat pada teks status (http://www....com).
c. Menghapus tag (@) beserta username yang dituju.
d. Menghapus hashtag (#).
e. Mengubah
repeating
letters,
contohnya hunggrryyy
atau huuuungry menjadi 'hungry'.
f. Menghapus punctuation seperti comma, single/double quote,
questionmarks yang terdapat pada teks status, contohnya beautiful!!!!!
diganti dengan beautiful.

177

Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188

g. Melakukan filtering kata yang berawalan bukan huruf, seperti 15th atau
5:34am.
2. Stopwordremoval adalah proses penghapusan kata-kata yang dirasa kurang
memiliki sentiment dan dapat dihapus. Contoh dari stopword bahasa Inggris
adalah is, a, all. Untuk bahasa Indonesia, seperti nama bulan, kata ganti,
dan kata hubung.
3. N-Grams adalah suatu proses yang dilakukan untuk menangani kata negasi
seperti (not, isnt). Selain itu, N-Grams juga digunakan untuk menangani
kemunculan phrase dalam suatu teks status. Pada sentimentanalysis, NGrams yang biasa digunakan adalah bigram(two-word combination).
Contohnya jika terdapat suatu teks Serviceisbad, maka akan ditokenisasi
dengan unigram dan bigram menjadi Service, is, bad, Serviceis, isbad.
4. Laplaciancorrection adalah suatu penghalusan dengan menambahkan satu
(+1) dari aturan NaveBayes. Jika dokumen berisi T istilah yang tidak
terjadi dalam salah satu dokumen dalam kategori C, maka Prob (T | C) akan
diperkirakan sebagai 0. Kemudian Prob produk (Ci) * Prob (T1 | Ci) * Prob
(T2 | Ci) * ... * Prob (Tm | Ci) akan sama dengan 0, tidak peduli berapa
banyak bukti lain ada mendukung Ci. Solusinya adalah dengan melakukan
laplaciancorrection sehingga tidak akan ada yang membuat kemunculannya
0.

3. ANALISA DAN RANCANGAN SISTEM


3.1 Use Case Diagram

Gambar 1 merupakan rancangan usecase diagram pada sistem. Usecase pada


Gambar 1 memiliki 1 actor dan 7 usecase yang dapat dilakukannya di dalam
sistem, antara lain Login, LikePage/Follow, Posting, Suggest, Logout,
ViewConclusion,dan ShareConclusion.

178

Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)

Gambar 14 Use Case Diagram

179

Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188

3.2 Entity Relationship Diagram

Rancangan basis data akan digambarkan pada Entity Relationship Diagram


seperti pada Gambar 2. Jenis Entity Relationship Diagram yang digunakan
adalah Crows Foot.

Gambar 15 Entity Relationship Diagram


4. HASIL PENELITIAN

Tampilan pada Gambar 3 merupakan tampilan ketika user berhasil login. Pada
tampilan ini terdapat 3 bagian, pertama adalah bagian informasi user yang
sedang login di dalam sistem. Bagian kedua adalah bagian informasi yang berisi
jumlah dan persentase status yang positif, negatif, dan netral. Bagian terakhir
adalah bagian yang berisi semua status positif dan negatif user tersebut.

180

Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)

Gambar 16 Tampilan Halaman User

181

Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188

Gambar 4 merupakan tampilan ketika user ingin melakukan posting suatu


status. Aplikasi ini akan menampilkan user-user yang pernah login ke dalam
sistem beserta status-status user tersebut. Status tersebut dapat menjadi acuan
untuk user melakukan posting status positif dari aplikasi ini. Tombol post yang
berada pada halaman ini berfungsi untuk melakukan pengecekan apakah status
tersebut termasuk positif. Jika tidak, maka aplikasi ini melakukan posting status
tersebut.

182

Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)

Gambar 17 Tampilan Halaman Recommended Status

183

Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188

Berdasarkan penelitian dan pengujian yang telah dilakukan, maka didapatkan


hasil mengenai penerapan optimasi algoritma Nave Bayes Classifier pada
sentimentanalysis sebagai berikut.
1. Percobaan ke-1
Percobaan pertama ini dilakukan dengan menggunakan 150 data uji
yang terdiri dari 50 data positif(25 bahasa Indonesia dan 25 bahasa
Inggris), 50 data netral(25 bahasa Indonesia dan 25 bahasa Inggris), dan
50 data negatif(25 bahasa Indonesia dan 25 bahasa Inggris).

60
50
Standar

40

Preprocessing
30

Stopword Removal

20

N-Grams

10

Semua Optimasi

0
Netral

Positif

Negatif

Gambar 18 Grafik Hasil Pengujian Pertama


Hasil:
Standar
Preprocessing
Stopword Removal
N-Grams
Semua Optimasi

: Netral = 46, Positif = 42, Negatif = 40


: Netral = 47, Positif = 47, Negatif = 36
: Netral = 45, Positif = 49, Negatif = 37
: Netral = 42, Positif = 49, Negatif = 35
: Netral = 43, Positif = 50, Negatif = 38

Akurasi:
Perhitungan akurasi dengan rumus :
!"#$% =

& '( *+ , *+ -


./
& '( 01 2 34-

!"#$% 9: %$;$ =

184

100%

46 + 42 + 40
100% = 85,33 %
50 + 50 + 50

Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)

47 + 47 + 36
100% = 86,67 %
50 + 50 + 50
45 + 49 + 37
!"#$% H; IDJK$L =
100% = 87,33 %
50 + 50 + 50
42 + 49 + 35
!"#$% 9 O$J% =
100% = 84 %
50 + 50 + 50
43 + 50 + 38
!"#$% DJ#$ PJ$% =
100% = 87,33 %
50 + 50 + 50
2. Percobaan ke-2
Percobaan kedua ini dilakukan dengan menggunakan 300 data uji yang
terdiri dari 100 data positif(50 bahasa Indonesia dan 50 bahasa Inggris),
100 data netral(50 bahasa Indonesia dan 50 bahasa Inggris), dan 100
data negatif(50 bahasa Indonesia dan 50 bahasa Inggris).
!"#$% DED%%F =

120
100
Standar

80

Preprocessing
60

Stopword Removal

40

N-Grams
Semua Optimasi

20
0
Netral

Positif

Negatif

Gambar 19 Grafik Hasil Pengujian Kedua


Hasil:
Standar
Preprocessing
Stopword Removal
N-Grams
Semua Optimasi

: Netral = 94, Positif = 80, Negatif = 81


: Netral = 92, Positif = 78, Negatif = 78
: Netral = 98, Positif = 73, Negatif = 74
: Netral = 91, Positif = 85, Negatif = 73
: Netral = 95, Positif = 92, Negatif = 75

185

Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188

Akurasi:
94 + 80 + 81
100% = 85 %
100 + 100 + 100
92 + 78 + 78
!"#$% DED%%F =
100% = 82,67 %
100 + 100 + 100
98 + 73 + 74
!"#$% H; IDJK$L =
100%
100 + 100 + 100
= 81,67 %
91 + 85 + 73
!"#$% 9 O$J% =
100% = 83 %
100 + 100 + 100
95 + 92 + 75
!"#$% DJ#$ PJ$% =
100%
100 + 100 + 100
= 87,33 %
!"#$% 9: %$;$ =

3. Percobaan ke-3
Percobaan ketiga ini dilakukan dengan menggunakan 450 data uji yang
terdiri dari 150 data positif(75 bahasa Indonesia dan 75 bahasa Inggris),
150 data netral(75 bahasa Indonesia dan 75 bahasa Inggris), dan 150
data negatif(75 bahasa Indonesia dan 75 bahasa Inggris).

160
140
120

Standar

100

Preprocessing

80

Stopword Removal

60

N-Grams

40

Semua Optimasi

20
0
Netral

Positif

Negatif

Gambar 20 Grafik Hasil Pengujian Ketiga

186

Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)

Hasil:
Standar
Preprocessing
Stopword Removal
N-Grams
Semua Optimasi

: Netral = 141, Positif = 119, Negatif = 127


: Netral = 140, Positif = 109, Negatif = 126
: Netral = 141, Positif = 108, Negatif = 121
: Netral = 135, Positif = 132, Negatif = 114
: Netral = 139, Positif = 132, Negatif = 122

Akurasi:
141 + 119 + 127
100% = 86%
150 + 150 + 150
140 + 109 + 126
!"#$% DED%%F =
100% = 83,33%
150 + 150 + 150
141 + 108 + 121
!"#$% H; IDJK$L =
100%
150 + 150 + 150
= 82,22%
135 + 132 + 114
!"#$% 9 O$J% =
100% = 84,67 %
150 + 150 + 150
139 + 132 + 122
100%
!"#$% DJ#$ PJ$% =
150 + 150 + 150
= 87,33 %
!"#$% 9: %$;$ =

Rata-rata akurasi NBC Standar = (85,33%+85%+86%) / 3


Rata-rata akurasi Preprocessing = (86,67%+82,67%+83,33%) /3
Rata-rata akurasi Stopword Removal = (87,33%+81,67%+82,22%) / 3
Rata-rata akurasi N-Grams = (84%+83%+84,67%) / 3
Rata-rata akurasi Semua Optimasi= (87,33%+87,33%+87,33%) / 3

5. SIMPULAN DAN SARAN

Berdasarkan hasil penelitian yang telah didapat, maka dapat ditarik beberapa
simpulan antara lain:
1. Dengan menggunakan 6000 data training yang terdiri dari 2000 kalimat
netral, 2000 kalimat positif, dan 2000 kalimat negatif, untuk

187

= 85,44%
= 84,22%
= 83,74%
= 83,89%
= 87,33%

Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188

mengklasifikasi 150 data testing yang terdiri dari 50 kalimat netral, 50


kalimat positif, dan 50 kalimat negatif, maka NaveBayesClassifier dapat
memberikan hasil dengan akurasi hingga 85,44%.
2. Dengan menggunakan penambahan metode preprocessing akurasi dapat
mencapai hingga 84,22%. Dengan metode stopwordremoval akurasi dapat
mencapai hingga 83,74%. Dengan metode Unigram dan Bigram akurasi
dapat mencapai hingga 83,89%. Sedangkan keseluruhan optimasi tersebut
dapat memberikan hasil dengan akurasi hingga 87,33%.

DAFTAR PUSTAKA
[1]

Agarwal, A. (2011). Sentiment Analysis of Twitter Data. New York, USA.

[2]

Ayuliana. (2009). Testing dan Implementasi. Jakarta, DKI Jakarta, Indonesia.

[3]

Barber, I. (2010). Bayesian Opinion Mining. PHPir: http://phpir.com/bayesianopinion-mining. Diakses:17/03/2013.

[4]

Crane, M. (2011). Entity-Relationship (ER) Data Modelling. Dublin, Ireland.

[5]

Davis, E. (2012). Naive Bayes for Classifying Text. New York City, New York,
USA.

[6]

Dumas, M. (2001). UML Activity Diagrams as a Work Specification Language.


Brisbane, Australia.

[7]

Liu, B. (2012). Opinion Mining. Chicago, United States of America.

[8]

Pak, A., & Paroubek, P. (2011). Twitter as a Corpus for Sentiment Analysis and
Opinion Mining. Orsay, France.

[9]

Pressman, R.(2001). Software Engineering. McGraw-Hill:New York.

[10] Sumartini Saraswati, N. W. (2011). Text Mining dengan Metode Naive Bayes
Classifier dan Support Vector Machines untuk Sentiment Analysis. Denpasar,
Bali, Indonesia.
[11] Triawati, C. (2009). Text Mining. Bandung, Jawa Barat, Indonesia.
[12] Wang, S., & Manning, C. (2012). Baselines and Bigrams: Simple, Good Sentiment
and Topic Classication. Stanford, California, USA.
[13] Zambonini, D. (2010). Self-Improving Bayesian Sentiment Analysis for Twitter.
United Kingdom.
[14] Zhang, H. (2004). The Optimality of Naive Bayes. Fredericton, New Brunswick,
Canada.

[15] Zulkarnaen. (2010). UML Class Diagram. Bogor, Jawa Barat, Indonesia.

188

Anda mungkin juga menyukai