Anda di halaman 1dari 6

Analisis Sentimen Review Kosmetik Bahasa

Indonesia Menggunakan Algoritma Naïve Bayes


Classifier
Putri Dinda Utami,

Departemen Teknik Informatika & Komputer, Politeknik Negeri Jakarta


Jl. Prof. Dr. G.A Siwabessy, Kampus Baru UI Depok, Indonesia, 16424
putri.dinda.tik14@mhsw.pnj.ac.id

 membaca semua komentar satu-persatu. Salah satu, algoritma


Abstract—review produk dapat ditemukan pada forum internet pembelajaran mesin untuk klasifikasi adalah Naïve Bayes
atau sosial media. Kalimat pada review dapat berupa kalimat Classifier. Pada penelitian sebelumnya oleh Lina dan Girish
positif, netral ataupun negative, akan tetapi pengguna harus yaitu Analisis Sentimen Review film menggunakan algoritma
membaca satu persatu kalimat tersebut. Untuk mempermudah
naïve bayes classifier. Kelas pada review film tersebut
mengklasifikasi review maka penulis membuat sistem analisis
sentiment. Analisis sentimen sangat berguna untuk mempunyai dua kelas yaitu positif dan negatif [2]. Dari uraian
menentukan kelas dari review pada produk dengan diatas, maka penulis akan membangun sistem analisis sentimen
menggunakan Algoritma Naïve Bayes Classifier serta kalimat bahasa Indonesia review kosmetik dengan menggunakan Naïve
pada review diolah terlebih dahulu dengan text preprocessing. Bayes Classifier.
Data uji merupakan emoticon dan kata sifat yang sudah diberi
label secara manual. Kemudian hasil dari data testing sebanyak
II. LITERATURE REVIEW
100 data pengujian menghasilkan akurasi sebesar 80%.
A. PHP (Hypertext Preprocessor)
Index Terms— algoritma naïve bayes classifier, analisis
Pada awalnya PHP merupakan kependekan dari Personal
sentimen, sentiment analisis, text-preprocessing, website forum
Home Page (Situs Personal). PHP pertama kali dibuat oleh
Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih
I. PENDAHULUAN bernama FI (Form Interpreted), yang wujudnya berupa
sekumpulan script yang digunakan untuk mengolah data form
F eedback adalah tanggapan yang diberikan oleh seorang
komunikan (penerima pesan) ketika seorang komunikator
(pemberi pesan) sedang menyampaikan pesannya. Feedback
dari web. Pada tahun 1997, sebuah perusahaan bernama Zend
menulis ulang interpreter PHP menjadi lebih bersih, lebih baik,
dan lebih cepat. Kemudian pada Juni 1998, perusahaan tersebut
dapat dikatakan sebagai tanggapan atau respon terhadap suatu
merilis interpreter baru untuk PHP dan meresmikan rilis
pesan [1]. Tanggapan dapat bermakna sentiment atau
tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi
mengekspresikan emosi. Analisa sentiment atau opinion mining
akronim berulang PHP: Hypertext Preprocessing. Sebagian
merupakan proses memahami, mengekstrak dan mengolah data
besar sintaks dalam PHP mirip dengan bahasa C, Java dan Perl,
tekstual secara otomatis untuk mendapatkan informasi
namun pada PHP ada beberapa fungsi yang lebih spesifik.
sentimen yang terkandung dalam suatu kalimat opini [1].
Sedangkan tujuan utama dari penggunaan bahasa ini adalah
Aplikasi yang berguna dari sentiment analisis adalah
untuk memungkinkan perancang web yang dinamis dan dapat
pengklasifikasian review dari produk. Kategori dari sentiment
bekerja secara otomatis. PHP juga dapat dilihat sebagai pilihan
dapat positif, netral, dan negative. Kategori positif mengandung
lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion
kata-kata yang baik dan mendukung, kategori netral adalah
Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl [3]
kandungan dari kedua kata positif dan negatif. Sedangkan kata
negatif mengandung kata-kata buruk. Penguna menulis review B. Spiral
biasanya pada forum, website komersial, blog, maupun website Merupakan model proses perangkat lunak yang memadukan
film. Pada forum produk atau kosmetik terdapat banyak wujud pengulangan dari model prototyping dengan aspek
komentar dari negatif, netral, maupun positif. Pengguna pengendalian dan sistematika dari linear sequential model,
seringkali harus membaca satu persatu komentar yang ada, dengan penambahan elemen baru yaitu analisis resiko. Model
untuk mengetahui inti dan makna dari komentar tersebut. ini memiliki empat aktivitas penting, yaitu:
Dengan adanya analisis sentimen, diharapkan sentiment dari Liason, tahap ini berhubungan dengan komunikasi antara orang
komentar dapat terdeteksi secara otomatis tanpa harus yang akan mengembangkan software (system analyst) dengan
pelanggan. Tujuannya adalah agar dapat memuaskan pelanggan D. Text Preprocessing
dengan memperbaiki dan mengembangkan software sesuai Text preprocessing adalah untuk membangun satu set fitur
dengan kebutuhan, kepentingan dan keinginannya. yang relevan dari text pada dokumen. Semua set fitur dipilih
a. Perencanaan (Planning), penentuan tujuan, alternatif, untuk koleksi dokumen yang disebut repsentional model. Setiap
dan batasan. dokumen diwakili oleh nilai numeric vector. Tujuan dari text
b. Analisis Resiko (Risk Analysis), analisis alternative preprocessing adalah untuk mengekstrak vector fitur
dan identifikasi atau pemecahan resiko. berkualitas tinggi untuk setiap dokumen, sehingga values yang
c. Analisis resiko (Risk Analysis), analisis alternatif dan diambil adalah values yang bernilai tinggi atau penting. [6]
identifikasi/pemecahan resiko.
d. Rekayasa (Engineering), pengembangan level E. Case Folding
berikutnya dari produk. Case Folding adalah konversi teks menjadi suatu bentuk
e. Evaluasi Pemakai (Customer Evaluation), penilaian standar, biasanya huruf kecil atau disebut juga lowercase.
terhadap hasil rekayasa Bentuk spiral memberikan Sebagai contoh, user meng-input “KOMPUTER”, “Komputer”,
gambaran bahwa semakin besar iterasinya, maka atau “KomPuter”, maka fungsi dari case folding adalah untuk
menunjukkan makin lengkap versi dari perangkat memberikan hasil yang sama yaitu “komputer”. Case folding
lunak yang dibuat. Selama awal sirkuit, objektif, adalah mengubah semua huruf didalam dokumen menjadi huruf
alternatif dan batasan didefinisikan serta resiko kecil. Hanya huruf ‘a-z’ yang diterima. Karakter selain huruf
diidentifikasikan dan dianalisa. akan dihilangkan dan dianggap delimiter. [5].
Jika resiko menunjukkan ada ketidakpastian terhadap
F. Tokenizing
kebutuhan, maka prototyping harus dibuat pada kuadran
rekayasa. Simulasi dan pemodelan lain dapat digunakan untuk Tokenizing adalah pemotongan string input berdasarkan
mendefinisikan masalah dan memperbaiki kebutuhan. tiap kata yang menyusunnya dan memecah sekumpulan
Pelanggan mengevaluasi hasil rekayasa (kuadran evaluasi karakter dalam suatu teks kedalam suatu kata. Pemisah dapat
pelanggan) dan membuat usulan untuk perbaikan. Berdasarkan berupa spasi, enter, dan tabulasi dianggap sebagai pemisah
masukan dari pelanggan, fase berikutnya adalah perencanaan kata [5].. Dibawah ini adalah contoh tokenizing.
dan analisis resiko. Setelah analisis resiko selalu diperiksa
apakah proyek diteruskan atau tidak, jika resiko terlalu besar,
maka proyek dapat dihentikan. Model spiral ini adalah
pendekatan yang paling realistik untuk sistem sekala besar [4].

Figure 2 Tokenizing

Figure 1 Spiral Model

C. Klasifikasi G. Stopword
Klasifikasi data terdiri dari dua proses yaitu tahap Stopword adalah berhenti pada kata-kata yang sudah
pembelajaran dan tahap pengklasifikasian. Tahap pembelajaran diprediksi dari bahasa, yaitu kata-kata yang tidak memiliki
merupakan tahapan dalam pembentukan model klasifikasi, artian atau informasi yang penting. Contoh stopword dalam
sedangkan tahap pengklasifikasian merupakan tahapan bahasa Indonesia adalah yang, di, ke, adalah, akhir, apabila, dan
penggunaan model klasifikasi untuk memprediksi label kelas lain-lain. Kata-kata tersebut akan dilewati begitu saja oleh
dari suatu data. Contoh sederhana dari teknik data mining sistem sehingga, hanya kata yang memiliki makna penting yang
klasifikasi adalah pengklasifikasian hewan berdasarkan atribut akan diambil. [5].
jumlah kaki, habitat dan organ pernafasannya akan H. Naïve Bayes Classifier
diklasifikasikan ke dalam dua label kelas yaitu unggas dan ikan.
Label kelas unggas adalah data yang memiliki jumlah kaki dua, Berbagai penelitian menggunakan Algoritma Naïve Bayes
habitatnya di darat, dan organ pernafasannya menggunakan Classifier (NBC) sebagai metode pengklasifikasian teks. Salah
paru-paru, sedangkan label kelas ikan adalah data yang kasus yang menggunakan algoritma ini untuk pengklasifikasian
memiliki jumlah kaki nol (tidak memiliki kaki), habitat di air, teks yaitu oleh [7]. Pada penelitian tersebut mengungkapkan
dan organ pernafasannya menggunakan insang. [5]. bahwa penggunaan metode NBC dapat digunakan untuk
pengklasifikasian otomatis terhadap data forum dengan tingkat
akurasi klasifikasi sebesar 73% dengan menggunakan review untuk produk kosmetik. Setelah itu, dokumen review
pengukuran efektifitas Confusion Matrix. Namun kekurangan tadi melalui tahapan preprocessing dan dokumen berhasil
pada penelitian ini masih perlu menambahkan fitur khusus diproses, kemudian dilakukannya perhitungan probabilitas dari
dalam tokenisasi kalimat sehingga dapat menghasilkan setiap kata yang sudah diproses tadi, dan dihitung berapa
klasifikasi dengan akurasi yang lebih tinggi. jumlah probabilitas dari setiap kelas yaitu positif, netral, dan
negatif. Kata probabilitas diberi label secara manual dari
database. Akan tetapi, database dari sentimen didapat dari
referensi penelitian terdahulu.
B. Text Preprocessing
Data yang diambil harus melalui tahapan teks preprocessing
Figure 3 Naïve Bayes Classifier terlebih dahulu agar lebih mudah dalam pengolahan data.
Semakin sedikit data yang diproses maka akan semakin cepat
pula kinerja sistem. Dibawah ini adalah flowchart dari tahap
preprocessing.

Start

Figure 4 Naive Bayes Classifier Dokumen


data
Keterangan:
C : Class
D : Dokumen
Wi : Kata ke-i
Case Folding
(Wi|C) : Jumlah kata wi dalam C
Count ( C ) : Jumlah kata di class C
|V| : Jumlah Vocabulary (Semua kata)

Parsing/Tokenizing

III. METHODOLOGY
A. Cara Kerja Program
Sta rt
Stopword

Dokumen
Review
Produk

Filtering
Preprocessing
Dokumen

Perhitungan
Kemunculan kata
Hasil
dan Probabilitas Dokumen

Klasifikas i

End

Hasil
Klasifikas i Figure 6 Text Preprocessing

Setelah dokumen didapatkan, pertama semua teks dari


End dokumen akan diproses menjadi huruf kecil (lowercase),
kemudian pada tahap tokenizing teks tadi akan dipotong atau
Figure 5 Flowchart Cara Kerja Program
dipisahkan sesuai spasi agar lebih mudah diproses, setelah itu
Langkah awal pada sistem ini adalah pengguna memberi pada tahap stopword kata yang tidak memiliki makna yang
tersimpan didalam database stopword akan dihilangkan dari 4 Parah langsung negatif
teks tersebut, tanpa menghilangkan makna dari teks tersebut. jerawatan menyesal
Terakhir adalah tahapan filtering yaitu kebalikan dari stopword sudah beli
tahapan filtering hanya mengambil kata-kata yang mempunyai Test 5 Aku suka banget ?
makna penting yang ada didalam data training. Berikut set penyelamat banget
dibawah ini adalah hasil dari teks preprocessing. natrep ini
Table 1 Text Preprocessing
Berikut dibawah ini adalah hasil perhitungan untuk testing
data.
Sebelum Text Setelah Text
Preprocessing Preprocessing
(1)
Dipake tiap malem suka ❤ Kalkulasikan prior probabilitas dari kelas positif, netral,
sebagai sleepingmask bisa dan negatif.
banget buat ilangin y(pos)=2/4
beruntusan, selalu ditaro y(net)=1/4
di kulkas jadi dipakenya y(neg)=1/4
adem banget trus juga
ngga lengket, satu jar bisa Kemudian mengkalkulasi nilai maksimum likelihood
buat berbulan bulan,, suka dengan menggunakan rumus.
pokonya ❤

(2)
y(suka|pos) = (2+1)/(12+23) = 3/35
C. Algoritma Naïve Bayes Classifier
y(parah|pos) = (0+1)(12+23)= 1/35
Data yang telah melalui tahap pemrosesan teks kemudian y(lumayan|pos) = (0+1)(12+23)= 1/35
dapat dilanjutkan ke tahap selanjutnya yaitu klasifikasi dengan
algoritma Naïve Bayes Classifier. Data dalam bentuk teks akan y(suka|net) = (0+1)/(12+23) = 1/35
muncul dua hasil klasifikasi teks yang mengandung positif, y(parah|net) = (0+1)(12+23)= 1/35
netral, dan negatif. Berikut ini adalah perhitungan algoritma y(lumayan|net) = (1+1)(12+23)= 2/35
Naïve Bayes Classifier:
1. Tahap awal dalam proses NBC adalah menghitung y(suka|neg) = (0+1)/(12+23) = 1/35
probabilitas masing-masing kelas dari keseluruhan y(parah|neg) = (1+1)(12+23)= 2/35
data training. y(lumayan|neg) = (0+1)(12+23)= 1/25
2. Proses testing. Proses ini intuk mengetahui keakuratan
model yang dibangun pada proses training, umumnya y(pos|d5) = 2/4*3/35*1/35*1/35= 3,49854E-05
digunakan data yang disebut test set untuk y(net|d5) = 1/4*1/35*1/35*2/35 = 1,16618E-05
memprediksi label. Metode NBC terdiri dari dua tahap y(neg|d5) = 1/4*1/35*2/35*1/25 = 1,63265E-05
dalam proses klasifikasi teks, tahap pelatihan dan y(pos|d5) > y(neg|d5) dan y(net|d5)
tahap klasifikasi. Pada tahap pelatihan dilakukan
proses analisis terhadap sample dokumen berupa Hasil dari perhitungan diatas adalah kelas positif pada d5
pemilihan vocabulary yaitu kata yang dimungkinkan mempunyai nilai yang paling tinggi, jadi kelas d5
muncul dalam koleksi dokumen sample yang menjadi mempunyai kelas positif.
representasi dokumen. Langkah selanjutnya adalah
menentukan probabilitas bagi tiap kategori
berdasarkan sampel dokumen. IV. HASIL DAN ANALISIS
Berikut dibawah ini adalah contoh perhitungan Naïve
Bayes Classifier: Pada tahap ini penulis mencoba melakukan testing
Table 2 Contoh Data Training sebanyak 100 review produk untuk menentukan kelas dari
review tersebut apakah positif, netral, atau negatif. Dengan
Set Doku Kata Kelas data testing yang terdiri dari emoticon, kata positif, netral,
men dan negatif. Berikut dibawah ini adalah tabel hasil dari
Traini 1 Aku suka natrep Positif analisis sentimen menggunakan naïve bayes classifier.
ng Set 2 Aku suka natrep gak Positif
Table 3 Hasil Uji
lengket dan ngilangin
bruntusan.
Data Set Dokumen Hasil
3 Lumayan sih tapi Netral
Awalnya beli ini karna pos
masih mau nyoba
lagi hyped banget
yang lain.
Training Set dipasaran, setelah coba
ternyata aku juga jadi bruntusannn.Dan ga da
suka bangeettt sama aloe efek ngebersihinnya
vera gel iniii!!! menurut aku.Karna abis
Texturenya gel bening ngescrub ga ada efek
yg cepet banget meresap bersihnya dan
dikulit, gak greasy, gak sebenernya yang aku
bikin muka tambah kurang srek itu pas nge
berminyak, muka jadi scrub ga berasa nge
glowing2 gimanaa gitu srucb wkwk.Karna
setelah pakai. kebiasaan pake scrub
walau kulit aku normal pos yang butirannya agak
ga ada jerawat pake ini kasar kali ya wkw
cuma melembabkan,
menghilangkan belang,
dan membuat glowing.
Pas pms kadang 1/2 aku a. TP = 75 dari of 100 review berhasil diklasifikasi.
pakein NR besoknya b. TN = 5 dari 100 review berhasil diklasifikasi, tetapi,
udah memudar. bakal tidak meyakinkan
repurchase lagi nih udah c. FP = 20 dari 100 review berhasil diklasifikasi tetapi,
jar kedua 😍 gagal
Wagelasih pertama kali pos d. FN = 0 out of 100 review tidak berhasil diklasifikasi,
pake aku udah jatuh dan gagal.
cinta sama natrep❤️ Berikut dibawah ini adalah perhitungan akurasi dari
gak ngerti lgi deh, dia sistem tersebut.
bener2 bisa bikin
beruntusan aku kabur 75 + 5 80
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = × 100% = = 80%
entah kemana, apalagi 75 + 0 + 20 + 5 100
dipakenya sama cuka
apel bener2 bisa bikin Dari hasil perhitungan akurasi dengan menggunakan
dosa2 di muka hilang rumus diatas, dapat disimpulkan hasil akurasi dari sistem
semua jadi lebih cerah tersebut adalah 80% dengan menggunakan Naïve Bayes
dan glowing😍 Classifier.
aloe vera ini bagus pos
bagus banget buat
ngatasin masalah kukit. V. KESIMPULAN & SARAN
kayak jerawat, bekas A. Kesimpulan
jerawat, dan untk
Sentimen analisis untuk membuat keputusan dari review produk
ngelembapin kulit. ya
dengan algoritma Naïve Bayes Classifier menghasilkan akurasi
walaupun dia ini emng
yang cukup bagus yaitu sebesar 80%. Sistem ini bekerja dengan
lama prosesnya tapi
baik dan lebih akurat apabila pada review tersebut terdapat
semuanya bgus banget
emoticon. Kemudian dengan menggunakan stopword dan
hasilnya. aku udh pakai
filtering pada tahap text preprocessing dapat mengurangi kata
sekitar 1 bulanan dan
dan mengurangi perhitungan Naïve Bayes Classifier, sehingga
bener bener berbuah
hanya kata penting yang akan dihitung dan dapat meningkatkan
manis..
akurasi.
Produk ini kayanya neg
produk himalaya yang
paling aku gak suka -_- B. Saran
scrubnya gede2 dan Penulis menyadari banyaknya kekurangan pada sistem ini,
kasar banget, jadi maka penulis menyarankan.
bukannya ngilangin a. Menambah lebih banyak kata pada data training.
jerawat dan komedo2 b. Menambahkan perhitungan Klasifikasi dengan fitur
tapi malah bikin Unigram dll.
beruntusan -_- alhasil c. Bandingkan dengan algoritma klasifikasi lainnya.
dia nganggur sampai
akhirnya kadaluarsa dan
berakhir ku buang
ga suka parahhh,karna neg
malah bikin
[15] W. F. Mahmudy and A. W. Widodo, "Klaisifikasi
Artikel Berita Secara Otomatis Menggunakan Metode
REFERENCES Naive Bayes Classifier yang Dimodifikasi," Tekno, vol.
21, 2014.

[1] S. Nararya, "dictio," 1 August 2017. [Online].


Available: https://www.dictio.id/t/apa-yang-dimaksud-
dengan-umpan-balik-feedback-dalam-komunikasi/9058.
[Accessed 16 July 2018].
[2] L. L. Dhande and G. K. Patnaik, "Analyzing Sentiment
of Movie Review Data using Naive Bayes Classifier,"
International Journal of Emerging Trends &
Technology in Computer Science (IJETTCS) , vol. III,
no. 4, pp. 313-320, 2014.
[3] A. L. K. Ratna, "Pengertian PHP dan MYSQL," 2018.
[4] D. S. Budi, T. A. Y. Siswa and H. Abijono, "Analisis
Pemilihan Penerapan Proyek Metodologi
Pengembangan Rekayasa Perangkat Lunak," TEKNIKA,
pp. 24-31, 2016.
[5] Informatikalogi, "Informatikalogi.com," 27 November
2017. [Online]. Available:
https://informatikalogi.com/text-preprocessing/.
[Accessed 29 Mei 2018].
[6] M. Perovšek, J. Kranjc, T. Erjavec, B. Cestnik and N.
Lavrac, "TextFlows: A Visual Programming Platform
for Text Mining for Text Mining and Natural Language
Processing," Science of Computer Programming, pp.
128-152, 2016.
[7] I. Aida, "Klasifikasi Data Forum dengan Menggunakan
Metode Naïve Bayes Classifier," Seminar Nasional
Aplikasi Teknologi Informasi (SNATI), pp. 5-10, 2014.
[8] N. D. Putranti, "Analisis Sentimen Twitter untuk Teks
Berbahasa Indonesia dengan Maximum Entropy dan
Support Vector Machine," IJCSS, vol. VIII, pp. 91-100,
2014.
[9] M. Siti, "Prr-Processing Text Mining Pada Data
Twitter," Seminar Nasional Teknologi Informasi dan
Komunikasi 2016 (SENTIKA 2016) , pp. 49-56, 2016.
[10] I. K. S. Buana, Jago Pemograman PHP, Jakarta: Dunia
Komputer, 2014.
[11] K. Budi, M. A. Fauzi and A. W. Widodo, "Klasifikasi
Berita Twitter Menggunakan Metode Improved Naïve
Bayes," Jurnal Pengembangan Teknologi Informasi dan
Ilmu Komputer , pp. 1193-1200, 2017.
[12] P. Y. R. Inggrid, A. A. Rosa and R. Faisal, "Study of
Hoax News Detection Using Naive Bayes Classifier in
Indonesian Language," International Conference on
Information & Communication Technology and System
(ICTS), pp. 73-78, 2017.
[13] E. A. Laksana, "Collaborative Filtering dan
Aplikasinya," Jurnal Ilmiah Teknologi Informasi
Terapan , vol. I, pp. 36-40, 2014.
[14] F. Mahmudy and W. Widodo, "Klasifikasi Artikel
Berita Secara Otomatis Menggunakan Metode Naive
Bayes Clasifier yang di Modifikasi," Tekno, pp. 1693-
8739, 2014.

Anda mungkin juga menyukai