Analisis Sentimen Menggunakan Metode Naïve Bayes [PDF]

  • Author / Uploaded
  • fitri
  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

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. Katakata 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 Nazaruddin Siregar2



Audiaprilliat



Muhammad Rasdyan Hasyadi



Fauziah Afshoh



Mariam Ulfa



Judul artikel



Analisis Sentimen Pada Twitter Terhadap Penggunaan antibiotik di Indonesia Dengan Naive Bayes Classifier



Analisis Sentimen Pasca Pemilihan Umum Indonesia tahun 2019 melalui Twitter dengan Metode Naive Bayes



Analisis Sentimen Pada Twitter Menggunakan Metode Naive Bayes (Studi Kasus Pemilihan Gubernur DKI JAKATA 2017)



Analisis Sentimen Menggunakan Naive Bayes Untuk Melihat Persepsi Masyarakat Terhadap Kenaikan Harga Jual Rokok Pada Media Sosial Twitter



Analisis Sentimen Menggunakan Metode Naïve Bayes Pada Pemberlakuan Pembatasan Kegiatan Masyarakat(PPKM)



Bulan, tahun Terbit



1 Tahun 2019



November 2019



Agustus 2017



Januari 2017



8



Tabel 1.2 Lanjutan Tabel kajian penelitian terdahulu Masalah Peneitian



Metode/Teori



Masih ditemukan perilaku yang salah dalam penggunaan antibiotik sehingga menjadi risiko terjadinya resistensi antibiotik, diantaranya: peresepan antibiotik secara berlebihan oleh tenaga kesehatan; adanya anggapan yang salah di masyarakat bahwa antibiotik merupakan obat dari segala penyakit; dan lalai dalam menyelesaikan treatment antibiotic Naive Bayes Classifier (NBC).



Mendeskripsikan dan menggambarkan topik-topik yang dibahas oleh pendukung dan masyarakat Indonesia mengenai pasangan calon presiden dan wakil presiden JokowiMa’ruf Amin dan Prabowo SubiantoSandiaga Salahudin Uno.



Dibutuhkannya analisis tentang opini publik pada pasangan cagub dan cawagub Pilkada DKI Jakarta 2017.



Melakukan analisa sentimen untuk melihat persepsi masyarakat terhadap kenaikan harga jual rokok pada media sosial twitter menggunakan metode Naïve Bayes Classifier dengan mengklasifikasikan sentimen menjadi positif, negatif dan netral



Bagaimana menguji keakuratan metode Naïve bayes yang diterapkan pada Perberlakukan Pembatasan Kegiatan Masyarakat untuk menentukan analisis sentimen.



Naive Bayes Classifier (NBC).



Naïve Bayes Classifier



Naïve Bayes Classifier



Naïve Bayes Classifer



9



Tabel 1.3 Lanjutan Tabel kajian penelitian terdahulu Objek Penelitian



Tenaga kesehatan dan Masyarakat.



Hasil Penelitian



diperoleh nilai rata-rata akurasi 84% dengan rincian precission 88%, recall 81% dan fmeasure 84% dengan jumlah 200 tweet (100 negatif,100 positif) dibagi ke dalam data latih:data uji = 9:1



Tweet pendukung dan masyarakat Indonesia terhadap pasangan calon presiden Joko Widodo dan Prabowo Subianto pasca Pemilihan Umum 2019 di platform Twitter memiliki pola persepsi negatif sebesar 52% persepsi positif yaitu 18% dan Persepsi netral memiliki nilai 31% lebih tinggi dari persepsi positif. Tingkat akurasi klasifikasi Naive Bayes terhadap dataset training bernilai 81% dan dataset testing 76%,nilai precision untuk sentimen positif 86,65%, sentimen negatif 77,15%, dan netral bernilai 80,95%.



Pengguna internet (tiwtter, blog, mailing list, microblogging,dll)



Masyarakat penggna media social



Perberlakukan Pembatasan Kegiatan Masyarakat Yogyakarta (PPKM)



diperoleh akurasi data uji sebesar 60.60% dengan tingkat sensitifitas tertinggi terdapat pada kelas positif dan spesifisitas tertinggi terdapat pada kelas netral.



menghasilkan sentimen positif paling banyak terbentuk dalam menanggapi wacana kenaikan harga jual rokok. Hasil dari pengujian kinerja sistem menggunakan data latih 150 positif, 150 negatif dan 50 netral dengan metode Naïve Bayes Classifier.



Lebih banyak masyarakat yang beropini netral dibandingkan positif dan negatif pada pelaksanaan Ppkm Yogyakarta.



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 langkahlangkah 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: P (v j) =



𝑛+1 𝑛+𝑓𝑘



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



𝑉𝑚𝑎𝑝 = arg max



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



(2.4)



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 lama nggak naik pesawat 😂



ppkm 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 D1



D2



Fitur jogja



Kemunculan 1



Kelas sentimen Netral



ppkm



1



Positif



pesawat



1



Netral



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 Positif Negatif Netral



Data(j) 1 0 2



1 0 1



Fd(cj) 2 0 3



P(cj) 2/2 0/2 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) Jogja Ppkm Pesawat Jogja Ppkm Level 4



Kelas sentimen© Positif 0+1/4+10 = 1/14 1+1/4+10=2/14 0+1/4+10=1/14 1+1/4+10=2/14 0+1/4+10=1/14 1+1/4+10=2/14



Negatif 0+1/5+10=1/15 0+1/5+10=1/15 1+1/5+10=2/15 0+1/5+10=1/15 1+1/5+10=2/15 0+1/5+10=1/15



Netral 1+1/1+10=2/11 0+1/1+10=1/11 0+1/1+10=1/11 0+1/1+10=1/11 0+1/1+10=1/11 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 masingmasing 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 Level4



Masa ppkm level4 jogja panjang pemda segera jalur bansos bagi warga



Jogja 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 1 3 4 6 7 8



Sentimen Netral Positif Netral Netral Positif Positif



Ada 1 0 0 1 0



Aja 0 0 1 0 0 0



Bangjun 1 0 0 0 0 0



Bgt 0 0 0 1 0 0



Dufan 0 0 1 0 0 0



Daftar 0 0 0 0 0 1



Jogja 1 1 1 1 1 0



Lama 1 0 0 1 0 0



Ppkm 1 1 1 1 1 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



14



= 𝑋



𝑋



2 14



𝑋



1 14



2



𝑋



= 0,5714285714



14



b) Perhitungan Vmap untuk mendapatkan nilai sentimen negatif Vmap (negatif) = P (“negatif”) P (“ppkm” | negatif) P (“level4” | negatif) P (“jogja” | negatif) 0



1



2



15



= 𝑋



c)



𝑋



1 15



𝑋



1 15



𝑋



1 15



=0



Perhitungan Vmap untuk mendapatkan nilai sentimen netral Vmap (netral) = P (“netral”) P (“ppkm” | netral) P (“level4” | netral) P (“jogja” | netral) 3



1



2



11



= 𝑋



𝑋



1 11



𝑋



1 11



𝑋



2 11



𝑋



1 11



= 0,2727272727



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



14



positif) P(“level4” | positif) P(“jogja” | positif)”= 𝑋



𝑋



2 14



𝑋



1 14



𝑋



2 14



mendapatkan



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 2



X



1 15



X



1 15



X



1



1



15



X . Mendapatkan hasi sebanyak 0 dan pada kelas sentimen netral 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 2



𝑋



1 11



𝑋



1 11



𝑋



1 11



𝑋



2 11



𝑋



1



,



11



sehingga



mendapatkan



hasil



sebanyak



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



0



1



6



= ConfusionMatrix



Dilihat dari confusion matrix diatas, bahwa hasil akurasi dari model klasifikasi pada analisis sentimen ini berdasarkan pada persamaan (2.4) adalah:



Akurasi = = =



∑j=3 j=1 xjj 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 pesawat 😂 -11fess ada yang selama ppkm jogja-solo pake krl? harus pake surat tugas bgt ya? RT @Papah_Pandasu: Halo twitter, aku mau promosi rental studio ku di jogja. lagi ada promo diskon 50% untuk rental. PPKM cukup berpengaruh… @bangjuunn_ Bangjun, gue pengen meet up sama mutualan yang di jogja



Netral



1 2



3



Netral Positif



Positif



35



Tabel 4.2: Lanjutan Dataset Simulasi 4



5 6



7 8



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



Negatif



Negatif Positif



Positif Netral



Tabel 4.3 Data Training No 1 3 4



6



7 8



Tweet -11fess ada yang selama ppkm jogja-solo pake krl? harus pake surat tugas bgt ya? @bangjuunn_ Bangjun, gue pengen meet up sama mutualan yang di jogja 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 @gooners303 @EkoSatriyoP @Brajamusti_YK Mantap mas.... mudah mudah jogja sudah bisa turun level ppkm nya selamat mi… https://t.co/scqb19d4x2 @velisia_pd wkwkwkwk tunggu PPKM turun level ya, ku tunggu kamu di Jogja �� @rainaldylomri Kalau PPKM dan pandemi udah usai, cuman pengin ke Wonogiri (kampung halaman) dan ke Jogja (rumah sah… https://t.co/1qOsBTmhAU



Sentimen Netral Positif Negatif



Positif



Positif Netral



Tabel 4.4 Data Testing No 0 2



5



Tweet Jogja ada ppkm gak sih, udah lama nggak naik pesawat 😂 RT @Papah_Pandasu: Halo twitter, aku mau promosi rental studio ku di jogja. lagi ada promo diskon 50% untuk rental. PPKM cukup berpengaruh… Jogja ngeriii.. Nggilani.. PPKM bullshit



Sentimen Netral Positif



Negatif



36



Listing 4.1 Crawling Data 1.



2.



3.



4.



5.



#Jika belum terinstal tweepy dapat menginstal dengan perintah berikut: !pip install tweepy import tweepy import pandas as pd from tweepy import OAuthHandler # Memperoleh akses data ke Twitter # http://apps.twitter.com api_key = 'b2fz4i7RM8mrbpdwMrgrLChNb' api_secret_key = 'hFE6StzRqB2crurBVQbB5fXXZU47segdB7jXbFLOCQ9NoJSGhe' access_token = '1432979173916614656wP500KcMaE3iJ25tR2oxU9ArgIVqu8' 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, 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('PPKM_revisi.csv')



37



Keterangan: 1. 2. 3. 4. 5.



Baris 1 memasukan library yang di butuhkan dan untuk menginstal tweepy Baris 2 untuk Memperoleh akses data ke Twitter, membuat object authentication ke API Twitter dan melakukan authentication ke Twitter API Baris 3 Mengumpulkan cuitan dengan kat kunci tertentu menggunakan Api key. Baris 4 Mengubah data cuitan ke dalam DataFrame. 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 0 1 2



3 4 5 6 7



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



Sentimen Netral Netral Positif



Netral Negatif Positif Positif Netral



38



Tabel 4.6: Data Training Setelah Preprocessing N0



Tweet setelah preprocessing



Sentimen



1



jogja ada ppkm gak sih udah lama nggak naik p esawat bangjun gue ken meet up sama mutualan yang di jogja tapi masih ppkm terus pgn ke jogja lagi ppkm pgn ke dufan tapi tutup ya allah kapan aku bisa libur sedikit aja 11fess ada yang lama ppkm jogjasolo pake krl h arus pake surat tugas bgt ya mantap mas mudah mudah jogja sudah bisa tu run level ppkm nya selamat mi tawar usaha sini kembali lagi program kami sup port umkm saat ppkm daftar usaha lalu wa 62 8953



Netral



3 4 6 7 8



Positif Netral Netral Positif Positif



Tabel 4.7: Data Testing Setelah Preprocessing 0 2



5



jogja ada ppkm gak sih udah lama nggak naik pesawat halo twitter aku mau promosi rental studio ku di jogja lagi ada promo diskon 50 untuk rental ppkm cukup pengaruh halo twitter aku mau promosi rental studio ku di jogja lagi ada promo diskon 50 untuk rental ppkm cukup berpeng



Netral Positif



Positif



Listing 4.5: Preprocessing Data 1



2



3 4



# 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 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 print('Data set size:',df.shape) print('columns are:',df.columns) # cleaning data def clean_tweet(tweet): """ cleaning tweet



39



5



source code: https://www.machinelearningplus.com/python/python-regextutorial-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 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



7



df['TOKENIZATION'] = df['komentar'].apply(lambda x: tokenization(x.lower())) df.head(5) #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



8



9



df['STOP_REMOVAL'] = df['TOKENIZATION'].apply(lambda x: remove_stopwords(x)) df.head(5) #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) # Membuat stemmer #stemming di gunakan untuk mengubah kata menjadi kata dasar #menghilangkan kata imbuhan



40



stemmerFactory = StemmerFactory() stemmer = stemmerFactory.create_stemmer()



10



11



12 13



# Daftar Stopword stopWordRemoverFactory = StopWordRemoverFactory() stopwords = stopWordRemoverFactory.get_stop_words() #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") #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) #menyimpan data df_clean.to_excel(“cleaning_data06oktober.xlsx”) # 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. 2.



Baris 1 untuk membaca data atau menampilkan data 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



Positif



1



Neutral



0



Positif



1



Neutral



0



lagi ada promo diskon 50 untuk rental ppkm cukup pengaruh 2



bangjun gue ken meet up sama mutualan yang di jogja tapi masih ppkm terus



3



pgn ke jogja lagi ppkm pgn ke dufan tapi tutup ya allah kapan aku bisa libur sedikit aja



4



halo twitter aku mau promosi rental studio ku di jogja lagi ada promo diskon 50 untuk rental ppkm cukup berpeng



5



11fess ada yang lama ppkm jogjasolo pake krl harus pake surat tugas bgt ya



42



6



mantap mas mudah mudah jogja sudah bisa turun



Positif



1



Neutral



0



Positif



1



level ppkm nya selamat mi 7



tawar usaha sini kembali lagi program kami support umkm saat ppkm daftar usaha lalu wa 62 8953



8



reposted from karna jadi dewasa tidak mudah apa lagi pas ppkmsulit sekali



Listing 4.8: Transformasi Data 1



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



2 3 4 5



6



7



print(“\nPredicting only 1 = [:1.f]% accuracy”.format(counts[2] / sum(counts) * 501)) 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 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



2



#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



44



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



3



4



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



0.95



20



Accuracy Macro



0.97



0.95



0.96



20



0.95



0.95



0.95



20



avg Weighted 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 Pemberlakuan



merupakan



visualisasi



Pembatasan



Kegiatan



dari



data



Masyarakat



pelaksanaan (PPKM)



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



SENTIMEN Neutral Positive Positive Neutral Neutral Neutral Positive Neutral Positive Positive Neutral Positive Neutral Positive Neutral Neutral Neutral Neutral Negative



TIMESTAMP 21/08/30 21/08/30 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/08/31 21/09/01 21/09/01 21/09/01 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 #Jogja | Masa PPKM Level 4 DIY Diperpanjang, Pemda Segera Salurkan Bansos Bagi Warga Terd https://t.co/cY9AVIUzRL Saran gedung/museum seni di jogja dong.... tadinya mau liat pameran seni di jogja gallery tapi tutup karna ppkm @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 @undipmenfess Jogja msh PPKM Lv 4 trus wooii. Kpn turun yaa. 🙄 @nwifuji ppkm selesai cus ke jogja 🥲👍 @schfess Jogja ppkm level 4😷 syg! Gais naik bus jakarta jogja lagi ppkm gini butuh surat rapid test ga ya? Terimakasih sebelumnya RT @IDNTimesJogja: Selama masa PPKM Sukardi andalkan penjualan bibit amarilis https://t.co/GlVxHqhZSc Jogja ngeriii.. Nggilani..PPKM bullshit. Selama masa PPKM Sukardi andalkan penjualan bibit amarilis https://t.co/GlVxHqhZSc Aloohaa sobat @puskotjogja tercinta!Masa PPKM yang lama bikin rindu ruang baca perpus dan buku-bukunya bukan?Keti… https://t.co/6XurgpSyhd 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 @mikescorviano Prambanan masih tutup kayake mas, Jogja masih PPKM level 4. Kalo besok di daerah Borobudur, nih. 😄 @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 Reposted from @nurwulanoktavia_ Karna menjadi dewasa tidak mudahApa lagi pas ppkm,sulit sekali~📸 @wegpranata_📍… https://t.co/h2UUHcLr27 setelah PPKM,..yuk monggo direncakan liburannya bersama Buni Tours Jogja yaa...🙏🙂paket tour jogja 4h3m transport… https://t.co/yWBlkd6HjO Masih pandemi loh, mana jogja ppkm 4. Kok prokesnya udah pada ilang hmm @telurgulunggg jogja ppkm level brapa mba pun 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 @velisia_pd wkwkwkwk tunggu PPKM turun level ya, ku tunggu kamu di Jogja 🥲🥲 @KemnakerRI ikut tanya ahh, sapa tau ga di jawab 😀1. Saya kerja di bidang pariwisata2. Tingagl dan kerja di Jogja… https://t.co/p6JAfMYbjx @rainaldylomri Kalau PPKM dan pandemi udah usai, cuman pengin ke Wonogiri (kampung halaman) dan ke Jogja (rumah sah… https://t.co/1qOsBTmhAU Selamat pagi #SobatVisitingJogja! Tau ga sih, kalau di masa PPKM ini kita harus check in dulu kalau masuk pusat per… https://t.co/MTYdkycpHq @thrustfrated Di jogja masih ppkm ta yang?? RT @sugimo5: @anggasasongko @prastow Saya Guide tour wisata Jogja. Sampai saat ini belum ada yang mau wisata. Dan kami beralih jualan kac… Wisata Tutup Dua Bulan karena PPKM, Ini yang Dilakukan Desa Wisata Pulesari https://t.co/iGJiywQegX #beritajogja… https://t.co/Hs0piJuIWI #SelamatPagiJogja | Tribun Jogja : Mungkinkah Segera ke Sekolah ? PPKM DIY Diprediksi Segera Turun Level. Wacana PPKM DI Yogyakarta Turun Level dan Sekolah Dibuka, Orang Tua Masih Galau https://t.co/6yDAsTZYmZ via @tribunjogja @bayu_joo Relate, alasan gue gencer ngerjain skripsi juga biar bisa liburan ke Bandung sama Jogja eh PPKM.Apalah… https://t.co/h1CXCTkD8a



Neutral Neutral Neutral Neutral Neutral Positive Neutral Neutral Neutral Negative Neutral Positive Neutral Neutral Positive Positive Neutral Negative Neutral Positive Positive Positive Neutral Positive Positive Neutral Neutral Positive Neutral Neutral



21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 21/09/01 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? @kadapatsya Well, nyaman bngt asli deh buat orang yg healingnya suka berpergian.Di jogja skrng selagi udh vaksin k… https://t.co/YPrtchOy5P @veronicacm_ Udah capek verr ppkm gak kelar” gabisa kemana mana 😭 minimal jogja/bali sabilah 😂 kgkkkkkk anjir ini kalo ppkm diperpanjang terus terusan gw bakalan di jogja selamanya alias kg bisa balik soalnya g… https://t.co/CcaovsElRH @witanmukhtar Jogja mah buka wae da teu usum ppkm jiga d bdg Tgl 4 kan katanya. Tp masalahnya feelingku bakal rame bgt walaupun jogja lagi ppkm. https://t.co/YoYyuXBBZ7 Jogja dong.. vaksinasi dikebut buat mahasiswa..Di base menfess Jogja skrg isinya anak muda udh pada ngajak nongkr… https://t.co/pr74Fyihjh Jogja semua kabupaten masih ppkm level 4 🙄 ppkm wilayah jogja @sugarplumelegyy @urlvlymajesty jogja woy, abis ppkm selesai langsung gas ga?? Harapan Pedagang Kaki Lima (PKL) yang menjual oleh-oleh khas Jogja juga harus pupus. Pasalnya wisatawan yang dipred… https://t.co/AJgY0G4gXn "Dua tahun ini kami menahan dan mematuhi peraturan pemerintah, prokes kami selalu jalankan. Mau sampai kapan kita b… https://t.co/W7iZh7Nprq @koocalm GUE MASIH PPKM HELLOOOOOOO?????? GUE MAJ KE JOGJA PADAHAL pengelola Taman Bunga Amarilis banting stir menjadi penjual kelapa muda. https://t.co/D7fSeGjAPs Objek Wisata DIY Masih Akan Tutup meski PPKM Turun ke Level 3 https://t.co/2AScouppbB #beritajogja #jogja… https://t.co/lGXrdA2UTw Seluruh DIY Masih 'Juara Bertahan' di PPKM Level 4, Ini Kata Pemda - detikNewshttps://t.co/lN9AmRabTE#jogja… https://t.co/wIQBfiIqoE semoga ppkm di Jogja turun ke level 2 trus tatap muka 🥲 ✨Yuk Ikutan Webinar dari PT.Victory International Futures Jogja✨📌 Topik : "Tetap Cuan Walau Saat PPKM"… https://t.co/dl9w54aLzp Tetep optimis ko Jogja segera turun level PPKM. Sudah tembus 100juta dosis dan akan segera tembus lebih banyak.… https://t.co/VjisElxL1u Hal tersebut disampaikan Sri Paduka pada Rakor Evaluasi PPKM Jawa-Bali secara daring yang dipimpin Menteri Koordina… https://t.co/k4vwuf9Jz5 @anggasasongko @prastow Saya Guide tour wisata Jogja. Sampai saat ini belum ada yang mau wisata. Dan kami beralih… https://t.co/J4eCHGjYYx Open kak morsex promo ppkm yahh #bojogja#jogjabo#openBOjogja #includeroom #availjogjakarta #jogjaincluderoom… https://t.co/NNFamj6E8a RT @CityPijat: Ready Pijat 081286319945 WA#Jakarta #bekasi #kranji #harapanindah #wismaasri #ujungharapan #perumnas #greenpramuka #gading… Open kak morsex promo ppkm yahh #bojogja#jogjabo#openBOjogja #includeroom #availjogjakarta #jogjaincluderoom… https://t.co/ua2jMjDYIb @mas_didiek Bravo, semoga akan lebih memberi daya tarik kunjungan ke jogja. Krn ekonomi jogja lokomotif utamanya ad… https://t.co/33hV4LF1wy RT @Harian_Jogja: Hasil Rapat dengan Luhut: DIY Mendekati PPKM Level 3 https://t.co/yDHPnkXauW #beritajogja #jogja #jogjaistimewa https://t… @JogjaUpdate @bimoheryprabowo Kon bali, jogja lg ppkm @FWBESS Lha pertanyaannya ini jogja PPKM kapan selesai? Kangen nongkrong di burjo nih hahaha RT @Harian_Jogja: Ini Syarat yang Harus Dipenuhi DIY kalau Mau PPKM Turun Level https://t.co/9xnzHMHYWb #beritajogja #jogja #jogjaistimewa… @WazawsghieMike Kata temenku kalau UNS buat yg angkatan 21.Kalau Jogja masih ppkm level 4 :( pengen main ke jogja tapi ppkm hdeh Punya temen bisa bisanya lagi ppkm gini ke jogja lanjut ke bajo 😭👍🏻 Cah ada yg pernah bepergian ke arah jogja - semarang pake kendaraan pribadi selama ppkm ini? Komen ya. Aku mau tanya-tanya soalnya. Makasih Akhirnya ku blok ig buleknya kiwana. Dari awal tahun kok enteng banget wira wiri jogja - sby - magelang, taunya die… https://t.co/z4znL0BcU8 @plunkeetbeato Ke jogja lagi ppkm ga dapet apa2 :(



Neutral Positive Negative Neutral Neutral Positive Neutral Positive Neutral Neutral Neutral Negative Neutral Neutral Neutral Neutral Neutral Positive Neutral Positive Neutral Neutral Neutral Neutral Neutral Neutral Positive Positive Neutral Neutral Neutral Neutral Positive Neutral Neutral



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



21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/03 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 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 @jogmfs Durung oleh. Jogja isih ppkm level 4.Cuma oleh take away @dianptrc Sampek mbatin, kenapa aku tak pernah tenang ambil Cuti, wkwkwkw.. Ke jogja aman mbak, tetep Swab dan prok… https://t.co/PMULmy24tq @nunuhalimi Jogja, PPKM diperpanjang tapi belum turun level 😢 masih level empat…Semoga beberapa hari ke depen bis… https://t.co/7k0dlkRqag @ibuknya_jaksa Semoga kasus covid di Jogja juga semakin menurun dengan masih diberlakukannya PPKM Level 4 di Jogja#ppkmtekancovid19 RT @Nisya_Rifiani: @ManAja46 Halo, siang, kak… Iya, nih, PPKM Jawa-Bali diperpanjang…Jogja, kotaku, malah belum turun level, masih level… pengen ke jogjabakal kenal ppkm gaa yaa ?? @koko_dhoni @humas_jogja Ntar gak ada PPKM pas pilihan LURAH pak RT @Nduty69: Ppkm diperpanjang, kecuali jogja ketok e Harga Saham Ini Naik saat Pengumuman Perpanjangan PPKM https://t.co/19ICtxJVUB #beritajogja #jogja #jogjaistimewa https://t.co/YRr6BvacWP Sobat Puskot, meskipun PPKM Level 4 masih berlanjut, Puskot Jogja tetap bersemangat melayani sobat yang membutuhkan… https://t.co/iaTWiNkkCD PPKM Luar Jawa-Bali, Airlangga: Mobilitas Harus Ditekan https://t.co/q34AvqIfxx #beritajogja #jogja #jogjaistimewa https://t.co/RXzVqEz9RP 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… Hai Balamuda. Pagi-pagi begini yuk simak #MagentaFlashNews hari ini bareng Adelps supaya menambah wawasan kita😀Ber… https://t.co/54dyz4BoCa Selamat datang di Jogja, PPKM level 4 rasa level 2.Blong jogja bali masih ppkm level 4🥲🥲 @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 Perpanjangan PPKM, Ini 3 Pesan Menkes Mencegah Gelombang Ketiga Covid-19 https://t.co/lMh9W56KY0 #beritajogja… https://t.co/U2eYzygEq2 September jogja ppkm lvl brp yaa? Mau ppkm diperpanjang ampe akhir taun jg gak ngaruh di jogja, disini dah kek biasa aja anjer. Baru mau rencanain ke jogja udah ppkm lagi aja ya tuhaannnnn Transkrip Pernyataan Presiden Jokowi Perkembangan PPKM Terkini https://t.co/Rj1jlrgC2z via @tribunjogja Disappointed but not surprised😒🥲😩https://t.co/Bk2OHxN85F Hingga saat ini pihaknya masih memberikan relaksasi pembayaran kepada pedagang. https://t.co/yN4pLohXxH RT @nabiylarisfa: Di satu sisi senang melihat Jogja terlihat normal berdenyut kembali. Di sisi lain, ketar-ketir banget lihat manusia di Ma… @leicaonik @BuruhYogyakarta @tempodotco Kalau memang satu satunya jalan untuk mengembalikan rejeki mereka adalah de… https://t.co/LxWZdrsj4W Daerah Istimewa Yogyakarta dan Bali Secepatnya Masuk PPKM Level 3 https://t.co/gBcRXs4tzx via @tribunjogja Jogja setia bgttt, masih ppkm level 4 😣 Tribun Jogja - Ada Kelonggaran Saat PPKM, Pemesanan Kamar Hotel di Sleman Alami Peningkatan https://t.co/9hwj3sV35P Akibat PPKM, sebanyak 3.179 karyawan di DIY terkena imbas PHK.#merahputihcom #PPKMLevel3 #JOGJA #COVID19 https://t.co/OD5r9ZOZ3k PPKM Jawa-Bali Diperpanjang, Pabrik Berorientasi Domestik Non-Esensial Beroperasi 100% https://t.co/JWmhV6bU1G… https://t.co/zOsAlqqfI5 @JogjaPresiden @BantengKalap Nasib masa depan jogja ini apa kabar bung. Ngapain ngurus jakarta. Jogja banyak rakyat… https://t.co/OaxSTko6uv PPKM diperpanjang hingga 6 September. Ada 2 wilayah yang masih betah di Level 4, yaitu DIY dan Bali.Hiks, #Jogja 😭 @nabiylarisfa semangat buat semuanya yg lagi survive ditengah pandemi ini, semoga selalu dikasi kesehatan&kelancara… https://t.co/XjHxTJunuI PPKM Jogja udah turun level belum ya? jogja skrg ppkm level brp?? masi level 4 ato udh turun ke 3? PPKM Diperpanjang: Bali dan Jogja Masih Jadi Sorotan https://t.co/btqAD26MfR #beritajogja #jogja #jogjaistimewa https://t.co/zlwpC7p5MT @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. @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 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



Positive Positive Positive Neutral Neutral Positive Positive Positive Positive Positive Positive Neutral Neutral Neutral Positive Neutral Neutral Positive Neutral Negative Negative Neutral Neutral Positive Positive Positive Positive Negative Positive Negative Positive Positive Neutral Positive Neutral Neutral Neutral Neutral Neutral Negative



21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04



62



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



Neutral Neutral Negative Neutral Neutral Neutral Neutral Neutral Neutral Neutral Positive Neutral Positive Neutral Neutral Neutral Neutral Positive Positive Positive Neutral Positive Positive Neutral Neutral Positive Positive Neutral Neutral Neutral Neutral Neutral Neutral Neutral Positive Neutral Neutral Negative Positive Positive Neutral Neutral Neutral Neutral Neutral



21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/04 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 21/09/05 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 30



Komentar_clean 30



Polarity 30



330



330



330



141



141



141



negatif



Netral Positif



70



Lampiran 14:



Tabel 5.14: Hasil Akurasi Pada Kelas Sentimen



-1 0 1 Accurasi Macro avg Weighted avg



Precision 1.00 0.92 1.00



Recall 1.00 1.00 0.86



0.97 0.97



0.95 0.95



f1-score 1.00 0.96 0.92 0.95 0.96 0.95



support 1 12 7 20 20 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 StopWordRemoverFactory



import



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', 'retweet_count', 'text', 'location']) display(tweets_pd)



'created_at',



'fav_count',



# 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-tutorialexamples/



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