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
Proses desain sistem mengalokasikan persyaratan untuk sistem perangkat
keras maupun perangkat lunak dengan cara membangun keseluruhan
arsitektur sistem. Desain sistem melibatkan identifikasi dan penjabaran
secara mendasar abstraksi sistem perangkat lunak dan hubungannya.
3. Implementation
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
Merupakan siklus hidup terpanjang (tidak harus). Pemeliharaan dilakukan
untuk memperbaiki kesalahan yang tidak ditemukan sebelumnya, dan dapat
meningkatkan pelayanan sistem ketika persyaratan baru ditemukan.
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,
11
conditional random field (CRF) adalah jenis probabilistik grafis model tidak
diskriminatif, yang mewakili distribusi log-linear tunggal menghasilkan output
lebih terstruktur sebagai fungsi dari pengamatan tertentu urutan input.
Diberikan pengamatan variabel X yang nilainya diamati, variabel acak Y yang
nilai tugasnya memerlukan model untuk memprediksi, dan grafik G tidak berarah
di mana Y terhubung dengan tepi tidak berarah yang menunjukkan ketergantungan.
CRF mendefinisikan persyaratan probabilitas satu set nilai output y ∈ Y diberikan
satu set nilai input x ∈ X agar proporsional dengan produk fungsi potensial pada
klik grafik (McCallum, 2003),
(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)
14
2. Precision
(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
a. Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari
sekumpulan data.
b. Kelas dapat diilustrasikan sebagai suatu cetak biru(blueprint) atau
prototipe yang digunakan untuk menciptakan objek.
15
c. Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan
operasi pada data dalam suatu unit tunggal.
d. Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data
field), prosedur atau fungsi (method), dan sifat kelas (property).
2. Encapsulation
a. Istilah enkapsulasi sebenarnya adalah kombinasi data dan
fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk
menyembunyikan detail informasi.
b. Proses enkapsulasi memudahkan kita untuk menggunakan sebuah
objek dari suatu kelas karena kita tidak perlu mengetahui segala hal
secara rinci.
c. Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata
lain bagaimana menggunakan objek kelas tertentu.
d. Contoh: kelas mobil menyediakan antarmuka fungsi untuk
menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan
bakar, udara dan kalor yang diperlukan untuk proses tersebut.
3. Inheritance
a. Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari
kelas lain yang sudah ada.
b. Penurunan sifat ini bisa dilakukan secara bertingka-ttingkat, sehingga
semakin ke bawah kelas tersebut menjadi semakin spesifik.
c. Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan
perilaku khusus dari kelas supernya.
d. Dengan konsep pewarisan, seorang programmer dapat menggunakan
kode yang telah ditulisnya pada kelas super berulang kali pada kelas-
kelas turunannya tanpa harus menulis ulang semua kode-kode itu.
4. Polymorphism
a. Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas
namun terkait dalam pewarisan untuk merespon secara berbeda
terhadap suatu pesan yang sama.
16
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
Menggambarkan sejumlah external actors dan hubungannya ke use case
yang diberikan oleh sistem. Use case adalah deskripsi fungsi yang
disediakan oleh sistem dalam bentuk teks sebagai dokumentasi dari use
case symbol, namun dapat juga dilakukan di dalam activity diagrams. Use
case digambarkan hanya yang dilihat dari luar oleh actor (keadaan
lingkungan sistem yang dilihat user) dan bukan bagaimana fungsi yang ada
di dalam sistem.
2. Activity Diagram
Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk
mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga
dapat juga digunakan untuk aktifitas lainnya seperti use case atau interaksi.
3. Sequence Diagram
Menggambarkan kolaborasi dinamis antara sejumlah objek. Kegunaanya
untuk menunjukkan rangkaian pesan yang dikirim antara objek juga
interaksi antara objek, sesuatu yang terjadi pada titik tertentu dalam
eksekusi sistem.
17
4. Class Diagram
Menggambarkan struktur statis class di dalam sistem. Class
merepresentasikan sesuatu yang ditangani oleh sistem. Class dapat
berhubungan dengan yang lain melalui berbagai cara: associated
(terhubung satu sama lain), dependent (satu class tergantung/menggunakan
class yang lain), specialed (satu class merupakan spesialisasi dari class
lainnya), atau package (grup bersama sebagai satu unit). Sebuah sistem
biasanya mempunyai beberapa class diagram.
18
BAB 3
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.
22