Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/319005724

Deteksi Komentar Spam Bahasa Indonesia Pada Instagram Menggunakan


Naive Bayes

Article  in  Jurnal ULTIMATICS · June 2017


DOI: 10.31937/ti.v9i1.564

CITATIONS READS

12 3,808

2 authors:

Antonius Rachmat Yuan Lukito


Universitas Kristen Duta Wacana Universitas Kristen Duta Wacana
92 PUBLICATIONS   127 CITATIONS    34 PUBLICATIONS   90 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Instagram Spam View project

Penulisan Buku View project

All content following this page was uploaded by Antonius Rachmat on 09 August 2017.

The user has requested enhancement of the downloaded file.


ISSN 2085-4552

Deteksi Komentar Spam Bahasa Indonesia


Pada Instagram Menggunakan Naive Bayes
Antonius Rachmat C1, Yuan Lukito2
Prodi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Duta Wacana Yogyakarta
anton@ti.ukdw.ac.id1, yuanlukito@ti.ukdw.ac.id2

Diterima 19 Mei 2017


Disetujui 16 Juni 2017

Abstract— Instagram is the most famous pictures and web, melainkan harus menggunakan aplikasi pada
videos media sharing based on the web & mobile smartphone.
application. Instagram users can have picture posts that
can be commented by their followers. Indonesian public Salah satu hal yang menyebabkan IG banyak
figures such as actors, actresses, musicians use Instagram digunakan adalah kemudahannya untuk mengunggah
to promote their activities to their followers. foto langsung dari smartphone, mengingat pengguna
Unfortunately, there are a lot of spam comments in media sosial kebanyakan adalah orang muda dan
Instagram that need special attention and have to be sangat menyukai selfie. Namun disamping kelebihan
removed. This research grabs Instagram comments and tersebut tentu terdapat kekurangan yang cukup
builds the dataset from Indonesian public figures who
have more than one million followers. By using
mengganggu yaitu banyaknya komentar yang dapat
preprocessing (tokenization, stop words removal, and dikategorikan sebagai komentar spam terhadap suatu
stemming), TF-IDF weighting, and supervised learning, post foto yang diunggah pada IG. Komentar spam
Naive Bayes method is used to detect spam comments in akan semakin banyak terhadap IG artis/orang terkenal
Indonesian. Naive Bayes produces 74,31% accuracy rate karena follower-nya juga semakin banyak. Bahkan di
on unbalanced datasets and 77,25% accuracy rate on film Cek Toko Sebelah [1], yang baru rilis di tanggal
balanced datasets. This result shows that Naïve Bayes can 28 Desember 2016 saja diperlihakan bahwa komentar-
be used to build an automatic Indonesian spam comments komentar spam begitu mengganggu dan muncul cukup
detector on Instagram with high accuracy rate. The banyak di IG sampai digunakan sebagai salah satu
novelty of this research is that Naive Bayes can be used to
detect spam comment on our Indonesian Instagram
bahan lelucon pada film itu. Contoh komentar spam
comments dataset. pada salah satu foto milik @agnezmo dapat dilihat di
Gambar 1.
Index Terms—Instagram, Naive Bayes, Indonesian
spam comments, spam comments detection.

I. PENDAHULUAN
Instagram (IG) merupakan salah satu aplikasi
media sosial berbasis web dan mobile yang khusus
digunakan untuk mengunggah gambar / foto. IG
merupakan situs media sosial yang semakin banyak
digunakan terutama oleh para artis/aktor Indonesia.
Para pengguna IG akan mengunggah foto-foto
kegiatan mereka dan kemudian untuk masing-masing
foto / gambar tersebut akan dapat diberi caption,
tagging akun IG lainnya, lokasi tempat kejadian foto
tersebut diunggah, edit foto sesaat sebelum diunggah
langsung dari aplikasi smartphone, dan hashtag
tertentu agar foto tersebut makin banyak dilihat orang
lain. Aplikasi IG dikembangkan untuk smartphone,
baik platform iOS, Android, ataupun Windows Phone
dan bersifat gratis. IG berbasis web dapat diakses di
http://www.instagram.com. Melalui web pengguna
hanya dapat melihat foto/gambar dari akun IG lain
yang mereka ikuti, melihat dan mengedit profil
pengguna aktif, dan melihat aktivitas pengguna IG
lainnya, tapi tidak bisa mengunggah foto/gambar dari Gambar 1. Komentar Spam Instagram

50 ULTIMATICS, Vol. IX, No. 1 | Juni 2017


ISSN 2085-4552

Beberapa solusi menghadapi komentar spam sudah spam, iklan spam, click spam, link spam, berita spam,
ada, namun semuanya dilakukan secara manual. Pada dan tulisan (komentar) spam [5]. Istilah web spam
[2] dan [3], pengguna IG dapat menghapus secara (spam indexing) pertama kali muncul di tahun 1996
manual komentar spam tersebut namun jelas-jelas menurut tulisan Convey pada [6] pada harian The
membutuhkan waktu yang besar dan harus diperiksa Boston Harald. Spam pada komentar merupakan
satu persatu. Selain dihapus secara manual IG juga bentuk link spam yang muncul pada web seperti wikis,
menyediakan fitur untuk melaporkan semua komentar blogs, dan guestbooks. Beberapa diantaranya sering
sebagai spam secara manual juga, artinya harus ditemukan komentar, trackback, dan pingback spam
dilakukan satu persatu. Hal berikutnya untuk pada tulisan (blog) yang diposting seseorang [7].
meminimalisasi komentar spam adalah dengan
Menurut Hines pada [7] beberapa cara manual
mengubah akun IG menjadi privat. Hal ini tentu sulit
yang bisa digunakan untuk mendeteksi komentar spam
dilakukan bagi akun artis / aktor / publik figur, karena
adalah melihat konten teks komentar secara langsung
jika akun IG dibuat menjadi privat tidak bisa langsung
apakah spesifik terhadap tulisan atau tidak, melihat
di follow oleh akun lain. Hal terakhir yang dapat
apakah ada link pada komentar yang harus diklik atau
dilakukan adalah menggunakan pengaturan
tidak, pengguna yang berkomentar apakah
mengaktifkan fitur IG untuk menghapus komentar
menggunakan nama asli atau tidak, apakah penulis
yang mengandung kata-kata tertentu yang dimasukkan
komentar menggunakan email asli atau tidak, atau
sendiri oleh pengguna yang dianggap spam. Semua
menggunakan beberapa email yang berbeda-beda atau
solusi tersebut hanya bisa digunakan dalam bahasa
tidak. Sedangkan menurut Mishne, Carmel, & Lempel
Inggris dan tidak dapat diterapkan dalam bahasa
pada tahun 2005 pada [8] beberapa teknik untuk
Indonesia.
mengurangi komentar spam adalah menggunakan
Berdasarkan latar belakang tersebut pada registrasi sebelum posting komentar, menggunakan
penelitian ini akan dibangun suatu sistem yang dapat captcha sebelum posting komentar, tidak mengijinkan
mengklasifikasikan komentar spam berbahasa komentar berbentuk HTML, menggunakan blacklist IP
Indonesia dengan mengambil data training komentar- address, dan memberikan batasan komentar agar tidak
komentar spam pada IG beberapa artis terkenal berkali-kali memberikan komentar.
Indonesia. Terdapat beberapa metode untuk
Selain cara-cara manual seperti yang telah
klasifikasi seperti Naive Bayes, K-Nearest Neighbour,
dijelaskan sebelumnya, deteksi spam pada teks dapat
Decision Tree, atau Support Vector Machine. Metode
dilakukan secara otomatis menggunakan beberapa
klasifikasi yang digunakan dalam penelitian ini adalah
metode content based filtering, link based filtering dan
Naïve Bayes. Metode Naïve Bayes menggunakan
metode yang tidak terlalu umum seperti menggunakan
konsep probabilitas setiap kelas dalam pembelajaran
kebiasaan (behaviour) pengguna misalnya klik,
klasifikasinya, sehingga jika jarak perbedaan antar
gesture, session, dan lain-lain. Menurut Spirin & Han
kelas tidak besar. Metode ini dipilih karena mudah
pada [9] deteksi spam kebanyakan menggunakan
diimplementasikan dan tidak terlalu membutuhkan
metode berbasis isi teks / tulisan yang ditulis. Hal ini
sumber daya komputer yang besar.
dapat dilakukan dengan menggunakn beberapa metode
Penelitian ini akan mengumpulkan data berupa seperti algoritma klasifikasi pada teks seperti
status foto dan komentar dari 10 akun artis / aktor algoritma Naive Bayes [10] dan Support Vector
Indonesia yang memiliki follower lebih dari 1 juta. Machine [11].
Untuk setiap akun artis / aktor akan diambil 50 status
Naive Bayes juga sudah digunakan sebagai metode
terbaru dan semua komentarnya. Dataset yang
untuk mengklasifikasikan sentimen pada dataset teks
terbentuk akan dilakukan pelabelan secara manual
politik (SentiPol dataset) yang ternyata mencapai
menggunakan tenaga ahli untuk dapat digunakan
tingkat akurasi sebesar 82,3 %. Dataset SentiPol
sebagai data latih sistem supervised learning deteksi
dikumpulkan dari Facebook Page dan dilabeli secara
komentar spam menggunakan Naive Bayes.
crowdsourced labelling menggunakan metode
Weighted Majority Voting. Naive Bayes termasuk
II. LANDASAN TEORI algoritma yang menghasilkan nilai akurasi yang cukup
tinggi dalam klasifikasi data teks [12].
A. Tinjauan Pustaka
Penelitian yang dilakukan oleh penulis merupakan
Spam adalah “irrelevant or unsolicited messages penelitian yang akan mendeteksi spam dari teks
sent over the Internet, typically to a large number of komentar pada web media sosial Instagram berbahasa
users, for the purposes of advertising, phishing, Indonesia. Penelitian ini dimulai dari pengambilan
spreading malware, etc.” [4]. Dalam terjemahan data pelatihan dari Instagram menggunakan Instagram
bebasnya spam berarti suatu tulisan / pesan yang tidak API (Grabber) yang akan dijelaskan pada bagian
sesuai / tidak berhubungan dengan topik tertentu berikutnya. Setelah data diperoleh maka dilakukan
sehingga menyebabkan ketidaknyamanan atau bahkan pelabelan data secara manual dan kemudian dilakukan
ketidaktepatan informasi yang diperoleh pengguna. implementasi deteksi spam menggunakan algoritma
Spam dapat berwujud banyak hal, misalnya email
ULTIMATICS, Vol. IX, No. 1 | Juni 2017 51
ISSN 2085-4552

yang biasa digunakan untuk klasifikasi teks yaitu TF-IDF merupakan Term Frequency-Inverse
Naive Bayes. Keaslian penelitian terdapat pada studi Document Frequency, yang dapat digunakan untuk
kasus data yang berasal dari akun Instagram dan memberikan tingkat kepentingan token-token penentu
komentar-komentar bebahasa Indonesia. dalam klasifikasi spam seperti pada Persamaan (1)
[17]:
B. Instagram dan Instagram API
Instagram merupakan web media sosial yang tfidf (t,d,D) = tf(t,d) * idf(t,D) ……………………(1)
muncul sejak 2010 (kemudian diakuisisi oleh
Facebook tahun 2012) dan dikhususkan untuk Di mana:
menggunggah koleksi foto. Menurut Pew Research - tfidf(t,d,D) adalah bobot kepentingan suatu
Center pengguna Instagram mencapai 26% dari token yang muncul dalam suatu komentar di
pengguna Internet dewasa, dimana penggunanya seluruh komentar-komentar yang ada,
berusia 18-29 tahun [13]. Foto-foto yang diunggah dimana semakin sering muncul suatu token
dapat dilihat oleh semua followers dalam timeline-nya. dalam suatu dokumen dan semakin banyak
Instagram memiliki kekhasan yaitu: 1). Proses unggah komentar yang memilikinya akan semakin
hanya bisa dilakukan melalui aplikasi berbasis mobile
tidak penting karena token tersebut bersifat
dan aplikasinya memiliki fitur manipulasi foto seperti
sangat umum.
efek-efek foto tertentu. 2). Pengguna IG dapat
mengikuti akun pengguna lain (follow) atapun dapat - tf(t,d) adalah jumlah token yang terdapat
diikuti (di follow) oleh akun lain. Pengguna IG dapat pada satu komentar.
membuat akun profil IG nya menjadi publik dan - idf(t,D) adalah Inverse Document Frequency,
privat. 3). Semua foto yang diunggah dapat diberi yaitu log dari jumlah seluruh komentar
caption dan hashtag, termasuk tagging terhadap dibanding dengan jumlah seluruh komentar
pengguna akun lain. 4). Semua posting foto dapat dimana token tersebut muncul.
diberi komentar, di-like, bahkan dilaporkan ke IG - Rumus idf(t,D) dapat dilihat pada Persamaan
sebagai posting yang tidak baik. 5). Selain foto IG (2):
dapat digunakan juga untuk mengunggah video
berdurasi pendek (kurang lebih 1 menit) [14]. idf(t,D) = log (N / DF) …………………(2)
Instagram API (Application Programming
Di mana:
Interface) merupakan tool pemrograman berbasis
N adalah jumlah keseluruhan komentar dan
layanan yang dapat digunakan untuk mengakses dan
DF adalah jumlah kemunculan token pada
memanipulasi pencarian tag, pencarian foto, trending
semua komentar-komentar.
foto, print foto, custom item, feeds, dan komentar-
komentar yang terdapat pada Instagram menggunakan D. Algoritma Naive Bayes
bahasa pemrograman tertentu dari sisi programmer Algoritma Naive Bayes merupakan algoritma
(developer) [15]. Instagram API dapat diakses di klasifikasi berdasarkan probabilitas dalam statistik
https://www.instagram.com/developer/ menggunakan yang dikemukakan oleh Thomas Bayes yang
akun Instagram yang telah dibuat sebelumnya. Untuk memprediksi peluang di masa depan berdasarkan
dapat menggunakan Instagram API dibutuhkan : 1). peluang di masa sebelumnya. Metode ini kemudian
register API client, 2). Generate access token, 3). digabungkan dengan situasi “naive” dimana kondisi
Lakukan pembuatan aplikasi untuk mengakses hal antar atribut dalam sistem saling bebas dan tidak
yang terdapat pada Instagram [16]. berhubungan satu sama lain. Dalam data training,
setiap data traing memiliki atribut-atribut dan 1 label
C. Text Transformation dan TF-IDF Weighting class, maka probabilitas suatu data masuk ke dalam
Di dalam pengolahan data mining berupa teks, suatu label class dapat didefinisikan sebagai berikut
proses yang paling penting adalah pengubahan dari [18]:
data teks tidak terstruktur menjadi data nomimal yang 1. Diketahui D adalah data training dan label
terstruktur. Perubahan yang disebut text class-nya. Setiap data direpresentasikan
transformation tersebut, terdiri dari: 1). Tokenisasi, dalam bantuk n dimensi vektor atribut X =
yaitu pengubahan dari string besar ke dalam satu buah (x1, x2,... , xn)
kalimat/kata, 2). Pre-processing, yaitu proses data 2. Misalkan terdapat m jumlah class, C1, C2,...
cleaning, pengubahan ke huruf kecil/besar semua, ,Cm. Metode Naive Bayes akan
penghapusan kata-kata yang masuk dalam stop words, memprediksi apakah X masuk dalam class
pengubahan ke bentuk kata dasar (stemming), dan yang memiliki nilai posterior probabilitas
konversi emoticon & kata-kata khusus, serta 4). tertinggi. Naive Bayes akan memprediksi X
Token weighting, yaitu pemberian bobot (w) terhadap akan masuk ke dalam kelas Ci jika dan
token-token tersebut misalnya menggunakan TF-IDF hanya jika: P(Ci|X) > P(Cj|X) for 1 ≤ j ≤ m, j
[17] . <>i. Kemudian akan dimaksimumkan
P(Ci|X). Class terbanyak dari Ci disebut
52 ULTIMATICS, Vol. IX, No. 1 | Juni 2017
ISSN 2085-4552

dengan maximum posteriori hypothesis yang Dalam arti prediksi terhadap class dengan
dihitung menggunakan Persamaan (3): probabilitas terbesar dihitung dengan
Persamaan (7).

........(3)
3. Karena P(X) bersifat tetap untuk semua
class, maka hanya P(X | Ci) P(Ci) yang harus (7)
dimaksimumkan. Jika prior probabilitas dari E. Confusion Matrix
class tidak diketahui, maka secara umum
diasumsikan semua class sama P(C1) = Untuk melakukan pengujian terhadap sistem,
P(C2) = ... = P(Cm). Perlu diingat bahwa dilakukan evaluasi akurasi sistem dalam
prior probabilitas dari class diestimasi mengklasifikasikan sentimen pada dataset dengan
dengan P(Ci) = |Ci,D| / |D|, dimana |Ci,D| menggunakan confusion matrix [19] seperti pada
adalah jumlah training data yang termasuk Tabel 1 berikut.
dalam class Ci di dataset D.
4. Untuk dataset yang memiliki banyak atribut
maka kompleksitas komputasi akan sangat Tabel 1. Confusion Matrix
tinggi, sehingga perlu direduksi dengan cara Class Hasil Prediksi
mengasumsikan semua kondisi class bersifat Negatif Positif
saling bebas (independence). Hal ini
menganggap bahwa nilai antar atribut saling Class Negatif True False Negatif
tidak mempengaruhi satu sama lain, sebenarnya Negatif (FN)
sehingga dapat didefinisikan : (TN)
Dimana probabilitas P(x1| Ci), P(x2| Ci),...,
Positif False True Positif
P(xn| Ci) dapat diperoleh dengan mudah dari
Positif (FP) (TP)
data training. Dimana xk adalah nilai yang
ada di atribut Ak untuk data X. Untuk setiap Di mana:
atribut, harus dilihat apakah nilai atribut - True negatif = jumlah data negatif yang
bersifat kategorikal atau nilai kontinu. benar dikategorikan sebagai class negatif
 Jika Ak bersifat kategorikal, maka - False negatif = jumlah data negatif yang
P(xk|Ci) adalah jumlah data xk yang dikategorikan sebagai class positif
memiliki class Ci di data training D - False positif = jumlah data positif yang
dibagi dengan |Ci,D|, jumlah seluruh dikategorikan sebagai class negatif
data class Ci di data training D. - True positif = jumlah data positif yang benar
 Jika Ak bersifat kontinu, seperti dikategorikan sebagai class positif
misalnya data umur, data angka
lainnya, yang tidak bisa dikategorikan, Dari confusion matrix pada Tabel 1 dapat
maka data tersebut harus dibuat dalam dilakukan perhitungan lebih lanjut untuk
rentang nilai, menggunakan Gaussian mendapatkan tingkat akurasi (accuracy), recall,
Distribution dengan Persamaan (4) dan precision dan f-measure dengan Persamaan (8) –
(5) Persamaan (13).

Accuracy = (TN + TP) / (TN + FP + FN + TP) .......(8)

..............(4) Recall / True Positive Rate = TP / (FP + TP).......... (9)

Sehingga diperoleh P(xk| Ci) = g(xk, False Positive Rate = FN / (TN + FN) ..................(10)
µCi, σCi) ........................................(5)
. Specificity / True Negative = FP / (FP + TP) .........(11)
5. Untuk memprediksi label class untuk data X,
P(X|Ci) P(Ci) maka prediksi dilakukan untuk Precision = TP / (FN + TP) ...................................(12)
setiap class Ci. Metode Naive Bayes akan
memprediksi class untuk X adalah Ci jika F-Measure = 2 * TP / (2 * TP + FP + FN ............ (13)
dan hanya jika (Persamaan (6)):
III. METODE PENELITIAN
P(X|Ci)P(Ci) > P(X|Cj)P(Cj) for 1 ≤ j ≤ m, j
<>i. ...................................................... (6). Metode penelitian yang dilakukan dalam penelitian
ini terdiri atas lima tahap sebagai berikut:

ULTIMATICS, Vol. IX, No. 1 | Juni 2017 53


ISSN 2085-4552

1. Tahap studi literatur digunakan untuk


mempelajari algoritma Naive Bayes yang
digunakan, termasuk mempelajari kode
program pembuatan Instragram data collector
menggunakan Instagram API (tool Instagram
Grabber) [20].
2. Tahap pengumpulan data digunakan untuk
mengumpulkan data yang berhubungan
dengan penelitian yang akan dilakukan.
Tahap ini akan menggunakan Instagram API
untuk pengambilan data dari Instagram yang
berasal dari 10 artis Indonesia yang memiliki
follower lebih dari 1 juta. Pada tahap ini juga
Gambar 3. Ilustrasi metode k-fold validation dengan
termasuk pre-processing data.
nilai k = 10.
3. Tahap implementasi, yaitu tahap untuk
melakukan pelabelan secara manual tentang Ringkasan dari pengujian yang akan dilakukan
spam / bukan spam dan kemudian dilanjutkan dapat dilihat pada Tabel 2.
dengan melakukan implementasi kedua Tabel 2. Ringkasan Rancangan Pengujian
metode menggunakan aplikasi dan
RapidMiner 7.5. Tahap ini termasuk Parameter Nilai
Metode validasi k-Fold Validation
pembobotan, features selection, dan
Metrik pengujian Confusion Matrix
klasifikasi. Jumlah data 17000 data
4. Tahap analisis dan evaluasi bertujuan untuk Tool RapidMiner 7.5
Kriteria output yang Accuracy dan Classification
menganalisis penggunaan kedua metode yang dihasilkan
kemudian dibandingkan keakuratan keduanya Sampling tape Shuffled sampling
menggunakan confusion matrix.
Seluruh tahapan penelitian dapat dilihat pada IV. HASIL DAN PEMBAHASAN
diagram alir Gambar 2 berikut:
A. Implementasi Pengambilan Data
Data diperoleh diambil langsung dari web
Instagram menggunakan teknik scrapping
menggunakan tool PHP Instagram Grabber [19] yang
tersedia di GitHub dan dapat diunduh secara gratis.
Tool ini dibuat oleh Thomas Bolander dan Kristian
Vassard dari Denmark sejak 9 Juni 2016 (versi 1.0.4)
di GitHub. Tool ini memungkinkan penulis untuk
mengambil data-data komentar Instagram dari seorang
Gambar 2. Tahapan Penelitian pemilik akun Instagram yang bersifat publik seperti
artis Indonesia tanpa menggunakan username dan
A. Pengumpulan Data password developer. Teknik yang digunakan oleh tool
ini adalah menggunakan teknik scrapping halaman-
Pengujian terhadap implementasi kedua metode
halaman HTML dari Instagram dan kemudian di-
akan dilakukan terhadap seluruh data uji yang telah
parsing otomatis berbasis PHP.
diambil dari 10 akun Instagram artis Indonesia yang
memiliki follower lebih dari 1 juta akun. Data uji akan Penggunaan tool PHP Instagram Grabber adalah
disimpan dalam basis data yang berisi data username sebagai berikut:
IG artis, posting IG, tanggal posting, dan semua
1. Pengaturan PHP Instagram Grabber pada
komentar dari 50 status terbaru, siapa yang
server ‘localhost’. Tambahkan sesuai
berkomentar, dan tanggal komentar.
kebutuhan seperti pengaturan:
set_time_limit(0) untuk memproses data
B. Metode Pengujian yang jumlahnya besar dan lama. Pengaturan
Pengujian akan dilakukan menggunakan metode k- proxy juga jika perlu menggunakan pada
fold validation dengan nilai k = 10. Metode pengujian variabel CURLOPT_PROXY=> <IP
ini dilakukan dengan cara membagi dataset menjadi 10 address proxy> dan
bagian yang sama. Dalam 10 iterasi, setiap bagian CURLOPT_PROXYPORT => <no
dari dataset digunakan sebagai data uji, sedangkan port>.
bagian lainnya digunakan sebagai data pelatihan. 2. Menggunakan method
Bolandish\Instagram::getMediaB
Ilustrasi k-fold validation dapat dilihat pada Gambar 3. yUserID("<id
54 ULTIMATICS, Vol. IX, No. 1 | Juni 2017
ISSN 2085-4552

instagram>",<jumlah post yang Pelabelan relatif mudah karena sangat jelas sekali
hendak diambil>). perbedaan antara komentar spam dan bukan spam.
3. Menggunakan perulangan yang dilakukan
untuk mengambil semua komentar untuk Tabel 3 merupakan profil hasil klasifikasi
masing-masing post yang diambil di langkah pelabelan manual menggunakan tenaga pakar untuk
2 sebelumnya dengan perintah dataset Instagram yang telah dikumpulkan. Dari
Bolandish\Instagram::getCommen rencana jumlah data 25.000, pada saat pengambilan
tsByMediaShortcode(<kode post tidak semua post memiliki komentar 50 komentar
yg didapat dari langkah 2>, sehingga realisasi pengambilan data terdapat pada
<jumlah komentar yg hendak Tabel 3.
diambil>).
4. Data-data komentar tersebut dimasukkan / Tabel 3. Profil Hasil Pelabelan Instagram 10 Artis
diekspor ke format lain seperti CSV atau Indonesia
TXT. No. Artis Nama Kelas dan Jumlah
1. Ayu Ting-Ting Spam (1262), Bukan Span (584)
Berikut adalah rencana pengambilan data untuk 2. Julia Perez Spam (1362), Bukan Spam (739)
pembentukan dataset komentar spam dari Instagram 3. Nagita Slavina Spam (1435), Bukan Spam (610)
artis Indonesia: 4. Syahrini Spam (922), Bukan Spam (448)
5. Laudya Cinthia Bella Spam (902), Bukan Spam (688)
1. Data post akan diambil dari 10 akun aktor / 6. Prili Ratuconsina Spam (437), Bukan Spam (1091)
artis Indonesia yang memiliki jumlah 7. Chelsea Olivia Spam (1625), Bukan Spam (293)
follower terbanyak berdasarkan sumber [21] 8. Luna Maya Spam (965), Bukan Spam (275)
sebagai berikut: 9. Raisa Spam (666), Bukan Spam (621)
• Ayu Tingting @ayutingting92: 10. Agnes Monica Spam (1143), Bukan Spam (940)
JUMLAH SPAM
522969993 - 18.4 juta followers 10.719
• Syahrini @princessyahrini:
JUMLAH BUKAN SPAM
24239929 - 16.8 juta followers 6.288
• Raffi Ahmad Nagita Slavina TOTAL KESELURUHAN
@raffinagita1717: 1918078581 - 17.007
15.7 juta followers
• Laudya Chinthia Bella B. Implementasi Preprocessing Data
@laudyacynthiabella: 2993265 - Setelah data terkumpul dalam format CSV langkah
14.8juta followers berikutnya adalah tahap pre-processing (cleaning
• Prilli Ratucosina data) agar nantinya dapat dimasukkan dalam basis
@prillylatuconsina96: 225064794 - data MySQL dengan mudah. Proses cleaning
14.8juta followers dilakukan secara langsung pada file CSV nya dengan
• Julia Perezz @juliaperrezz: cara:
30585021 - 12.3 juta followers
1. Menggunakan format karakter unicode UTF-
• Chelsea Olivia @chelseaoliviaa:
8 karena semua karakter hasil Instagram
5735890 - 12.6 juta followers
menggunakan simbol-simbol dan karakter
• Raisa @raisa6690: 8115577 - 12.1
unicode.
juta followers
• Luna Maya @lunamaya: 1948416 - 2. Konversi karakter khusus seperti emoticon
11.6 juta followers menjadi istilah-istilah seperti yang
• Agnes Monica @agnezmo: 4934196 ditampilkan pada Tabel 4 berikut:
- 11.3 juta followers.
2. Dari setiap akun artis / aktor akan diambil 50 Tabel 4. Konversi Emoticon dari Instagram
post terbaru. No. Karakter Emoticon Konversi
3. Dari setiap post yang terambil dari langkah 2 1 :) Senyum
akan diambil 50 komentar terbaru, sehingga 2 (y) Suka
terdapat data sekitar 10 artis x 50 post x 50 3 ~_~ Netral
komentar = 25000 komentar. 4 (Y) Suka
4. Dari 25000 komentar tersebut akan dibuat 5 :* Cium
6 =)) Senyum
dalam format CSV per akun artis dan 7 :D Senyum
kemudian dilakukan preprocessing data pada 8 Like atau like Suka
bagian berikutnya. 9 YES, Yes, atau yes Suka

Setelah data terambil menggunakan tool Grabber, 3. Cleansing: menghapus karakter-karakter


langkah berikutnya adalah melakukan pelabelan data. seperti: ~, `, !, $, %, ^, &, *, (, ), _, -, +, =, :,
Pelabelan data dilakukan secara manual menggunakan “, ‘, <, >, koma, titik, ?, /, \, dan |.
tenaga pelabel ahli. Proses pelabelan memakan waktu 4. Membuang semua spasi yang berjumlah lebih
sekitar 1 bulan untuk semua data. Pelabelan dilakukan dari satu dan menggabungkannya menjadi
hanya dengan 2 kelas, yaitu “spam” dan “notspam”. satu spasi saja. Membuang semua spasi di

ULTIMATICS, Vol. IX, No. 1 | Juni 2017 55


ISSN 2085-4552

awal dan akhir kalimat (trim), dan komentar=DELETE_DOUBLE_SPACES(


menghapus semua baris yang kosong. komentar)
5. Membuang semua angka, string dengan 5. Menghapus semua kata pada komentar yang
format URL, dan email. memiliki jumlah karakter <= 1, dengan
memanggil stored procedure / function
C. Implementasi Basis Data ALPHA, dengan perintah SQL: update
Setelah semua data CSV sudah melalui tahapan komentar set komentar=
cleaning data, maka langkah selanjutnya dilakukan ALPHA(komentar)
pembuatan basis data yang terdiri dari 3 tabel: 6. Menghapus spasi di awal dan akhir komentar
stopwords, komentar, dan artist, sesuai skema pada dengan SQL: update komentar set
Gambar 4 berikut. komentar=trim(komentar).
Setelah semua proses cleaning data pada MySQL
dilakukan maka hasil data terakhir yang siap
digunakan untuk proses learning klasifikasi berjumlah
16.641 data yang dapat dilihat pada Tabel 5 berikut.
Tabel 5. Hasil Akhir Proses Data Cleaning
No. Kelas Jumlah
1. Spam 10.399
2. Not Spam 6.062
TOTAL 16.641

D. Implementasi Deteksi Spam


Deteksi spam menggunakan software RapidMiner
versi 7.5 dengan konfigurasi operator-operator seperti
Gambar 4. Skema Basis Data pada Gambar 6 dan 7 berikut.

Setelah dibuat semua tabel pada basis data MySQL


langkah berikutnya adalah mengimpor semua CSV ke
dalam tabel artis dan komentar menggunakan tool
import pada MySQL. Contoh data komentar setelah
diimpor dapat dilihat pada Gambar 5 berikut.

Gambar 5. Contoh Data Komentar


Setelah data berada di dalam MysQL, tahap
berkutnya adalah proses cleaning yang dilakukan Gambar 6. Konfigurasi RapidMiner (Bagian 1)
dengan langkah sebagai berikut:
1. Mengatur jenis karakter pada MySQL
menjadi UTF-8.
2. Menghapus semua karakter ? setelah proses
impor dari CSV karena perbedaan karakter,
dengan SQL: update komentar set
komentar=replace(komentar,’?’,
’ ‘)
3. Menghapus semua komentar yang jumlah
hurufnya <= 1 dengan SQL: delete from
komentar where
length(komentar)<=1
4. Mengubah semua spasi yang lebih dari satu
menjadi satu spasi dengan memanggil stored
procedure DELETE_DOUBLE_SPACES, Gambar 7. Konfigurasi RapidMiner (Bagian 2)
dengan perintah SQL: update komentar
set

56 ULTIMATICS, Vol. IX, No. 1 | Juni 2017


ISSN 2085-4552

E. Pengujian Skenario I (Unbalanced Dataset) tersebut dilakukan pengujian menggunakan teknik k-


Skenario I adalah pengujian di mana data yang fold validation dengan k=10, artinya data uji untuk
digunakan untuk training berjumlah 10.399 untuk masing-masing pengujian berjumlah 606 (10%) dan
data spam dan 6062 untuk data not spam. Dari data hasilnya akan dirata-rata. Dari hasil percobaan
tersebut dilakukan pengujian menggunakan teknik k- menggunakan skenario II dan ditampilkan seperti
fold validation dengan k=10, artinya data uji untuk dalam bentuk pie chart pada Gambar 9 diperoleh hasil
masing-masing pengujian berjumlah 1646 (10%) dan pada Tabel 7 sebagai berikut:
hasilnya akan dirata-rata.
Dari hasil percobaan menggunakan skenario I
(seperti pada Tabel 5 sebelumnya) yang ditampilkan
dalam bentuk pie chart seperti pada Gambar 8,
diperoleh hasil seperti pada Tabel 6.

Gambar 9. Profil Data Skenario II

Tabel 7. Hasil Confusion Matrix Skenario II


menggunakan Naïve Bayes

True Spam True Not Spam


Predicted 3468 (TP) 164 (FP) 95.48 %
Gambar 8. Profil Dataset Skenario I Spam (precision)
Predicted Not 2594 (FN) 5898 (TN) 69.45 %
Tabel 6. Hasil Confusion Matrix Skenario I Spam (fallout)
menggunakan Naïve Bayes 57.21 % 97.29%
(recall) (specificity)
True Spam True Not Spam
Predicted 6388 (TP) 217 (FP) 96,71%
Spam (precision) Waktu proses keseluruhan: 6.31 menit
Predicted Not 4011 (FN) 5845 (TN) 59,30% Proses validasi: 4.56 menit
Spam (fallout)
61,43% 96,42%
(recall) (specificity) Dari hasil pada Tabel 7 tersebut diperoleh hasil:
- Accuracy = 77,25 %
Waktu proses keseluruhan : 12.33 menit - Classification error = 22,75 %
Proses validasi: 10.24 menit - Sensitivity (Recall) = 57,21 %
- Specificity = 97, 29 %
Dari hasil pada Tabel 6 tersebut diperoleh hasil: - Precision = 95,48 %
- Accuracy = 74,31 % - F-Measure = 71,5 %
- Classification error = 25,69 %
- Sensitivity (Recall) = 61,43 % Hal ini menujukkan bahwa untuk dataset
- Specificity = 96,4 % pelatihan yang seimbang antara spam dan bukan spam
- Precision = 96,71 % akurasi klasifikasinya baik (di atas 75%).
- F-Measure = 75, 13 % Dilihat dari kedua pengujian menggunakan
skenario I dan II diperoleh peningkatan akurasi
Hal ini menujukkan bahwa untuk dataset sebesar 2,94% pada data profil yang seimbang. Dari
pelatihan yang tidak seimbang antara spam dan bukan penelitian ini algoritma Naïve Bayes jelas dapat
spam akurasi klasifikasinya sudah cukup baik (di atas digunakan untuk sistem detektor spam pada data
70%). komentar Instagram berbahasa Indonesia.
Berdasarkan hal tersebut, beberapa penelitian yang
F. Pengujian Skenario II (Balanced Dataset) masih dapat dikembangkan dari penelitian ini adalah
Skenario II adalah pengujian di mana data spam membangun aplikasi / sistem dalam bentuk service
dan not spam dibuat menjadi seimbang, sehingga dan diimplementasikan pada plugin browser baik
yang digunakan untuk training berjumlah 6062 untuk desktop ataupun mobile untuk mendeteksi dan
data spam dan 6062 untuk data not spam. Dari data

ULTIMATICS, Vol. IX, No. 1 | Juni 2017 57


ISSN 2085-4552

menandai komentar spam pada Instagram saat [3] D. Tamir, "How To Protect Yourself From Instaspam -
ReadWrite", ReadWrite, 2015. [Online]. Available:
pengguna membuka halaman Instagram. http://readwrite.com/2015/04/15/instagram-spam-instaspam-
how-to-avoid/. [Accessed: 24- Jan- 2017].
V. SIMPULAN [4] M. Webster, "Definition of SPAM", Merriam-webster.com,
2016. [Online]. Available: https://www.merriam-
Berdasarkan penelitian yang telah dilakukan maka webster.com/dictionary/spam. [Accessed: 26- Jan- 2016].
diperoleh beberapa kesimpulan sebagai berikut: [5] Geerthik S., "Survey on Internet Spam: Classification and
Analysis", Int.J.Computer Technology & Applications, vol. 4,
1. Penelitian ini sudah berhasil no. 3, pp. 384-391, 2013.
mengimplementasikan algoritma Naïve Bayes [6] E. Convey, "Porn sneaks way back on web", The Boston
pada studi kasus deteksi komentar spam Herald, 1996.
menggunakan data Instagram berbahasa [7] K. Hines, "How to Identify and Control Blog Comment
Indonesia. Tingkat akurasi yang didapatkan Spam. Kissmetrics Blog", Kissmetrics Blog, 2012.
sudah cukup baik di atas 75%, yaitu 77,25%. [8] G. Mishne, D. Carmel and R. Lempel, "Blocking Blog Spam
with Language Model Disagreement", in The First
2. Penelitian ini telah menguji kemampuan International Workshop on Adversarial Information Retrieval
algoritma klasifikasi Naive Bayes dan on the Web (AIRWeb), Chiba, Japan, 2005.
diperoleh akurasi sebesar 74,31 % untuk [9] N. Spirin and J. Han, "Survey on web spam detection", ACM
skenario I (dataset tidak seimbang) dan SIGKDD Explorations Newsletter, vol. 13, no. 2, p. 50, 2012.
akurasi sebesar 77,25% untuk skenario II [10] S. Raschka, "Naive Bayes and Text Classification {I} -
Introduction and Theory", CoRR, vol. 14105329, no.
(dataset seimbang). Terjadi peningkatan 14105329, pp. 1-20, 2014.
keakuratan sebesar 2,94 % untuk dataset
[11] D. Sculey and G. Wachman, "Relaxed Online SVMs for
seimbang. Spam Filtering", in Proceedings of the 30th Annual
International ACM SIGIR Conference on Research and
3. Tahapan preprocessing data Instagram bahasa Development in Information Retrieval, Amsterdam, The
Indonesia yang perlu dilakukan untuk Netherlands, 2007, pp. 415--422.
pemrosesan data deteksi komentar spam dari [12] A. Rachmat and Y. Lukito, "SENTIPOL: Dataset Sentimen
Instagram adalah: setting encoding teks ke Komentar Pada Kampanye PEMILU Presiden Indonesia 2014
encoding Unicode (UTF-8), tokenisasi, case dari Facebook Page", in Konferensi Nasional Teknologi
Informasi dan Komunikasi 2017, Univerasitas Kristen Duta
folding, stop words removal, stemming, dan Wacana, 2016, pp. 218-228.
konversi emoticon. [13] M. Duggan, N. Ellison, C. Lampe, A. Lenhart and M.
Madden, "Social Media Update 2014", Pew Research Center:
Sedangkan saran-saran yang masih perlu Internet, Science & Tech, 2014. [Online]. Available:
dikerjakan untuk penelitian selanjutnya adalah: http://www.pewinternet.org/2015/01/09/social-media-update-
2014/. [Accessed: 30- Jan- 2017].
1. Tahap stemming masih perlu dilakukan dan [14] Instagram, "Instagram Developer Documentation",
diuji apakah memiliki pengaruh terhadap Instagram.com. [Online]. Available:
hasil akurasi atau tidak. https://www.instagram.com/about/. [Accessed: 28- Jan-
2016].
2. Melakukan tahapan perbandingan dengan [15] S. Roncero-Menendez, "8 Ways to Use Instagram's API",
algoritma lain yaitu menggunakan metode Mashable, 2017. [Online]. Available:
Support Vector Machine. http://mashable.com/2013/09/19/instagram-api-
uses/#mSrayzI6Dmq3. [Accessed: 28- Feb- 2016].
3. Dapat dikembangkan lebih lanjut ke [16] E. This, "Everything You Need to Know About Instagram
pengembangan plugin browser yang secara API Integration | CSS-Tricks", CSS-Tricks, 2016. [Online].
otomatis mendeteksi komentar spam saat Available: https://css-tricks.com/everything-need-know-
instagram-api-integration/. [Accessed: 28- Jan- 2016].
menampilkan halaman Instagram dan
[17] S. M. Weiss, N. Indurkhya, T. Zhang and F. Damerau , Text
menandainya sehingga pengguna mining: Predictive Methods for Analyzing Unstructured
mengetahuinya. Information, New York: Springer, 2005.
[18] J. Han and M. Kamber, Data mining. Haryana, India:
Elsevier, 2012.
UCAPAN TERIMA KASIH
[19] U. DBD, "Confusion Matrix", Www2.cs.uregina.ca, 2017.
Terima kasih penulis berikan kepada Lembaga [Online]. Available:
Penelitian dan Pengabdian Kepada Masyarakat http://www2.cs.uregina.ca/~dbd/cs831/notes/confusion_matri
x/confusion_matrix.html. [Accessed: 28- Jan- 2016].
Universitas Kristen Duta Wacana (UKDW)
[20] T. Bolander, "Bolandish/PHP-Instagram-Grabber", GitHub,
Yogyakarta yang telah memberikan dana penelitian 2016. [Online]. Available: https://github.com/Bolandish/PHP-
untuk tahun 2017. Instagram-Grabber. [Accessed: 01- Feb- 2017].
[21] M. Deoranje, "musdeoranje.net: 10+ Akun Instagram Dengan
DAFTAR PUSTAKA Followers Terbanyak Di Indonesia", musdeoranje.net, 2015.
[Online]. Available:
[1] E. Prakasa, Cek Toko Sebelah. Jakarta: Starvision Plus, 2016. http://www.musdeoranje.net/2016/08/akun-instagram-
[2] M. Eskelinen, "How to get rid of spam on Instagram", Mervi dengan-followers-terbanyak-di-indonesia.html. [Accessed: 8-
Emilia, 2015. [Online]. Available: Feb- 2017].
http://merviemilia.com/blog/2015-02-how-to-get-rid-of-spam-
on-instagram. [Accessed: 24- Jan- 2017].

58 ULTIMATICS, Vol. IX, No. 1 | Juni 2017

View publication stats

You might also like