BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Sentimen analisis merupakan sebuah bidang penelitian yang meneliti
pendapat manusia, sentimen, penilaian, sikap manusia, emosi terhadap entitas dari
produk, pelayanan, organisasi, permasalahan maupun sebuah topik. Analisis
sentimen pertama kali diperkenalkan oleh Nakasuwa dan Yi pada tahun 2003.
Fokus dari analisis sentimen adalah pendapat yang mengandung kalimat positif
maupun negatif.
Klasifikasi sentimen pada level dokumen dan kalimat tidak cukup untuk di
identifikasi secara jelas. Dalam menentukan nilai positif dan negatif dari sentimen
bisa banyak terjadi kesalahan karena sentimen yang diberikan tidak semuanya
menuliskan kalimat positif maupun negatif. Analisis sentimen berbasis aspek
dapat menangani permasalahan dari analisis sentimen terhadap dokumen dan
kalimat. Dengan ditetapkannya aspek untuk penilaian positif dan negatif, sentimen
dapat diklasifikasikan berdasarkan aspek yang dinilai. Analisis sentimen berbasis
aspek memiliki dua pembahasan penting, Aspek ekstrasi dan klasifikasi sentimen
[1].
Perkembangan internet membawa evolusi dari mulut ke mulut, dimana
seseorang dapat memberikan pengalaman terkait suatu produk, pelayanan,
permasalahan yang dihadapi secara online [2]. Konsumen memanfaatkan online
review karena dianggap sebagai sumber yang berharga dan dapat dipercaya
mengenai informasi dari kekuatan dan kelemahan suatu produk, Mengurangi
keraguan dalam pembelian, dan juga dapat meningkatkan kualitas produk. Produk
yang menyediakan online review biasanya lebih sering dibeli dibanding produk
tanpa review. Online review memberikan dampak yang signifikan terhadap
pelanggan yang ingin membeli atau mencoba suatu produk dan juga terhadap
suatu perusahaan untuk mengembangkan dan meneliti permasalahan yang
dihadapi perusahaannya [3].
Penelitian terkait online review pernah dilakukan sebelumnya. Penelitian
yang dilakukan mengenai review restoran berbahasa indonesia menggunakan
1
2
2. Design
Pada tahap ini desain sistem diwujudkan sebagai satu set program atau
unit program. Pengujian unit melibatkan verifikasi untuk memenuhi
spesifikasinya.
4. Testing
Unit program maupun program yang telah terintegrasi akan diuji sebagai
sistem yang lengkap untuk memastikan bahwa program telah memenuhi
persyaratan. Setelah memenuhi persyaratan program akan dikirimkan ke
pelanggan.
5. Maintenance
BAB 2
TINJAUAN PUSTAKA
2.1 Analisis Sentimen
Analisis sentimen merupakan studi tentang analisis pendapat manusia,
sentimen, evaluasi, sikap, dan emosi yang dituangkan dalam kalimat. Sentimen
analisis banyak digunakan untuk kebutuhan bisnis dan kehidupan sosial.
Pertumbuhan mengenai analisis sentimen sejalan dengan bertumbuhnya review,
diskusi forum, blog, twitter, dan sosial media lainnya. Analisis sentiment termasuk
dalam bidang natural language processing (NLP) namun baru banyak
dikembangkan diatas tahun 2000. Analisis sentimen berdampak besar tidak hanya
pada bidang NLP namun juga terhadap bidang Ekonomi, Ilmu Manajemen, Ilmu
Politik, dan Ilmu Sosial [1].
2.2 Analisis Sentimen berbasis aspek
Analisis sentimen berbasis aspek merupakan perkembangan dari analisis
sentimen yang hanya mengacu pada sebuah kalimat. Analisis sentimen berbasis
aspek dari opini berbasis teks mengacu pada entitas yang spesifik dan aspek yang
dibahasnya. Analisis yang dilakukan dengan mengacu pada spesifik entitas dan
aspek dapat membantu pelanggan memutuskan untuk membeli sesuatu atau
perusahaan dalam mengembangkan bisnisnya, perusahaan pun dapat mengontrol
perkembangan perusahaanya dan mengetahui dengan pasti apa yang
dibutuhkannya. Pada kasus penelitian yang sedang dilakukan, kategori yang
dibahas mengenai review yang diterima oleh restoran dengan memperhitungkan
aspek – aspek seperti : makanan, harga, suasana dan pelayanan. Data yang didapat
dari review yang dilakukan oleh pelanggan dapat dijadikan masukan dan evaluasi
untuk perusahaan dalam mengembangkan usahanya [1].
2.3 Text Mining
Menurut R. Feldman dan J. Sanger, text mining adalah suatu proses untuk
menggali informasi dimana seorang pengguna atau user berinteraksi dengan
dokumen menggunakan tool analisis. Sedangkan menurut O. Maimon dan L.
7
8
Rokach, text mining adalah suatu proses ekstrasi pola tertentu dari database
dokumen teks yang besar dan bertujuan untuk menemukan pengetahuan [8].
Pada kasus text mining, konsep dan teknik yang digunakan adalah untuk
mencari informasi yang bermanfaat dengan melakukan analisa dari teks tersebut.
Jika data yang digunakan pada teks mining sudah memiliki pola yang terstruktur
tugas dari text mining hanya tinggal mengklasifikasi teks tersebut atau melakukan
pengelompokan pada teks. Jika data yang digunakan masih memiliki ketidak
strukturan pada susunannya maka dilakukan proses preprocessing untuk membuat
data menjadi terstruktur.
2.4 Zomato
Zomato merupakan aplikasi perangkat lunak untuk mencari dan menemukan
tempat makanan terbaik. Aplikasi Zomato dapat diakses melalui web dan juga
melalui android ataupun ios. Aplikasi zomato memudahkan masyarakat dalam
mecari sebuah restoran dengan berbagai ulasan terkait mengenai restoran yang
ingin mereka kunjungi. Ulasan yang terdapat di aplikasi zomato merupakan
review pengalaman yang dirasakan pengunjung sebelumnya. Zomato ingin
memberikan kesan dan mempermudah pelanggan baru yang belum pernah
mencoba restoran tertentu untuk dating kesana berdasarkan pengalaman orang lain
yang sudah pernah mengunjungi restoran tersebut.
2.5 Preprocessing
Preprocessing merupakan tahapan awal sebelum memasuki tahapan utama.
Preprocessing yang digunakan dalam text mining data review sebuah restoran
adalah Casefolding, Tokenization, Stemming, dan Stopword Removal.
Preprocessing dilakukan agar data memiliki keseragaman dan membersihkan data
dari noise yang dimiliki oleh data tersebut.
2.5.1 Casefolding
Casefolding merupakan tahapan awal pada preprocessing. Casefolding
merupakan proses mengubah kalimat dari review restoran menjadi huruf kecil
keseluruhan. Kalimat yang masih memiliki huruf kapital didalamnya akan
dikonversi secara menyeluruh agar menjadi seragam huruf kecil (lowercase).
9
2.5.2 Tokenization
Merupakan proses pemotongan string masukan berdasarkan kata
penyusunnya. Memisahkan kata yang menyusun suatu dokumen. Proses
tokenization memisahkan kata berdasarkan spasi yang terdapat didalam didalam
dokumen tersebut.
2.5.3 Stemming
Stemming merupakan proses untuk mendapatkan kata dasar dari kata yang
memiliki imbuhan, baik imbuhan awalan (prefix) maupun imbuhan akhiran
(suffix). Algoritma stemming untuk bahasa yang satu berbeda dengan bahasa
lainnya. Untuk bahasa Indonesia Algoritma Nazief dan Adriani memiliki tingkat
akurasi yang baik dikarenakan berdasar pada aturan morfologi bahasa Indonesia
yang luas [10].
2.5.4 Stopword Removal
Stop word adalah kata umum (common word) yang biasanya muncul
dalam jumlah besar dan dianggap tidak memiliki makna. Untuk analisis sentimen
berbasis aspek stopword removal digunakan untuk mengurangi jumlah kata yang
harus diproses.
2.6 Term Frequency-Invers Document Frequency
Data yang telah melalui tahap preprocessing harus berbentuk numerik.
Untuk mengubah data tersebut menjadi numerik yaitu menggunakan metode
pembobotan TF-IDF. Metode Term Frequency Invers Document Frequency (TF-
IDF) merupakan metode yang digunakan untuk menentukan seberapa jauh
keterhubungan kata (term) terhadap dokumen dengan cara memberikan bobot
pada setiap kata. Metode TF-IDF ini menggabungkan dua konsep yaitu frekuensi
kemunculan sebuah kata di dalam sebuah dokumen dan inverse frekuensi
dokumen yang mengandung kata tersebut. Dalam perhitungan bobot
menggunakan TF-IDF, dihitung terlebih dahulu nilai TF perkata dengan bobot
masing-masing kata adalah 1. Sedangkan nilai IDF diformulasikan pada
Persamaan (1)
10
IDF(word) adalah nilai IDF dari setiap kata yang akan di cari, td adalah
jumlah keseluruhan dokumen yang ada, df jumlah kemuculan kata pada semua
dokumen [9].
2.7 Bahasa Pemograman
Bahasa Pemograman (programming language) adalah sebuah instruksi
standar untuk memerintah komputer menjalankan fungsi tertentu. Bahasa
pemograman merupakan suatu himpunan dari aturan sintaks dan semantik untuk
mendifinisikan program. Bahasa ini memungkinan programmer dapat
menentukan data yang akan diolah oleh komputer.
2.7.1 Python
Python adalah bahasa yang mudah dipelajari serta berfokus pada kode.
Python dianggap memiliki kode-kode pemograman yang sangat jelas, lengkap,
dan mudah untuk dipahami. Python secara umum berbentuk pemograman berbasis
objek. Python dapat digunakan untuk pembangunan perangkat lunak yang dapat
berjalan di berbagai platform sistem informasi [10].
2.8 Bi-LSTM
Bi-LSTM menggunakan dua LSTM untuk mempelajari setiap token dari
urutan berdasarkan pada konteks masa lalu dan masa depan token. Sebagaimana
yang telah ditunjukkan pada Gambar 2, satu LSTM memproses urutan dari kiri ke
kanan, yang lain dari kanan ke kiri. Pada setiap langkah waktu t, disembunyikan
lapisan kedepan dengan fungsi unit tersembunyi - → h dihitung berdasarkan
keadaan tersembunyi sebelumnya - → h t − 1 dan input pada langkah saat ini xt
dan lapisan belakang tersembunyi dengan fungsi unit tersembunyi ← - h dihitung
berdasarkan keadaan tersembunyi di masa depan ← - h t + 1 dan input di langkah
saat ini xt. Representasi konteks maju dan mundur, dihasilkan oleh - → ht dan ←
- masing-masing, disatukan menjadi panjang vektor. Gabungan hasil adalah
prediksi teacher-given target signal. Sebagai model urutan yang banyak
digunakan, conditional random field (CRF) adalah jenis probabilistik grafis model
11
(2.1)
(2.2)
di mana σ (X, y) adalah fungsi skor didefinisikan sebagai berikut:
12
(2.3)
A adalah matriks skor transisi, Ayi, yi + 1 mewakili skor transisi dari tag yi
ke yi +1. n adalah panjang a kalimat, P adalah matriks skor keluaran oleh jaringan
BiLSTM, Pi, yi adalah skor ke-y Saya menandai kata ke-i dalam sebuah kalimat.
Seperti yang ditunjukkan pada Gambar. 2, teknik putus digunakan setelah input
lapisan BiLSTM-CRF untuk mengurangi overfitting pada data pelatihan. Teknik
ini pertama kali diperkenalkan oleh Hinton, Srivastava, Krizhevsky, Sutskever,
dan Salakhutdinov (2012) untuk mencegah kerjasama yang kompleks pada data
pelatihan. Ini telah memberikan perbaikan besar pada banyak tugas. Setelah
ekstraksi target oleh BiLSTM-CRF, semua kalimat diucapkan diklasifikasikan ke
dalam kalimat tidak-sasaran, satu-sasaran, dan kalimat multi-target, sesuai dengan
jumlah target yang diekstraksi dari mereka [11].
2.9 Confusion Matriks
Pengukuran terhadap kinerja suatu sistem klasifikasi merupakan hal yang
penting. Kinerja sistem klasifikasi menggambarkan seberapa baik sistem dalam
mengklasifikasikan data. Confusion matrix merupakan salah satu metode yang
dapat digunakan untuk mengukur kinerja suatu metode klasifikasi. Pada dasarnya
confusion matrix mengandung informasi yang membandingkan hasil klasifikasi
yang dilakukan oleh sistem dengan hasil klasifikasi yang seharusnya [12].
Berdasarkan jumlah keluaran kelasnya, sistem klasifikasi dapat dibagi
menjadi 4 (empat) jenis yaitu klasifikasi binary, multi-class, multi-label dan
hierarchical [13].
Pada klasifikasi binary, data masukan dikelompokkan ke dalam salah satu
dari dua kelas. Jenis klasifikasi ini merupakan bentuk klasifikasi yang paling
sederhana dan banyak digunakan. Contoh penggunaannya antara lain dalam
sistem yang melakukan deteksi orang atau bukan, sistem deteksi kendaraan atau
bukan, dan sistem deteksi pergerakan atau bukan.
Sementara itu, pada bentuk klasifikasi multi-class, data masukan
diklasifikasikan menjadi beberapa kelas. Sebagai contoh sistem yang dapat
13
mengklasifikasikan jenis kendaraan seperti sepeda, sepeda motor, mobil, bus, truk,
dan sebagainya. Bentuk klasifikasi multi-label pada dasarnya sama dengan multi-
class dimana data dikelompokkan menjadi beberapa kelas, namun pada klasifikasi
multi-label, data dapat dimasukkan dalam beberapa kelas sekaligus. Bentuk
klasifikasi yang terakhir adalah hierarchical. Data masukan dikelompokkan
menjadi beberapa kelas, namun kelas tersebut dapat dikelompokkan kembali
menjadi kelas-kelas yang lebih sederhana secara hirarkis. Contohnya dalam
penelitian ini, arah pergerakan dikelompokkan menjadi 12 arah pergerakan yang
tentunya dapat disederhanakan menjadi 4 arah.
Pada pengukuran kinerja menggunakan confusion matrix, terdapat 4 (empat)
istilah sebagai representasi hasil proses klasifikasi. Keempat istilah tersebut
adalah True Positive (TP), True Negative (TN), False Positive (FP) dan False
Negative (FN). Nilai True Negative (TN) merupakan jumlah data negatif yang
terdeteksi dengan benar, sedangkan False Positive (FP) merupakan data negatif
namun terdeteksi sebagai data positif. Sementara itu, True Positive (TP)
merupakan data positif yang terdeteksi benar. False Negative (FN) merupakan
kebalikan dari True Positive, sehingga data posifit, namun terdeteksi sebagai data
negatif.
Pada jenis klasifikasi binary yang hanya memiliki 2 keluaran kelas,
confusion matrix dapat disajikan seperti pada Tabel 1
Tabel 1 Confusion Matrix
Kelas Klasifikasi Positif Klasifikasi Negatif
Positif TP FN
Negatif FP TN
Berdasarkan nilai TP, FP, FN, TN dapat ditentukan nilai accuracy,
precision dan Recall yaitu:
1. Accuracy
(2.4)
2. Precision
14
(2.5)
3. Recall
(2.6)
2.10 OOP
OOP (Object Oriented Programming) adalah suatu metode pemrograman
yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk
mempermudah pengembangan program dengan cara mengikuti model yang telah
ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah
objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih
kecil lagi. Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu
sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda,
baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek
yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling
mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program,
sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-
objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.
Konsep dari OOP adalah :
1. Abstract Class
c. Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan
operasi pada data dalam suatu unit tunggal.
15
d. Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data
field), prosedur atau fungsi (method), dan sifat kelas (property).
2. Encapsulation
3. Inheritance
a. Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari
kelas lain yang sudah ada.
4. Polymorphism
16
c. Method overriding.
2.10.1 UML
Sebuah teknik pengembangan sistem yang menggunakan bahasa grafis
untuk dokumentasi dan spesifikasi pada sistem. UML pertama kali diperkenalkan
pada tahun 1994 oleh Grady Booch dan James Rumbaugh dengan
menggabungkan 2 metodologi Booch dan OMT. Kemudian penemu Object
Oriented Software Engineering (OOSE) Ivar Jacobson tertarik dan ikut bergabung
dengan Booch dan Rumbaugh. Standar UML dikelola oleh Object Management
Group (OMG) [14].
1. Use Case Diagram
3. Sequence Diagram
4. Class Diagram
19
20
proses pengujian. Gambaran umum dari sistem yang akan dibangun ditampilkan
pada gambar 3.1 berikut ini.
21
DAFTAR PUSTAKA
[1] Liu Bing “Sentiment Analysis and Opinion Mining” in Synthesis lecturer
on human language technologies. Chicago : Morgan & Claypool, 2012
[2] Hyaan Yoo Kung, Gretzel Ulrike, “What Motivates Consumer to Write
Online Travel Reviews”, J. Information and Technology Tourism, vol.10,
pp.283-295, 2008.
[3] Johnson Amelie, Lijenberg Caroline, Dahlgren Sara, ”Online Reviews –
What Motivates You?”, Linaeus University, Sweden, 2015.
[4] Ayu Muthia Dinda “Analisis Sentimen pada Review Restoran dengan Teks
Bahasa Indonesia menggunakan Algoritma Naïve Baiyes”, J. ilmu
pengetahuan dan teknologi komputer, vol.2, no.2, 2017
[5] Kartika Lidya, Salim Sitompul Opim, Efendi Syahril, “Sentiment Analysis
pada Teks Bahasa Indonesia menggunakan Support Vector Machine
(SVM) dan K-Nearest Neighbour (KNN), in seminar of teknologi
informasi dan komunikasi, yogyakarta, 2015.
[6] Ruder Sbastian, Ghaffari Parsa, G. Breslin John, “A Hierarchical Model of
Reviews for Aspect-Based Sentiment Analysis”, J. Computation and
Language, 2016.
[7] Sommerville Ian, “Software Engineering”, ninth ed, United States of
America : Addison Wesley, 2012.
[8] Wahyudi Dwi, Susyanto Teguh, Nugroho Didik, “Implementasi dan
Analisis Algoritma Stemming Nazief & Adriani dan Porter Pada Dokumen
Berbahasa Indonesia”, Jurnal Ilmiah Sinus, vol.15, no.2, pp.49-56. 2017.
[9] Herwijayanti Bening, Eka Ratnawati Dian, Muflikhah Lailil, “Klasifikasi
Berita Online menggunakan Pembobotan TF-IDF dan Cosine Similarity”,
J. Pengembangan teknologi informasi dan ilmu komputer, vol.2, no.1.
2018.
[10] Jubile Enterprise, “Otodidak Pemograman Python” 1st ed, Jakarta : PT
Alex Media Komputindo, 2017.
[11] Chen Tao, Xu Ruifeng, He Yulan, Wang Xuan, “Improving Sentiment
Analysis via Sentence type Classification using BiLSTM-CRF and CNN”,
Elsevier, no.72, pp 221-230. 2016.
[12] E. Prasetyo, Data Mining: Konsep dan Aplikasi menggunakan Matlab, 1
ed. Yogyakarta: Andi Offset, 2012.
22