KLASIFIKASI SPAMMER PADA TWITTER BERDASARKAN PERILAKU PENGGUNA MENGGUNAKAN ALGORITME C5.0
TANTRIYANA PUSPA ANGGITASARI
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2015
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA* Dengan ini saya menyatakan bahwa skripsi berjudul Klasifikasi Spammer pada Twitter Berdasarkan Perilaku Pengguna Menggunakan Algoritme C5.0 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, Desember 2015 Tantriyana Puspa Anggitasari NIM G64134036
ABSTRAK TANTRIYANA PUSPA ANGGITASARI. Klasifikasi Spammer pada Twitter Berdasarkan Perilaku Pengguna Menggunakan Algoritme C5.0. Dibimbing oleh IMAS SUKAESIH SITANGGANG dan HUSNUL KHOTIMAH. Twitter menjadi salah satu media sosial yang populer di dunia maya. Twitter dapat dijadikan sarana penyebaran informasi dalam status mereka, hal ini membuka peluang bagi beberapa pihak untuk menyebarkan spam. Penelitian ini bertujuan untuk mengidentifikasi karakteristik perilaku spammer di Twitter. Penelitian ini difokuskan terhadap perilaku pengguna tetapi tidak pada isi konten tweet pada Twitter. Algoritme klasifikasi yang digunakan adalah algoritme C5.0 yang menghasilkan model klasifikasi pohon keputusan dan berbasis aturan. Klasifikasi dilakukan pada data Twitter pada periode Januari 2015 – Agustus 2015. Penelitian ini menggunakan 11 atribut yang menunjukan perilaku pengguna Twitter. Klasifikasi spammer menggunakan algoritme C5.0 telah berhasil dilakukan, akurasi pada model pohon keputusan dengan 4 jumlah aturan adalah 91% sedangkan pada model berbasis aturan dengan 3 jumlah aturan adalah 91%. Atribut yang muncul pada aturan pohon keputusan dan berbasis aturan adalah usia akun dan rataan tweet per hari. Kata kunci: C5.0, klasifikasi spammer, perilaku spammer, spammer, Twitter
ABSTRACT TANTRIYANA PUSPA ANGGITASARI. Classification of Spammers on the Twitter Based on User Behaviour using C5.0 Algoritme. Supervised by IMAS SUKAESIH SITANGGANG and HUSNUL KHOTIMAH. The twitter has became one of the populer social media in the virtual world. The Twitter could be used as a facility of information spreading on their status, this open the chance for the people to spread spam. The purpose of this research is to identify the spammers behaviours on the Twitter. This research focused on user’s behaviour but not on the tweet content of Twitter. Classification algorithm used is C5.0 that results classification model in form of a tree and a rule based model. Classification was performed on the Twitter data in January 2015 – August 2015. This research used 11 attributes that indicase user’s behaviour. Spammer classification that use the C5.0 algorithm was successfully performed, accuracy of tree model with 4 classification rules is about 91% whereas accuracy of the rule based model with 3 classification rules is about 91%. The attribute that appeared on the tree and rule based on the rules are age user’s and average tweet per day. Keywords: behaviour of spammers, C5.0, classification spammers, spammer, Twitter
KLASIFIKASI SPAMMER PADA TWITTER BERDASARKAN PERILAKU PENGGUNA MENGGUNAKAN ALGORITME C5.0
TANTRIYANA PUSPA ANGGITASARI
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 2015
Penguji : 1. Muhammad Asyhar Agmalaro, SSi MKom
Judul Skripsi : Klasifikasi Spammer pada Twitter Berdasarkan Perilaku Pengguna Menggunakan Algoritme C5.0 Nama : Tantriyana Puspa Anggitasari NIM : G64134036
Disetujui oleh
Dr Imas Sukaesih Sitanggang, SSi MKom Pembimbing I
Husnul Khotimah, SKomp MKom Pembimbing II
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul “Klasifikasi Spammer pada Twitter Berdasarkan Perilaku Pengguna Menggunakan Algoritme C5.0”. Skripsi ini disusun sebagai syarat mendapatkan gelar Sarjana Komputer (SKomp) pada Program Sarjana Ilmu Komputer di Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor (IPB). Penulis menyadari bahwa selama mengerjakan tugas akhir ini mengalami berbagai kendala. Akan tetapi berkat kerja sama dan bimbingan dari berbagai pihak dan atas berkat rahmat Allah subhanahu wa ta’ala kendala yang dihadapi dapat diselesaikan dengan baik. Untuk itu penulis ucapkan terima kasih kepada mamah, papah, serta seluruh keluarga atas segala dukungan, doa dan kasih sayangnya. Penulis juga ucapkan terima kasih kepada Ibu Dr Imas Sukaesih Sitanggang, SSi MKom dan Ibu Husnul Khotimah, SKomp MKom selaku pembimbing yang telah sabar, tulus, dan ikhlas meluangkan waktu, tenaga, dan pikiran dalam memberikan bimbingan, motivasi, arahan dan saran yang bermanfaat bagi penulis. Penulis juga ucapkan terima kasih kepada Bapak Muhammad Asyhar Agmalaro, SSi MKom selaku penguji atas saran dan masukan yang diberikan. Begitu pula rasa terima kasih penulis kepada rekan-rekan Program Alih Jenis angkatan 8 yang menjadi bagian hidup penulis selama menempuh pendidikan di Program Alih Jenis Ilmu Komputer FMIPA IPB. Semoga karya ilmiah ini bermanfaat.
Bogor, Desember 2015 Tantriyana Puspa Anggitasari
DAFTAR ISI DAFTAR TABEL
ix
DAFTAR GAMBAR
ix
DAFTAR LAMPIRAN
ix
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
2
Tujuan Penelitian
2
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
TINJAUAN PUSTAKA
3
Microblogging
3
Twitter
3
Twitter API
3
Spammer Detection
3
Algoritme C5.0
4
METODE
5
Tahapan Penelitian
5
Pengumpulan Data
6
Praproses Data
6
Pembuatan Model Klasifikasi menggunakan Algoritme C5.0
7
Perhitungan Akurasi
7
Analisis dan Evaluasi Model Klasifikasi
8
Lingkungan Pengembangan
8
HASIL DAN PEMBAHASAN
9
Pengumpulan Data
9
Praproses Data
10
1.
Seleksi Data
11
2.
Transformasi Data
11
Pembuatan Model Klasifikasi menggunakan Algoritme C5.0
14
Karakteristik Spammer
15
Analisis dan Evaluasi Model Klasifikasi SIMPULAN DAN SARAN
16 17
Simpulan
17
Saran
18
DAFTAR PUSTAKA
18
LAMPIRAN
20
RIWAYAT HIDUP
27
DAFTAR TABEL 1. 2. 3. 4. 5. 6. 7.
Confusion matrix hasil klasifikasi Hasil seleksi pada fungsi getUser Contoh beberapa dataset pada fungsi userTimeline Hasil seleksi pada fungsi userTimeline Hasil penggabungan fungsi getUser dan userTimeline Penggunaan atribut dalam model klasifikasi Confusion matrix untuk model deteksi spammer
7 11 11 12 12 16 17
DAFTAR GAMBAR 1. 2. 3. 4. 5.
Tahapan penelitian Tahapan praproses data Tampilan aplikasi pengelolaan pada Twitter Model pohon keputusan untuk klasifikasi spammer dan nonspammer Sebaran usia akun dan rataan tweet per hari
6 6 9 15 16
DAFTAR LAMPIRAN 1. Fungsi pada package twitteR yang digunakan pada penelitian 2. Dataset sebanyak 120 akun Twitter yang digunakan pada penelitian 3. Contoh penggunaan algoritme C5.0
20 22 24
PENDAHULUAN Latar Belakang Twitter merupakan sebuah situs microblogging yang populer (Hu et al. 2013). Twitter menjadi salah satu media sosial yang populer di Indonesia sejajar dengan Facebook. Kemenkominfo (2013) menyatakan bahwa pengguna internet di Indonesia mencapai 63 juta orang, 95 % di antaranya mengakses media sosial. Indonesia menempati peringkat ke-4 untuk pengguna terbanyak Facebook dan peringkat ke-5 untuk Twitter. Twitter digandrungi oleh semua usia mulai dari remaja hingga dewasa. Twitter dapat mengirimkan pesan pendek dengan jumlah karakter maksimal 140 karakter. Pesan tersebut biasa disebut dengan tweet. Twitter dikategorikan sebagai microblogging service. Microblogging merupakan blog dimana penggunanya dapat mengirimkan sebuah pesan teks (status) yang singkat, baik untuk dilihat semua orang atau kelompok terbatas yang dipilih oleh pengguna tersebut. Twitter menyediakan informasi begitu besar. Ada banyak informasi dalam Twitter yang sifatnya up to date dan informasi tersebut sangat bermanfaat untuk sebagian orang. Akan tetapi, meskipun menarik dengan adanya kemudahan dalam penyebaran berita dan memungkinkan pengguna untuk membahas berita tersebut dalam status mereka, layanan ini juga membuka peluang adanya spam (Benevenuto et al. 2010). Penelitian deteksi spammer pada Twitter dapat dilakukan 2 cara yaitu berdasarkan perilaku pengguna dan berdasarkan konten atribut. Penelitian yang menyajikan deteksi spammer berdasarkan konten atribut seperti pada penelitian Ghosh et al. (2012) mengenai fungsi search pada Twitter yang memudahkan pencarian trending topic dan berita terkini yang menarik perhatian spammer. Tweet spammer biasanya didorong untuk menyebarkan informasi dengan cara mengirim tautan URL dengan tujuan agar pengguna Twitter mengunjungi URL (Song et al. 2011), selain itu spammer juga melakukan banyak mention ke akun non followers. Hasil penelitian Grier et al. (2011) juga menyebutkan bahwa Twitter spam lebih berhasil memaksa pengguna untuk mengklik URL dibanding email spam dengan rasio klik 0.13%. Perkembangan spamming tidak terhenti hanya mengirimkan tweet sampah, tetapi sudah menjurus ke arah penipuan dan lainnya. Spam merupakan penyalahgunaan dalam pengiriman berita dari jaringan komunikasi dan memiliki berbagai bentuk dan definisi yang berbeda tergantung pada jenis jaringannya. Akibatnya banyak pengguna yang merasa terganggu oleh banyaknya tweet sampah tersebut, untuk mengatasi hal ini diperlukan suatu filter yang dapat membedakan spammer atau nonspammer. Benevenuto et al (2010) telah melakukan deteksi spammer berdasarkan perilaku pengguna dan konten atribut dengan menggunakan algoritme Support Vector Machine. Penelitian fokus terhadap pendeteksian spammer pada tweets yang termasuk spam. Data yang digunakan dalam penelitian ini adalah tweets yang mengemukakan trending topic pada tahun 2009, yaitu Michael Jakcson‟ death, Susan Boyle‟s emergence dan #musicmonday. Atribut yang digunakan dalam penelitian ini meliputi 39 atribut yang berupa konten tweets, dan 23 atribut tentang perilaku user. Pada penelitian ini, berhasil mengenal kelas spammer sebesar 70 %
2 dan 96 % kelas nonspammer, selain fokus terhadap tweets yang termasuk spam dapat juga dilakukan klasifikasi berdasarkan perilaku pengguna. Oleh karena itu, penelitian ini akan fokus terhadap perilaku pengguna bukan pada isi konten tweet pada Twitter, karena dalam melakukan penyeleksian berdasarkan perilaku pengguna lebih mudah dan lebih cepat dilakukan dibandingkan konten atribut. Penyeleksian berdasarkan konten atribut harus melihat satu per satu kata dalam teks yang di posting oleh user, sedangkan berdasarkan perilaku hanya melihat sifat dari user seperti jumlah followers, jumlah following, jumlah tweet, rasio followers per following, usia akun pengguna, rataan tweet per hari, jumlah reply, rataan, median, minimum dan maksimum selang waktu antara tweet. Model klasifikasi dibangun dengan menggunakan bahasa pemograman R dengan package C50. Algoritme C5.0 adalah salah satu algoritme data untuk melakukan klasifikasi dengan pemodelan pohon keputusan (tree) dan pemodelan berbasis aturan (rule based). Model klasifikasi ini diharapkan dapat memberikan informasi karakteristik perilaku pengguna spammer dan nonspammer.
Perumusan Masalah Perumusan masalah dalam penelitian ini adalah : 1. Bagaimana mengklasifikasikan spammer atau nonspammer pada Twitter degan menggunakan algoritme C5.0 ? 2. Bagaimana karakteristik perilaku spammer pada akun Twitter ?
Tujuan Penelitian Tujuan penelitian ini adalah : 1. Membuat model klasifikasi perilaku akun spammer atau nonspammer di Twitter menggunakan metode pohon keputusan dan berbasis aturan. 2. Menentukan karakteristik perilaku spammer berdasarkan pemodelan algoritme C5.0.
Manfaat Penelitian Penelitian ini bisa menghasilkan pemodelan klasifikasi spammer dan dapat mengetahui karakteristik perilaku pengguna akun spammer atau nonspammer pada Twitter.
Ruang Lingkup Penelitian Ruang lingkup pada penelitian ini antara lain : 1. Penelitian ini dilakukan pada media sosial Twitter, dengan jumlah 120 akun Twitter. 2. Penelitian ini fokus terhadap perilaku user, bukan pada isi konten tweet pada Twitter dan menggunakan 11 atribut yaitu jumlah followers, jumlah following, jumlah tweet, rasio followers per following, usia akun pengguna, rataan tweet
3 per hari, jumlah reply, rataan, median, minimum dan maksimum selang waktu antara tweet. 3. Implementasi algoritme C5.0 yang tersedia pada R.
TINJAUAN PUSTAKA Microblogging Microblogging adalah salah satu jenis komunikasi, pengguna dapat menulis dan mempublikasikan status (kurang dari 200 karakter) yang dikirim melalui instant messaging, email atau web (Java et al. 2007). Seperti blog pada umumnya yang melakukan posting sederhana. Beberapa layanan microblogging menawarkan fitur seperti pengaturan privasi untuk mengontrol siapa saja yang dapat membaca microblog mereka.
Twitter Twitter merupakan salah satu contoh microblogging yang banyak dipakai. Pada Twitter pengguna tidak hanya bisa membaca tweet tetapi pengguna bisa memberi tautan tweet melalui antarmuka situs web, pesan singkat, atau melalui aplikasi untuk perangkat lunak seluler. Twitter mengalami perkembangan yang sangat pesat, Twitter dapat mengirimkan pesan pendek dengan jumlah karakter maksimal 140 karakter untuk setiap tweet (Benevenuto et al. 2010).
Twitter API Aplikasi programming interface merupakan sebuah aplikasi yang diciptakan Twitter untuk developer mengakses informasi. Twitter API terdiri dari dua komponen yang berbeda, REST dan SEARCH API. REST API memungkinkan developer Twitter untuk mengakses data core Twitter (tweet, timeline, user data). SEARCH API digunakan untuk membuat query tweet, termasuk menyediakan informasi tentang trending topics (Wang 2010).
Spammer Detection Spam adalah pesan atau email yang dikirimkan secara massal tanpa dikehendaki oleh penerimanya. Arti dari “secara massal“ yaitu pesan yang merupakan bagian dari sekumpulan pesan yang memiliki isi yang sama (Spamhaus 2004). Pengiriman spam menggunakan perangkat elektronik. Tindakan menyebarkan spam disebut dengan spamming, sedangkan orang yang melakukan spam disebut spammer. Selain dari Spamhaus (2004), Drucker et al (1999) mengartikan spam merupakan pesan yang tidak diinginkan oleh penerimanya tanpa menyebutkan secara detail apa pesan tersebut dikirimkan secara massal atau tidak. Fitur yang
4 digunakan pada penelitian Benevenuto et al (2010) adalah jumlah followers, jumlah following, rasio folowers per following, jumlah tweet, usia akun pengguna, jumlah mention, jumlah tweet yang dibalas user, jumlah tweet user membalas seseorang, jumlah followers yang di dalam following, jumlah tweet yang diterima following, jumlah tweet yang di post per hari dan per minggu, nilai rataan jangka waktu antara tweet, nilai median jangka waktu antara tweet, nilai minimum jangka waktu antara tweet, dan nilai maksimum jangka waktu antara tweet.
Algoritme C5.0 Algoritme C5.0 merupakan perluasan dari algoritme C4.5. Algoritme C5.0 adalah salah satu algoritme klasifikasi yang terdapat dalam data mining, yang khususnya diterapkan pada decision tree. C5.0 adalah algoritme klasifikasi yang dapat menangani kumpulan data besar. Govindarajan (2007) menyatakan bahwa algoritme C5.0 meningkatkan pada pengguna memori sekitar 90 %, lebih cepat daripada C4.5. Algoritme C5.0 lebih baik daripada C4.5 dalam hal akurasi, kecepatan dan memori (Rulequest 2012). Menurut Pati et al (2012) pemilihan atribut dalam algoritme C5.0 diproses dengan menghitung besarnya nilai information gain. Dalam memilih atribut untuk memecahkan objek harus pilih atribut yang menghasilkan information gain paling besar. Model klasifikasi yang digunakan adalah pohon keputusan (tree) dan berbasis aturan (rule based). Model pohon keputusan merupakan suatu diagram yang mirip dengan struktur pohon seperti flowchart, dimana masing-masing simpul merupakan atribut, masing-masing cabang menunjukan nilai dari atribut, dan masing-masing simpul daun menunjukan label kelas. Pada model berbasis aturan terdiri dari kondisi if-then yang merupakan penurunan dari model pohon keputusan (Han et al. 2012). Algoritme Generate_decision_tree adalah sebagai berikut: 1. D, merupakan dataset yang telah ditentukan label kelasnya. 2. Attribute_list, merupakan atribut kandidat yang menggambarkan suatu dataset. 3. Attribute_selection_method, merupakan suatu prosedur untuk memilih atribut yang mengolah tuple yang diberikan berdasarkan kelas masingmasing. Algoritme klasifikasi pohon keputusan adalah sebagai berikut (Han et al. 2012): 1. Buat simpul N. 2. Jika tuple di D memiliki kelas yang sama yaitu C maka jadikan N sebagai simpul daun dan beri label C. 3. Jika attribute_list kosong, maka jadikan simpul N sebagai simpul daun dan diberi label dengan kelas yang terbanyak. 4. Terapkan attribute_selection_attribute untuk mendapatkan atribut split yang terbaik. 5. Beri label simpul N dengan atribut split. 6. Jika atribut split bernilai diskret dan dapat dipisahkan, maka 7. Attribute_list <- attribute_list – atribut split 8. Untuk setiap nilai j dari atribut split, yaitu Buat Dj menjadi kumpulan data tuple untuk memenuhi hasil j.
5
Jika Dj kosong, maka tambahkan simpul daun dengan label dari kelas yang terbanyak. Selainnya, tambah cabang baru dengan memanggil fungsi Generate_decision_tree (Dj, attribute_list) ke simpul N. 9. Kembali ke N. Pada algoritme ini pemilihan atribut yang akan diproses menggunakan information gain paling besar. Nilai information gain terbesar ditentukan sebagai atribut pemisah untuk simpul N. Dalam pemilihan ukuran atribut yang didefinisikan pada atribut A dapat dilihat pada Persamaan 1 (Han et al. 2012): Info(D) = -∑m i Pi log Pi
(1)
dimana Pi adalah proposi kelas dalam output seperti pada kelas |Ci.D|/|D|. Atribut A memiliki nilai tertentu (a1, a2, …, av). Atribut A dapat digunakan pada partisi D ke dalam v subset (D1,D2,…,Dv), dimana Dj berisi sample pada D yang bernilai aj pada A. Jika A dipilih sebagai atribut tes (sebagai contoh atribut untuk split), maka subset ini akan berhubungan pada cabang dari node himpunan D, untuk mendapatkan informasi nilai subset dari atribut A tersebut maka digunakan formula pada Persamaan 2 (Han et al. 2012): InfoA(D) = -∑vj
Dj D
nfo Dj
(2)
Untuk mendapatkan nilai gain yang diperoleh pada atribut A dapat dilihat pada Persamaan 3 sebagai berikut: Gain (A) = Info(D) – InfoA(D)
(3)
Gain(A) menyatakan bahwa ada berapa banyak cabang yang akan diperoleh pada A. Atribut A dengan information gain tertinggi, maka Gain(A) dipilih sebagai atribut pada node.
METODE Penelitian ini difokuskan terhadap perilaku pengguna dengan atribut sebanyak 11, dan tidak menggunakan isi konten tweet pada Twitter. Data yang digunakan dalam penelitian ini adalah data yang diambil dari Twitter menggunakan Twitter API. Akun yang digunakan terdiri dari 99 akun perorangan dan 21 akun instansi atau lembaga. Data berjumlah 120 data dan diperoleh selama periode Januari 2015 sampai dengan Agustus 2015.
Tahapan Penelitian Tahapan-tahapan penelitian yang dilakukan dalam penerapan algoritme C5.0 untuk mengklasifikasikan data Twitter pada Gambar 1.
6
Gambar 1 Tahapan penelitian
Pengumpulan Data Tahap pertama adalah pengumpulan data. Pengumpulan data ini digunakan untuk mendapatkan informasi yang dibutuhkan pada penelitian, data tersebut diperoleh dari Twitter API. Pengambilan data Twitter menggunakan perangkat lunak Rstudio 0.98.1102 yang didukung dengan package twitteR. Package twitteR merupakan sebuah package yang dapat terhubung dengan Twitter API. Paket twitteR memerlukan beberapa nilai atribut yang dibutuhkan yaitu consumer key, consumer secret, acces token, dan acces token secret, untuk mendapatkan nilai atribut tersebut harus melakukan koneksi R pada Twitter. Langkah yang dilakukan selanjutnya adalah: 1. Mencari akun spammer dan nonspammer sebanyak 120 data akun pengguna yang terdiri dari 99 akun perorangan dan 21 akun instansi atau lembaga pada Twitter. 2. Setiap akun diberi label secara manual yaitu spammer dan nonspammer. 3. Mengambil data dari R yang sudah terhubung dengan Twitter API. Fungsi pada package twitteR yang digunakan pada penelitian ini dapat dilihat pada Lampiran 1.
Praproses Data Tahapan ini, melakukan pemilihan data yang akan digunakan pada penelitian. Tahapan praproses data dapat dilihat pada Gambar 2.
Gambar 2 Tahapan praproses data
7 Praproses data dibagi menjadi 2 tahap, yaitu seleksi data dan transformasi data. Fungsi pada package twitteR yang digunakan pada penelitian ini adalah fungsi getUser dan fungsi userTimeline. Fungsi getUser digunakan untuk melakukan penyeleksian atribut pada tahap seleksi data, sedangkan fungsi userTimeline digunakan untuk penyeleksian atribut pada transformasi data. Tahap transformasi data selain melakukan penyeleksian atribut juga melakukan penggabungan atribut pada fungsi getUser dan fungsi userTimeline yang sudah diseleksi sehingga untuk setiap akun akan memiliki atribut seperti jumlah followers, jumlah following, jumlah tweet, rasio followers per following, usia akun pengguna, rataan tweet per hari, jumlah reply, rataan, median, minimum dan maksimum selang waktu antara tweet dengan memiliki 2 macam label yaitu spammer dan nonspammer.
Pembuatan Model Klasifikasi menggunakan Algoritme C5.0 Pada tahap ini dilakukan pembuatan model klasifikasi menggunakan algoritme C5.0. Algoritme C5.0 bekerja untuk menghasilkan aturan-aturan klasifikasi dalam bentuk pohon keputusan (tree) dan berbasis aturan (rule based). Algoritme ini menggunakan ukuran information gain dalam membuat pohon keputusan. Pembagian dataset pada penelitian ini menggunakan teknik 10-cross fold validation, sebelum melakukan klasifikasi dataset dipartisi terlebih dahulu menjadi data latih sebesar 90 % dan data uji sebesar 10 %.
Perhitungan Akurasi Penelitian ini dibutuhkan beberapa alat ukur antara lain confusion matrix. Confusion matrix mengandung informasi tentang hasil aktual dan prediksi dari proses klasifikasi yang dilakukan oleh sistem (Han et al. 2012). Tabel 1 merupakan bentuk dari confusion matrix. Table 1 Confusion matrix hasil klasifikasi Kelas aktual Nonspammer Spammer
Kelas prediksi Nonspammer Spammer TP FN FP
TN
Keterangan sel dalam confusion matrix sebagai berikut: True Positive (TP), yaitu akun dari kelas nonspammer yang benar diklasifikasikan sebagai nonspammer. True Negative (TN), yaitu akun dari kelas spammer yang benar diklasifikasikan sebagai spammer. False Positive (FP), yaitu akun dari kelas spammer yang salah diklasifikasikan sebagai nonspammer.
8
False Negative (FN), yaitu akun dari kelas nonspammer yang salah diklasifikasikan sebagai spammer. Dengan menggunakan data hasil klasifikasi dalam confusion matrix dapat menghitung nilai akurasi yang merupakan perbandingan dari akun yang diklasifikasikan secara benar. Cara menghitung akurasi adalah (Han et al. 2012) Akurasi = TP
TP TN TN FP FN
(4)
Selain dari pengukuran akurasi, evaluasi juga dilakukan terhadap sensitivity dan specificity. Sensitivity adalah kemampuan model untuk mengenal kelas nonspammer, untuk mendapatkan nilai sensitivity adalah (Han et al. 2012) Sensitivity = TP
TP FN
(5)
Specificity adalah kemampuan model untuk mengenal kelas spammer, untuk mendapatkan nilai specificity adalah (Han et al. 2012) TN
Specificity = TN
FP
(6)
Analisis dan Evaluasi Model Klasifikasi Pada tahap ini dilakukan analisis dan evaluasi pada dataset Twitter dengan menggunakan data Twitter yang baru. Data tersebut merupakan lapisan penjelas yang akan diprediksi menggunakan algoritme C5.0.
Lingkungan Pengembangan Spesifikasi perangkat keras dan perangkat lunak yang digunakan untuk penelitian ini adalah sebagai berikut : 1. Perangkat keras berupa komputer personal dengan spesifikasi sebagai berikut Processor Intel® CoreTM i5-2410M CPU @2.30GHz RAM 6 GB Monitor LCD 4.0” HD Harddisk 512 GB HDD 2. Perangkat lunak : Sistem Operasi Windows 8.1 Bahasa pemograman R versi 3.12 RStudio versi 0.98.1102 dengan memanfaatkan package twitteR untuk menghubungkan dengan Twitter API, package C5.0 untuk klasifikasi data, package Caret untuk pembagian data latih dan data uji.
9
HASIL DAN PEMBAHASAN Pengumpulan Data Pada tahap pengumpulan data diperoleh 120 data akun Twitter yang dapat dilihat pada Lampiran 2. Data tersebut diambil secara manual kemudian setiap akun diberi label secara manual yaitu spammer dan nonspammer. Untuk menentukan label spammer atau nonspammer dapat ditentukan dari banyaknya akun tersebut mengirimkan tweet ke banyak orang dengan teks yang sama dalam waktu yang singkat, isi tweet hanya promosi, dan tweet berisi URL yang tidak jelas. Setiap akun akan memiliki 11 atribut seperti jumlah followers, jumlah following, jumlah tweet, rasio followers per following, usia akun pengguna, rataan tweet per hari, jumlah reply, rataan, median, minimum dan maksimum selang waktu antara tweet. Data ini akan digunakan untuk mendapatkan informasi yang dibutuhkan pada penelitian, data tersebut diperoleh dari Twitter API. Langkah pertama untuk mendapatkan 11 atribut tersebut harus membuat koneksi ke Twitter API dengan cara membuat aplikasi pengelolaan pada Twitter terlebih dahulu di https://apps.twitter.com/. Pada aplikasi ini terdapat consumer key (API key) dan consumer secret (API secret). Consumer key dan consumer secret setiap aplikasi berbeda-beda sehingga kedua key tersebut merupakan identitas aplikasi yang telah dibuat. Key tersebut diperlukan untuk melakukan authorization. Tampilan aplikasi pengelolaan pada Twitter dapat dilihat pada Gambar 3.
Gambar 3 Tampilan aplikasi pengelolaan pada Twitter Setelah tahap pembuatan aplikasi pengelolaan Twitter selesai dilakukan, koneksi R ke Twitter API dilakukan. Kode koneksi ke Twitter sebagai berikut : Ketika pengguna mengakses R melalui jaringan internet, server R akan merespon dan memanggil library twitteR, untuk mengambil data Twitter. Library(twitteR) Library twitteR melakukan otorisasi terlebih dahulu sebelum memanggil RCurl untuk meminta sertifikasi hak otoritas pada
10
„ http://curl.haxx.se/ca/cacert.pem‟ dan mengembalikan pada library twitteR dalam bentuk file. download.file(url=’http://curl.haxx.se/ca/cacert. pem’,destfile=’cacert.pem’) Library ROAuth melakukan otorisasi dengan Twitter menggunakan sertifikat yang telah dipanggil oleh library RCurl. Server R meminta kode acak pada pengguna yang dikirimkan oleh Twitter. Pernyataan berikut digunakan pada saat proses authorization, kode pada R untuk melakukan proses authorization sebagai berikut: requestURL<“https://api.twitter.com/oauth/request_token” accesURL<“https://api.twitter.com/oauth/acces_token” #proses authorization authURL<-https://api.twitter.com/oauth/authorize consumerKey <- “Your Consumer Key” consumerSecret <- “ Your Consumer Secret” twitCred
Pada RStudio dibutuhkan package twitteR untuk menghubungkan dengan Twitter API. Package twitteR memerlukan 3 package yaitu RCurl, ROAuth, dan rjson. Package RCurl digunakan untuk mengunduh fail di http://curl.haxx.se/ca/cacert.pem dan disimpan dengan nama cacert.pem, package ROAuth diperlukan untuk proses authorization. Proses authorization memerlukan consumer key dan consumer secret. Pada saat proses authorization, R secara otomatis membuka browser untuk melakukan verifikasi dengan aplikasi Twitter dan muncul kode numerik secara acak. Tahap verifikasi selesai, fail disimpan dengan nama twitter_credentials. Setelah semua tahap selesai, fail dapat langsung dipanggil tanpa harus melakukan tahapan dari awal.
Praproses Data Setelah berhasil membuat koneksi dari R ke Twitter API kemudian dilakukan praproses data. Tahap ini melakukan pemilihan atribut pada paket twitteR yang terdapat di R, atribut tersebut yang digunakan pada penelitian. Tahap
11 praproses data terdiri atas 2 tahap, yaitu seleksi data dan transformasi data.
1. Seleksi Data Seleksi data dilakukan untuk memilih atribut yang digunakan pada fungsi getUser. Langkah pertama yang harus dilakukan adalah memasukkan satu per satu nama user pada sintaks R. Kode pada sintaks R untuk memperoleh nilai atribut yaitu getUser(“nama_akun”,cainfo=”cacert.pem), name_akun merupakan nama user yang akan dicari dan cacert.pem merupakan fail yang berisi sertifikasi otoritas publik. Fungsi getUser memiliki 13 atribut. Akan tetapi, tidak semua atribut dibutuhkan dalam penelitian ini sehingga dipilih 4 nilai atribut. Atribut tersebut dapat dilihat pada Tabel 2. Table 2 Hasil seleksi pada fungsi getUser Fungsi getUser
Atribut followesCount friendsCount created statusesCount
Keterangan Jumlah followers pengguna Jumlah following pengguna Waktu akun dibuat Jumlah status pengguna
2. Transformasi Data Tahap ini juga dilakukan penyeleksian atribut pada fungsi userTimeline. Kode pada sintaks R untuk memperoleh atribut yaitu userTimeline(“name_akun”,n,cainfo=”cacert.pem), n merupakan banyak tweet yang diambil, maksimal jumlah tweet yang dapat dimasukkan sebanyak 3200 tweets dan cacert.pem merupakan file yang berisi otoritas publik. Contoh hasil fungsi userTimeline seperti pada Tabel 3. Table 3 Contoh beberapa dataset pada fungsi userTimeline 1 2 3 4 5 6 7
Text Selamat Pa Hai ka @S Hai ka @t Hai ka @y Hai ka @a Hai ka @h Hai ka @i
favorited FALSE FALSE FALSE FALSE FALSE FALSE FALSE
favoriteC 4 2 1 0 0 0 0
replyToS NA NA NA NA NA NA NA
created 4/12/201
4/9/2015 4/9/2015 4/9/2015 4/9/2015 4/9/2015 4/9/2015
truncated FALSE FALSE FALSE FALSE FALSE FALSE FALSE
replyTo NA NA NA NA NA NA NA
Fungsi userTimeline memiliki 16 atribut, akan tetapi tidak semua atribut dibutuhkan pada penelitian ini sehingga dipilih 2 atribut. Atribut tersebut pada dapat dilihat Tabel 4.
12
Table 4 Hasil seleksi pada fungsi userTimeline Fungsi userTimeline
Atribut created replyToSN
Keterangan Waktu status dibuat Screen name pengguna lain yang membalas status
Pada tahap ini selain melakukan penyeleksian atribut juga menggabungkan fungsi getUser dan userTimeline yang sudah diseleksi sehingga setiap akun akan memiliki 11 atribut. Hasil penggabungan dari kedua fungsi dapat dilihat pada Tabel 5. Table 5 Hasil penggabungan fungsi getUser dan userTimeline Atribut Nama akun Jumlah followers Jumlah following Jumlah tweet Rasio followers per following
Fungsi getUser getUser getUser getUser getUser
Usia akun Rataan tweet per hari Rataan selang waktu antara tweet Median selang waktu antara tweet Minimum selang waktu antara tweet Maksimum selang waktu antara tweet Jumlah reply
getUser getUser userTimeline userTimeline userTimeline userTimeline userTimeline
Sub fungsi Name followesCount friendsCount statusesCount followesCount, friendsCount Created Created Created Created Created Created Created
Atribut nama akun, jumlah followers, jumlah following, dan jumlah tweet di dapat secara otomatis ketika memanggil fungsi getUser, sedangkan 8 atribut lainnya harus dilakukan pencarian dengan menggunakan fungsi getUser atau userTimeline. Cara perhitungan nilai dari 8 atribut tersebut adalah: Menghitung rasio followers per following Langkah pertama yang harus dilakukan adalah menghitung jumlah followers dan jumlah following, kedua atribut tersebut bisa didapatkan secara otomatis ketika memanggil fungsi getUser. Setelah mendapatkan kedua atribut dilakukan perhitungan rasio followers per following. Perhitungannya menggunakan rumus pada Persamaan 7. Rasio followers per following =
Jumlah followers
(7)
Jumlah following
Menghitung usia akun Tahap ini membutuhkan atribut created pada fungsi getUser, untuk menghitung usia akun menggunakan tipe data POSIXct. Langkah pertama yang harus dilakukan adalah melihat waktu akun pengguna dibuat pada
13 atribut created, kemudian lakukan perhitungan selisih waktu. Perhitungan untuk mendapatkan usia akun menggunakan rumus pada Persamaan 8. Usia akun = a – b
dimana a adalah waktu melakukan pencarian data, sedangkan b adalah waktu akun pengguna dibuat. Untuk mempermudah dilakukan operasi tanggal untuk mendapatkan data usia akun yaitu as.POSIXct(“YYYYMM-DD”) Menghitung rataan tweet per hari Atribut yang digunakan untuk menghitung rataan tweet per hari adalah created yang terdapat pada fungsi userTimeline, selanjutnya mencari berapa banyak tanggal unik yang ada pada atribut created. Setelah itu dilakukan perhitungan rataan tweet per hari menggunakan rumus pada Persamaan 9. Rataan tweet per hari = ∑ni
ti
(9)
n
dimana t adalah tanggal yang terdapat pada atribut created, i merupakan banyaknya tanggal dan n adalah jumlah tanggal unik. Menghitung nilai rataan selang waktu antara tweet Atribut yang digunakan untuk menghitung selang waktu adalah created pada fungsi userTimeline, kemudian hitung selisih tweet awal dan tweet akhir, setelah nilai selisih didapat dilakukan perhitungan rataan selang waktu antara tweet. Cara yang sama juga dilakukan untuk mendapatkan nilai median, minimum dan maksimum selang waktu antara tweet. Perhitungan rataan selang waktu antara tweet menggunakan rumus pada Persamaan 11 sebagai berikut: Rataan selang waktu antara tweet = ∑ni
(8)
ti - t i-
(10)
n-
dimana t adalah tanggal yang ada pada atribut created, sedangkan n -1 adalah jumlah banyaknya selisih. Menghitung nilai median selang waktu antara tweet Langkah untuk mendapatkan nilai median selang waktu antara tweet, dilihat nilai tengah dari nilai selesih yang sudah didapat. Menghitung nilai minimum selang waktu antara tweet Langkah untuk mendapatkan nilai minimum selang waktu antara tweet, dilihat nilai paling kecil dari nilai selisih yang sudah didapat. Menghitung nilai maksimum selang waktu antara tweet Langkah untuk mendapatkan nilai maksimum selang waktu antara tweet, dilihat nilai terbesar dari nilai selisih yang sudah didapat. Kode untuk mendapatkan nilai rataan, median, minimum dan maksimum selang waktu antara tweet, dengan menggunakan sintaks R yaitu : #mencari nilai selisih
14
awal <- as.POSIXct(“nama_akun”$created[1]) for(i in 2:n){ akhir <- as.POSIXct(“nama_akun”$created[i]) temp <- awal-akhir jeda[i-1] <- temp awal <-akhir #mencari nilai rataan, median, minimum, maksimum Summary(jeda[i:n]) Menghitung banyaknya jumlah reply Atribut yang digunakan untuk menghitung jumlah reply adalah replyToSN pada fungsi userTimeline. Langkah selanjutnya dilihat pada kolom replyToSN ada berapa banyak yang berisi screen name pengguna lain. Kode untuk menghitung jumlah reply dengan menggunakan sintaks R yaitu length(which(“nama_akun”$replyToSN!=”NA”)).
Pembuatan Model Klasifikasi menggunakan Algoritme C5.0 Algoritme C5.0 diterapkan pada dataset Twitter dengan menghasilkan model klasifikasi berupa pohon keputusan (tree) dan berbasis aturan (rule based). Algoritme C5.0 terdapat pada perangkat lunak RStudio dengan package C50. Jumlah data pada dataset Twitter sebanyak 120 data, sebelum dibentuk klasifikasi dengan package C50, dilakukan partisi data latih dan data uji secara acak dengan 90 % dataset dijadikan sebagai data latih dan 10 % dataset dijadikan sebagai data uji. Klasifikasi menggunakan algoritme C5.0 pada dataset Twitter menghasilkan pohon keputusan (tree) dengan 4 aturan, sedangkan pada model berbasis aturan (rule based) menghasilkan 3 aturan seperti diberikan pada Lampiran 3. Tahapan pembuatan model klasifikasi menggunakan algoritme C5.0 menggunakan sintaks R adalah sebagai berikut : 1. Membaca dataset menggunakan sintaks R yaitu data <- read.csv(“D://hasil4.csv”) set.seed(800) 2. Partisi data latih dan data uji inTrain
15 5. Membuat model berbasis aturan (rule based) rules<-C5.0(Label~.,data=training,rules=TRUE) Summary(rules) 6. Menghitung nilai akurasi menggunakan data uji, untuk melakukan prediksi dengan model berbasis aturan (rule based) postResample(predict(rules,testing),testing$Label) Klasifikasi menggunakan algoritme C5.0 menghasilkan aturan pohon keputusan (tree) seperti diberikan pada Gambar 4.
Gambar 4 Model pohon keputusan untuk klasifikasi spammer dan nonspammer Hasil klasifikasi menggunakan algoritme C5.0 selain menghasilkan aturan pohon keputusan (tree) juga menghasilkan aturan berbasis aturan (rule based) sebagai berikut : IF usia akun > 925 hari(59) THEN Class nonspammer IF rataan tweet per hari ≤ 6.950495(46) THEN Class nonspammer IF usia akun ≤ 925 hari AND rataan tweet per hari > 6.950495(45) THEN Class spammer
Karakteristik Spammer Hasil klasifikasi dari model pohon keputusan (tree) dan model berbasis aturan (rule based) memiliki persamaan atribut dengan presentase yang berbeda. Atribut tersebut dapat dilihat pada Tabel 6.
16
Table 6 Penggunaan atribut dalam model klasifikasi Atribut
Model
Usia akun
Tree 100 %
Rule based 96.30 %
Rataan tweet per hari
45.37 %
84.26 %
Pada Tabel 6, model pohon keputusan dan model berbasis aturan menggunakan 2 atribut yaitu usia akun dan rataan tweet per hari. Atribut usia akun memiliki hasil yang paling besar pada model klasifikasi. Pada model pohon keputusan (tree), atribut usia akun sebesar 100 %. Atribut ini menandakan bahwa setiap pengecekan pada model pohon keputusan (tree) harus dimulai dari atribut usia akun, dengan kata lain pada model tree sepenuhnya memerlukan atribut usia akun. Pada atribut rataan tweet per hari tidak mencapai 100 %, karena pada waktu pengecekan lihat atribut usia akun terlebih dahulu, jika atribut usia akun ≤ 925 hari maka dilakukan pengecekan pada rataan tweet per hari sebesar 45.37 % dan sisanya atribut usia akun > 925 hari. Pada model berbasis aturan (rule based) kedua atribut tidak mencapai 100 % yang menandakan bahwa setiap aturan tidak sepenuhnya memerlukan atribut usia akun atau rataan tweet per hari. Pada saat melakukan deteksi spammer tidak perlu 11 atribut tetapi cukup dengan 2 atribut yaitu usia akun dan rataan tweet per hari karena kelas nonspammer pada atribut usia akun memiliki usia jauh lebih lama dan memiliki jumlah yang lebih sedikit pada atribut rataan tweet per hari. Grafik sebaran usia akun dan rataan tweet per hari diberikan pada Gambar 5.
Gambar 5 Sebaran usia akun dan rataan tweet per hari
Analisis dan Evaluasi Model Klasifikasi Evaluasi dilakukan terhadap algoritme C5.0 dengan menggunakan confusion matrix. Presentase klasifikasi sesuai dengan kelasnya. Confusion matrix deteksi spammer dengan menggunakan algoritme C5.0 dapat dilihat pada Tabel 7.
17
Table 7 Confusion matrix untuk model deteksi spammer Kelas aktual Nonspammer
Kelas prediksi Nonspammer Spammer 7 0
Spammer
1
4
Pada Tabel 7, terdapat 1 data Twitter yang diklasifikasikan tidak benar. Pada dataset Twitter telah diberi label sebagai spammer tetapi setelah dilakukan klasifikasi data diprediksi sebagai nonspammer. Evaluasi model juga dilakukan terhadap sensitivity dan specificity. Sensitivity adalah kemampuan model dalam mengenal kelas nonspammer, nilai sensitivity hasil klasifikasi adalah: Sensitivity = 7
7 0
00
00
(11)
Specificity adalah kemampuan model untuk mengenal kelas spammer, nilai specificity hasil klasifikasi adalah: Specificity = 4
4
00
80
(12)
Hasil yang diperoleh dari data uji bahwa rancangan menggunakan algoritme C5.0 memiliki tingkat akurasi sebesar 91 %. Model lebih mengenal kelas nonspammer, karena kelas nonspammer pada atribut usia akun memiliki usia jauh lebih lama daripada kelas spammer dan memiliki jumlah yang lebih sedikit pada rataan tweet per hari.
SIMPULAN DAN SARAN Simpulan Berdasarkan penelitian yang telah dilakukan, dapat disimpulkan beberapa hal sebagai berikut : 1. Akurasi model keputusan dari data uji untuk klasifikasi akun spammer atau nonspammer sebesar 91 % dengan 4 aturan, sedangkan akurasi model berbasis aturan (rule based) adalah sebesar 91 % dengan 3 aturan. 2. Berdasarkan perilaku spammer yang mempengaruhi karakteristik klasifikasi spammer adalah usia akun dan rataan tweet per hari.
18 Saran Penelitian ini masih memiliki beberapa kekurangan. Penelitian selanjutnya dapat melakukan deteksi spammer pada konten atribut, kemudian jumlah data bisa ditambahkan untuk memaksimalkan hasil akurasi yang akan didapat. Pada proses pelabelan spammer dan nonspammer diperlukan proses pembangunan sistem identifikasi spammer dan nonspammer, untuk meningkatkan ketelitian dan keakurasian hasil dan pengambilan data bisa melalui akun @spam.
DAFTAR PUSTAKA Benevenuto F, Magno G, Rodrigues T, dan Almeida V. 20 0. “Detecting spammerson twitter” dalam: CEAS 20 0-Seventh annual Collaboration,Electronic messaging, Anti Abuse and Spam Conference. Drucker H, Wu D, dan Vapnik V. 999. “Support Vector Machine for Spam Categorization” dalam: IEEE Transaction on Neural Networks. Ghosh S, Viswanath B, Kooti F, Sharma N, Korlam G, Benevenuto V, Ganguly N, Gummadi K. 20 2. “Understanding and combating link farming in the twitter social network” dalam: In Proceedings of WWW. Govindarajan, M. 2007. “Text Mining Technique for Data Mining Application” dalam: International Journal of Computer, Electrical, Automation, Control and Information Engineering 1 (11). Grier C, Thomas K, Song D, dan Paxson V. 20 . “Suspended accounts in retrospect: An analysis of twitter spam” dalam: In Proceedings of ACM SIGCOMM conference on Internet measurement conference. Han J, Kamber M, dan Pei J. 2012. Data Mining: Concepts and Techniques 3rd ed. United States of America: Morgan Kaufman Publisher. Hu X, Tang J, Zhang Y, dan Liu H, eds. 2013. Social Spammer Detection in Microblogging. Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence. Java A, Finin T, dan Tseng B Song X. 2007. “Why We Twitter” dalam: Understanding Microblogging Usage and Communities. Kemenkominfo, Kementerian Komunikasi Informatika. 20 3.“Kominfo:pengguna internet di Indonesia 63 juta orang [internet]”.[Internet]. [Diunduh tanggal 27/06/2015].Dapat diunduh dari: http://kominfo.go.id/index.php/content/detail/3415/%20Kominfo+:+Pengguna+ Internet+di+Indonesia+63+Juta+Orang/0/berita_satker. Patil N, Lathi R, dan Chitre V. 20 2. “Customer Card Classification Based on C5.0 and CART Algorithms” dalam: International Journal of Enggineering Research and Applications 2 (4). Rulequest. 20 2. “C5.0: An Informal Tutorial”. [Internet]. [Diunduh tanggal 23/11/2015 ]. Dapat diunduh dari: https://www.rulequest.com/see5-unix.html. Song J, Lee S, dan Kim J. 20 . “Spam Filtering in Twitter using Sender Receiver Relationship” dalam: POSTECH. Spamhaus. 2004. “The Definition of Spam”. [Internet]. [Diunduh tanggal 27/05/2015 ]. Dapat diunduh dari: https : / / www . spamhaus . org / consumer /definition.
19 Wang AH. 20 0. “Detecting Spam Bots in Online Social Networking Sites” dalam: A Machine Learning Approach.
20 Lampiran 1 Fungsi pada package twitteR yang digunakan pada penelitian Fungsi
getUser
Atribut
Keterangan
Tipe data
description
Deskripsi pengguna
Char
statusesCount
Jumlah status pengguna
Numerik
followersCount
Jumlah followers pengguna
Numerik
favoritesCount
Jumlah status yang difavoritkan
Numerik
friendsCount
Jumlah following pengguna
Numerik
URL
URL yang terkait dengan pengguna
Char
name
Nama akun pengguna
Char
created
Waktu akun pengguna dibuat
Datetime
screenname
Screen name pengguna
Char
location
Lokasi pengguna
Char
id
ID pengguna
Char
listedCount
Berapa kali pengguna muncul dalam daftar umum
Char
followRequestCount Jumlah pengguna lain yang mem-follow
Numerik
text
Status pengguna
Char
favorited
Apakah status ini menjadi favorit
Boolean
favoritedCount
Jumlah favorit terhadap status tersebut
Numerik
replyToSN
Screen name pengguna lain yang membalas status
Char
created
Waktu status dibuat
Datetime
truncated
Apakah status ini terpotong
Char
replyToUID
ID pengguna lain yang membalas status
Char
id
ID status
Char
userTimeline
21 Atribut
Keterangan
Tipe data
screenname
Screen name pengguna yang memasang status
Char
retweetCount
Berapa kali status tersebut telah di retweet
Numerik
isRetweet
True jika merupakan status yang me-retweet
Boolean
retweeted
True jika merupakan status yang di-retweet
Boolean
longitude
Koordinat status di garis bujur dari yang di posting
Char
latitude
Koordinat status di garis lintang dari yang di posting
Char
replyToSID
ID pengguna lain yang membalas status
Char
22 Lampiran 2 Dataset sebanyak 120 akun Twitter yang digunakan pada penelitian 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 39 40 41 42 43 44 45
Akun Aisadip Arya_permadi ariza_fajar adhit_yap kompascom IcaHans Anditaaaw sayna_az BernataLatipah Cheppiiyy chesariapuspan CintaCllara DennySaputro16 dindin_pril danitapratiwi ebehebeh estimulyawati faikarzakky meyrenata27 firdaushuda GalangMeilasa CucuTresna gitalistyaa galaratama Itothagam juliusGdimas litarindiani panggilpipi1 MhdYons_ MarieaLiem DiyaanaAullia MenikNugraeny fw6955 nurshintaaa nundaayu purnomo_eko Fany_Herliani resturosalani rahmatsetyaji Sahadhewa NaimaHastari SiskaTaurinaF JogjaUpdate shellanurandika tentrioktaviani
Label Nonspammer Nonspammer Nonspammer Nonspammer Nonspammer Spammer Nonspammer Spammer Spammer Nonspammer Nonspammer Spammer Nonspammer Nonspammer Nonspammer Nonspammer Nonspammer Nonspammer Spammer Nonspammer Nonspammer Spammer Nonspammer Nonspammer Nonspammer Nonspammer Nonspammer Spammer Nonspammer Nonspammer Spammer Nonspammer Spammer Nonspammer Nonspammer Nonspammer Spammer Nonspammer Nonspammer Nonspammer Spammer Nonspammer Nonspammer Nonspammer Nonspammer
No 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
Akun CoecuCahyati kemendag gilangmsp DelinaFauziah TelkomPromo EgaAuliania TinnaSintia Goodgrow_Ks kaskus HariTerlanjur meida_adinda infoBMKG kiran_chandra14 KAI121 Mmelani2 deanMukti mutilestarii fathyanurul NidaSri_Andini shaunshata NadiraPermana NaddaYullia PanggilVina1 MittaDwinda rizma_rohima1 allendiar sonialunna88 wputrasejati veronicawrlta Vitaplankton Wolf_X9 Ambimannyu nessyalvioriza pradityareza MRanoTryAstra Sheilashabilaa YulliYr Aulyadwiw PanggilWanda1 Anggrainims repbulikaonline Cristiisarah liputan6dotcom Am67Riska detikcom
Label Spammer Nonspammer Nonspammer Spammer Nonspammer Spammer Spammer Spammer Nonspammer Spammer Spammer Nonspammer Spammer Nonspammer Spammer Nonspammer Spammer Nonspammer Spammer Nonspammer Spammer Spammer Spammer Nonspammer Spammer Nonspammer Spammer Nonspammer Spammer Spammer Spammer Spammer Nonspammer Nonspammer Nonspammer Nonspammer Spammer Nonspammer Spammer Nonspammer Nonspammer Spammer Nonspammer Spammer Nonspammer
23 No 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Akun tio_staycool VanoDaniel Azizah_Rhma222 zmachmobile zanukoston alya_putri25 tribunjogja AliisaTina AlinaLiania indosat azizah_rhma61 bei70xxz triindonesia CinAuliania
Label Nonspammer Nonspammer Spammer Nonspammer Nonspammer Spammer Nonspammer Spammer Spammer Nonspammer Spammer Spammer Nonspammer Spammer
No 107 108 109 110 111 112 113 114 115 116 117 118 119 120
Akun tvOneNews okezonenews blogger_jateng azizah_rhma31 Metro_TV AuraMaheera KompasTV lenaunna CintaLiinda CintaAnndiina Jogja24jam gojekindonesia JoeliaMarpaung Harian_jogja
Label Nonspammer Nonspammer Spammer Spammer Nonspammer Spammer Nonspammer Spammer Spammer Spammer Nonspammer Nonspammer Spammer Nonspammer
24 Lampiran 3 Contoh penggunaan algoritme C5.0 Langkah pertama yang harus dilakukan dalam klasifikasi menggunakan algoritme C5.0 yaitu siapkan dataset Twitter yang akan diklasifikasikan. Dataset dapat dilihat pada Tabel 3.1. Table 3.1 Contoh dataset kecil Usia akun
Rataan tweet per hari
Label
Pembagian data
1
2126
3 Nonspammer
2
163
3.084211 Nonspammer
3
436
320 Spammer
4
343
322.22 Spammer
5
1796
38.11 Nonspammer
6
1973
100.3793 Nonspammer
7
773
23.5 Spammer
8
2106
1.52 Nonspammer
9
1723
82.91667 Nonspammer
10
362
Data latih
Data uji 457.1429 Spammer
Data dibagi menjadi 6 data latih dan 4 data uji secara acak, kemudian tentukan label dari Tabel 3.1, selanjutnya tentukan nilai information gain total dari atribut tersebut. Nilai information gain total yaitu Information gain total =
4 2
log2
4
2
6
6
2
log2 6 0.9230
dimana 4 didapatkan dari jumlah nonspammer, 2 didapatkan dari jumlah spammer dari label dan 6 didapatkan dari jumlah total atribut kelas. Setelah itu cari information gain masing-masing bagian dari atribut selain label, dengan cara yang sama seperti mencari information gain total. Hasilnya dapat dilihat pada Tabel 3.2.
25 Table 3.2 Hasil information gain pada masing-masing atribut Jumlah Nonspammer Total
Spammer
Information gain
6
4
2
0.92301
>925
3
3
0
0
≤ 925
3
1
2
0.92301
>6.95
2
2
0
0
≤6.95
4
2
2
1
Usia akun
Rataan tweet per hari
Selanjutnya mencari gain dari masing-masing atribut, untuk menentukan akar utama dari decision tree. Nilai gain sebagai berikut: Gain = 0.9230 Keterangan:
3 6
0-
3 6
0.9230
0.46 505
0.92301 merupakan nilai information gain total 3/6, 3 didapatkan dari jumlah nonspammer, dan 6 dari jumlah label 3/6, 3 didapatkan dari jumlah spammer, dan 6 dari jumlah label 3/6 × 0.92301, 0.92301 didapatkan dari nilai information gain dari rataan tweet per hari Dan seterusnya
Langkah selanjutnya cari nilai gain yang paling tinggi pada Tabel 3.3, sehingga didapatkan akar yang pertama, dan untuk mendapatkan labelnya di dapat dari melihat nilai nonspammer atau spammer dari atribut usia akun. Nilai gain terbesar sudah didapat, kemudian baru dapat menghasilkan pohon keputusan. Karena nilai nonspammer atau spammer di atribut usia akun ≤925 hari masih belum jelas, maka dicari akar selanjutnya yaitu rataan tweet per hari. Untuk mendapatkan akurasi pada dataset dilakukan klasifikasi data uji dengan data latih, selanjutnya gunakan rumus sebagai berikut: Akurasi = TP
TP TN TN FP FN
26 Table 3.3 Hasil gain masing-masing atribut Jumlah Nonspammer Total
6
4
Spammer
Information gain
2
0.92301
Usia akun
Gain
0.461505
>925
3
3
0
0
≤ 925
3
1
2
0.92301
Rataan tweet per hari
0.26301
>6.95
2
2
0
0
≤6.95
4
2
2
1
27
RIWAYAT HIDUP Penulis dilahirkan di Cilacap pada tanggal 12 September 1992 dari ayah Sunyoto dan ibu Sri Purwantiningsih. Penulis adalah putri kedua dari tiga bersaudara. Tahun 2007 penulis lulus SMA Negeri 1 Cilacap dan pada tahun yang sama penulis lulus seleksi masuk Universitas Gadjah Mada Program Diploma Komputer dan Sistem Informasi. Setelah menempuh pendidikan program Diploma penulis melanjutkan pendidikan tingkat sarjana pada Program Alih Jenis Ilmu Komputer FMIPA IPB angkatan ke 8.