i
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa karena atas
berkat dan rahmat-Nya penulis dapat menyelesaikan skripsi dengan judul,
”Implementasi Metode Naïve Bayes pada Analisis Sentimen Aplikasi
PeduliLindungi”, secara baik guna memenuhi syarat untuk memperoleh gelar
Sarjana Program Studi Teknik Informatika pada Fakultas Ilmu Komputer
Universitas Methodist Indonesia.
Penyusunan skripsi ini penulis banyak menerima dukungan, bimbingan dan
nasihat dari berbagai pihak. Oleh karena itu, dengan segala kerendahan hati penulis
ingin mengucapkan terimakasih sebesar-besarnya kepada :
1. Bapak Drs. Humuntal Rumapea, M.Kom, selaku Rektor Universitas
Methodist Indonesia
2. Bapak Naikson F. Saragih, ST ., M.Kom, selaku Dekan Fakultas Ilmu
Komputer Universitas Methodist Indonesia
3. Bapak Indra M Sarkis, ST., M.Kom, selaku Wakil Dekan I Fakulas Ilmu
Komputer Universitas Methodist Indonesia
4. Ibu Yolanda Rumapea S.Kom ., M.Kom, Selaku Wakil Dekan II Fakultas
Ilmu Komputer Universitas Methodis Indonesia sekaligus pembimbing II,
yang telah banyak memberikan masukan serta meluangkan waktu untuk
membimbing penulis.
5. Bapak Surianto Sitepu, ST., MT ,selaku Wakil Dekan III Fakulas Ilmu
Komputer Universitas Methodist Indonesia
6. Bapak Indra Kelana Jaya S.T ., M.Kom, Selaku Ketua Program Studi Teknik
Informatika Fakultas Ilmu Komputer Universitas Methodist Indonesia
sekaligus Pembanding I, atas saran dan masukan yang diberikan untuk
perbaikan penulisan skripsi
7. Ibu Imelda Sinaga, S.Si .,M.Kom, Selaku Pembimbing I, yang telah banyak
memberikan masukan serta meluangkan waktu untuk membimbing penulis.
8. Bapak Harlen Manullang S.Kom ., M.kom, Selaku Pembanding II , atas saran
dan masukan yang diberikan untuk perbaikan penulisan skripsi.
ii
9. Kepada seluruh Bapak/Ibu dosen dan staff Fakultas Ilmu Komputer
Universitas Methodist Indonesia yang senantiasa memberikan ilmu dan
nasihatnya dari awal perkuliahan hingga penulis dapat menyelesaikan skripsi
ini.
10. Kepada orang tua saya Bapak Arman Ludin Siagian dan Mama Epi Sahriani
Sinaga, keempat adik-adik saya Lola Novita Siagian, Dhea Basania Marito
Siagian, Nadin Leanito Siagian, Joshua Napandri Siagian serta keluarga besar
saya. Saya ucapkan Terimakasih yang sebesar-besarnya atas segala dukungan
yang telah diberikan , baik dalam bentuk moril dan materil serta doa yang
senantiasa diucapkan yang sangat berpengaruh kepada penulis dalam
menyelesaikan skripsi ini. Semoga saya dapat mampu membahagiakan dan
membalas kebaikan kalian semua,
11. Kepada sahabat-sahabat seperjuangan Dian Putri Purba, Pratiwi Manullang,
Jeremia Aldo ,Nadia Utri dan Nadia Verona ,yang selalu memberikan
dukungan kepada penulis.
12. Kepada sahabat sahabat penulis yang tidak tersebut satu per satu yang sudah
fast respon kalau keadaan urgent.
13. Last but not least ,I thank myself for never quitting do all the hard work.
Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan Oleh
karena itu dengan segala kerendahan hati penulis mohon maaf atas segala
kekurangan dan penulis sangat mengharapkan adanya kritik dan saran yang bersifat
membangun guna menyempurnakan penelitian ini. Akhir kata, penulis ucapkan
terimakasih dan semoga skripsi ini dapat memberikan manfaat bagi semua pihak
yang membaca.
iii
DAFTAR ISI
KATA PENGANTAR...................................................................................... ii
DAFTAR ISI................................................................................................... iv
DAFTAR GAMBAR ..................................................................................... vii
DAFTAR TABEL......................................................................................... viii
BAB I PENDAHULUAN .................................................................................. 1
1.1 Latar Belakang Masalah....................................................................... 1
1.2 Rumusan Masalah................................................................................ 2
1.3 Batasan Masalah .................................................................................. 2
1.4 Tujuan dan Manfaat Penelitian ............................................................. 2
1.4.1 Tujuan Penelitian .......................................................................... 2
1.4.2 Manfaat Penelitian ........................................................................ 3
1.5 Sistematika Penelitian .......................................................................... 3
BAB II TINJAUAN PUSTAKA ........................................................................ 4
2.1 Metode Yang Digunakan ..................................................................... 4
2.1.1 Algoritma Naïve Bayes................................................................. 4
2.1.1.1 Karakteristik Naïve Bayes.......................................................... 6
2.1.2 Term Frequency (TF).................................................................... 6
2.1.3 Text Mining .................................................................................. 7
2.1.4 Preprocessing............................................................................... 8
2.1.5 Analisis Sentimen ......................................................................... 9
2.1.6 Confusion Matrix ........................................................................ 10
2.1.7 Scrapping ................................................................................... 12
2.1.8 Visualisasi.................................................................................. 12
2.2 Literature Review .............................................................................. 12
2.3 Tools Perancangan............................................................................. 15
2.3.1 Anaconda ................................................................................... 15
2.3.2 Python........................................................................................ 16
2.3.3 Jupyter Notebook........................................................................ 16
2.3.4 Flowchart ................................................................................... 17
BAB III METODE PENELITIAN ................................................................... 19
iv
3.1 Tinjauan Umum Objek Penelitian....................................................... 19
3.2 Analisis Sistem .................................................................................. 20
3.3 Framework Penelitian ........................................................................ 20
3.3.1 Pengumpulan Data...................................................................... 22
3.3.2 Teknik Pelabelan Sentimen ......................................................... 22
3.3.3 Tahapan Preprocessing ............................................................... 25
3.3.4 Tahapan Pembobotan dengan term Frequency (TF) ..................... 32
3.3.5 Tahapan Pemodelan Klasifikasi Naïve Bayes............................... 34
3.3.6 Tahapan Pengujian...................................................................... 35
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM ................................. 38
4.1 Pengujian Sistem ............................................................................... 38
4.2 Evaluasi Hasil.................................................................................... 39
4.2.1 Visualisasi.................................................................................. 42
BAB V KESIMPULAN DAN SARAN ............................................................ 44
5.1 Kesimpulan ....................................................................................... 44
5.2 Saran ................................................................................................. 44
DAFTAR PUSTAKA ......................................................................................... i
LISTING PROGRAM ....................................................................................... 1
v
DAFTAR GAMBAR
vii
DAFTAR TABEL
viii
BAB I
PENDAHULUAN
1
2
93,43% dan spesifitas 71,76% yang berarti metode ini sudah cukup baik dalam
mengklasifikasikan sentimen negatif maupun positif (Naraswati et al., 2021)
Berdasarkan uraian diatas, maka peneliti tertarik ingin melakukan penelitian
dengan judul “Implementasi Metode Naïve Bayes dalam Analisis Sentimen
Aplikasi PeduliLindungi”.
Agar penelitian yang dilakukan lebih terarah dan mencapai tujuan yang
ditentukan maka diperlukan pembatasan masalah. Batasan masalah tersebut adalah:
1. Data yang dianalisis berdasarkan ulasan pengguna Aplikasi PeduliLindungi
pada Google Play Store
2. Data yang digunakan sebanyak 745 data dan pengumpulan data dilakukan
dengan teknik Scrapping.
3. Data yang digunakan diambil dari tanggal 12 September 2022 sampai 14 -
September 2022
4. Ulasan yang akan diambil menggunakan Bahasa Indonesia
5. Metode analisis sentimen yang digunakan adalah metode Naïve Bayes.
4
5
Keterangan:
𝑉𝑗 =Kategori komentar j=1,2 Dimana dalam penulisan ini 𝑗1 kategori
komentar positif, 𝑗2 = kategori komentar negative
𝑃 (𝑥1 |𝑉𝑗 )= Probabilitas 𝑥 𝑖 pada kategori 𝑉𝑗
𝑃(𝑉𝑗 ) = Probabilitas dari (𝑉𝑗 )
Untuk 𝑃(𝑉𝑗 ) dan 𝑃(𝑥 𝑖 |𝑉𝑗 ) dihitung pada saat pelatihan dimana
persamaanya dapat diliihat pada persamaan 2.4 dan persamaan 2.5 sebagai
berikut:
|𝑑𝑜𝑐𝑠𝑗 | (2.4)
𝑃 (𝑉𝑗 ) =
|𝑐𝑜𝑛𝑡𝑜ℎ|
𝑛𝑘 + 1 (2.5)
𝑃(𝑥 𝑖|𝑉𝑗 ) =
𝑛 + |𝑘𝑜𝑠𝑎𝑘𝑎𝑡𝑎 |
Keterangan:
|𝑑𝑜𝑐𝑠𝑗 | =Jumlah dokumen setiap kategori j
|𝑐𝑜𝑛𝑡𝑜ℎ|= Jumlah dokumen dari semua kategori
𝑛𝑘= jumlah frekuensi kemunculan setiap kata
𝑛= Jumlah frekuensi kemunculan kata dari setiap kategori
6
Text mining merupakan proses menggali informasi dari data tekstual yang
tidak terstruktur dalam jumlah yang sangat besar dengan memanfaatkan metode
yang dapat mengolah data teks tersebut. Text mining dapat mengidentifikasikan
informasi yang relavan yang tersimpan dalam suatu dokumen teks dan memberikan
hasil yang bersifat kualitatif. Text mining juga mampu menggabungkan gagasan
statistik,linguistik dan pembelajaran mesin untuk menciptakan model belajar dari
data dan dapat melakukan prediksi hasil pada informasi baru be rdasarkan
pengalaman model pada proses training. Text mining biasanya menggunakan
algoritma komputasional untuk membaca dan menganalisis informasi tekstual,
sehingga teks dapat digali secara sistematis dan komprehensif dengan mudah dan
cepat (Nabila Nasution, 2021). Langkah langkah yang terjadi pada text mining
ditampilkan pada Gambar 2.1
8
2.1.4 Preprocessing
1. Cleanning
Data Mentah yang diperoleh cenderung tidak lengkap, mengandung banyak
noise, dan tidak konsisten. Cleaning merupakan proses yang akan membantu
pembersihan teks dari karakter, symbol maupun tanda baca yang tidak
diperlukan dalam analisis sentiment (Nabila Nasution, 2021)
2. Case Folding
Tidak semua dokumen teks konsiten dalam penggunaan huruf kapital. Oleh
karena itu, peran case folding dibutuhkan dalam mengkonversi keseluruhan
teks dalam dokumen menjadi suatu bentuk standar (biasanya huruf kecil atau
lowercase). Karakter yang diterima hanya berupa huruf ‘a’ sampai dengan ‘z’
yang akan diubah menjadi huruf kecil (Balya, 2019).
3. Tokenizing
Tokenizing merupakan proses memecah kalimat menjadi pototngan kata atau
yang disebut dengan token. Proses pemotongan string berdasarkan tiap kata
yang menyusunnya, seperti halnya spasi, proses tokenisasi ini mengandalkan
karakter spasi pada dokumen teks guna melakukan pemisahan. Hasil dari
proses ini hanyalah kumpulan kata saja.
4. Stopword Removal
Setiap kata yang tidak berhubungan dalam penelitian nilai sentiment akan
dihapus agar pada proses analisis sistem dapat lebih focus dalam
mengidentifikasi setiap kalimat. Stopword removal merupakan proses untuk
menghapus kata penghubung dan kata yang tidak memiliki makna dari setiap
kalimat sehingga proses training nantinya dapat berjalan lebih efektif (Nabila
Nasution, 2021).
5. Stemming
Stemming merupakan proses mengambil kata dasar dari kata yang
berimbuhan baik awalan,akhiran maupun awalan akhiran .
Confusion matrix atau biasa juga disebut erro matrix pada dasarnya
digunakan untuk memberikan informasi perbandingan dari hasil klasifikasi yang
dilakukan oleh model yang digunakan dengan hasil klasifikasi sebenarnya.
Confusion matrix biasanya digambarkan dalam bentuk tabel matriks yang
menjelaskan kinerja model klasifikasi pada serangkaian data uji yang nilai
sebenarnya telah diketahui. Pada Gambar 2.2 menunjukkan tabel confussion matrix
dengan 4 kombinasi nilai prediksi dan nilai actual yang berbeda (Mustika et al.,
2021)
Keterangan:
• True Positive (TP) : data aktual positif yang diprediksi benar
• True Negative (TN) : data aktual negative yang diprediksi benar
• False Positive (FP) : data aktual negative namun diprediksi sebagai
data positif
• False Negatif (FN) : data aktual positif namun diprediksi sebagai data
negative
Berdasarkan nilai nilai confusion matrix tersebut maka dapat dihitung
matriks-matriks (Id, 2021)
• Akurasi: Perbandingan jumlah data yang diprediksi benar dengan total
seluruh prediksi yang dilakukan dengan persamaan (2.8)
𝑇𝑃 + 𝑇𝑁 (2.8)
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 =
𝑇𝑜𝑡𝑎𝑙 𝐷𝑎𝑡𝑎
• Recall atau Sensitivity atau TPR (True Positive Rate): Perbandingan jumlah
data yang relavan diprediksi positif dengan benar terhadap seluruh dara
yang benar positif seperti pada persamaan (2.9)
𝑇𝑃 (2.9)
𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑇𝑃 + 𝐹𝑁
• f1-score adalah rata rata harmonic dari precision dan recall. Artinya rata-rata
dengan bobot pada precision dan recall . f1-score lebih banyak dipakai
untuk membandingkan antar model daripada asesmen performansi dalam
suatu model (Widodo, 2022). Persamaan f1-score dapat dilihat pada
persamaan 2.11
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝑥 𝑟𝑒𝑐𝑎𝑙𝑙 (2.11)
𝑓1 − 𝑠𝑐𝑜𝑟𝑒 = 2 [ ]
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑟𝑒𝑐𝑎𝑙
12
2.1.7 Scrapping
2.1.8 Visualisasi
Literatur review berisi uraian btentang teori, temuan dan bahan penelitian lain
yang diperoleh dari bahan acuan untuk dijadikan landasan kegiatan penelitian.
Uraian dalam literature Review diarahkan untuk Menyusun kerangka pemikiran
yang jelas tentang pemecahan masalah yang sudah diuraikan pada rumusan
masalah.
Berikut ini beberapa penelitian penelitian sebelumnya yang berkaitan dengan
Implementasi Metdoe Naïve Bayes pada Aplikasi PeduliLindungi yang akan
dijadikan sebagai referensi dalam penyusunan skripsi. Literature review dapat
dilihat pada Tabel :
No Judul penelitian Nama Peneliti Hasil
1. Analisis Sentimen (Rasyadi, 2017) Prediksi sentiment masyarakat
Pada Twitter kepada pasangan Calon Gubernur
13
2.3.1 Anaconda
2.3.2 Python
Untuk menulis kode program python dibutuhan suatu code editor yang sering
disebut sebagai Integrated Development Environment atau IDE. Pada saat ini, salah
satu IDE yang cukup popular terutama di kalangan data scientist untuk menulis
kode python adalah jupyter notebook.
17
Ada beberapa cara dalam melakukan instalasi Jupyter Notebook. Salah satu
cara yang paling mudah adalah melalui instalasi Anaconda, yaitu suatu platform
yang mendistribusikan bahasa Python khusunya untuk bidang scientific computing
(data mining, machine learning, predictive analysis dan sebagainya) (Aribowo,
2021).
2.3.4 Flowchart
Connector Pengubung
19
20
putugas kesehatan. Berikut logo dari aplikasi PeduliLindungi dapat dilih at pada
Gambar 3.1:
Analisis sistem adalah suatu teknik atau metode pemecahan masalah dengan
cara menguraikan sistem ke dalam komponen-komponen pembentuknya untuk
mengetahui bagaimana komponen-komponen tersebut bekerja dan saling
berinteraksi satu sama lain untuk mencapai tujuan sistem.
Analisis sentiment pada ulasan PeduliLindungi ini diharapkan dapat
membantu dalam mengklasifikasi sentiment yang terdapat pada komentar Aplikasi
PeduliLindungi serta mendapatkan informasi berdasarkan klasifikasi sentiment
tersebut. Dari ulasan tersebut akan dilakukan perhitungan dengan menggunakan
metode Naïve Bayes untuk mengklasifikasikan sentiment.
Penelitian akan dilakukan dengan beberapa tahap yang dimulai dengan pen-
gumpulan data dan analisis algoritma yang digunakan dengan alur yang
divisualisasikan dengan flowchart pada Gambar 3.2
21
Mulai
Scrapping
Data
Label Data
Preprocessing
Pembagian Data
Data Uji
Split
Daya Latih
Pembobotan
dengan Term
Frequency (TF)
Model Klasifikasi
dengan Naïve Bayes
Evaluasi
Performance
Selesai
menjadi data training dan data testing dengan perbandingan 80:20. Kemudian data
training dikonversi kedalam bentuk angka dengan tahapan pembobotan kata
menggunakan metode Term Frequency (TF) agar data dapat diklasifikasi.
Kemudian data training melakukan proses pembentukan model Naïve Bayes, yang
mana artinya adalah menentukan nilai probabilitas setiap kata pada setiap kelas
aktual yang akan dijadikan sebagai acuan untuk data testing. Setelah pemodelan
menggunakan naïve bayes dilakukan, data testing diuji berdasarkan nilai yang
dihasilkan pada model data training untuk menentukan hasil prediksi. Proses
terakhir adalah data testing akan diuji tingkat performanya dengan menggunakan
confusion matrix.
Pada bagian ini bertujuan sebagai acuan dalam proses training dan testing.
Proses pelabelan ini merupakan salah satu proses untuk mendapatkan hasil
representasi corpus yang diharapkan. Pelabelan sentiment dibagi menjadi 2 kelas
yaitu sentiment negatif dan sentiment positif. Dalam mengklasifikasikan sentiment
terdapat kategori untuk penentuan kelasnya yaitu Ketika pada ulasan terdapat kata
yang mengandung makna pujian, ucapan terimakasih dan kepuasan maka ulasan
tersebut termasuk kedalam kelas positif. Namun, jika terdapat kata yang
mengandung makna makian, ketidakpuasan dan keluhan merupakan sentiment
Negatif. Proses pelabelan ditentukan dengan cara penulis membaca data ulasan dan
berdasarkan kategori diatas (Ying & Park, 2018). Berikut adalah contoh kata positif
dan kata negatif yang dapat dilihat pada Tabel 3.1
23
Buffering
Buruk
Ngaco
Kurang Profesional
Najis
Panik
Gagal
Murahan
Butut
Busuk
Monopoli
Merepotkan
Mengecewakan
Kesel
Percuma
Capek
Sumber: (Devid, 24 Maret 2017)
Berikut contoh beberapa data yang digunakan yang dapat dilihat pada Tabel 3.2
Tabel 3.2 Data Latih
No Ulasan Label
1. aplikasi sering trouble dan tambahan, petugas banyak Negatif
yang salah input data sehingga sertifikat tidak
muncul,aplikasinya jadi ga guna. Ngurus sertifikat pun
tidak ada respon, responnya lambat, dan ribet. Kirim
foto berkali kali di chatbot tidak bisa. Nyusahin doang,
bikin ribet
2. Tolong dong perbaiki apknya. Mau rubah data tgl lahir Negatif
mau digeser lama benar, kalau yang kelahiran nya
umpama sampai tahun 50/60 gimana, coba dibuat
mode ketik juga. Terus kalau sudah selesai, klaim
sertifikat tidak bisa. Haduhhhh kesel bener. Tolong
diperhatikan
3. Tolong dooong aplikasinya diperbaiki, kelihatannya Negatif
masih banyak kekurangan tuh. 1. Yang tadinya bisa
liat sertifikat ,skrg susah bertele2. 2. Mau milih tahun
25
Tahapan ini bertujuan untuk menghilangkan karakter atau kata yang tidak
relavan yang dapan mengurangi kualitas model. Adapun tahapan pre-processing
yang digunakan dalam penelitian ini dapat dilihat pada Gambar 3.3:
Data
Latih
Mulai Cleanning Case Folding Tokenizing
Data uji
Data Stopword
Selesai Stemming
Bersih Removal
Tolong dong perbaiki apknya. Mau rubah Tolong dong perbaiki apknya Mau
data tgl lahir mau digeser lama benar, rubah data tgl lahir mau digeser
kalau yang kelahiran nya umpama lama benar kalau yang kelahiran
sampai tahun 50/60 gimana, coba dibuat nya umpama sampai tahun gimana
mode ketik juga. Terus kalau sudah coba dibuat mode ketik juga Terus
selesai, klaim sertifikat tidak bisa. kalau sudah selesai klaim sertifikat
Haduhhhh kesel bener. Tolong tidak bisa Haduhhhh kesel bener
diperhatikan Tolong diperhatikan
Bagus banget, pas rubah data di chat Bagus banget pas rubah data di
WhatsApp langsung dirubah. Bener chat WhatsApp langsung dirubah
bener perfect responnya juga cepat, Bener bener perfect responnya
meskipun kalo kita kelamaan masukkan juga cepat meskipun kalo kita
nik, tanggal vaksin, lokasi, dll agak di kelamaan masukkan nik tanggal
spam chat sama petugasnya tapi gapapa vaksin lokasi dll agak di spam chat
wort ith lah peduli lindungi sama petugasnya tapi gapapa wort
ith lah peduli lindungi
tempat vaksin yang kita butuh kan dan jg mengecek tempat vaksin yang kita
langsung mendapat kam sertifikatnya. butuh kan dan jg langsung
Tapi sayangnya di akun aplikasi ini nik mendapat kam sertifikatnya Tapi
saya tidak sesuai dg nik yg sebenarnya. sayangnya di akun aplikasi ini nik
Mungkin agar lebih di tingkatkan lg yah, saya tidak sesuai dg nik yg
ketelitiannya. sebenarnya Mungkin agar lebih di
tingkatkan lg yah ketelitiannya
2. Case Folding menyetarakan huruf menjadi bentuk standar yaitu huruf kecil
yang dilihat pada Tabel 3.4:
Tabel 3.4 Hasil Casefolding
Tolong dong perbaiki apknya Mau tolong dong perbaiki apknya mau
rubah data tgl lahir mau digeser lama rubah data tgl lahir mau digeser
benar kalau yang kelahiran nya umpama lama benar kalau yang kelahiran
sampai tahun gimana coba dibuat mode nya umpama sampai tahun gimana
ketik juga Terus kalau sudah selesai coba dibuat mode ketik juga terus
klaim sertifikat tidak bisa Haduhhhh kalau sudah selesai klaim sertifikat
kesel bener Tolong diperhatikan tidak bisa haduhhhh kesel bener
tolong diperhatikan
Bagus banget pas rubah data di chat bagus banget pas rubah data di chat
WhatsApp langsung dirubah Bener whatsapp langsung dirubah bener
bener perfect responnya juga cepat bener perfect responnya juga cepat
meskipun kalo kita kelamaan masukkan meskipun kalo kita kelamaan
nik tanggal vaksin lokasi dll agak di masukkan nik tanggal vaksin lokasi
spam chat sama petugasnya tapi gapapa dll agak di spam chat sama
wort ith lah peduli lindungi petugasnya tapi gapapa wort ith lah
peduli lindungi
benar kalau yang kelahiran nya ‘tgl’ ‘lahir’ ‘mau’ ‘digeser’ ‘lama’
umpama sampai tahun gimana coba ‘benar’ ‘kalau’ ‘yang’ ‘kelahiran’
dibuat mode ketik juga terus kalau ‘nya’ ‘umpama’ ‘sampai’ ‘tahun’
sudah selesai klaim sertifikat tidak ‘gimana’ ‘coba’ ‘dibuat’ ‘mode’
bisa haduhhhh kesel bener tolong ‘ketik’ ‘juga’ ‘terus’ ‘kalau’ ‘sudah’
diperhatikan ‘selesai’ ‘klaim’ ‘sertifikat’ ‘tidak’
‘bisa’ ‘haduhhhh’ ‘kesal’ ‘bener’
‘tolong’ ‘diperhatikan’]
bagus banget pas rubah data di chat [‘bagus’ ‘banget’ ‘pas’ ‘rubah’ ‘data’
whatsapp langsung dirubah bener ‘di’ ‘chat’ ‘whatsapp’ ‘langsung’
bener perfect responnya juga cepat ‘dirubah’ ‘bener’ ‘bener’ ‘perfect’
meskipun kalo kita kelamaan ‘responnya’ ‘juga’ ‘cepat’
masukkan nik tanggal vaksin lokasi ‘meskipun’ ‘kalo’ ‘kita’ ‘kelamaan’
dll agak di spam chat sama ‘masukkan’ ‘nik’ ‘tanggal’ ‘vaksin’
petugasnya tapi gapapa wort ith lah ‘lokasi’ ‘dll’ ‘agak’ ‘di’ ‘spam’
peduli lindungi ‘chat’ ‘sama’ ‘petugasnya’ ‘tapi’
‘gapapa’ ‘wort’ ‘ith’ ‘lah’ ‘peduli’
‘lindungi’]
No Term D1 D2 D3 D4 D5
1. aplikasi 2 0 1 0 2
2. tambahan 1 0 0 0 0
3. petugas 1 0 0 1 0
4. data 1 1 0 1 0
5. sertifikat 2 1 1 0 1
6. guna 1 0 0 0 0
7. respon 2 0 0 1 0
8. kirim 1 0 0 0 0
9. foto 1 0 0 0 0
10. bisa 1 0 0 0 0
11. tolong 0 2 2 0 0
12. baik 0 1 0 0 0
13. geser 0 1 0 0 0
14. buat 0 1 0 0 0
15. mode 0 1 0 0 0
16. ketik 0 1 0 0 0
33
17. klaim 0 1 0 0 0
18. perhatikan 0 1 0 0 0
19. kelihatan 0 0 1 0 0
20. hitung 0 0 1 0 0
21. buang 0 0 1 0 0
22. butuh 0 0 1 0 0
23. praktis 0 0 1 0 0
24. modern 0 0 1 0 0
25. canggih 0 0 1 0 0
26. bagus 0 0 0 1 0
27. cepat 0 0 0 1 0
28. masuk 0 0 0 1 0
29. vaksin 0 0 0 1 1
30. lokasi 0 0 0 1 0
31. peduli 0 0 0 1 0
32. lindungi 0 0 0 1 0
33. bantu 0 0 0 0 1
34. mudah 0 0 0 0 1
35. cek 0 0 0 0 1
36. dapat 0 0 0 0 1
37. akun 0 0 0 0 1
38. kelihatan 0 0 0 0 1
34
3 2
Maka: P(Negatif) = = 0.6 dan P(positif) = = 0.4
5 5
Probabilitas setiap term pada setiap kelas dapat dihitung menggunakan
persamaan 3.2
𝑛𝑘 + 1 (3.2)
𝑃(𝑥 𝑖 |𝑉𝑗 ) =
𝑛 + |𝑘𝑜𝑠𝑎𝑘𝑎𝑡𝑎 |
D1 D2 D3 D4 D5 P P
No Term
(N) (N) (N) (P) (P) (w|Neg) (w|Pos)
1. aplikasi 2 0 1 0 2 0,06 0,05
2. tambahan 1 0 0 0 0 0,03 0,02
3. petugas 1 0 0 1 0 0,03 0,03
4. data 1 1 0 1 0 0,04 0,03
35
Proses analisis sentiment ini terbagi menjadi 2 proses yaitu proses training
dan testing. Kedua proses ini menggunakan Bahasa Pemograman python dengan
memanfaatkan library sklearn yaitu MultinomialNaiveBayes. Setelah data di
preprocessing, data dibagi menjadi 2 bagian yaitu data training dan data testing
dengan perbandingan 80:20. Pada proses data training dilakukan pembobotan kata
dan kemudian pembentukan model Naïve Bayes dengan mencari nilai probabilitas
setiap kata yang akan dijadikan sebagai acuan untuk data uji. Proses training
menggunakan data yang terdiri dari 361 sentimen Negatif dan 235 sentimen Positif.
Kemudian dilakukan proses testing menggunakan data sebanyak 149 data yang
sudah diberi label actual yaitu 107 sentimen Positif dan 42 sentimen Negatif. Data
testing diuji menggunakan klasifikasi Naïve Bayes.
38
39
Confusion Matrix juga dapat mengukur kinerja model yang dibuat dengan
menghitung tingkat akurasi ,precision, recall dan f1-score berdasarkan hasil
confusin matrix yang diperoleh:
1. Accuracy perbandingan jumlah data yang diprediksi benar dengan total
seluruh data. Nilai dari akurasi dapat dihitung menggunakan rumus
𝑇𝑃 + 𝑇𝑁
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =
𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁
Diperoleh hasil:
36 + 93
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =
36 + 93 + 18 + 1
129
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑥100%
148
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 0,8724𝑥100%
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 87,16%
36
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑥100%
54
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 0,6667𝑥100%
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 66,67%
4. F1-score perbandingan rata-rata precision dan recall yang dibobotkan. Dapat
dihitung dengan persamaan
𝑟𝑒𝑐𝑎𝑙𝑙 𝑥 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛
𝑓1 − 𝑠𝑐𝑜𝑟𝑒 = 2𝑥 [ ] 𝑥100%
𝑟𝑒𝑐𝑎𝑙𝑙 + 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛
Diperoleh hasil:
66,67𝑥97 ,29
𝐹1 − 𝑠𝑐𝑜𝑟𝑒 = 2𝑥 [ ] 𝑥100%
66,67 + 97,29
6486,32
𝐹1 − 𝑠𝑐𝑜𝑟𝑒 = 2𝑥 [ ] 𝑥100%
163,96
𝐹1 − 𝑠𝑐𝑜𝑟𝑒 = 2𝑥 39,56𝑥100%
𝐹1 − 𝑠𝑐𝑜𝑟𝑒 = 79,12%
Pada penelitian ini hasil Akurasi, precision dan recall dihitung menggunakan
Bahasa pemograman python dengan mengimport classification_report yang ada
pada library sklearn.metrics. Untuk hasil pada sistem dapat dilihat pada Gambar 4.2
Dengan demikian, Metode Naïve Bayes merupakan metode yang baik dalam
menganalisis sentiment karena mempunyai tingkat akurasi sebesar 87,16% .
precision 66,66%, recall 97,29% dan f1-score 79.12%.
42
4.2.1 Visualisasi
5.1 Kesimpulan
5.2 Saran
44
DAFTAR PUSTAKA
Aribowo, B. (2021). Belajar Python Dari Nol Via Jupyter Notebook (1st ed.).
Diandra Kratif.
Baktikominfo.id. (2019). BAHASA PEMROGRAMAN PYTHON : PENGERTIAN,
SEJARAH, KELEBIHAN DAN KEKURANGANNYA. Baktikominfo.Id.
https://www.baktikominfo.id/id/informasi/pengetahuan/bahasa_pemrograma
n_python_pengertian_sejarah_kelebihan_dan_kekurangannya -954
Balya. (2019). Analisis Sentimen Pengguna Youtube Di Indonesia Pada Review
Smartphone Menggunakan Naïve Bayes. Skripsi Universitas Sumatera Utara,
4–16.
Devid. (2017). ID-OpinionWords.
Harun, A., & Ananda, D. P. (2021). Analysis of Public Opinion Sentiment About
Covid-19 Vaccination in Indonesia Using Naïve Bayes and Decission Tree
Analisa Sentimen Opini Publik Tentang Vaksinasi Covid-19 di Indonesia
Menggunakan Naïve Bayes dan Decission Tree. 1(April), 58–63.
Herdhianto, A. (2020). Sentiment Analysis Menggunakan Naïve Bayes Classifier
(NBC) Pada Tweet Tentang Zakat.
http://repository.uinjkt.ac.id/dspace/handle/123456789/53661
Id, I. D. (2021). MACHINE LEARNING. UR PRESS.
Mustika, Ardilla, Y., Manuhutu, A., Ahmad, N., Hasbi, I., Guntoro, Mnuhutu, M.
A., Hozairi, M. R., Wardhani, A. K., Alim, S., Romli, I., Religia, Y., Octafian,
Dt., Utan, S. U., & Iin, E. (2021). Data Mining dan Aplikasinya (N. Rismawati
(ed.)). Widina Bhakti Persada Bandung.
Nabila Nasution. (2021). UNIVERSITAS SUMATERA UTARA Poliklinik
UNIVERSITAS SUMATERA UTARA. Jurnal Pembangunan Wilayah &
Kota, 1(3), 82–91.
Naraswati, N. P. G., Nooraeni, R., Rosmilda, D. C., Desinta, D., Khairi, F., &
Damaiyanti, R. (2021). Analisis Sentimen Publik dari Twitter Tentang
Kebijakan Penanganan Covid-19 di Indonesia dengan Naive Bayes
Classification. Sistemasi, 10(1), 222.
https://doi.org/10.32520/stmsi.v10i1.1179
Nugraha, F. A., Harani, N. H., & Habibi, R. (2020). Analisis Sentimen Terhadap
Pembatasan Sosial Menggunakan Deep Learning (R. M. Awangga (ed.); 1st
ed.).
Nugroho, D. G., Chrisnanto, Y. H., & Wahana, A. (2015). Analisis Sentimen Pada
Jasa Ojek Online ... (Nugroho dkk.). 156–161.
Rasyadi, M. H. (2017). Analisis Sentimen Pada Twitter Menggunakan Metode
Naïve Bayes (Studi Kasus Pemilihan Gubernur Dki Jakarta 2017). 1–17.
Ratnawati, F. (2018). Implementasi Algoritma Naive Bayes Terhadap Analisis
Sentimen Opini Film Pada Twitter.
Sarosa, M., Muna, N., Kusumawardani, M., Suyono, A., & Mulyani, Y. (2022).
Pemrograman Python Dalam Contoh dan Penerapan. Media Nusa Creative
(MNC Publishing).
Sevsa, B. A., & R Wahyudi, M. D. (2019). Analisis Sentimen pada Indeks Kinerja
Dosen Fakultas SAINTEK UIN Sunan Kalijaga Menggunakan Naive Bayes
Classifier. Jurnal Buana Informatika, 10(2), 112.
ii
https://doi.org/10.24002/jbi.v10i2.2250
Suyanto, Y. (2018). Pemograman Terstruktur Dengan Delphi. Gadjha Mada
University Press.
Widodo, R. B. (2022). MACHINE LEARNING METODE K-NEAREST
NEIGHBORS KLASIFIKASI ANGKA BAHASA ISYARAT. Media Nusa
Creative (MNC Publishing).
Windy, A. (n.d.). Kupas Tuntas Aplikasi PeduliLindungi. Kominfo.Go.Id.
https://aptika.kominfo.go.id/2021/10/kupas-tuntas-aplikasi-pedulilindungi/
Ying, Y., & Park, D. (2018). IMPLEMENTASI NAIVE BAYES CLASSIFIER DAN
ASOSIASI UNTUK ANALISIS SENTIMEN DATA ULASAN APLIKASI E-
COMMERCE SHOPEE PADA SITUS GOOGLE PLAY. 6–7.
LISTING PROGRAM
1
3
plt.ylabel("Aktual")
#Pemodelan Naïve Bayes plt.show()
from sklearn.naive_bayes import from sklearn.metrics import
MultinomialNB accuracy_score,precision_score,recal
#pembentukan model Naive Bayes l_score,f1_score
clf=MultinomialNB() from sklearn.metrics import
clf.fit(vec_latih,y_train) classification_report
vec_uji=vec.transform(x_test) from sklearn.metrics import
vec_uji confusion_matrix
predicted=clf.predict(vec_uji) print("Nilai Accuracy adalah :" ,
data_uji.insert(2, accuracy_score(predicted,y_test))
column='label_bayes', print("Nilai Precision adalah :"
value=predicted) ,precision_score(predicted,y_test,ave
data_uji.head(148) rage='binary',pos_label='Positif'))
data_uji = print("Nilai Recall adalah :"
data_uji[['hasil_stemming','label','lab ,recall_score(predicted,y_test,averag
el_bayes']] e='binary',pos_label='Positif'))
neg_latih=data_latih[(data_latih['labe print("Nilai f1_score adalah :"
l']=='Negatif')] ,f1_score(predicted,y_test,average='b
print('Banyak Data Latih yang inary',pos_label='Positif'))
Negatif adalah',len(neg_latih)) print('======================
#menghitung banyak data yang ==========================
berlabel positif ===============\n')
pos_latih=data_latih[(data_latih['labe print(classification_report(predicted,
l']=='Positif')] y_test,zero_division=0))
print('Banyak Data Latih yang Positif
adalah',len(pos_latih)) #visualisasi
neg_label=data_uji[(data_uji['label_b #presentasi label positif dan negatif
ayes']=='Negatif')] setelah diuji
print('Banyak Data Uji yang Negatif sesudah=pd.value_counts(predicted)
adalah',len(neg_label)) ax_sesudah=sesudah.plot.bar()
#menghitung banyak data yang n=len(predicted)
berlabel positif for p in ax_sesudah.patches:
pos_label=data_uji[(data_uji['label_b
ayes']=='Positif')] ax_sesudah.annotate(str(round(p.get_
print('Banyak Data Uji yang Positif height()/n*100,2))+'%', (p.get_x()
adalah',len(pos_label)) *1.005,p.get_height()*1.005))
print('Diagram Prediksi Dengan
#confusion matrix Naive Bayes')
import seaborn as sns from wordcloud import
import matplotlib.pyplot as plt WordCloud,STOPWORDS
from sklearn.metrics import import matplotlib.pyplot as plt
confusion_matrix def plot_cloud(wordcloud):
f, ax = plt.subplots(figsize=(8,5)) plt.figure(figsize=(12,8))
sns.heatmap(confusion_matrix plt.imshow(wordcloud)
(y_test,predicted), annot=True, plt.axis('off');
fmt=".0f", ax=ax)
plt.xlabel("Prediksi")
5
DATA PRIBADI
Nama : Meilany Gresia Siagian
Jenis Kelamin : Perempuan
Tempat, Tanggal Lahir : Padangsidimpuan, 15Mei 2000
Kewarganegaraan : Indonesia
Agama : Kristen Protestan
Nama Ayah : Arman Ludin Siagian
Nama Ibu : Epi Sahriani Sinaga
Status : Belum Menikah
Alamat : Jl. Teuku Umar Gg Martabe. Padangsidimpuan
No. Hp :081362525154
Email : meilanygresia2000@gmail.com
PENDIDIKAN FORMAL