SKRIPSI
Disusun Oleh:
MARIAM ULFA
1700018169
iv
Analisis Sentimen Menggunakan Metode Naïve Bayes
(Studi Kasus: Pemberlakuan Pembatasan Kegiatan Masyarakat)
Mariam ulfa
1700018169
Abstrak
PPKM merupakan salah satu kegiatan untuk memanilisir tejadinya penyebaran Covid19
yang dimana terdapat banyak aturan seperti kegiatan diluar rumah dibatasi, tidak boleh ada
kerumunan dan yang paling penting selalu menjaga kesehatan dengan selalu mengonsumsi makanan
sehat, mencuci tangan dan memakai hansanitizer serta diwajibkan menggunakan masker ketika
berada di luar rumah. Tujuan dari penelitian ini ialah untuk mengetahui sentimen masyarakat perihal
PPKM di Yogyakarta serta hasil dari naïve bayes classifier. Data pengujian didapatkan dengan
crawling di Twitter dengan rentan waktu pengambilan data dari 3 September sampai 14 September
2021.
Dalam penelitian ini menggunakan metode yang perupakan salah satu dari sekian banyak
algoritma yang digunakan untuk analisis sentimen yaitu Naïve Bayes Classifier, metode ini adalah
salah satu dari algoritma yang menggunakan metode klasifikasi, menggunakan performa serta
tingkat akurasi yang baik untuk beberapa kondisi pengaplikasian didunia nyata. Pada penelitian ini
memakai data input yaitu tweet dan data output yaitu sentimen yang telah melalui tahap
pengklasifikasian kedalam tiga kelas yaitu positif, negatif, dan netral.
Penelitian ini menghasilkan sentimen analisis pada Pemberlakuan Pembatasan Kegiatan
Masyarakat (PPKM) dengan memakai metode Naïve Bayes Classifier. Akibat pengujian dari
pembagian data pelatihan dan testing yaitu sebanyak 70% : 30% diperoleh akurasi sebesar 95%
dengan data tweet sebanyak 501 yang tediri dari data pelatihan sebanyak 450 dan data testing
sebanyak 51 data. Di peroleh pula presentase masing-masing kelas sentimen yaitu netral sebanyak
64,49%, positif sebanyak 28,37% dan negatif sebanyak 6,12%. Dari hasil presentase tesebut dapat
disimpulkan bahwa banyak masyrakat yang beropini netral dengan adanya Pemberlakuan
Pembatasan Kegiatan Masyarakat di Yogyakarta.
v
Sentimen Analysis Using the Naïve Bayes Method
(Case Study: Enforcement of Restrictions on Community
Activities)
Mariam ulfa
1700018169
Abstract
PPKM is one of the activities to control the spread of Covid-19 where there are many rules
such as limited activities outside the home, no crowds and most importantly always maintaining
health by always eating healthy food, washing hands and wearing hansanitizer and is required to
wear a mask when in outside the house. The purpose of this study was to determine public sentiment
about PPKM in Yogyakarta and the results of the nave Bayes classifier. Test data obtained by
crawling on Twitter with a vulnerable time of data collection from September 3 to September 14,
2021.
In this study, a method is used which is one of the many algorithms used for sentiment
analysis, namely the Naïve Bayes Classifier, this method is one of the algorithms that uses a
classification method, using good performance and accuracy for several application conditions in
the real world. This research uses input data, namely tweets and output data, namely sentiment that
has gone through the classification stage into three classes, namely positive, negative, and neutral.
vi
HALAMAN PENGESAHAN
SKRIPSI
Mariam ulfa
1700018169
Penguji II:
Dekan
vii
SURAT PERNYATAAN
NIM : 1700018169
Dengan ini saya menyatakan bahwa pada penulisan skripsi ini meupakan hasil pemikiran, usaha
serta karya dari saya sendiri, baik dari laporan maupun dari codingan atau kegiatan programming
yang terdapat dalam skripsi ini. Dalam skripi ini tidak terdapat karya orang lain, kecuali sebagai
kutipan petunjuk untuk tatacara penulisan penelitian yang baik dan benar, jika ada karya orang lain
di dalam penulisan skripi ini, saya akan mencantumkan sumber yang jelas.
Yogyakarta, ....................................
(............................................) (............................................)
iv
PERSEMBAHAN
Puji syukur penulis panjatkan ke hadirat Allah swt yang tiada henti memberikan nikmat, petunjuk
serta kesehatan sehingga penulis dapat menyelesaikan skripsi ini yang dipersembahkan untuk:
1. Keluarga yang sangat saya cintai: Arrahman (bapak), Sri wahyuni (ibu), Afrizal (adik),
M.virgiawan (adik) dan Nur afifah (adik). Kalian merupakan harta yang sangat berharga
yang saya miliki di dunia ini yang selalu menjadi sosok penyemangat. Terimaksih karena
telah menjadi bagian dari hidup saya, terutama untuk ibu dan bapak saya tercinta
terimakasih banyak karena telah melakukan banyak hal sehingga saya bisa mencapai titik
ini.
2. Sahabat-sahabat saya zhur wahayati putri, Sri insan madani wulan dari, Rahumal fiqri, Fitri
andini, Puspa nutari, Latifatul mujahidah, Sindi sri wahyuni, Ali usman, Iqbal kurnia dama,
Nur anita, Annoying boy, wardan, dan masih banyak lagi. Terimaksih karena telah menjadi
v
KATA PENGANTAR
Puji dan syukur kehadirat Allah SWT atas rahmat, nikmat dan hidayah-Nya dan dengan
mengucapkan Alhamdulillahirobbil’alamin sehingga penulis dapat menyelesaikan skripsi dengan
judul “Analisis Sentimen Menggunakan Metode Naïve Bayes (studi kasus: Pemberlakuan
Pembatasan Kegiatan Masyarakat). Penulis menyadari bahwa skripi ini masih jauh dari kata
sempurna. Dengan demikian penulis mengharapkan kritikan serta saran demi kesempurnaan
skripsi ini. Dalam proses penyusunan skripsi pasti penulis banyak melalui hambatan dan kesulitan,
berkat bantuan, nasehat serta bimbingan dari dosen pembimbing dan berbagai pihak
alhamdullilah saya dapat menyelesaikan skripsi ini. Skripsi ini ditulis untuk Memenuhi Sebagian
Persyaratan Mencapai Derajat Sarjana Komputer.
Selama penulisan skripsi ini penulis menyadari banyak pihak telah memberikan
bantuannya, sehingga pada kesempatan ini penulis ingin mengucapkan terimakasih yang tulus
kepada:
1. Dekan Sunardi, S.T., M.T., Ph.D., selaku Dekan Fakultas Teknologi Industri Universitas
Ahmad Dahlan.
2. Ibu Nur Rochmah Dyah Pujiastuti, S.T, M.Kom., selaku Kaprodi Teknik Informatika
Universitas Ahmad Dahlan Yogyakarta
3. Dewi Soyusiawaty, S.T., M.T., selaku dosen pembimbing yang telah tulus hati memberikan
pengarahan, dukungan dan dengan sabar dalam memberikan bimbingan.
4. Bapak Ardi Pujiyanta, Ir., M.T., selaku dosen penguji yang telah menyetujui, menerima
dan memberikan pengarahan pada laporan Tugas Akhir ini.
5. Bapak dan ibu Dosen program Studi Teknik Informatika Universitas Ahmad Dahlan, yang
telah memberikan ilmunya selama spenulis menempuh pendidikan di Universtas Ahmad
Dahlan sehingga skripsi ini dapat terselesaikan.
Penulis berharap supaya proposal ini berguna bagi peneliti sendiri serta dapat menjadi
masukan bagi kita semua agar dapat melihat sebagai mana penulis menguasai dan sejauhmana
kemampuan penulis selama mengikuti perkuliahan program Teknik informatika di Universitas
Ahmad Dahlan.
vi
Daftar Isi
vii
A. Kesimpulan ............................................................................................................................ 43
B. Saran ....................................................................................................................................... 44
viii
BAB 1
PENDAHULUAN
A. Latar Belakang
Media sosial merupakan media yang dapat bekerja secara online dan dapat membantu
pengguna untuk menghemat waktu dan energy karena pengguna dapat berinteraksi hanya
melalui jaringan media sosial tanpa harus bertemu secara langsung. Pada tahun 2016 jumlah
Pengguna Twiitter di Indonesia dari 10 juta tweet worldwide mencapai 29 juta penggunda
dengan 2.4% menurut website socialmemos 2. Dengan adanya media sosial dapat membawa
dampak positif seperti informasi dapat tersampaikan dengan cepat serta dampak negatif
seperti membuat warga lebih dominan terhadap media sosial dibandingkan dengan
Media sosial sekarang berkembang sangat pesat, pengguna internet di seluruh dunia
sekitar 70%. Terdapat banyak pengguna media sosial seperti twitter dan facebook, tingkat
pengguna twitter dan facebook sampai sekarang masih tinggi. Selain memiliki banyak
keuntungan pengguna media sosial juga dapat menyebabkan beberapa masalah, antara lain
seperti pergeseran budaya antara budaya tradisional dan budaya modern. Penyampaian
informasi awalnya bersifat tradisional dan sekarang penyampaian informasi berubah menjadi
modern melalui media sosial, sehingga generasi yang tumbuh dalam media digital atau
modern sekarang lebih cenderung bersifat menyendiri, selain itu media sosial juga memiliki
PPKM merupakan salah satu kegiatan untuk memanilisir tejadinya penyebaran covid19,
terdapat banyak aturan seperti kegiatan di luar rumah dibatasi, tidak boleh ada kerumunan
dan yang paling penting selalu menjaga kesehatan dengan selalu mengonsumsi makanan
1
sehat, mencuci tangan, memakai handsanitizer serta selalu menggunakan masker ketika
berada diluar rumah. Sejak tanggal 3 juli 2021 PPKM darurat di Kota Yogyakarta telah telah di
terapkan. PPKM Darurat ini bertujuan untuk menanggulangi terjadinya penyebaran COVID-19
Pembatasan Kegiatan Masyarakat yaitu banyak pihak yang ikut serta membatu seperti Dinas
Perhubungan, Dinas Pemadam Kebakaran, dan Sat Pol PP. TNI atau Polri tidak ketinggalan
untuk membantu dan pada saat pelaksanaan PPKM pihak Tni dan Polri terus melakukan patroli
gabungan . Pada wilayah kelurahan dilakukan patroli untuk penegakan atas instruksi Walikota
No.14 Tahun 2021 Tentang PPKM COVID-19 di Wilayah Kota Yogyakarta. Dengan dilakukannya
PPKM jelas terjadi banyak opini masyarakat yang bermunculan terutama pada media sosial.
Pada penelitian ini dilakukan sentimen analisis guna mempermudah Pemerintah untuk
Masyarakat (PPKM). Opini masyarakat yang dimaksud adalah opini yang bersifat positif,
Data Mining merupakan kegiatan pencarian data yang sangat besar melalui bantuan
algoritma dengan cara mengumpulkan, memakai data yang bertujuan untuk mendapatkan
keakuratan, hubungan dalam data yang tentunya terdapat didalam data yang berukuran
besar. Klasifikasi merupakan bagian dari data mining yang berguna sebagai proses untuk
membentuk fungsi serta mendeskripikan dan membedakan konsep data. Banyak cara yang
dapat dilakukan dalam proses klasifikasi diantaranya dengan cara manual. Cara manual
komputer atau bantuan teknologi. Sedangkan proses pengklasifikasi yang memiliki beberapa
algoritma, diantaranya Naïve Bayes, Support Vector Machine, Decission Tree, Fuzzy dan
2
Analisis Sentimen merupakan proses pengumpulan data dari berbagai sumber dari
internet dan media sosial dengan menggunakan text analytics. Analisis sentimen merupakan
bagian dari algoritma machine learning yang berfungsi untuk menenntukan polaritas dan
mendapatkan informasi yang terkandung dalam teks berdasarkan teks tersebut. Analisis
sentimen merupakan bagian dari NLP (Natural Language Processing) berfungsi sebagai
pendeteksi dan pengklasifikasian kelas sentimen berbentuk teks. Kelas klasifikasi yang
dimaksud yaitu positif, negatif dan netral. Membagi suatu kelas sentimen kedalam tiga kelas
tidak mudah untuk diklasifikasi, karena pada suatu teks terdapat teks yang bermakna lebih
dari satu (ambiguitas), yang menjadikannya tidak mudah untuk diklasifikasi. Contoh dari teks
ambiguitas seperti “Buku Rijal tebawa Egi”, kalimat ini dapat berarti “Buku milik Rijal tidak
sengaja terbawa oleh Egi”, serta “Buku milik Rijal sengaja dibawa Egi”. Dan ada beberapa
contoh kasus yang memiliki kelas sentimen sangat negtif atau hanya positif dan hanya negatif
yang diperhitungkan.
Metode atau algoritma untuk analisis lainnya yaitu pertama menggunakan metode
Lexicon yang dapat berfungsi untuk membuat kamus kata opini (lexicon) terlebih dahulu. Kata-
kata yang ada didalam kamus tersebut digunakan untuk melihat apakah pada suatu kalimat
terdpaat kalimat opini atau tidak. Kedua Support Vector Machine merupakan algoritma yang
berfungsi untuk mendapatkan data non-linear dan data linear serta merupakan algoritma
klasifikasi. Salah satu keuntungan dari penelitian Lexicon dan Support Vector Mechine adalah
memberikan hasil berupa penilaian kuantitatif (digit angka) dan komputasi menjadi lebih
cepat dengan menggunakan support vector dalam menentukan jarak. Kekurangan dari
Lexicon dan Support Vector Mechine adalah memisahkan data yang diperoeh menjadi dua
kelas dengan menggunakan fungsi pemisah. Dibutuhkan dua modifikasi untuk memisahkan
dua kelas pada data, data yang dapat mempengarhi ukuran memori yang dibutuhkan serta
3
Dengan melihat pengertian, kelebihan dan kekurangan dari metode atau algoritma
Lexicon dan Support Vector Mechine. Metode Naïve Bayes lebih tepat digunakan dalam
penelitian ini karena metode Naïve Bayes adalah bagian dari algoritma yang digunakan pada
analisis sentimen. Metode ini adalah salah satu dari algoritma yang menggunakan metode
klasifikasi, menggunakan performa serta tingkat akurasi yang baik untuk beberapa kondisi
pengaplikasian didunia nyata. Penelitian media sosial twitter menggunakan Naïve Bayes
Classifier efektif untuk text mining ketika di bandingkan dengan algoritma Lexicon Based
karena Naïve Bayes memiliki tingkat akurasi lebih baik dari pada Lexicon Based. Tujuan pada
penelitian ini untuk mengetahui opini atau pendapat masyarakat pada saat pelaksanaan
atau berpendapat negatif, positif atau netral sehingga dapat dijadikan acuan serta masukan
untuk kinerja terhadap pengelolaan dalam segala hal yang berkaitan prasarana dan sarana
B. Identifikasi Masalah
1. Bagi Pemerintah tidak mudah untuk mengetahui pendapat atau opini masyarakat
C. Batasan Masalah
1. Data yang diteliti pada penelitian ini adalah berupa variabel dan memiliki polaritas
2. Metode yang digunakan dalam penelitian ini adalah Naïve Bayes Classifier.
4
3. Melakukan pengambilan data dengan melakukan crawling data tweet pada twitter
2021.
D. Rumusan Masalah
E. Tujuan penelitian
Masyarakat (PPKM).
F. Manfaat Penelitian
(PPKM). Serta dapat lebih mudah melihat atau memilah pandangan dari masyarakat
lebih banyak pendapat posistif, netral atau negatif. Dapat dijadikan bahan masukan
5
BAB II
KAJIAN PUSTAKA
Penelitian terdahulu dijadikan sebagai acuan dalam penellitian ini, penelitian pertama
dilakukan oleh Muhammad Radiyan Hasyadi (2017) dengan judul penelitian “Analisis sentimen
pada twitter menggunakan metode Naïve Bayes Classifier (studi kasus pemilihan gubernur dki
Jakarta 2017)” penelitian ini bertujuan untuk melakukan analisis sentimen terhadap calon
Gubernur dan Wakil Gubernur DKI Jakarta tahun 2017 , dengan menggunakan metode Naïve
Bayes. Penelitian ini menggunakan Twitter API pada library Tweepy mengumpulkan data.
Dengan menggunakan kata kunci berupa akun calon Gubernur dan Wakil Gubernur DKI Jakarta
tahun 2017, pengambilan sampel dengan jangka waktu tertentu serta dengan jumlah tertentu,
dengan melakukan pengambilan atribut isi teks, tanggal dan id user kemudian menambahkan
atribut sentimen dan akun. Kemuadian tahap selanjutnya melakukan praproses yaitu
mengubah kata tidak baku menjadi baku dengan normalisasi, menghilangkan tanda baca dan
symbol, menghilangkan angka, stemming data dengan menghilangkan imbuhan pada setiap
kata, dan penghapusan stopword. Kemudian masuk ke tahap prediksi sentimen menggunakan
metode Naïve Bayes, yang berguna untuk dihitung jumlah sentimen negatif, sentimen positif,
Penelitian ke dua oleh Fauziah Afshoh dengan penelitian “Analisis Sentimen dengan
menggunakan metode Naïve Bayes untuk melihat persepsi masyarakat terhadap kenaikan
harga jual rokok pada media sosial twitter”. Melakukan analisa sentimen dengan
mengklasifikasikan sentimen menjadi positif, negatif dan netral berguna untuk mengetahui
tanggapam masyarakat pada media sosial twitter perihal kenaikan harga jual rokok
6
menggunakan metode Naïve Bayes Classifier. Sentimen positif paling banyak terbentuk dalam
penelitian ini, menggunakan data latih 150 positif, 150 negatif dan 50 netral.
Penelitian ketiga oleh Oke Dwiraswati1, dan Kemal Nazaruddin Siregar “Analisis Sentimen
Pada Twitter Terhadap Penggunaan Antibiotik Di Indonesia Dengan Naïve Bayes Classifier”.
rancangan analisis sentimen pada pengguna antibiotik . Tahapan yang dilakukan adalah
mengumpulkan data pada twitter, preprocessing data, menggunakan algoritma naïve bayes
dalam proses pengklasifikasian, serta performa evaluasi. Dengan 10-fold cross validation
didapatkan dengan rincian precission 88%, rata-rata nilai akurasi sebanyak 84%, f-measure 84%
dan recall 81% dengan menggunakan 200 tweet (100 negatif,100 positif), dengan
perbandingan data latih:data uji = 9:1. Disimpulkan penggunaan antibiotik di Indonesia dapat
dilakukan dengan metode Naive Bayes Classifier untuk melakukan analisis sentimen.
Pertimbangan untuk menentukan cara kampanye penggunaan antibiotic yang tepat merupakan
7
1. Tabel kajian penelitian terdahulu
Dari penjelasan di atas dan dilihat pada tabel 1.1 berikut diharapkan dapat mempermudah untuk mengetaui persamaan dan perbedaan pada
Judul artikel Analisis Sentimen Pada Analisis Sentimen Analisis Sentimen Analisis Sentimen Analisis Sentimen
Twitter Terhadap Pasca Pemilihan Pada Twitter Menggunakan Naive Menggunakan
Penggunaan antibiotik Umum Indonesia Menggunakan Bayes Untuk Melihat Metode Naïve Bayes
di Indonesia Dengan tahun 2019 melalui Metode Naive Bayes Persepsi Masyarakat Pada Pemberlakuan
Naive Bayes Classifier Twitter dengan (Studi Kasus Terhadap Kenaikan Pembatasan
Metode Naive Bayes Pemilihan Gubernur Harga Jual Rokok Kegiatan
DKI JAKATA 2017) Pada Media Sosial Masyarakat(PPKM)
Twitter
Bulan, tahun 1 Tahun 2019 November 2019 Agustus 2017 Januari 2017
Terbit
8
Tabel 1.2 Lanjutan Tabel kajian penelitian terdahulu
Masalah Masih ditemukan Mendeskripsikan dan Dibutuhkannya Melakukan analisa Bagaimana menguji
Peneitian perilaku yang salah menggambarkan analisis sentimen untuk keakuratan metode
dalam penggunaan topik-topik yang tentang opini publik melihat persepsi Naïve bayes yang
antibiotik sehingga dibahas oleh pada pasangan cagub masyarakat diterapkan pada
menjadi risiko pendukung dan dan cawagub Pilkada terhadap kenaikan Perberlakukan
terjadinya resistensi masyarakat Indonesia DKI Jakarta 2017. harga jual rokok Pembatasan
antibiotik, diantaranya: mengenai pasangan pada media sosial Kegiatan
peresepan antibiotik calon presiden dan twitter Masyarakat untuk
secara berlebihan oleh wakil presiden Jokowi- menggunakan menentukan analisis
tenaga kesehatan; Ma’ruf Amin dan metode Naïve Bayes sentimen.
adanya anggapan yang Prabowo Subianto- Classifier dengan
salah di masyarakat Sandiaga Salahudin mengklasifikasikan
bahwa antibiotik Uno. sentimen menjadi
merupakan obat dari positif, negatif dan
segala penyakit; dan netral
lalai dalam
menyelesaikan
treatment antibiotic
Metode/Teori Naive Bayes Classifier Naive Bayes Classifier Naïve Bayes Classifier Naïve Bayes Naïve Bayes
(NBC). (NBC). Classifier Classifer
9
Tabel 1.3 Lanjutan Tabel kajian penelitian terdahulu
Objek Penelitian Tenaga kesehatan dan Tweet pendukung dan Pengguna internet Masyarakat Perberlakukan
Masyarakat. masyarakat Indonesia (tiwtter, blog, mailing penggna media Pembatasan
terhadap pasangan list, microblogging,dll) social Kegiatan
calon presiden Joko Masyarakat
Widodo dan Prabowo Yogyakarta (PPKM)
Subianto pasca
Pemilihan Umum
2019 di platform
Twitter
Hasil Penelitian diperoleh nilai rata-rata memiliki pola persepsi diperoleh akurasi data menghasilkan Lebih banyak
akurasi 84% dengan negatif sebesar 52% uji sebesar 60.60% sentimen positif masyarakat yang
rincian precission 88%, persepsi positif yaitu dengan tingkat paling banyak beropini netral
recall 81% dan f- 18% dan Persepsi sensitifitas tertinggi terbentuk dalam dibandingkan positif
measure 84% dengan netral memiliki nilai terdapat pada kelas menanggapi wacana dan negatif pada
jumlah 200 tweet (100 31% lebih tinggi dari positif dan spesifisitas kenaikan harga jual pelaksanaan Ppkm
negatif,100 positif) persepsi positif. tertinggi terdapat rokok. Hasil dari Yogyakarta.
dibagi ke dalam data Tingkat akurasi pada kelas netral. pengujian kinerja
latih:data uji = 9:1 klasifikasi Naive Bayes sistem
terhadap dataset menggunakan data
training bernilai 81% latih 150 positif, 150
dan dataset testing negatif dan 50
76%,nilai precision netral dengan
untuk sentimen positif metode Naïve Bayes
86,65%, sentimen Classifier.
negatif 77,15%, dan
netral bernilai 80,95%.
10
B. Landasan Teori
1. Data mining
Data mining merupakan proses untuk mendapatkan informasi penting dari suatu
dan lain sebagainya merupakan Beberapa teknik untuk mendapatkan Informasi penting
tersebut. Dari teknik tersebut selanjutnya mengekstraksi dari suatu database besar serta
Definisi lain dari Han and Kamber (Han dan Kamber, 2006) mengatakan data mining
merupakan suatu proses yang dapat mengubah data mentah menjadi suatu pola tertentu
dari penemuan pengetahuan dalam database (KDD) sehingga dapat menjadi informasi
yang penting dibutuhkan oleh pengguna sebagai pengetahuan. Urutan dari langkah-
1. Data cleaning merupakan kegiatan untuk menghilangkan noise (symbol dan tanda
2. Data integration merupakan data yang terdapat dari berbagai database digabungkan
3. Data selection merupakan kegiatan mengambil data yang sesuai kemudian data
pola data.
11
6. Pattern evaluation merupakan langkah mengidentifikasi pola-pola menarik kedalam
kepada pengguna dengan langkah visualisasi serta teknik menyajikan knowledge hasil
2. Text mining
Text mining merupakan sebuah proses pengambilan informasi dari data tekstual
serta memiliki kualitas tinggi dan berfungsiuntuk mengetahui dalam teks dari sebuah
topik tertentu memiliki permasalahan atau tidak. Sehingga Text mining dalam analisa
2015). Nama lain dari Analisa sentimen adalah opinion mining merupakan beberapa
komponen yang di sajikan dalam sebuah teks, komponen tersebut yaitu pendapat,
sentimen, sikap, serta emosi. Melakukan analisa sentimen mendapatkan hasil dengan
membagi sentiment menjadi 3 jenis atau kategori yaitu sentimen positif, negatif dan
netral.
Teknik pembelajaran dari text mining untuk analisa sentimen salah satunya yaitu
Naïve Bayes Classifier. Metode Naïve Bayes Classifier merupakan metode yang baik di
gunakan untuk klasifikasi dalam komputasi dan akurasi data karena merupakan metode
yang berpotensi baik dalam hal akurasi dan komputasi serta dapat memprediksi nilai
variabel yang terdapat dalam data testing. Oleh karena itu dalam penelitian ini untuk
Kegiatan Masyarakat (PPKM) dalam twitter. Serta untuk mengetahui prediksi dari
masyarakat apakah banyak yang berpendapat atau beropini positif, negatif, ataupun
netral. Dari hasil prediksi tersebut pemerintah dapat melihat tanggapan masyarakat pada
12
saat Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM) berlangsung saat pandemi
Covid19 dan penelitian ini dilakukan untuk mengetahui akurasi klasifikasi sistem
3. Analisis sentimen
Analisis Sentimen adalah bagian dari text mining. Analisis Sentimen juga menjadi
projek yang paling utama bagi orang-orang yang baru belajar machine learning
Tujuan Analisis sentimen adalah teks, kalimat, fitur, aspek yang terdapat pada
terdapat dalam dokumen berupa kalimat atau fitur aspek bersifat positif, negatif
atau netral. Sentimen analisis dapat memberikan emosional sedih, gembira, atau marah.
Manfaat dari Analisis Sentimen yang bisa di ambil adalah untuk mengetahui pendapat
masyarakat atau public mengenai suatu kepuasan pelayanan, isu, memprediksi suatu
Ada beberapa cara untuk melabelkan data salah satu cara pelabelan yaitu
dengan bantuan aplikasi dan dengan cara manual, pelabelan sentimen dengan aplikasi
untuk mendapatkan sentimen. Angka ranting 1 dan 2 merupakan kelas sentimen negatif,
4 dan 5 merupakan kelas sentimen positif, dan angka 3 merupakan kelas sentimen
ambigu. Ketika melakukan crawling dan tidak terdapat ranting pelabelan dapat dilakukan
13
secara manual yaitu dengan memberikan ke pada beberapa orang untuk dilakukan
pelabelan sentimen pada data. Dan ketika data berjumlah banyak semisal data berjumlah
3000 tetap bisa dilakukan pelabelan secara manual tanpa harus melabelkan satu persatu
yaitu dengan cara 500 data kita labelkan kelas sentimen terlebih dahulu, kemudian 500
data tersebut dijadikan data training dan sisa 2500 data dijadikan data uji dengan
membagi 5 tahap, masing-masing tahap berjumlah 500 data. Tahap pertama data uji
berjumlah 500 yang belum dilabelkan di gabungkan ke data training berjumlah 500 yang
telah dilabelkan kelas sentimen. Sehingga data yang telah di labelkan berjumlah 1000,
4. Data preprocessing
Dalam tahapan ini merupakan tahapan awal untuk mengolah data, dalam tahapan ini
terdapat beberapa metode yaitu case folding, tokenizing, stopword dan stemming,
a) Case folding yaitu merubah kata yang awalnya merupakan huru besar menjadi huruf
b) Tokenizing yaitu pemisahan teks data kedalam beberapa kata dan menghilangkan
delimitie yaitu symbol dan menghilangkan tanda baca yang terdapat pada teks sepeti
tanda titik (.), tanda seru (!), tanda koma (,), tanda tanya (?), @, $, &, spasi dan
c) Stopword Removal yaitu menghapus kata yang tidak penting serta tidak perlu pada
teks. Kemudian kosa kata yang tidak penting tersebut disimpan didalam stoplist atau
14
5. Klasifikasi
Klasifikasi berfungsi untuk menyatakan suatu objek data sebagai salah satu
seorang ahli (pakar) Model pada klasifikasi dapat dibangun. Himpunan kata yang terdapat
pada model klasifikasi data yang berukuran besar membutuhkan atau sering
memasukan objek data x (input) ke salah satu data y yang sebelumnya sudah disefinisikan.
Proses pembelajaran memerlukan input (masukan) seperti data data latih (training set)
yang memiliki atribut kelas (berlabel) dan mengeluarkan output berupa sebuah model
dan sebagainya.
Definisi 2.1 (Bain & Engelhardi, 1992) Probabilitas bersyarat dari ø, bila X diketahui,
𝑃(𝑃 𝑛 𝑋)
𝑃 (∅|𝑋) = , 𝑗𝑖𝑘𝑎 𝑃(𝑋) > 0.
𝑃(𝑋)
Menurut (Bain & Engelhardi 1992) dari pemodelan probabilitas bertujuan untuk
dilakukan. Dalam banyak kasus probabilitas yang menggunaka ∅ di pengaruhi oleh tidak
terjadinya peristiwa X lainnya. Dalam peristiwa seperti itu dapat dilakukan terminology
“probabilitas bersyarat dari ∅ jika diberikan X”, dan notasi 𝑃 (∅|𝑋) berfungsi untuk
15
membedakan antara konsep dari probabiitas bersyarat ini dengan probabilitas biasa
(𝑃 (∅).
pada Teorema Bayes. Dengan menggunakan metode probabilitas dan statistik sehingga
pengklasifikasian pada algoritma ini yang dikemukakan oleh ilmuwan Inggris Thomas
Bayes, yaitu dengan melihat pengalaman di masa lalu sehingga dapat memprediksi
peluang di masa dan di kenal sebagai Teorema Bayes. Asumsi yang sangat kuat (naïf)
independensi dari masing-masing kondisi atau kejadian merupakan ciri utama dari Naïve
Bayes Classifier.
otomatis sehingga Naïve bayes dapat mendeteksi atau menyaring spam dan
mengklasifikasikan dokumen berbentuk teks seperti teks berita Sebagai metode machine
learning. Tidak memerlukan data yang berjumlah banyak serta tidak perlu melakukan
data training yang banyak untuk bisa memakai data kuantitatif maupun kualitatif dan Jika
ada nilai yang hilang, maka bisa diabaikan dalam perhitungan. Jika digunakan kedalam
Naïve Bayes Classifier setiap tweet di notasikan dalam bentuk pasangan variabel
(x1, x 2, x3, ….., xn) dimana x1 adalah kata petama, x2 adalah kata kedua, x3 adalah kata
kelas. Tahapan klasifikasi pada Naïve Bayes Classifier dilakukan setelah tahap
16
preprocessing, sehingga data yang digunakan pada tahapan ini sudah besih. Ada empat
proses yang dilakukan pada tahapan klasifikasi tersebut yaitu (Nugroho dkk, 2016):
Proses ini merupakan proses awal dalam tahapan klasifikasi Naïve Bayes
Classifier, variabel yang dimaksud adalah tweet (komentar) dari twitter yang
diklasifikasi dalam kelas sentimen yaitu positif, negatif, atau netral, dengan
𝑛(𝑣𝑗)
P (vj) = (2.1)
𝑛(𝑆)
N(vj) adalah jumlah kelas pada vj, dan n(s) adlaah jumlah semua kelas yang digunakan
Pada proses ini, probabilitas kata pada setiap masing masing kelas dapat di
𝑛+1
P (v j) = (2.2)
𝑛+𝑓𝑘
N 1 adalah jumlah kemunculan kata x1 dan fk adalah jumlah semua kata pada proses
training.
17
d. Perhitungan 𝑉𝑚𝑎𝑝
probabilitas yang paling tinggi (𝑉𝑚𝑎𝑝) dari data uji masing masing kelas dengan
menggunakan pasangan variable (𝑥1, 𝑥2, 𝑥3, … . . , 𝑥𝑛). Berikut merupakan rumus dari
(2.3)Bedasarkan teorma Bayes pada persamaan (2.1) maka persamaan (2.3) dapat
Bedasarkan sifat kesebandingan, 𝑃(𝑥𝑖, 𝑥2, 𝑥3, … . . , 𝑥𝑛) bernilai konstan makan
Dapat di ambil kesimpulan rumus dari 𝑉𝑚𝑎𝑝 dapat disajikan dalam persamaan
berikut:
18
BAB III
METODE PENELITIAN
A. Objek Penelitian
Objek pada penelitian ini yaitu Analisis sentimen pada proses pelaksanaan
Dalam penelitian ini data yang dibutuhkan berupa data sentimen masyarakat pada
1. Crawling
Pada penelititan ini proses pengambilan data dilakukan dengan crawling data tweet pada
twitter. Metode ini dilakukan menggunakan bahasa pemrograman Python dan API Twitter.
Memberikan kata kunci @ppkm Yogyakarta, pengumpulan data tweet dengan mengambil
sampel pada 3 September 2021 sampai dengan 14 September 2021. Kemudian data yang
telah diTarik atau didapat disimpan ke dalam bentuk excel. Metode ini dilakukan untuk
mendapatkan data pada twitter sehingga memperoleh data yang peneliti butuhkan dan
pengumpulan data:
19
Gambar 3.1 Proses Pengumpulan Data Twitter
2. Pelabelan data
Pada penelitian ini dilakukan pelabelan data secara manual dengan membagikan
data yang telah diperoleh kepada sebelas orang dalam bentuk excel spreadsheet,
kemudian sebelas orang tersebut memberikan pelabelan terhadap data yang telah di
siapkan yaitu 10 orang 45 data dan 1 orang 51 data. Pelabelan dilakukan dengan
memberikan kelas sentimen positif, negatif atau netral pada data yang telah disiapkan.
Dengan pengisian secara bertahap contoh orang pertama mengisi sebanyak 45 data ,
setelah itu orang kedua mengisi 45 data sampai orang ke 10, kemudian orang ke 11
mengisi 51 data. Sehingga dalam proses pelabelan manual diperoleh kelas sentimen
neutral sebanyak 330 data, sentimen positif sebanyak 141 data, dan sentimen negatif
20
Gambar 3.2 Proses Pelabelan Data Twitter
1. Preprocessing
Preprocessing bertujuan untuk membersihkan data awal atau data simulasi yang
didapat dari hasil crawling, serta menghindari gangguan data atau data yang kurang
sempurna dan data data yang tidak konsisten. Tahap ini terdiri dari proses cleaning,
tokenization, stopremoval, casefolding dan stemming seperti yang telah di bahas pada
21
Gambar 3.4: Proses Preprocessing
2. Klasifikasi
kedalam Naïve Bayes. Dimulai dari memasukan data tweet yang telah dipreprocessing
untuk di uji sampai mendapatkan hasil akhir klasifikasii tweet. Flowchart dapat dilihat
22
Gambar 3.5: Proses Klasifikasi
D. Tahapan Penelitian
Tahapan penelitian dapat dilihat pada gambar 3.1 tahap penelitian berikut:
23
Metode analisa data yang digunakan adalah Naïve Bayes Classifier , kemudian
1. Mempelajari hal hal yang berkaitan dengan analisis sentimen, Teorma Bayes, Naïve Bayes
Classifier.
2. Mengumpulkan data dengan melakukan crawling pada twitter dengan menggunakan kata
3. Melakukan pembersihan data dengan melakukan tahapan text processing pada data yang
di peroleh tersebut.
4. Membagi data yang diperoleh menjadi dua yaitu data latih (training) dan data uji (testing).
5. Melakukan klasifikasi data latih yang berguna untuk mengetahui kategori dari text dengan
data uji.
7. Dari data yang diperoleh kemudian dihitung tingkat keakurasian dengann menggunakan
E. Spesifikasi Kebutuhan
b. Python
c. Google Chrome
24
d. Jupyter Notebook
Perangkat keras yang dibutuhkan pada penelitian ini yaitu laptop dengan
b. RAM : 4 GB
F. Studi Kasus
Data yang digunakan sebanyak 3 data latih yang didapatkan dari twitter dengan
crawling. Sebelum data latih digunakan, dilakukan terlebih dahulu tahap pre-processing
untuk mendapatkan data bersih. Tahapan yang dilakukan antara lain cleaning, tokenizing,
stop removal, case folding, dan stemming, pada gambar 3.6 Berikut merupakan data latih
jogja
Jogja ada ppkm gak sih, udah
ppkm
lama nggak naik pesawat 😂
pesawat
Dapat dilihat pada gambar 3.6. data sebelum pre-processing yaitu “Jogja ada
ppkm gak sih, udah lama nggak naik pesawat 😂”, pada data tersebut masih memiliki
kata yang tidak penting seperti “ada”, “gak”, “sih”, “,” ,“udah”,”lama”,”nggak”,”naik”,
25
dan pada proses preprocessing semua kata yang tidak penting tesebut di
Berikut ini merupakan data latih 2 sebelum dan setelah dilakukan Pre-processing.
jogja
@schfess jogja we ppkm msih
level 4 og ppkm
level 4
Pada Gambar 3.7. Data latih 2 sebelum preprocessing yaitu “@schfess jogja we
ppkm msih level 4 og” ,pada data tersebut masih memiliki kata yang tidak penting yaitu
1. Dilakukan proses pembentukan fitur pada data latih, menentukan probabilitas kelas dan
menghitung nilai probabilitas. Pembentukan fitur pada masing-masing data latih dapat
ppkm 1 Positif
pesawat 1 Netral
D2 jogja 1 Positif
26
ppkm 1 Netral
level 4 1 Positif
Pada Tabel 1.5.Hasil Pembentukan Fitur Data Latih tedapat kolom data, fitur,
kemunculan dan kelas sentimen, dan maksud dari D1, D2 dari data yaitu data 1 dan data
2, kemudian fitur yaitu hasil kata dari data simulasi yang telah melalui proses
preprocessing. Kemunculan angka satu merupakan berapa jumlah kemunculan kata atau
fitur yng tedapat pada Gambar 3.2 dan Gambar 3.3, dan kelas sentimen yaitu pelabelan
2. Menghitung probabilitas kemunculan kata di setiap kelas pada data latih. Hasilnya dapat
Dapat dilihat Tabel 1.6. Frekuensi Kemunculan Kata terdapat kelas sentimen yaitu
positif, negatif, dan netral. Terdapat Data (j) yang bermaksud sebagai hasil jumlah dari
kemunculan kelas sentimen pada data 1 dan data 2, kemudian Fd (cj) yang merupakan jumlah
dari Data (j) dan p (cj) merupakan pembanding utuk Data (j) dan Fd (cj). Dapat dilihat pada
tabel 1.6 terdapat kelas sentimen positif yang memiliki Data (j) di D1 (data1) sebanyak 1 dan
D2 (data2) sebanyak 1, dan begitu pula dengan kelas sentimen negatif dan netral, sehingga
pada Fd (cj) berjumlah 2 karena pada kemunculan kata positif D1 dan D2 masing-masing satu
sehingga p (cj) ditulis 2/2 karena hasil dari Fd (cj) 2 dan jumlah data yaitu 2 (D1 dan D2),
27
3. Setelah di dapatkan probabilitas dari setiap kelas, selanjutnya menghitung probabilitas
Dapat dilihat Tabel 1.7.Probabilitas Tiap Fitur Pada Kelas Sentimen terdapat Data
f (wki,ci) yang bermaksud sebagai hasil data latih 1 dan data latih 2 sesudah preprocessing.
Kata pada data laith satu yaitu jogja, ppkm, pesawat, dan kata pada data latih 2 yaitu jogja,
ppkm, level 4 terdapat kelas sentimen yaitu netral, positif dan negatif. Cara mendapatkan
hasil hitungan dari ketiga sentimen tersebut yaitu dengan melihat kemunculan pada Tabel
1.5.Hasil Pembentukan Fitur Data Latih. Kata jogja D1 pada Tabel 1.5 terdapat
kemunculan 1 kelas sentimen positif dan D2 terdapat 1 kelas sentimen netral yang
diperoleh dari kemunculan pada Tabel 4.10, sehingga pada tabel kelas sentimen jogja
lainnya.
4. Menentukan probabilitas pada data latih dengan melakukan pehitungan dari masing-
masing kelas berdasarkan proses pelatihan. Sentimen dari data tweet merupakan nilai
28
Ppkm
warga
Pada Gambar 3.4 Data Testing 1 Sebelum dan Setelah Pre-processing tedapat
kalimat “ masa ppkm level4 jogja panjang pemda segera jalur bansos bagi warga” sebelum
preprocessing dan setelah melalui tahap preprocessing pada kalimat data uji tersebut
Berdasarkan kemunculan dari frequency setiap kata yang terdapat dalam tweet
pada data training yang telah melalui proses klasifikasi terlebih dahulu kedalam kelas
sentimen positif, negatif dan netral makan hasil dari pembentukan variabel data training
No Sentimen Ada Aja Bangjun Bgt Dufan Daftar Jogja Lama Ppkm
1 Netral 1 0 1 0 0 0 1 1 1
3 Positif 0 0 0 0 0 0 1 0 1
4 Netral 0 1 0 0 1 0 1 0 1
6 Netral 1 0 0 1 0 0 1 1 1
7 Positif 0 0 0 0 0 0 1 0 1
8 Positif 0 0 0 0 1 0 0 1
Dapat dilihat dari tabel 1.8 bahwa pada tweet pertama berlabel netral dan
terdapat kata ada, kata bangjun, kata jogja dan kata ppkm, yang memiliki frequency
29
kemunculan kata 1 yang artinya kata-kata tersebut terdapat pada tweet pertama, muncul
sebanyak 1 kali, dan terdapat kata aja, kata bgt, kata dufan, dan kata daftar, yang memiliki
kata bantu frequency kemunculan kata 0 artinya kata-kata tersebut tidak terdapat
Dapat dilihat pada proses pembetukan data training sebelumnya, telah diketahui
bahwa setiap sentimen pada tweet telah diklasifikasi menjadi tiga kelas sentimen yaitu
kelas positif, negatif dan netral. Dari setiap masing-masing kelas sentimen dihitung nilai
probabilitas dengan menggunakan persamaan pada (2.1). Adapun hasil dari probabilitas
setiap kelas dalam data latih dapat dilihat pada tabel dibawah ini:
Vj N(vj) P(vj)
Negatif 0 0
Netral 3 1
Positif 2 1,5
Dilihat pada Tabel 1.9: Hasil Probabilitas Data Latih tedapat tiga kolom yaitu Vj adalah
kelas sentimen yang terdapat pada Tabel 1.6. Frekuensi Kemunculan Kata, N (vj) yaitu
jumlah kemunculan kelas sentimen dan P (vj) adalah hasil dari jumlah kemunculan
sentimen di bagi data. Tabel Vj negatif sebanyak 0 di kolom N (vj) dan 0 di kolom P (vj), 0
di kolom P (vj) dikarenakan pada Tabel 1.6 dikolom P (cj) yaitu 0/2 sehingga diperoleh nilai
pada P (vj) sebanyak 0. Tabel Vj positif sebanyak 2 di kolom N (vj) dan 1 di kolom P (vj), 1
di kolom P (vj) dikarenakan pada Tabel 1.6. dikolom P (cj) yaitu 2/2 sehingga diperoleh
nilai pada P (vj) sebanyak 1, dan pada tabel Vj Netral sebanyak 3 di kolom N (vj) dan 1,5
30
di kolom P (vj), 1,5 di kolom P (vj) dikarenakan pada Tabel 1.6 dikolom P (cj) yaitu 3/2
7. Perhitungan VMAP
Perhitungan VMAP pada data uji dilakukan untuk mendapatkan nilai probabilitas
paling tinggi di setiap masing-masing kelas sentimen. Nilai tertinggi tersebut diperoleh
dari kelas sentimen tweet pada data set berdasarkan nilai-nilai yang diperoleh pada data
train. Proses pebentukan data test seperti proses pembentukan data train. Berikut
P (“jogja” | positif)
2 2 2 1 2
= 𝑋 𝑋 𝑋 𝑋 = 0,5714285714
2 14 14 14 14
P (“jogja” | negatif)
0 1 1 1 1
= 𝑋 𝑋 𝑋 𝑋 =0
2 15 15 15 15
P (“jogja” | netral)
3 1 1 1 2 1
= 𝑋 𝑋 𝑋 𝑋 𝑋 = 0,2727272727
2 11 11 11 11 11
31
Dapat dilihat pada perhitungan vmap positif sebanyak 0,5714285714,
pehitungan vmap kelas negatif sebanyak 0 dan perhitungan vmap pada kelas netral
Tabel 1.6 yaitu 2/2 pada kelas sentimen positif sehingga untuk perhitungan vmap
pada kelas sentimen positif dengan rumus “Vmap (positif) = P (“positif”) P (“ppkm” |
2 2 2 1 2
positif) P(“level4” | positif) P(“jogja” | positif)”= 𝑋 𝑋 𝑋 𝑋 mendapatkan
2 14 14 14 14
kemunculan kata P (cj) pada Tabel 1.6 yaitu 0/2 pada kelas sentimen negatif sehingga
untuk perhitungan vmap pada kelas sentimen negatif dengan rumus Vmap(negatif)
0 1 1 1 1
X X X X . Mendapatkan hasi sebanyak 0 dan pada kelas sentimen netral
2 15 15 15 15
banyaknya kemunculan kata P (cj) pada Tabel 1.6 yaitu 3/2 pada kelas sentimen
netral sehingga untuk perhitungan vmap pada kelas sentimen netral dengan rumus
3 1 1 1 2 1
= 𝑋 𝑋 𝑋 𝑋 𝑋 , sehingga mendapatkan hasil sebanyak
2 11 11 11 11 11
0,2727272727.
a. Confusion Matrix
Confusion Matrix pada penelitian ini berfungsi untuk menghitung akurasi dari
model klasifikasi yang telah dibangun pada proses Naïve Bayes dengan
membandingkan hasil pelabelan y_test dengan x_test hasil prediksi. Adapun hasil
dari confunsion matrix yang diperoleh dengan menggunakan bantuan software pyton
32
Tabel 4.15 Evaluasi Model Tiga Kelas
Naïve bayes
330 141 30
Dilihat dari tabel 4.18 dapat disimpulkan bahwa kondisi tweet hasil
pelabelan menggunakan metode naïve bayes pada kelas netral dari pelabelan
menggunakan metode naïve bayes pada kelas positif sebanyak 141 tweet dan
tweet, dengan demikian nilai dari confusion matrix dari tabel 4.18 adalah :
1 0 0
0 12 0 = ConfusionMatrix
0 1 6
Dilihat dari confusion matrix diatas, bahwa hasil akurasi dari model
klasifikasi pada analisis sentimen ini berdasarkan pada persamaan (2.4) adalah:
1+12+6
=
20
19
=
20
= 0.95
33
Dengan presentase masing-masing kelas sentimen yaitu kelas netral
sebesar 64.49%, kelas positif sebesar 28.37% dan kelas negatif sebesar 6.12 %.
b. Akurasi Terbaik Dari Perbandingan Data Training dan Data Testing beserta
Visualisainya
Pada penelitian ini perbandingan data training dan data testing yang
akurasi, sehingga untuk hasil akhir dari masing-masing pembagian data training
Tabel 4.19 Akurasi Terbaik Perbandingan Data Testing dan Data Training
Pada coufusion matrix semakin besar tingkat akurasi yang diperoleh maka
semakin bagus model yang digunakan pada data training tersebut. Dilihat pada
tabel 4.19 pembagian data training dan data testing sebesar 70%:30% sehingga
memiliki akurasi paling besar. Pembagian inilah yang ideal untuk proses training.
34
BAB 4
Hasil dan Pembahasan
Penelitian ini menggunakan dua data yaitu data input dan data output. Data input
tediri dari data tweet Dan data output tediri dari data sentimen yang sudah mengalami tahap
pengklarifikasian kedalam tiga kelas sentimen yaitu positif, negatif dan netral. Data input dan
output dipeoleh dengan melakukan crawling pada Twitter. Data yang telah diperoleh
kemudian dilabelkan secara manual yaitu dengan mengirimkan kepada sebelas orang untuk
diisikan pelabelan dari data sentimen. Data training dan data testing yang telah dibagi pada
penelitian ini adalah 70%: 30%. Berikut adalah dataset dari Pemberlakuan Pembatasan
Kegiatan Masyarakat (PPKM), data training dan data testing yang digunakan untuk simulasi.
No Tweet Sentimen
0 Jogja ada ppkm gak sih, udah lama nggak naik Netral
pesawat 😂
1 -11fess ada yang selama ppkm jogja-solo pake krl? Netral
harus pake surat tugas bgt ya?
2 RT @Papah_Pandasu: Halo twitter, aku mau Positif
promosi rental studio ku di jogja. lagi ada promo
diskon 50% untuk rental. PPKM cukup
berpengaruh…
3 @bangjuunn_ Bangjun, gue pengen meet up sama Positif
mutualan yang di jogja
35
Tabel 4.2: Lanjutan Dataset Simulasi
No Tweet Sentimen
1 -11fess ada yang selama ppkm jogja-solo pake krl? Netral
harus pake surat tugas bgt ya?
3 @bangjuunn_ Bangjun, gue pengen meet up sama Positif
mutualan yang di jogja
4 Sejak ppkm aku ga kerja... Trs balik jogja ngekos Negatif
lagi... Bikin jd sering mita uang saku ke emak... Ya
Allah, aku k… https://t.co/teUpEQxKFi
6 @gooners303 @EkoSatriyoP @Brajamusti_YK Positif
Mantap mas.... mudah mudah jogja sudah bisa
turun level ppkm nya selamat mi…
https://t.co/scqb19d4x2
7 @velisia_pd wkwkwkwk tunggu PPKM turun level Positif
ya, ku tunggu kamu di Jogja ��
8 @rainaldylomri Kalau PPKM dan pandemi udah Netral
usai, cuman pengin ke Wonogiri (kampung
halaman) dan ke Jogja (rumah sah…
https://t.co/1qOsBTmhAU
No Tweet Sentimen
0 Jogja ada ppkm gak sih, udah lama nggak naik Netral
pesawat 😂
2 RT @Papah_Pandasu: Halo twitter, aku mau Positif
promosi rental studio ku di jogja. lagi ada promo
diskon 50% untuk rental. PPKM cukup
berpengaruh…
5 Jogja ngeriii.. Nggilani.. Negatif
PPKM bullshit
36
Listing 4.1 Crawling Data
37
Keterangan:
B. Tahapan Preprocessing
Setelah melakukan crawling data dan memperoleh data simulasi kemudian tahap
selanjutnya adalah pada data tesebut dilakukan tahap preprocessing yaitu sebelumnya telah
dijelaskan pada landasan teori pada subbab 2.2, maka dari tahapan preprocessing dapat
disimpulkan hasil dari data simulasi, data training, dan data testing dapat dilihat pada tabel
berikut ini:
38
Tabel 4.6: Data Training Setelah Preprocessing
1 jogja ada ppkm gak sih udah lama nggak naik p Netral
esawat
3 bangjun gue ken meet up sama mutualan yang Positif
di jogja tapi masih ppkm terus
4 pgn ke jogja lagi ppkm pgn ke dufan tapi tutup Netral
ya allah kapan aku bisa libur sedikit aja
6 11fess ada yang lama ppkm jogjasolo pake krl h Netral
arus pake surat tugas bgt ya
7 mantap mas mudah mudah jogja sudah bisa tu Positif
run level ppkm nya selamat mi
8 tawar usaha sini kembali lagi program kami sup Positif
port umkm saat ppkm daftar usaha lalu wa 62
8953
1 # Read Dataset
data = pd.read_excel('D:\SKRIPSI MARYAM\DATA
SKRIPI\ppkm_revisi.xlsx')
# data = pd.read_excel('ppkm joga.xlsx')
data.head() #mengecek 5 baris data paling atas
2 df = data[['DATA SENTIMEN ( TWEET DARI TWITTER)',
'SENTIMEN']].copy()
df.rename(columns={'DATA SENTIMEN ( TWEET DARI
TWITTER)':'komentar', 'SENTIMEN':'label'}, inplace=True)
print('Ukuran Dataset: ', df.shape)
df
3 print('Data set size:',df.shape)
print('columns are:',df.columns)
4 # cleaning data
def clean_tweet(tweet):
""" cleaning tweet
39
source code:
https://www.machinelearningplus.com/python/python-regex-
tutorial-examples/
"""
tweet = re.sub('http\S+\s*', '', tweet) # remove URLs
tweet = re.sub('pic\.\S+', '', tweet) # remove picture twitter URLs
tweet = re.sub('RT|cc', '', tweet) # remove RT and cc
tweet = re.sub('#\S+', '', tweet) # remove hashtags
tweet = re.sub('@\S+', '', tweet) # remove mentions
tweet = re.sub('[%s]' % re.escape("""!"#$%&'()*+,-
./:;<=>?@[\]^_`{|}~"""), '', tweet) # remove punctuations
tweet = re.sub('\s+', ' ', tweet) # remove extra whitespace
return tweet
5 df['komentar'] = df['komentar'].apply(lambda x:clean_tweet(x))
for i in range(9,11):
print(f"Contoh sebelum cleaning:\n\t{data['DATA SENTIMEN (
TWEET DARI TWITTER)'][i]}")
print(f"Contoh setelah cleaning:\n\t{df['komentar'][i]}\n")
6
#tokenization
def tokenization(tweet):
tweet = re.split('\w+', tweet)
return tweet
df['TOKENIZATION'] = df['komentar'].apply(lambda x:
tokenization(x.lower()))
df.head(5)
7 #stop removal
import nltk
nltk.download('stopwords')
stopword = nltk.corpus.stopwords.words('indonesian')
def remove_stopwords(text):
text = [word for word in text if word not in stopword]
return text
df['STOP_REMOVAL'] = df['TOKENIZATION'].apply(lambda x:
remove_stopwords(x))
df.head(5)
8 #case folding (mengubah huruf menjadi kecil)
df['komentar'] = df['komentar'].str.lower()
df['label'] = df['label'].str.lower()
df['TOKENIZATION'] = df['TOKENIZATION'].str.lower()
df['STOP_REMOVAL'] = df['STOP_REMOVAL'].str.lower()
df.head(5)
9 # Membuat stemmer
#stemming di gunakan untuk mengubah kata menjadi kata dasar
#menghilangkan kata imbuhan
40
stemmerFactory = StemmerFactory()
stemmer = stemmerFactory.create_stemmer()
# Daftar Stopword
stopWordRemoverFactory = StopWordRemoverFactory()
stopwords = stopWordRemoverFactory.get_stop_words()
10 #menampilkan data steamming
df['komentar'] = df['komentar'].apply(lambda x: stemmer.stem(x))
Keterangan:
41
13. Baris 13 untuk memisah label yang merupakan data training dan data testing.
C. Transformasi Data
Transformasi data yang diperlukan sebagai tahap preprocessing, data yang sudah
dibersihkan kemudian diubah menjadi fitur. Setelah di Transformasi menjadi data yang
siap di olah, hasil data yang terlah didapat kemudian di encode kedalam bentuk biner
sehingga dapat dibaca oleh komputer dan berfungsi sebagai transaksi dalam setiap data.
0 jogja ada ppkm gak sih udah lama nggak naik pesawat Neutral 0
pengaruh
3 pgn ke jogja lagi ppkm pgn ke dufan tapi tutup ya allah Neutral 0
berpeng
5 11fess ada yang lama ppkm jogjasolo pake krl harus Neutral 0
42
6 mantap mas mudah mudah jogja sudah bisa turun Positif 1
8 reposted from karna jadi dewasa tidak mudah apa lagi Positif 1
Keterangan:
43
6. Baris 6 mengubah data menjadi sekelompok binominal
kemudian tahap selanjutnya yaitu Naïve Bayes Classifier , dalam tahap ini data yang sudah
melalui tahap Preprocessing dan Transformasi kemudian akan di olah untuk memisahkan
data training dan data testing, membuat fungsi klasifikasi Naïve Bayes, memasukkan data
training kedalam fungsi Naïve Bayes, mendapatkan hasil prediksi data testing(x_test) dan
tampilan confussion matrix, menampilkan tampilan grafik data simulasi, grafik hasil akhir
array([ 1, 0, 0, 0, 0, 1, -1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1], dtype=int64)
Dapat dilihat pada Tabel 4.9 hasil prediksi dari x_test berupa binominal atau
array sehingga hasil prediksi dari data testing yaitu array 1 berjumlah 6, array 0 berjumlah
13 dan array -1 berjumlah 1. Keterangan dari arrany 1 yaitu data yang memiliki kelas
sentimen positif, 0 yaitu kelas sentimen netral dan -1 yaitu kelas sentimen negatif.
44
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size
= 0.2, random_state = 100)
3 from sklearn.naive_bayes import GaussianNB
# Mengaktifkan/memanggil/membuat fungsi klasifikasi Naive
Bayes
modelnb = GaussianNB()
# Memasukkan data training pada fungsi klasifikasi Naive
Bayes
nbtrain = modelnb.fit(X_train, Y_train)
4 # Menentukan hasil prediksi dari x_test
y_pred = nbtrain.predict(X_test)
y_pred
Keterangan:
3. Baris ke 3 untuk fungsi klasifikasi naïve bayes dan memasukan data training
array([ 1, 0, 0, 0, 0, 1, -1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0,
1, 0, 1], dtype=int64
Dapat dilihat pada Tabel 4.11 hasil prediksi dari y_pred berupa binominal atau
array sehingga hasil prediksi dari data training yaitu array 1 berjumlah 5, array 0 berjumlah
12 dan array -1 berjumlah 1. Keterangan dari arrany 1 yaitu data yang memiliki kelas
sentimen positif, 0 yaitu kelas sentimen netral dan -1 yaitu kelas sentimen negatif.
45
Listing 4.11 Hasil prediksi Y_Pred
1 np.array(Y_test)
Keterangan:
array([[ 1, 0, 0],
[ 0, 12, 0],
[ 0, 1, 6]], dtype=int64)
Pada Tabel 4.12 dapat dilihat hasi dari Confussion matrix mempunyai kolom dan
baris yaitu 3 x 3 dan memiliki baris ke-1 bernilai 1, kemudian baris ke-1 kolom ke-2
memiliki nilai 0 dan baris ke 1 kolom ke 3 memiliki nilai 0. Baris ke-2 kolom 1 yaitu bernilai
0, selanjutnya baris ke2 kolom ke-1 bernilai 12, dan baris ke-2 kolom ke-3 bernilai 0. Baris
ke-3 kolom 1 yaitu 0, selanjutnya baris ke-3 kolom ke-3 yaitu 1 dan baris ke-3 kolom ke-3
yaitu 6.
Keterangan:
46
Tabel 4.14 Hasil Akurasi
Accuracy 0.95 20
avg
avg
Dapat dilihat pada Tabel 4.14 Hasil Akurasi terdapat sentiment, precison, recall,
f1-score, support, accuracy, macro avg dan weighted avg. Precision yaitu akurasi antara
data dengan hasil prediksi yang diberikan oeh data. Recall yaitu keberhasilan model dalam
dan recall yang dibobotkan. Accuracy yaitu hasil ketepatanyang diberikan oleh data.
Macro avg yaitu hasil makroyang diberikan oleh data. Weighted avg yaitu hasil
pertimbangan yang diberikan oleh data .Sentimen 1 yang berarti positif, 0 adalah netral
dan -1 adalah negatf. Pada kolom Precision dengan kelas sentimen negatif (-1) sebanyak
1.00, kemudian pada kolom Recall sebanyak 1.00, pada kolom f1-score sebanyak 1.00 dan
Support sebanyak 1. Kolom Precision dengan kelas sentimen netral (0) sebanyak 0.92,
kemudian pada kolom Recall sebanyak 1.00, pada kolom f1-score sebanyak 0.96 dan
Support sebanyak 12. Kolom Precision dengan kelas sentimen positif (1) sebanyak 1.00,
kemudian pada kolom Recall sebanyak 0.86, pada kolom f1-score sebanyak 0.95 dan
Support sebanyak 7. Sehingga pada kolom f1-score akurasi sebanyak 0.96 dengan support
47
sebanyak 20. Macro avg pada kolom Precision sebanyak 0.97, pada kolom Recall
sebanyak 0.95, pada kolom F1-score sebanyak 0.96 dan Support sebanyak 20. Weighted
avg pada kolom Precision sebanyak 0.97, pada kolom Recall sebanyak 0.95, pada kolom
1 #akurasi
from sklearn.metrics import classification_report
print(classification_report(Y_test, y_pred))
Keterangan:
memperhatikan jumlah dari label pada masing-masing kelas sentimen pada saat
confusion matrix dari masing-masing pembagian data training dan data testing
48
Gambar 4.1 Hasil Sentimen Analisis PPKM YOGYAKARTA
Pada Gambar 4.1 Dapat dilihat bahwa di Yogyakarta pada rentan waktu
(PPKM) didominasi oleh sentimen netral yaitu tedapat 330 tweet berlabel netral,
49
Listing 4.1 Hasil Sentimen Analisis PPKM YOGYAKARTA
jumlah_sentiment = [329,141,30]
sns.barplot(sentiment,jumlah_sentiment)
ax.set_ylabel('jumlah')
ax.set_xlabel('Klasifikasi Sentiment')
plt.show()
50
Gambar 4.2 Hasil Klasifikasi Sentimen PPKM YOGYAKARTA
Sentimen berlabel positif sebesar 28.37% dan sentimen berlabel negatif sebesar
51
Listing 4.2 Hasil Klasifikasi Sentimen PPKM YOGYAKARTA
# Create a pieplot
plt.pie(size_of_groups)
plt.show()
Keterangan:
1. Baris 1 untuk menampilkan hasil klasifikasi sentimen dalam bentuk pie chart.
52
Bab 5
Penutup
A. Kesimpulan
Data tweet yang diperoleh dari twitter dengan melakukan crawling sebagai data
inputnya. Tweet yang telah didapat dibagi (klasifikasi) kedalam tiga kelas sentimen
yaitu netral, positif dan negatif. Hasil pengujian dari pembagian data training dan
data testing yaitu sebesar 70%:30%. Diperoleh akurasi sebesar 95% dengan data
tweet sebanyak 501. Data training sebanyak 450 dan data testing sebanyak 51 data.
netral sebanyak 64.49%, kelas sentimen positif sebanyak 28.37% dan kelas sentimen
berlabel negatif sebanyak 6,12%. Dapat disimpulkan bahwa banyak masyrakat yang
53
B. Saran
Berdasarkan hasil dari sentimen analisis dan kesimpulan diatas, sehingga saran
pelabelan manual.
Classifier, salah satu contoh metode yang dapat digunakan yaitu K-Nearest
54
DAFTAR PUSTAKA
Dwiraswati, O., Siregar, K. N., Pengawas, B., & Indonesia, U. (2019). Penggunaan
Naïve Bayes (Studi Kasus Pemilihan Gubernur Dki Jakarta 2017). 1–17.
Dwiraswati, O., Siregar, K. N., Pengawas, B., & Indonesia, U. (2019). Penggunaan
Naïve Bayes (Studi Kasus Pemilihan Gubernur Dki Jakarta 2017). 1–17.
Dwiraswati, O., Siregar, K. N., Pengawas, B., & Indonesia, U. (2019). Penggunaan
55
Antibiotik Di Indonesia Dengan Naive Bayes Classifier Sentimen Analysis
Naïve Bayes
Astari, N. M. A. J., Dewa Gede Hendra Divayana, & Gede Indrawan. (2020). Analisis
Mala Olhang, M. M., Achmadi, S., & Wibisono, F. . A. (2020). Analisis Sentimen
56
LAMPIRAN
57
Lampiran 1:
58
Lampiran 2:
Orang Jogja yang selama PPKM ini di rumah aja buat ngehindarin kerumunan kayaknya nangis liat Klebengan sama leseha… https://t.co/cvEky9Wzaf Neutral 21/09/01
#Jogja | Masa PPKM Level 4 DIY Diperpanjang, Pemda Segera Salurkan Bansos Bagi Warga Terd https://t.co/cY9AVIUzRL Neutral 21/09/01
Saran gedung/museum seni di jogja dong.... tadinya mau liat pameran seni di jogja gallery tapi tutup karna ppkm Neutral 21/09/01
@jogmfs Sek sek to... Iki sekolah endi? Jogja? Kok SD wis oleh sekolah offline? Isih ppkm level 4 lhoo... Trus se… https://t.co/HzcIPUaF5S Neutral 21/09/01
@undipmenfess Jogja msh PPKM Lv 4 trus wooii. Kpn turun yaa. 🙄 Neutral 21/09/01
@nwifuji ppkm selesai cus ke jogja 🥲👍 Positive 21/09/01
@schfess Jogja ppkm level 4😷 Neutral 21/09/01
syg! Gais naik bus jakarta jogja lagi ppkm gini butuh surat rapid test ga ya? Terimakasih sebelumnya Neutral 21/09/01
RT @IDNTimesJogja: Selama masa PPKM Sukardi andalkan penjualan bibit amarilis https://t.co/GlVxHqhZSc Neutral 21/09/01
Jogja ngeriii.. Nggilani..PPKM bullshit. Negative 21/09/01
Selama masa PPKM Sukardi andalkan penjualan bibit amarilis https://t.co/GlVxHqhZSc Neutral 21/09/01
Aloohaa sobat @puskotjogja tercinta!Masa PPKM yang lama bikin rindu ruang baca perpus dan buku-bukunya bukan?Keti… https://t.co/6XurgpSyhd Positive 21/09/01
Jogja apaan dah PPKM level 4 tapi gak berasa PPKM sama sekali jir. Di Jakarta tuh PPKM level 4 bener-bener berasa b… https://t.co/5Xk0JN2oQq Neutral 21/09/01
@mikescorviano Prambanan masih tutup kayake mas, Jogja masih PPKM level 4. Kalo besok di daerah Borobudur, nih. 😄 Neutral 21/09/01
@FOODFESS2 pliss yg org jogja yg tau ini sekarang jualnya dimana ya, biasanya minggu pagi jual di alun2 tp kyknya k… https://t.co/6TaNsOSZGM Positive 21/09/01
Reposted from @nurwulanoktavia_ Karna menjadi dewasa tidak mudahApa lagi pas ppkm,sulit sekali~📸 @wegpranata_📍… https://t.co/h2UUHcLr27 Positive 21/09/01
setelah PPKM,..yuk monggo direncakan liburannya bersama Buni Tours Jogja yaa...🙏🙂paket tour jogja 4h3m transport… https://t.co/yWBlkd6HjO Neutral 21/09/01
Masih pandemi loh, mana jogja ppkm 4. Kok prokesnya udah pada ilang hmm Negative 21/09/01
@telurgulunggg jogja ppkm level brapa mba pun Neutral 21/09/01
PPKM level 4 di DIy diperpanjang sampai 6 sept 2021 ya gesss.Obyek wisata di DIY msh blm buka, sebagian toko2 di… https://t.co/t66BlQ74E0 Positive 21/09/01
@velisia_pd wkwkwkwk tunggu PPKM turun level ya, ku tunggu kamu di Jogja 🥲🥲 Positive 21/09/01
@KemnakerRI ikut tanya ahh, sapa tau ga di jawab 😀1. Saya kerja di bidang pariwisata2. Tingagl dan kerja di Jogja… https://t.co/p6JAfMYbjx Positive 21/09/01
@rainaldylomri Kalau PPKM dan pandemi udah usai, cuman pengin ke Wonogiri (kampung halaman) dan ke Jogja (rumah sah… https://t.co/1qOsBTmhAU Neutral 21/09/01
Selamat pagi #SobatVisitingJogja! Tau ga sih, kalau di masa PPKM ini kita harus check in dulu kalau masuk pusat per… https://t.co/MTYdkycpHq Positive 21/09/01
@thrustfrated Di jogja masih ppkm ta yang?? Positive 21/09/01
RT @sugimo5: @anggasasongko @prastow Saya Guide tour wisata Jogja. Sampai saat ini belum ada yang mau wisata. Dan kami beralih jualan kac… Neutral 21/09/01
Wisata Tutup Dua Bulan karena PPKM, Ini yang Dilakukan Desa Wisata Pulesari https://t.co/iGJiywQegX #beritajogja… https://t.co/Hs0piJuIWI Neutral 21/09/01
#SelamatPagiJogja | Tribun Jogja : Mungkinkah Segera ke Sekolah ? PPKM DIY Diprediksi Segera Turun Level. Positive 21/09/01
Wacana PPKM DI Yogyakarta Turun Level dan Sekolah Dibuka, Orang Tua Masih Galau https://t.co/6yDAsTZYmZ via @tribunjogja Neutral 21/09/01
@bayu_joo Relate, alasan gue gencer ngerjain skripsi juga biar bisa liburan ke Bandung sama Jogja eh PPKM.Apalah… https://t.co/h1CXCTkD8a Neutral 21/09/01
59
Lampiran 3:
jog ada yg pernah naik krl solo jogja pas ppkm pakai surat kuliah? Neutral 21/09/01
@kadapatsya Well, nyaman bngt asli deh buat orang yg healingnya suka berpergian.Di jogja skrng selagi udh vaksin k… https://t.co/YPrtchOy5P Positive 21/09/02
@veronicacm_ Udah capek verr ppkm gak kelar” gabisa kemana mana 😭 minimal jogja/bali sabilah 😂 Negative 21/09/02
kgkkkkkk anjir ini kalo ppkm diperpanjang terus terusan gw bakalan di jogja selamanya alias kg bisa balik soalnya g… https://t.co/CcaovsElRH Neutral 21/09/02
@witanmukhtar Jogja mah buka wae da teu usum ppkm jiga d bdg Neutral 21/09/02
Tgl 4 kan katanya. Tp masalahnya feelingku bakal rame bgt walaupun jogja lagi ppkm. https://t.co/YoYyuXBBZ7 Positive 21/09/02
Jogja dong.. vaksinasi dikebut buat mahasiswa..Di base menfess Jogja skrg isinya anak muda udh pada ngajak nongkr… https://t.co/pr74Fyihjh Neutral 21/09/02
Jogja semua kabupaten masih ppkm level 4 🙄 Positive 21/09/02
ppkm wilayah jogja Neutral 21/09/02
@sugarplumelegyy @urlvlymajesty jogja woy, abis ppkm selesai langsung gas ga?? Neutral 21/09/02
Harapan Pedagang Kaki Lima (PKL) yang menjual oleh-oleh khas Jogja juga harus pupus. Pasalnya wisatawan yang dipred… https://t.co/AJgY0G4gXn Neutral 21/09/02
"Dua tahun ini kami menahan dan mematuhi peraturan pemerintah, prokes kami selalu jalankan. Mau sampai kapan kita b… https://t.co/W7iZh7Nprq Negative 21/09/02
@koocalm GUE MASIH PPKM HELLOOOOOOO?????? GUE MAJ KE JOGJA PADAHAL Neutral 21/09/02
pengelola Taman Bunga Amarilis banting stir menjadi penjual kelapa muda. https://t.co/D7fSeGjAPs Neutral 21/09/02
Objek Wisata DIY Masih Akan Tutup meski PPKM Turun ke Level 3 https://t.co/2AScouppbB #beritajogja #jogja… https://t.co/lGXrdA2UTw Neutral 21/09/02
Seluruh DIY Masih 'Juara Bertahan' di PPKM Level 4, Ini Kata Pemda - detikNewshttps://t.co/lN9AmRabTE#jogja… https://t.co/wIQBfiIqoE Neutral 21/09/02
semoga ppkm di Jogja turun ke level 2 trus tatap muka 🥲 Neutral 21/09/02
✨Yuk Ikutan Webinar dari PT.Victory International Futures Jogja✨📌 Topik : "Tetap Cuan Walau Saat PPKM"… https://t.co/dl9w54aLzp Positive 21/09/02
Tetep optimis ko Jogja segera turun level PPKM. Sudah tembus 100juta dosis dan akan segera tembus lebih banyak.… https://t.co/VjisElxL1u Neutral 21/09/02
Hal tersebut disampaikan Sri Paduka pada Rakor Evaluasi PPKM Jawa-Bali secara daring yang dipimpin Menteri Koordina… https://t.co/k4vwuf9Jz5 Positive 21/09/02
@anggasasongko @prastow Saya Guide tour wisata Jogja. Sampai saat ini belum ada yang mau wisata. Dan kami beralih… https://t.co/J4eCHGjYYx Neutral 21/09/02
Open kak morsex promo ppkm yahh #bojogja#jogjabo#openBOjogja #includeroom #availjogjakarta #jogjaincluderoom… https://t.co/NNFamj6E8a Neutral 21/09/02
RT @CityPijat: Ready Pijat 081286319945 WA#Jakarta #bekasi #kranji #harapanindah #wismaasri #ujungharapan #perumnas #greenpramuka #gading… Neutral 21/09/02
Open kak morsex promo ppkm yahh #bojogja#jogjabo#openBOjogja #includeroom #availjogjakarta #jogjaincluderoom… https://t.co/ua2jMjDYIb Neutral 21/09/02
@mas_didiek Bravo, semoga akan lebih memberi daya tarik kunjungan ke jogja. Krn ekonomi jogja lokomotif utamanya ad… https://t.co/33hV4LF1wy Neutral 21/09/02
RT @Harian_Jogja: Hasil Rapat dengan Luhut: DIY Mendekati PPKM Level 3 https://t.co/yDHPnkXauW #beritajogja #jogja #jogjaistimewa https://t… Neutral 21/09/03
@JogjaUpdate @bimoheryprabowo Kon bali, jogja lg ppkm Positive 21/09/03
@FWBESS Lha pertanyaannya ini jogja PPKM kapan selesai? Kangen nongkrong di burjo nih hahaha Positive 21/09/03
RT @Harian_Jogja: Ini Syarat yang Harus Dipenuhi DIY kalau Mau PPKM Turun Level https://t.co/9xnzHMHYWb #beritajogja #jogja #jogjaistimewa… Neutral 21/09/03
@WazawsghieMike Kata temenku kalau UNS buat yg angkatan 21.Kalau Jogja masih ppkm level 4 :( Neutral 21/09/03
pengen main ke jogja tapi ppkm hdeh Neutral 21/09/03
Punya temen bisa bisanya lagi ppkm gini ke jogja lanjut ke bajo 😭👍🏻 Neutral 21/09/03
Cah ada yg pernah bepergian ke arah jogja - semarang pake kendaraan pribadi selama ppkm ini? Komen ya. Aku mau tanya-tanya soalnya. Makasih Positive 21/09/03
Akhirnya ku blok ig buleknya kiwana. Dari awal tahun kok enteng banget wira wiri jogja - sby - magelang, taunya die… https://t.co/z4znL0BcU8 Neutral 21/09/03
@plunkeetbeato Ke jogja lagi ppkm ga dapet apa2 :( Neutral 21/09/03
60
Lampiran 4:
61
Lampiran 5:
Seorang teman beserta anak-anaknya mudik ke Sumatra. Sampai sana, lalu PPKM. Dan terus diperpanjang. Hingga hari in… https://t.co/a4Inl8cI6p Positive 21/09/04
@jogmfs Durung oleh. Jogja isih ppkm level 4.Cuma oleh take away Positive 21/09/04
@dianptrc Sampek mbatin, kenapa aku tak pernah tenang ambil Cuti, wkwkwkw.. Ke jogja aman mbak, tetep Swab dan prok… https://t.co/PMULmy24tq Positive 21/09/04
@nunuhalimi Jogja, PPKM diperpanjang tapi belum turun level 😢 masih level empat…Semoga beberapa hari ke depen bis… https://t.co/7k0dlkRqag Neutral 21/09/04
@ibuknya_jaksa Semoga kasus covid di Jogja juga semakin menurun dengan masih diberlakukannya PPKM Level 4 di Jogja#ppkmtekancovid19 Neutral 21/09/04
RT @Nisya_Rifiani: @ManAja46 Halo, siang, kak… Iya, nih, PPKM Jawa-Bali diperpanjang…Jogja, kotaku, malah belum turun level, masih level… Positive 21/09/04
pengen ke jogjabakal kenal ppkm gaa yaa ?? Positive 21/09/04
@koko_dhoni @humas_jogja Ntar gak ada PPKM pas pilihan LURAH pak Positive 21/09/04
RT @Nduty69: Ppkm diperpanjang, kecuali jogja ketok e Positive 21/09/04
Harga Saham Ini Naik saat Pengumuman Perpanjangan PPKM https://t.co/19ICtxJVUB #beritajogja #jogja #jogjaistimewa https://t.co/YRr6BvacWP Positive 21/09/04
Sobat Puskot, meskipun PPKM Level 4 masih berlanjut, Puskot Jogja tetap bersemangat melayani sobat yang membutuhkan… https://t.co/iaTWiNkkCD Positive 21/09/04
PPKM Luar Jawa-Bali, Airlangga: Mobilitas Harus Ditekan https://t.co/q34AvqIfxx #beritajogja #jogja #jogjaistimewa https://t.co/RXzVqEz9RP Neutral 21/09/04
RT @Ternoda_: Katanya PPKM LEVEL 4 @humas_jogja lah kok bus2 besar wisata udah bisa masuk parkir di kota loss doll + objek wisata udah bole… Neutral 21/09/04
Hai Balamuda. Pagi-pagi begini yuk simak #MagentaFlashNews hari ini bareng Adelps supaya menambah wawasan kita😀Ber… https://t.co/54dyz4BoCa Neutral 21/09/04
Selamat datang di Jogja, PPKM level 4 rasa level 2.Blong Positive 21/09/04
jogja bali masih ppkm level 4🥲🥲 Neutral 21/09/04
@bertanyarl pernah ke jogja , biasanya beli sate ayam 40k di jkt. eh disana cm 10k WANJIR SHOCK BGT GUEEE. Trus pas… https://t.co/OTjKjO22U4 Neutral 21/09/04
Perpanjangan PPKM, Ini 3 Pesan Menkes Mencegah Gelombang Ketiga Covid-19 https://t.co/lMh9W56KY0 #beritajogja… https://t.co/U2eYzygEq2 Positive 21/09/04
September jogja ppkm lvl brp yaa? Neutral 21/09/04
Mau ppkm diperpanjang ampe akhir taun jg gak ngaruh di jogja, disini dah kek biasa aja anjer. Negative 21/09/04
Baru mau rencanain ke jogja udah ppkm lagi aja ya tuhaannnnn Negative 21/09/04
Transkrip Pernyataan Presiden Jokowi Perkembangan PPKM Terkini https://t.co/Rj1jlrgC2z via @tribunjogja Neutral 21/09/04
Disappointed but not surprised😒🥲😩https://t.co/Bk2OHxN85F Neutral 21/09/04
Hingga saat ini pihaknya masih memberikan relaksasi pembayaran kepada pedagang. https://t.co/yN4pLohXxH Positive 21/09/04
RT @nabiylarisfa: Di satu sisi senang melihat Jogja terlihat normal berdenyut kembali. Di sisi lain, ketar-ketir banget lihat manusia di Ma… Positive 21/09/04
@leicaonik @BuruhYogyakarta @tempodotco Kalau memang satu satunya jalan untuk mengembalikan rejeki mereka adalah de… https://t.co/LxWZdrsj4W Positive 21/09/04
Daerah Istimewa Yogyakarta dan Bali Secepatnya Masuk PPKM Level 3 https://t.co/gBcRXs4tzx via @tribunjogja Positive 21/09/04
Jogja setia bgttt, masih ppkm level 4 😣 Negative 21/09/04
Tribun Jogja - Ada Kelonggaran Saat PPKM, Pemesanan Kamar Hotel di Sleman Alami Peningkatan https://t.co/9hwj3sV35P Positive 21/09/04
Akibat PPKM, sebanyak 3.179 karyawan di DIY terkena imbas PHK.#merahputihcom #PPKMLevel3 #JOGJA #COVID19 https://t.co/OD5r9ZOZ3k Negative 21/09/04
PPKM Jawa-Bali Diperpanjang, Pabrik Berorientasi Domestik Non-Esensial Beroperasi 100% https://t.co/JWmhV6bU1G… https://t.co/zOsAlqqfI5 Positive 21/09/04
@JogjaPresiden @BantengKalap Nasib masa depan jogja ini apa kabar bung. Ngapain ngurus jakarta. Jogja banyak rakyat… https://t.co/OaxSTko6uv Positive 21/09/04
PPKM diperpanjang hingga 6 September. Ada 2 wilayah yang masih betah di Level 4, yaitu DIY dan Bali.Hiks, #Jogja 😭 Neutral 21/09/04
@nabiylarisfa semangat buat semuanya yg lagi survive ditengah pandemi ini, semoga selalu dikasi kesehatan&kelancara… https://t.co/XjHxTJunuI Positive 21/09/04
PPKM Jogja udah turun level belum ya? Neutral 21/09/04
jogja skrg ppkm level brp?? masi level 4 ato udh turun ke 3? Neutral 21/09/04
PPKM Diperpanjang: Bali dan Jogja Masih Jadi Sorotan https://t.co/btqAD26MfR #beritajogja #jogja #jogjaistimewa https://t.co/zlwpC7p5MT Neutral 21/09/04
@MrDanuKW Apalagi jogja kan msh tinggi tingkat penyebaran virus nya,masih level 4 kan?blm turun kyk solo atau semarang yg sdh ppkm level 2. Neutral 21/09/04
@MrDanuKW Maaf mas,gak ngotak gmn ya?Krn saya di kalimantan juga mengalami lampu jalan di matikan krn ppkm,tp Alha… https://t.co/IxXAyQT3Xx Neutral 21/09/04
di jogja ppkm level 4 tapi jajanan sore gor klebengan dah kaya dirubung semut ramenya.. pls i need to go to happy p… https://t.co/EzZog1TFwn Negative 21/09/04
62
Lampiran 6:
63
Lampiran 7:
64
Lampiran 8:
65
Lampiran 9:
66
Lampiran 10:
67
Lampiran 11:
68
Lampiran 12:
69
Lampiran 13:
70
Lampiran 14:
71
Lampiran 15:
72
from sklearn.compose import ColumnTransformer
73
tweet.retweet_count,
tweet.text,
tweet.user.location])
print(tweets_data)
def clean_tweet(tweet):
""" cleaning tweet
source code: https://www.machinelearningplus.com/python/python-regex-tutorial-
examples/
74
"""
tweet = re.sub('http\S+\s*', '', tweet) # remove URLs
tweet = re.sub('pic\.\S+', '', tweet) # remove picture twitter URLs
tweet = re.sub('RT|cc', '', tweet) # remove RT and cc
tweet = re.sub('#\S+', '', tweet) # remove hashtags
tweet = re.sub('@\S+', '', tweet) # remove mentions
def tokenization(tweet):
tweet = re.split('\w+', tweet)
return tweet
def remove_stopwords(text):
text = [word for word in text if word not in stopword]
return text
75
df['komentar'] = df['komentar'].str.lower()
df['label'] = df['label'].str.lower()
df['TOKENIZATION'] = df['TOKENIZATION'].str.lower()
df['STOP_REMOVAL'] = df['STOP_REMOVAL'].str.lower()
df.head(5)
# Daftar Stopword
stopWordRemoverFactory = StopWordRemoverFactory()
stopwords = stopWordRemoverFactory.get_stop_words()
df['komentar'] = df['komentar'].apply(lambda x: stemmer.stem(x))
for i in range(300, 310):
print(f"sebelum stemming:\n {data['DATA SENTIMEN ( TWEET DARI TWITTER)'][i]}")
print(f"setelah stemming:\n {df['komentar'][i]}\n")
df_clean = pd.DataFrame()
df_clean['Komentar_scraping'] = data['DATA SENTIMEN ( TWEET DARI TWITTER)']
df_clean['Komentar_clean'] = df['komentar']
df_clean['label'] = df['label']
df_clean.head(5)
76
#menampilkan berapa data training dan testing
# pemisahan feature dan label
x = df['komentar']
y = df['label']
77
#mengubah sekelompok kategori menjadi sekelompok binomial yang pada dasarnya
variabel biner dengan th 0
# dan sekali dan jumlah kolom sama dengan jumlah kelas dalalm jumlah kategori
data.shape #melihat jumlah data
pd.get_dummies(data).shape
78
df['USERNAME'].replace(['Sri wahyuni'], 6,inplace= True)
df['USERNAME'].replace(['Wildan ahmad'], 7,inplace= True)
df['USERNAME'].replace(['firgiawan'], 8,inplace= True)
df['USERNAME'].replace(['nurafifah'], 9,inplace= True)
df['USERNAME'].replace(['Afrizal'], 10,inplace= True)
df['USERNAME'].replace(['inayah'], 11,inplace= True)
df['USERNAME'].replace(['dewi sintia'], 12,inplace= True)
df.head()
#split dataset in features and target variable
feature_cols = ['SENTIMEN','USERNAME']
X = df[feature_cols] # Features
Y = df.kemunculan # Target variable
#splitting data untuk memisahkan data training dan data testing
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state =
100)
from sklearn.naive_bayes import GaussianNB
# Mengaktifkan/memanggil/membuat fungsi klasifikasi Naive Bayes
modelnb = GaussianNB()
79
Algoritma Lanjutan Script Phyton Naïve Bayes
from sklearn.metrics import classification_report
print(classification_report(Y_test, y_pred))
#menampilkan confusion matriks
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix, accuracy_score, recall_score,
precision_score, classification_report
f, ax = plt.subplots(figsize=(8,8))
sns.heatmap(confusion_matrix(Y_test, y_pred), annot=True, fmt=".0f", ax=ax)
plt.xlabel("predict",fontsize=20)
plt.ylabel("actual",fontsize=20)
plt.xlabel('Predicted Label', color='white')
plt.ylabel('True Label', color='white')
80
topdata.plot(kind='bar', color='green')
plt.title('DATA PPKM JOGJAKARTA')
plt.ylabel('Count')
plt.xlabel('TWEET')
plt.show()
#menampilkan datafrem data
sp=pd.DataFrame(topdata)
sp
#menampilkan diagram hasil klasifikasi sentimen
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8, 8))
sentimen = ['netral', 'positif', 'negatif']
jumlah_sentimen = [329,141,30]
sns.barplot(sentimen,jumlah_sentimen)
ax.set_ylabel('jumlah')
ax.set_xlabel('Klasifikasi Sentimen')
ax.set_title('Hasil Klasifikasi Sentimen PPKM')
plt.show()
Algoritma Lanjutan Script Phyton Naïve Bayes
#menampilkan klasifikasi porsen dengan pie chart
import matplotlib.pyplot as plt
size_of_groups=[12,11,3]
dt['label'].value_counts().plot.pie(autopct='%1.2f%%',shadow=True,figsize=(11,10))
# Create a pieplot
plt.pie(size_of_groups)
plt.show()
81
82