Anda di halaman 1dari 91

Pembimbing: Dewi Soyusiawaty, S.T., M.T.

Analisis Sentimen Menggunakan Metode Naïve Bayes


(Studi Kasus: Pemberlakuan Pembatasan Kegiatan Masyarakat)

SKRIPSI

Untuk Memenuhi Sebagian Persyaratan


Mencapai Derajat Sarjana Komputer

Disusun Oleh:
MARIAM ULFA
1700018169

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
YOGYAKARTA
2021

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.

Kata Kunci: Analisis Sentimen, Ppkm, Naïve Bayes Classifier.

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.

This research produces sentiment analysis on the Implementation of Community Activity


Restrictions (PPKM) using the Naïve Bayes Classifier method. As a result of testing from the
distribution of training and testing data, which is 70%: 30%, 95% accuracy is obtained with 501
tweet data consisting of 450 training data and 51 testing data. The percentage of each sentiment class
is also obtained, namely neutral as much as 64.49%, positive as much as 28.37% and negative as
much as 6.12%. From the results of this percentage, it can be concluded that many people have a
neutral opinion with the imposition of restrictions on community activities in Yogyakarta.

Keywords: Sentiment Analysis, Ppkm, Naïve Bayes Classifier.

vi
HALAMAN PENGESAHAN

SKRIPSI

Analisis Sentimen Menggunakan Metode Naïve Bayes


(Studi Kasus: Pemberlakuan Pembatasan Kegiatan Masyarakat)
Yang Dipersiapkan Dan Disusun Oleh

Mariam ulfa
1700018169

Telah dipertahankan di depan Dewan Penguji


pada tanggal 25 September 2021
Dan dinyatakan telah memenuhi syarat

Susunan Dewan Penguji :

Ketua : Dewi Soyusiawaty, S.T., M.T.

Penguji I : Ir. Ardi Pujiyanta, M.T.

Penguji II:

Yogyakarta, November 2021

Dekan

Fakultas Teknologi Industri Universitas Ahmad Dahlan

vii
SURAT PERNYATAAN

Saya yang bertanda tangan dibawah ini:

Nama : Mariam Ulfa

NIM : 1700018169

Prodi : Teknik Informatika

Judul TA/Skripsi : Analisis Sentimen Menggunakan Metode Naïve Bayes

Perberlakukan Pembatasan Kegiatan Masyarakat

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, ....................................

Mengetajui, Yang Menyatakan

Dosen Pembibing Mahasiswa

(............................................) (............................................)

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

keluarga kedua saya di tempat perantauan.

v
KATA PENGANTAR

Assalamu’alaikum Wr. Wb.

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.

Wassalamualaikum Wr. Wb.

Yogyakata, Oktober 2021

vi
Daftar Isi

BAB 1 PENDAHULUAN ....................................................................................................................... 1

A. Latar Belakang .......................................................................................................................... 3

B. identifikasi Masalah ................................................................................................................. 3

C. Batasan Masalah ...................................................................................................................... 3

D. Rumusan Masalah ................................................................................................................... 3

E Tujuan penelitian ..................................................................................................................... 4

F. Manfaat Penelitian ................................................................................................................... 4

BAB II KAJIAN PUSTAKA ..................................................................................................................... 5

A. Kajian hasil penelitian terdahulu ............................................................................................. 5

B. Landasan Teori ....................................................................................................................... 10

BAB III METODE PENELITIAN ........................................................................................................... 20

A Objek Penelitian ...................................................................................................................... 19

B. Metode Pengumpulan Data .................................................................................................... 19

C. Spesifikasi Kebutuhan ............................................................................................................. 21

D. Tahapan Penelitia ................................................................................................................... 22

BAB IV Hasil DAN PEMBAHASAN ..................................................................................................... 19

A. Pembagian Data Training dan Data Testing ........................................................................... 19

B.Tahapan Prprocessing .............................................................................................................. 26

C.Tahapan Naïve Bayes ............................................................................................................... 27

BAB V PENUTUP .............................................................................................................................. 43

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

mengutamakan komunikasi secara langsung .(Rasyadi, 2017)

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

banyak manfaat khusus nya dalam dunia kesehatan.(Pratama et al., 2020).

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

yang semakin hari angka penyebarannya semakin banyak.

Tindakan Pemerintah Yogyakarta untuk membantu pelaksanaan Pemberlakuan

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

mengetahui opini masyarakat tentang Pelaksanaan Pemberlakuan Pembatasan Kegiatan

Masyarakat (PPKM). Opini masyarakat yang dimaksud adalah opini yang bersifat positif,

negatif, atau netral.

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

merupakan proses pengklasifikasian oleh manusia dan tidak menggunakan algoritma

komputer atau bantuan teknologi. Sedangkan proses pengklasifikasi yang memiliki beberapa

algoritma, diantaranya Naïve Bayes, Support Vector Machine, Decission Tree, Fuzzy dan

Jaringan Saraf Tiruan dapat dilakukan dengan bantuan teknologi.

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

waktu pelatihan yaitu data latih.

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

Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM). Lebih masyarakat yang beropini

atau berpendapat negatif, positif atau netral sehingga dapat dijadikan acuan serta masukan

untuk kinerja terhadap pengelolaan dalam segala hal yang berkaitan prasarana dan sarana

pada saat pelaksanaan Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM).

B. Identifikasi Masalah

Identifikasi masalah yang terdapat pada penelitian ini adalah:

1. Bagi Pemerintah tidak mudah untuk mengetahui pendapat atau opini masyarakat

mengenai pelaksanaan Perberlakuan Pembatasan Kegiatan Masyarakat (PPKM).

2. Tidak mudah dilakukan Klasifikasi untuk membagi kelas sentimen dikarenakan

adanya teks yang mengandung ambiguitas (bermakna lebih dari satu).

3. Kurang optimalnya hasil estimasi probabilitas dikarenakan asumsi sederhana yang

diterapkan pada metode Naïve Bayes.

C. Batasan Masalah

1. Data yang diteliti pada penelitian ini adalah berupa variabel dan memiliki polaritas

positif, negatif dan netral.

2. Metode yang digunakan dalam penelitian ini adalah Naïve Bayes Classifier.

4
3. Melakukan pengambilan data dengan melakukan crawling data tweet pada twitter

dengan rentan waktu pengambilan dari tanggal 03 September sampai 14 September

2021.

D. Rumusan Masalah

Rumusan masalah yang terdapat pada penelitian ini adalah:

1. Bagaimana melakukan analisis sentimen saat pelaksanaan Pemberlakuan

Pembatasan Kegiatan Masyarakat (PPKM).

2. Bagaimana menguji keakuratan metode Naïve bayes yang diterapkan pada

Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM).

E. Tujuan penelitian

Tujuan yang terdapat pada penelitian ini adalah:

1. Melakukan analisis sentimen pada pelaksanaan Pemberlakuan Pembatasan Kegiatan

Masyarakat (PPKM).

2. Menggunakan metode Naïve Bayes Classifier dalam menguji hasil sentimen

masyarakat mengenai Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM)

3. Mengetahui tingkat keakurasian yang diperoleh dari penggunaan metode naïve

bayes dengan menggunakan matriks klasifikasi (Confusion Matrix).

F. Manfaat Penelitian

Dengan adanya penelitian ini pemerintah khusus nya dapat mengetahui

pendapat dari masyarakat tentang Pemberlakuan Pembatasan Kegiatan Masyarakat

(PPKM). Serta dapat lebih mudah melihat atau memilah pandangan dari masyarakat

khususnya tentang Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM) apakah

lebih banyak pendapat posistif, netral atau negatif. Dapat dijadikan bahan masukan

untuk memperbaiki pelayanan kepada masyarakat.

5
BAB II

KAJIAN PUSTAKA

A. Kajian hasil penelitian terdahulu

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,

dan sentimen netral.

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”.

Tujuan Penelitian menggunakan klasifikasi berbasis mechine learning untuk membuat

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

hasil dari penelitian ini.

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

penellitian yang telah dilakukan sebelumnya.

Tabel 1.1 Tabel kajian penelitian terdahulu

Aspek Pustaka 1 Pustaka 2 Pustaka 3 Pustaka 4 Pustaka 5


Penulis Dwiraswati1,Kemal Audiaprilliat Muhammad Rasdyan Fauziah Afshoh Mariam Ulfa
Nazaruddin Siregar2 Hasyadi

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

data dengan mengumpulkan, membersihkan, mengelola dan menganalisis data.

Menggunakan artificial intelligence, teknik statistik, ilmu matematika, machine learning,

dan lain sebagainya merupakan Beberapa teknik untuk mendapatkan Informasi penting

tersebut. Dari teknik tersebut selanjutnya mengekstraksi dari suatu database besar serta

mengidentifikasi informasi yang bermanfaat.

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-

langkah data mining sebagai berikut:

1. Data cleaning merupakan kegiatan untuk menghilangkan noise (symbol dan tanda

baca) dan tidak konsisten.

2. Data integration merupakan data yang terdapat dari berbagai database digabungkan

kedalam satu database baru.

3. Data selection merupakan kegiatan mengambil data yang sesuai kemudian data

tersebut digunakan dalam proses data mining.

4. Data transformation merupakan untuk mengubah data atau menggabungkan data ke

dalam format yang sesuai untuk diproses dalam data mining.

5. Data mining merupakan penggunaan metode-metode untuk menghasilkan suatu

pola data.

11
6. Pattern evaluation merupakan langkah mengidentifikasi pola-pola menarik kedalam

knowledge based yang ditemukan.

7. Knowledge representation digunakan untuk menampilkan knowledge hasil mining

kepada pengguna dengan langkah visualisasi serta teknik menyajikan knowledge hasil

mining kepada pengguna.

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

sentimen dapat mengidentifikasi emosional terhadap suatu pernyataan (Zhang, et al,

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

melakukan analisis sentimen menggunakan metode Naïve Bayes sehingga dapat

mengetahui pendapat atau opini masyarakat terhadap Pemberlakuan Pembatasan

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

menggunakan metode Naïve Bayes Classifier.

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

menggunakan data teks (Andreas Chandra, 2019: 27).

a. Tujuan Analisis sentimen

Tujuan Analisis sentimen adalah teks, kalimat, fitur, aspek yang terdapat pada

dokumen akan dikelompokan, sehingga dapat ditentukan apakah pendapat yang

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

kejadian, dan lain sebagainya.

Ada beberapa cara untuk melabelkan data salah satu cara pelabelan yaitu

dengan bantuan aplikasi dan dengan cara manual, pelabelan sentimen dengan aplikasi

contohnya menggunakan aplikasi Rapidminer, sedangkan dengan cara manual yaitu

dilabelkan oleh Ahli Bahasa.

Data yang diperoleh dengan melakukan crawling biasanya mendapatkan ranting

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,

begitupula dengan tahap data uji selanjutnya.

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,

pengertian metode tersebut dapat dilihat sebagai berikut:

a) Case folding yaitu merubah kata yang awalnya merupakan huru besar menjadi huruf

kecil (lower case).

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

karakter angka yang ada pada kalimat tersebut.

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

stopword. Contohnya dan dari, dengan, di dan lain-lain.

d) Stemming yaitu proses menghilangkan kata imbuhan. Contohnya “membawa”

menjadi “bawa”, “menulis” menjadi “tulis” dan lain-lain.

14
5. Klasifikasi

Klasifikasi berfungsi untuk menyatakan suatu objek data sebagai salah satu

kategori (kelas) yang sebelumnya telah disefinisikan. Berdasarkan pada pengetahuan

seorang ahli (pakar) Model pada klasifikasi dapat dibangun. Himpunan kata yang terdapat

pada model klasifikasi data yang berukuran besar membutuhkan atau sering

menggunakan pembelajaran mechine learning, sehingga mampu menghasilkan fungsi

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

klasifikasi. Penggunaan klasifikasi banyak diterapkan pada berbagai macam aplikasi

diantaranya fraund Detection (deteksi kecurangan), prediksi penjualan, analisis sentimen,

dan sebagainya.

6. Conditonal Probability (Probabilitas Bersyarat)

Definisi 2.1 (Bain & Engelhardi, 1992) Probabilitas bersyarat dari ø, bila X diketahui,

didefiniskan sebagai berikut:

𝑃(𝑃 𝑛 𝑋)
𝑃 (∅|𝑋) = , 𝑗𝑖𝑘𝑎 𝑃(𝑋) > 0.
𝑃(𝑋)

Menurut (Bain & Engelhardi 1992) dari pemodelan probabilitas bertujuan untuk

menentukan seberapa besar kemungkinan suatu peristiwa ∅ terjadi katika percobaan

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

(𝑃 (∅).

7. Naïve Bayes Classifier

Algoritma Naïve Bayes Classifier merupakan sebuah metode pengklasifikasian

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.

Dengan menggunakan probabilitas Untuk membuat diagnosis medis secara

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

Bahasa pemrograman perhitungannya cepat, efisien, Mudah dipahami, Mudah dibuat

pengklasifikasian dokumen bisa dipersonalisasi. Serta bisa menggunakan klasifikasi pada

masalah biner serta multiclass.

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

ketiga sampai seterusnya. Kemudian terdapat V yang didefinisikan sebagai himpinan

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):

a. Pembentukan Variabel Data Latih

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

memperhatikan frequency kemunculan setiap kata dalam variabel tersebut.

b. Menghitung Nilai Probabilitas Data Latih

Setelah pembentukan variabel data latih dengan memperhatikan frequency

kemunculan setiap kata dalam variabel tersebut, proses selanjutnya yaitu

mendapatkan nilai probabilitas dengan menghitung dari setiap kelas dengan

menggunakan rumus berikut:

𝑛(𝑣𝑗)
P (vj) = (2.1)
𝑛(𝑆)

N(vj) adalah jumlah kelas pada vj, dan n(s) adlaah jumlah semua kelas yang digunakan

dalam data latih.

c. Menentukan Probabilitas Setiap Kata

Pada proses ini, probabilitas kata pada setiap masing masing kelas dapat di

hitung dengan menggunakan persamaan seperti berikut:

𝑛+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 𝑉𝑚𝑎𝑝

Metode Naïve Bayes Classifier dalam klasifikasi menghasilkan kelas dengan

probabilitas yang paling tinggi (𝑉𝑚𝑎𝑝) dari data uji masing masing kelas dengan

menggunakan pasangan variable (𝑥1, 𝑥2, 𝑥3, … . . , 𝑥𝑛). Berikut merupakan rumus dari

Vmap yang dijadikan dalam pesamaan (2.3)

𝑉𝑚𝑎𝑝 = arg max 𝑃(𝑣𝑗|𝑥𝑖, 𝑥2, 𝑥3, … , 𝑥𝑛)

(2.3)Bedasarkan teorma Bayes pada persamaan (2.1) maka persamaan (2.3) dapat

ditulis dalam persamaan (2.4)

𝑃(𝑥𝑖, 𝑥2, 𝑥3, … . . , 𝑥𝑛 |𝑣𝑗 )𝑃(𝑣𝑗)


𝑉𝑚𝑎𝑝 = arg max (2.4)
𝑃(𝑥𝑖,𝑥2,𝑥3,…..,𝑥𝑛)

Bedasarkan sifat kesebandingan, 𝑃(𝑥𝑖, 𝑥2, 𝑥3, … . . , 𝑥𝑛) bernilai konstan makan

pada persamaan (2.4) dapat dinyatakan seperti persamaan (2.5)

𝑉𝑚𝑎𝑝 = arg max 𝑃(𝑥𝑖, 𝑥2, 𝑥3, … . . , 𝑥𝑛|𝑣𝑗)𝑃(𝑣𝑗) (2.5)

Dapat di ambil kesimpulan rumus dari 𝑉𝑚𝑎𝑝 dapat disajikan dalam persamaan

berikut:

𝑉𝑚𝑎𝑝 = arg max 𝑃(𝑣𝑗)𝑥 ∏ 𝑃(𝑥𝑖|𝑣𝑗)


𝑖=1

18
BAB III

METODE PENELITIAN

A. Objek Penelitian

Objek pada penelitian ini yaitu Analisis sentimen pada proses pelaksanaan

Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM).

B. Metode Pengumpulan Data

Dalam penelitian ini data yang dibutuhkan berupa data sentimen masyarakat pada

saat pelaksanan Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM). Cara pengumpulan

data pada penelitian ini yaitu sebagai berikut:

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

pesebaran penarikan sampel data dilakukan agar mewakili rangkaian pelaksanaan

Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM). Berikut gambar proses

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

sebanyak 30 data. Berikut gambar Proses klasifikasi data:

20
Gambar 3.2 Proses Pelabelan Data Twitter

C. Metode Pengolahan Data

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

landasan teori. Proses preprocessing dapat dilihat berikut ini:

21
Gambar 3.4: Proses Preprocessing

2. Klasifikasi

Pada flowchart berikut merupakan proses pengklasifikasian data yang telah di

peroleh yang sebelumnya telah melalui tahap preprosessing untuk di klasifikasikan

kedalam Naïve Bayes. Dimulai dari memasukan data tweet yang telah dipreprocessing

untuk di uji sampai mendapatkan hasil akhir klasifikasii tweet. Flowchart dapat dilihat

pada gambar berikut:

22
Gambar 3.5: Proses Klasifikasi

D. Tahapan Penelitian

Tahapan penelitian dapat dilihat pada gambar 3.1 tahap penelitian berikut:

Gambar 3.3: Tahapan penelitian

23
Metode analisa data yang digunakan adalah Naïve Bayes Classifier , kemudian

pengolahan data menggunakan software Phython, Tahapan dalam analisa data

menggunakan metode Naïve Bayes Classifier dapat dilihat sebagai berikut:

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

kunci yang digunakan yaitu ppkm Yogyakarta.

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

menggunakan Naïve Bayes.

6. Data yang telah diklarifikasi sebelumnya kemudian dimasukan ke dalam pengklasifikasian

data uji.

7. Dari data yang diperoleh kemudian dihitung tingkat keakurasian dengann menggunakan

Confusion Matrix (matriks klasifikasi).

E. Spesifikasi Kebutuhan

Spesifikasi kebutuhan pada penelitian ini diantaranya:

1. Perangkat Lunak (Software)

Perangkat lunak yang dibutuhkan pada penelitian ini diantaranya:

a. Microsoft Excel 2016

b. Python

c. Google Chrome

24
d. Jupyter Notebook

2. Perangkat Keras (Hardware)

Perangkat keras yang dibutuhkan pada penelitian ini yaitu laptop dengan

spesifikasi sebagai berikut:

a. Processor : Intel Celeron N4000, up to 2.6GHz

b. RAM : 4 GB

c. Operating System : Windows 10 64-bit

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

1 sebelum dan setelah dilakukan pre-processing.

jogja
Jogja ada ppkm gak sih, udah
ppkm
lama nggak naik pesawat 😂
pesawat

Gambar 3.6: Data Latih 1 sebelum dan Sesudah Pre-processing.

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

hilangkan sehingga kata yang tersisa yaitu “jogja”,”ppkm” dan pesawat”.

Berikut ini merupakan data latih 2 sebelum dan setelah dilakukan Pre-processing.

jogja
@schfess jogja we ppkm msih
level 4 og ppkm

level 4

Gambar 3.7: Data latih 2 Sebelum dan Sesudah Pre-processing.

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

“@schfess”,”we”,”msih”,”og”, sehingga pada tahap preprocessing kata yang tedapat

pada kalimat data latih dua yaitu “jogja”,”ppkm”dan “level 4”.

1. Dilakukan proses pembentukan fitur pada data latih, menentukan probabilitas kelas dan

menghitung nilai probabilitas. Pembentukan fitur pada masing-masing data latih dapat

dilihat pada tabel berikut:

Tabel 1.5.Hasil Pembentukan Fitur Data Latih

Data Fitur Kemunculan Kelas sentimen


D1 jogja 1 Netral

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

kata pada D1 dan D2.

2. Menghitung probabilitas kemunculan kata di setiap kelas pada data latih. Hasilnya dapat

dilihat pada tabel berikut:

Tabel 1.6. Frekuensi Kemunculan Kata

Kelas sentimen Data(j) Fd(cj) P(cj)


Positif 1 1 2 2/2
Negatif 0 0 0 0/2
Netral 2 1 3 3/2

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),

begitu pula dengan kelas sentimen negatif dan netral.

27
3. Setelah di dapatkan probabilitas dari setiap kelas, selanjutnya menghitung probabilitas

setiap fitur setiap kelas dengan hasil sebagai berikut:

Tabel 1.7.Probabilitas Tiap Fitur Pada Kelas Sentimen

Data f(wki,ci) Kelas sentimen©


Positif Negatif Netral
Jogja 0+1/4+10 = 1/14 0+1/5+10=1/15 1+1/1+10=2/11
Ppkm 1+1/4+10=2/14 0+1/5+10=1/15 0+1/1+10=1/11
Pesawat 0+1/4+10=1/14 1+1/5+10=2/15 0+1/1+10=1/11
Jogja 1+1/4+10=2/14 0+1/5+10=1/15 0+1/1+10=1/11
Ppkm 0+1/4+10=1/14 1+1/5+10=2/15 0+1/1+10=1/11
Level 4 1+1/4+10=2/14 0+1/5+10=1/15 0+1/1+10=1/11

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

positif di D1 ditulis “1+1/4+10=2/14” , negatif “0+1/5+10=1/15” dan netral

“0+1/1+10=1/11”, selanjutnya jogja netral di D2 ditulis “0+1/4+10=1/14”, negatif

“0+1/5+10=1/15” dan netral “1+1/1+10=2/11”, begitu pula dengan kelas sentimen

lainnya.

4. Menentukan probabilitas pada data latih dengan melakukan pehitungan dari masing-

masing kelas berdasarkan proses pelatihan. Sentimen dari data tweet merupakan nilai

probabilitas tertinggi. Dapat dilihat pada gambar berikut:

a. Hasil sebelum dan sesudah pre-processing data uji

28
Ppkm

Masa ppkm level4 jogja panjang Level4


pemda segera jalur bansos bagi
Jogja
warga
Bansos

warga

Gambar 3.4: Data Testing 1 Sebelum dan Setelah Pre-processing.

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

menjadi kata “ppkm”,”level4”,”jogja”,”Bansos”dan “warga.

5. Pembentukan Variabel Data Training

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

dapat di lihat pada tabel di bawah ini:

Tabel 1.8: Hasil Pembentukan Variabel Data Train

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

didalam tweet pertama, begitu pula dengan kata kata lain.

6. Menghitung Nilai Probabilitas Data Latih

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:

Tabel 1.9: Hasil Probabilitas Data Latih

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

sehingga diperoleh nilai pada P (vj) sebanyak 1,5.

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

merupakan pembentukan data test yang digunakan untuk memperoleh VMAP.

a) Perhitungan Vmap untuk mendapatkan nilai sentimen positif

Vmap (positif) = P (“positif”) P (“ppkm” | positif) P (“level4” | positif)

P (“jogja” | positif)

2 2 2 1 2
= 𝑋 𝑋 𝑋 𝑋 = 0,5714285714
2 14 14 14 14

b) Perhitungan Vmap untuk mendapatkan nilai sentimen negatif

Vmap (negatif) = P (“negatif”) P (“ppkm” | negatif) P (“level4” | negatif)

P (“jogja” | negatif)

0 1 1 1 1
= 𝑋 𝑋 𝑋 𝑋 =0
2 15 15 15 15

c) Perhitungan Vmap untuk mendapatkan nilai sentimen netral

Vmap (netral) = P (“netral”) P (“ppkm” | netral) P (“level4” | netral)

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

sebanyak 0,2727272727. Diperoleh dari banyaknya kemunculan kata P (cj) pada

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

hasi sebanyak 0,5714285714. Begitupula dengan kelas sentimen negatif banyaknya

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)

= P(“negatif”) P(“ppkm” | negatif) P(“level4” | negatif) P(“jogja” | 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

Vmap(netral) = P(“netral”) P(“ppkm” | netral) P(“level4” | netral) P(“jogja” | netral)

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

adalah sebagai berikut:

32
Tabel 4.15 Evaluasi Model Tiga Kelas

Naïve bayes

True Class Netral Positif Negatif

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

berdasarkan tweet adalah sebanyak 330 tweet, kemudian pelabelan

menggunakan metode naïve bayes pada kelas positif sebanyak 141 tweet dan

pelabelan menggunakan metode naïve bayes pada kelas negatif sebanyak 30

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:

∑j=3 j=1 xjj


Akurasi =
jumlah data testing

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

digunakan adalah 70%: 30%. Menggunakan confusion matrix untuk memperoleh

akurasi, sehingga untuk hasil akhir dari masing-masing pembagian data training

dan data testing dapat dilihat pada tabel berikut:

Tabel 4.19 Akurasi Terbaik Perbandingan Data Testing dan Data Training

Data training : Data testing Akurasi

70% : 30% 0,95

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

A. Pembagian Data Training dan Data Testing

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.

Tabel 4.1: Dataset 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

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
5 Jogja ngeriii.. Nggilani.. Negatif
PPKM bullshit.
6 @gooners303 @EkoSatriyoP Positif
@Brajamusti_YK Mantap mas.... mudah
mudah jogja sudah bisa turun level ppkm nya
selamat mi… https://t.co/scqb19d4x2
7 @velisia_pd wkwkwkwk tunggu PPKM turun Positif
level ya, ku tunggu kamu di Jogja ��
8 @rainaldylomri Kalau PPKM dan pandemi Netral
udah usai, cuman pengin ke Wonogiri
(kampung halaman) dan ke Jogja (rumah
sah… https://t.co/1qOsBTmhAU

Tabel 4.3 Data Training

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

Tabel 4.4 Data Testing

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

1. #Jika belum terinstal tweepy dapat menginstal dengan perintah


berikut:
!pip install tweepy
import tweepy
import pandas as pd
from tweepy import OAuthHandler
2. # Memperoleh akses data ke Twitter
# http://apps.twitter.com
api_key = 'b2fz4i7RM8mrbpdwMrgrLChNb'
api_secret_key =
'hFE6StzRqB2crurBVQbB5fXXZU47segdB7jXbFLOCQ9NoJSGhe'
access_token = '1432979173916614656-
wP500KcMaE3iJ25tR2oxU9ArgIVqu8'
access_secret_token =
'iuWf1vC5gaOm60TS4tpdlm8vWVMqdvrObyt0yAUYvxoMq'

# membuat object authentication ke API Twitter


auth = tweepy.OAuthHandler(api_key, api_secret_key)
# mensetting access token and secret key
auth.set_access_token(access_token, access_secret_token)
# melakukan authentication ke Twitter API
api = tweepy.API(auth)
3. #Mengumpulkan cuitan dengan KATA KUNCI TERTENTU
tweets_data = []
api = tweepy.API(auth, wait_on_rate_limit=True)
for tweet in
tweepy.Cursor(api.search,q=["ppkm","yogyakarta"]).items(500):
tweets_data.append([tweet.author.screen_name,
tweet.lang,
tweet.created_at,
tweet.favorite_count,
tweet.retweet_count,
tweet.text,
tweet.user.location])
print(tweets_data)
4. #Mengubah data cuitan ke dalam DataFrame
import pandas as pd
tweets_pd = pd.DataFrame(tweets_data,
columns=['screen_name', 'lang', 'created_at',
'fav_count', 'retweet_count', 'text', 'location'])
display(tweets_pd)
5. # mengkonversi dataframe ke file csv
bytes_to_write = tweets_pd.to_csv('PPKM_revisi.csv')

37
Keterangan:

1. Baris 1 memasukan library yang di butuhkan dan untuk menginstal tweepy


2. Baris 2 untuk Memperoleh akses data ke Twitter, membuat object authentication ke API
Twitter dan melakukan authentication ke Twitter API
3. Baris 3 Mengumpulkan cuitan dengan kat kunci tertentu menggunakan Api key.
4. Baris 4 Mengubah data cuitan ke dalam DataFrame.
5. Baris 5 mengkonversi dataframe ke file csv

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:

Tabel 4.5 Data Simulasi Setelah Preprocessing

No Tweet setelah preprocessing Sentimen


0 jogja ada ppkm gak sih udah lama nggak naik Netral
pesawat
1 11fess ada yang lama ppkm jogjasolo pake krl harus Netral
pake surat tugas bgt ya
2 halo twitter aku mau promosi rental studio ku di jogja Positif
lagi ada promo diskon 50 untuk rental ppkm cukup
pengaruh
3 bangjun gue ken meet up sama mutualan yang di Netral
jogja tapi masih ppkm terus
4 sejak ppkm aku ga kerja trs balik jogja ngekos lagi Negatif
bikin jd sering mita uang saku ke emak ya allah aku k
5 mantap mas mudah mudah jogja sudah bisa turun Positif
level ppkm nya selamat mi
6 wkwkwkwk tunggu ppkm turun level ya ku tunggu Positif
kamu di jogja
7 kalau ppkm dan pandemi udah usai cuman pengin Netral
ke wonogiri kampung halaman dan ke jogja rumah
sah

38
Tabel 4.6: Data Training Setelah Preprocessing

N0 Tweet setelah preprocessing Sentimen

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

Tabel 4.7: Data Testing Setelah Preprocessing

0 jogja ada ppkm gak sih udah lama nggak Netral


naik pesawat
2 halo twitter aku mau promosi rental studio ku Positif
di jogja lagi ada promo diskon 50 untuk rental
ppkm cukup pengaruh
5 halo twitter aku mau promosi rental studio ku Positif
di jogja lagi ada promo diskon 50 untuk rental
ppkm cukup berpeng

Listing 4.5: Preprocessing Data

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))

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")
11 #menampilkan data crawling dan data sesudah preprocessing
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)
12 #menyimpan data
df_clean.to_excel(“cleaning_data06oktober.xlsx”)
13 # pemisahan feature dan label
x = df['komentar']
y = df['label']

x_train, x_val, y_train, y_val = train_test_split(x, y, test_size=0.1,


random_state=399)
print(f"training size {x_train.size}")
print(f"validasi size {x_val.size}")

Keterangan:

1. Baris 1 untuk membaca data atau menampilkan data


2. Baris 2 mengubah nama kolom data sentiment menjadi komentar, sentiment menjadi
label, dan menampilkan data yang sudah di rubah naam kolom
3. Baris 3 menampilkan jumlah Data set
4. Baris 4 membersihkan data untuk menghilangkan tanda baca seperti “,”,”.” ”/”,”!” dan
lain-lain.
5. Baris 5 menampilkan hasil sebelum cleaning dan sesudah cleaning
6. Baris 6 Tokenizing untuk memisahkan teks menjadi potongan kalimat
7. Baris 7 stop removal untuk mengurangi jumlah kata
8. Baris 8 case folding untuk mengubah huruf besar menjadi huruf kecil
9. Baris 9 steamming untuk mengubah kata menjadi kata dasar serta menghilangkan kata
imbuhan
10. Baris 10 menampilkan data sebelum dan sesudah steaming
11. Baris 11 untuk menampilkan data sebelum melakukan preprocessing dan data sesudah
preprocessing
12. Baris 12 menyimpan data hasil preprocessing ke dalam bentuk excel

41
13. Baris 13 untuk memisah label yang merupakan data training dan data testing.

C. Transformasi Data

Setelah tahap preprocessing telah dilakukan kemudian tahap selanjutnya yaitu

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.

Hasil encoding tersebut dapat dilihat pada tabel berikut:

Tabel 4.8: transformasi data menjadi fitur

No Komentar label kemunculan

0 jogja ada ppkm gak sih udah lama nggak naik pesawat Neutral 0

1 halo twitter aku mau promosi rental studio ku di jogja Positif 1

lagi ada promo diskon 50 untuk rental ppkm cukup

pengaruh

2 bangjun gue ken meet up sama mutualan yang di jogja Positif 1

tapi masih ppkm terus

3 pgn ke jogja lagi ppkm pgn ke dufan tapi tutup ya allah Neutral 0

kapan aku bisa libur sedikit aja

4 halo twitter aku mau promosi rental studio ku di jogja Positif 1

lagi ada promo diskon 50 untuk rental ppkm cukup

berpeng

5 11fess ada yang lama ppkm jogjasolo pake krl harus Neutral 0

pake surat tugas bgt ya

42
6 mantap mas mudah mudah jogja sudah bisa turun Positif 1

level ppkm nya selamat mi

7 tawar usaha sini kembali lagi program kami support Neutral 0

umkm saat ppkm daftar usaha lalu wa 62 8953

8 reposted from karna jadi dewasa tidak mudah apa lagi Positif 1

pas ppkmsulit sekali

Listing 4.8: Transformasi Data

1 # menampilkan informasi data


data.info()
2 # Mengecek apakah ada deret yang kosong
data.empty
3 # Melihat ukuran dari data
data.size
4 #TRANSFORMASI DATA
data.value_counts()
5 #menampilkan jumlah data masing-masing label
counts = data.label.value_counts()
print(counts)

print(“\nPredicting only 1 = [:1.f]% accuracy”.format(counts[2] /


sum(counts) * 501))
6 pd.get_dummies(data)
#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
7 data.to_csv("DUMMIES.csv")#menyimpan data

Keterangan:

1. Baris 1 untuk menampilkan informasi data

2. Baris 2 untuk mengecek apakah ada deret yang kosong

3. Baris 3 melihat ukuran data

4. Baris 4 menampilkan data yang sudah ditransformasi

5. Baris 5 menampilkan jumlah data masing-masing label

43
6. Baris 6 mengubah data menjadi sekelompok binominal

7. Baris 7 menyimpan data dalam bentuk cvs.

D. Tahapan Naïve Bayes Classifier

Setelah melakukan tahap Crawling data, Preprocessing, dan Transformasi data

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

data training (y_pred) , kemudian mencari nilai akurasi, selanjutnya menampilkan

tampilan confussion matrix, menampilkan tampilan grafik data simulasi, grafik hasil akhir

analisis sentimen dan pie chart hasil akhir sentiment analisis.

Tabel 4.9 Hasil Prediksi X_Test

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.

Listing 4.10 Hasil Prediksi X_Test

1 #split dataset in features and target variable


feature_cols = ['SENTIMEN','USERNAME']
X = df[feature_cols] # Features
Y = df.kemunculan # Target variable
2 #splitting data untuk memisahkan data training dan data
testing

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:

1. Baris 1 untuk menentukan target variabel untuk di jadikan fitur

2. Baris 2 untuk memisahkan data training dan data testing

3. Baris ke 3 untuk fungsi klasifikasi naïve bayes dan memasukan data training

pada fungsi kalsifikasi Naïve bayes

4. Baris 4 untuk menentukan hasil dari prediksi data testing.

Tabel 4.11 Hasil prediksi Y_Pred

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:

1. Baris 1 untuk menentukan hasil dari prediksi data training.

Tabel 4.12 Hasil Confussion Matrix

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.

Listing 4.13 Hasil Confussion Matrix

1 from sklearn.metrics import confusion_matrix


confusion_matrix(Y_test, y_pred)

Keterangan:

1. Baris 1 untuk menampilkan hasil dari matriks klasifikasi.

46
Tabel 4.14 Hasil Akurasi

Sentiment Precision Recall f1-score Support

-1 1.00 1.00 1.00 1

0 0.92 1.00 0.96 12

1 1.00 0.86 0.92 7

Accuracy 0.95 20

Macro 0.97 0.95 0.96 20

avg

Weighted 0.95 0.95 0.95 20

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

menemukan kembali sebuah informasi. F1-score yaitu perbandingan rata-rata precission

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

F1-score sebanyak 0.95 dan Support sebanyak 20.

Listing 4.14 Hasil Confussion Matrix

1 #akurasi
from sklearn.metrics import classification_report
print(classification_report(Y_test, y_pred))

Keterangan:

1. Baris 1 untuk menapilkan hasil akurasi.

Selanjutnya merupakan visualisasi dari data pelaksanaan Pada

Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM) dengan

memperhatikan jumlah dari label pada masing-masing kelas sentimen pada saat

pengambilan dari twitter dan presentase masing-masing kelas sentimen serta

confusion matrix dari masing-masing pembagian data training dan data testing

disajikan dalam Gambar 4.1, dan Gambar 4.2:

48
Gambar 4.1 Hasil Sentimen Analisis PPKM YOGYAKARTA

Pada Gambar 4.1 Dapat dilihat bahwa di Yogyakarta pada rentan waktu

3 September 2021 sampai dengan 14 September 2021. Sentimen masyarakat

tentang pelaksanaan pada Pemberlakuan Pembatasan Kegiatan Masyarakat

(PPKM) didominasi oleh sentimen netral yaitu tedapat 330 tweet berlabel netral,

141 tweet berlabel positif, dan tedapat 30 tweet berlabel negatif.

49
Listing 4.1 Hasil Sentimen Analisis PPKM YOGYAKARTA

1 import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(8, 8))

sentiment = ['neutral', 'positive', 'negative']

jumlah_sentiment = [329,141,30]

sns.barplot(sentiment,jumlah_sentiment)

ax.set_ylabel('jumlah')

ax.set_xlabel('Klasifikasi Sentiment')

ax.set_title('Hasil Klasifikasi Sentimen PPKM')

plt.show()

50
Gambar 4.2 Hasil Klasifikasi Sentimen PPKM YOGYAKARTA

Dilihat pada Gambar 4.2 presentase kelas sentimen dari data

pelaksanaan Pada Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM)

berdasarkan pembagian data training dan data testing sebesar 70%:30%

didominasi oleh sentimen berlabel netral dengan presentase sebesar 64,49%.

Sentimen berlabel positif sebesar 28.37% dan sentimen berlabel negatif sebesar

6.12%. Berdasarkan dari hasil presentase tersebut, dapat disimpulakan bahwa

banyak masyarakat yang memberikan tanggapan netral pada pelaksanaan

Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM) di Yogyakarta.

51
Listing 4.2 Hasil Klasifikasi Sentimen PPKM YOGYAKARTA

1 import matplotlib.pyplot as plt

# create data: an array of values


size_of_groups=[12,11,3]
data['label'].value_counts().plot.pie(autopct='%1.2f%%',shadow=True,fig
size=(11,10))

# 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

Penelitian ini dengan menggunakan metode Naïve Bayes Classifier menghasilkan

sentimen analisis pada Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM).

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.

Diperoleh presentase masing-masing kelas sentimen yaitu kelas sentimen berlabel

netral sebanyak 64.49%, kelas sentimen positif sebanyak 28.37% dan kelas sentimen

berlabel negatif sebanyak 6,12%. Dapat disimpulkan bahwa banyak masyrakat yang

memberikan tanggapan netral dengan adanya PPKM di Kota Yogyakarta.

53
B. Saran

Berdasarkan hasil dari sentimen analisis dan kesimpulan diatas, sehingga saran

yang dapat diberikan sebagai berikut:

1. Kepada pihak penanggulangan PPKM, dari hasil sentimen masyarakat negatif

dapat dijadikan evaluasi untuk lebih mempebaiki, meningkatkan kinerja serta

menjadikan acuan supaya dengan lebih bijaksanan dan meningkatkan kualitas

pelayanan kepada masyarakat secara maksimal.

2. Menggunakan bantuan algoritma cerdas computer dalam proses pelabelan kelas

sentimen netral, positif, negatif untuk proses pelabelan selain menggunakan

pelabelan manual.

3. Dapat menggunakan metode pengklasifikasian selain metode Naive Bayes

Classifier, salah satu contoh metode yang dapat digunakan yaitu K-Nearest

Neighbor, Support Vector Mechine dan lain-lain, sehingga dapat memungkinkan

akurasi dari model klasifikasi menjadi meningkat.

54
DAFTAR PUSTAKA

Dwiraswati, O., Siregar, K. N., Pengawas, B., & Indonesia, U. (2019). Penggunaan

Antibiotik Di Indonesia Dengan Naive Bayes Classifier Sentimen Analysis

on Twitter About the Use of Antibiotics in Indonesia With Naive Bayes

Classifier. 15(1), 1–9.

Pratama, D. Y., Informatika, P. S., Komunikasi, F., Informatika, D. A. N., &

Surakarta, U. M. (2020). IMPLEMENTASI ANALISIS SENTIMEN

MENGGUNAKAN NAÏVE BAYES.

Rasyadi, M. H. (2017). Analisis Sentimen Pada Twitter Menggunakan Metode

Naïve Bayes (Studi Kasus Pemilihan Gubernur Dki Jakarta 2017). 1–17.

Dwiraswati, O., Siregar, K. N., Pengawas, B., & Indonesia, U. (2019). Penggunaan

Antibiotik Di Indonesia Dengan Naive Bayes Classifier Sentimen Analysis

on Twitter About the Use of Antibiotics in Indonesia With Naive Bayes

Classifier. 15(1), 1–9 .

Pratama, D. Y., Informatika, P. S., Komunikasi, F., Informatika, D. A. N., &

Surakarta, U. M. (2020). IMPLEMENTASI ANALISIS SENTIMEN

MENGGUNAKAN NAÏVE BAYES.

Rasyadi, M. H. (2017). Analisis Sentimen Pada Twitter Menggunakan Metode

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

on Twitter About the Use of Antibiotics in Indonesia With Naive Bayes

Classifier. 15(1), 1–9.

Pratama, D. Y., Informatika, P. S., Komunikasi, F., Informatika, D. A. N., &

Surakarta, U. M. (2020). IMPLEMENTASI ANALISIS SENTIMEN

MENGGUNAKAN NAÏVE BAYES.

Rasyadi, M. H. (2017). Analisis Sentimen Pada Twitter Menggunakan Metode

Naïve Bayes

Astari, N. M. A. J., Dewa Gede Hendra Divayana, & Gede Indrawan. (2020). Analisis

Sentimen Dokumen Twitter Mengenai Dampak Virus Corona

Menggunakan Metode Naive Bayes Classifier. Jurnal Sistem Dan

Informatika (JSI), 15(1), 27–29. https://doi.org/10.30864/jsi.v15i1.332

Mala Olhang, M. M., Achmadi, S., & Wibisono, F. . A. (2020). Analisis Sentimen

Pengguna Twitter Terhadap Covid-19 Di Indonesia Menggunakan Metode

Naive Bayes Classifier (Nbc). JATI (Jurnal Mahasiswa Teknik Informatika),

4(2), 214–221. https://doi.org/10.36040/jati.v4i2.2695

Cahyono, Y. (2017). Analisis Sentimen pada Sosial Media Twitter Menggunakan

Naїve Bayes Classifier dengan Feature Selection Particle Swarm

Optimization dan Term Frequency. Jurnal Informatika Universitas

Pamulang, 2(1), 14. https://doi.org/10.32493/informatika.v2i1.1500

56
LAMPIRAN

57
Lampiran 1:

Tabel 5.1: Data Simulasi

DATA SENTIMEN ( TWEET DARI TWITTER) SENTIMEN TIMESTAMP


Jogja ada ppkm gak sih, udah lama nggak naik pesawat 😂 Neutral 21/08/30
RT @Papah_Pandasu: Halo twitter, aku mau promosi rental studio ku di jogja. lagi ada promo diskon 50% untuk rental. PPKM cukup berpengaruh… Positive 21/08/30
@bangjuunn_ Bangjun, gue pengen meet up sama mutualan yang di jogjaTapi masih ppkm terus Positive 21/08/31
Pgn ke jogja lagi ppkm, pgn ke dufan tapi tutup. Ya allah kapan aku bisa liburan, sedikit aja🥲 Neutral 21/08/31
RT @Matahari_1912: @ZoelHayat @JacksQuevara @Patiunus14 @LatanZa121325 @ZahrilLabung @PrilHuseno @bewoking @AJazuli5 @FKadrun @Zahrah402916… Neutral 21/08/31
@ZoelHayat @JacksQuevara @Patiunus14 @LatanZa121325 @ZahrilLabung @PrilHuseno @bewoking @AJazuli5 @FKadrun… https://t.co/ua8vjajzqX Neutral 21/08/31
Halo twitter, aku mau promosi rental studio ku di jogja. lagi ada promo diskon 50% untuk rental. PPKM cukup berpeng… https://t.co/5sL62hktWL Positive 21/08/31
-11fess ada yang selama ppkm jogja-solo pake krl? harus pake surat tugas bgt ya? Neutral 21/08/31
@gooners303 @EkoSatriyoP @Brajamusti_YK Mantap mas.... mudah mudah jogja sudah bisa turun level ppkm nya selamat mi… https://t.co/scqb19d4x2 Positive 21/08/31
Tawarkan usahamu disini!Kembali lagi program kami Support UMKM saat PPKMDaftarkan usahamu melalui WA +62 895-3… https://t.co/yy0cnTx8av Positive 21/08/31
RT @BlusukanBantul: Reposted from @nurwulanoktavia_ Karna menjadi dewasa tidak mudahApa lagi pas ppkm,sulit sekali~📸 @wegpranata_📍 @gum… Neutral 21/08/31
Still waiting level ppkm di jogja turun Positive 21/08/31
Hikmah vaksin dptnya di Jogja adlh aku bs skalian nyempilin agenda buat konsul. Trs pas booking sesi, awalnya takut… https://t.co/cJQFV4SQCj Neutral 21/08/31
Halloooo #SobatVisitingJogja! Di masa PPKM ini, pemerintah memanfaatkan aplikasi PeduliLindungi. Nah bagi kamu yang… https://t.co/g2cNPkpKUt Positive 21/08/31
Mendagri Tito Jelaskan Maksud dari Pelonggaran PPKM https://t.co/E4Vy5uuU7u #beritajogja #jogja #jogjaistimewa https://t.co/LrlqOujBIw Neutral 21/08/31
@Got7xox Iyaa wkwkwk berasa cepet beuut ckckckck Sinii sinii ke Jogja Kak😍eh lagi ppkm ding🙃 Neutral 21/09/01
Tarip ppkm lo jogja0895-0393-6943#BBWJogja #openBOjogja #bisyarjogja #jogjaopenBO #JogjaBO #jogjaincluderoom… https://t.co/CE1iy4ssqs Neutral 21/09/01
@schfess jogja we ppkm msih level 4 og Neutral 21/09/01
Sejak ppkm aku ga kerja... Trs balik jogja ngekos lagi... Bikin jd sering mita uang saku ke emak... Ya Allah, aku k… https://t.co/teUpEQxKFi Negative 21/09/01

58
Lampiran 2:

Tabel 5.2: Lanjutan Data Simulasi

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:

Tabel 5.3: Lanjutan Data Simulasi

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:

Tabel 5.4: Lanjutan Data Simulasi


Ku hanya bisa berdoa semoga PPKM Jogja dan Bali turun ke level 2, terus dibolehin luring nguli-ah ke Jogja satu sem… https://t.co/HobZLdcC5F Positive 21/09/03
Ini Syarat yang Harus Dipenuhi DIY kalau Mau PPKM Turun Level https://t.co/9xnzHMHYWb #beritajogja #jogja… https://t.co/TLIWAkF95M Positive 21/09/03
RT @suaradotcom: Puji Sulastri, salah satu pelaku usaha oleh-oleh khas Jogja di Malioboro, hanya menggantungkan hidupnya pada aktivitas ber… Neutral 21/09/03
Hasil Rapat dengan Luhut: DIY Mendekati PPKM Level 3 https://t.co/yDHPnkXauW #beritajogja #jogja #jogjaistimewa https://t.co/IDvWuRSWjP Neutral 21/09/03
Puji Sulastri, salah satu pelaku usaha oleh-oleh khas Jogja di Malioboro, hanya menggantungkan hidupnya pada aktivi… https://t.co/IqWVfUCYNH Positive 21/09/03
@ailuromeloden @bellahanahana TAPI EMANG JOGJA GA KELAR2 emang org2nya ngeyel trs pemerintah juga ga tegas masa kmr… https://t.co/0XpB3NlbAb Neutral 21/09/03
setelah PPKM,..yuk monggo direncakan liburannya bersama Buni Tours Jogja yaa...🙏🙂paket tour dieng full day (12-14… https://t.co/YtjzgqlDws Positive 21/09/03
Kemenhub Tegaskan Syarat Perjalanan Transportasi Tidak Berubah Selama PPKM https://t.co/WkSMnbm8uX #beritajogja #jogja #jogjaistimewa Positive 21/09/03
PPKM Level 2, Bioskop di Kota Semarang Boleh Buka https://t.co/VZc3eEcy3k #beritajogja #jogja #jogjaistimewa https://t.co/uc51qCJDkO Positive 21/09/03
sejumlah destinasi wisata di DIY belum dibuka karena masih berstatus PPKM Level 4 https://t.co/GrvWoiBXaX Neutral 21/09/03
@humas_jogja Entah apa yg salah tp sy merasa heran sama penanganan kopit di jogja ini, daerah tidak seberapa luasny… https://t.co/Ia1cVVWtPb Negative 21/09/03
Tetap PPKM Level 4 Meski Melandai, Kadinkes Gunungkidul Beri Penjelasan https://t.co/gQbBjqZJpV Neutral 21/09/03
RT @IDNTimesJogja: Kunci menurunnya level PPKM tergantung dari masyarakat https://t.co/gXADCOEGDg Positive 21/09/03
PPKM Level 4 DIY Diperpanjang31 Agustus - 6 September 2021Berdasarkan Ingub No.25/INSTR/2021#PPKMLevel4… https://t.co/kE2D1qHNjQ Positive 21/09/03
Ga kebayang kalo vaksin di Jogja. Lokasi paling deket pun tetep harus naik motor. Ribet kalo bawa-bawa bocil. Ditin… https://t.co/e26VT9eMuF Negative 21/09/03
Angka Kematian Masih Tinggi Jadi Penyebab Level PPKM Belum Turun https://t.co/lEjUkWUToS #beritajogja #jogja… https://t.co/1QsdA75uMf Neutral 21/09/03
Kasus Covid-19 Kota Magelang Sudah Turun tapi Masih PPKM Level 4, Ini Penjelasan Sekda https://t.co/HDabsAPR7X… https://t.co/x1rhFDdUL7 Positive 21/09/03
Ngarepnya sih ppkm udahan aja, biar hotel2 di jogja hidup lagi, jadi massu gausah trip keluar kota (bahkan pulau) t… https://t.co/7cNuV5jhY1 Neutral 21/09/03
Pertokoan &amp; Pusat Perbelanjaan Diklaim Patuh Aturan Pelonggaran PPKM https://t.co/x8svoSWGWN #beritajogja #jogja… https://t.co/ltvWYPo5Bi Positive 21/09/03
Turunkan Level PPKM, Pemkab Bantul Genjot Vaksinasi https://t.co/dRZrC0HHWz #beritajogja #jogja #jogjaistimewa https://t.co/lteuMipIcz Positive 21/09/03
#Jogja | 5 Daerah di Jogja ini PPKM level 4, di Jawa Timur ada 9, Jateng hanya 2 - Kontan https://t.co/8iE2bPdlQn Positive 21/09/04
Angka Kematian Masih Tinggi Penyebab DIY PPKM Level 4 https://t.co/YbLh2uTaqD https://t.co/bMDmtdzRA2 Positive 21/09/04
@fernanda_xyz "Sepuntene nggih buk dereng saget dolan maleh niki jogja taseh ppkm level 3.Mangke kulo nk mantuk ng… https://t.co/SXlrtWS84o Positive 21/09/04
PPKM Diperpanjang, Ini Aturan Perjalanan Naik Damri https://t.co/9Z61DAvxQF #beritajogja #jogja #jogjaistimewa https://t.co/MaxHuvBiK8 Positive 21/09/04
DIY masih PPKM level 4 ya Lur. Sumber : @jogjatvdottv https://t.co/pwNmDU1jB4 Neutral 21/09/04
@tempodotco Pantesan jogja ppkm level 4 mulu kaga turun2 hadee Negative 21/09/04
RT @IniSleman: Tribun Jogja - Angka Kematian Covid-19 Masih Tinggi, Sleman Masih PPKM Level 4 https://t.co/yuoQQE7gYZ Neutral 21/09/04
@Jeng_Lastri Wkwkw..koq jadi kaget lagi Yo mbak.. beda bgt sm Jogja yang sedang PPKM, jalanan losss..ga padet... Neutral 21/09/04
Tribun Jogja - Angka Kematian Covid-19 Masih Tinggi, Sleman Masih PPKM Level 4 https://t.co/yuoQQE7gYZ Neutral 21/09/04
Ketika saya mencari makan,ternyata jogja sudah tidak kenal ppkm hahaha Negative 21/09/04
@Harian_Jogja Dengan kondisi saat ini di PPKM Level 4, apakah ini tidak melanggar? Berita ini mestinya ketika PPKM… https://t.co/cClprhQ5ws Neutral 21/09/04
jogja tu ppkm lvl brp sih Neutral 21/09/04
RT @Ternoda_: Uda lah jogja gosa lagi ada LEVEL2an PPKM nya, bus besar wisata loss doll sementara yg punya lapak malam banyak di oprak2 bah… Negative 21/09/04
Sultan Ungkap Penyebab PPKM di DIY Tak Kunjung Turun Level https://t.co/aAdxjgkRnT #beritajogja #jogja… https://t.co/vSFpk9xXAh Neutral 21/09/04
@jogmfs jogja unofficially ppkm level 0 ✨ Neutral 21/09/04
Ini Alasan DI Yogyakarta Masih Terapkan PPKM Level 4, Begini Penjelasan Sekda DIY https://t.co/8s2GzbDul5 Neutral 21/09/04
RT @Pai_C1: Orang Jogja tu terkenal setia..Jangankan sama pasangan..Sama PPKM aja setia di level 4. https://t.co/Ga4ZOsy7NQ Neutral 21/09/04
RT @KabarGunkid: Jelang Akhir PPKM Level 4 Ke-6, Zona Hijau Tingkat RT di Gunungkidul Capai 92 Persen https://t.co/mOoY6DzKpz Neutral 21/09/04
PPKM Turun Level di Banyak Daerah, Penumpang Kereta Api Naik 20,7 Persen https://t.co/EfqXvc46FP #beritajogja… https://t.co/o532Wa85CR Neutral 21/09/04
Jogja dan Bali banyak kesamaannya. Paling tidak untuk sekarang sama-sama PPKM Level 4. Tos 🥲🥲 Neutral 21/09/04
@Bang_Garr Jogja PPKM nya diperpanjang, Bang, masih diminta rebahan..*)kapan kerjanya? Neutral 21/09/04
RT @andreasharsono: Seniman dari Forum Jogja Street Art bikin mural di Jembatan Kewek sbg protes terhadap kebijakan PPKM dari pemerintah ht… Neutral 21/09/04
RT @IDNTimesJogja: PTM mulai diizinkan di wilayah PPKM level 1-3 https://t.co/ZgddTOosj1 Neutral 21/09/04
PTM mulai diizinkan di wilayah PPKM level 1-3 https://t.co/ZgddTOosj1 Positive 21/09/04
jebul jogja ijeh PPKM level 4 to Positive 21/09/04
-11fess gaes, selama PPKM ada yg pernah naik KRL Solo-Jogja? kalau ada, boleh ku ketuk dm nya untuk tanya tanya? thank you 💞 Positive 21/09/04
Seniman dari Forum Jogja Street Art bikin mural di Jembatan Kewek sbg protes terhadap kebijakan PPKM dari pemerintah https://t.co/JHehknDU4c Positive 21/09/04
Jog ada komunitas clubbing ngga sih di jogja? Kalo udah kelar PPKM, ayo keluar bareng Positive 21/09/04
RT @IDNTimesJogja: Permintaan kamar hotel di Sleman naik hingga 12 persen https://t.co/SJWXHJwJ8f Positive 21/09/04
Pengen nongkrong tapi jogja masih ppkm level 4, aku pernah keluar untuk ketemu temen juga bisa di itung make jari j… https://t.co/kO3BIQXU3A Positive 21/09/04

61
Lampiran 5:

Tabel 5.5: Lanjutan Data Simulasi

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&amp;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:

Tabel 5.6 Lanjutan Data Simulasi


@nightclouddd Masih, Jogja ijik ppkm soale Neutral 21/09/04
Giliran udh ada temen yg skuy ke jogja eh ppkm ga selesai selesai cau Neutral 21/09/04
@korbanzonasi malioboro emang udah buka tah? wkwkw ppkm masih level 4 bu jogja kotaa :'' mengsedihh Negative 21/09/04
Ppkm diperpanjang, kecuali jogja ketok e https://t.co/0tg3hkRXgg Neutral 21/09/04
Apakah #gramedia jogja sudah buka atau belum ya?kn msh ppkm 🥲 Neutral 21/09/04
RT @Harian_Jogja: PPKM Jawa-Bali Diperpanjang, Luhut : Mal Tutup Pukul 21.00 WIB https://t.co/UKHT9hzpwt #beritajogja #jogja #jogjaistimewa… Neutral 21/09/04
Jogja tuh belum mau turun apa ppkm nya :( Neutral 21/09/04
PPKM Jawa-Bali Diperpanjang, Luhut : Mal Tutup Pukul 21.00 WIB https://t.co/UKHT9hzpwt #beritajogja #jogja… https://t.co/C0nY32fYqd Neutral 21/09/04
@Lemonpeachyy_ Iyaaa udah rame dimana mana😭 aku kerja dari jogja ppkm level 4 sampe ini level 3 dari yg jalan sepiiii bgt sampe macet lagi☹ ️ Neutral 21/09/04
Status PPKM Terbaru: Semarang Raya Level 2, Solo Raya Level 3, Jogja Tetap PPKM Level 4 https://t.co/covGTBNyMj Neutral 21/09/04
Rata-rata BOR (Bed Occupancy Ratio) nasional sudah berada sekitar 27 persen," ucap Presiden Jokowi dalam keterangan… https://t.co/DFPuFbB8iM Positive 21/09/04
Keputusan tersebut diumumkan Presiden Joko Widodo pada Senin (30/8/2021) malam."Dalam 1 minggu terakhir ini sudah… https://t.co/82XMKfP5lo Neutral 21/09/04
#SobatVisitingJogja, Pemerintah kembali melanjutkan Pemberlakuan Pembatasan Kegiatan Masyarakat (PPKM) Level 2-4 di… https://t.co/D7JH6t9XeP Positive 21/09/04
@NewbieSanti mosok ?Coba nek wes g ppkm tak ning Jogja ya Neutral 21/09/04
RT @kumparan: Pemerintah kembali memperpanjang masa penerapan PPKM Level di Pulau Jawa dan Bali berlaku mulai Selasa (31/8) sampai dengan 6… Neutral 21/09/04
oh Jogja masih PPKM lv 4 Neutral 21/09/04
Jelang Akhir PPKM Level 4 Ke-6, Zona Hijau Tingkat RT di Gunungkidul Capai 92 Persen https://t.co/mOoY6DzKpz Neutral 21/09/04
RT @cnbcindonesia: Yang Lain Turun, Mohon Maaf Jogja &amp; Bali masih PPKM Level 4 https://t.co/t8ZsMUh2Mm Positive 21/09/04
@Ternoda_ @humas_jogja mangga sambut perpanjangan PPKM. Positive 21/09/04
RT @Harian_Jogja: PPKM Diperpanjang hingga 6 September, Jogja Masih Bertahan di Level 4 https://t.co/hZwbw5dcUh #beritajogja #jogja #jogjai… Positive 21/09/04
Yang Lain Turun, Mohon Maaf Jogja &amp; Bali masih PPKM Level 4 https://t.co/t8ZsMUh2Mm Neutral 21/09/05
RT @Bisniscom: PPKM Jawa-Bali hingga 6 September 2021, Luhut : Dine in di Restoran 50 Persen, Mal Tutup Pukul 21.00 WIB https://t.co/xLwF5O… Positive 21/09/05
RT @jogmfs: Jog mau tanya daerah ppkm di jogja level brpa ya? Positive 21/09/05
Jog mau tanya daerah ppkm di jogja level brpa ya? Neutral 21/09/05
Pas PILIHAN LURAH bulan oktober ntar PPKM JOGJA juga lgs ilang kok :) Neutral 21/09/05
RT @Harian_Jogja: PPKM Jawa-Bali Diperpanjang hingga 6 September: Ini Kata Jokowi https://t.co/m3fqHmFKYP #beritajogja #jogja #jogjaistimew… Positive 21/09/05
RT @Harian_Jogja: PPKM Jawa-Bali Diperpanjang, Jokowi Janji Longgarkan Sejumlah Kebijakan https://t.co/lQGlWt1POv #beritajogja #jogja #jogj… Positive 21/09/05
PPKM Jawa-Bali Diperpanjang, Jokowi Janji Longgarkan Sejumlah Kebijakan https://t.co/lQGlWt1POv #beritajogja #jogja… https://t.co/6qgJq6jnIh Neutral 21/09/05
PPKM kembali diperpanjang hingga 6 September 2021 dengan penyesuaian penyesuaian baru.Secara nasional, ada perkem… https://t.co/wyQaOWyhvH Neutral 21/09/05
ppkm jogja ga turun turun level ni slot toeflku kapan tak pake Neutral 21/09/05
Ppkm di solo aja udah turun ke level 3, jogja kapan ya Neutral 21/09/05
@CommuterLine ini ppkm diperpanjang lagi kan, mau ke jogja pakai krl kudu pakai surat kerja lagi?gak bisa pakai apl… https://t.co/CRbFcg4Jsf Neutral 21/09/05
PPKM Jawa-Bali Diperpanjang hingga 6 September: Ini Kata Jokowi https://t.co/m3fqHmFKYP #beritajogja #jogja… https://t.co/yeAReSyMWB Neutral 21/09/05
jogja skrg ppkm level brp si Neutral 21/09/05
RT @IDNTimesJogja: Sebelum pandemik, PAD parkir di Sleman Rp2,53 miliar https://t.co/FOJgINc4p6 Positive 21/09/05
Jogja hari ini rame banget, ya. Macet juga, padahal PPKM. Terus tadi GSP juga ramai, pada antre apa ya? Pembagian almamater? Neutral 21/09/05
RT @Dapi__: @Ternoda_ @humas_jogja Hallo @humas_jogja dan @HumasBantul saya juga mau tanya nich, katanya PPKM LEVEL 4 warga disuruh tertib… Neutral 21/09/05
Tolong PPKM udahan, aku mau moleh.. 1,5th ga ketemu orang tua, ga lihat Jogja, ga makan kupang! Negative 21/09/05
#Jogja | PPKM Level 4 Berakhir, Gugus Tugas Covid-19 Kulon Progo Berharap Ada Penurunan L https://t.co/duh9Dbiazy Positive 21/09/05
@humas_jogja Alhamdulillah sudah semakin menurun ya, mohon sampaikan apresiasi kami min, dan agar sekat PPKM nya d… https://t.co/RxFeCygAgk Positive 21/09/05
RT @jogmfs: Jog doain PPKM di Jogja diturunake level e kabeh wis iso buka meneh, jaga prokes ben ora mundak meneh. Bismillahirrahmanirrahim… Neutral 21/09/05
Jog doain PPKM di Jogja diturunake level e kabeh wis iso buka meneh, jaga prokes ben ora mundak meneh. Bismillahirr… https://t.co/uLWw7swA9b Neutral 21/09/05
@scorpimochis sama bang, gw kereta pake kartu kereta, mrt jg udh pny kartunya, transjakarta jarang pake... trs ini… https://t.co/uTEnpRYml0 Neutral 21/09/05
@schfess jogja masih ppkm level 4 ga sih??? Neutral 21/09/05
Bus Pariwisata Masuk DIY Saat PPKM Level 4, Sri Sultan Hamengku Buwono X: di Rumah Tidak Tahan https://t.co/oncyBEtARp Neutral 21/09/05

63
Lampiran 7:

Tabel 5.7: Data tweet hasil preprocessing

64
Lampiran 8:

Tabel 5.8: Lanjutan data tweet hasil preprocessing

65
Lampiran 9:

Tabel 5.9: Lanjutan data tweet hasil preprocessing

66
Lampiran 10:

Tabel 5.10: Lanjutan data tweet hasil preprocessing

67
Lampiran 11:

Tabel 5.11: Lanjutan data tweet hasil preprocessing

68
Lampiran 12:

Tabel 5.12: Lanjutan data tweet hasil preprocessing

69
Lampiran 13:

Tabel 5.13: Hasil Polarity Pada Kelas Label Sentimen

Label Komentar_crawling Komentar_clean Polarity


30 30 30
negatif

330 330 330


Netral

Positif 141 141 141

70
Lampiran 14:

Tabel 5.14: Hasil Akurasi Pada Kelas Sentimen

Precision Recall f1-score support


-1 1.00 1.00 1.00 1
0 0.92 1.00 0.96 12
1 1.00 0.86 0.92 7
Accurasi 0.95 20
Macro avg 0.97 0.95 0.96 20
Weighted avg 0.97 0.95 0.95 20

71
Lampiran 15:

Algoritma Script Phyton Pesiapan Package


# Import Library Standard
import numpy as np
import pandas as pd
import re
import string
import nltk
import array
import matplotlib.pyplot as plt
import seaborn as sns

#Jika belum terinstal tweepy dapat menginstal dengan perintah berikut:


!pip install tweepy
import tweepy
import pandas as pd
from tweepy import OAuthHandler

# Import Library Sklearn


from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV,
RandomizedSearchCV
from sklearn.preprocessing import LabelEncoder
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.linear_model import RidgeClassifier, LogisticRegression
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report, plot_confusion_matrix
from sklearn.pipeline import make_pipeline

72
from sklearn.compose import ColumnTransformer

# Import Library untuk Stemming


!pip install Sastrawi
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory
from Sastrawi.StopWordRemover.StopWordRemoverFactory import
StopWordRemoverFactory

Algoritma Script Phyton crawling data di Twitter


# Memperoleh akses data ke Twitter
# http://apps.twitter.com
api_key = 'b2fz4i7RM8mrbpdwMrgrLChNb'
api_secret_key = 'hFE6StzRqB2crurBVQbB5fXXZU47segdB7jXbFLOCQ9NoJSGhe'
access_token = '1432979173916614656-wP500KcMaE3iJ25tR2oxU9ArgIVqu8'
access_secret_token = 'iuWf1vC5gaOm60TS4tpdlm8vWVMqdvrObyt0yAUYvxoMq'

# membuat object authentication ke API Twitter


auth = tweepy.OAuthHandler(api_key, api_secret_key)
# mensetting access token and secret key
auth.set_access_token(access_token, access_secret_token)
# melakukan authentication ke Twitter API
api = tweepy.API(auth)
#Mengumpulkan cuitan dengan KATA KUNCI TERTENTU
tweets_data = []
api = tweepy.API(auth, wait_on_rate_limit=True)
for tweet in tweepy.Cursor(api.search,q=["ppkm","yogyakarta"]).items(500):
tweets_data.append([tweet.author.screen_name,
tweet.lang,
tweet.created_at,
tweet.favorite_count,

73
tweet.retweet_count,
tweet.text,
tweet.user.location])
print(tweets_data)

#Mengubah data cuitan ke dalam DataFrame


import pandas as pd
tweets_pd = pd.DataFrame(tweets_data,
columns=['screen_name', 'lang', 'created_at', 'fav_count',
'retweet_count', 'text', 'location'])
display(tweets_pd)

# mengkonversi dataframe ke file csv


bytes_to_write = tweets_pd.to_csv('ppkm19.csv')

Algoritma Script Phyton input data


# 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
# mengubah nama dataset
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

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

Algoritma Script Phyton tokenizing data


#tokenization

def tokenization(tweet):
tweet = re.split('\w+', tweet)
return tweet

df['TOKENIZATION'] = df['komentar'].apply(lambda x: tokenization(x.lower()))


df.head(5)

Algoritma Script Phyton stop removal data


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)
Algoritma Script Phyton case folding data
#case folding (mengubah huruf menjadi kecil)

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)

Algoritma Script Phyton stemming data


# Membuat stemmer
#stemming di gunakan untuk mengubah kata menjadi kata dasar
#menghilangkan kata imbuhan
stemmerFactory = StemmerFactory()
stemmer = stemmerFactory.create_stemmer()

# 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)

#menyimpan data data bentuk excel


df_clean.to_excel("cleaning_data16.xlsx")

76
#menampilkan berapa data training dan testing
# pemisahan feature dan label
x = df['komentar']
y = df['label']

x_train, x_val, y_train, y_val = train_test_split(x, y, test_size=0.1, random_state=399)


print(f"training size {x_train.size}")
print(f"validasi size {x_val.size}")

Algoritma Lanjutan Script Phyton Transformasi data


# Read Dataset
data = pd.read_excel('cleaning_data16.xlsx')
# data = pd.read_excel('Dataset MRT Jakarta.xlsx')
data.head()
# menampilkan informasi data
data.info()
# Mengecek apakah ada deret yang kosong
data.empty
# Melihat ukuran dari data
data.size
#TRANSFORMASI DATA
data.value_counts()
#mengetahui jumlah label
counts = data.label.value_counts()
print(counts)

print("\nPredicting only 1 = [:1.f]% accuracy".format(counts[2] / sum(counts) * 501))


pd.get_dummies(data)

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

Algoritma Script Phyton Naïve Bayes


#hapus data yang tidak dibutuhkan
#transformasi untuk mengubah string menjadi float
to_drop = ['DATA SENTIMEN ( TWEET DARI TWITTER)']

df.drop(to_drop, inplace=True, axis=1)


df.head()
#merubah sentimen menjadi string
df['SENTIMEN'].replace(['Positif','positif'], 0,inplace= True)
df['SENTIMEN'].replace(['Netral','netral'], 1,inplace= True)
df['SENTIMEN'].replace(['Negatif','negatif'], 2,inplace= True)

df['USERNAME'].replace(['Ahmad Abdul '], 0,inplace= True)


df['USERNAME'].replace(['Nuranita'], 1,inplace= True)

f['USERNAME'].replace(['Megawati'], 2,inplace= True)


df['USERNAME'].replace(['Nur intan'], 3,inplace= True)
df['USERNAME'].replace(['Arif rahman'], 4,inplace= True)
df['USERNAME'].replace(['Iqbal kurnia'], 5,inplace= True)

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()

# Memasukkan data training pada fungsi klasifikasi Naive Bayes


nbtrain = modelnb.fit(X_train, Y_train)
# Menentukan hasil prediksi dari x_test
y_pred = nbtrain.predict(X_test)
y_pred
np.array(Y_test)
# Menentukan probabilitas hasil prediksi
nbtrain.predict_proba(X_test)
#menentukan bentuk matriks
from sklearn.metrics import confusion_matrix
confusion_matrix(Y_test, y_pred)
#akurasi

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')

#konversi label ke polaritas


def convert(polarity):
if polarity == 'positif':
return 1
elif polarity == 'netral':
return 0
else:
return -1
data['polarity'] = data['label'].apply(convert)
#menampilkan data polarity
data.groupby(by='label').agg('count')
#menampilkan diagram data clean
plt.figure(figsize=(16,8))
topdata = df.groupby('Komentar_clean')['label'].count().sort_values(ascending=False)
#row id jangan dihapus dulu
topdata = topdata[:20]

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

# create data: an array of values

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

Anda mungkin juga menyukai