MAKALAH ANALISIS SENTIMEN TWEET (1)

MAKALAH
ANALISIS SENTIMEN TWEET

Oleh :
Fandi Pratama (14.01.53.0116)
Dimas Alif Avianto (14.01.53.0065)
Romi Saefuddin (14.01.53.0057)

FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS STIKUBANK (UNISBANK)
SEMARANG
2018

BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Twitter merupakan sosial media yang sampai saat ini sangat digemari dan
menjadi penyebar informasi yang sangat cepat. Informasi yang beredar juga
sangat banyak mulai dari berita, opini, komentar, kritik dan semuanya ada
yang bersifat positif, negatif dan netral. Menurut data yang dilansir Statista
berdasarkan hasil penelitian PeerReach, Indonesia termasuk pengguna twitter

yang aktif ke 3 di dunia dibawah Amerika Serikat dan Jepang. Pada Twitter
terdapat istilah bernama tweet yang merupakan sebuah pesan atau status yang
dibuat oleh penggunanya. Sebuah tweet dapat mengekspresikan sebuah
perasaan atau keadaan dari pengguna Twiter. Tweet dapat mengandung sebuah
opini dari penggunanya terhadap kejadian yang dialaminya. Opini tersebut
dapat dimanfaatkan sebagai penilaian bagi suatu objek.
Analisis sentimen merupakan bagian dari Natural Language Processing (NLP)
dan Machine Learning. Cara kerjanya adalah dengan melakukan klasifikasi
terhadap opini positif dan negatif. Analisis sentimen menganalisa pendapat
orang, sentimen, evaluasi, penilaian, sikap, dan emosi terhadap entitas seperti
produk, jasa, organisasi, individu, masalah, peristiwa atau suatu topik.
Sentimen analisis ini bertujuan untuk menentukan sentimen publik terhadap
objek tertentu yang disampaikan melalui twitter dengan bahasa indonesia yang
dapat membantu usaha untuk melihat opini publik terkait dengan objek
tersebut sebagai bahan pertimbangan pengambilan keputusan.
Berdasarkan pemaparan yang telah diuraikan, penelitian ini bermaksud untuk
membangun analisis sentimen pada twitter dengan objek Starbucks.
1.2 RUMUSAN MASALAH
Berdasarkan uraian pada latar belakang dapat dirumuskan permasalahannya
yaitu bagaimana menganalisis dan mengklasifikasi sentimen melalui tweet di

twitter dengan objek Starbucks.

BAB II
TINJAUAN PUSTAKA
2.1 KAJIAN DEDUKTIF
2.1.1 Analisis Sentimen
Analisa sentimen atau biasa disebut opinion mining merupakan salah satu
cabang penelitian Text Mining. Opinion mining adalah riset komputasional
dari opini, sentimen dan emosi yang diekspresikan secara tekstual. Jika
diberikan suatu set dokumen teks yang berisi opini mengenai suatu objek,
maka opinion mining bertujuan untuk mengekstrak atribut dan komponen
dari objek yang telah dikomentasi pada setiap dokumen dan untuk
menentukan apakah komentar tersebut bermakna positif atau negatif.
Sentiment Analysis dapat dibedakan berdasarkan sumber datanya,
beberapa level yang sering digunakan dalam penelitian Sentiment Analysis
adalah Sentiment Analysis pada level dokumen dan Sentiment Analysis
pada level kalimat. Berdasarkan level sumber datanya Sentiment Analysis
terbagi menjadi 2 kelompok besar yaitu :
a. Coarse-grained Sentiment Analysis
Pada Sentiment Analysis jenis ini, Sentiment Analysis yang

dilakukan adalah pada level dokumen. Secara garis besar fokus
utama dari Sentiment Analysisjenis ini adalah menganggap seluruh
isi dokumen sebagai sebuah sentiment positif atau sentiment
negatif.
b. Fined-grained Sentiment Analysis
Fined-grained Sentiment Analysis adalah Sentiment Analysis pada
level kalimat. Fokus utama fined-greined Sentiment Analysis
adalah menentukan sentimen pada setiap kalimat.
2.1.2 Analisis Opini atau Sentimen
Analisis opini atau Sentimen merupakan bagian riset dari text mining.
Sentimen analisis merebak sekitar tahun 2003, setelah itu banyak
penelitian yang mencakup area ini. Aplikasi hasil penelitian ini sangat
berguna dalam banyak bidang, namun ada beberapa bidang mayor yang

paling terbantu, yaitu dalam dunia web-online (mengenai pelayan, maupun
marketing), periklanan, bisnis dan keamanan negara ( intelligence).
Beberapa perusahaan profit juga mengembangkan tool sendiri untuk
memberikan jasa analisis sentimen (Twitratr, tweetfeel dan Social
Mention). Opini, sentiment atau kata yang sering didengar sentimental
adalah kata/trait yang melekat pada variable seperti perilaku, evaluasi,

appraisal, mood, afeksi, subjective belief/belief system dan feeling.
Variabel diatas (dan belum semua) nyatanya sangat mempengaruhi
bagaimana kita dalam melihat suatu peristiwa dan mengambil keputusan
atau opini pribadi mengenai suatu kejadian. Dalam sosial media data yang
ditampung mengenai opini berkembang sangat pesat, karena opini lebih
cepat disalurkan dan mudah melakukan akses ke opini orang lain oleh
karena itu analisis sentiment sangat diperlakukan. Analisis sentiment
merupakan tipologi area dari ilmu Natural Language Processing yang
bergerak secara kontinum mulai dari level/tahap klasifikasi teks, sampai
mereview polaritasnya. Riset yang paling sering dilakukan terhadap
analisis Twitter adalah pada tahap klasifikasi.
2.1.3 Word Cloud
Word cloud (disebut juga text cloud atau tag cloud) merupakan salah satu
metode untuk menampilkan data teks secara visual. Grafik ini populer
dalam text mining karena mudah dipahami. Dengan menggunakan word
cloud, gambaran frekuensi kata-kata dapat ditampilkan dalam bentuk yang
menarik namun tetap informatif. Semakin sering satu kata digunakan,
maka semakin besar pula ukuran kata tersebut ditampilkan dalam word
cloud. Word cloud (atau disebut juga tag cloud) adalah representasi visual
dari data teks, biasanya digunakan untuk menggambarkan metadata

keywords (tags) pada sebuah website/situs, untuk memvisualisasikan suatu
bentuk teks secara bebas (definisi: Wikipedia).
2.2 KAJIAN INDUKTIF
Menurut penelitian yang dilakukan oleh Eka Retnawijayati, Fatoni, Edi Surya
Negara (2016) dalam penelitiannya yang berjudul “Analisis Sentimen Pada

Data Twitter dengan Menggunakan Text Mining terhadap Suatu Produk”,
menjelaskan bahwa pertumbuhan media sosial mendorong adanya informasi
tekstual yang besar sehingga muncul kebutuhan penyajian data yang
memudahkan pengguna mendapatkan informasi yang cepat dan akurat.
Pengguna twitter yang semakin meningkat ini terlihat dari jutaan tweets yang
di posting setiap harinya dengan berbagai topik yang berbeda. Data tweets
dapat berupa persepsi publik baik politik, ekonomi, perilaku sosial, fenomena
alam serta perdagangan yang terjadi diseluruh dunia. Data yang besar tersebut
bisa dijadikan sebagai objek penelitan. Penelitan ini mencoba melakukan
analisis sentimen data dengan mengklasifikasi data twitter berbahasa Indonesia
pada suatu produk. Data tersebut akan diproses dengan text mining untuk
menghindari data yang kurang sempurna kemudian data tweet diklasifikasi
menjadi klasifikasi positif, negatif, dan netral. Klasifikasi ini menggunakan
algoritma Naïve Bayes Classifier.

Menurut penelitian Nuke Y A Faradhillah, Renny P Kusumawardani, Irmasari
Hafidz (2016) dalam penelitiannya yang berjudul “Eksperimen Sistem
Klasifikasi Analisa Sentimen Twitter Pada Akun Resmi Pemerintah Kota
Surabaya Berbasis Pembelajaran Mesin”, memaparkan bahwa salah satu
sumber informasi yang dibutuhkan oleh Pemerintah untuk dapat meningkatkan
kinerjanya adalah umpan balik dari masyarakat. Saat ini media sosial
digunakan oleh masyarakat sebagai alat untuk menyalurkan opini dan kondisi
yang terjadi di sekitar. Pemerintah Kota Surabaya memiliki akun media sosial
yaitu twitter bertujuan untuk meningkatkan interaksi kepada masyarakat
Surabaya secara luas. Untuk dapat memantau seluruh tweet pada seluruh akun
bukanlah sesuatu yang mudah dilakukan secara manual. Dalam penelitian ini
dilakukan

pengklasifikasian

opini

masyarakat

pada


media

twitter

menggunakan pembelajaran mesin. Pengklasifikasian dilakukan dengan
menggunakan algoritma Naïve Bayes dan Support Vector Machine (SVM).
Setelah klasifikasi, dibuat web framework pembuatan visualisasi berupa
wordcloud dan grafik streamgraph yang ditampilkan secara interaktif dengan
aplikasi berbasis web yaitu R Shiny.

BAB III
METODE PENELITIAN
3.1 OBJEK PENELITIAN
Objek dari analisis sentimen tweet adalah Starbucks
3.2 METODE PENGUMPULAN DATA
Berikut adalah metode pengumpulan data dalam penelitian ini
3.2.1 Studi Literatur
Pengumpulan data dilakukan dengan cara mempelajari, meneliti dan
menelaah berbagai literatur yang bersumber dari buku, situs internet,

jurnal ilmiah, dan sumber – sumber lainnya yang berkaitan dengan
penelitian yang dilakukan.
3.2.2 Pengumpulan Data Twitter
Pengumpulan data twitter dilakukan dengan menggunakan sumber data
primer yang diambil menggunakan Twitter Search API dengan
memasukan keyword yang berhubungan dengan objek
3.2.3 Observasi
Observasi yang dilakukan ialah mengamati data tweet yang akan di
analisis yang bersinggungan dengan objek penelitian.
3.3 JENIS DATA
Jenis data yang digunakan dalam penelitian ini adalah data primer yaitu tweet
yang berhubungan dengan objek penelitian (Starbucks) dari sosial media
Twiitter. Pengumpulan data menggunakan Twitter Search API dengan
memasukan keyword – keyword yang berhubungan dengan objek yang
dikombinasikan dengan kata – kata sentimen.
3.4 ALUR PENELITIAN
Berikut adalah tahapan – tahapan dalam penelitian

Identifik
asi

tweet

Penerap
an
metode
algoritm

Penerap
an
metode
algoritm

Pengujia
n tingkat
akurasi

Gambar 3.1 Alur Analisis Sentimen

Berikut penjelasan dari alur analisis sentimen diatas :
1. Identifikasi Tweet

Identifikasi tweet merupakan tahapan awal yang dilakukan pada penelitian ini.
Pada tahap ini yang dilakukan adalah melakukan pengidentifikasian tweet yang
akan di analisis yaitu tweet yang bersinggungan dengan Starbucks
2. Penerapan Metode Algoritma Information Retrieval
Pada tahap ini tweet yang sudah diidentidikasi kemudian diterapkan algoritma
information retrieval untuk mengetahui tweet mana yang mengandung sentimen
dengan yang tidak, yang nantinya akan digunakan untuk perhitungan pada
penerapan metode algoritma extraxtion
3. Penerapan Metode Algoritma Extraction
Pada tahap ini tweet yang sudah di-retreve kemudian diekstrak menggunakan
algoritma extrction berupa klasifikasi yang sudah ditentukan
4. Pengujian Tingkat Akurasi
Pada tahap ini tweet yang sudah memiliki kelas masing – masing diuji
menggunakan metode pengujian, agar diketahui tingkat akurasi hasil yang tepat

BAB IV
HASIL DAN PEMBAHASAN
4.1

IMPLEMENTASI

Install package – package yang dibutuhkan sesuai yang ada program
install.packages("twitteR")
install.packages("ROAuth")
install.packages("tm")
install.packages("ggplot2")
install.packages("wordcloud")
install.packages("sentimentr")
install.packages("plyr")
install.packages("RTextTools")
install.packages("devtools")
install.packages("e1071")
install.packages("RColorBrewer")
require(devtools)
Jalankan juga library nya
library(e1071)
library(twitteR)
library(ROAuth)
library(tm)
library(ggplot2)
library(wordcloud)
library(sentimentr)
library(plyr)
library(RTextTools)
library(e1071)
library(sentiment)
library(Rstem)
library(RColorBrewer)

Gambar 1 (R Console)

Gambar 2 (R Console)

Masukkan (“consumer key”, “consumer secret key”, “access token”,”access token
key”) dari aplikasi yang dibuat di apps.twitter.com
setup_twitter_oauth("dOrn0JcEcmYslZq30swkkXDjN","gzoeRgOIYoqu
T2Kj5gzcH3TqcNnDYku3qSLnzGMil1x3QsjccQ","484467466ScpeNMUbMXcph9ncPLHTgeXc5q6pAf4AISQ58F6C","zJV3iq6s78YDj
OmDWI08ejpcQRlL7nrDWyBsYlGThyIiv")

# harvest some tweets
some_tweets = searchTwitter("starbucks", n=500, lang="en")
# get the text
some_txt = sapply(some_tweets, function(x) x$getText())
# remove retweet entities
some_txt = gsub("(RT|via)((?:\\b\\W*@\\w+)+)", "", some_txt)
# remove at people
some_txt = gsub("@\\w+", "", some_txt)
# remove punctuation
some_txt = gsub("[[:punct:]]", "", some_txt)
# remove numbers
some_txt = gsub("[[:digit:]]", "", some_txt)
# remove html links
some_txt = gsub("http\\w+", "", some_txt)
# remove unnecessary spaces
some_txt = gsub("[ \t]{2,}", "", some_txt)
some_txt = gsub("^\\s+|\\s+$", "", some_txt)
# define "tolower error handling" function
try.error = function(x)
{
# create missing value
y = NA
# tryCatch error
try_error = tryCatch(tolower(x), error=function(e) e)

# if not an error
if (!inherits(try_error, "error"))
y = tolower(x)
# result
return(y)
}
# lower case using try.error with sapply
some_txt = sapply(some_txt, try.error)
# remove NAs in some_txt
some_txt = some_txt[!is.na(some_txt)]
names(some_txt) = NULL
# classify emotion
library(sentiment)
class_emo = classify_emotion(some_txt, algorithm="bayes", prior=1.0)
# get emotion best fit
emotion = class_emo[,7]
# substitute NA’s by "unknown"
emotion[is.na(emotion)] = "unknown"
# classify polarity
class_pol = classify_polarity(some_txt, algorithm="bayes")
# get polarity best fit
polarity = class_pol[,4]
# data frame with results
sent_df = data.frame(text=some_txt, emotion=emotion,polarity=polarity,
stringsAsFactors=FALSE)
# sort data frame
sent_df = within(sent_df,emotion