Analisis Sentimen pada Provider Telekomunikasi Menggunakan Metode Naive Bayes Classifier dengan Seleksi Fitur Mutual Information.
i ANALISIS SENTIMEN PADA PROVIDER TELEKOMUNIKASI
MENGGUNAKAN METODE NAÏVE BAYES CLASSIFIER DENGAN SELEKSI FITUR MUTUAL INFORMATION
KOMPETENSI KOMPUTASI
SKRIPSI
NI LUH PUTU EKA JULIARI NIM. 1208605023
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS UDAYANA
BUKIT JIMBARAN 2016
(2)
ii
SURAT PERNYATAAN KEASLIAN KARYA ILMIAH
Yang bertanda tangan di bawah ini menyatakan bahwa naskah Skripsi dengan judul:
Analisis Sentimen pada Provider Telekomunikasi menggunakan Metode Naïve Bayes Classifier dengan Seleksi Fitur Mutual Information
Nama : Ni Luh Putu Eka Juliari
NIM : 1208605023
Program Studi : Teknik Informatika E-mail : ekajuliari2@gmail.com Nomor telp/HP : 087861316339
Alamat : Jln. Dewi Sartika, Perumahan Dewi Sartika No. 5, Klungkung
Belum pernah dipublikasikan dalam dokumen skripsi, jurnal nasional maupun internasional atau dalam prosiding manapun, dan tidak sedang atau akan diajukan untuk publikasi di jurnal atau prosiding manapun. Apabila di kemudian hari terbukti terdapat pelanggaran kaidah-kaidah akademik pada karya ilmiah saya, maka saya bersedia menanggung sanksi-sanksi yang dijatuhkan karena kesalahan tersebut, sebagaimana diatur oleh Peraturan Menteri Pendidikan Nasional Nomor 17 Tahun 2010 tentang Pencegahan dan Penanggulangan Plagiat di Perguruan Tinggi.
Demikian Surat Pernyataan ini saya buat dengan sesungguhnya untuk dapat dipergunakan bilamana diperlukan.
Bukit Jimbaran, April 2016 Yang membuat pernyataan,
(Ni Luh Putu Eka Juliari) NIM. 1208605023
(3)
iii LEMBAR PENGESAHAN TUGAS AKHIR
Judul : Analisis Sentimen pada Provider Telekomunikasi Menggunakan Metode Naïve Bayes Classifier dengan Seleksi Fitur Mutual Information
Kompetensi : Komputasi
Nama : Ni Luh Putu Eka Juliari
NIM : 1208605023
Tanggal Seminar : 22 April 2016
Disetujui Oleh :
Pembimbing I Penguji I
(I Putu Gede Hendra Suputra, S.Kom., M.Kom.) (Drs. I Wayan Santiyasa, M.Si.)
NIP. 198812282014041001 NIP. 196704141992031002
Pembimbing II Penguji II
(Agus Muliantara, S.Kom., M.Kom.)
NIP. 198006162005011001 NIP. 198901272012121001 Penguji III
Mengetahui,
Ketua Jurusan Ilmu Komputer FMIPA Universitas Udayana
(Agus Muliantara, S.Kom., M.Kom.) NIP. 198006162005011001
(4)
iv Judul : Analisis Sentimen pada Provider Telekomunikasi Menggunakan
Metode Naïve Bayes Classifier dengan Seleksi Fitur Mutual Information
Nama : Ni Luh Putu Eka Juliari (NIM: 1208605023) Pembimbing : 1. I Putu Gede Hendra Suputra, S.Kom, M.Kom
2. Agus Muliantara, S.Kom, M.Kom
ABSTRAK
Penelitian di bidang analisis sentimen dari suatu data merupakan hal yang penting dan dibutuhkan di era big data seperti saat ini. Analisis sentimen dapat diaplikasikan pada perusahaan provider telekomunikasi karena banyaknya jumlah pengguna dari provider telekomunikasi membuat perusahaan tersebut harus menyediakan layanan berupa feedback untuk penggunanya agar memudahkan dalam meninjau kembali produknya. Salah satu media yang digunakan sebagai layanan feedback adalah Twitter. Analisis sentimen berguna untuk menganalisis komentar-komentar di Twitter menjadi pengetahuan yang lebih bermakna. Metode
Naïve Bayes Classifier dipilih karena metode ini sederhana atau mudah diaplikasikan, memiliki proses komputasi yang cepat, dan akurasi yang tinggi. Sedangkan Mutual Information digunakan sebagai seleksi fitur dalam penelitian ini karena fungsinya yang cocok untuk menilai term dari isi informasi dalam proses klasifikasi. Data yang digunakan untuk training sebanyak 3.000 data, masing-masing 1.000 data untuk sentimen positif, negatif, dan netral. Pada data testing digunakan sebanyak 1.000 data untuk evaluasi sistem. Hasil penelitian memperlihatkan terjadinya perubahan dari segi kecepatan dan akurasi sistem setelah ditambahkannya seleksi fitur Mutual Information untuk n-gram kata n = 1. Didapatkan waktu pemrosesan sebelum ditambahkan seleksi fitur Mutual Information yaitu 53 detik dan setelah penambahan seleksi fitur menjadi 60 detik. Selain itu, meningkatnya akurasi sistem dengan bertambahnya nilai akurasi tanpa seleksi fitur yaitu 64.80 % menjadi 73.60% setelah penambahan seleksi fitur
Mutual Information.
Kata Kunci : Analisis Sentimen, Provider Telekomunikasi, Twitter, Naïve Bayes Classifier, Mutual Information
(5)
v Title : Sentiment Analysis on Telecommunication Providers
Using Naïve Bayes Classifier Method with Mutual Information Feature Selection
Name : Ni Luh Putu Eka Juliari (Student Number: 1208605023) Main Supervisor : I Putu Gede Hendra Suputra, S. Kom, M. Kom
Co-supervisor : Agus Muliantara, S. Kom, M. Kom
ABSTRACT
Research in the field of sentiment analysis of data is an important thing and necessary in the era of big data as it is today. Sentiment analysis can be applied to telecommunications provider companies for the large number of users of telecommunications providers make the company must provide services in the form of feedback to users in order to facilitate the review of products. One medium that is used as a feedback service is Twitter. Sentiment analysis used for analyzing the comments on Twitter becomes more meaningful knowledge. Naïve Bayes Classifier method was chosen because the method is simple or easy to apply, has a fast computing process and high accuracy. Mutual Information was used as a feature selection in this study because of its function fit to assess the terms of the content of the information in the classification process. The data used for training totaled 3,000 data 1,000 data were respectively used for positive, negative, and neutral sentiment. The testing data used a total of 1,000 data for system evaluation. The results demonstrated the occurrence of a change in terms of speed and accuracy of the system after the addition of Mutual Information feature selection for n-gram word n = 1. The processing time was obtained before the feature selection Mutual Information was added namely 53 seconds and after the addition of feature selection reaching 60 seconds. In addition, the accuracy system increased by augmenting the value of accuracy without feature selection, namely 64.80% to 73.60% after the addition of feature selection of Mutual Information.
Keywords : Sentiment Analysis, Telecommunication Provider, Twitter, Naïve Bayes classifier, Mutual Information
(6)
vi KATA PENGANTAR
Penelitian dengan judul “Analisis Sentimen pada Provider Telekomunikasi menggunakan Metode Naïve Bayes Classifier dengan Seleksi Fitur Mutual Information” ini disusun dalam rangkaian kegiatan pelaksanaan Tugas Akhir di
Jurusan Ilmu Komputer FMIPA UNUD. Penelitian ini dilaksanakan pada periode Juli 2015 hingga April 2016 di Universitas Udayana.
Sehubungan dengan telah terselesaikannya penelitian ini, maka penulis mengucapkan terima kasih dan penghargaan kepada berbagai pihak yang telah membantu penulis, antara lain:
1. Bapak I Putu Gede Hendra Suputra, S.Kom, M.Kom. sebagai Pembimbing I yang telah banyak meluangkan waktu untuk membantu pelaksanaan penelitian ini;
2. Bapak Agus Muliantara, S.Kom, M.Kom. sebagai Pembimbing II yang telah bersedia mengkritisi, memeriksa dan menyempurnakan penelitian ini;
3. Bapak Agus Muliantara, S.Kom, M.Kom. selaku Ketua Jurusan Ilmu Komputer Universitas Udayana yang telah banyak memberikan masukan dan motivasi sehingga memperlancar dalam proses pengerjaan penelitian ini; 4. Dra. Ni Wayan Arnati, M.Hum. dan Drs. I Wayan Teguh, M.Hum. selaku
pakar dalam bidang Linguistik yang telah meluangkan waktu untuk membantu dalam penyempurnaan penelitian ini.
5. Bapak-bapak dan ibu-ibu dosen di Jurusan Ilmu Komputer yang telah meluangkan waktu turut memberikan saran dan masukan dalam pelaksanaan penelitian;
6. Kawan-kawan di Jurusan Ilmu Komputer yang telah memberikan dukungan moral dalam penyelesaian penelitian ini.
(7)
vii Disadari pula bahwa sudah tentu hasil-hasil dari penelitian ini masih mengandung kelemahan dan kekurangan. Memperhatikan hal ini, maka masukan dan saran-saran penyempurnaan sangat diharapkan.
Bukit Jimbaran, April 2016 Penulis
(8)
viii DAFTAR ISI
LEMBAR JUDUL ... i
LEMBAR PERNYATAAN ... ii
LEMBAR PENGESAHAN ... iii
ABSTRAK ... iv
ABSTRACT ... v
KATA PENGANTAR ... vi
DAFTAR ISI ... viii
DAFTAR TABEL ... xi
DAFTAR GAMBAR ... xii
DAFTAR LAMPIRAN ... xiv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 4
1.3 Batasan Masalah ... 4
1.4 Tujuan Penelitian ... 5
1.5 Manfaat Penelitian ... 5
1.6 Metodologi Penelitian ... 5
1.6.1 Desain Penelitian ... 6
1.6.2 Pengumpulan Data ... 6
1.6.3 Pengolahan Data Awal ... 6
1.6.4 Metode yang Digunakan ... 7
BAB II TINJAUAN PUSTAKA ... 8
2.1 Analisis Sentimen ... 8
2.2 Naïve Bayes Classifier ... 8
2.3 Seleksi Fitur Mutual Information ... 11
2.4 Text Pre-processing ... 12
2.5 Twitter ... 13
2.6 N-gram ... 15
2.7 Flowchart ... 16
(9)
ix
2.9 Tinjauan Empiris ... 19
BAB III ANALISIS DAN PERANCANGAN ... 21
3.1 Kebutuhan Fungsional ... 21
3.1.1 Melakukan Pengumpulan Data ... 21
3.1.2 Melakukan Pre-processing ... 21
3.1.3 N-Gram Kata ... 22
3.1.4 Melakukan Seleksi Fitur ... 22
3.1.5 Melakukan Klasifikasi Sentimen ... 22
3.1.6 Output Sistem ... 22
3.1.7 Evaluasi Kinerja Sistem ... 23
3.2 Rancangan Data ... 23
3.3 Rancangan Antar Muka Sistem ... 27
3.3.1 Rancangan Tampilan Cek Manual ... 28
3.3.2 Rancangan Tampilan Cek Real Time ... 28
3.3.3 Rancangan Tampilan Pengujian ... 30
3.3.4 Rancangan Tampilan Import Data ... 31
3.3.5 Rancangan Tampilan Data Keyword ... 31
3.3.6 Rancangan Tampilan Data Training ... 32
3.3.7 Rancangan Tampilan Data Testing ... 33
3.3.8 Rancangan Tampilan Data Knowledge ... 33
3.4 Pengolahan Data ... 34
3.4.1 Pre-processing ... 34
3.4.2 Seleksi Fitur ... 35
3.4.3 Pelatihan Data Training ... 36
3.4.4 Pengujian Data Testing ... 38
3.5 Pengujian dan Evaluasi ... 39
3.5.1 Skenario Pengujian ... 39
3.5.2 Evaluasi Sistem ... 39
BAB IV HASIL DAN PEMBAHASAN ... 40
4.1 Pengumpulan Dataset ... 40
4.2 Implementasi Pre-processing ... 41
(10)
x
4.4 Implementasi Proses Naïve Bayes Classifier... 43
4.5 Implementasi Pelatihan Data Training ... 45
4.6 Implementasi Pengujian Data Testing ... 45
4.7 Implementasi Perhitungan Akurasi ... 46
4.8 Tampilan Antarmuka Sistem ... 46
4.8.1 Tampilan Cek Manual ... 46
4.8.2 Tampilan Cek Real Time ... 47
4.8.3 Tampilan Pengujian ... 49
4.8.4 Tampilan Import Data ... 50
4.8.5 Tampilan Data Training... 50
4.8.6 Tampilan Data Testing ... 51
4.8.7 Tampilan Data Knowledge ... 51
4.9 Hasil dan Pengujian Sistem ... 52
4.9.1 Pengujian Threshold Mutual Information ... 52
4.9.2 Pengujian Tahap Training ... 53
4.9.3 Pengujian Tahap Testing ... 58
4.9.4 Hasil Uji Coba Sistem ... 60
4.9.5 Analisa Hasil... 61
BAB V KESIMPULAN DAN SARAN ... 65
5.1 Kesimpulan ... 65
5.2 Saran ... 65
DAFTAR PUSTAKA ... 66 LAMPIRAN
(11)
xi DAFTAR TABEL
Tabel 2.1 Contoh Pemotongan N-gram Berbasis Karakter ... 15
Tabel 2.2 Contoh Pemotongan N-gram Berbasis Kata ... 15
Tabel 2.3 Fungsi Simbol-Simbol Flowchart ... 16
Tabel 3.1 Tabel Keyword ... 24
Tabel 3.2 Tabel TweetTraining ... 25
Tabel 3.3 Tabel TweetTesting ... 26
Tabel 3.4 Tabel Pengetahuan ... 27
Tabel 3.5 Tabel Stopword ... 27
Tabel 3.6 Tabel Kontingensi Seleksi Fitur Mutual Information ... 35
Tabel 3.7 Hasil Evaluasi Kinerja Sistem ... 39
Tabel 4.1 Source Code Pemanggilan Fungsi Twitter API ... 40
Tabel 4.2 Source Code Pre-processing ... 41
Tabel 4.3 Source Code Seleksi Fitur Mutual Information ... 42
Tabel 4.4 Source Code Naïve Bayes Classifier ... 43
Tabel 4.5 Source Code Pelatihan Data Training ... 45
Tabel 4.6 Source Code Pengujian Data Testing ... 45
Tabel 4.7 Source Code Perhitungan Akurasi ... 46
Tabel 4.8 Percobaan Pencarian Nilai Threshold untuk Seleksi Fitur ... 52
Tabel 4.9 Pengujian Tahapan Pre-Processing ... 53
Tabel 4.10 Pengujian Tahapan Pembentukan N-Gram Kata ... 54
Tabel 4.11 Pengujian Tahapan Seleksi Fitur Mutual Information ... 56
Tabel 4.12 Pengujian Tahapan Testing ... 58
Tabel 4.13 Hasil Evaluasi Kinerja Sistem untuk N-gram n = 1,2,3,4 ... 61
(12)
xii DAFTAR GAMBAR
Gambar 3.1 Rancangan Sistem... 21
Gambar 3.2 Rancangan Tampilan Cek Manual ... 28
Gambar 3.3 Rancangan Tampilan Cek Query ... 29
Gambar 3.4 Rancangan Tampilan Cek Product ... 29
Gambar 3.5 Rancangan Tampilan Cek Provider ... 30
Gambar 3.6 Rancangan Tampilan Pengujian ... 31
Gambar 3.7 Rancangan Tampilan Import Data ... 31
Gambar 3.8 Rancangan Tampilan Data Keyword ... 32
Gambar 3.9 Rancangan Tampilan Data Training ... 32
Gambar 3.10 Rancangan Tampilan Data Testing ... 33
Gambar 3.11 Rancangan Tampilan Data Knowledge ... 33
Gambar 3.12 Flowchart Proses Pre-processing ... 34
Gambar 3.13 Flowchart Proses Seleksi Fitur Mutual Information ... 35
Gambar 3.14 Flowchart Proses Pembelajaran (Training) ... 36
Gambar 3.15 Flowchart Proses Pengujian (Testing) ... 38
Gambar 4.1 Tampilan Cek Manual ... 47
Gambar 4.2 Tampilan Cek Query ... 48
Gambar 4.3 Tampilan Cek Product ... 48
Gambar 4.4 Tampilan Cek Provider ... 49
Gambar 4.5 Tampilan Pengujian ... 50
Gambar 4.6 Tampilan Import Data ... 50
Gambar 4.7 Tampilan Data Training ... 51
Gambar 4.8 Tampilan Data Testing ... 51
Gambar 4.9 Tampilan Data Knowledge ... 52
Gambar 4.10 Hasil Proses Pre-Processing ... 54
Gambar 4.11 Hasil Pengujian N-gram Kata dengan Nilai N = 1 ... 55
Gambar 4.12 Hasil Pengujian N-gram Kata dengan Nilai N = 2 ... 55
Gambar 4.13 Hasil Pengujian N-gram Kata dengan Nilai N = 3 ... 56
Gambar 4.14 Hasil Pengujian N-gram Kata dengan Nilai N = 4 ... 56
(13)
xiii Gambar 4.16 Perhitungan Nilai Mutual Information ... 58 Gambar 4.17 Hasil N-gram Kata dan Sentimen Setelah Proses Seleksi Fitur 58 Gambar 4.18 Mengambil Data Hasil Training dari Tabel Pengetahuan ... 59 Gambar 4.19 Perhitungan Naïve Bayes Classifier ... 59 Gambar 4.20 Proses Negation Handling ... 60 Gambar 4.21 Grafik Waktu Analisis Sentimen Berdasarkan Nilai N-gram ... 61 Gambar 4.22 Grafik Akurasi Analisis Sentimen Berdasarkan Nilai N-gram . 62 Gambar 4.23 Grafik Hasil Perbandingan antar Provider pada Sistem ... 63
(14)
xiv DAFTAR LAMPIRAN
(15)
(16)
1 BAB I
PENDAHULUAN
1.1Latar Belakang
Analisis sentimen merupakan proses dalam mengolah, memahami, dan mengekstrak data dalam bentuk teks terhadap suatu topik, kejadian ataupun individu untuk mendapatkan informasi sentimen yang terkandung dalam suatu kalimat opini secara otomatis (Rozi, dkk., 2012). Analisis sentimen memungkinkan untuk melacak produk, merek, maupun orang yang menentukan apakah hal tersebut dilihat sebagai suatu hal positif, negatif, atau netral. Hal ini memungkinkan bisnis untuk melacak persepsi produk baru, persepsi merek, manajemen reputasi, dan sebuah pandangan tentang suatu opini pada skala global.
Penelitian di bidang analisis sentimen dari suatu data merupakan hal yang penting dan dibutuhkan di era big data seperti saat ini. Sentimen positif menyatakan pemberian nilai yang baik, sentimen negatif menyatakan pemberian nilai yang buruk pada konteks dalam bentuk teks, sedangkan sentimen netral menyatakan pemberian nilai yang tidak berpihak pada baik maupun buruk dan biasanya kalimat dengan sentimen ini tidak mengandung opini di dalamnya.
Analisis sentimen dapat diaplikasikan pada perusahaan yang mengeluarkan suatu produk dan menyediakan layanan untuk menerima pendapat (feedback) dari konsumen untuk produk tersebut. Analisis sentimen diaplikasikan untuk mengelompokkan feedback positif, negatif, dan netral dari konsumen sehingga mempercepat dan mempermudah tugas perusahaan untuk meninjau kembali kekurangan produk mereka. Apabila ditemukan adanya sentimen negatif, maka perusahaan dapat dengan cepat mengambil tindakan untuk menanggulanginya. Sebaliknya, jika sentimen positif yang lebih dominan, perusahaan dapat meningkatkan produksi dan distribusi produk.
Salah satu perusahaan yang memerlukan adalah provider telekomunikasi seperti Telkomsel, Indosat Oredoo, dan XL Axiata.
(17)
2 Banyaknya jumlah pengguna dari provider telekomunikasi membuat perusahaan tersebut harus menyediakan layanan berupa feedback untuk penggunanya agar memudahkan dalam meninjau kembali produknya. Mengingat ketatnya persaingan antara provider satu dengan provider lainnya membuat perusahaan tersebut harus mempertahankan promo yang disukai oleh pelanggan dan mengganti atau memperbaiki promo dan layanan yang tidak disukai dengan cepat dan tepat. Salah satu media yang digunakan sebagai layanan feedback adalah Twitter.
Twitter menurut statistiknya adalah jejaring sosial dengan pertumbuhan tercepat sejak tahun 2006. Jejaring sosial yang dibatasi 140 karakter ini mengirim 250 juta tweet tiap harinya. Menurut MIT Technology Review (2013), Indonesia menempati Negara ketiga penyumbang tweet
terbanyak dengan jumlah 1 milyar tweet, di bawah Amerika Serikat (3,7 milyar) dan Jepang (1,8 milyar). Jakarta menjadi Twitter Capital City yaitu kota dengan jumlah tweet terbanyak dan teraktif di dunia. Analisis sentimen berguna untuk menganalisis komentar-komentar di Twitter menjadi pengetahuan yang lebih bermakna. Sehingga pengetahuan tersebut dapat dimanfaatkan oleh perusahaan salah satunya adalah provider telekomunikasi dalam memantau penerimaan produk mereka di masyarakat.
Beberapa metode yang pernah digunakan pada analisis sentimen adalah Entropy Weighted Genetic Algorithm dan SVM Weight. EWGA menunjukkan performansi yang lebih baik dari SVM Weight (Ahmed dkk, 2007). Selain itu, terdapat Structural Correspondence Learning (SCL), SCLMI dan Baseline, dengan hasil SCL-MI menunjukkan performansi yang lebih baik untuk adaptasi domain (Blitzer dkk, 2007). Pada penelitian Saraswati (2011), dalam mengklasifikasikan opini dalam bentuk paragraf yang terdiri dari beberapa kalimat menggunakan metode Support Vector Machine dan Naïve Bayes Classifier memberikan hasil yang tepat. Namun, metode Support Vector Machine memiliki kelemahan dalam waktu pemrosesan yang cukup lama untuk data yang besar. Sehingga dalam penelitian ini digunakan metode Naïve Bayes Classifier (NBC).
(18)
3 Metode Naïve Bayes Classifier dipilih karena metode ini sederhana atau mudah diaplikasikan, memiliki proses komputasi yang cepat, dan akurasi yang tinggi (Korde & Mahender, 2012). Metode Naïve Bayes Classifier untuk klasifikasi atau kategorisasi teks menggunakan fitur n-gram kata yang muncul dalam suatu dokumen sebagai dasar klasifikasinya. Rish (2001) menunjukkan bahwa meskipun asumsi independensi antar kata dalam dokumen tidak sepenuhnya dapat dipenuhi, tetapi kinerja Naïve Bayes Classifier dalam klasifikasi relatif sangat bagus. Berdasarkan hasil eksperimen, Naïve Bayes Classifier terbukti dapat digunakan secara efektif untuk mengklasifikasikan berita secara otomatis dengan akurasi mencapai 90.23% (Wibisono, 2005). Sedangkan untuk penelitian di bidang analisis sentimen dengan objek provider telekomunikasi pernah dilakukan oleh Boy Utomo Manalu (2014). Namun, pada penelitian tersebut belum menggunakan seleksi fitur sehingga didapatkan hasil akurasi 88% dengan jumlah data training masing-masing 1000 data untuk sentimen positif, negatif, dan netral.
Tahap pre-processing dalam penelitian ini akan menemukan banyaknya fitur yang diambil dari data Twitter. Fitur tersebut terdiri dari puluhan atau ratusan term unik yang tidak saling berhubungan. Permasalahan yang muncul akibat banyaknya fitur adalah dapat mengurangi kinerja dari klasifikasi. Untuk mengatasi permasalahan tersebut, fitur yang di ekstrak harus di filter sebelum memasuki tahap klasifikasi untuk mendapatkan fitur yang paling relevan dan yang terbaik untuk mewakili dokumen. Oleh sebab itu, diperlukan suatu metode untuk memilih fitur penting yang mewakili dokumen dan dapat mengurangi dimensi ruang fitur karena dapat meningkatkan kinerja klasifikasi.
Seleksi fitur adalah proses pemilihan sebuah subset term yang muncul dalam himpunan training. Mutual Information adalah salah satu metode seleksi fitur yang menggunakan informasi kelas dalam data latih, sehingga untuk menggunakan seleksi fitur ini harus tersedia sebuah set pre-classied.
Mutual Information digunakan sebagai seleksi fitur dalam penelitian ini karena fungsinya yang cocok untuk menilai term dari isi informasi dalam proses klasifikasi. Hal tersebut disebabkan karena Mutual Information dapat
(19)
4 mengukur dependensi acak antar variabel (Battiti, 1994). Penelitian dalam bidang klasifikasi sentimen menggunakan seleksi fitur Mutual Information
pernah dilakukan sebelumnya oleh Narayanan. Hasil penelitian menunjukkan bahwa adanya peningkatan akurasi dari 73,77% untuk penggunaan algoritma Naïve Bayes dengan Laplacian Smoothing menjadi 88,80% setelah ditambahkannya seleksi fitur pada algoritma Naïve Bayes (Narayanan dkk., TT). Oleh sebab itu, pada penelitian ini akan diterapkan Mutual Information
untuk penyeleksian fitur sebelum diklasifikasi dengan Naïve Bayes Classifier
sehingga diharapkan hasil analisis sentimen menjadi lebih akurat.
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, maka dapat dirumuskan beberapa permasalahan sebagai berikut.
1) Bagaimana pengaruh seleksi fitur Mutual Information dalam upaya meningkatkan akurasi dari analisis sentimen dengan Naïve Bayes Classifier?
2) Bagaimana akurasi yang dihasilkan dalam analisis sentimen setelah penambahan seleksi fitur Mutual Information pada metode Naïve Bayes Classifier ?
1.3 Batasan Masalah
Adapun batasan masalah dalam penelitian ini adalah :
1) Pada penelitian ini dataset yang digunakan adalah tweet yang ditujukan kepada provider telekomunikasi di Indonesia. Tweet tersebut mengandung @ (mention) dan # (hastag) yang diikuti dengan nama provider antara lain, #telkomsel, @simpati, #AS, @indosat, dan lain-lain.
2) Proses stopword hanya berlaku pada kata-kata berbahasa Indonesia saja. 3) Menggunakan metode n-gram kata dengan jumlah n =1, 2, 3, 4 sebagai
(20)
5 1.4 Tujuan Penelitian
Adapun tujuan dalam penelitian ini adalah :
1) Untuk mengetahui pengaruh seleksi fitur Mutual Information dalam upaya meningkatkan akurasi dari analisis sentimen dengan Naïve Bayes Classifier.
2) Untuk mengetahui akurasi yang dihasilkan dalam analisis sentimen setelah penambahan seleksi fitur Mutual Information pada metode Naïve Bayes Classifier.
1.5 Manfaat Penelitian
Adapun manfaat dalam penelitian ini adalah :
1) Sebagai landasan untuk penelitian selanjutnya yang ingin mengembangkan penelitian mengenai analisis sentimen.
2) Sebagai bahan referensi untuk perusahaan provider telekomunikasi yang ingin memanfaatkan hasil penelitian untuk mendapatkan feedback dengan mudah tanpa menggunakan cara manual atau mendata opini masyarakat satu persatu.
3) Hasil penelitian ini dapat digunakan oleh pihak produsen yaitu pihak perusahaan provider telekomunikasi dalam memantau penerimaan produk dan layanan mereka di masyarakat secara real time. Sehingga berdampak pula pada investasi saham dari perusahaan tersebut untuk menentukan kapan terjadinya aktivitas jual dan beli saham terhadap akumulasi hasil sentimen dari data Twitter melalui sistem ini.
1.6 Metodologi Penelitian
Pada bagian metode penelitian menjelaskan langkah-langkah yang dilakukan untuk menerapkan seleksi fitur Mutual Information dalam metode
Naïve Bayes Classifier pada sentimen analisis provider telekomunikasi. Adapun sub bahasan langkah-langkah yang akan dijadikan pedoman dalam penelitian ini adalah desain penelitian, pengumpulan data, pengolahan data awal, dan metode yang digunakan.
(21)
6 1.6.1 Desain Penelitian
Penelitian ini tergolong ke dalam penelitian eksperimental. Objek dalam penelitian ini yaitu sentimen dari tweet pengguna provider telekomunikasi. Sedangkan metode yang digunakan adalah Naïve Bayes Classifier dengan seleksi fitur Mutual Information. Penelitian diawali dengan mengumpulkan data tweet pada Twitter. Setelah data dikumpulkan kemudian data tersebut disimpan ke dalam database. Selanjutnya tahap pre-processing
(toLowerCase, penghapusan URL, @mention, #hashtag, tokenisasi, dan menghapus stopword). Tahap penyeleksian fitur dengan seleksi fitur Mutual Information, klasifikasi menggunakan metode Naïve Bayes Classifier.
Kemudian hasil dari metode di uji tingkat akurasi dan kecepatan pemrosesannya.
1.6.2 Pengumpulan Data
Data yang digunakan pada penelitian ini adalah data primer yaitu
tweet yang ditujukan kepada provider telekomunikasi di Indonesia dari sosial media Twitter. Pengumpulan data menggunakan Twitter Search API dengan memasukkan keyword-keyword yang berhubungan dengan Provider Telekomunikasi yang dikombinasikan dengan kata-kata sentimen. Langkah dalam mengumpulkan data mengikuti penelitian sebelumnya yaitu menggunakan emoticon dan kata sentimen yang digabungkan dengan nama provider telekomunikasi (Manalu, 2014). Dalam penelitian ini, data terdiri dari 2 bagian yaitu data tweet dandata stopword.
1.6.3 Pengolahan Data Awal
Teks dokumen yang telah dimasukkan ke dalam database dirubah semua karakter huruf menjadi huruf kecil melalui proses toLowerCase.
Kemudian dilakukan penghapusan URL, seperti @mention dan #hashtag
yang ada pada tweet tersebut. Tokenisasi (pemotongan string input berdasarkan kata yang menyusunnya) dan menghapus stopword (kata-kata yang tidak berpengaruh terhadap proses klasifikasi).
Dalam penelitian ini sistem mempunyai 2 tahapan proses pengolahan data yaitu tahap pembelajaran (training) dan tahap pengujian (testing).
(22)
7 Tujuan dari tahap pembelajaran adalah untuk mencari n-gram kata beserta frekuensinya yang nantinya akan digunakan pada proses testing. Sedangkan untuk tahap pengujian bertujuan untuk mengklasifikasikan tweet yang belum diketahui kategorinya.
1.6.4 Metode yang Digunakan
Tahap seleksi fitur menggunakan metode Mutual Information. Seleksi fitur adalah proses pemilihan sebuah subset term yang muncul dalam himpunan training. Penggunaan seleksi fitur bermanfaat agar metode pengklasifikasian lebih efisien dengan mengurangi ukuran vocabulary. Selain itu, dapat meningkatkan akurasi klasifikasi dengan membuang fitur yang
noise.
Sedangkan pada tahap klasifikasi menggunakan Naïve Bayes Classifier yaitu suatu metode klasifikasi yang menggunakan perhitungan probabilitas. Dalam penelitian ini yang menjadi data uji adalah dokumen
tweet. Dalam algoritma Naïve Bayes Classifier setiap dokumen direpresentasikan dengan pasangan atribut “x1, x2, x3, … xn” dimana x1 adalah kata pertama, x2 adalah kata kedua dan seterusnya. Sedangkan V adalah himpunan kategori tweet. Pada saat klasifikasi algoritma akan mencari probabilitas tertinggi dari semua kategori dokumen yang diujikan (Vj).
(23)
8 BAB II
TINJAUAN PUSTAKA
2.1 Analisis Sentimen
Opinion Mining atau analisis sentimen merupakan salah satu bidang dari ilmu komputer yang mempelajari komputasi linguistik, pengolahan bahasa alami, dan text mining yang bertujuan untuk menganalisa emosi, penilaian, sikap, pendapat, sentimen, evaluasi seseorang terhadap seorang pembicara atau penulis berkenaan dengan suatu produk, layanan, organisasi, individu, tokoh publik, topik, acara, ataupun kegiatan tertentu (Liu, 2012).
Proses utama dalam analisis sentimen yaitu mengelompokkan teks yang terdapat dalam sebuah kalimat atau dokumen kemudian menentukan pendapat yang dikemukakan tersebut apakah bersifat positif, negatif, atau netral. Analisis sentimen dapat digunakan untuk mencari pendapat tentang produk, merek atau tokoh publik dan menentukan apakah mereka dilihat positif atau negatif (Saraswati, 2011). Hal ini memungkinkan pengguna untuk mencari informasi tentang: 1) Deteksi Flame (rants buruk), 2) Persepsi produk baru, 3) Persepsi merek, 4) Manajemen reputasi.
Sentimen atau opini mengacu pada fokus topik tertentu, pernyataan pada satu topik mungkin akan berbeda makna dengan pernyataan yang sama pada
subject yang berbeda. Alasan tersebut menyebabkan beberapa penelitian terutama pada review produk didahului dengan menentukan elemen dari sebuah produk yang sedang dibicarakan sebelum memulai proses opinion mining (Manalu, 2014).
2.2 Naïve Bayes Classifier
Naïve Bayes Classifier adalah salah satu metode klasifikasi yang berakar pada teorema Bayes. Ciri utama dari Naïve Bayes Classifier ini adalah asumsi yang sangat kuat (naif) terhadap tingkat independensi dari masing-masing kondisi atau kejadian. Terdapat dua tahap klasifikasi dokumen tweet pada penelitian ini. Tahap pertama adalah proses training terhadap dokumen yang
(24)
9 sudah diketahui kategorinya. Sedangkan tahap kedua adalah proses testing
yaitu mengklasifikasikan dokumen yang belum diketahui kategorinya.
Dalam algoritma Naïve Bayes Classifier setiap dokumen direpresentasikan dengan pasangan atribut “x1, x2, x3, … xn” dimana x1 adalah kata pertama, x2 adalah kata kedua dan seterusnya. Sedangkan V adalah himpunan kategori tweet sebagai berikut:
� |� , … , � = � � � ,…,��|
� � ,…,�� (1)
Dimana variabel V merepresentasikan kelas, sementara variabel
� , … , � merepresentasikan karakteristik-karakteristik petunjuk yang dibutuhkan untuk melakukan klasifikasi. Maka rumus tersebut menjelaskan bahwa peluang masuknya sampel dengan karakteristik tertentu dalam kelas V (posterior) adalah peluang munculnya kelas V (sebelum masuknya sampel tersebut, disebut prior), dikali dengan peluang kemunculan karakteristik-karakteristik sampel pada kelas V (likelihood), dibagi dengan peluang kemunculan karakteristik-karakteristik sampel secara global (evidence).
Nilai evidence selalu tetap untuk setiap kelas pada satu sampel. Nilai dari posterior tersebut yang nantinya akan dibandingkan dengan nilai-nilai
posterior kelas lainnya untuk menentukan ke kelas apa suatu sampel akan diklasifikasikan. Penjabaran lebih lanjut rumus Naïve Bayes Classifier dapat dilakukan dengan menjabarkan � � , … , � | menggunakan aturan perkalian, menjadi sebagai berikut:
� � , … , � | = � � | � � , … , � | , �
= � � | � � | , � � � , … , � | , � | , � , �
= � � | � � | , � … � � | , � , � , … � − (2)
Hasil penjabaran persamaan (2) memperlihatkan semakin banyak dan semakin kompleksnya faktor-faktor syarat yang mempengaruhi nilai probabilitas, sehingga menjadi rumit untuk dianalisa satu-persatu. Akibatnya, perhitungan tersebut menjadi sulit untuk dilakukan.
Disinilah digunakan asumsi independensi yang sangat tinggi (naif), bahwa masing-masing fitur � , � , … , � saling bebas (independent) satu sama lain. Dengan asumsi tersebut, maka berlaku suatu kesamaan sebagai berikut:
(25)
10
�(� |� ) = � � �� � = � � (3)
untuk i ≠ j, sehingga persamaan (3) menjadi
�(� | , � ) = � � | (4)
Dari persamaan (4) dapat disimpulkan bahwa asumsi independensi naif tersebut membuat syarat peluang menjadi sederhana, sehingga perhitungan menjadi mungkin untuk dilakukan. Selanjutnya, penjabaran � � , … , � | dapat disederhanakan menjadi seperti berikut :
� � , … , � | = � � | � � | … � � | � � , … , � | (5)
� � , … , � | = ∏= � � | (6)
Dari persamaan (6), persamaan (1) Naïve Bayes Classifier dapat dituliskan sebagai berikut :
� |� , … , � =� ∏�= � � |
� � , � …, �� (7)
Persamaan (7) merupakan model dari teorema Naïve Bayes Classifier
yang selanjutnya akan digunakan dalam proses klasifikasi dokumen tweet
(Dharmawan, 2014). Pada saat klasifikasi algoritma akan mencari probabilitas tertinggi dari semua kategori dokumen yang diujikan, dimana persamaan (7) menjadi sebagai berikut :
� |� , … , � = � ∏ � � |
� =
� � , � …, ��
∈ � � ��
(8)
Adapun adalah kategori tweet dimana dalam penelitian ini j1 = kategori tweet sentimen negatif, j2 = kategori tweet sentimen positif, dan j3 = kategori tweet sentimen netral. Sedangkan � � , � … , � merepresentasikan evidence yang nilainya konstan untuk semua kelas pada satu sampel. Penjabaran dari evidence tersebut yaitu :
� � ,� ,� ,… � = � � � � … �
= � � + � + � + … + �
= � � + � � + � � + … + � �
= ∑= � � = 1
(26)
11 Sehingga persamaan (8) dapat disederhanakan menjadi sebagai berikut :
� |� , … , � = � � �� ∈ � ∏= � � | (9)
Keterangan :
Vj = Kategori tweet j = 1, 2, 3, … n. Dimana dalam penelitian ini
j1 = kategori tweet sentimen negatif, j2 = kategori tweet
sentimen positif, dan j3 = kategori tweet sentimen netral P(xi|Vj) = Probabilitas xi pada kategori Vj
P(Vj) = Probabilitas dari Vj
Untuk P(Vj) dan P(xi|Vj) persamaannya adalah sebagai berikut : P(Vj) = | |
|� | (10)
P(xi|Vj) = +
+| � � �| (11)
Keterangan :
|docs j| = jumlah dokumen setiap kategori j |all docs| = jumlah dokumen dari semua kategori
nk = jumlah frekuensi kemunculan setiap n-gram kata
n = jumlah frekuensi kemunculan n-gram kata dari setiap kategori
|kosakata| = jumlah semua n-gram kata dari semua kategori
2.3 Seleksi Fitur Mutual Information
Tahap seleksi fitur (feature selection) bertujuan untuk mengurangi dimensi suatu kumpulan teks dengan cara menghapus kata-kata yang dianggap tidak penting sehingga proses pengklasifikasian lebih efektif dan akurat (Feldman & Sanger, 2007, Blitzer & Kogan, 2010). Selain itu, menurut Manning et al (2009) seleksi fitur biasanya dapat meningkatkan akurasi klasifikasi dengan menghilangkan fitur noise.
Seleksi fitur secara umum dibagi menjadi dua metode, yaitu
unsupervised feature selection dan supervised feature selection. Unsupervised feature selection adalah sebuah metode seleksi fitur yang tidak
(27)
12 mengutamakan informasi kelas dalam data pelatihan ketika memilih fitur untuk classifier, salah satu contohnya adalah IDF. Supervised feature selection adalah metode seleksi fitur yang menggunakan informasi kelas dalam data latih, sehingga untuk menggunakan seleksi fitur ini harus tersedia sebuah set pre-classied (Garnes, 2009).
Mutual Information adalah contoh dari supervised feature selection.
Fitur seleksi ini sering digunakan untuk menghitung bobot dari fitur. Mutual Information menunjukkan seberapa banyak informasi ada atau tidaknya sebuah term memberikan kontribusi dalam membuat keputusan klasifikasi secara benar atau salah. Nilai dari Mutual Information disimbolkan dengan notasi I, yakni
I(U;C) = ∑ ∈{ , }∑ ∈{ , }� = ��, � = �� ��� � = ,�=
� = � �= (12)
Sedangkan U adalah variabel acak dengan nilai-nilai et = 1 (dokumen berisi
term t) dan et = 0 (dokumen tidak mengandung t), dan C adalah variabel acak dengan nilai-nilai ec = 1 (dokumen di kelas c) dan ec = 0 (dokumen tidak di kelas c). Nilai dari I juga bisa dijabarkan menjadi
I(U;C) = � � ��� �� � � + � � ��� �� � � + � � ��� �� � � + � � ��� ��
� � (13)
dengan N adalah jumlah dokumen yang memiliki nilai-nilai et dan ec yang ditunjukkan oleh dua subscript. Sebagai contoh, N10 adalah jumlah dokumen
yang mengandung term t (et = 1) dan tidak dalam c (ec = 0). N1 = N10 + N11
adalah jumlah dokumen yang berisi term t (et = 1) dan untuk menghitung
dokumen independen keanggotaan kelas (ec {0,1}). N adalah jumlah total
dokumen atau N = N00 + N01 + N10 + N11.
2.4 Text Pre-processing
Tahap text pre-processing adalah tahap awal dari text mining. Tahap ini mencakup semua rutinitas, dan proses untuk mempersiapkan data yang
(28)
13 akan digunakan pada operasi knowledge discovery sistem text mining
(Fieldman & Sanger, 2007). Tindakan yang dilakukan pada tahap ini adalah
toLowerCase, yaitu mengubah semua karakter huruf menjadi huruf kecil dan
Tokenizing yaitu proses penguraian deskripsi yang semula berupa kalimat-kalimat menjadi kata-kata dan menghilangkan delimiter-delimiter seperti tanda titik (.), koma (,), spasi dan karakter angka yang ada pada kata tersebut (Weiss et al, 2005).
2.5 Twitter
Twitter adalah sebuah situs web yang dimiliki dan dioperasikan oleh Twitter Inc., yang menawarkan jaringan sosial berupa microblog sehingga memungkinkan penggunanya untuk mengirim dan membaca pesan Tweets
(Twitter, 2013). Mikroblog adalah adalah satu jenis alat komunikasi online dimana pengguna dapat memperbarui status tentang mereka yang sedang memikirkan dan melakukan sesuatu, apa pendapat mereka tentang suatu objek atau fenomena tertentu. Tweets adalah teks tulisan hingga 140 karakter yang ditampilkan pada halaman profil pengguna. Tweets bisa dilihat secara publik, namun pengirim dapat membatasi pengiriman pesan ke daftar teman-teman mereka saja. Pengguna dapat melihat Tweets pengguna lain yang dikenal dengan sebutan pengikut (follower).
Tidak seperti Facebook, LinkedIn, dan Myspace. Twitter merupakan sebuah jejaring sosial yang dapat digunakan sebagai sebuah graph berarah (Wang, 2010), yang berarti bahwa pengguna dapat mengikuti pengguna lain, namun pengguna kedua tidak diperlukan untuk mengikutinya kembali. Kebanyakan akun berstatus publik dan dapat diikuti tanpa memerlukan persetujuan pemilik.
Semua pengguna dapat mengirim dan menerima Tweets melalui situs Twitter, aplikasi eksternal yang kompatibel (telepon seluler), atau dengan pesan singkat (SMS) yang tersedia di Negara-negara tertentu (Twitter, 2013). Pengguna dapat menulis pesan berdasarkan topik dengan menggunakan tanda # (hastag). Sedangkan untuk menyebutkan atau membalas pesan dari pengguna lain bisa menggunakan tanda @.
(29)
14 Pesan pada awalnya diatur hanya mempunyai batasan sampai 140 karakter disesuaikan dengan kompatibilitas dengan pesan SMS, memperkenalkan singkatan notasi dan slang yang biasa digunakan dalam pesan SMS. Batas karakter 140 juga meningkatkan penggunaan layanan memperpendek URL seperti bit.ly, goo.gl, dan tr.im, dan jasa hosting konten seperti Twitpic, Tweephoto, memozu.com dan NotePub untuk mengakomodasi multimedia isi dan teks yang lebih panjang daripada 140 karakter (Twitter, 2013). Twitter menggunakan bit.ly untuk memperpendek otomatis semua URL yang dikirim. Fitur yang terdapat dalam Twitter, antara lain :
1. Laman Utama (Home)
Pada halaman utama kita bisa melihat Tweets yang dikirimkan oleh orang-orang yang menjadi teman kita atau yang kita ikuti (following). 2. Profil (Profile)
Pada halaman ini yang akan dilihat oleh seluruh orang mengenai profil atau data diri serta Tweets yang sudah pernah dibuat.
3. Followers
Pengikut adalah pengguna lain yang ingin menjadikan kita sebagai teman. Bila pengguna lain menjadi pengikut akun seseorang, maka Tweets
seseorang yang di ikuti tersebut akan masuk ke dalam halaman utama. 4. Following
Kebalikan dari pengikut, following adalah akun seseorang yang mengikuti akun pengguna lain agar Tweets yang dikirim oleh orang yang diikuti tersebut masuk ke dalam halaman utama.
5. Mentions
Biasanya konten ini merupakan balasan dari percakapan agar sesama pengguna bisa langsung menandai orang yang akan diajak bicara.
6. Favorite
Tweets ditandai sebagai favorit agar tidak hilang oleh halaman sebelumnya.
(30)
15 7. Pesan Langsung (Direct Message)
Fungsi pesan langsung lebih bisa disebut SMS karena pengiriman pesan langsung di antara pengguna.
8. Hashtag
Hashtag “#” yang ditulis di depan topik tertentu agar pengguna lain bisa
mencari topik yang sejenis yang ditulis oleh orang lain juga. 9. List
Pengguna Twitter dapat mengelompokkan ikutan mereka ke dalam satu grup sehingga memudahkan untuk dapat melihat secara keseluruhan para nama pengguna (username) yang mereka ikuti (follow).
10.Topik Terkini (Trending Topic)
Topik yang sedang banyak dibicarakan banyak pengguna dalam suatu waktu yang bersamaan.
2.6 N-gram
N-gram adalah potongan n karakter dalam suatu string tertentu atau potongan n kata dalam suatu kalimat tertentu. Misalnya dalam kata “Sinyal” akan didapatkan n-gram sebagai berikut.
Tabel 2.1 Contoh pemotongan N-gram berbasis karakter Nama N-gram Karakter
Uni-gram Bi-gram Tri-gram Quad-gram
S, I, N, Y, A, L
_S, SI, IN, NY, YA, AL, L_
_SI, SIN, INY, NYA, YAL, AL_, L_ _
_SIN, SINY, INYA, NYAL, YAL_, AL_ _, L_ _ _
Karakter blank “_” digunakan untuk merepresentasikan spasi di depan dan di akhir kata. Dan untuk word-based n-gram contohnya adalah sebagai berikut.
Kalimat : “internet lancar mudah jangkauan luas stabil”
Tabel 2.2 Contoh pemotongan N-gram berbasis kata Nama N-gram Karakter
(31)
16 Bi-gram
Tri-gram Dst…
internet lancar, lancar mudah, mudah jangkauan, jangkauan luas, luas stabil
internet lancar mudah, lancar mudah jangkauan, mudah jangkauan luas, jangkauan luas stabil
2.7 Flowchart
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urutan-urutan prosedur suatu program. Simbol-simbol dari flowchart
memiliki fungsi yang berbeda antara satu simbol dengan simbol lainnya. Fungsi dari simbol-simbol flowchart adalah sebagai berikut :
Tabel 2.3 Fungsi Simbol-Simbol Flowchart
Simbol Fungsi
Simbol process, yaitu menyatakan suatu tindakan (proses) yang dilakukan didalam program.
Simbol offline connector yaitu menyatakan penghubung bila flowchart terputus disebabkan oleh pergantian halaman (misalnya tidak cukup dalam satu halaman).
Simbol online connector, berfungsi untuk menyatakan sambungan dari proses ke proses yang lainnya dalam halaman yang sama.
Simbol arus/flowline, yaitu menyatakan jalannya arus suatu proses.
Simbol decision yaitu menunjukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban yaitu : ya/tidak.
Simbol input/output, menyatakan proses input atau output tanpa tergantung jenis peralatannya.
Simbol terminal yaitu menyatakan permulaan atau akhir suatu program.
(32)
17 Simbol document, mencetak keluaran dalam bentuk dokumen.
2.8 Bahasa Pemrograman PHP dan Database MySQL
PHP (Hypertext Preprocessor) adalah bahasa komputer yang dibuat untuk pengembangan web dinamis. Pada umumnya PHP digunakan di server namun juga dapat berdiri sendiri sebagai aplikasi graphical (www.php.net, 2008). Penggunaan PHP dan MySQL dipilih karena PHP dan MySQL memiliki beberapa kelebihan sebagai berikut:
1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya.
2. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan Apache dengan konfigurasi yang relatif mudah. 3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis
dan developer yang siap membantu dalam pengembangan.
4. Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak.
5. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Windows) dan dapat dijalankan secara runtime melalui
console serta juga dapat menjalankan perintah-perintah sistem. Sedangkan database MySQL memiliki beberapa kelebihan, yaitu: 1. Portability
MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga dan masih banyak lagi.
2. Open Source
MySQL dapat didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma.
3. Multiuser
MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
(33)
18 4. Performance tuning
MySQL memiliki kecepatan yang menakjubkan dalam menangani query
sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
5. Column types
MySQL memiliki tipe kolom yang sangat kompleks, seperti signed atau
unsigned integer, float, double, char, text, date, timestamp, dan lain-lain. 6. Command dan functions
MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam query.
7. Security
MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask,
nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.
8. Scalability dan limits
MySQL mampu menangani database dalam skala besar, dengan jumlah
records lebih dari 50 juta dan 60 juta ribu serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
9. Connectivity
MySQL dapat melakukan koneksi dengan client menggunakan protocol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
10.Localization
MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum termasuk di dalamnya.
11.Interface
MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
(34)
19 MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk
online.
13.Struktur Tabel
MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani
ALTER TABLE, dibandingkan database lainnya semacam PostgreSQL ataupun Oracle.
2.9 Tinjauan Empiris
Dalam penelitian ini, peneliti menggunakan beberapa jurnal sebagai tinjauan studi, yaitu sebagai berikut.
a. Thumbs Up? Sentiment Classification Using Machine Learning Techniques (Pang et al, 2002)
Kajian ini menjelaskan klasifikasi sentimen terhadap review film dengan menggunakan berbagai teknik pembelajaran mesin. Teknik pembelajaran mesin yang digunakan yaitu Naïve Bayes, Maximum Entropy, dan Support Vector Machines (SVM). Pada penelitian tersebut juga digunakan beberapa pendekatan untuk melakukan ekstraksi fitur, yaitu unigram, unigram + bigram, unigram + Part of Speech (POS), adjective, dan unigram + posisi. Hasil dari eksperimen yang dilakukan di penelitian ini menemukan bahwa SVM menjadi metode terbaik ketika dikombinasikan dengan unigram dengan akurasi 82.9%.
b. Sentiment Analysis of User Generated Twitter Updates using Various Classification (Parikh et al, 2009)
Makalah ini membahas analisis sentimen terhadap media jejaring sosial Twitter dengan menggunakan beberapa teknik klasifikasi. Metode yang digunakan adalah Unigram Naïve Bayes, Multinomial Naïve Bayes, dan Maximum Entropy Classification. Hasil yang diperoleh dari penelitian mereka dapat ditarik kesimpulan bahwa kedua Naïve Bayes memperlihatkan performa yang lebih baik dari Maximum Entropy.
(35)
20 c. Micro-blogging Sentiment Analysis Using Bayesian Classification
Methods (Prasad, 2010)
Pada makalah ini menyajikan penggunaan Naïve Bayes dengan berbagai macam pendekatan yakni, Bernoulli, Bernoulli Chi Square, Multinomial Unigram, Linear Bigram, Backoff Chi Square, Multinomial Unigram, Linear Bigram, Backoff Bigram, Empirical Bigram, dan Weighted-Normalized Complement Naïve Bayes (WCNB). Dari hasil uji coba diketahui bahwa Multinomial Unigram, Bernouli Chi Square, dan Linear Bigram menunjukkan hasil yang cenderung lebih baik dari pendekatan lainnya.
d. Comparison of SVM and Some Older Classification Algorithms in Text Classification Tasks (Colas, F. & Brazdil, P., 2005)
Makalah ini membandingkan metode Naïve Bayes Classifier dengan
k-Neirest Neighbor dan Support Vector Machine. Hasil penelitian mendapatkan bahwa metode Naïve Bayes Classifier memiliki performansi yang lebih baik dibandingkan k-Neirest Neighbor dan
Support Vector Machine untuk menyelesaikan binary classification pada dokumen berbahasa Inggris. Hasil penelitian juga menyebutkan waktu komputasi yang jauh lebih pendek oleh metode Naïve Bayes Classifier
dan k-Neirest Neighbor. Waktu komputasi Support Vector Machine
berkembang secara kuadratik seiring dengan perkembangan jumlah data latih.
e. Sentiment Analysis in Multiple Language: Feature Selection for Opinion Classification in Web Forums (Abbasi et al, TT)
Penelitian mengenai analisis sentimen ini menemukan bahwa metode hibridisasi algoritma genetika EWGA mendapatkan hasil yang lebih baik dibandingkan metode SVM weight untuk feature selection. Sedangkan untuk proses klasifikasi sendiri dilakukan dengan metode SVM. Metode EWGA merupakan gabungan antara metode heuristik Information Gain
(1)
15 7. Pesan Langsung (Direct Message)
Fungsi pesan langsung lebih bisa disebut SMS karena pengiriman pesan langsung di antara pengguna.
8. Hashtag
Hashtag “#” yang ditulis di depan topik tertentu agar pengguna lain bisa mencari topik yang sejenis yang ditulis oleh orang lain juga.
9. List
Pengguna Twitter dapat mengelompokkan ikutan mereka ke dalam satu grup sehingga memudahkan untuk dapat melihat secara keseluruhan para nama pengguna (username) yang mereka ikuti (follow).
10.Topik Terkini (Trending Topic)
Topik yang sedang banyak dibicarakan banyak pengguna dalam suatu waktu yang bersamaan.
2.6 N-gram
N-gram adalah potongan n karakter dalam suatu string tertentu atau potongan n kata dalam suatu kalimat tertentu. Misalnya dalam kata “Sinyal” akan didapatkan n-gram sebagai berikut.
Tabel 2.1 Contoh pemotongan N-gram berbasis karakter Nama N-gram Karakter
Uni-gram Bi-gram Tri-gram Quad-gram
S, I, N, Y, A, L
_S, SI, IN, NY, YA, AL, L_
_SI, SIN, INY, NYA, YAL, AL_, L_ _
_SIN, SINY, INYA, NYAL, YAL_, AL_ _, L_ _ _
Karakter blank “_” digunakan untuk merepresentasikan spasi di depan dan di akhir kata. Dan untuk word-based n-gram contohnya adalah sebagai berikut.
Kalimat : “internet lancar mudah jangkauan luas stabil”
Tabel 2.2 Contoh pemotongan N-gram berbasis kata Nama N-gram Karakter
(2)
16 Bi-gram
Tri-gram Dst…
internet lancar, lancar mudah, mudah jangkauan, jangkauan luas, luas stabil
internet lancar mudah, lancar mudah jangkauan, mudah jangkauan luas, jangkauan luas stabil
2.7 Flowchart
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urutan-urutan prosedur suatu program. Simbol-simbol dari flowchart memiliki fungsi yang berbeda antara satu simbol dengan simbol lainnya. Fungsi dari simbol-simbol flowchart adalah sebagai berikut :
Tabel 2.3 Fungsi Simbol-Simbol Flowchart
Simbol Fungsi
Simbol process, yaitu menyatakan suatu tindakan (proses) yang dilakukan didalam program.
Simbol offline connector yaitu menyatakan penghubung bila flowchart terputus disebabkan oleh pergantian halaman (misalnya tidak cukup dalam satu halaman).
Simbol online connector, berfungsi untuk menyatakan sambungan dari proses ke proses yang lainnya dalam halaman yang sama.
Simbol arus/flowline, yaitu menyatakan jalannya arus suatu proses.
Simbol decision yaitu menunjukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban yaitu : ya/tidak.
Simbol input/output, menyatakan proses input atau output tanpa tergantung jenis peralatannya.
Simbol terminal yaitu menyatakan permulaan atau akhir suatu program.
(3)
17 Simbol document, mencetak keluaran dalam bentuk dokumen.
2.8 Bahasa Pemrograman PHP dan Database MySQL
PHP (Hypertext Preprocessor) adalah bahasa komputer yang dibuat untuk pengembangan web dinamis. Pada umumnya PHP digunakan di server namun juga dapat berdiri sendiri sebagai aplikasi graphical (www.php.net, 2008). Penggunaan PHP dan MySQL dipilih karena PHP dan MySQL memiliki beberapa kelebihan sebagai berikut:
1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya.
2. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan Apache dengan konfigurasi yang relatif mudah. 3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis
dan developer yang siap membantu dalam pengembangan.
4. Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak.
5. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah sistem.
Sedangkan database MySQL memiliki beberapa kelebihan, yaitu: 1. Portability
MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga dan masih banyak lagi.
2. Open Source
MySQL dapat didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma.
3. Multiuser
MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
(4)
18 4. Performance tuning
MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
5. Column types
MySQL memiliki tipe kolom yang sangat kompleks, seperti signed atau unsigned integer, float, double, char, text, date, timestamp, dan lain-lain. 6. Command dan functions
MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam query.
7. Security
MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.
8. Scalability dan limits
MySQL mampu menangani database dalam skala besar, dengan jumlah records lebih dari 50 juta dan 60 juta ribu serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
9. Connectivity
MySQL dapat melakukan koneksi dengan client menggunakan protocol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
10.Localization
MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum termasuk di dalamnya.
11.Interface
MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
(5)
19 MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk online.
13.Struktur Tabel
MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan database lainnya semacam PostgreSQL ataupun Oracle.
2.9 Tinjauan Empiris
Dalam penelitian ini, peneliti menggunakan beberapa jurnal sebagai tinjauan studi, yaitu sebagai berikut.
a. Thumbs Up? Sentiment Classification Using Machine Learning
Techniques (Pang et al, 2002)
Kajian ini menjelaskan klasifikasi sentimen terhadap review film dengan menggunakan berbagai teknik pembelajaran mesin. Teknik pembelajaran mesin yang digunakan yaitu Naïve Bayes, Maximum Entropy, dan Support Vector Machines (SVM). Pada penelitian tersebut juga digunakan beberapa pendekatan untuk melakukan ekstraksi fitur, yaitu unigram, unigram + bigram, unigram + Part of Speech (POS), adjective, dan unigram + posisi. Hasil dari eksperimen yang dilakukan di penelitian ini menemukan bahwa SVM menjadi metode terbaik ketika dikombinasikan dengan unigram dengan akurasi 82.9%.
b. Sentiment Analysis of User Generated Twitter Updates using Various
Classification (Parikh et al, 2009)
Makalah ini membahas analisis sentimen terhadap media jejaring sosial Twitter dengan menggunakan beberapa teknik klasifikasi. Metode yang digunakan adalah Unigram Naïve Bayes, Multinomial Naïve Bayes, dan Maximum Entropy Classification. Hasil yang diperoleh dari penelitian mereka dapat ditarik kesimpulan bahwa kedua Naïve Bayes memperlihatkan performa yang lebih baik dari Maximum Entropy.
(6)
20
c. Micro-blogging Sentiment Analysis Using Bayesian Classification
Methods (Prasad, 2010)
Pada makalah ini menyajikan penggunaan Naïve Bayes dengan berbagai macam pendekatan yakni, Bernoulli, Bernoulli Chi Square, Multinomial Unigram, Linear Bigram, Backoff Chi Square, Multinomial Unigram, Linear Bigram, Backoff Bigram, Empirical Bigram, dan Weighted-Normalized Complement Naïve Bayes (WCNB). Dari hasil uji coba diketahui bahwa Multinomial Unigram, Bernouli Chi Square, dan Linear Bigram menunjukkan hasil yang cenderung lebih baik dari pendekatan lainnya.
d. Comparison of SVM and Some Older Classification Algorithms in
Text Classification Tasks (Colas, F. & Brazdil, P., 2005)
Makalah ini membandingkan metode Naïve Bayes Classifier dengan k-Neirest Neighbor dan Support Vector Machine. Hasil penelitian mendapatkan bahwa metode Naïve Bayes Classifier memiliki performansi yang lebih baik dibandingkan k-Neirest Neighbor dan Support Vector Machine untuk menyelesaikan binary classification pada dokumen berbahasa Inggris. Hasil penelitian juga menyebutkan waktu komputasi yang jauh lebih pendek oleh metode Naïve Bayes Classifier dan k-Neirest Neighbor. Waktu komputasi Support Vector Machine berkembang secara kuadratik seiring dengan perkembangan jumlah data latih.
e. Sentiment Analysis in Multiple Language: Feature Selection for
Opinion Classification in Web Forums (Abbasi et al, TT)
Penelitian mengenai analisis sentimen ini menemukan bahwa metode hibridisasi algoritma genetika EWGA mendapatkan hasil yang lebih baik dibandingkan metode SVM weight untuk feature selection. Sedangkan untuk proses klasifikasi sendiri dilakukan dengan metode SVM. Metode EWGA merupakan gabungan antara metode heuristik Information Gain (IG) dengan metode random Algoritma Genetika.