Analisis Sentimen Kukiah Online [PDF]

  • 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

ANALISIS SENTIMEN KULIAH ONLINE SELAMA PANDEMI COVID-19 MENGGUNAKAN ALGORITMA NAIVE BAYES



SKRIPSI



PIKIR CLAUDIA SEPTIANI GULO F1E117001



PROGRAM STUDI SISTEM INFORMASI JURUSAN TEKNIK ELEKTRO DAN INFORMATIKA



FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS JAMBI 2021



i



ANALISIS SENTIMEN KULIAH ONLINE SELAMA PANDEMI COVID-19 MENGGUNAKAN ALGORITMA NAIVE BAYES



SKRIPSI Diajukan sebagai salah satu syarat untuk memperoleh Gelar Sarjana pada Program Studi Sistem Informasi



PIKIR CLAUDIA SEPTIANI GULO F1E117001



PROGRAM STUDI SISTEM INFORMASI JURUSAN TEKNIK ELEKTRO DAN INFORMATIKA



FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS JAMBI 2021



ii



RINGKASAN Pandemi Covid-19 yang menyerang sistem pernafasan manusia dan menyebabkan kematian serta menyebar sangat cepat ke berbagai negara di dunia. Pada bulan Maret 2020 Covid-19 masuk dan menyerang Indonesia. Peningkatan jumlah yang terpapar Covid-19 di Indonesia semakin lama semakin meningkat. Pendidikan adalah salah satu bidang yang paling terdampak Pandemi Covid-19. Salah satu kebijakan yang dikeluarkan oleh Kementrian Pendidikan dan Kebudayaan Indonesia adalah penerapan Pembelajaran Jarak Jauh atau Pembelajaran yang bersifat daring atau online. Kebijakan belajar daring diterapkan sejak bulan Maret 2020. Namun, dengan sistem pembelajaran jarak jauh tidak menutup kemungkinan akan muncul perbedaan pendapat dalam menanggapi perubahan



yang



terjadi. Dilakukan



analisis



untuk



melihat



berapakah respon positif, netral dan negatif terkait pembelajaran daring yang sedang berlangsung. Untuk melihat respon masyarakat terhadap pembelajaran jarak jauh dapat dilihat dari berbagai sarana dan media salah satunya yaitu melalui media sosial. Twitter adalah salah satu media sosial dengan pengguna lebih dari 29,5 juta di Indonesia dan 383 juta tweet per hari. Peneliti melakukan analisis sentimen menggunakan algoritma Naive Bayes terhadap hasil pencarian tweets dengan kata kunci #kuliahonline selama pandemi Covid-19. Didapatkan sebanyak 2000 data tweet yang akan diklasifikasi dengan menggunakan algoritma Naïve Bayes. Naive Bayes adalah teknik text mining untuk membangun model pengklasifikasi yang sederhana tetapi memiliki keakuratan yang tinggi dalam mengklasifikasi. Algoritma Naive Bayes terbukti memiliki akurasi dan kecepatan yang tinggi saat dipublikasikan kedalam basis data dengan jumlah yang besar. Dari 2000 data yang dianalisis didapatkan 416 tweet positif, 1262 tweet netral dan 322 tweet negatif. Hasil nilai akurasi sebesar 79,75% dengan nilai Precision sebesar 79%, nilai Recall sebesar 80% dan nilai F1-Score sebesar 79%.



iii



PENGESAHAN



iv



RIWAYAT HIDUP Pikir Claudia Septiani Gulo lahir di Jambi, pada tanggal 09 September 1999. Penulis merupakan anak keempat dari empat bersaudara



dari pasangan Sawato Gulo dan



Latimine Waruwu. Jalur pendidikan formal yang ditempuh penulis yaitu di SD Negeri 203 Bahar Mulya tahun 20052011, SMP Negeri 14 Muaro Jambi tahun 2011-2014, SMK Negeri 6 Muaro Jambi tahun 2014-2017. Pada tahun 2017 penulis melanjutkan pendidikan Strata 1 dan tercatat sebagai mahasiswi Program Studi Sistem Informasi, Jurusan Teknik Elektro, Fakultas Sains dan Teknologi Universitas Jambi melalui jalur SBMPTN (Seleksi Bersama Masuk Perguruan Tinggi Negeri). Selama menjadi mahasiswa penulis cukup aktif dalam bidang akademik maupun non akademik. Pada tahun 2020 penulis mengikuti program magang selama dua bulan yang bertempat di PT. Telkom Indonesia Wilayah Telekomunikasi Jambi. Dibawah bimbingan Bapak Dedy Setiawan, S.Kom.,M.IT. sebagai pembimbing utama dan Ibu Ulfa Khaira, S.Komp.,M.Komp sebagai dosen pendamping dengan judul “Analisis Sentimen Kuliah Online Selama Pandemi Covid-19 Menggunakan Algoritma Naive Bayes”.



v



KATA PENGANTAR Puji dan syukur kepada Tuhan Yang Maha Esa atas limpahan anugrah dan karunia-Nya, penulis dapat menyelesaikan skripsi sebagai salah satu syarat untuk memperoleh gelar sarjana pada Program Studi Sistem Informasi. Penulis



menyadari sangatlah sulit bagi pemula untuk menyelesaikan



skripsi ini tanpa bantuan dan bimbingan dari berbagai pihak terlebih kepada pembimbing saya yaitu Bapak Dedy Setiawan,S.Kom.,M.IT. selaku Dosen pembimbing



utama



dan



Ibu



Ulfa



Khaira,S.Komp.,M.Kom



selaku



Dosen



pendamping skripsi yang telah memberikan banyak ilmu serta motivasi kepada saya. Penyelesaian penulisan skripsi ini tidak lepas dari bimbingan, bantuan dan pengarahan dari berbagai pihak, untuk itu dengan segala hormat mengucapkan terima kasih kepada : 1.



Kedua orang tua tercinta Bapak Sawato Gulo dan Mama tercinta Latimine Waruwu dan Saudara saya Herianto Gulo, Ernawati Sitompul, Fajar Bahari Gulo dan Hasrat Abiyudin Gulo.



2. Bapak Dedy Setiawan, S.Kom., M.IT. selaku Ketua Jurusan Program Studi Sistem Informasi Fakultas Sains dan Teknologi. 3. Tim Penguji Skripsi yang telah banyak memberikan saran dan masukan untuk kesempurnaan skripsi ini. 4. Dekan Fakultas Sains dan Teknologi Universitas Jambi. 5. Bapak Nehru,S.Si., M.T selaku ketua Jurusan Teknik Elektro dan Sistem Informasi Fakultas Sains dan Teknologi. 6. Keluarga



besar



HIMASI



(Himpunan



Mahasiswa



Sistem



Informasi)



Universitas Jambi sebagai wadah yang membawahi Sistem Informasi Fakultas



Sains



dan



Teknologi,



terimakasih



atas



kebersamaan,



kekeluargaan, kekompakan, keceriaan dan pelajaran berharga selama 4 tahun ini. 7. Seluruh dosen Program Studi Sistem Informasi yang telah banyak berjasa memberikan segenap ilmunya. 8. Rekan-rekan seperjuangan mahasiswa/i Sistem Informasi angkatan 2017 yang menjadi tempat terbaik untuk berkeluh kesah dan berjuang bersama selama proses penyusunan skripsi ini. 9. Teman seperjuangan dan senasib dalam menyusun skripsi yaitu Muksin Alfalah, Nurul Annisah, dan seluruh sahabat saya yang tidak bisa disebutkan satu persatu yang telah banyak memberikan dukungan dan Motivasi giat untuk menyelesaikan skripsi ini. vi



10. Kakak dan adik di prodi sistem informasi yang memberikan saran dan masukan baik lisan maupun tulisan 11. Semua pihak yang secara langsung maupun tidak langsung memberikan dukungan selama proses pembuatan skripsi ini yang tidak dapat disebutkan satu persatu. Terimakasih Demikian Tugas Akhir ini, penulis mengucapkan terima kasih kepada semua pihak yang telah memberikan bantuan baik moril maupun materil sehingga tugas akhir ini dapat diselesaikan. Penulis menyadari bahwa tugas akhir ini masih jauh dari kata sempurna dan masih banyak kekurangan. Hal tersebut dikarenakan keterbatasan ilmu dan pengetahuan yang dimiliki penulis semata. Oleh karena itu penulis mengharapkan kritik dan saran dari pembaca untuk menyempurnakan penulisan tugas akhir ini. Semoga Tugas Akhir ini dapat memberikan manfaat bagi penulis khususnya dan umumnya bagi semua pihak yang membutuhkan.



Jambi,



Juni 2021



Pikir Claudia Septiani Gulo F1E117001



vii



DAFTAR ISI Halaman SURAT PERNYATAAN ...........................................Error! Bookmark not defined. KATA PENGANTAR ............................................................................................. vi DAFTAR ISI....................................................................................................... viii DAFTAR TABEL .................................................................................................. ix DAFTAR GAMBAR ............................................................................................... x I PENDAHULUAN................................................................................................. 1 1.1 Latar Belakang ...................................................................................... 1 1.2 Rumusan Masalah ................................................................................ 4 1.3 Batasan Masalah ................................................................................... 4 1.4 Tujuan Penelitian .................................................................................. 4 1.5 Manfaat Penelitian ................................................................................. 4 II TINJAUAN PUSTAKA ........................................................................................ 5 2.1 Data Mining ........................................................................................... 5 2.2 Text Mining ............................................................................................ 5 2.3 Machine Learning ................................................................................... 6 2.4 Natural Language Proccesing (NLP) ........................................................ 8 2.5 Analisis Sentimen .................................................................................. 8 2.6 Naive Bayes ........................................................................................... 8 2.7 N VIVO................................................................................................. 14 2.8 Twitter ................................................................................................. 14 2.9 Penelitian Terdahulu ........................................................................... 15 III METODOLOGI PENELITIAN .......................................................................... 22 3.1 Waktu dan Tempat Penelitian ............................................................. 22 3.2 Jenis dan Sumber Data ....................................................................... 22 3.3 Bahan dan Alat Penelitian ................................................................... 22 3.4 Prosedur Penelitian ............................................................................. 24 3.5 Metode Analisis Data ........................................................................... 27 3.6 Arsitektur Sistem ................................................................................ 27 3.7 Praproses Data .................................................................................... 24 3.8 Ekstraksi Fitur .................................................................................... 28 3.9 Pemodelan Data .................................................................................. 28 3.10 Rancangan Pengujian Model ............................................................... 29 IV. HASIL DAN PEMBAHASAN........................................................................... 31 4.1 Pengumpulan Data .............................................................................. 31 4.2 Praprocessing Data .............................................................................. 33 4.3 Pelabelan Data ................................................................................... 39 4.4 Ekstraksi Fitur .................................................................................... 42 4.5 Implementasi Klasifikasi Naive Bayes .................................................. 43 4.6 Pengujian Model Klasifikasi Naive Bayes ............................................ 44 4.7 Evaluasi Model .................................................................................... 46 4.8 Hasil dan Visualisasi Klasifikasi Sentimen ......................................... 48 V. KESIMPULAN DAN SARAN ........................................................................... 56 5.1 Kesimpulan ......................................................................................... 56 5.2 Saran .................................................................................................. 56 DAFTAR PUSTAKA ............................................................................................. 57 LAMPIRAN ......................................................................................................... 60



viii



DAFTAR TABEL Tabel



Halaman



1. Data Sentimen ............................................................................................... 12 2. Tabel Penelitian Terdahulu ............................................................................ 18 3. Timeline Penelitian ........................................................................................ 22 4. Spesifikasi Hardware ..................................................................................... 23 5. Software yang digunakan .............................................................................. 23 6. Confusion Matrix ........................................................................................... 29 7. Hasil Praprocessing Case Folding .................................................................. 33 8. Hasil Prapocessing Tokenizing ....................................................................... 35 9. Hasil Proses Normalization ............................................................................ 35 10. Hasil Praprocessing Filtering. ...................................................................... 37 11. Hasil Tahapan Stemming ............................................................................ 38 12. Hasi Pelabelan Data dengan Textblob .......................................................... 40 13.Hasil pelabelan data manual ........................................................................ 41 14. Hasil Confusion Matrix ................................................................................ 46 15. Nilai Presisi, Recall, dan F1-Score Evaluasi Model ...................................... 48



ix



DAFTAR GAMBAR Gambar



Halaman



1. Tahapan Knowledge Discovery Database (Berry & Linoff, 1999)...................... 5 2. Proses Text Mining (Mooney,2006) .................................................................. 6 3. Skema Artificial Intelligence dan Machine Learning ........................................ 7 4. Alur Metode Naive Bayes ............................................................................... 11 5. Contoh Tweet, Retweet, reply, dan mention (Twitter.com, 2013) .................. 14 6. Tahap Penelitian ............................................................................................ 26 7. Arsitektur Sistem ........................................................................................... 27 8. Tahapan Text Processing ............................................................................... 24 9. Proses Case Folding ....................................................................................... 24 10. Proses Tokenizing ........................................................................................ 25 11. Proses Filtering ............................................................................................ 25 12. Proses Stemming ......................................................................................... 25 13. Pemodelan data ........................................................................................... 29 14. Import Library Python yang dibutuhkan ..................................................... 31 15. Mendaftar pada Developer Twitter ............................................................... 31 16. Code Python Aunthentikasi Token .............................................................. 32 17. Code Python Crawling data ......................................................................... 32 18. Hasil Pengumpulan data dengan Twitter API ............................................... 33 19. Kode Program tahap Case Folding ............................................................... 33 20. Import Library yang dibutuhkan ................................................................. 34 21. Code Python Tahap Tokenzining.................................................................. 34 22. Code Python Tahap Normalization ............................................................... 35 23. Code Python Install NLTK ............................................................................ 36 24. Code Python Import nltk.............................................................................. 36 25. List Stopword Indonesia .............................................................................. 36 26. Code Python Tahap Filtering ....................................................................... 37 27. Perintah Instalasi Library Sastrawi ............................................................. 37 28. Import kelas Sastrawi .................................................................................. 38 29. Code Python Tahapan Stemming ................................................................. 38 30. Hasil pelabelan tweet dengan TextBlob ....................................................... 39 31. Hasil persentase labelling data tweet dengan textblob ................................. 40 32. Hasil persentase labelling data manual ....................................................... 41 33. Code Python CountVectorizer ...................................................................... 42 34. Data Word Vector ........................................................................................ 42 35. Hasil tahapan Bigram .................................................................................. 43 36. Hasil Tahapan Trigram ................................................................................ 43 37. Pembagian Data Tes dan Uji ........................................................................ 44 38.Hasil dari pembagian data ............................................................................ 44 39. Script Python Klasifikasi Naive Bayes .......................................................... 44 40. Code Python Confusion Matrix .................................................................... 45 41. Visualisasi Confusion Matrix ....................................................................... 45 42. Code Python Perhitungan Akurasi Model .................................................... 46 43. Kode Python Perhitungan Akurasi ............................................................... 46 44. Script Python Membuat wordcloud .............................................................. 48 45. Wordcloud dalam data penelitian ................................................................ 49 46. Script Python Menampilkan data perkelas .................................................. 49 x



47. 48. 49. 50. 51. 52.



Word Cloud Kata Dominan Pada Data Penelitian ........................................ 51 Word Tree penggunaan Kata 'jaringan' dalam data penelitian ..................... 51 Word Tree Penggunaan kata 'Tugas' dalam Data Penelitian ........................ 52 Word Tree penggunaan kata 'teknologi' dalam Data Penelitian ................... 53 Project Map Keluhan selama kuliah online .................................................. 54 Pengelompokan Node Berdasarkan Kemiripan Kata .................................... 55



xi



I PENDAHULUAN 1.1 Latar Belakang Coronavirus Disease 2019 (Covid-19) adalah virus yang menyerang sistem pernafasan manusia dan menyebabkan kematian serta menyebar sangat cepat ke berbagai negara di dunia. Covid-19 pertama kali ditemukan di Kota Wuhan, Provinsi Hubei, China pada akhir Desember 2019. Virus Corona kemudian berkembang di enam puluh lima negara pada Februari 2020. Pada tanggal 30 Januari 2020 WHO telah menetapkan wabah ini sebagai kedaruratan kesehatan masyarakat yang meresahkan dunia (Astini,2020). Menurut WHO (World Health Organization) per tanggal 13 Oktober 2020, jumlah kasus terkonfirmasi positif Covid-19 mencapai 38.103.332 kasus, sedangkan di Indonesia jumlah kasus terpapar Covid-19 mencapai 268.85 kasus dan kemungkinan akan bertambah setiap harinya (Satuan Tugas Penanganan Covid-19, 2020). Peningkatan jumlah yang terpapar Covid-19 ini menjadi perhatian untuk semua pihak. Pemerintah telah mengeluarkan berbagai kebijakan, seperti isolasi mandiri, social distancing dan pyshical distancing hingga pembatasan sosial berskala besar (PSBB) untuk memutus rantai penyebaran Covid-19. Kebijakan ini mengharuskan masyarakat untuk tetap stay at home, bekerja, beribadah dan belajar di rumah. Dampak dari pandemi Covid-19 semakin nyata dalam berbagai bidang yaitu ekonomi, sosial, pariwisata dan pendidikan. Pendidikan adalah salah satu bidang yang paling terdampak oleh pandemi Covid-19. Pendidikan merupakan proses pembentukan kemampuan dasar yang fundamental menyangkut daya intelektual maupun emosional yang diarahkan kepada tabiat manusia dan terhadap sesama. Pendidikan dimasa pandemi harus tetap berjalan. Untuk mengurangi angka penyebaran Covid-19 dan kegiatan pembelajaran dapat berjalan seperti biasanya maka pemerintah dalam hal ini Kementrian Pendidikan dan Kebudayaan menerapkan sistem pendidikan jarak jauh di Indonesia. Perguruan tinggi yang sebelumnya mengadopsi pendekatan tatap muka dalam presentasi, bimbingan esai dan kegiatan akademik lainnya kini perlu mengubahnya menjadi pendekatan pembelajaran jarak jauh. Dalam berbagai penelitian lain pembelajaran jarak jauh dikenal dengan online learning, e-learning (electronic learning) maupun daring (dalam jaringan). Kini menjadi tantangan bagi dosen, mahasiswa yang mau tidak mau harus siap menghadapi online learning yang ada. Ada sekitar 97% perguruan tinggi telah mengadopsi pembelajaran jarak jauh (Dirjen Dikti,2020). Kebijakan kegiatan belajar mengajar yang dilaksanakan secara daring mulai diterapkan sejak bulan Maret 2020. Namun dengan sistem pembelajaran jarak jauh tidak menutup



1



2



kemungkinan akan muncul perbedaan pendapat dalam menanggapi setiap perubahan yang terjadi. Salah satu masalah yang muncul dari sistem pembelajaran jarak jauh adalah tidak semua mahasiswa memiliki perangkat yang mendukung untuk keberlangsungan proses belajar jarak jauh. Tentunya, tidak hanya itu saja masalah yang timbul akibat kebijakan tersebut. Oleh sebab itu, pada penelitian ini diharapkan menjadi alternatif dan sumber evaluasi bagi pihak terkait untuk melihat bagaimana respon masyarakat terhadapat kebijakan pembelajaran jarak jauh. Untuk melihat respon masyarakat terhadap pembelajaran jarak jauh dapat dilihat dari berbagai sarana dan media salah satunya yaitu melalui media sosial. Media sosial merupakan salah satu sumber informasi maupun media untuk berbagi opini dan keseharian. Ada banyak media sosial yang populer dan banyak penggunanya diantaranya adalah Facebook, Instagram dan Twitter. Twitter adalah salah satu media sosial dengan pengguna lebih dari 29,5 juta di Indonesia dan 383 juta tweet per hari. Pengguna aktif harian twitter di Indonesia saat ini cukup banyak, Indonesia diklaim menjadi salah satu negara yang pertumbuhan pengguna aktif harian twitter paling besar berdasarkan laporan finansial twiter kuartal ke-3 tahun 2019 (Nurdiansyah,2018). Kesederhanaan dan kemudahan dalam penggunaan twitter merupakan alasan mengapa twitter lebih digemari dibandingkan



media



sosial



lainnya.



Tweet



dapat



digunakan



untuk



memberitahukan apa yang sedang dilakukan dan dirasakan oleh pengguna, percakapan, dan berbagi informasi. Isi tweet dijadikan sebagai sumber data opini dan sentimen masyarakat terhadap kebijakan pembelajaran daring yang dapat dianalisis dan bahan evaluasi bagi pihak terkait khususnya bagi Kementrian Pendidikan dan Kebudayaan Indonesia. Studi komputasional dari opini pengguna sosial media, sentimen dan emosi melalui entitas dan atribut yang dimiliki dan diekspresikan dalam bentuk teks disebut dengan analisis sentimen atau opinion mining. Data yang diambil menggunakan teknik crawling dengan memanfaatkan Application Programming Interface



(API)



yang



disediakan



oleh



twiter.



Analisis



sentimen



akan



mengelompokkan polaritas dari teks ke dalam kalimat atau dokumen untuk mengetahui pendapat yang dikemukakan dalam bentuk kalimat atau dokumen yang bersifat positif, negatif atau netral. Sentimen analisis sendiri merupakan salah satu model klasifikasi data dengan pendekatan supervised learning didalam machine learning. Supervised learning adalah salah satu tipe algoritma machine learning yang digunakan untuk klasifikasi data dan melakukan pembelajaran menggunakan masukan data yang telah diberi label.



3



Penelitian dalam bidang analisis sentimen dewasa ini banyak dilakukan karena topik ini sangat menarik untuk dibahas. Salah satu penelitian dibidang ini adalah penelitian yang dilakukan oleh Herwin et al., (2020) dengan judul “Analisis Sentimen Dompet Elektronik Pada Media Sosial Twitter Menggunakan Naive Bayes Classifier”. Penelitian ini menganalisa tanggapan masyarakat atas hadirnya



berbagai



aplikasi



dompet



elektronik



di



Indonesia



dengan



mengklasifikasikannya kedalam tiga kelas yakni positif, negatif dan netral dengan menggunakan metode Naïve Bayes. Data yang digunakan adalah tweets dengan hashtag pencarian #GoPay, #OVO dan #Dana, Hasil penelitian ini menunjukkan bahwa dompet elektronik GoPay lebih banyak dinilai positif oleh pengguna twitter yaitu sebesar 46,67% diikuti oleh Dana sebesar 37,50% dan OVO sebesar 16,67%. Dompet elektronik OVO memiliki nilai negatif yang lebih tinggi yaitu sebesar 63,33% diikuti oleh GoPay sebesar 53,33% dan Dana sebesar 30,00% Metode Naive Bayes juga digunakan oleh peneliti sebelumnya dalam melakukan klasifikasi data berupa teks oleh Wijaya dan Santoso (2018). Pada penelitian tersebut penulis memaparkan bahwa Naïve Bayes Classification merupakan model yang sesuai untuk melakukan klasifikasi dengan data teks dalam jumlah besar. Pada penelitian tersebut Wijaya dan Santoso menyatakan bahwa bahasa Indonesia memiliki struktur yang unik dalam penulisannya, maka konsep yang ada pada model text mining sangat tepat untuk mengatasi permasalahan analisis sentimen. Metode Naive Bayes yang diujikan pula menunjukkan progress yang baik dengan peningkatan performa sebesar 1.06% dengan dataset sebanyak 600 file pada masing-masing kelas yang diuji. Naive



Bayes



adalah



teknik



text



mining



untuk



membangun



model



pengklasifikasi yang sederhana tetapi memiliki keakuratan yang tinggi dalam mengklasifikasi (Herwin et al., 2020). Untuk beberapa jenis model probabilitas, Naive Bayes Clasifier dapat dilatih dengan sangat efisien dalam pengaturan supervised learning. Kelebihan dari Naive Bayes Classifier adalah metode ini hanya membutuhkan sejumlah kecil data pelatihan untuk memperkirakan parameter yang diperlukan dalam klasifikasi. Klasifikasi Naive Bayes terbukti memiliki akurasi dan kecepatan yang tinggi saat dipublikasikan kedalam basis data dengan jumlah yang besar (Pramono et al.,2017). Penelitian ini akan melakukan analisis terhadap hasil pencarian tweets dengan kata kunci “kuliah online” dan “kuliah daring” s elama pandemi Covid19. Data yang diperoleh dari proses crawling akan diklasifikasikan menjadi tiga kategori sentimen yaitu positif, negatif serta netral. Metode Naive Bayes yang digunakan dalam penelitian ini diharapkan mampu menghasilkan analisis data yang sesuai kategori dengan akurasi yang terbaik.



4



1.2 Rumusan Masalah Berdasarkan latar belakang masalah yang telah dipaparkan sebelumnya, maka rumusan masalah yang akan diangkat dari penelitian ini adalah sebagai berikut 1. Bagaimana tingkat akurasi yang di dapatkan dari hasil klasifikasi sentimen pembelajaran jarak jauh pada masa pandemi Covid-19 mengggunakan metode Naive Bayes? 2. Bagaimana hasil analisis sentimen dan implementasi metode Machine Learning menggunakan metode Naive Bayes untuk melakukan klasifikasi sentimen analysis twitter? 3. Bagaimana dampak pelaksanaan kuliah online selama pandemi covid-19? 1.3 Batasan Masalah Agar penelitian tugas akhir ini tidak keluar dari pokok permasalahan maka ruang lingkup pembahasan dibatasi dengan masalah sebagai berikut 1. Sumber opini yang digunakan berbahasa Indonesia dan hanya berasal dari sosial media twitter. 2. Analisis sentimen hanya mencakup kelas positif, netral dan negatif. 3. Analisis sentimen yang dilakukan menggunakan metode Naive Bayes menggunakan bahasa pemrograman Python dan tools Jupyter Notebook. 1.4 Tujuan Penelitian Tujuan dilakukan penelitian ini adalah : 1.



Mengetahui tingkat akurasi yang didapatkan dari analisis sentimen dengan metode Naive Bayes.



2.



Mengetahui hasil analisis sentimen mengenai kuliah online yang diterapkan dimasa pandemi Covid-19 dengan metode Naive Bayes.



3.



Mengetahui dampak penerapan pembelajaran jarak jauh selama masa Covid19.



1.5 Manfaat Penelitian Manfaat dilakukan penelitian ini adalah : 1.



Memberikan pengetahuan mengenai klasifikasi opini kuliah online di masa Covid-19 menggunakan metode Naive Bayes.



2.



Melakukan klasifikasi opini kedalam kelas positif, netral dan negatif dalam jumlah besar dengan cepat.



3.



Melihat arah dampak kebijakan kuliah online bagi masyarakat umum.



4.



Hasil dari analisis sentimen dapat digunakan oleh pihak Universitas Jambi sebagai bahan evaluasi kebijakan pendidikan di masa Covid-19.



II TINJAUAN PUSTAKA 2.1 Data Mining Data mining adalah kegiatan menemukan pola yang unik dari data dengan kapasitas yang besar, data dapat disimpan dalam database, data warehouse, atau penyimpanan informasi lainnya (Manning, 2008). Dalam penerapannya, data mining merupakan salah satu bagian proses Knowledge Discovery in Database (KDD) yang memiliki tujuan mengekstrak pola atau model dari data dengan menggunakan suatu algoritma yang spesifik.



Gambar 1. Tahapan Knowledge Discovery Database (Berry & Linoff, 1999). Adapun proses Knowledge Discovery Database sebagai berikut: 1. Data selection : pemilihan data dari sekumpulan data operasional 2. Preprocessing : data mining perlu dilakukan proses cleaning dengan tujuan untuk membuang duplikasi data. 3. Transformation : yaitu proses coding pada data yang telah dipilih. 4. Data mining : proses mencari pola atau informasi menarik dalam data terpilih dengan menggunakan teknik atau metode tertentu. 5. Interpretation / Evaluation : Tahap ini mencakup pemeriksaan apakah pola atau informasi yang ditemukan bertentangan dengan fakta atau hipotesa yang ada sebelumnya atau tidak. 6. Knowledge : proses melakukan teknik visualisasi dan representasi hasil dari pengolahan data. 2.2 Text Mining Menurut Feldman & Sanger (2007), text mining merupakan proses pengalian informasi secara intensif yang bekerja menggunakan alat dan metode tertentu untuk menganalisis suatu kumpulan dokumen. Text mining merupakan bagian dari data mining. Text mining digunakan untuk mendeskripsikan sebuah teknologi yang mampu menganalisis data teks semi terstruktur maupun tidak terstruktur (Wang, 2015). Text mining memiliki tujuan dan menggunakan proses yang sama dengan data mining, namun memiliki masukan yang berbeda. 5



6



Masukan untuk text mining adalah adalah data yang tidak (atau kurang) terstruktur, seperti dokumen Word, PDF, kutipan teks, dan lain-lain, sedangkan masukan untuk data mining adalah data yang terstruktur. Cara yang digunakan dalam



mempelajari



struktur



data



teks



adalah



dengan



terlebih



dahulu



menentukan fitur yang mewakili setiap kata untuk pada dokumen. Sebelum menentukan fitur-fitur yang mewakili, diperlukan tahap pre-processing yang dilakukan secara umum dalam text mining pada dokumen, yaitu case folding, tokenizing, filtering, dan stemming (Mooney, 2006), seperti terlihat pada Gambar 2 berikut:



Gambar 2. Proses Text Mining (Mooney,2006)



Tahapan Text Mining : 1. Cleansing : proses penghapusan karakter non-alfabetis untuk mengurangi noise. Karakter yang dihapus berupa tanda baca, simbol-simbol seperti tanda ‘@’ untuk nama pengguna, hashtag (#), emoticon dan url dari situs web. 2. Case Folding : Proses mengubah semua karakter alfabet yang sudah dibersihkan sebelumnya menjadi huruf kecil (lower case). 3. Tokenizing : merupakan proses pemisahan kata-kata dari kalimat. 4. Normalization : Tahap yang dilakukan untuk menormalkan kata-kata yang disingkat ataupun diperpanjang menjadi kata-kata normal sesuai dengan Kamus Besar Bahasa Indonesia (KBBI). 5. Filtering : Proses menghapus kata yang sering muncul secara umum dan kurang relevan serta mengubah kata berimbuhan dari setiap kata yang sudah disaring menjadi kata dasar 6. Stemming : Proses mencari root (dasar) kata dari tiap kata hasil filtering. 2.3 Machine Learning Seiring berlalunya waktu, mesin pintar atau cerdas perlahan mulai menggantikan dan meningkatkan kemampuan manusia di berbagai bidang.



7



Kecerdasan yang ditunjukkan oleh mesin dikenal dengan kecerdasan buatan (Artificial Intelligence) yang merupakan bagian dari ilmu komputer. Kecerdasan buatan merupakan salah satu bidang dalam ilmu komputer yang ditujukan pada pembuatan software dan hardware yang dapat berfungsi sebagai sesuatu yang dapat berpikir seperti manusia (Sunarya et al., 2015). Machine learning merupakan sub dari bidang keilmuan kecerdasan buatan (Artificial intelligence). Machine learning dapat diartikan sebagai aplikasi komputer dan algoritma matematika yang diadopsi dengan cara pembelajaran yang berasal dari data dan menghasilkan prediksi di masa yang akan datang (Goldberg & Holland, 1988). Proses pembelajaran yang dimaksud adalah suatu usaha dalam memperoleh kecerdasan yang melalui dua tahap antara lain latihan (training) dan pengujian (testing). Bidang machine learning berkaitan dengan pertanyaan tentang bagaimana membangun program komputer agar meningkat secara otomatis dengan berdasar dari pengalaman. Penelitian terkini mengungkapkan bahwa machine learning terbagi menjadi tiga kategori: Supervised Learning, Unsupervised Learning, Reinforcement Learning (Somvanshi & Chavan, 2016). Skema keterkaitan artificial intelligence dan machine learning dapat dijelaskan dalam Gambar 3.



Gambar 3. Skema Artificial Intelligence dan Machine Learning Teknik yang digunakan oleh Supervised Learning adalah metode klasifikasi di mana kumpulan data sepenuhnya diberikan label untuk mengklasifikasikan kelas yang tidak dikenal. Sedangkan teknik Unsupervised Learning dikenal dengan cluster dikarenakan tidak ada kebutuhan untuk pemberian label dalam kumpulan data dan hasilnya tidak mengidentifikasi contoh di kelas yang telah ditentukan (Thupae et al., 2018). Teknik Reinforcement Learning berada antara Supervised Learning dan Unsupervised Learning, teknik ini bekerja dalam lingkungan yang dinamis di mana konsepnya harus menyelesaikan tujuan tanpa adanya pemberitahuan dari komputer secara eksplisit jika tujuan tersebut telah tercapai (Das & Nene, 2017). Penelitian analisis sentimen yang dilakukan akan



8



menggunakan teknik Supervised Learning karena data yang digunakan terlebih dahulu diberi label untuk dapat mengklasifikasikan kelas yang tidak dikenal. 2.4 Natural Language Proccesing (NLP) Natural Language Processing (NLP) adalah salah satu bidang ilmu komputer yang merupakan cabang kecerdasan buatan dan bahasa (linguistik) yang berkaitan dengan interaksi antar komputer dan bahasa alami manusia, seperti bahasa indonesia atau bahasa inggris. Natural Language Processing adalah bagian dari pembelajaran mesin (machine learning) yang berkaitan dengan pembelajaran teks. Pembelajaran Natural Language Proccesing (NLP) bertujuan untuk membuat mesin yang dapat mengerti dan memahami makna bahasa manusia kemudian memberikan respon yang sesuai (Zamil, 2019). 2.5 Analisis Sentimen Analisis sentimen atau opinion mining mengacu pada bidang yang luas dari pengolahan bahasa alami,komputasi linguistik dan text mining yang bertujuan menganalisa pendapat, sentimen, evaluasi, sikap, penilaian dan emosi seseorang (Liu, 2011). Tugas dasar analisis sentimen adalah mengelompokkan polaritas dari teks yang ada dalam dokumen, kalimat, atau fitur/tingkat aspek apakah pendapat yang dikemukakan dalam dokumen, kalimat atau fitur entitas atau aspek bersifat positif, netral atau negatif (Mesut et all, 2012). Analisis sentimen dapat diklasifikasikan kedalam kelas sentimen bersifat positif, negatif dan netral 1. Sentimen Positif Menurut Kamus Besar Bahasa Indonesia (KBBI) sentimen positif merupakan reaksi atau sikap yang setuju, sependapat dan meningkatkan nilai seseorang atau sesuatu. 2. Sentimen Negatif Menurut Kamus Besar Bahasa Indonesia (KBBI) sentimen negatif merupakan reaksi atau sikap yang menurunkan nilai seseorang sehingga menyebabkan penyurutan terhadap sesuatu dan membentuk tren down. Umumnya kalimat sentiment negatif ditandai dengan penggunaan kata negasi. 3. Sentimen Netral Menurut Kamus Besar Bahasa Indonesia (KBBI) sentimen netral berarti tidak berpihak. Kalimat bersentimen netral merupakan ekspresi kalimat yang tidak bersifat positif maupun negatif. 2.6 Naive Bayes Algoritma Naive Bayes merupakan metode klasifikasi yang statistik berdasarkan pada teorema Bayes (Ting, et al, 2012). Naive Bayes Classifier



9



merupakan pengklasifikasian dengan metode probabilitas dan statistik yang dikemukan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi peluang di masa depan berdasarkan pengalaman dimasa sebelumnya sehingga dikenal sebagai Teorema Bayes. Teorema tersebut dikombinasikan dengan Naive dimana diasumsikan kondisi antar atribut saling bebas. Klasifikasi Naive Bayes diasumsikan bahwa ada atau tidak ciri tertentu dari sebuah kelas tidak ada hubungannya dengan ciri dari kelas lainnya. Naive Bayes berpotensi baik untuk mengklasifikasikan data karena kesederhanaannya (Ting, et al, 2011). Naive Bayes dirancang untuk dipergunakan dengan asumsi bahwa antar satu kelas dengan kelas yang lain tidak saling bergantung (independen). Pada klasifikasi Naive Bayes, proses pembelajaran lebih ditekankan pada mengestimasikan probabilitas. Keuntungan dari pendekatan Naive Bayes adalah pengklasifikasian akan mendapatkan nilai error yang lebih kecil ketika data set berjumlah besar. Klasifikasi Naive Bayes terbukti memiliki akurasi dan kecepatan yang tinggi saat dipublikasikan kedalam basis data dengan jumlah yang besar (Han dan Kamber, 2006). Persamaan dari Teorema Bayes adalah :



𝑃(𝐻)|𝑋) =



𝑃(𝐻 |𝑋).𝑃(𝐻) 𝑃(𝑋)



(2.1)



Keterangan : X



: Data dengan class yang belum diketahui



H



: Hipotesis data X merupakan suatu class spesifik



𝑃(𝐻)|𝑋):Probabilitas hipotesis H berdasar kondisi (posteriori probability) 𝑃(𝐻)



:Probabilitas hipotesis H (prior probability)



𝑃(𝑋|𝐻) :Probabilitas X berdasarkan kondisi pada hipotesis 𝑃(𝑋)



:Probabilitas X



Kaitan antara Naive Bayes dengan klasifikasi, korelasi hipotesis, dan bukti dengan klasifkasi adalah bahwa hipotesis dalam teorema Bayes merupakan label kelas yang menjadi target pemetaan dalam klasifikasi, sedangkan bukti merupakan fitur-fitur yang menjadi masukan dalam model klasifikasi. Jika X adalah vektor masukan yang berisi fitur dan Y adalah label kelas. Naive Bayes dituliskan dengan P(Y|X). Notasi tersebut berarti probabilitas label kelas Y didapakan setelah fitur-fitur X diamati. Notasi ini disebut juga probabilitas akhir (posterior probability) untuk Y, sedangkan P(Y) disebut probabilitas akhir (prior probability) Y. Selama proses pelatihan harus dilakukan pembelajaran probalilitas akhir (P(Y|X) pada model untuk setiap kombinasi X dan Y berdasarkan informasi yang didapat dari data latih. Dengan membangun model tersebut, suatu data uji



10



X’ dapat diklasifikasikan dengan mencari nilai Y’ dengan memaksimalkan nilai P(Y’|X’) yang didapat. Untuk menjelaskan teorema Naive Bayes, perlu diketahui bahwa proses klasifikasi memerlukan sejumlah petunjuk untuk menentukan kelas apa yang cocok bagi sampel yang dianalisis tersebut. Karena itu, teorema Bayes di atas dapat disesuaikan sebagai berikut. P (C|F1.....Fn)



𝑃 (𝐶)𝑃 (𝐹1….𝐹𝑛|𝐶)



(2.2)



𝑃 (𝐹1…𝐹𝑛)



Di mana Variabel C merepresentasikan kelas, sementara variabel F1 ... Fn merepresentasikan karakteristik petunjuk yang dibutuhkan untuk melakukan klasifikasi. Maka rumus tersebut menjelaskan bahwa peluang masuknya sampel karakteristik tertentu dalam kelas C (Posterior) adalah peluang munculnya kelas C (sebelum masuknya sampel tersebut, seringkali disebut prior), dikali dengan peluang kemunculan karakteristik sampel pada kelas C (disebut juga likelihood), dibagi dengan peluang kemunculan karakteristik karakteristik sampel secara global (disebut juga evidence). Karena itu, rumus diatas dapat pula ditulis secara sederhana sebagai berikut :



Posterior =



𝑝𝑟𝑖𝑜𝑟 𝑥 𝑙𝑖𝑘𝑒𝑙𝑖ℎ𝑜𝑜𝑑



(2.3)



𝑒𝑣𝑖𝑑𝑒𝑛𝑐𝑒



Nilai Evidence selalu tetap untuk setiap kelas pada satu sampel.Untuk klasifikasi dengan data kontinyu digunakan rumus Densitas Gauss : P(Xi = Xi|Y = yj)



=



1 𝜎 √2π



e



−1/2(



𝑥−µ )2 𝜎



(2.4)



Keterangan : P : Peluang Xi : Atribut ke i xi : Nilai atribut ke i Y : Kelas yang dicari yj : Sub kelas Y yang dicari μ : Mean, menyatakan rata-rata dari seluruh atribut σ : Deviasi standar, menyatakan varian dari seluruh atribut. Metode Naive Bayes menempuh dua tahap dalam proses klasifikasi teks, yaitu tahap pelatihan dan tahap klasifikasi. Pada tahap pelatihan dilakukan proses terhadap sampel data yang sedapat mungkin dapat menjadi representasi data. Selanjutnya adalah penetuan probabilitas prior berdasarkan sampel data.



11



Pada tahap klasifikasi ditentukan kategori dari suatu data berdasarkan term yang muncul dalam data yang diklasifikasi. Teorema Naive Bayes dapat dinyatakan dalam persamaan P(Xk|Y)



=



𝑃(𝑌|𝑋𝑘 ) ∑𝑖𝑃(𝑌|𝑋𝑖 )



(2.5)



Dimana keadaan Posterior (Probabilitas Xk didalam Y) dapat dihitung dari keadaan Prior (Probabilitas Y dalam Xk dibagi dengan jumlah dari semua probabilitas Y dalam semua Xi). Untuk menghindari adanya nilai nol pada probabilitas, maka diberlakukan Laplace Smooting. Tujuan diberlakukan Laplace Smooting adalah untuk mengurangi probabilitas dari hasil atau keluaran yang terobservasi dan juga sekaligus meningkatkan dan menambah probabilitas hasil yang belum terobservasi sehingga persamaan menjadi sebagai berikut : P(V1|C = c)



=



𝐶𝑜𝑢𝑛𝑡𝑇𝑒𝑟𝑚𝑠(𝑣1,𝑑𝑜𝑐𝑠𝑣(𝑐))+1 𝐴𝑙𝑙𝑇𝑒𝑟𝑚𝑠(𝑑𝑜𝑐𝑠(𝐶))+|𝑉|



(2.6)



Dimana |V| menunjuk pada jumlah semua kata dalam tweet yang ada di dataset. Untuk dapat mengklasifikasikan suatu tweet, dapat dilakukan dapat dilakukan dengan persamaan : P(V1|C = c)



=



𝐶𝑜𝑢𝑛𝑡𝑇𝑒𝑟𝑚𝑠(𝑣1,𝑑𝑜𝑐𝑠𝑣(𝑐)) 𝐴𝑙𝑙𝑇𝑒𝑟𝑚𝑠(𝑑𝑜𝑐𝑠(𝐶))



(2.7)



Dimana v1 dalam persamaan diatas adalah satu kata tertentu dalam tweet, sedangkan CountTermsv1. docsv(c) menunjukan pada jumlah kemunculan suatu kata berlabel c (“positif”, “netral” atau “negatif”). AllTerms1docs(c) menunjuk pada jumlah semua kata berlabel c yang ada pada dataset. Alur dari metode Naive Bayes dapat dilihat pada Gambar 4 dibawah ini :



Gambar 4. Alur Metode Naive Bayes



12



Naive Bayes didasarkan pada asumsi penyederhanaan bahwa nilai atribut secara conditional saling bebas jika diberikan nilai output. Dengan kata lain, diberikan nilai output, probabilitas mengamati secara bersama adalah produk dari probabilitas individu. Keuntungan penggunaan Naive Bayes adalah bahwa metode ini hanya membutuhkan jumlah data pelatihan (training data) yang kecil untuk



menentukan



estimasi



parameter



yang



diperlukan



dalam



proses



pengklasifikasian. Tahapan dari perhitungan Naive Bayes adalah : 1.Tahap awal dalam proses Naive Bayes Classifier adalah menghitung probabilitas masing-masing kelas dari keseluruhan data training. 2. Proses testing. Proses ini untuk mengetahui keakuratan model yang dibangun pada proses training, umumnya digunakan data yang disebut test set untuk memprediksi label. Metode Naive Bayes Classifier terdiri dari dua tahap dalam proses klasifikasi teks, tahap pelatihan dan tahap klasifikasi. Pada tahap pelatihan dilakukan proses analisis terhadap sample dokumen berupa pemilihan vocabulary yaitu kata yang dimungkinkan muncul dalam koleksi dokumen sample yang menjadi representasi dokumen. Langkah selanjutnya adalah menentukan probabilitas bagi tiap kategori berdasarkan sampel dokumen. Berikut



adalah



contoh



perhitungan



klasifikasi



kelas



sentimen



dengan



menggunakan algoritma Naive Bayes Tabel 1. Data Sentimen



No



Data



D1 Kuliah Online Bosan D2 Malas kuliah online D3 Lebih baik offline D4 Kuliah online banyak tugas D5 Kuliah online bagus mantap D6 Belajar kuliah online mudah D7 Kuliah online mudah paham D8 Kuliah online susah paham banyak tugas Sumber : Data diolah, 2021



Kelas Negatif Negatf Negatif Negatif Positif Positif Positif ?



Pada Tabel 1 diperoleh kumpulan data yang terdiri dari 7 data latih dan 1 data uji. Terdapat 4 data dengan kelas negatif dan 3 data dengan kelas positif. Tahap awal yang dilakukan adalah menghitung probabilitas setiap kelas. Mengacu pada persamaan 2.6 maka didapatkan nilai probabilitas disimbolkan sebagai P. Probabilitas dari semua kelas adalah sebanyak 25. Jumlah C(Positif) didapatkan dari jumlah kata yang terdapat dalam kelas positif sebanyak 13 dan jumlah C(Negatif) yang terdapat dalam kelas negatif sebanyak 12. Setelah



13



diketahui nilai probabilitas pada semua data latih kemudian dihitung nilai kemunculan dan klasifikasi pada data uji. Digunakan persamaan 2.6 yaitu menghitung nilai probabilitas pada setiap kelas. Kelas Negatif P(Kuliah|Negatif) = (3+1)/13+25 = 0,105 P(Online|Negatif) = (3+1)/13+25 = 0,105 P(Susah|Negatif) = (0+1)/13+25 = 0,026 P(Paham|Negatif) = (0+1)/13+25 = 0,026 P(Banyak|Negatif) = (1+1)/13+25 = 0,052 P(Tugas|Negatif) = (1+1)/13+25 = 0,052 Kelas Positif P(Kuliah|Positif) = (3+1)/12+25 = 0,108 P(Online| Positif) = (3+1)/12+25 = 0,108 P(Susah| Positif) = (0+1)/12+25 = 0,027 P(Paham| Positif) = (1+1)/12+25 = 0,054 P(Banyak| Positif) = (0+1)/12+25 = 0,027 P(Tugas| Positif) = (0+1)/12+25 = 0,027 Setelah dikeltahui nilai probabilitas di setiap kelas, maka dilakukan penentuan klasifikasi suatu tweet menggunakan persamaan 2.7. Didapatkan hasil sebagai berikut. Kelas Negatif P(V1|C) = 0,105 * 0,105 * 0,026 * 0,026 * 0,052 * 0,052 = 2,015 Kelas Positif P(V2|C) = 0,108 * 0,108 * 0,027 * 0,054 * 0,027 * 0,027 = 1, 239 Dari perhitungan diatas, maka diperoleh hasil 2,015 untuk kelas negatif dan 1,239 untuk kelas positif. Dikarenakan nilai probabilitas pada kelas negatif lebih besar dibandingkan dengan nilai probabilitas kelas positif maka data uji pada D8 termasuk kedalam kelas “ negatif”.



14



2.7



N VIVO NVivo adalah software analisis data kualitatif yang dikembangkan



Qualitative



Solution



and



Research



(QSR)



International



yang



merupakan



perusahaan pertama pengembang software untuk analisis data kualitatif. NVivo bermula dari kemunculan software NUD*IST (Nonnumeric Unstructured Data, Index Searching, and Theorizing) (Bazeley, 2007). Sejak tahun 2002, NUD*IST berganti nama dengan NVivo. ‘N’ merupakan singkatan dari NUD*IST dan ‘Vivo’ diambil dari istilah kedua pakar penelitian grounded theory (Strauss, 1987; Glaser, 1978) yaitu ‘in-vivo’ yang berarti melakukan koding berdasarkan 20 data yang nyata (hidup) dialami partisipan di lapangan. Analisis data penelitian merupakan proses mencari dan menyusun secara sistematis data yang didapat kan dari hasil praprocessing data dan hasil klasifikasi data dengan metode Naïve Bayes. Analisis data dan visualisai data dilakukan dengan bantuan software QSR NVivo 10. Bandur (2016) menyatakan bahwa data penelitian kualitatif memiliki nilai yang beragam dan bervariasi berasal dari berbagai macam sumber dengan teknik pengumpulan data dapat dianalisis dalam software QSR NVivo 10. 2.8



Twitter Twitter adalah sebuah jejaring sosial dan jaringan informasi yang terdiri



atas



pesan-pesan



sepanjang



140



karakter



yang



disebut



Tweet



(support.twitter.com, 2013). Pengguna aktif harian twitter di Indonesia saat ini cukup banyak, Indonesia diklaim menjadi salah satu negara yang pertumbuhan pengguna aktif harian twitter paling besar berdasarkan laporan finansial twiter kuartal ke-3 tahun 2019 (Annual Report Twitter,2019). Twitter didirikan pada bulan Maret 2006 oleh Jack Dorsey, dan situs jejaring sosial lainnya diluncurkan pada bulan Juli 2006. Menurut O’Reilly & Milstein (2009) Twitter adalah layanan perpesanan yang membagikan berbagai karakteristik dengan alat komunikasi yang sudah digunakan.



Gambar 5. Contoh Tweet, Retweet, reply, dan mention (Twitter.com, 2013)



15



Berikut adalah



penjelasan



dari



Twitter



(Support.Twitter.com,2013)



tentang beberapa istilah yang sering dipakai : 1.Bio : deskripsi singkat tentang pemilik akun 2.Follow (ikut) : mengikuti (following) akun lain dalam twitter. 3.Follower (pengikut) : akun lain yang mengikuti dan berlangganan tweet suatu akun Twitter . 4.Following (mengikuti) : jumlah akun lain yang yang diikuti. 5. Mention (memanggil) : tweet yang memuat tautan ke akun Twitter lain, ditandai dengan adanya tanda @ di depan nama. 6. Reply (balasan) : tweet yang merupakan balasan dari tweet lain, selalu diawali dengan mention. 7.Retweet : merupakan tweet dari aun lain yang diteruskan kepada follower dengan tujuan menyebarkan ke jaringan yang lebih luas. 11.Timeline (rentang waktu) : berisi tweet dari akun yang diikuti yang terus diperbaharui sesuai kondisi waktu yang sebenarnya. 12.Tweet : sebagai kata benda, merupakan pesan sepanjang 140 karakter. Twitter API API (Application Programming Interface) merupakan sekumpulan perintah, fungsi, dan protokol yang dapat digunakan dalam membangun perangkat lunak untuk sistem operasi tertentu. Twitter API yaitu sebuah aplikasi yang diciptakan oleh pihak Twitter agar mempermudah pihak developer untuk mengakses informasi web Twitter dengan ketentuan dan syarat yang berlaku dan dapat di akses pada http://dev.twitter.com/oauth. 2.9 Penelitian Terdahulu Untuk melaksanakan penelitian ini acuan dari beberapa penelitian terdahulu menjadi sangat penting dalam melakukan sebuah penelitian dengan tujuan untuk mengetahui hubungan antara penelitian yang akan dilakukan dengan penelitian terdahulu, sehingga dengan menambahkan acuan tersebut dapat menghindari adanya suatu duplikasi dalam penelitian yang akan dilakukan. Analisis sentimen merupakan bidang penelitian berkelanjutan yang berada diantara berbagai bidang seperti Data Mining, Natural Language Processing dan Machine Learning yang berfokus pada ekstraksi sentimen dalam sebuah kalimat berdasarkan isinya. Studi komputasional dari opini pengguna sosial media, sentimen dan emosi melalui entitas dan atribut yang dimiliki dan di ekspresikan dalam bentuk teks dewasa ini banyak dilakukan karena topik ini sangat menarik untuk dibahas. Pengembangan penelitian dan pengklasifikasikan sentimen analisis menjadi



16



alternatif dan bahan evaluasi yang baik bagi pihak terkait. Hal ini terbukti dengan banyaknya riset atau penelitian di bidang tersebut. Penelitian terdahulu mengenai analisis sentimen telah dilakukan oleh peneliti pada berbagai media sosial dan objek yang berbeda. Penelitian yang berhasil peneliti temukan adalah penelitian analisis sentimen yang dilakukan oleh Windasari et al., (2017) dengan judul “Sentiment Analysis on Twitter Posts : An analysis of Positive or Negative Opinion on GoJek”. Penelitian ini dilakukan dengan tujuan untuk mengusulkan sistem yang dapat mendeteksi sentimen



publik



berdasarkan



tweet



pengguna



Twitter



tentang



layanan



transportasi online terutama GoJek menggunakan metode Support Vector Machine. Hasil dari pengujian yang dilakukan membuktikan tingkat akurasi dari metode Support Vector Machine sebesar 86%, prediction error rate 14%, tingkat prediksi yang benar untuk sentimen positif 100%, dan tingkat prediksi yang benar untuk sentimen negatif 67,44%. Penelitian kedua adalah penelitian oleh Buntoro (2017) dengan judul “Analisis Sentimen Calon Gubernur DKI Jakarta 2017 di Twitter”. Data yang di gunakan dalam penelitian ini, yaitu 100 tweet dengan kata kunci AHY, 100 tweet dengan kata kunci Ahok, dan 100 tweet dengan kata kunci Anies. Pada penelitian ini diperoleh hasil nilai akurasi tertinggi di dapat saat menggunakan metode klasifikasi Naïve Bayes Classifier (NBC) untuk klasifikasi data AHY, dengan nilai rata-rata akurasi mencapai 95%, nilai presisi 95%, nilai recall 95% nilai true positive rate 96,8% dan nilai true negative rate 84,6%. Penelitian ketiga adalah penelitian yang dilakukan oleh Herwin et al., (2020) dengan judul “ Analisis Sentimen Dompet Elektronik Pada Media Sosial Twitter Menggunakan Naive Bayes Classifier” Penelitian ini menganalisa tanggapan masyarakat atas hadirnya berbagai aplikasi dompet elektronik di Indonesia dengan mengklasifikasikannya kedalam tiga kelas yakni positif, negatif dan netral dengan menggunakan metode Naive Bayes dan menggunakan perangkat lunak rapidminer. Data diperoleh secara langsung dari situs microblogging twitter dengan hashtag pencarian #GoPay, #OVO dan #Dana, dari data tersebut, diambil 100 data dengan rincian 70 data latih dan 30 data uji. Hasil penelitian ini menunjukkan bahwa dompet elektronik GoPay lebih banyak dinilai positif oleh pengguna twitter yaitu sebesar 46,67% diikuti oleh Dana sebesar 37,50% dan OVO sebesar 16,67%. Dompet elektronik OVO memiliki nilai negatif yang lebih tinggi yaitu sebesar 63,33% diikuti oleh GoPay sebesar 53,33% dan Dana sebesar 30,00%. Penelitian ini memberikan bukti empiris dan merekomendasikan kepada masyarakat mengenai pemilihan dompet elektronik yang tersedia berdasarkan



17



hasil uji coba sekaligus bisa dijadikan bahan analisis sebelum menjatuhkan pilihan kepada salah satu dompet elektronik tersebut. Penelitian keempat adalah penelitian yang dilakukan oleh Zamachsari et al., (2020) dengan judul “Analisis Sentimen Pemindahan Ibu Kota Negara dengan Feature Selection Algoritma Naive Bayes dan Support Vector Machine”. Penelitian ini melakukan analisis sentimen opini masyarakat terkait pemindahan ibu kota negara dengan Feature Selection Algoritma Naive Bayes dan Support Vector Machine untuk mendapatkan nilai akurasi paling tinggi menjadi tujuan dalam penelitian ini. Data analisis sentimen mengambil dari opini masyarakat yang menggunakan bahasa Indonesia dari tweet media sosial Twitter secara crawling. Pencarian kata yang digunakan adalah #IbuKotaBaru dan #PindahIbuKota. Jumlah data yang diambil pada periode 23-April-2020 s.d 2-Mei-2020 mendapatkan hasil sebanyak 849 data tweet. Didapatkan hasil berupa 24,26% sentimen positif dan 75,74% sentimen negative terkait pemindahan ibu kota baru. Hasil akurasi dengan memakai perangkat lunak Rapid Miner nilai akurasi terbaik algoritma Naive Bayes dengan Feature Selection ada pada rasio 9:1 dengan hasil akurasi 88.24% sedangkan hasil akurasi terbaik algoritma Support Vector Machine dengan Feature Selection ada pada rasio 5:5 dengan hasil akurasi 78.77%. Penelitian kelima adalah penelitian yang dilakukan oleh Hikmawan et al., (2020) yang berjudul “Sentimen Analisis Publik Terhadap Joko Widodo Terhadap Wabah Covid-19 Menggunakan Metode Machine Learning”. Penelitian ini melakukan



sentimen



analisis



terhadap



tweet



pengguna



twitter



dengan



mengunakan kata kunci Jokowi dan Covid-19. Penelitian ini bertujuan untuk mengetahui pendapat publik dilakukan berupa sentimen positif, negatif dan netral di media twitter terhadap tindakan pencegahan Covid-19 oleh Pemerintah di Indonesia dapat menjadi masukan bagi indikator keberhasilan pemerintah. Didapatkan hasil precision dari Naive Bayes sebesar 82.14%, SVM sebesar 95.70% dan k-NN sebesar 80.66%. Juga hasil recall dari Naive Bayes sebesar 85.82%, Support Vector Machine sebesar 89.17%, dan k-NN sebesar 84.13%. Penelitian keenam adalah penelitian yang dilakukan oleh Pamungkas et al., (2015) yang berjudul “Analisis Sentiment Pada Sosial Media Twitter Menggunakan Naive Bayes Classifier Terhadap Kata Kunci Kurikulum 2013” menggunakan Twitter Search API dan menerapkan proses ngram karakter untuk seleksi fitur serta menggunakan algoritma Naive Bayes Classifier untuk mengklasifikasi sentimen secara otomatis. Data tersebut diklasifikasi secara manual dan dibagi kedalam masing-masing 1000 data untuk sentimen positif, negatif dan netral. Untuk proses latih di gunakan 3000 data tweet dan 1000 tweet tiap kategori



18



sentimentnya. Didapatkan hasil sebuah sistem yang dapat mengklasifikasi sentimen secara otomatis dengan hasil pengujian 3000 data latih dan 100 tweet data ujicoba mencapai 91 %. Penelitian ketujuh adalah penelitian yang dilakukan Fiarni et al., (2016) yang berjudul” Analisis Sentimen untuk Review Toko Eceran Online Menggunakan Teknik Naive Bayes”melakukan analisis sentimen mengolah opini dari sosial media menggunakan ekstraksi fitur dan pemilihan kata dari pembelajaran dataset korpus bahasa Indonesia kemudian dilakukan klasifikasi ke kelas positif, negatif dan netral. Kemudian, mengadopsi teknik klasifikasi Naïve Bayes. Hasil dari penelitian ini analisis sentimen untuk produk sandang pada media sosial menggunakan metode Naïve Bayes Classifier mampu mengklasifikasikan pendapat pengguna dengan nilai presisi 97,25% , recall 89,83%, dan akurasi 89,21%. Berdasarkan referensi diatas, dijadikan sebagai acuan dalam melakukan penelitian ini. Fokus penelitian yaitu bagaimana sebuah algoritma Naive Bayes dapat dengan baik dan menghasilkan nilai akurasi yang tinggi dalam mengklasifikasikan sentimen analisis twitter dengan kata kunci #kuliahonline pada masa pandemi Covid-19 kedalam kelas positif, netral dan negatif yang belum pernah dilakukan oleh peneliti sebelumnya. Perbandingan penelitian terdahulu dapat di lihat pada Tabel 2. Tabel 2. Tabel Penelitian Terdahulu No



Peneliti



1.



Windasari



Topik



Keterangan



Sentiment



Mengusulkan



sistem



yang



dapat



et al.,



Analysis



on



mendeteksi sentimen publik berdasarkan



(2017)



Twitter Posts:



tweet pengguna Twitter tentang layanan



An analysis of



transportasi



Positive



menggunakan



or



Negative Opinion



Machine. on



GoJek



online



Hasil



metode dari



terutama Support pengujian



GoJek Vector yang



dilakukan membuktikan tingkat akurasi dari metode Support Vector Machine sebesar 86%, prediction error rate 14%, tingkat prediksi yang benar untuk sentimen positif 100%, dan tingkat prediksi yang benar untuk sentimen negatif 67,44%..



2.



Buntoro



Analisis



100 tweet dengan kata kunci AHY, 100



(2017)



Sentimen



tweet dengan kata kunci Ahok, dan 100



Calon



tweet dengan kata kunci Anies. Pada



Gubernur DKI



penelitian ini diperoleh hasil nilai akurasi



19



Jakarta 2017



tertinggi



di



dapat



saat



menggunakan



di Twitter



metode klasifikasi Naïve Bayes Classifier (NBC) untuk klasifikasi data AHY, dengan nilai rata-rata akurasi mencapai 95%, nilai presisi 95%, nilai recall 95% nilai TP rate 96,8% dan nilai TN rate 84,6%.



3.



Herwin



et



al., (2020)



Analisis



Menganalisa



Sentimen



mengklasifikasikannya kedalam tiga kelas



Dompet



yakni positif, negatif dan netral dengan



Elektronik



menggunakan metode Naïve Bayes dan



Pada



Media



menggunakan perangkat lunak rapidminer.



Sosial Twitter



Diperoleh secara langsung dari twitter



Menggunakan



dengan hashtag pencarian #GoPay, #OVO



Naïve



dan #Dana, dari data tersebut, diambil 100



Bayes



Classifier



tanggapan



masyarakat



data dengan rincian 70 data latih dan 30 data uji. Hasil penelitian ini menunjukkan bahwa dompet elektronik GoPay lebih banyak dinilai positif oleh pengguna twitter yaitu sebesar 46,67% diikuti oleh Dana sebesar 37,50% dan OVO sebesar 16,67%. Dompet elektronik OVO memiliki nilai negatif yang lebih tinggi yaitu sebesar 63,33% diikuti oleh GoPay sebesar 53,33% dan Dana sebesar 30,00%.



4.



Zamachsari



Analisis



Analisis sentimen opini masyarakat terkait



et al.,(2020)



Sentimen



pemindahan



Pemindahan



Feature Selection Algoritma Naive Bayes



Ibu



dan



Kota



ibu



Support



kota



Vector



negara



dengan



Machine



untuk



Negara



mendapatkan nilai akurasi paling tinggi



dengan



menjadi tujuan dalam penelitian ini. Data



Feature



analisis



Selection



masyarakat yang menggunakan bahasa



Algoritma



Indonesia dari tweet media sosial Twitter



Naive



secara



dan



Bayes Support



sentimen



crawling.



digunakan



mengambil



Pencarian



adalah



opini



kata



yang



#IbuKotaBaru



dan



Vector



#PindahIbuKota. Jumlah data yang diambil



Machine



pada periode 23-April-2020 s.d 2-Mei-2020 didapatkan hasil sebanyak 849 data tweet.



20



Didapatkan hasil berupa 24,26% sentimen positif



dan



75,74%



sentimen



negative



terkait pemindahan ibu kota baru. 5.



Hikmawan (2020)



Sentimen



Sentimen analisis terhadap tweet pengguna



Analisis



twitter dengan mengunakan kata kunci



Publik



Jokowi dan Covid. Penelitian ini bertujuan



Terhadap



untuk



Joko Widodo



dilakukan berupa sentimen positif, negatif



Terhadap



dan



Wabah Covid-



tindakan



19



Pemerintahan di Indonesia dapat menjadi



Menggunakan



masukan



Metode



pemerintah. Didapatkan hasil precision



Machine



dari Naive Bayes sebesar 82.14%, SVM



Learning



sebesar 95.70% dan k-NN sebesar 80.66%.



mengetahui



netral



di



pendapat



media



twitter



pencegahan bagi



publik terhadap



Covid-19



indikator



oleh



keberhasilan



Juga hasil recall dari Naive Bayes sebesar 85.82%, Support Vector Machine sebesar 89.17%, dan k-NN sebesar 84.13%. 6.



Pamungkas



Analisis



Sentimen



et al.,



Sentiment



menggunakan



(2015)



Pada



Sosial



Classifier untuk mengklasifikasi sentimen



Media Twitter



secara otomatis. Penulis menggunakan



Menggunakan



3300 data tweet tentang sentimen kepada



Naive



kata



Bayes



Analisis



kunci



algoritma



“kurikulum



Twitter



yang



Naive



Bayes



2013”.



Data



Classifier



tersebut diklasifikasi secara manual dan



Terhadap



dibagi kedalam masing-masing 1000 data



Kata



untuk sentimen positif, negatif dan netral.



Kunci



“Kurikulum



Untuk proses latih di gunakan 3000 data



2013”



tweet



dan



1000



sentimentnya.



tweet



tiap



Didapatkan



kategori hasil



menghasilkan sebuah sistem yang dapat mengklasifikasi sentimen secara otomatis dengan hasil pengujian 3000 data latih dan 100 tweet data ujicoba mencapai 91 %. 7



Fiarni



et



Analisis



Analisis sentimen mengolah opini dari



al.,



Sentimen



sosial media menggunakan ekstraksi fitur



(2016)



untuk Review



dan pemilihan kata dari pembelajaran



Toko



dataset korpus bahasa Indonesia kemudian



Eceran



21



Online



dilakukan



klasifikasi



Menggunakan



negatif dan netral. Menggunakan teknik



Teknik Naive



klasifikasi



Bayes



penelitian ini menunjukkan bahwa sistem



Naïve



ke



kelas



Bayes.



positif,



Hasil



dari



analisis sentimen untuk produk online pada media sosial menggunakan metode Naïve



Bayes



mengklasifikasikan



Classifier



mampu



pendapat



pengguna



dengan nilai presisi 97,25% , recall 89,83%, dan akurasi 89,21%. Sumber : Penelitian Terdahulu



III. METODOLOGI PENELITIAN 3.1 Waktu dan Tempat Penelitian Penelitian ini dilaksanakan sejak semester ganjil 2020/2021 pada Program Studi Sistem Informasi Fakultas Sains dan Teknologi Universitas Jambi. Berikut adalah tabel timeline penelitian yang dilakukan. Tabel 3. Timeline Penelitian Waktu Penelitian No



Kegiatan



1.



Studi Literatur



2.



Pengumpulan Data



3.



Pelabelan Data



4.



Preprocessing Data



5.



Pembuatan Model



Nove



Dese



Janu



Febr



Mar



mber



mber



ari



uari



et



April



Mei



Klasifikasi Naive Bayes 6.



Pengujian Model



7.



Proses Hasil Klasifikasi



8.



Penulisan Skripsi



3.2 Jenis dan Sumber Data Data yang digunakan dalam penelitian ini berupa tanggapan masyarakat mengenai kebijakan pembelajaran jarak jauh yang diterapkan di masa pandemi Covid-19 yang diambil dari bulan Januari sampai dengan Maret 2021. Jumlah data tweet yang diambil sebanyak 2000 tweet. Data yang akan diambil adalah data tweet berbahasa Indonesia dengan kata kunci tertentu terkait dengan penerapan pembelajaran jarak jauh selama Covid-19. Kata kunci yang digunakan dalam penelitian ini adalah “kuliah online” dan “kuliah daring”.



Data yang



didapatkan kemudian akan dibagi menjadi data latih sebanyak 80% dari jumlah data keseluruhan dan data uji sebanyak 20% dari data keseluruhan. Data latih merupakan data yang telah dibagi sesuai dengan kategori secara manual yang akan dibagi kedalam kelas sentimen positif, negatif dan netral, sedangkan data uji merupakan data yang belum diketahui kategorinya. 3.3 Bahan dan Alat Penelitian Bahan penelitian yang dibutuhkan dalam penelitian ini adalah data opini berbahasa Indonesia yang didapatkan dari sosial media twitter. Informasi lain juga diperoleh melalui studi literatur, internet dan bahan bacaan yang sesuai dengan topik penelitian. 22



23



Alat yang dibutuhkan dalam penelitian ini adalah sebagai berikut : 1. Perangkat Keras ( Hardware) Tabel 4. Spesifikasi Hardware Hardware



Spesifikasi



Laptop



Asus VivoBook Ryzen 5



Processor



AMD Ryzen 5



RAM



8 GB DDR4, SSD 256GB



Grafik



AMD Redeon Vega 8



Printer Internet 2. Perangkat Lunak (Software) Tabel 5. Software yang digunakan Software Sistem Operasi Windows 10 64 Bit Bahasa Pemograman Python 3.7 NVivo 10 Jupyter Notebook Textblob Sys Tweepy Matplotlib Pandas Numpy Os Nltk Pycountry Re String Wordcloud PIL (Python Imaging Library) Mendeley Microsoft Office 2010 Draw.Io Sklearn



24



3.4 Praproses Data Praproses data merupakan tahap dimana teks akan diseragamkan bentuk dan format agar dapat dipersiapkan menjadi data yang dapat diolah pada tahap selanjutnya. Text preprocessing meliputi case folding, tokenizing, filtering dan stemming. Gambaran tahapan text processing dapat di lihat pada Gambar 8.



Gambar 6. Tahapan Text Processing



1. Case Folding. Pada tahap ini, semua huruf akan diubah menjadi lowercase atau huruf kecil. Berikut adalah langkah-langkah case folding : 1. Memeriksa ukuran setiap karakter dari awal sampai akhir karakter. 2. Jika ditemukan karakter yang menggunakan huruf kapital (uppercase), maka huruf tersebut akan diubah menjadi huruf kecil (lower case)



Gambar 7. Proses Case Folding



2. Tokenizing Tokenizing dalam penelitian ini merupakan tahapan dalam memecah string atau input terhadap suatu teks berdasarkan tiap kata yang menyusunnya dan menghilangkan URL, @mention dan hashtag yang ada pada dokumen (tweets) beserta menghilangkan delimeter seperti tanda titik (.), koma (,), spasi dan karakter angka dan tanda baca yang ada pada dokumen (tweets).



25



Gambar 8. Proses Tokenizing 3. Filtering Kata-kata yang sering muncul secara umum dan kurang relevan dilakukan untuk mengubah kata berimbuhan dari setiap kata yang sudah disaring menjadi kata dasar dengan teks akan dihapus. Tahap ini disebut juga dengan stopword removing, yaitu menghapus kata-kata yang tidak bermakna dan tidak memiliki pengaruh terhadap analisis sentimen.



Gambar 9. Proses Filtering



4. Stemming Stemming adalah tahap mencari root (dasar) kata dari tiap kata hasil filtering. Pada tahap ini dilakukan proses pengambilan berbagai bentukan kata kedalam suatu representasi yang sama.



Gambar 10. Proses Stemming



26



3.5 Prosedur Penelitian



Gambar 11. Tahap Penelitian Gambar 6 menunjukkan tahapan penelitian yang dilakukan. Tahap pertama dalam penelitian ini adalah melakukan identifikasi masalah. Identifikasi masalah yang didapatkan adalah bagaimana mengelompokkan dan mengklasifikasi opini pengguna twitter terhadap kebijakan kuliah online yang sedang berlangsung ditengah pandemi Covid-19. Tahap selanjutnya adalah melakukan pengumpulan data opini pengguna twitter dengan cara crawling menggunakan API twitter. Setelah data terkumpul dilakukan tahapan preprocessing data yang terdiri dari dari proses Case Folding, Tokenizing, Filtering, Stemming sehingga menghasilkan data bersih. Data bersih yang didapatkan selanjutnya diberikan label data dalam kategori kelas yang berbeda yaitu kelas positif, netral dan negatif. Setelah tahap pelabelan selesai, dilanjutkan proses pembagian data. Data tersebut dibagi menjadi 2 bagian yaitu 80% data latih dan 20% data uji. Data latih digunakan untuk membuat proses pembuatan model klasifikasi Naive Bayes. Model klasifikasi disimpan dan data uji digunakan untuk menguji model klasifikasi yang telah dibuat sehingga didapatkan hasil dari sentimen analisis untuk melihat seberapa besar opini masyarakat terhadap kebijakan pembelajaran jarak jauh. Setelah proses klasifikasi data selesai selanjutnya dilakukan pengujian model klasifikasi dengan menggunakan Confusion Matrix. Confusion matrix mengandung informasi yang membandingkan hasil klasifikasi yang dilakukan oleh sistem



27



dengan hasil klasifikasi yang seharusnya. Tahap terakhir yang dilakukan adalah menghitung nilai akurasi, Recall, Precision dan f1-Score dari model klasifikasi sehingga dapat diketahui tingkat akurasi pada model klasifikasi. 3.6 Metode Analisis Data Metode analisis yang digunakan dalam penelitian ini adalah metode Naive Bayes. Sistem bekerja dengan melakukan crawling tweet dengan memanfaatkan twitter API. Proses pengolahan data akan dibantu dengan software Python. Cara kerja yang diterapkan adalah dengan melakukan labelling manual terhadap data latih yang telah melalui tahap preprocessing dengan cara memasukkan data latih kedalam kategori kelas positif, netral atau negatif sesuai dengan Kamus Besar Bahasa Indonesia (KBBI) dan dibantu dengan library Python yaitu Textblob. Verifikasi data labelling dilakukan oleh pihak ketiga yaitu Badan Pengembangan dan Pembinaan Bahasa Indonesia Jambi. Setelah proses labelling manual selesai dilanjutkan dengan membuat model Naive Bayes Clasifier dan dilakukan pengujian terhadap model menggunakan data uji. 3.7 Arsitektur Sistem Sistem yang dibangun adalah sistem yang dapat digunakan dalam melakukan analisis sentimen tanggapan pelaksanaan kuliah online dan kuliah daring pada masa pandemi Covid-19. Secara umum sistem ini terdiri dari empat bagian diantaranya adalah pengambilan data, preprocesing, pelabelan dan klasifikasi data. Adapun desain arsitektur sistem dapat dilihat pada Gambar 7.



Gambar 12. Arsitektur Sistem Pada umumnya, proses analisis sentimen dalam penelitian adalah pengumpulan data, preprocessing data, pelabelan dan pembuatan model



28



klasifikasi. Untuk mengumpulkan data dilakukan proses crawling dengan memanfaatkan Twitter API. Data yang telah terkumpul dilakukan proses preprocessing data



yaitu case folding, tokenizing, filtering, stemming untuk



menghasilkan data bersih. Data yang bersih dan telah melalui tahapan preprocessing selanjutnya diberikan label secara manual sesuai dengan Kamus Besar Bahasa Indonesia (KBBI) dan bantuan library python yaitu Textblob serta dibantu oleh pihak ketiga yaitu Badan Pengembangan dan Pembinaan Bahasa Indonesia Jambi berdasarkan kelas yaitu positif, netral dan negatif. Setelah data telah selesai melalui tahapan pelabelan data selanjutkan data tersebut digunakan untuk membuat dan menguji model sehingga didapatkan hasil akhir berupa sentimen analisis opini pengguna twitter mengenai penerapan kuliah online selama pandemi Covid-19. 3.8 Ekstraksi Fitur Setelah semua data telah melalui tahap praprocessing dan labelling data maka tahap selanjutnya adalah pembuatan fitur untuk mempermudah proses klasifikasi. Pada tahapan pembuatan ftur dilakukan dua proses yaitu pembuatan word vector yaitu prose mengubah fitur teks menjadi visualisasi vector dan pembobotan kata menggunakan Unigram. Word Vector adalah kalimat yang sudah menjadi kumpulan array yang menjadi suatu matriks dan setiap matriks mewakili baris dokumen, sedangkan kolom pada matriks mewakili seluruh kata yang ada diseluh teks yang ada. Setelah teks data telah menjadi word vector, maka Langkah selanjutnya adalah memberikan pembobotan terhadap setiap kata per kalimat menggunakan unigram. Setelah melalui tahapan unigram, maka dataset telah siap digunakan dalam training menggunakan perhitungan pada Naïve Bayes. 3.9 Pemodelan Data Pemodelan data dibuat dengan tujuan untuk menguji keakuratan prediksi sistem berdasarkan data model yang sudah dibuat. Proses training terlebih dahulu dibangun untuk membuat model probabilitas dengan menggunakan data training. Selanjutnya dilakukan pengujian model klasifikasi sentimen yang dihasilkan pada proses pengujian dengan menggunakan data tweet baru (data testing). Gambaran umum model sistem dapat dilihat pada Gambar 13.



29



Gambar 13. Pemodelan data Gambar 13 menunjukkan data tweet mengenai kuliah online yang dibutuhkan ada dua bagian yaitu data untuk proses training atau pelatihan dan data untuk proses testing atau pengujian. Pada data training, data yang digunakan harus sudah terlebih dahulu melalui proses preprocessing dan telah dilabeli untuk dijadikan input dari penggunaan metode. Pada proses training sistem akan membaca data tweet yang dimasukkan. Selanjutnya sistem akan melakukan proses ekstraksi fitur kata dan selanjutnya menyimpan model data. Pada bagian proses testing atau pengujian digunakan data baru yang tidak terdapat pada proses training. Berbeda dengan data training, data testing tidak diperlukan pelabelan tetapi harus melalui proses preprocessing. Ketika data testing dimasukkan kedalam sistem, proses yang akan dilalui adalah penentuan fitur, mengekstrak fitur dan mengklasifikasikannya sesuai dengan model yang sudah dibuat. Sistem akan memberikan output dari hasil klasifikasi sistem yaitu positif, netral atau negatif sesuai dengan model data. 3.10 Rancangan Pengujian Model Metode yang digunakan untuk evaluasi adalah confusion matrix. Confusion matrix merupakan salah satu metode yang dapat digunakan untuk mengukur kinerja suatu metode klasifikasi. Pada dasarnya confusion matrix mengandung informasi yang membandingkan hasil klasifikasi yang dilakukan oleh sistem dengan hasil klasifikasi yang seharusnya. Tabel 6 menggambarkan contoh confusion matrix prediksi dua kelas. Tabel 6. Confusion Matrix Kelas Prediksi 1



2



Kelas



1



True Positive



True Negative



Sebenarnya



2



False Positive



False Negative



30



Keterangan untuk tabel diatas dinyatakan sebagai berikut : 1. True Positive (TP), yaitu jumlah dokumen dari kelas 1 yang benar dan diklasifikasikan sebagai kelas 1. 2. True Negative (TN), yaitu jumlah dokumen dari kelas 0 yang benar dan diklasifikasikan sebagai kelas 0. 3. True False (TF), yaitu jumlah dokumen dari kelas 0 yang salah dan diklasifikasikan sebagai kelas 1. 4. False Negative (FN), yaitu jumlah dokumen dari kelas 1 yang salah dan diklasifikasikan sebagai kelas 0. Untuk pengukuran performa klasifikasi cara yang digunakan adalah menghitung akurasi, precission, recall dan f1-Score. Akurasi merupakan persentase dari total sentimen yang benar dikenali. Perhitungan akurasi dilakukan dengan cara membagi jumlah data sentimen yang benar dengan total data dan data uji. Untuk menghitung nilai akurasi digunakan persamaan dibawah ini: Akurasi=



TP+TN TP+FN+FN+TN



x 100 %



(3.1)



Precision merupakan perbandingan jumlah data relevan yang ditemukan terhadap jumlah data yang ditemukan. Untuk menghitung nilai precision digunakan persamaan dibawah ini: Precission =



𝑇𝑃 𝑇𝑃+𝐹𝑃



(3.2)



Recall merupakan perbandingan jumlah materi relevan yang ditemukan terhadap jumlah materi yang relevan. Untuk menghitung nilai recall digunakan persamaan dibawah ini : Recall = F1-Score



𝑇𝑃 𝑇𝑃+𝐹𝑁



(3.3)



merupakan parameter tunggal ukuran keberhasilan retrieval



yang menggabungkan recall dan precision. Untuk menghitung nilai F-measure dugunakan persamaan dibawah ini : F1-Score = 2 *



𝑃𝑟𝑒𝑐𝑖𝑠𝑠𝑖𝑜𝑛∗𝑅𝑒𝑐𝑎𝑙𝑙 𝑃𝑟𝑒𝑐𝑖𝑠𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙



(3.4)



IV. HASIL DAN PEMBAHASAN 4.1



Pengumpulan Data Tahap awal yang dilakukan adalah mengumpulkan data tweet berbahasa



Indonesia dengan pencarian kata kunci “kuliah online” dan “kuliah daring” menggunakan Twitter API. Terlebih dahulu dilakukan Import Libraries yang disediakan oleh Python. Library yang digunakan dalam pengumpulan data yang digunakan adalah library tweepy yang dapat mengakses API twitter secara langsung di console ataupun script. Library sys adalah library yang digunakan untuk menyediakan akses ke beberapa variabel yang digunakan atau dikelola oleh penerjemah, library matplotlib.pyplot digunakan untuk membuat fungsi visualisasi kedalam bentuk grafik.



Gambar 14. Import Library Python yang dibutuhkan Untuk dapat mengambil data dari twitter, terlebih dahulu mendaftar di twitter Developer, dilakukan pengisian semua form yang ditampilkan. Setelah selesai proses mendaftar akan diberikan consumer key, consumer secret, acces token dan acces token secret yang digunakan untuk mengakses data pada twitter. Proses mendaftar aplikasi dapat dilihat pada Gambar 15.



Gambar 15. Mendaftar pada Developer Twitter



31



32



Setelah didapatkan Token dari Developer twitter selanjutnya dilakukan authentikasi token dengan code python seperti pada Gambar 16.



Gambar 16. Code Python Aunthentikasi Token Setelah terkoneksi dengan twitter, program akan meminta data tentang kata kunci maupun hashtag yang dicari, kemudian dimasukkan kedalam variabel keyword dan akan meminta jumlah data tweet yang akan dianalisis. Kemudian dimasukkan kedalam variabel noOfTweet yang berupa integer. Variabel tweet akan melakukan operasi pengambilan data yang telah disimpan pada variabel searchTerm dan noOfSearchTerm. Kata kunci yang digunakan dalam pencarian data adalah “Kuliah Online” dan “Kuliah Daring”. Penggunaan Query tersebut dkarenakan kuliah online dan kuliah daring adalah istilah yang digunakan untuk mendeskripsikan pembelajaran yang tetap berlangsung selama pandemi Covid19 dengan sistem perkuliahan menggunakan teknologi dan tidak tatap muka. Pengambilan data diambil perhari sejak dimulai nya penelitian ini adalah per periode Januari 2021 – Maret 2021. Hal ini dikarena API Twitter yang digunakan tidak mendukung dalam pengambilan data dalam waktu yang lama dikarenakan setiap hari data twitter selalu update dan terperbaharui dengan otomatis.



Gambar 17. Code Python Crawling data Data yang terkumpul sebanyak 2000 tweet dikumpulkan dan disimpan kedalam file excel dengan format .xlsx. Tidak ada batasan dalam jumlah data yang diambil namun dengan 2000 data diharapkan dapat mewakili hasil opini masyarakat secara umum. Data yang tersimpan terdiri dari tanggal pembuatan tweet, user twitter yang memposting tweet mengenai kuliah daring dan kuliah online serta tweet yang diposting. Data yang terkumpul dalam format excel dapat dilihat pada Gambar 18.



33



Gambar 18. Hasil Pengumpulan data dengan Twitter API 4.2



Praprocessing Data Tahapan praprocessing data perlu dilakukan karena beberapa kalimat tweet



yang didapatkan tidak sepenuhnya menggunakan kata baku dan menggunakan bahasa indonesia yang baik. Preprocessing dilakukan menggunakan bantuan library pada bahasa pemrograman Python. Praprocessing data dilakukan dengan tahap Case Folding, Tokenizing, Filtering, Stemming sehingga menghasilkan data bersih dan siap untuk lanjut pada proses berikutnya Case Folding Case Folding adalah proses merubah data tweet menjadi lowercase. Berikut merupakan contoh data penelitian yang dilakukan proses case folding. Kode program untuk melakukan tahap case folding dapat dilihat pada Gambar 19 dan hasil tahapan case folding dapat dilihat pada Tabel 7.



Gambar 19. Kode Program tahap Case Folding Tabel 7. Hasil Praprocessing Case Folding No



Tweet



Case Folding



1.



Sangat mewakili dan yang mau



sangat mewakili dan yang mau kuliah



kuliah online aja gamau offline



online aja gamau offline mending kelu



mending



ar kampus aja sekalian daripada ribet



sekalian



keluar



kampus



daripada



https://t.co/TVrd8vTkHD



aja



ribet�



https://t.co/tvrd8vtkhd



34



2.



@collegemenfess Kuliah gapapa



@collegemenfess Kuliah gapapa offlin



offline kalo udh efektif bgt (but



e kalo udh efektif bgt (but mungkin bl



mungkin blm lah ya) tp gue minta



m lah ya) tp gue minta bgt sidang onli



bgt



ne https://t.co/ftsoHFgiHR



sidang



online



https://t.co/ftsoHFgiHR Sumber : Data diolah, 2021 Tokenizing Tokenizing dalam penelitian ini merupakan tahapan dalam memecah string atau input terhadap suatu teks yang telah melewati tahap case folding berdasarkan tiap kata yang menyusunnya dan menghilangkan URL, @mention dan hashtag. Tahap tokenization dilakukan dengan menggunakan fungsi nltk_tokenize( ), library pada bahasa pemrograman Python3 yang bernama NLTK. Dilakukan Import library terlebih dahulu yang dapat dilihat pada Gambar 20.



Gambar 20. Import Library yang dibutuhkan Library string digunakan untuk memuat satu karakter atau lebih yang ada pada data tweet. Terlebih dahulu diimport library re untuk melakukan tahapan Regular Expression (regex) atau deretan karakter yang digunakan untuk pencarian teks dengan menggunakan pola (pattern). Dengan menggunakan library regex dapat memudahkan dalam mencari string tertentu dari teks yang banyak. Selain itu pada tahap ini juga dilakukan proses removing number, whitespace dan punctuation (tanda baca).



Gambar 21. Code Python Tahap Tokenzining



35



Tabel 8. Hasil Prapocessing Tokenizing No



Tweet



Tokenizing



1.



Sangat mewakili dan yang mau



sangat, mewakili, dan, yang, mau, kuli



kuliah online aja gamau offline



ah, online, aja, gamau, offline,mending,



mending keluar kampus aja



keluar, kampus, aja, sekalian,



sekalian daripada ribet� https:



daripada, ribet



//t.co/TVrd8vTkHD 2.



@collegemenfess Kuliah gapapa



kuliah, gapapa, offline, kalo, udh, efekt



offline kalo udh efektif bgt (but



if, bgt, but, mungkin, blm, lah, ya, tp, g



mungkin blm lah ya) tp gue mi



ue, minta, bgt, sidang, online



nta bgt sidang online https://t. co/ftsoHFgiHR Sumber : Data diolah, 2021 Pada tahap ini juga dilakukan proses normalization, yaitu mengubah kata yang tidak lengkap, kesalahan dalam pengetikan (typo) kedalam kata yang normal dan dapat dipahami dengan baik. Hasil tahapan normalisasi dapat dilihat pada Tabel 9.



Gambar 22. Code Python Tahap Normalization Tabel 9. Hasil Proses Normalization No



Tweet



Normalization



1.



kuliah, gapapa, offline, kalo,



Kuliah, tidak, offline, kalau, sudah,



udh, efektif, mungkin, blm, tp,



efektif, mungkin, belum, tapi, banget,



bgt, sidang, online



sidang, online



Sumber : Data diolah, 2021 Filtering Proses membuang kata yang tidak memiliki arti. Proses filtering disebut dengan Stopword Removal. Pada tahap ini menggunakan nltk. NLTK ( Natural Language ToolKit) adalah Library yang disediakan oleh oleh Python untuk membangun program analisis teks. Terlebih dahulu dilakukan proses install library nltk pada anaconda prompt.



36



Gambar 23. Code Python Install NLTK Setelah library diinstal selanjutnya dilakukan proses download stopword yang ada dan menggunakan stopword bahasa indonesia. Hasilnya tweet yang didapatkan dan menggunakan kata yang ada dalam list stopword indonesia akan dibersihkan.



Gambar 24. Code Python Import nltk Gambar 25 menunjukkan kalimat stopword bahasa indonesia yang disediakan oleh library nltk .



Gambar 25. List Stopword Indonesia Selain list stopword Indonesia yang disediakan oleh library nltk, ditambahkan list kata yang tidak dibutuhkan dalam analisis sentimen dengan cara menambahkan secara langsung kata pada list_stopword.extends agar dapat dihapus oleh sistem. Hasil tahapan Filtering dapat dilihat pada Tabel 10.



37



Gambar 26. Code Python Tahap Filtering Tabel 10. Hasil Praprocessing Filtering. No



Tweet Kuliah, tidak, offline, kalau,



1.



sudah,efektif, mungkin, belum, tapi , banget, sidang, online



Filtering Kuliah, offline, kalau, efektif, mung kin, belum, sidang, online



Sumber : Data diolah,2021 Stemming Stemming adalah tahap mencari root (dasar) kata dari tiap kata hasil filtering dengan menghapus kata imbuhan di depan maupun imbuhan di belakang kata. Tahap stemming dilakukan dengan menggunakan bantuan library pada bahasa pemrograman Python3 yang bernama Sastrawi. Dalam hal ini, dilakukan instalasi library menggunakan perintah pip install sastrawi seperti pada Gambar 27



Gambar 27. Perintah Instalasi Library Sastrawi



38



Setelah library telah berhasil diinstall, selanjutnya adalah mengimport kelas StemmerFactory dari library Sastrawi.



Gambar 28. Import kelas Sastrawi



Gambar 29. Code Python Tahapan Stemming Hasil proses stemming akan menghapus kata yang memiliki imbuhan pada awalan, akhiran maupun sisipan kata menjadi bentuk kata dasar. Tabel 11. Hasil Tahapan Stemming Kata Imbuhan



Kata Dasar



mewakili



wakil



tergantung



gantung



paginya



pagi



perkuliahan



kuliah



berharap



harap



punggungku



punggung



tertekan



tekan



maksudnya



maksud



penjualnya



jual



dikampus



kampus



memakai



pakai



bersekolah



sekolah



mengerjakan



kerja



berbicara



bicara



39



4.3



Pelabelan Data Pelabelan data hasil crawling dan telah melalui tahapan preprocessing



dilakukan dengan menggunakan



library python textbob



dengan



melihat



polarity,subjectivity yang dimiliki oleh teks tweet yang telah dikumpulkan. Textblob adalah salah satu library yang disediakan oleh Python untuk pemrosesan dibidang Natural Language Processing yang dapat memberikan tag kata, ekstraksi kata, penerjemahan kata dan sentiment analysis. Hasil objek textblob dapat digunakan untuk melakukan proses pemebelajaran bahasa alami namun saat ini textblob hanya tersedia dalam bahasa inggris oleh sebab itu pada penelitian ini yang menggunakan data bahasa Indonesia dilakukan translate ke dalam bahasa inggris terlebih dahulu. Penentuan kelas positif, netral dan negatif didasari oleh nilai polaritas. Nilai polaritas pada analisis sentimen berada pada rentang 1 sampai -1 yang menunjukan kelas sentimen data. Teks tweet dengan nilai polaritas mengarah ke nilai 1 menunjukan sentimen kelas positif, nilai polaritas mengarah ke nilai -1 menunjukan kelas sentimen negatif dan nilai polaritas berkisar pada nilai 0 masuk kedalam kelas netral. Hasil pelabelan dengan textblob dapat dilihat pada Gambar 30.



Gambar 30. Hasil pelabelan tweet dengan TextBlob Selanjutnya data akan dibagi dengan 80% data latih dan 20% data uji. Sentimen pada data training sejumlah 1600 dibagi secara manual sesuai kelasnya. 400 data lainnya akan digunakan sebagai data uji. Hasil klasifikasi data dapat dilihat pada Tabel 12.



40



Tabel 12. Hasi Pelabelan Data dengan Textblob Positif



Netral



401 1368 20,05% 68,40% Sumber : Data diolah, 2021



Negatif



Jumlah



231 11,55%



2000 100%



Didapatkan hasil akhir dari pelabelan dengan menggunakan library textbob sebanyak 2000 data tweet adalah 401 tweet yang masuk dalam kelas positif, 1368 tweet kelas netral dan 231 tweet kelas negatif. Persentase labeling data dengan textblob dapat dilihat pada Gambar 31.



Gambar 31. Hasil persentase labelling data tweet dengan textblob



Sebagai



perbandingan



terhadap



hasil



data



yang



dilabeli



dengan



menggunakan library textblob, pada penelitian ini juga dilakukan labelling manual yang dilakukan oleh penulis. Proses labelling manual yang dilakukan oleh penulis dapat dilihat pada gambar 32.



Gambar 32. Pelabelan manual oleh penulis



41



Tabel 13.Hasil pelabelan data manual Positif



Netral



Negatif



Jumlah



416 1262 20,8% 63,1% Sumber : Data diolah, 2021



322 16,1 %



2000 100%



Tabel 13 menunjukkan hasil pelabelan manual yang dilakukan oleh penulis. Didapatkan hasil akhir dari pelabelan dengan menggunakan pelabelan manual yang dilakukan penulis 2000 data tweet adalah 416 tweet yang masuk dalam kelas positif, 1262 tweet kelas netral dan 322 tweet kelas negatif. Persentase labeling data dengan manual dapat dilihat pada Gambar 33.



Gambar 33. Hasil persentase labelling data manual Terdapat perbedaan hasil klasifikasi dengan library textblob dan hasil klasifikasi manual yang dilakukan oleh penulis. Selisih perbedaan hasil klasifikasi antara pelabelan menggunakan textblob dan pelabelan manual yang dilakukan oleh penulis adalah sebesar 0,75% pada kelas positif, 5,3% pada kelas netral dan 4,55% pada kelas negatif. Hal ini terjadi karena keterbatasan model library textblob yang saat ini hanya dapat melakukan analisis sentimen dalam bahasa inggris. Data yang digunakan dalam penelitian ini menggunakan bahasa indonesia, ketika diberikan data dengan bahasa indonesia kedalam model klasfikasi textblob, terlebih dahulu dilakukan proses translate ke bahasa inggris sehingga rentan terjadi kesalahan. Perbedaan hasil klasifikasi antara model textblob dengan klasifikasi manual yang dilakukan penulis juga disebabkan oleh hasil klasifikasi yang dilakukan penulis. Dikarenakan manusia memiliki emosi dan jiwa rasa yang berbeda dalam memberikan labelling dan penilaian dari sentimen data tweet. Pada penelitian ini data yang digunakan adalah hasil pelabelan manual yang dilakukan oleh penulis.



42



4.4 Ekstraksi Fitur Setelah data tweet melalui proses praprocessing, data selanjutnya kan dibentuk menjadi sebuah model klasifikasi. Sebelum membuat model ada beberapa tahapan yang perlu dilakukan agar dapat menghasilkan model yang baik. Dalam tahapan ekstraksi fitur, tahap awal yang dilakukan adalah mengubah dataset penelitian ke dalam representasi vector. Python memiliki Library yang bernama Scikit Learn yang dapat digunakan dalam Machine Learning. Pada library ini terdapat algoritma CountVectorizer yang dapat mengubah fitur teks menjadi sebuah representasi vector. Hasil representasi vector didapatkan 2000 angka yang mempunyai 4092 Kata. Hasil representasi dapat dilihat pada Gambar 34



Gambar 34. Code Python CountVectorizer



Gambar 35. Data Word Vector Setelah merubah data teks menjadi word vector, selanjutnya dilakukan penjelajahan beberapa kata yang sering dgunakan atau kata mana yang muncul secara bersamaan. Digunakan model probabilistik N-gram yang digunakan untuk memprediksi kata berikutnya. Penerapan N-gram dapat dilakukan dalam membuat Bigram dan Trigram. Bigram adalah N-gram yang terdiri dari 2 item atau kata dari sebuat kalimat. Trigram adalah N-gram yang terdiri dari 3 item atau kata dari sebuah kalimat. Code Python untuk menjalankan perintah bigram dan hasil bigram dapat dilihat pada Gambar 36.



43



Gambar 36. Hasil tahapan Bigram



Gambar 37. Hasil Tahapan Trigram 4.5



Implementasi Klasifikasi Naive Bayes Setelah melalui praprocessing data dan vectorizer selanjutnya dibuat



model yang akan digunakan untuk melakukan klasifikasi pada data uji. Proses ini dilakukan dengan menggunakan bantuan library pada bahasa pemograman Python3 yang bernama scikit-learn untuk proses klasifikasi. Pada proses klasifikasi digunakan data uji sebanyak 20% dari data keseluruhan. Pembagian data dapat dilihat pada gambar 38.



44



Gambar 38. Pembagian Data Tes dan Uji Didapatkan



hasil



dari



x_train_shape,



x_test_shape,



y_train_shape



dan



y_test_shape seperti pada Gambar 39.



Gambar 39.Hasil dari pembagian data Langkah selanjutnya adalah melakukan klasifikasi digunakan library Multinomial Naive Bayes. Adapun implementasi proses klasifikasi dapat dilihat pada Gambar 40.



Gambar 40. Script Python Klasifikasi Naive Bayes Proses klasifikasi dilakukan dengan perhitungan probabilitas antar kalimat terhadap setiap kelas agar dapat menghasilkan dengan jelas prediksi data yang dimasukan. Data uji yang digunakan sebesar 400 data akan digunakan untuk menguji model klasifikasi yang dibuat dengan menggunakan algoritma Naive Bayes. 4.6



Pengujian Model Klasifikasi Naive Bayes Untuk mengetahui performa dari Algoritma Naive Bayes, maka dilakukan



pengujian terhadap model yang telah dibuat. Hasil klasifikasi akan divisualisasi dalam bentuk confusion matrix. Confusion matrix merupakan salah satu metode yang dapat digunakan untuk mengukur kinerja suatu metode klasifikasi. Pada dasarnya confusion matrix mengandung informasi yang membandingkan hasil klasifikasi yang dilakukan oleh sistem dengan hasil klasifikasi yang seharusnya. Berikut adalah pengujian model klasifikasi dengan menggunakan library python sklearn.metric yang didalamnya memiliki confusion_matrix dan divisualisasi



45



dalam dengan menggunakan seaborn yang merupakan pustaka visualisasi dengan sumber terbuka dibangun diatas pustaka matplotlib.



Gambar 41. Code Python Confusion Matrix



Gambar 42. Visualisasi Confusion Matrix Gambar 42 menunjukkan hasil visualisasi Confusion Matrix. Setelah diketahui Confusion Matrix dari model yang dibuat selanjutnya dilakukan perhitungan nilai akurasi dari model klasifikasi Naive Bayes yang telah dibuat menggunakan



sklearn.metrics



dengan



mengimport



accuracy



score



yang



46



disediakan oleh library scikit.learn. Didapatkan hasil dari perhitungan matrix dengan Code Python yaitu sebesar 0,7975



Gambar 43. Code Python Perhitungan Akurasi Model 4.7



Evaluasi Model Setelah pengujian model selesai dilakukan langkah selanjutnya yang



dilakukan adalah melakukan evaluasi model. Evaluasi model bertujuan untuk menghasilkan confusion matrix dengan ukuran 3 x 3. Confusion Matrix memberikan informasi perbandingan hasil klasifikasi yang dilakukan oleh model klasifikasi dengan hasil klasifikasi sebenarnya. Hasil evaluasi model dengan confusion matrix dilihat pada Tabel 14. Tabel 14. Hasil Confusion Matrix Predict Class



Actual Class



Positif



Netral



Negatif



Positif



24



14



6



Netral



24



233



24



Negatif



3



10



62



Sumber : Data diolah, 2021 Tabel 14 memperlihatkan Confusion Matrix berupa matrixs dengan ukuran 3 x 3 yang mewakili setiap kelas klasifikasi positif, netral dan negatif. Dari confusion matrix dapat dijelaskan bahwa model mengklasifikasikan secara benar sebesar 24 data sebagai positif, 233 data sebagai netral dan 62 sebagai data negatif. Selain itu model salah dalam memprediksi 6 data ke dalam kelas negatif yang seharusnya positif (False Positf), serta salah dalam memprediksi 3 data ke dalam kelas positif yang seharusnya negatif (False Negatif). Berdasarkan hasil pada pengujian model klasifikasi Naive Bayes sebelumnya nilai akurasi pada keseluruhan sistem dapat dihitung sebesar 79,75 %. Untuk menghitung nilai akurasi dapat dilihat pada Gambar 44.



Gambar 44. Kode Python Perhitungan Akurasi



47



Perhitungan akurasi manual dari perhitungan matriks diatas adalah sebagai berikut. True Positif + True Netral + True Negatif



Akurasi =



𝑇𝑜𝑡𝑎𝑙 𝐷𝑎𝑡𝑎 𝑦𝑎𝑛𝑔 𝑑𝑖 𝑈𝑗𝑖



=



319 400



x 100 %



x 100 %



= 79,75 % Akurasi menggambarkan seberapa besar tingkat akurat model yang telah dibuat dapat mengklasifikasi data dengan benar. Akurasi didapatkan dari perhitungan rasio prediksi benar dengan keseluruhan data. Dengan mengetahui besarnya nilai akurasi pada kinerja keseluruhan sistem dapat dinyatakan tingkat kemampuan sistem dalam mencari ketepatan antara informasi yang diinginkan penguna dengan jawaban yang diberikan sistem. Tingkat keberhasilan sistem dalam menemukan sebuah informasi dalam penelitian ini sebesar 79,75 %. Selanjutnya untuk melihat performa klasifikasi dari setiap kelas dapat diketahui melalui nilai presisi, recall dan f1 score pada setiap kelas klasifikasi. Presisi menggambarkan tingkat keakuratan data yang diminta dengan hasil yang diberikan oleh model. Presisi didapatkan dari perhitungan rasio prediksi benar dibandingkan



dengan



keseluruhan



hasil



yang



diprediksi



positif.



Recall



menggambarkan keberhasilan model dalam menemukan kembali informasi yang dimasukkan dalam pengujian. Recall didapatkan dari hasil perhitungan rasio prediksi benar positif dibandingkan dengan keseluruhan data yang benar positif. F1-Score



merupakan parameter tunggal ukuran keberhasilan retrieval yang



menggabungkan recall dan precision. Hasil nilai presisi, recall, dan f1-score memiliki nilai sebesar 0-1. Semakin tinggi nilai maka semakin baik hasil model yang dibuat. Nilai akurasi yang tinggi didapat ketika banyak data yang berhasil diklasifikasi dengan benar sesuai kelas sentimennya. Dapat diketahui juga nilai Precision dan Recall. Nilai Precision mengikuti nilai akurasi, semakin tinggi nilai akurasi maka akan diikuti nilai Precision yang tinggi juga, begitu sebaliknya. Nilai Precision adalah jumlah data positif yang benar diklasifikasi sebagai data positif dibagi total data yang diklasifikasi sebagai data positif. Sedangkan Nilai recall adalah jumlah data positif yang benar diklasifikasi sebagai data positif dibagi jumlah data positif sebenarnya. Pada confusion matrix sebelumnya, dapat diketahui nilai true positif dan true negatif. True positif adalah nilai data positif yang diklasifikasi dengan benar sesuai kelas sentimennya, yaitu positif. True negatif adalah nilai data sentimen yang diklasifikasi dengan benar sesuai kelas sentimennya, yaitu negatif. Perbandingan nilai presisi,recall dan F1-Score dapat dilihat pada Tabel 15.



48



Tabel 15. Nilai Presisi, Recall, dan F1-Score Evaluasi Model Jenis Klasifikasi



Presisi



Recall



F1-Score



Positif



0,55



0,47



0,51



Netral



0,83



0,91



0,87



Negatif



0,83



0,67



0,74



Sumber : Data diolah, 2021 Hasil dari evaluasi model dapat dilihat bahwa nilai presisi dan recall disetiap kelas dapat dikatakan memiliki tingkat kemampuan yang tinggi dalam mencari ketepatan antara informasi yang diminta oleh pengguna. Nilai presisi untuk kelas positif sebesar 55%, untuk kelas netral sebesar 83%, untuk kelas negatif sebesar 83%. Angka ini dapat diartikan bahwa proporsi label yang diprediksi dengan benar dari total prediksi cukup tinggi untuk kelas netral dan negatif. Sedangkan tingkat keberhasilan sistem dalam menemukan kembali sebuah informasi untuk kelas positif sebesar 47%, untuk kelas netral sebesar 91% dan kelas negatif sebesar 67%. Hal ini berarti kinerja keberhasilan sistem dalam menemukan kembali informasi yang bernilai positif dalam dokumen rendah dibandingkan dengan menemukan informasi kembali yang bernilai negatif dan netral. Didapatkan rata rata nilai precision sebesar 0,79%, nilai recall sebesar 80% dan nilai F1-Score sebesar 79%. 4.8



Hasil dan Visualisasi Klasifikasi Sentimen



Visualisasi Menggunakan Python 3 Setelah dilakukan proses pembersihan data dan klasifikasi selanjutnya didapatkan hasil sentimen. Wordcloud adalah bentuk visualisasi dari data teks yang menggambarkan kumpulan kata yang banyak terdapat dalam sebuah analisis teks. Wordcloud dibuat dengan menggunakan library Wordcloud dan PIL (Python Imaging Library) yaitu pustaka tambahan gratis dan sumber terbuka untuk bahasa pemrograman Python yang menambahkan dukungan untuk membuka, memanipulasi, dan menyimpan banyak format file gambar yang berbeda. Script Python untuk membuat wordcloud dapat dilihat pada Gambar 45.



Gambar 45. Script Python Membuat wordcloud



49



Gambar 45 menunjukkan tampilan wordcloud yang terdiri dari kata yang banyak muncul dalam data penelitian.



Gambar 46. Wordcloud dalam data penelitian Klasifikasi Kelas Sentimen Untuk dapat mengetahui secara umum hasil klasifikasi sentimen, dilakukan proses mencetak data teks yang memiliki kelas sentimen positif, netral dan negatif. Gambar 47 menunjukkan script python yang digunakan untuk menampilkan data sesuai dengan kelas.



Gambar 47. Script Python Menampilkan data perkelas Hasil data klasifikasi teks sentimen kelas positif 1. sudah nyaman sama kuliah online 2. Dulu ingin cepat kuliah offline tapi sekarang nyaman online 3. Untung kuliah online jadi waktu bisa fleksibel Hasil data klasifikasi teks sentimen kelas netral 1. Nyaman kuliah offline dan online 2. Kuliah online bagus dan offline bagus 3. Offline dan online sama, sama belajar Hasil data klasifikasi teks sentimen kelas negatif 1. Stress kuliah online tugas banyak 2. Makin kesini rasa kuliah online tidak jelas 3. Internet mati tidak bisa ikut kuliah



50



Visualisasi Hasil Klasifikasi Menggunakan NVIVO 10 Setelah proses klasifikasi dengan menggunakan metode Naive Bayes selesai dilakukan selanjutnya digunakan aplikasi Nvivo untuk menampilkan hasil visualisasi. Terlebih dahulu hasil dataset yang telah siap digunakan diimpor ke dalam software QSR NVivo 10, selanjutnya melakukan koding terhadap data tersebut. Richard (dalam Bandur, 2016) mengartikan koding sebagai proses penemuan ide utama yang terdapat dalam transkrip serta menemukan topiktopik yang bersumber dari pencarian ide utama tersebut. Koding merupakan proses mereduksi data untuk menjelaskan karakteristik atau atribut partisipan. Bandur (2016) mengartikan koding sebagai suatu proses iteratif, yaitu kegiatan peneliti kualitatif secara kontinu dalam analisis data. Dalam proses tersebut dibentuk kategorisasi data berdasarkan konsep-konsep yang muncul dalam data, membandingkan



konsep-konsep



dan/atau



kategori-kategori



data



serta



menyatukan kembali semua konsep dan kategori data yang berhubungan satu dengan lainnya. Pada akhirnya, proses ini akan berhenti ketika tidak lagi ditemukan



konsep-konsep baru dalam data. Tujuan koding adalah untuk



mendalami masalah penelitian berdasarkan penjelasan-penjelasan dan pola-pola yang terdapat dalam data penelitian. Koding juga bertujuan mengumpulkan semua informasi yang relevan dari berbagai sumber berkaitan dengan suatu kasus tertentu. Kategori tema yang dianalisis peneliti selama proses koding disimpan dalam nodes, sehingga nodes berperan sangat penting dalam manajemen dan analisis data kualitatif dengan NVivo. Menurut Bazeley dan Jackson (2013), nodes merupakan ‘containers’ tempat peneliti menyimpan tema-tema, partisipan, setting penelitian, dan organisasi penelitian. Dengan melihat nodes yang dibuat berdasarkan kategori dan subkategori unit analisis, peneliti dapat melihat pola hubungan antar tema konsep yang dihasilkan berdasarkan data. Teknik pembuatan nodes dapat dilakukan secara deduktif tetapi juga dapat dilakukan secara induktif. Berdasarkan hasil pencarian dengan fitur Word Frequency Query software QSR NVivo 10 dari berbagai sumber data yang telah diimpor, kata ‘kuliah’ merupakan kata dengan frekuensinya paling banyak muncul yaitu 11,50% dari seluruh sumber data penelitian, diikuti dengan kata ‘daring’ dan ‘offline’ yaitu 1,19 % dan 1,14% dari seluruh sumber data penelitian. Gambar 48 menunjukkan Word Cloud dari 50 kata terdominan yang digunakan dalam sumber data penelitian ini



51



Gambar 48. Word Cloud Kata Dominan Pada Data Penelitian Untuk memahami penggunaan kata-kata tersebut dari berbagai sumber data penelitian, dapat dilihat melalui fitur Text Search Query. Pada penelitian ini, dapat dipahami bahwa penggunaan kata ‘jaringan’ yang merupakan kata terdominan dari berbagai sumber data penelitian yang telah dikumpulkan. Hasil pencarian tersebut disajikan dalam Word Tree. Word Tree adalah visualisasi berbasis grafik hasil dari fitur Text Search Query menyampaikan pemahaman yang lebih baik tentang bagaimana kata yang dicari dan kaitan dengan topik tertentu. Word Tree dengan penggunaan kata jaringan dapat dilihat pada Gambar 49.



Gambar 49. Word Tree penggunaan Kata 'jaringan' dalam data penelitian



52



Kata ‘Jaringan’ adalah kata yang paling sering muncul dalam data penelitian. Kata Jaringan memiliki lebih banyak sentimen negatif. Jaringan yang tidak stabil dan sinyal yang susah dapat membuat kegiatan perkuliahan menjadi tidak efektif. Ini biasa dirasakan oleh mahasiswa yang tinggal jauh dari kota atau tinggal di tempat terpencil yang sulit menemukan koneksi internet yang bagus. Saat kegiatan perkuliahan dimulai niat untuk belajar sudah terkumpul namun akhirnya niat untuk belajar menurun akibat jaringan yang tidak mendukung. Mahasiswa menjadi malas dan tidak bersemangat lagi memerhatikan penjelasan dosen dikarenakan sudah ketinggalan materi. Bukan hanya mahasiswa yang bisa mengalami gangguan jaringan, faktanya dapat juga ditemui dosen yang memiliki koneksi internet tidak bagus yang membuat penyampaian materi menjadi tidak jelas dan membuat mahasiswa tidak paham. Ditambah lagi waktu menjadi tidak efisien dan terbuang sia-sia saat menunggu koneksi stabil. Koneksi internet yang tidak stabiil juga menimbulkan rasa malas pada seorang mahasiswa.



Gambar 50. Word Tree Penggunaan kata 'Tugas' dalam Data Penelitian



53



Word Tree dengan penggunaan kata tugas dapat dilihat pada Gambar 50. Permasalahan lainnya adalah banyaknya tugas yang diberikan oleh dosen, namun mereka tidak mengerti dengan apa yang dipelajari dan bagaimana menyelesaikan tugas tersebut. Dampaknya mahasiswa akan merasa stres dan pesimis. Dibutuhkan rasa percaya diri yang tertanam pada mahasiswa. Kepercayaan diri merupakan bentuk keyakinan terhadap kemampuan yang dimiliki untuk menampilkan sebuah perilaku dalam mencapai suatu tujuan (Saputri et al., 2020). Efikasi diri atau rasa percaya diri atau keyakinan mahasiswa mengenai kemampuannya menyelesaikan tugas terbilang rendah. Afnan (2020) menyatakan bahwa efikasi diri dan rasa stres memiliki hubungan variabel yang negatif. Artinya, semakin tinggi efikasi diri mahasiswa maka semakian rendah tingkat stresnya. Sebaliknya, semakin rendah efikasi diri maka semakin tinggi tingkat stresnya.



Gambar 51. Word Tree penggunaan kata 'teknologi' dalam Data Penelitian Gambar 51 menunjukan kata teknologi yang ada dalam data penelitian. Penerapan kuliah online juga harus sejalan dengan perkembangan teknologi. Apabila sudah menguasai teknologi maka tidak akan sulit untuk dapat beradaptasi dengan teknik pembelajaran daring. Tidak ada masalah mengenai pembelajaran



daring



yang



diterapkan



karena



mereka



sudah



terbiasa



menggunakan teknologi. Selain itu, bagi mahasiswa yang mengamati penjelasan dosen dari awal hingga akhir akan bisa memahami materi baik banyak maupun sedikit. Point terpenting adalah memusatkan perhatian pada materi yang disampaikan, bertanya jika ada yang kurang dimengerti, dan mengulang materi pembelajaran di waktu luang. Salah satu keuntungan kuliah online ialah kegiatan pembelajarannya dapat direkam sehingga penjelasan dosen bisa diulang kembali di waktu lain. Permasalahan yang timbul selama penerapan kuliah online adalah dosen senior yang tidak begitu mengerti mengenai cara penggunaan teknologi sebagai media pembelajaran. Ketidaktahuan terhadap teknologi menyebabkan proses pembelajaran kuliah online tidak efektif. Aplikasi yang mendukung pembelajaran online tidak sepenuhnya digunakan sehingga proses pembelajaran bersifat monoton dan tidak ada interaksi yang memadai antara mahasiswa dan dosen. Dibutuhkan pelatihan terhadap dosen mengenai



54



penggunaan aplikasi dan teknologi yang mendukung pembelajaran selama kuliah online berlangsung. Setelah mendapatkan Query yang paling sering muncul dalam data penelitian, disajikan peta nodes penelitian berdasarkan tahapan koding melalui project map yang dapat dilihat pada Gambar 52. Project map adalah representasi grafis dari item yang berbeda dalam proyek. Project map dibuat mengacu pada tema hasil koding yang dapat digunakan untuk mengeksplorasi dan menyajikan koneksi data.



Gambar 52. Project Map Keluhan selama kuliah online Project map dapat divisualisasikan dalam bentuk diagram hirarkis. Diagram hirarkis memiliki dua tipe yaitu tree maps and sunbursts. Diagram hirarkis adalah diagram yang menunjukkan data hirarkis sebagai satu set empat persegi panjang bertingkat berbagai ukuran. Ukuran menunjukkan jumlah, misalnya, jumlah koding pada node atau jumlah referensi dari koding. Diagram hirarkis memiliki skala terbaik sesuai dengan ruang yang tersedia sehingga ukuran persegi panjang harus dipertimbangkan dalam hubungan satu sama lain, bukan sebagai angka absolut. Wilayah terluas ditampilkan di bagian kiri atas grafik, sedangkan wilayah terkecil ditampilkan di bagian kanan bawah grafik. Pada penelitian ini, digunakan diagram hirarkis karena ingin melihat dominasi kata yang sering banyak muncul dalam data penelitian berdasarkan banyaknya koding terhadap sumber data Setelah mengetahui tahapan masalah apa saja yang di alami mahasiswa selama penerapan kuliah online maka akan didapatkan keselarasan maupun kekonsistenan dari permasalahan tersebut. Untuk melakukan analisis pada kasus ini, dilakukan analisis kluster (cluster analysis) berbantuan software QSR



55



NVivo berdasarkan kesamaan kata, artinya kata-kata yang terkandung dalam sumber data atau node yang dipilih akan dibandingkan. Sumber data atau node yang



memiliki



tingkat



yang



lebih



tinggi



dari



kesamaan



berdasarkan



kemunculannya dan frekuensi kata-kata akan ditampilkan mengelompok. Sumber data atau node yang memiliki tingkat lebih rendah dari kesamaan berdasarkan kemunculannya dan frekuensi kata-kata akan ditampilkan jauh terpisah.



Gambar 53. Pengelompokan Node Berdasarkan Kemiripan Kata Berdasarkan analisis tersebut yang divisualisasikan dalam Horizontal Dendrogram pada Gambar 53, diperoleh informasi bahwa terdapat empat pasang node yang memiliki kemiripan pada kalimat jaringan dan tugas. Hasil ini didukung oleh korelasi-korelasi yang termasuk kategori sedang hingga cukup tinggi. Informasi ini mengindikasikan bahwa: a) Mahasiswa memiliki kesulitan dalam hal jaringan internet sehingga proses pembelajaran selama kuliah online menjadi terganggu. b) Timbulnya masalah psikologis pada mahasiswa dikarena tugas yang semakin banyak dan kurangnya interaksi terhadap sesama mahasiswa menyebabkan ketidakstabilan emosi dan memicu rasa stress, c) Penggunaan perangkat teknologi secara terus-menerus membuat teknologi yang digunakan seperti laptop dan handphone semakin cepat mengalami kerusakan d) Minimnya pengetahuan dosen mengenai teknologi yang digunakan selama pembelajaran online menyebabkan proses perkuliahan sedikit terhambat e) Penyampaian materi yang susah untuk dipahami oleh mahasiswa jika tidak bertatap muka secara langsung,namun pemberian tugas yang semakin banyak membuat mahasiswa menjadi tidak sanggup untuk tetap menjalankan kuliah online.



V. KESIMPULAN DAN SARAN 5.1 Kesimpulan Berdasarkan hasil pengujian algoritma Naive Bayes Classifier yang telah dilakukan ada beberapa hal yang dihasilkan, antara lain : 1. Pada penelitian ini, algoritma Naive Bayes Classifier terbukti algoritma yang akurat karena menghasilkan nilai akurasi sebesar 79,75% 2. Hasil analisis sentimen twitter dengan kata kunci kuliah online dan kuliah daring pada penelitian ini memiliki nilai Precision sebesar 79%, nilai Recall sebesar 80% dan nilai F1-Score sebesar 79%. 3. Berdasarkan hasil analisis dari pola-pola yang terdapat dalam data penelitian dampak penerapan kuliah online selama pandemi Covid-19 adalah a) Mahasiswa memiliki kesulitan dalam jaringan internet b) Timbulnya masalah psikologis pada mahasiswa dikarena tugas yang semakin banyak dan kurangnya interaksi terhadap sesama mahasiswa menyebabkan



ketidakstabilan



emosi



dan



memicu



rasa



stress,



c)



Penggunaan perangkat teknologi secara terus-menerus membuat teknologi semakin cepat mengalami kerusakan d) Minimnya pengetahuan dosen mengenai



teknologi



yang



digunakan



selama



pembelajaran



online



menyebabkan proses perkuliahan sedikit terhambat e) Penyampaian materi yang susah untuk dipahami oleh mahasiswa jika tidak bertatap muka secara langsung,namun pemberian tugas yang semakin banyak membuat mahasiswa menjadi tidak sanggup untuk tetap menjalankan kuliah online. 5.2 Saran Dari hasil penelitian yang dilakukan masih banyak kekurangan dengan demikian peneliti berharap penelitian ini untuk dikembangkan, beberapa saran dari penulis antara lain : 1.Menggunakan



algoritma



klasifikasi



yang



lain



sehingga



dapat



membandingkan hasil uji model yang dilakukan untuk mencari algoritma klasifikasi terbaik. 2. Menambah data training dan mengupayakan untuk menyeimbangkan jumlah data di setiap kelasnya. 3. Membuat interface dari proses pengujian model dan visualisasi dari performa metode yang digunakan. 4. Pembelajaran online dapat efektif apabila semua kendala pada akses jaringan, perangkat teknologi dan fasilitas pendukung yang digunakan selama kuliah online dapat diatasi dengan baik.



56



DAFTAR PUSTAKA Afnan, A., Fauzia, R., & Tanau, M. U. (2020). Hubungan Efikasi Diri Dengan Stress Pada Mahasiswa Yang Berada Dalam Fase Quarter Life Crisis. Jurnal Kognisia Psikologi Online, 3(1), 23- 29. Aliandu, P (2012). Analisis Sentimen Tweet Berbahasa Indonesia di Twitter, Tesis, Program Studi S2 Ilmu Komputer, Fakultas Matematika Dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada, Yogyakarta. Astini,N.K.S. (2020). Pemanfaatan teknologi Informasi dalam pembelajaran tingkat sekolah dasar pada masa pandemi covid-19. Jurnal Lampuhyang. 11(2), 13-25. Bandur, A. (2016). Penelitian Kualitatif: Metodologi, Desain dan Teknik Analisis Data dengan NVivo 11 Plus. Jakarta: Mitra Wacana Media. Bazeley, P. (2007). Qualitative Data Analysis with Nvivo Qualitative Project Book. Thousand Oaks. CA: Sage Publications. Berry, M.J.A & Gordon Linoff. (1999). Data Mining For Marketing and Costumer Support. New York : John Willey & Sons. Buntoro, G. A. (2017). Analisis Sentimen Calon Gubernur DKI Jakarta 2017 Di Twitter. 2(1), 32–41. Das, S., & Nene, M. J. (2017). A survey on types of machine learning techniques in intrusion prevention systems. 2017 International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET), 2296–2299. https://doi.org/10.1109/WiSPNET.2017.8 300169 Dikti, D. (2020). Surat Dirjen Dikti Nomor : 302/E.E2/KR/2020 Tentang Masa Belajar Penyelenggaraan Program Pendidikan. Feldman, R., & Sanger, J. (2007). The Text Mining Handbook: Advanced Approaches In Analyzing Unstructured Data. Cambridge University Press. Fiarni, C., Maharani, H., & Pratama, R. (2016). Sentiment Analysis System For Indonesia Online Retail Shop Review Using Hierarchy Naive Bayes Technique. 2016 4th International Conference on Information and Communication Technology (ICoICT). https://doi.org/10.1109/icoict.2016.7571912 Glaser, B. G. (1978). Theoretical Sensitivity: Advances in the Methodology of Grounded Theory. Mill Valley, Ca.: Sociology Press. Goldberg, D. E., & Holland, J. H. (1988). Genetic algorithms and machine learning. Machine Learning, 3(2), 95–99. Herwin,M.,Wino, Susanti, Erlin. (2020). Analisis Sentimen Dompet Elektronik Pada Media Sosial Twitter Menggunakan Naïve Bayes Classifier Pengguna ( dalam Persen ). 5(1), 72–86. Hikmawan, S., Pardamean, A., & Khasanah, S. N. (2020). Sentimen Analisis Publik Terhadap Joko Widodo Terhadap Wabah Covid-19 Menggunakan Metode Machine Learning. 20(2), 167–176. Liu,B. (2011).Web Crawling.In Web Data Mining : Exploring Hyperlinks,Content, and Usage Data(pp.311-362).Chicago:Springer. Mooney, R & Wong, Y. W. (2006). Learning for Semantic Parsing With Statistical Machine Translation. In Proceedings of The Human Language Technology Conference of the NAACL. 2(1). 439-446.



57



58



Manning, C.D., Schutze,H., & Raghavan, P.(2008). Introduction To Information Retrieval. Cambridge University Press. Kaya, M., Fidan, G., & Toroslu, I. H. (2012). Sentiment Analysis of Turkish Political News. International Conferences On Web Intelligence and Intelligent Agent Technology. https://doi.org/10.1109/wi-iat.2012.115. Michael J.A. Berry & Gordon Linoff. (1999). Data Mining for Marketing and Costumer Support. New York : John Willey & Sons. Novantirani,A.,Sabirah,M.K., & Effendy, V (2015). Analisis Sentimen pada Twitter untuk penggunaan transportasi umum darat dalam kota dengan metode Support Vector Machine. e-Proceeding of Engineering : 2(1), 1023-1177. Nurdiansyah. (2018). Sistem Analisis Sentimen untuk Review Film Berbahasa Indonesia Menggunakan Metode Naive Bayes Classifier. J. Phys.: Conf. Ser. 1008 012011 O’Reilly,T.,&Milstein,S. (2011). The Twitter Book. O’Reilly Media,Inc Pamungkas, D.S., Setiyanto,N.A., & Dolphina,E. (2015). Analisis Sentimen Pada Media Sosial Twitter Menggunakan Naive Bayes Classifier Terhadap Kata Kunci “Kurikulum 2013). Jurnal Techno.Com. 4(12). 299-314. Pramono, R. Indrianti and A. Nugroho. (2017) Sentimen Analysis Tokoh Politik pada Twitter. Seminar Nasional Inovasi Teknologi UN PGRI Kediri. 6(2). 86-90. Richards, T. dan Richards, L. (2009). Handling Qualitative Data: A Practical Guide (2ed.). London: Sage Publications Ltd. Saputri, L. K., Lestari, D. R., & Zwagery, R. V. (2020). Hubungan Pola Asuh Orang Tua dengan Kepercayaan Diri Remaja di SMK Borneo Lestari Banjarbaru. Dunia Keperawatan: Jurnal Keperawatan dan Kesehatan, 8(1), 34-42. Satuan Tugas Penanganan Covid-19. (2020). Infografis COVID-19 (13 Oktober 2020). Retrieved from https://covid19.go.id/p/berita/infografis-covid-13Oktober-2020. Somvanshi, M., & Chavan, P. (2016). A Review Of Machine Learning Techniques Using Decision Tree And Support Vector Machine. 2016 International Conference on Computing Communication Control and Automation (ICCUBEA), 1–7. https://doi.org/10.1109/ICCUBEA.2016.7 860040. Strauss, A. (1987). Qualitative Analysis for Social Scientists. New York: Cambridge University Press Sunarya, A., Santoso, S., & Sentanu, W. (2015). Sistem Pakar Untuk Mendiagnosa Gangguan Jaringan Lan. CCIT Journal, 8(2), 1–11. Thupae, R., Isong, B., Gasela, N., & AbuMahfouz, A. M. (2018). Machine Learning Techniques for Traffic Identification and Classifiacation in SDWSN: A Survey. IECON 2018 - 44th Annual Conference of the IEEE Industrial Electronics Society, 4645–4650. https://doi.org/10.1109/IECON.2018.859 1178. Ting, S. L., ip, W.H., & Tsang,A.H. (2011). Is Naive Bayes Classification a Good Classifier for Document Classification. International Jurnal Of Software Engginering and Its Application, 5(3),37-46. Twitter Inc. (2018) Twitter Social Media Twitter. https://support.twitter.com. Diakses 11 November 2021 Wang, S., Jiang, L., & Li, C. (2015). Adapting Naive Bayes Tree For Text Classification. Knowledge And Information Systems, 44(1), 77-89.



59



Wijaya, Pandu. & Agus Santoso, H. (2018). Naive Bayes Classification Wijaya, Pandu. & Agus Santoso, H. (2018). Naive Bayes Classification pada Klasifikasi Dokumen Untuk Identifikasi Konten E-Government. Journal of Applied Intelligent System. 1(1). 48-55. Windasari,S I. P., Uzzi, F. N., & Satoto, K. I. (2017). Sentiment Analysis on Twitter Posts : An analysis of Positive or Negative Opinion on GoJek. 266–269. Zamachsari, F., Saragih, G. V., & Gata, W. (2020). Analisis Sentimen Pemindahan Ibu Kota Negara dengan Feature Selection. 1(10), 504–512. Zamil, M. (2019). Klasifikasi Kalimat Ofensif Pada Media Sosial Twitter Menggunakan Metode Naïve Bayes Classifier. Doctoral dissertation, universitas Islam Negeri Sultan Syarif Kasim Riau. 2(5). 107-110



LAMPIRAN



1. Surat Izin Verifikasi Data



Gambar 1. Surat Izin Verifikasi Data



60



61



2. Source Code Klasifikasi Data # Import Libraries from textblob import TextBlob import sys import tweepy import matplotlib.pyplot as plt import pandas as pd import numpy as np import os import nltk import pycountry import re import string from wordcloud import WordCloud, STOPWORDS from PIL import Image from nltk.sentiment.vader import SentimentIntensityAnalyzer from langdetect import detect from nltk.stem import SnowballStemmer from nltk.sentiment.vader import SentimentIntensityAnalyzer from sklearn.feature_extraction.text import CountVectorizer # Authentication consumerKey = "ptYioRiiTU1M3tB55wEVZkcel" consumerSecret = "y0MQO4NIueQv5nE2RFpv8Wx92dEW6JWE1UOl0VekTT7nvgmRCx" accessToken = "815848759787749376-hfdh3LULlqR5plPwiFEg5WQGFc4sogS" accessTokenSecret = "GrpprST61FGf1OGGl0ZBTgrFGrpWPqHNHWMP5pFX8r4aP" auth = tweepy.OAuthHandler(consumerKey, consumerSecret) auth.set_access_token(accessToken, accessTokenSecret) api = tweepy.API(auth,wait_on_rate_limit=True) def percentage(part,whole): return 100 * float(part)/float(whole) keyword = input("Masukkan Hashtag atau Query yang dicari: ") noOfTweet = int(input ("Masukkan jumlah Tweet : ")) tweets = tweepy.Cursor(api.search, q=keyword, since='2021-01-01', until='202105-01').items(noOfTweet) positive = 0 negative = 0 neutral = 0 polarity = 0 tweet_list = [] neutral_list = [] negative_list = [] positive_list = [] for tweet in tweets: #print(tweet.text) tweet_list.append(tweet.text) analysis = TextBlob(tweet.text) lang='id' score = SentimentIntensityAnalyzer().polarity_scores(tweet.text) neg = score['neg'] neu = score['neu'] pos = score['pos'] comp = score['compound']



62



polarity += analysis.sentiment.polarity if neg > pos: negative_list.append(tweet.text) negative += 1 elif pos > neg: positive_list.append(tweet.text) positive += 1 elif pos == neg: neutral_list.append(tweet.text) neutral += 1 positive = percentage(positive, noOfTweet) negative = percentage(negative, noOfTweet) neutral = percentage(neutral, noOfTweet) polarity = percentage(polarity, noOfTweet) positive = format(positive, '.1f') negative = format(negative, '.1f') neutral = format(neutral, '.1f') #Number of Tweets (Total, Positive, Negative, Neutral) tweet_list = pd.DataFrame(tweet_list) neutral_list = pd.DataFrame(neutral_list) negative_list = pd.DataFrame(negative_list) positive_list = pd.DataFrame(positive_list) print("total tweets: ",len(tweet_list)) print("total positif: ",len(positive_list)) print("total negatif: ", len(negative_list)) print("total netral: ",len(neutral_list)) print(tweet_list) tweet_list.to_excel("claudia/kuliahdaring.xlsx") pd.set_option("display.max_colwidth", -1) print(tweet_list) tweet_list.style #Creating PieCart labels = ['Positive ['+str(positive)+'%]' , 'Neutral ['+str(neutral)+'%]','Negative ['+str(negative)+'%]'] sizes = [positive, neutral, negative] colors = ['yellowgreen', 'blue','red'] patches, texts = plt.pie(sizes,colors=colors, startangle=90) plt.style.use('default') plt.legend(labels) plt.title("Sentiment Analysis Result for keyword= "+keyword+"" ) plt.axis('equal') plt.show() tweet_list.drop_duplicates(inplace = True) tw_list = pd.DataFrame(tweet_list) tw_list["text"] = tw_list[0] tw_list.style # ------ Case Folding -------# gunakan fungsi Series.str.lower() pada Pandas tw_list['text'] = tw_list['text'].str.lower() print('Case Folding Result : \n') print(tw_list['text'].head(5)) print('\n\n\n') import string import re #regex library



63



# import word_tokenize & FreqDist from NLTK from nltk.tokenize import word_tokenize from nltk.probability import FreqDist # ------ Tokenizing --------def remove_tweet_special(text): # remove tab, new line, ans back slice text = text.replace('\\t'," ").replace('\\n'," ").replace('\\u'," ").replace('\\',"") # remove non ASCII (emoticon, chinese word, .etc) text = text.encode('ascii', 'replace').decode('ascii') # remove mention, link, hashtag text = ' '.join(re.sub("([@#][A-Za-z0-9]+)|(\w+:\/\/\S+)"," ", text).split()) # remove incomplete URL return text.replace("http://", " ").replace("https://", " ") tw_list['text'] = tw_list['text'].apply(remove_tweet_special) #remove number def remove_number(text): return re.sub(r"\d+", "", text) tw_list['text'] = tw_list['text'].apply(remove_number) #remove punctuation def remove_punctuation(text): return text.translate(str.maketrans("","",string.punctuation)) tw_list['text'] = tw_list['text'].apply(remove_punctuation) #remove whitespace leading & trailing def remove_whitespace_LT(text): return text.strip() tw_list['text'] = tw_list['text'].apply(remove_whitespace_LT) #remove multiple whitespace into single whitespace def remove_whitespace_multiple(text): return re.sub('\s+',' ',text) tw_list['text'] = tw_list['text'].apply(remove_whitespace_multiple) # remove single char def remove_singl_char(text): return re.sub(r"\b[a-zA-Z]\b", "", text) tw_list['text'] = tw_list['text'].apply(remove_singl_char) # NLTK word rokenize def word_tokenize_wrapper(text): return word_tokenize(text) tw_list['tweet_tokens'] = tw_list['text'].apply(word_tokenize_wrapper) print('Tokenizing Result : \n') print(tw_list['tweet_tokens'].head()) print('\n\n\n') # NLTK calc frequency distribution



64



def freqDist_wrapper(text): return FreqDist(text) tw_list['tweet_tokens_fdist'] = tw_list['tweet_tokens'].apply(freqDist_wrapper) print('Frequency Tokens : \n') print(tw_list['tweet_tokens_fdist'].head().apply(lambda x : x.most_common())) from nltk.corpus import stopwords # ----------------------- get stopword from NLTK stopword ------------------------------# get stopword indonesia list_stopwords = stopwords.words('indonesian') # ---------------------------- manualy add stopword -----------------------------------# append additional stopword list_stopwords.extend(["yg","make", "dg", "gua","gw", "rt", "dgn", "ny", "d", 'klo', 'kalo', 'amp', 'biar', 'bikin', 'bilang', 'gak', 'ga', 'krn', 'nya', 'nih', 'sih', 'si', 'tau', 'tdk', 'tuh', 'utk', 'ya', 'jd', 'jgn', 'sdh', 'aja', 'n', 't', 'nyg', 'hehe', 'bgst', 'pen', 'u', 'nan', 'loh', 'rt', 'wkwk','wkwk','guys','kan', '&', 'yah']) # ----------------------- add stopword from txt file -----------------------------------# read txt stopword using pandas txt_stopword = pd.read_csv("claudia\stopwords.txt", names= ["stopwords"], header = None) # convert stopword string to list & append additional stopword list_stopwords.extend(txt_stopword["stopwords"][0].split(' ')) # --------------------------------------------------------------------------------------# convert list to dictionary list_stopwords = set(list_stopwords) #remove stopword pada list token def stopwords_removal(words): return [word for word in words if word not in list_stopwords] tw_list['tweet_tokens_WSW'] = tw_list['tweet_tokens'].apply(stopwords_removal) print(tw_list['tweet_tokens_WSW'].head()) normalizad_word = pd.read_excel("claudia/normalisasi.xlsx") normalizad_word_dict = {} for index, row in normalizad_word.iterrows(): if row[0] not in normalizad_word_dict: normalizad_word_dict[row[0]] = row[1] def normalized_term(document): return [normalizad_word_dict[term] if term in normalizad_word_dict else term for term in document] tw_list['tweet_normalized'] = tw_list['tweet_tokens_WSW'].apply(normalized_term) tw_list['tweet_normalized'].head(10) # import Sastrawi package



65



from Sastrawi.Stemmer.StemmerFactory import StemmerFactory import swifter # create stemmer factory = StemmerFactory() stemmer = factory.create_stemmer() # stemmed def stemmed_wrapper(term): return stemmer.stem(term) term_dict = {} for document in tw_list['tweet_normalized']: for term in document: if term not in term_dict: term_dict[term] = ' ' print(len(term_dict)) print("------------------------") for term in term_dict: term_dict[term] = stemmed_wrapper(term) print(term,":" ,term_dict[term]) print(term_dict) print("------------------------") # apply stemmed term to dataframe def get_stemmed_term(document): return [term_dict[term] for term in document] tw_list['tweet_tokens_stemmed'] tw_list['tweet_normalized'].swifter.apply(get_stemmed_term) print(tw_list['tweet_tokens_stemmed']) tw_list.to_excel("claudia/preproseskuliahdaring.xlsx") #Calculating Negative, Positive, Neutral and Compound values



=



tw_list[['polarity', 'subjectivity']] = tw_list['text'].apply(lambda Text: pd.Series(TextBlob(Text).sentiment)) for index, row in tw_list['text'].iteritems(): score = SentimentIntensityAnalyzer().polarity_scores(row) neg = score['neg'] neu = score['neu'] pos = score['pos'] comp = score['compound'] if neg > pos: tw_list.loc[index, 'sentiment'] = "negative" elif pos > neg: tw_list.loc[index, 'sentiment'] = "positive" else: tw_list.loc[index, 'sentiment'] = "neutral" tw_list.loc[index, 'neg'] = neg tw_list.loc[index, 'neu'] = neu tw_list.loc[index, 'pos'] = pos tw_list.loc[index, 'compound'] = comp tw_list.head(10) tw_list.to_excel("claudia/hasilpreproseskuliahdaring2.xlsx") #Creating new data frames for all sentiments (positive, negative and neutral) tw_list_negative = tw_list[tw_list["sentiment"]=="negative"] tw_list_positive = tw_list[tw_list["sentiment"]=="positive"] tw_list_neutral = tw_list[tw_list["sentiment"]=="neutral"]



66



#Function for count_values_in single columns def count_values_in_column(data,feature): total=data.loc[:,feature].value_counts(dropna=False) percentage=round(data.loc[:,feature].value_counts(dropna=False,normalize=True) *100,2) return pd.concat([total,percentage],axis=1,keys=['Total','Percentage']) #Count_values for sentiment count_values_in_column(tw_list,"sentiment") # create data for Pie Chart pichart = count_values_in_column(tw_list,"sentiment") names= pichart.index size=pichart["Percentage"] # Create a circle for the center of the plot my_circle=plt.Circle( (0,0), 0.7, color='white') plt.pie(size, labels=names, colors=['green','blue','red']) p=plt.gcf() p.gca().add_artist(my_circle) plt.show() #Function to Create Wordcloud def create_wordcloud(text): mask = np.array(Image.open("claudia/cloud.png")) stopwords = set(STOPWORDS) wc = WordCloud(background_color="white", mask = mask, max_words=3000, stopwords=stopwords, repeat=True) wc.generate(str(text)) wc.to_file("claudia/wc.png") print("Word Cloud Saved Successfully") path="claudia/wc.png" display(Image.open(path)) #Creating wordcloud for all tweets create_wordcloud(tw_list["text"].values) #Creating wordcloud for positive sentiment create_wordcloud(tw_list_positive["text"].values) #Creating wordcloud for negative sentiment create_wordcloud(tw_list_negative["text"].values) #Creating wordcloud for neutral sentiment create_wordcloud(tw_list_neutral["text"].values) #Calculating tweet's lenght and word count tw_list['text_len'] = tw_list['text'].astype(str).apply(len) tw_list['text_word_count'] = tw_list['text'].apply(lambda x: len(str(x).split())) round(pd.DataFrame(tw_list.groupby("sentiment").text_len.mean()),2) round(pd.DataFrame(tw_list.groupby("sentiment").text_word_count.mean()),2) #Appliyng Countvectorizer countVectorizer = CountVectorizer() countVector = countVectorizer.fit_transform(tw_list['text']) print('{} Number of reviews has {} words'.format(countVector.shape[0], countVector.shape[1])) #print(countVectorizer.get_feature_names()) count_vect_df = pd.DataFrame(countVector.toarray(), columns=countVectorizer.get_feature_names()) count_vect_df.head() # Most Used Words count = pd.DataFrame(count_vect_df.sum()) countdf = count.sort_values(0,ascending=False).head(20)



67



countdf[1:11] #Function to ngram def get_top_n_gram(corpus,ngram_range,n=None): vec = CountVectorizer(ngram_range=ngram_range,stop_words = 'english').fit(corpus) bag_of_words = vec.transform(corpus) sum_words = bag_of_words.sum(axis=0) words_freq = [(word, sum_words[0, idx]) for word, idx in vec.vocabulary_.items()] words_freq =sorted(words_freq, key = lambda x: x[1], reverse=True) return words_freq[:n] #n2_bigram n2_bigrams = get_top_n_gram(tw_list['text'],(2,2),20) n2_bigrams #n3_trigram n3_trigrams = get_top_n_gram(tw_list['text'],(3,3),20) n3_trigrams from sklearn.model_selection import train_test_split import pandas as pd X_train, X_test, y_train, y_test = train_test_split(countVector, tw_list['sentiment'], test_size=0.2, random_state=21) print("X_train_shape : ",X_train.shape) print("X_test_shape : ",X_test.shape) print("y_train_shape : ",y_train.shape) print("y_test_shape : ",y_test.shape) from sklearn.naive_bayes import MultinomialNB # Naive Bayes Classifier model_naive = MultinomialNB().fit(X_train, y_train) predicted_naive = model_naive.predict(X_test) from sklearn.metrics import confusion_matrix import seaborn as sns plt.figure(dpi=600) mat = confusion_matrix(y_test, predicted_naive) sns.heatmap(mat.T, annot=True, fmt='d', cbar=False) plt.title('Confusion Matrix for Naive Bayes') plt.xlabel('true label') plt.ylabel('predicted label') plt.savefig("confusion_matrix.png") plt.show() from sklearn.metrics import accuracy_score score_naive = accuracy_score(predicted_naive, y_test) print("Accuracy with Naive-bayes: ",score_naive) from sklearn.metrics import classification_report print(classification_report(y_test, predicted_naive))