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)
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
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
paling terbantu, yaitu dalam dunia web-online (mengenai pelayan, maupun 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
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.
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
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
BAB IV
HASIL DAN PEMBAHASAN
4.1 IMPLEMENTASI
Install package – package yang dibutuhkan sesuai yang ada program
Gambar 1 (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","484467466-ScpeNMUbMXcph9ncPLHTgeXc5q6pAf4AISQ58F6C","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
# if not an error
# 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
Gambar 3 (R Console)
Gambar 5 (R Console)
Script Program untuk menampilkan Grafik Emotion Categories (Gambar 6) # plot distribution of emotions
ggplot(sent_df, aes(x=emotion)) + geom_bar(aes(y=..count..,
fill=emotion)) + scale_fill_brewer(palette="Dark2") + labs(x="emotion categories", y="number of tweets")
Script Program untuk menampilkan Grafik Polarity Categories (Gambar 7)
ggplot(sent_df, aes(x=polarity)) + geom_bar(aes(y=..count.., fill=polarity)) + scale_fill_brewer(palette="RdGy") + labs(x="polarity categories", y="number of tweets")
Gambar 7 (R Graphics)
# separating text by emotion
emos = levels(factor(sent_df$emotion)) nemo = length(emos)
emo.docs = rep("", nemo)
for (i in 1:nemo) {
tmp = some_txt[emotion == emos[i]]
emo.docs[i] = paste(tmp, collapse=" ") }
# remove stopwords
emo.docs = removeWords(emo.docs, stopwords("english"))
# create corpus
corpus = Corpus(VectorSource(emo.docs))
tdm = as.matrix(tdm) colnames(tdm) = emos
Script Program untuk menampilkan Word Cloud (Gambar 8) # comparison word cloud
comparison.cloud(tdm, colors = brewer.pal(nemo, "Dark2"),
scale = c(3,.5), random.order = FALSE, title.size = 1.5)
BAB V
KESIMPULAN DAN REKOMENDASI
5.1 KESIMPULAN
Penelitian menggunakan metode clustering ini cukup efektif untuk mengetahui topic – topic apa saja yang sedang ramai di perbincang kan
Dari penelitian / pembahasan ini tentang menganalisis dan mengklasifikasi sentimen melalui tweet di twitter dengan objek Starbucks, bahwa opini positif negatif atau sentiment masyarakat dengan Starbucks itu sangat bermacam – macam , dari segi produk, pelayanan ,dan kualitas, seperti pada penelitian yang kami lakukan lewat media twitter, bahwa tingkat kepuasan dan kenyamanan pelanggan pada saat di Starbucks mendapat penilaian yang bermacam – macam, seperti yang terlihat pada Grafik Emotion (Gambar 6), Grafik Polarity (Gambar 7), dan tampilan Grafik WordCloud (Gambar 8).
5.2 REKOMENDASI
Untuk perusahaan / instansi / komunitas yang sedang mencari data – data atau informasi mengenai tempat – tempat yang akan dikunjungi , bisa menggunakan metode Analisis Sentimen Tweet melalui media Twitter, karena cukup efektif untuk mencari data - data yang di inginkan.
DAFTAR PUSTAKA
Eka Retnawijayati, F. E. (2016). Analisis Sentimen Pada Data Twitter dengan Menggunakan Text Mining terhadap Suatu Produk. Palembang: Universitas Bina Darma.
Nuke Y A Faradhillah, R. P. (2016). Eksperimen Sistem Klasifikasi Analisa Sentimen Twitter Pada Akun Resmi Pemerintah Kota Surabaya Berbasis Pembelajaran Mesin. Surabaya: Institut Teknologi Sepulih November.
Wibawa, B. (2018, Januari 8). Tugas Mata Kuliah Sistem Temu Kembali Informasi. Diambil kembali dari bachtiarwibawa.blogspot.co.id: http://bachtiarwibawa.blogspot.co.id/2016/12/tugas-mata-kuliah-sistem-temu-kembali.html