Skripsi
Oleh
Mahdi Muhammad Rizki
11140910000100
2019 M / 1441 H
PERNYATAAN ORISINALITAS
i
LEMBAR PERSETUJUAN
ii
LEMBAR PENGESAHAN
iii
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI
iv
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT, karena atas nikmat dan
rahmat-Nya sehingga penulis dapat menyelesaikan skripsi ini. Penulisan skripsi ini
dilakukan dalam rangka memenuhi salah satu syarat untuk mencapai gelar Sarjana
Komputer Program Studi Teknik Informatika Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta. Proses penyelesaian skripsi
ini tidak lepas dari berbagai bantuan, dukungan, saran, dan kritik yang telah penulis
dapatkan, oleh karena itu dalam kesempatan ini penulis ingin mengucapkan terima
kasih kepada:
1. Kedua Orang tua dan keluarga penulis yang selalu mendo’akan, dan
mendukung penulis dalam mengerjakan skripsi.
2. Ibu Prof. Dr. Lily Surraya Eka Putri, M.Env.Stud., selaku Dekan Fakultas
Sains dan Teknologi.
3. Bapak Dr. Imam Marzuki Shofi, MT, selaku ketua Program Studi Teknik
Informatika, serta Bapak Andrew Fiade M.Kom., selaku sekretaris Program
Studi Teknik Informatika.
4. Ibu Fenty Eka Muzzayana A, M.Kom, selaku Dosen Pembimbing I dan Ibu
Nurul Faizah Rozy, MTI, selaku Dosen Pembimbing II yang telah
memberikan bimbingan, motivasi, dan arahan kepada penulis sehingga
skripsi ini bisa selesai dengan baik.
5. Seluruh Dosen, Staf Karyawan Fakultas Sains dan Teknologi, khususnya
Program Studi Teknik Informatika yang telah memberikan bantuan dan
kerjasama dari awal perkuliahan.
6. Kepada teman seperjuangan Teknik Informatika CCIT angkatan 2014 dan
khususnya teman - teman TI - A dan TI – B, yang sudah membantu penulis
dalam menyelesaikan skripsi ini, terima kasih atas dukungannya. Semoga
kita bisa lebih baik lagi dan sukses di masa yang akan datang.
7. Sahabat baik, teman berbagi cerita, suka duka, canda tawa bersama semasa
kuliah : Ilham Ramadhon, Khairatin, Ilham Aldair, Nur Adli, Novianto
v
Wisnu, Rahmat Sasongko, Raka Setiawan, Rifal Nofri, Romi Indira,
Taufikur Rahman, Umar Wira, Yazid Gostanov.
8. Seluruh pihak yang secara langsung maupun tidak langsung membantu
penulis dalam menyelesaikan skripsi ini.
vi
Nama : Mahdi Muhammad Rizki
Program Studi : Teknik Informatika
Judul : Analisis Sentimen Terhadap Produk Otomotif dari
Twitter Menggunakan Kombinasi Algoritma K-
Nearest Neighbor dan Pendekatan Lexicon
(Studi Kasus: Mobil Toyota)
ABSTRAK
vii
Nama : Mahdi Muhammad Rizki
Program Studi : Teknik Informatika
Judul : Analisis Sentimen Terhadap Produk Otomotif dari
Twitter Menggunakan Kombinasi Algoritma K-
Nearest Neighbor dan Pendekatan Lexicon
(Studi Kasus: Mobil Toyota)
ABSTRACT
viii
DAFTAR ISI
x
3.2.4 Modelling Phase (Tahap Pemodelan) ....................................................... 38
3.2.5 Simulation Phase (Tahap Simulasi) .......................................................... 39
3.2.6 Verification, Validation, and Experimentation ......................................... 39
3.2.7 Output Analysis Phase (Fase Hasil Analisa) ............................................. 39
3.3 Skenario Pengujian ........................................................................................... 39
3.4 Kerangka Berfikir Penelitian ............................................................................ 40
BAB IV IMPLEMENTASI ............................................................................................. 41
4.1. Problem Formulation........................................................................................ 41
4.2. Conceptual Model ............................................................................................. 42
4.2.1. Conceptual Model Text Mining................................................................. 42
4.2.2. Conceptual Model Klasifikasi Sentimen dengan pendekatan Lexicon ..... 47
4.2.3. Conceptual Model Klasifikasi Sentimen dengan Kombinasi Algoritma K-
Nearest Neighbor dan Pendekatan Lexicon............................................................... 49
4.3. Collection Input/Output Data ........................................................................... 54
4.4. Modelling Phase ............................................................................................... 59
4.4.1. Konstruksi Pendekatan Lexicon................................................................ 60
4.4.2. Konstruksi Kombinasi Algoritma k-Nearest Neighbor dan pendekatan
Lexicon 62
4.5. Simulation Phase .............................................................................................. 74
4.5.1. Tahap pengujian data uji ........................................................................... 75
4.6. Verification, Validation and Experimentation .................................................. 85
4.7. Output Analysis Phase ...................................................................................... 85
BAB V HASIL DAN PEMBAHASAN........................................................................... 86
5.1. Verification, Validation and Experimentation .................................................. 86
5.2. Output Analysis Phase ...................................................................................... 87
5.2.1. Hasil Klasifikasi Sentimen Kombinasi Algoritma K-Nearest Neighbor dan
Pendekatan Lexicon .................................................................................................. 87
5.2.2. Analisis Hasil Tingkat Akurasi Kombinasi Algoritma K-Nearest Neighbor
dan Pendekatan Lexicon ............................................................................................ 87
BAB VI KESIMPULAN DAN SARAN ......................................................................... 96
6.1. Kesimpulan ....................................................................................................... 96
6.2. Saran ................................................................................................................. 96
DAFTAR PUSTAKA ....................................................................................................... 97
LAMPIRAN.................................................................................................................... 102
xi
DAFTAR GAMBAR
xiii
DAFTAR TABEL
Tabel 1. 1 Penjualan mobil nasional 2018 dan 2019 (CNBC Indonesia) ................2
Tabel 2. 1 Tabel Klasifikasi (Sumber: Prasetyo, 2012) ........................................ 18
Tabel 2. 2 Confussion Matrix................................................................................ 24
Tabel 2. 3 Daftar Simbol Flowchart ...................................................................... 29
Tabel 2. 4 Studi Literatur Sejenis .......................................................................... 34
Tabel 4. 1 Tipe Data Input Kamus Lexicon Positif .............................................. 55
Tabel 4. 2 Tipe Data Input Kamus Lexicon Negatif ............................................. 55
Tabel 4. 3 Tipe Data Input Kamus Lexicon Negasi .............................................. 56
Tabel 4. 4 Tipe Data Input Kamus Emosi ............................................................. 56
Tabel 4. 5 Tipe Data Input Kamus KBBI ............................................................. 56
Tabel 4. 6 Tipe Data Input Kata Dasar ................................................................. 56
Tabel 4. 7 Tipe Data Input Kamus Stopwords ...................................................... 57
Tabel 4. 8 Tipe Data Input Data Latih .................................................................. 57
Tabel 4. 9 Tipe Data Input Data Uji ...................................................................... 57
Tabel 4. 10 Tipe Data Input Pelatihan .................................................................. 58
Tabel 4. 11 Tipe Data Pre Processing Query ........................................................ 58
Tabel 4. 12 Tipe Data Output Perhitungan Uji ..................................................... 58
Tabel 4. 13 Tipe Data Output Hasil Uji ................................................................ 59
Tabel 4. 14 Hasil identifikasi kata sentimen ......................................................... 62
Tabel 4. 15 Dokumen data latih ............................................................................ 63
Tabel 4. 16 Hasil casefolding pada data latih ....................................................... 64
Tabel 4. 17 Hasil filtering pada data latih ............................................................. 64
Tabel 4. 18 Hasil tokenizing pada data latih ......................................................... 65
Tabel 4. 19 Hasil normalisasi pada data latih ....................................................... 65
Tabel 4. 20 Hasil stopwords dan stemming pada data latih .................................. 66
Tabel 4. 21 Hasil pembobotan kata tf ................................................................... 67
Tabel 4. 22 Hasil pembobotan kata idf ................................................................. 68
Tabel 4. 23 Hasil Pembobotan Query Uji dengan data latih ................................. 70
xiii
Tabel 4. 24 Hasil perkalian skalar antara query dan data latih ............................. 71
Tabel 4. 25 Hasil panjang setiap dokumen ........................................................... 72
Tabel 4. 26 Simulasi Penelitian............................................................................. 74
xiv
BAB I
PENDAHULUAN
Pada Januari 2018 penjualan mobil secara tahunan atau YoY tercatat naik
11,2% dan pada Januari 2017 naik 1,5%. Pada Januari 2016 tercatat turun 9,8% dan
Januari 2015 turun 9,1% (cnbcindonesia.com, 2019).
Tabel 1. 1 Penjualan mobil nasional 2018 dan 2019 (Sumber: CNBC Indonesia, 2019)
Total Total Total LCGC Total LCGC
Domestik Domestik (unit) (unit)
Produk (unit) (unit)
Januari 2018 Januari 2019 Januari 2018 Januari 2019
Beberapa hal yang menjadi perhatian khusus oleh konsumen dalam citra
perusahaan adalah adanya persaingan harga, reputasi perusahaan di mata
konsumen, pelayanan jasa yang diberikan penyedia jasa, dan adanya komitmen
organisasi yang ada dalam perusahaan tersebut. Diantara beberapa hal tersebut,
yang dianggap paling penting adalah pelayanan jasa yang diberikan penyedia jasa
terhadap konsumen. Hal tersebut dianggap penting karena pada pelayanan akan
menimbulkan beberapa presepsi bahwa pelanggan merasa puas atau merasa kecewa
(Febryanto, 2017).
J.D power Asia Pasifik mengemukakan bahwa tingkat kepuasan pelanggan
terhadap pelayanan merek di Indonesia mengalami peningkatan. Sementara Toyota
mendapat peringkat tertinggi dalam kepuasan pelayanan secara keseluruhan di
antara merek lainnya. Setelah ditotal dari berbagai variabel, nilai merek penguasa
pasar di Indonesia itu mencapai 769. Disebutkan bahwa Toyota tampil sangat baik
dalam hal konsultan layanan, fasilitas servis, dan kualitas servis. Nissan berada di
peringkat kedua (767), diikuti oleh Mitsubishi (766) dan Daihatsu (765)
(kompas.com, 2016).
Dengan fenomena tersebut, para pengguna banyak memberikan macam
pendapat, baik itu pendapat bersifat pujian maupun keluhan yang dipublikasikan di
3
berbagai media sosial, salah satunya adalah Twitter. Sebagai jawaban, pengguna
Twitter di seluruh dunia mencapai 328 juta (2018). Indonesia merupakan salah satu
negara dengan jumlah pengguna Twitter terbesar di dunia. Dari data yang dirilis
Twitter Indonesia pada akhir 2016 lalu, disebutkan bahwa 77 persen pengguna
Twitter di Indonesia merupakan pengguna aktif dan dilihat dari jumlah tweet yang
dihasilkan sepanjang 2016 yang mencapai 4.1 miliar tweet (BeritaSatu.com, 2017).
Twitter seringkali digunakan untuk mengungkapkan emosi mengenai
sesuatu hal, baik memuji ataupun mencela. Emosi dapat dikelompokkan menjadi
emosi positif dan emosi negatif. Emosi manusia dapat dikategorikan menjadi lima
emosi dasar yaitu cinta, senang, sedih, marah dan takut. Emosi cinta dan senang
termasuk kedalam emosi positif. Emosi sedih, marah, dan takut merupakan emosi
negatif. Dalam menganalisis sentimen masyarakat diperlukanlah klasifikasi suatu
opini baik positif maupun negative pada Twitter. Namun jika mengklasifikasi
dengan cara manual akan membutuhkan waktu dan usaha yang banyak dalam
pelaksanaannya. Oleh karena itu, dibutuhkan sebuah cara dalam mengklasifikasi
suatu opini tersebut dengan lebih cepat dan akurat. Salah satunya penggunaan Text
Mining yang berfungsi untuk menganalisis atau mengelompokkan dokumen atau
teks dari sejumlah besar dokumen atau teks (Yunita, 2017)
Analisis sentimen atau opinion mining merupakan proses memahami,
mengekstrak dan mengolah data tekstual secara otomatis untuk mendapatkan
informasi sentimen yang terkandung dalam suatu kalimat. Minimumnya di dalam
analisis sentimen terdapat 2 kategori dalam menentukan sentimen yaitu kategori
sentimen positif dan negatif. Sentimen analisis sendiri merupakan salah satu model
klasifikasi data dengan pendekatan supervised learning di dalam machine learning.
Machine learning mempunyai 2 tipe teknik yaitu supervised learning dan
unsupervised learning (Brownlee, 2016).
Supervised learning adalah salah satu tipe algoritma machine learning yang
menggunakan data latih yang dikenal (training dataset) untuk membuat prediksi.
Sedangkan unsupervised learning adalah salah satu tipe algoritma machine
learning yang digunakan untuk menarik kesimpulan dari dataset yang terdiri dari
input data labeled response. Metode unsupervised learning yang paling umum
4
adalah analisa cluster, yang digunakan pada analisa data untuk mencari pola-pola
tersembunyi atau pengelompokan dalam data, sedangkan pada supervised learning
contoh yang paling umum adalah klasifikasi data. Mayoritas praktis dari machine
learning sendiri menggunakan supervised learning. Karena besarnya pengaruh dan
manfaat dari klasifikasi data menyebabkan penelitian dan aplikasi berbasis
klasifikasi data seperti text mining, analisis sentimen justru berkembang pesat
(Ghulam, 2016).
Berbagai metode telah dikembangkan dan diterapkan untuk klasifikasi teks.
Seperti K-Nearest Neighbor (K-NN), Naive Bayes Classifier (NBC), SVM, Deep
Learning. Kemudian beberapa klasifikasi yang bergantung dengan kamus atau
Knowledge Base Approach yakni Lexicon dan Point Mututal Information (Bo,
2014).
Alasan penulis menggunakan algoritma K-NN karena, menurut penelitian
(Kurniawan, 2017) KNN memiliki beberapa kelebihan yaitu bahwa dia tangguh
terhadap training data yang noisy dan efektif apabila data latih nya besar dan dapat
menghasilkan data yang lebih akurat. Menurut (Bo, 2014) Lexicon-Based
menggunakan dictionary atau kamus lexicon untuk melakukan penilaian terhadap
kata. Pada dictionary, kata-kata dipasangkan dengan nilai polaritasnya. Yang harus
dilakukan sebelum melakukan analisis menggunakan lexicon adalah menentukan
kata yang akan dianalis dari corpus. Dan metode Pointwise Mutual Inoformation
(PMI) memiliki kekurangan yaitu menghasilkan nilai semantic similarity yang
tinggi pada pasangan kata dengan probabilitas kemunculan rendah.
Pada penelitian ini akan dilakukan klasifikasi orientasi sentimen dalam 5
jenis yaitu gembira, marah, sedih, kecewa, dan takut menggunakan kombinasi
Algoritma K-Nearest Neighbor dan pendekatan Lexicon. Adapun topik dalam
penelitian ini adalah menentukan analisis sentimen terhadap produk otomotif dari
Toyota. Penulis menggunakan klasifikasi 5 emosi dikarenakan pada tahap akhir dari
penelitian akan dijelaskan tweet-tweet konsumen terhadap produk Toyota dari tiap-
tiap emosi.
5
1. Problem Formulation
2. Conceptual Model
3. Input Output Data
4. Modelling
5. Simulation
6. Verification, Validation, Experimentation and Output Analysis
BAB VI PENUTUP
Bab ini berisi mengenai beberapa kesimpulan dan saran berdasarkan
pembahasan pada bab-bab sebelumnya.
BAB II
TINJAUAN PUSTAKA
2.1 Analisis Sentimen
Analisis sentimen dikatakan sebagai opinion mining dapat digunakan dalam
berbagai kemungkinan domain/entitas dari produk dan jasa, peristiwa sosial dan
politik serta kegiatan tertentu lainnya. Opinion atau pendapat adalah pusat dari
semua aktifitas manusia karena merupakan pemberi pengaruh utama perilaku kita.
Opinion dan konsep sejenisnya seperti sentimen, evaluasi, sikap, dan emosi adalah
subjek studi tentang analisis sentiment (Liu, 2016).
Analisis sentimen merupakan topik penelitian yang aktif dibawah Natural
Language Proccessing yang bertujuam untuk membangun sebuah metode yang
dapat diimplementasikan menjadi sebuah tools yang dapat digunakan untuk
mengekstraksi informasi subjektif berupa sentiment atau opini dalam sebuah data
text. Kecenderungan penelitian tentang analisis sentimen berfokus pada pendapat
yang menyatakan suatu sentimen memiliki nilai positif atau negative (Liu, 2016).
Liu mencontohkan permasalahan kalimat sentimen pada kasus pemilihan
berikut: “(1) Saya membeli IPhone 7 enam bulan yang lalu. (2) Saya menyukai
kameranya yang memiliki kualitas gambar menakjubkan. (3) Ketahanan pemakaian
baterai juga sangat bagus. (4) Namun kurang baik karena tidak memiliki fitur fast
charging“.
Dari tulisan tersebut dapat dijelaskan sebagai berikut: tulisan ini memiliki
pendapat tentang suatu entitas/domain yaitu IPhone 7. Pada kalimat (2) dan kalimat
(3) kecenderungan pendapat positif terhadap IPhone 7 tentang kamera yang
menghasilkan kualitas gambar yang bagus dan ketahanan daya baterai yang bagus.
Sedangkan pada kalimat (4) mengekspresikan pendapat negatif tentang fitur
charging yang tidak ada.
9
10
2. Tahap Filtering
Tahap filtering adalah tahap mengambil kata-kata penting dari hasil tokenizing.
Bisa menggunakan stoplist (membuang kata yang kurang penting) dan wordlist
(menyimpan kata yang penting. Contoh dari tahap ini adalah sebagai berikut:
a. manajemen pengetahuan adalah sebuah konsep baru (hasil token).
b. manajemen pengetahuan konsep baru (hasil filtering)
3. Tahap Stemming
Tahap stemming adalah adalah tahap mencari root kata dari teks yang dimasukan.
Contoh dari tahap ini adalah sebagai berikut:
a. Memasukan (teks input)
b. Masuk (hasil stemming)
4. Tahap Analisis
Tahap analisis adalah tahap penentuan seberapa jauh keterhubungan antara kata-
kata dengan dokumen yang ada.
Berikut gambaran sistem arsitektur text mining yang dicantumkan pada buku
(Feldman, R., & Sanger, 2007)
2.6 Pre-proccessing
Pre-processing dalam proses klasifikasi dokumen digunakan untuk
membangun sebuah index dari koleksi dokumen. Index adalah himpunan term yang
menunjukkan isi atau topik yang dikandung oleh dokumen (Indriani, 2014).
Pembuatan inverted index harus melibatkan konsep linguistic processing
yang bertujuan meng-ekstra term-term penting dari dokumen yang dipresentasikan
sebagai bag-of-words. Ekstraksi term biasanya melibatkan tiga operasi utama,
antara lain:
a. Pemisahan rangkaian term (tokenization). Tokenization adalah tugas
memisahkan deretan kata di dalam kalimat, paragraph atau halaman menjadi
token atau potongan kata tunggal atau termedword. Tahapan ini juga
menghilangkan karakter-karakter tertentu seperti tanda baca dan mengubah
semua token ke bentuk huruf kecil (lower case).
b. Penghapusan stop-words. Stop word didefinisikan sebagai term yang tidak
berhubungan (irrelevant) dengan subyek utama dari database meskipun kata
17
tersebut sering kali hadir di dalam dokumen. Contoh stop words adalah
ada,adalah, adanya, adapun, agak, dll.
c. Stemming. Kata-kata yang muncul di dalam dokumen sering mempunyai
banyak varian morfologik. Karena itu, setiap kata yang bukan stop-words
direduksi ke stemmed word (term) yang cocok yaitu kata tersebut distem untuk
mendapatkan bentuk akarnya dengan menghilangkan awalan atau akhiran.
Dengan cara ini, diperoleh kelompok kata yang cocok berupa kata-kata di
dalam kelompok tersebut merupakan varian sintaktis dari satu sama lain dan
dapat menghimpun hanya satu kata per kelompok. Sebagai contoh,kata
terdaftar, pendaftaran berbagi-pakai term stem umum daftar, dan dapat
diperlakukan sebagai bentuk lain dari kata ini (Indriani, 2014)
2.7 Klasifikasi
Klasifikasi merupakan suatu metode untuk mengelompokkan sebuah objek
ke dalam kelompok atau kelas tertentu (Syafitri, 2010). Algoritma klasifikasi yang
banyak digunakan secara luas, yaitu Decision atau Classification Trees, Bayesian
Classifiers atau Naïve Bayes classifiers, Neural Networks, Analisa Statistik,
Algoritma Genetika, Rough Sets, K-Nearest Neighbor, Metode Rule Based,
Memory Based Reasoning, dan Support Vector Machines (SVM) (Leidiyana, 2013).
Proses ini dilakukan agar data atau citra dapat dikategorikan dalam suatu kelas
tertentu yang telah ditentukan.
Sebuah sistem klasifikasi juga harus diukur kinerjanya guna melihat tingkat
akurasi dan kesalahan dari sistem tersebut. Umumnya, pengukuran kinerja
klasifikasi dilakukan dengan matriks konfusi (confusion matrikx). Matriks konfusi
merupakan tabel pencatat hasil kerja klasifikasi. Tabel 2.2 merupakan contoh
matriks konfusi yang melakukan klasifikasi masalah biner pada dua kelas yaitu
kelas 0 dan 1. Setiap set 𝑓𝑖𝑗 dalam matriks menyatakan jumlah record/data dari kelas
i yang hasil prediksinya masuk ke kelas j. Misalnya, set 𝑓11 adalah jumlah data
dalam kelas 1 yang secara benar dipetakan ke kelas 1, dan 𝑓10 adalah data dalam
kelas 1 yang dipetakan secara salah kelas 0 (Prasetyo, 2012)
18
Berdasarkan isi matriks konfusi, dapat diketahui jumlah data dari masing-
masing kelas yang diklasifikasikan secara benar, yaitu (𝑓10+ 𝑓01) kuantitas matriks
konfusi dapat diringkas menjadi dua nilai, yaitu akurasi dan laju error.
Beradasarkan jumlah data yang diklasifikasi secara benar, maka dapat diketahui
akurasi hasil prediksi, dan dengan mengetahui jumlah data yang diklasifikasikan
secara salah, dapat diketahui laju error dari prediksi yang dilakukan. Dua kuantitas
ini digunakan sebagai matrik kinerja klasifikasi (Prasetyo, 2012).
Untuk menghitung akurasi digunakan formula sebagai berikut:
……………(2.1)
……………(2.2)
2.9 Algoritma
Menurut (Munir, 2011) algoritma merupakan prosedur komputasi yang
terdefinisi dengan baik, yang menggunakan beberapa nilai sebagai masukan dan
menghasilkan beberapa nilai yang disebut keluaran. Algoritma merupakan prosedur
yang berisi langkah-langkah penyelesaian suatu masalah. Algoritma merupaka
suatu alur pikiran dalam menyelesaikan pekerjaan, yang dituangkan dalam bentuk
tertulis yang dapat dimengerti oleh orang lain. Suatu pekerjaan dapat diselesaikan
dengan berbagai macam cara, akan tetepi harus tersususn secara logis agar
pekerjaan dapat diselesaikan dengan benar (Sjukani, 2013).
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang
dari ilmu komputer yang diacu dalam terminologi algoritma, misalnya algoritma
perutean (routing) pesan di dalam jaringan komputer, algoritma brensenham untuk
menggambar garis lurus, algoritma KMP untuk mencari suatu pola di dalam teks,
dan sebagainya (Munir, 2011).
Keterangan :
∑ 𝑘 (𝑑1 𝑑𝑘) = vektor dot produk dari i dan k
2
√∑ 𝑘 𝑑𝑖𝑘 = panjang vektor i
2
√∑ 𝑘 𝑑𝑗𝑘 = panjang vektor k
Positif = 1 TP FN
Negatif = 0 FP TN
𝑇𝑃 + 𝑇𝑁
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 =
𝑇𝑃 + 𝐹𝑁 + 𝐹𝑃 + 𝑇𝑁
2.13 PHP
PHP adalah salah satu Bahasa pemograman skrip yang dirancang untuk
membangun aplikasi web. Ketika dipanggil dari web browser, program yang ditulis
dengan PHP akan di-parsing di dalam web server oleh interpreter PHP dan
diterjemahkan ke dalam dokumen HTML, yang selanjutnya akan ditampilkan
kembali ke web browser. Karena pemprosesan program PHP dilakukan di
lingkungan web server, PHP dikatakan sebagai Bahasa sisi server (server-side).
Oleh sebab itu, seperti yang telah dikemukakan sebelumnya, kode PHP tidak akan
terlihat pada saat user memilih perintah “view source” pada web browser yang yang
mereka gunakan. Meskipun PHP 5 dapat digunakan untuk membuat aplikasi CLI
(command Line Interface) dan juga aplikasi desktop (seperti Perl, Phyton dan
Ruby), namun pada umumnya orang menggunakan PHP untuk tujuan pembuatan
aplikasi web (Raharjo, Heryanto, & Rk, 2012).
2.14 Flowchart
Menurut Al-Bahra (2010), dalam buku yang berjudul Analisis dan Desain
Sistem Informasi, menyebutkan bahwa: ”flowchart adalah bagan-bagan yang
mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu
masalah.
Sedangkan menurut Jogiyanto (2008) dalam bukunya yang berjudul
Analisis dan Desain Sistem Informasi: Pendekatan Terstruktur Teori dan Praktek
Aplikasi Bisnis, Flowchart merupakan bagan (chart) yang menunjukkan alir (flow)
didalam program atau prosedur sistem secara logika.
29
Secara garis besar berdasarkan dua pengertian diatas flowchart adalah cara
penulisan algoritma dengan menggunakan notasi grafis yang memperlihatkan
urutan atau langkah dari suatu program dan hubungan antar proses beserta
pernyataannya.
Pada dasarnya terdapat berbagai macam flowchart, diantaranya yaitu
Flowchart Sistem (System Flowchart), Flowchart Paperwork / Flowchart
Dokumen (Document Flowchart), Flowchart Skematik (Schematic Flowchart),
Flowchart Program (Program Flowchart), Flowchart Proses (Process Flowchart).
Untuk keperluan pembuatan program maka digunakan Flowchart Program. Berikut
adalah daftar simbol-simbol yang digunakan dalam flowchart.
Off page
connector Penghubung Flow chart pada halaman
berbeda
kumpulan data yang saling berhubungan secara logis dan didesain untuk
mendapatkan data yang dibutuhkan oleh suatu organisasi.
2.16 MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL
(bahasa inggris: databae management system) atau DBMS yang multithread, multi-
user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL
tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public
License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-
kasus dimana penggunaannya tidak cocok dengan penggunaan GPL (Solichin,
2010).
Tidak seperti PHP atau Apache yang merupakan software yang
dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki
oleh penulisnya masing-masing. MySQL dimiliki dan disponsori oleh sebuah
perusahaan komersial Swedia yaitu MySQL AB. MySQL AB memegang penuh
hak cipta hamper atas semua kode sumbernya. Kedua orang Swedia dan satu orang
Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan
Michael “Monty” Widenius (Solichin, 2010). Fitur-fitur MySQL antara lain:
a. Relational Database System. Seperti halnya software database lain yang ada di
pasaran, MySQL termasuk RDBMS.
b. Arsitektur Client-Server. MySQL memiliki arsitektur client-server dimana
server database MySQL terinstal di server. Client MySQL dapat berada di
komputer yang sama dengan server, dan dapat juga di komputer lain yang
berkomunikasi dengan server melalui jaringan bahkan internet.
c. Mengenal perintah SQL standar. SQL (Structured Query Language) merupakan
suatu bahasa standar yang berlaku di hamper semua software database. MySQL
mendukung SQL versi SQL: 2003.
d. Mendukung Sub Select. Mulai versi 4.1 MySQL telah mendukung select dalam
select (sub select).
e. Mendukung Views. MySQL mendukung views sejak versi 5.0
f. Mendukung Stored Procedured (SP). MySQL mendukung SP sejak versi 5.0
g. Mendukung Triggers. MySQL mendukung trigger pada versi 5.0 namun masih
terbatas. Pengembang MySQL berjanji akan meningkatkan kemampuan trigger
pada versi 5.1
33
h. Mendukung replication
i. Mendukung transaksi.
j. Mendukung foreign key.
k. Tersedia fungsi GIS.
l. Free (bebas didownload).
m. Stabil dan tangguh.
n. Fleksibel dengan berbagai pemrograman.
o. Security yang baik.
p. Dukungan dari banyak komunitas.
Lisensi MySQL terbagi menjadi dua, yaitu dapat menggunakan MySQL
sebagai produk opensource di bawah General Public License (GNU) secara gratis
atau dapat membeli lisensi dari versi komersialnya. MySQL komersial tentu
memiliki nilai lebih atau kemampuan yang tidak disertakan pada versi gratis. Pada
kenyataannya, untuk keperluan industri menengah ke bawah, versi gratis dapat
digunakan dengan baik (Raharjo et al., 2012)
Penulis (Nurjanah, Perdana, (Dey & Sanjay, 2016) (Ali, Rezwanul Huq, & (Purba, Hidayati, & Penelitian penulis yang
& Fauzi, 2017) Rahman, 2017) Gozali, 2016) sekarang
Judul Penelitian Analisis Sentimen Sentiment Analysis of Sentiment Analysis on Metode Holistic Analisis Sentimen
Terhadap Tayangan Review Datasets using Twitter Data using Lexicon Based untuk Terhadap Kepuasan
Televisi Berdasarkan Naïve Bayes and k-NN KNN and SVM analisis sentiment pada Produk Otomotif dari
Opini Masyarakat Classifier dokumen Bahasa Twitter Menggunakan
pada Media Sosial Indonesia Algoritma k-NN dan
Twitter menggunakan Pendekatan Lexicon
Metode k-NN
Algoritma yang k-Nearest Neighbor k-Nearest Neighbor dan k-Nearest Neighbor Holistic Lexicon Based Kombinasi k-Nearest
digunakan Naïve Bayes Classifier dan Support Vector Neighbor dan Lexicon
Machine
Metode NLP Tokenizing , Case Tidak dijelaskan Tokenizing, Tidak dijelaskan Casefolding, Filtering,
yang digunakan folding, Cleansing, Normalization, dan Tokenizing,
35
3.1.2 Observasi
Peneliti melakukan observasi dengan mengamati dan mengambil
data dari Twitter API tentang komentar pengguna produk otomotif Toyota.
Peneliti mengambil data mulai dari bulan Februari hingga bulan Maret
2019. Proses pengambilan data twitter dilakukan secara manual dengan
memanfaatkan fitur dari Twitter yang diperuntukkan untuk developer yang
ada pada website https://developer.twitter.com/ menggunakan bahasa
pemrograman PHP dan data kemudian dimasukkan ke dalam database
MySql. Pengambilan data dilakukan sebanyak 1000 tweets dengan 900
tweets dijadikan data latih dan 100 tweets dijadikan data uji.
36
37
Mulai 1 2
API Key
Tweets
Api Secret
Koneksi API Access Token
Access Token Secret
Otentikasi
Mengambil Data
Registrasi Selesai
Tweet
1 2
Mulai
Pengumpulan Data
Metode Simulasi
Collection of Verification,
Problem Conceptual Modelling Simulation Output
Input/Output Validation, and
Formulation Model Phase Phase Analysis
Data Experiment
Kesimpulan
dan Saran
Selesai
41
42
Mulai 1
Ditemukan di
Ya Kata baku
kata kamus?
Tidak
Hapus huruf
Cek kamus berlebih
1 Ditemukan di
Tidak Kata awal
kamus?
Selesai
c. Jika kata yang dibandingkan sama, maka kata tersebut akan dihapus.
Namun jika tidak sama maka kata tersebut tidak dihapus.
Mulai
kata
bandingkan kata
dengan database
stopwords
Kata = kata
Ya hapus kata
stopwords
Tidak
Kata awal
Selesai
Mulai 1 3
1 3 4
2 4 ADA ? Ya 2
Tidak
Hilangkan derivation
Kata baku semua prefiks(-di, ke-,
se-, te-, be-, me-, atau
pe-) Kata awal
Selesai
Cek kamus
2
Dalam penelitian ini dibangun kamus positif dan negatif secara sistem.
Kamus sentimen positif dalam penelitian ini berjumlah 1182 kata dan
kamus negatif berjumlah 2399 kata (sumber github).
b. Membangun kamus emosi yang terbagi menjadi sentimen marah,
kecewa, gembira, sedih, dan takut.
Dalam penelitian ini dibangun kamus emosi secara sistem. Kamus
sentimen emosi dalam penelitian ini berjumlah 5224 kata (sumber
EmoSenticNet).
c. Membangun kamus negasi
Kamus negasi yang digunakan dalam penelitian ini sebanyak 9 kata
(sumber github).
d. Pre-proccessing query yang terdiri dari 4 proses yaitu casefolding,
filtering, tokenizing dan normalisasi.
e. Identifikasi setiap kata sentimen pada query.
f. Identifikasi kata negasi pada query yang ditemukan sentimennya
g. Menentukan orientasi sentimen pada query, dengan cara melakukan
hitung score.
𝑤𝑖𝑆𝑂
𝑠𝑐𝑜𝑟𝑒(𝑓) = ∑ 𝑑𝑖𝑠(𝑤𝑖,𝑓) .............................................................................(4.1)
Keterangan :
w i SO = Jumlah (score) fitur ke i setiap sentimen
dis (wi,f) = Jumlah fitur yang berhasil ditemukan
Mulai 1
Pre-proccessing
Kamus kbbi
query
Hitung score
Kamus sentimen
Identifikasi kata
positif dan
sentimen
negatif
Hasil
orientasi
sentimen
Identifikasi
Kamus emosi
sentimen emosi
Selesai
Identifikasi kalimat
Kamus negasi
negasi
Mulai 1
Kamus kbbi,
Pre-proccessing
sentimen positif
query
dan negatif Identifikasi kamus Kamus sentimen
negasi negasi
Identifikasi emosi
Kamus emosi
Hitung score
Indexing data
Proses k-NN
latih
Hasil
orientasi
Hasil orientasi
sentimen
sentimen
sementara
1 Selesai
Dokumen
Case Folding Filtering Tokenizing
Case folding
Filtering
Tokenizing
52
Normalisasi
Pembobotan Kata
53
..............................................................................(4.2)
Keterangan :
∑ 𝑘 (𝑑1 𝑑𝑘) = vektor dot produk dari i dan k
2
√∑ 𝑘 𝑑𝑖𝑘 = panjang vektor i
2
√∑ 𝑘 𝑑𝑗𝑘 = panjang vektor k
Data-data yang telah diperoleh dan dikumpukan akan dijadikan input dan
output data. Berikut dibawah ini adalah tipe data dari masing-masing input dan
output.
kata_positif Varchar(100) - No
Tabel kamus lexicon positif ini berisi kata-kata positif seperti bagus,
bahagia, dan baik.
kata_negatif Varchar(100) - No
56
Tabel kamus lexicon negatif ini berisi kata-kata negatif seperti acuh, agresif,
alergi, dan anarkis.
kata_negasi Varchar(100) - No
Tabel kamus lexicon negasi ini berisi kata-kata negasi seperti tidak bisa,
tidak ada, dan tidak pernah.
kata_emosi Varchar(100) - No
emosi Varchar(100) - No
Tabel kamus emosi ini berisi kata-kata emosi dan klasifikasi emosinya,
seperti kata cemas memiliki emosi takut.
kata_kamus_kbbi Varchar(100) - No
Tabel kamus KBBI ini berisi kata-kata yang terdapat di dalam kamus KBBI.
kata_katadasar Varchar(100) - No
kata_stopwords Varchar(100) - No
Tabel kamus stopword ini berisi kata-kata umum (common words) yang
biasanya muncul dalam jumlah besar dan dianggap tidak memiliki makna.
id Bigint(20) Yes No
id_tweet_latih Varchar(100) - No
tweet_by Varchar(100) - No
isi_tweet Text - No
sentimen_tweet Varchar(100) - No
Tabel data latih ini berisi tweet yang telah di crawling dan telah
diklasifikasikan sentimennya dengan pendekatan Lexicon.
id int(11) Yes No
id_tweet_uji Varchar(100) - No
tweet_by Varchar(100) - No
isi_tweet Text - No
review_sentimen Varchar(100) - No
Tabel data uji ini berisi tweet yang telah di crawling dan telah
diklasifikasikan sentimennya dengan pendekatan Lexicon.
58
term Varchar(100) - No
asal_dokumen Varchar(100) - No
frekuensi_kemunculan Varchar(100) - No
inverse_dokumen_frekuensi Float - No
bobot Float - No
panjang_vektor Float - No
Tabel Pelatihan ini berisi potongan kata yang diproses pada tahap
perhitungan tf-idf yang akan menghasilkan bobot dan panjang vektor.
id_tweet Varchar(100) - No
term_casefolding Text - No
term_filtering Text - No
term_tokenizing Text - No
term_normalisasi Text - No
term_stopwords Text - No
term_stemming Text - No
Tabel Pre Processing Query ini berisi kumpulan tweet yang telah diproses
melalui tahap Pre Processing.
id_tweet_uji Varchar(100) - No
query Varchar(100) - No
frekuensi_kemunculan Bigint(100) - No
bobot_query Float - No
Panjang_vektor_query Float - No
Id_tweet_latih Varchar(100) - No
Perkalian_skalar Float - No
Consine_similarity Float - No
Tabel perhitungan uji ini berisi kata-kata yang telah diproses menggunakan
algoritma k-Nearest Neighbor.
id_tweet_uji Varchar(100) - No
hasil_analisis_sentimen Varchar(100) - No
Tabel ini berisi hasil analisis sentiment dari perhitungan algoritma k-Nearest
Neighbor dan pendekatan Lexicon.
Dalam penelitian ini dibangun kamus positif dan negatif secara sistem.
Kamus sentimen positif dalam penelitian ini berjumlah 1182 kata dan
kamus negatif berjumlah 2399 kata.
b. Membangun kamus emosi yang terbagi menjadi sentimen marah,
kecewa, gembira, sedih, dan takut.
Dalam penelitian ini dibangun kamus emosi secara sistem. Kamus
sentimen emosi dalam penelitian ini berjumlah 5224 kata (sumber
EmoSenticNet).
c. Membangun kamus negasi
Kamus negasi yang digunakan dalam penelitian ini sebanyak 9 kata.
d. Pelatihan data latih (inverted index dan pembobotan kata)
Untuk lebih jelas nya, berikut adalah contoh pembuatan inverted index
dan pembobotan kata pada data latih secara keseluruhan.
1. Mengumpulkan dokumen yang didapat dari kumpulan tweet berisi
sentimen sebagai data latih. Sebagai contoh digunakan 4 dokumen
sebagai data latih.
2. Case folding
3. Filtering
4. Tokenizing
65
5. Normalisasi
terus toyota
merosot hardtop
setiap soalnya
bulannya disangka
kenapa kendaraan
ya culik
4
𝐼𝐷𝐹(𝑐𝑎𝑚𝑟𝑦) = 𝑙𝑜𝑔 = 0.6020
1
Keterangan:
N = Jumlah seluruh dokumen
Nt = jumlah dokumen yang mengandung kata t (term) atau DF
4. Menghitung TF-IDF atau bobot menggunakan rumus:
𝑊(𝑡, 𝑑) = 𝑡𝑓 𝑥 𝐼𝐷𝐹
𝑊(camry, Dok(3)) = 1 𝑥 0.6020 = 0.6020
TF
Term
Dok(1) Dok(2) Dok(3) Dok(4)
arab 1 0 0 0
brv 0 1 0 0
camry 0 0 1 0
culik 0 0 0 2
daftar 0 0 1 0
data 0 1 0 0
emirat 1 0 0 0
hardtop 0 0 0 1
indonesia 1 0 0 0
innova 1 0 0 0
jual 0 2 0 0
kendaraan 0 0 0 1
kijang 1 0 0 0
king 0 0 0 1
liat 0 0 0 1
merosot 0 2 0 0
mobil 1 0 1 0
motor 0 0 1 0
nasib 0 1 0 0
nopolnya 0 0 1 0
pas 0 1 0 0
populer 1 0 0 0
produksi 1 0 0 0
rx 0 0 0 1
sangka 0 0 0 1
sedih 0 1 0 0
sepeda 0 0 1 0
sienta 0 2 0 0
tabrak 0 0 1 0
68
takut 0 0 0 1
toyota 1 1 1 1
uni 1 0 0 0
W = TF IDF
Term DF IDF
Dok(1) Dok(2) Dok(3) Dok(4)
arab 1 0.6020 0.6020 0 0 0
brv 1 0.6020 0 0.6020 0 0
camry 1 0.6020 0 0 0.6020 0
culik 1 0.6020 0 0 0 1.2040
daftar 1 0.6020 0.6020 0 0 0
data 1 0.6020 0 0 0 0.6020
emirat 1 0.6020 0.6020 0 0 0
hardtop 1 0.6020 0.6020 0 0 0
indonesia 1 0.6020 0 0.6020 0 0
innova 1 0.6020 0.6020 0 0 0
jual 1 0.6020 0 1.2040 0 0
kendaraan 1 0.6020 0 0.6020 0 0
kijang 1 0.6020 0.6020 0 0 0
king 1 0.6020 0 0 0.6020 0
liat 1 0.6020 0 0.6020 0 0
merosot 1 0.3010 0 0 0.6020 0
mobil 2 0.3010 0.3010 0 0.3010 0
motor 1 0.6020 0.6020 0 0 0
nasib 1 0.6020 0.6020 0 0 0
nopolnya 1 0.6020 0 0 0 0.6020
pas 1 0.6020 0 0.6020 0 0
populer 1 0.6020 0 0 0.6020 0
produksi 1 0.6020 0 0.6020 0 0
rx 1 0.6020 0 0 0.6020 0
sangka 1 0.6020 0 0 0 0.6020
sedih 1 0.6020 0 0.6020 0 0
sepeda 1 0.6020 0 0 0.6020 0
sienta 1 0.6020 1.2040 0 0 0
tabrak 1 0.6020 0 0.6020 0 0
takut 1 0.6020 0 0.6020 0 0
toyota 3 0.1249 0 0.1249 0.1249 0.1249
uni 1 0.6020 0.6020 0 0 0
c. Filtering
toyota perkirakan mobil c-hr hybrid akan lebih laris
d. Tokenizing
-toyota -perkirakan -mobil -c-hr
-hybrid -akan -lebih -laris
e. Normalisasi
-toyota -perkirakan - mobil -c-hr
-hybrid -akan -lebih -laris
f. Seleksi kalimat netral dengan pendekatan lexicon
-toyota -perkirakan - mobil -c-hr
-hybrid -akan -lebih
g. Stopwords dan Stemming
-toyota -mobil
h. Pembobotan kata
-tf toyota = 1 -tf mobil = 1
2. Menghitung kedekatan kemiripan query uji dengan data latih
menggunakan rumus consine similarity.
W = TF IDF
Term DF IDF
Query Dok(1) Dok(2) Dok(3) Dok(4)
arab 1 0.6020 0 0.6020 0 0 0
Brv 1 0.6020 0 0 0.6020 0 0
camry 1 0.6020 0 0 0 0.6020 0
culik 1 0.6020 0 0 0 0 1.2040
daftar 1 0.6020 0 0.6020 0 0 0
data 1 0.6020 0 0 0 0 0.6020
emirat 1 0.6020 0 0.6020 0 0 0
hardtop 1 0.6020 0 0.6020 0 0 0
indonesia 1 0.6020 0 0 0.6020 0 0
innova 1 0.6020 0 0.6020 0 0 0
jual 1 0.6020 0 0 1.2040 0 0
kendaraan 1 0.6020 0 0 0.6020 0 0
kijang 1 0.6020 0 0.6020 0 0 0
king 1 0.6020 0 0 0 0.6020 0
Liat 1 0.6020 0 0 0.6020 0 0
merosot 1 0.3010 0 0 0 0.6020 0
mobil 2 0.3010 0.3010 0.3010 0 0.3010 0
motor 1 0.6020 0 0.6020 0 0 0
nasib 1 0.6020 0 0.6020 0 0 0
nopolnya 1 0.6020 0 0 0 0 0.6020
pas 1 0.6020 0 0 0.6020 0 0
populer 1 0.6020 0 0 0 0.6020 0
produksi 1 0.6020 0 0 0.6020 0 0
rx 1 0.6020 0 0 0 0.6020 0
sangka 1 0.6020 0 0 0 0 0.6020
sedih 1 0.6020 0 0 0.6020 0 0
sepeda 1 0.6020 0 0 0 0.6020 0
sienta 1 0.6020 0 1.2040 0 0 0
tabrak 1 0.6020 0 0 0.6020 0 0
takut 1 0.6020 0 0 0.6020 0 0
toyota 3 0.1249 0.1249 0 0.1249 0.1249 0.1249
71
Asal_dokumen_perkalian_skalar (WQuery*WDoki)
W(D1) W(D2) W(D3) W(D4)
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0.09060 0 0.09060 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0.01560 0.01560 0.01560
0.09060 0.01560 0.10620 0.01560
72
D1 D2 D3 D4
0.6043088210772052 0.2652681198670746 0.4083793468707038 0.2094021933828712
86
87
berjumlah 900 dokumen. Dan 100 dokumen data uji baru. Nilai kombinasi
antara kedua algoritma dengan akurasi tertinggi akan digunakan pada sistem
analisis orientasi sentimen ini.
a. Hasil Tingkat Akurasi Kombinasi Algoritma k-NN dan Lexicon dengan
nilai k pada algoritma k-NN sama dengan 1.
Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai akurasi
sebagai berikut:
𝑎+ 𝑔+ 𝑚+ 𝑠+ 𝑦
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 X 100
(𝑡𝑜𝑡𝑎𝑙 𝑠𝑒𝑚𝑢𝑎 𝑑𝑎𝑡𝑎)
26 + 26 + 6 + 13 + 10
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = X 100
26 + 10 + 2 + 26 + 3 + 1 + 6 + 2 + 13 + 1 + 10 + 0
81
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = X 100 = 81%
100
89
Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai akurasi
sebagai berikut:
𝑎+ 𝑔+ 𝑚+ 𝑠+ 𝑦
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 X 100
(𝑡𝑜𝑡𝑎𝑙 𝑠𝑒𝑚𝑢𝑎 𝑑𝑎𝑡𝑎)
83
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = X 100 = 83%
100
c. Hasil Tingkat Akurasi Kombinasi Algoritma k-NN dan Lexicon dengan
nilai k pada algoritma k-NN sama dengan 5.
Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai akurasi
sebagai berikut:
𝑎+ 𝑔+ 𝑚+ 𝑠+ 𝑦
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 X 100
(𝑡𝑜𝑡𝑎𝑙 𝑠𝑒𝑚𝑢𝑎 𝑑𝑎𝑡𝑎)
82
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = X 100 = 82%
100
d. Hasil Tingkat Akurasi Kombinasi Algoritma k-NN dan Lexicon dengan
nilai k pada algoritma k-NN sama dengan 9.
Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai akurasi
sebagai berikut:
𝑎+ 𝑔+ 𝑚+ 𝑠+ 𝑦
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 X 100
(𝑡𝑜𝑡𝑎𝑙 𝑠𝑒𝑚𝑢𝑎 𝑑𝑎𝑡𝑎)
79
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = X 100 = 79%
100
91
Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai akurasi
sebagai berikut:
𝑎+ 𝑔+ 𝑚+ 𝑠+ 𝑦
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 X 100
(𝑡𝑜𝑡𝑎𝑙 𝑠𝑒𝑚𝑢𝑎 𝑑𝑎𝑡𝑎)
75
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = X 100 = 75%
100
Keterangan:
a = jumlah data gembira yang diklasifikasikan sebagai gembira
b = jumlah data gembira yang diklasifikasikan sebagai marah
c = jumlah data gembira yang diklasifikasikan sebagai sedih
d = jumlah data gembira yang diklasifikasikan sebagai kecewa
e = jumlah data gembira yang diklasifikasikan sebagai takut
f = jumlah data marah yang diklasifikasikan sebagai gembira
g = jumlah data marah yang diklasifikasikan sebagai marah
h = jumlah data marah yang diklasifikasikan sebagai sedih
92
80
60
40
20
0
k=1 k=3 k=5 k=9 k=10
F-Measure
0.835
0.83
0.825
0.82
0.815
0.81
0.805
0.8
0.795
0.79
0.785
k=1 k=2 k=3 k=9 k = 10
F-Measure 0.8 0.83 0.8296 0.83 0.8295
Berdasarkan grafik pada gambar 5.1, dan 5.2, maka didapatkan hasil analisis
sebagai berikut:
Aulianita, 2016) menguji nilai k hanya sampai dengan k=10, hal ini
dikarenakan pengambilan nilai k yang tertinggi. Setelah nilai k pada
algoritma k-NN adalah 3 tingkat hasil akurasi menjadi turun. Pada
penelitian yang dilakukan oleh penulis saat ini juga mengalami hal
demikian.
10. Berdasarkan gambar tweet yang ada pada lampiran 2, sebanyak 26%
gembira karena produk-produk baru dari Toyota, sebanyak 27% marah
karena beberapa perilaku pengendara Toyota menyebabkan kecelakaan,
sebanyak 6% sedih karena beberapa merek mobil Toyota akan berakhir
dan tidak diproduksi kembali, sebanyak 13% kecewa karena pelayanan
servis dan tidak adanya perubahan/upgrade sparepart di beberapa
merek, dan sebanyak 11% takut karena beberapa mobil merek Toyota
melakukan kejahatan.
BAB VI
KESIMPULAN DAN SARAN
6.1. Kesimpulan
Berdasarkan rumusan masalah dan penejelasan yang telah peneliti
deskripsikan pada bab sebelumnya, maka peneliti dapat menarik kesimpulan
sebagai berikut:
1. Kombinasi algoritma k-NN dan pendekatan Lexicon dapat diterapkan
pada analisis sentimen kata.
2. Nilai k optimal dalam melakukan proses klasifikasi menggunakan
kombinasi algoritma k-NN dan pendekatan Lexicon adalah k=3 dengan
tingkat akurasi mencapai 84%, error rate sebesar 19%, f-measure
sebesar 0.8, presisi sebesar 0.8965 dan recall sebesar 72%.
3. Akurasi pada nilai k dalam algoritma K-NN mengalami pola naik
sebelum mencapai nilai k terbaik lalu mengalami penurunan tingkat
akurasi setelah nilai k terbaik.
6.2. Saran
Penulis menyadari bahwa aplikasi orientasi sentimen ini masih memiliki
beberapa kekurangan dan keterbatasan. Oleh karena itu, ada beberapa hal yang
perlu dipertimbangkan untuk mengembangkan aplikasi ini agar lebih baik, yaitu:
1. Sistem ini hanya dapat mengklasifikasi data teks berbahasa Indonesia
dan tidak mengklasifikasi gambar. Diharapkan dapat dikembangkan
dalam berbagai bahasa dan dapat mengklasifikasi gambar.
2. Adanya peningkatan koleksi kamus sentimen sehingga dapat
meningkatkan akurasi.
96
DAFTAR PUSTAKA
Ali, A., Rezwanul Huq, M., & Rahman, A. (2017). Sentiment Analysis on Twitter
Data using KNN and SVM, 8(6), 19–25.
Bagir, M., & Ayu Yuliani, I. (2012). Database Introduction. Depok: CCIT-FTUI.
Bo, Z. H. ; G. W. ; J. (2014). Machine Learning and Lexicon Based Methods for
Sentiment Classification: A Survey, (978-1-4799-5727–9).
https://doi.org/10.1109/WISA.2014.55
Dey, L., & Sanjay, C. (2016). Sentiment Analysis of Review Datasets using Naïve
Bayes and K -NN Classifier, 8(4), 54–62.
https://doi.org/10.5815/ijieeb.2016.04.07
97
Febryanto, P. (2017). ANALISIS BEBERAPA FAKTOR YANG
MEMPENGARUHI KEPUASAN PELANGGAN.
Hotho, A., Nurnberger, A., & Paaß, G. (2005). A Brief Survey of Text Mining.
Computational Linguistics and Language Technology.
Kurniawan, H. (2017). Sistem Penentuan Tingkat Kualitas Air pada Depot Air
Minum AIR MINUM MENGGUNAKAN METODE K-NEARST. Sistem
98
Penentuan Tingkat Kualitas Air Pada Depot Air Minum Menggunakan
Metode K-Nearest Neighbor (KNN) (Studi Kasus : Dinas Kesehatan Kota
Pekanbaru).
Liu, B. (2016). Sentiment Analysis and Opinion Mining. (H. Graeme, Ed.) (1st
ed.). Chicago: Morgan & Claypool Publisher. Retrieved from
https://www.cs.uic.edu/~liub /FBS/SentimentAnalysis-and-
OpinionMining.pdf
Madani, S. A., Kazmi, J., & Mahlknecht, S. (2014). Wireless sensor networks:
modeling and simulation. InTech.
Pang, B., & Lee, L. (2008). Opinion Mining and Sentiment Analysis. Foundations
and Trends in Information Retrieval.
Prasetyo, E. (2012). Data Mining Konsep dan Aplikasi Menggunakan Matlab (1st
ed.).
99
BAHASA INDONESIA ( STUDI KASUS : TWEETS MENGENAI ISU
SOSIAL KOTA BANDUNG ).
Putstejovsky, J., & Stubbs, A. (2012). Natural Language Annotation for Machine
Learning. Cambridge : O’relly.
Raharjo, B., Heryanto, I., & Rk, E. (2012). Modul Pemrograman Web HTML,
PHP & MYSQL. Bandung: Modula.
100
LAMPIRAN
Lampiran 1
Lampiran hasil klasifikasi sentimen kombinasi algoritma k-NN dan pendekatan
Lexicon.
102
16 MARAH GEMBIRA MARAH MARAH MARAH GEMBIRA
103
36 MARAH GEMBIRA MARAH MARAH MARAH GEMBIRA
104
56 MARAH GEMBIRA GEMBIRA MARAH GEMBIRA GEMBIRA
105
76 MARAH MARAH MARAH MARAH MARAH MARAH
106
96 MARAH MARAH MARAH MARAH MARAH MARAH
107
Lampiran 2
Lampiran tweet hasil analisis sentimen kombinasi algoritma k-NN dan pendekatan
Lexicon dengan k=3.
108
109
110
111
112