165
ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST NEIGHBOR PADA SENTIMEN ANALISIS DENGAN PENDEKATAN LEXICON DI MEDIA TWITTER Skripsi Oleh : Azhar 11140910000108 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2019 M / 1440 H

ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

ANALISIS KINERJA ALGORITMA

NAIVE BAYES DAN K-NEAREST NEIGHBOR

PADA SENTIMEN ANALISIS

DENGAN PENDEKATAN LEXICON

DI MEDIA TWITTER

Skripsi

Oleh :

Azhar

11140910000108

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

2019 M / 1440 H

Page 2: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

ANALISIS KINERJA ALGORITMA

NAIVE BAYES DAN K-NEAREST NEIGHBOR

PADA SENTIMEN ANALISIS

DENGAN PENDEKATAN LEXICON

DI MEDIA TWITTER

Skripsi

Diajukan sebagai salah satu syarat untuk memperoleh gelar

Sarjana Strata -1

Oleh :

Azhar

11140910000108

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

2019 M / 1440 H

Page 3: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

iii

UIN Syarif Hidayatullah Jakarta

PERNYATAAN ORISINALITAS

Dengan ini saya menyatakan bahwa :

1. Skripsi ini merupakan hasil karya asli saya yang diajukan untuk

memenuhi salah satu persyaratan memperoleh gelar strata 1 di UIN

Syarif Hidayatullah Jakarta.

2. Semua sumber yang saya gunakan dalam penulisan ini telah saya

cantumkan sesuai dengan ketentuan yang berlaku di UIN Syarif

Hidayatullah Jakarta.

3. Jika di kemudian hari terbukti bahwa karya ini bukan hasil karya asli

saya atau merupakan hasil jiplakan dari karya orang lain, maka saya

bersedia menerima sanksi yang berlaku di UIN Syarif Hidayatullah

Jakarta.

Jakarta, 04 Juli 2019

Azhar

11140910000108

Page 4: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

iv

UIN Syarif Hidayatullah Jakarta

HALAMAN PERSETUJUAN PEMBIMBING

ANALISIS KINERJA ALGORITMA

NAIVE BAYES DAN K-NEAREST NEIGHBOR

PADA SENTIMEN ANALISIS

DENGAN PENDEKATAN LEXICON

DI MEDIA TWITTER

Skripsi

Diajukan sebagai salah satu syarat untuk memperoleh gelar

Sarjana Komputer (S.Kom)

Oleh:

AZHAR

11140910000108

Menyetujui,

Pembimbing I Pembimbing II

Siti Ummi Masruroh, M.Sc Luh Kesuma Wardhani, MT

NIP. 19820823 201101 2 013 NIP. 19780424 200801 2 022

Mengetahui,

Ketua Program Studi Teknik Informatika

Dr. Imam Marzuki Shofi, M.T.

NIP. 19720205 200801 1 010

Page 5: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

v

UIN Syarif Hidayatullah Jakarta

LEMBAR PENGESAHAN

Skripsi yang berjudul “Analisis Kinerja Algoritma Naive Bayes Dan K-

Nearest Neighbor Pada Sentimen Analisis Dengan Pendekatan Lexicon

Di Media Twitter” telah diuji dan dinyatakan lulus dalam sidang

munaqosyah Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif

Hidayatullah Jakarta pada 4 Juli 2019. Skripsi ini telah diterima sebagai salah

satu syarat untuk memperoleh gelar Sarjana Strata Satu (S1) Program Studi

Teknik Informatika.

Jakarta, 04 Juli 2019

Tim Penguji,

Penguji I Penguji II

Nurhayati, Ph.D. Anif Hanifa Setyaningrum, M.Si

NIP. 19690316 199903 2 002 NIDN. 0410116402

Tim Pembimbing,

Pembimbing I Pembimbing II

Siti Ummi Masruroh, M.Sc Luh Kesuma Wardhani, MT NIP. 19820823 201101 2 013 NIP. 19780424 200801 2 022

Mengetahui,

Dekan Ketua Program

Fakultas Sains dan Teknologi Studi Teknik Informatika

Prof. Dr. Lily Surraya Eka Putri, M.Env.Stud Dr. Imam Marzuki Shofi, M.T.

NIP. 19690404 200501 2 005 NIP. 19720205 200801 1 010

Page 6: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

vi

UIN Syarif Hidayatullah Jakarta

PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI

Sebagai civitas akademik UIN Syarif Hidayatullah Jakarta, saya yang

bertanda tangan di bawah ini:

Nama : Azhar

NIM : 11140910000108

Program Studi : Teknik Informatika

Fakultas : Sains dan Teknologi

Jenis Karya : Skripsi

Demi pengembangan ilmu pengetahuan, menyetujui untuk

memberikan kepada Universitas Islam Negeri Syarif Hidayatullah Jakarta

Hak Bebas Royalti Non ekslusif (Non-exclusive Royalty Free Right) atas

karya ilmiah saya yang berjudul:

ANALISIS KINERJA ALGORITMA

NAIVE BAYES DAN K-NEAREST NEIGHBOR

PADA SENTIMEN ANALISIS DENGAN PENDEKATAN LEXICON

DI MEDIA TWITTER

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas

Royalti Non Ekslusif ini Universitas Islam Negeri Syarif Hidayatullah

Jakarta berhak menyimpan, mengalihmedia/formatkan, mengelola dalam

bentuk pangkalan data (database) merawat, dan mempublikasikan tugas

akhir saya selama tetap mencantumkan nama saya sebagai penulis/pencipta

dan sebagai pemilik Hak Cipta.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di: Jakarta

Pada Tanggal: 4 Juli 2019

Yang menyatakan

(Azhar)

Page 7: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

vii

UIN Syarif Hidayatullah Jakarta

KATA PENGANTAR

Puji syukur penulis panjatkan kepada Allah SWT, karena atas nikmat

dan rahmat-Nya sehingga penulis dapat menyelesaikan skripsi ini. Penulisan

skripsi ini dilakukan dalam rangka memenuhi salah satu syarat untuk

mencapai gelar Sarjana Komputer Program Studi Teknik Informatika

Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah

Jakarta. Proses penyelesaian skripsi ini tidak lepas dari berbagai bantuan,

dukungan, saran, dan kritik yang telah penulis dapatkan, oleh karena itu

dalam kesempatan ini penulis ingin mengucapkan terima kasih kepada:

1. Kedua Orang tua dan keluarga penulis yang selalu mendo’akan, dan

mendukung penulis dalam mengerjakan skripsi.

2. Ibu Prof. Dr. Lily Surraya Eka Putri, M.Env.Stud, selaku Dekan Fakultas

Sains dan Teknologi.

3. Bapak Imam Marzuki Shofi, M.T., selaku ketua Program Studi Teknik

Informatika, serta Bapak Andrew Fiade M.Kom., selaku sekretaris

Program Studi Teknik Informatika.

4. Ibu Siti Ummi Masruroh, M.Sc., selaku Dosen Pembimbing I dan Ibu

Luh Kesuma Wardhani, MT, selaku Dosen Pembimbing II yang telah

memberikan bimbingan, motivasi, dan arahan kepada penulis sehingga

skripsi ini bisa selesai dengan baik.

5. Seluruh Dosen, Staf Karyawan Fakultas Sains dan Teknologi, khususnya

Program Studi Teknik Informatika yang telah memberikan bantuan dan

kerjasama dari awal perkuliahan.

6. Kepada teman seperjuangan Teknik Informatika angkatan 2014 dan

khususnya teman - teman TI - A dan TI - B, yang sudah membantu

penulis dalam menyelesaikan skripsi ini, terima kasih atas dukungannya.

Semoga kita bisa lebih baik lagi dan sukses di masa yang akan datang.

7. Sahabat baik, teman berbagi cerita, suka duka, canda tawa bersama

semasa kuliah : Muhammad Taufik, Taufikur, Deni Ramadhani, Ottoh

Hidayatullah, Desta, Wisnu, Hanif.

8. Seluruh pihak yang secara langsung maupun tidak langsung membantu

penulis dalam menyelesaikan skripsi ini.

Page 8: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

viii

UIN Syarif Hidayatullah Jakarta

Akhir kata, penulis menyadari bahwa dalam penyajian skripsi ini masih

jauh dari sempurna. Apabila ada kebenaran dari penulisan ini maka kebenaran

tersebut datangnya dari Allah, tetapi apabila ada kesalahan dalam penulisan

ini maka kesalahan ini berasal dari penulis. Semoga skripsi ini membawa

manfaat bagi pengembangan ilmu. Penulis berharap Allah SWT berkenan

membalas segala kebaikan semua pihak yang telah membantu dan meridhai

segala usaha kita.

Jakarta, 27 Juni 2019

Azhar

11140910000108

Page 9: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

ix

UIN Syarif Hidayatullah Jakarta

Nama : Azhar

Study Program : Informatics Engineering

Title : Analisis Kinerja Algoritma Naive Bayes Dan

K-Nearest Neighbor Pada Analisis Sentimen

Dengan Pendekatan Lexicon Di Media Twitter

ABSTRAK

Analisis sentimen atau opinion mining merupakan jenis natural

language yaitu pengolahan kata untuk mengetahui opini, sikap atau mood

masyarakat tentang suatu hal tertentu. Pengolahan kata dalam penelitian ini

berkaitan dengan proses klasifikasi dokumen tekstual ke dalam tiga kelas,

yaitu positif, negatif dan netral. Data diperoleh dari media sosial twitter

berkaitan dengan komentar netizen terhadap calon pilpres joko widodo

dengan keyword pilpres 2019 dan jokowi sebanyak 1000 komentar

menggunakan teknik crawling data. Pada penelitian ini, penulis

membandingkan kinerja algoritma naive bayes dan K-NN dengan data latih

pendekatan lexicon dalam klasifikasi data uji. Penelitian ini bertujuan untuk

mengetahui tingkat akurasi, presisi, recall algoritma naive bayes dan K-NN

dengan pendekatan lexicon. Pengujian juga dilakukan terhadap penentuan

nilai k pada algoritma K-NN untuk mencari parameter terbaik. Kesimpulan

dari pengujian kombinasi algoritma K-NN dan pendekatan lexicon dapat

meningkatkan akurasi pada analisis sentimen. Tingkat akurasi terbaik

algoritma K-NN dan pendekatan lexicon yaitu sebesar 77% dengan nilai k

adalah k=5 dan naive bayes memiliki akurasi tertinggi sebesar 81%.

Kata kunci : Analisis Sentimen, Perbandingan, Twitter, klasifikasi,

Naive Bayes, K-NN, Lexicon.

Daftar Pustaka : 24 (Tahun 2003 – 2018)

Jumlah Halaman : VI BAB + xviii Halaman + 147 Halaman + 50 Gambar

+ 63 Tabel

Page 10: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

x

UIN Syarif Hidayatullah Jakarta

Name : Azhar

Program Studi : Teknik Informatika

Judul : Performance Analysis of Naive Bayes and K-

Nearest Neighbor Algorithm on Sentiment

Analysis with Lexicon Approach on Twitter

Media

ABSTRACT

Sentiment analysis or opinion mining is a type of natural language, it is

processing words to find out opinions, attitudes or moods about certain things.

Word processing in this study relates to the process of classification of textual

documents into three classes, positive, negative and neutral. Data obtained

from social media twitter related to the comments of netizens against

candidates for presidential election Joko Widodo with the keywords of the

2019 presidential election and jokowi as many as 1000 comments using data

crawling techniques. In this study, the authors compared the performance of

the Naive Bayes and K-NN algorithms with training data on the Lexicon

approach in the classification of test data. This study aims to determine the

level of accuracy, precision, recall algorithm Naive Bayes and K-NN with the

Lexicon approach. The test was also conducted to determine the k value of

the K-NN algorithm to find the best parameters. The conclusion of testing the

combination of the K-NN algorithm and the Lexicon approach can improve

accuracy in sentiment analysis. The best accuracy level of K-NN algorithm

and lexicon approach is 77% with k value is k = 5 and naive bayes has the

highest accuracy of 81%.

Keywords : Sentiment analysis, Comparison, Twitter,

Classification, Naïve Bayes Classifier, Lexicon, K-

Nearest Neighbor.

Bibliography : 24 (2003 – 2018)

Page Number : VI Chapters + xviii Pages + 147 Pages + 50 Pictures +

63 Tables

Page 11: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

xi

UIN Syarif Hidayatullah Jakarta

DAFTAR ISI

PERNYATAAN ORISINALITAS........................................................................ iii

HALAMAN PERSETUJUAN PEMBIMBING .................................................. iv

LEMBAR PENGESAHAN .................................................................................... v

PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI ................................ vi

KATA PENGANTAR ........................................................................................... vii

ABSTRAK .............................................................................................................. ix

ABSTRACT ............................................................................................................. x

DAFTAR ISI........................................................................................................... xi

DAFTAR GAMBAR ............................................................................................ xiv

DAFTAR TABEL ................................................................................................ xvi

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

1.1 Latar Belakang ................................................................................ 1

1.2 Tujuan Penulisan ............................................................................. 4

1.3 Manfaat Penulisan ........................................................................... 4

1.4 Rumusan Masalah ........................................................................... 5

1.5 Batasan Masalah .............................................................................. 5

1.6 Metodologi Penelitian ..................................................................... 6

1.6.1 Pengumpulan Data ................................................................... 6

1.6.1 Metode Simulasi ...................................................................... 6

1.7 Sistematika Penulisan ...................................................................... 6

BAB II LANDASAN TEORI ................................................................................. 8

2.1 Analisis Sentimen ............................................................................ 8

2.2 Twitter ............................................................................................. 8

2.2.1 Twitter API ............................................................................... 9

2.2.2 Analisis Sentimen Pada Twitter ............................................. 10

2.2.3 Struktur Data Twitter ............................................................. 10

2.3 Text Mining .................................................................................... 11

2.4 Web Service .................................................................................. 13

2.5 Pre-proccessing ............................................................................. 15

2.6 Klasifikasi ...................................................................................... 15

2.7 Metode Klasifikasi Analisis Sentimen .......................................... 17

2.6.1 Supervised Learning .............................................................. 17

2.6.2 Unsupervised Learning .......................................................... 18

2.8 Metode Lexicon ............................................................................. 18

Page 12: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

xii

UIN Syarif Hidayatullah Jakarta

2.9 Kamus Lexicon .............................................................................. 20

2.10 Pembangunan Index ...................................................................... 21

2.11 Pembobotan Kata .......................................................................... 23

2.12 Algoritma Naive Bayes ................................................................. 25

2.13 Algoritma K-Nearest Neighbor (K-NN) ........................................ 26

2.14 Confusion Matrix .......................................................................... 27

2.15 Metode Simulasi ............................................................................ 28

2.14.1 Problem Formulation ............................................................. 28

2.14.2 Conceptual Model .................................................................. 29

2.14.3 Collection of Input/Output Data ............................................ 29

2.14.4 Modelling Phase ..................................................................... 29

2.14.5 Simulation Phase .................................................................... 30

2.14.6 Verification, Validation and Experimentation ....................... 30

2.14.7 Output Analysis Phase ........................................................... 30

BAB III METODE PENELITIAN ...................................................................... 32

3.1 Metode Pengumpulan Data ........................................................... 32

3.1.1 Studi Pustaka .......................................................................... 32

3.1.2 Observasi ................................................................................ 32

3.1.3 Studi Literatur ........................................................................ 32

3.2 Metode Simulasi ............................................................................ 35

3.2.1 Problem Formulation (Formulasi Masalah) .......................... 35

3.2.2 Conceptual Model (Pemodelan Konsep) ............................... 36

3.2.3 Collection of Input/Output Data (Pengumpulan Masukan atau

Keluaran Data) ..................................................................................... 36

3.2.4 Modeling Phase (Tahap Permodelan) .................................... 36

3.2.5 Simulation Phase (Tahap Simulasi) ....................................... 36

3.2.6 Conclusion (Verification, Validation, and Experimentation) 37

3.2.7 Output Analysis Phase (Fase Analisa Hasil) .......................... 37

3.3 Skenario Pengujian ........................................................................ 37

3.4 Alur Penelitian ............................................................................... 38

BAB IV IMPLEMENTASI .................................................................................. 39

4.1 Problem Formulation ..................................................................... 39

4.2 Conceptual Model ......................................................................... 39

4.2.1 Conceptual Model Crawling Data ......................................... 39

4.2.2 Conceptual Model Pendekatan Lexicon ................................. 42

4.2.3 Conceptual Model Klasifkasi Naive Bayes............................ 46

Page 13: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

xiii

UIN Syarif Hidayatullah Jakarta

4.2.4 Conceptual Model Klasifkasi K-Nearest Neighbor ............... 52

4.3 Collection Input / Output Data ...................................................... 59

4.4 Modelling Phase ............................................................................ 62

4.4.1 Konstruksi Pendekatan Lexicon ............................................. 63

4.4.2 Konstruksi Pendekatan Naive Bayes ..................................... 65

4.4.3 Konstruksi Pendekatan K-NN ................................................ 70

4.5 Simulation Phase ........................................................................... 78

4.5.1 Tahap Pengujian Data Uji ...................................................... 79

4.6 Verification, Validation and Experimentation .............................. 85

4.7 Output Analysis Phase ................................................................... 85

BAB V HASIL DAN PEMBAHASAN ................................................................ 86

5.1 Verification, Validation and Experimentation .............................. 86

5.2 Output Analysis Phase ................................................................... 87

5.2.1 Hasil Klasifikasi Sentimen Kombinasi Algoritma Naive Bayes

Dengan Pendekatan Lexicon ................................................................ 87

5.2.2 Hasil Klasifikasi Sentimen Kombinasi Algoritma K-NN dan

Pendekatan Lexicon .............................................................................. 92

5.2.3 Analisa Hasil Tingkat Akurasi Kombinasi Algoritma Naive

Bayes dan K-NN dengan Pendekatan Lexicon ..................................... 96

5.2.4 Analisis Hasil Perbandingan Akurasi Algoritma Naive Bayes

Dengan Algoritma K-NN.................................................................... 103

BAB VI KESIMPULAN DAN SARAN ............................................................ 105

6.1 Kesimpulan .................................................................................. 105

6.2 Saran ............................................................................................ 105

DAFTAR PUSTAKA .......................................................................................... 107

LAMPIRAN......................................................................................................... 110

Page 14: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

xiv

UIN Syarif Hidayatullah Jakarta

DAFTAR GAMBAR

Gambar 1. 1 Survei Pengguna Media Sosial .................................................. 2

Gambar 2. 1 Sistem Arsitektur Text Mining ................................................ 12

Gambar 2. 2 Gambaran XML pada web service .......................................... 14

Gambar 3. 1 Alur Penelitian......................................................................... 38

Gambar 4. 1 Setelah registrasi ..................................................................... 40

Gambar 4. 2 Otentikasi access token ........................................................... 40

Gambar 4. 3 Contoh hasil crawling data ...................................................... 41

Gambar 4. 4 Flowchart Conceptual Model Crawling Data ......................... 41

Gambar 4. 5 Alur Klasifikasi Lexicon ......................................................... 42

Gambar 4. 6 Tahap case folding .................................................................. 42

Gambar 4. 7 Tahap filtering ......................................................................... 43

Gambar 4. 8 Flowchart normalisasi ............................................................. 44

Gambar 4. 9 Hasil tahap normalisasi ........................................................... 45

Gambar 4. 10 Conceptual Model Pendekatan Lexicon ................................ 46

Gambar 4. 11 Alur klasifikasi naive bayes .................................................. 47

Gambar 4. 12 Tahap case folding naive bayes ............................................. 47

Gambar 4. 13 Tahap filtering naive bayes ................................................... 48

Gambar 4. 14 Flowchart stopword ............................................................... 49

Gambar 4. 15 Hasil tahap stopword naive bayes ......................................... 49

Gambar 4. 16 Tahap stemming .................................................................... 50

Gambar 4. 17 Flowchart stemming Nazrief Andriani .................................. 51

Gambar 4. 18 Conceptual Model Naive Bayes ............................................ 52

Gambar 4. 19 Tahap case folding K-NN ..................................................... 53

Gambar 4. 20 Tahap filtering K-NN ............................................................ 53

Gambar 4. 21 Flowchart stopword K-NN .................................................... 54

Gambar 4. 22 Hasil tahap stopword K-NN .................................................. 55

Gambar 4. 23 Tahap stemming K-NN ......................................................... 56

Gambar 4. 24 Flowchart stemming Nazrief Andrianivuntuk K-NN ........... 57

Gambar 4. 25 Langkah Algoritma K-NN ..................................................... 58

Gambar 4. 26 Conceptual Model Pendekatan K-NN ................................... 59

Page 15: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

xv

UIN Syarif Hidayatullah Jakarta

Gambar 4. 27 Hasil Crawling Tweet ........................................................... 60

Gambar 4. 28 Skenario 1 akurasi naive bayes ............................................. 79

Gambar 4. 29 Skenario 1 Confusion Matrix Naive Bayes ........................... 80

Gambar 4. 30 Skenario 2 akurasi K-NN nilai k = 1 ..................................... 80

Gambar 4. 31 Skenario 2 akurasi K-NN Confusion Matrix ......................... 81

Gambar 4. 32 Skenario 3 Akurasi K-NN dengan nilai k = 3 ........................ 81

Gambar 4. 33 Skenario 3 K-NN Confusion Matrix ...................................... 82

Gambar 4. 34 Skenario 4 Akurasi K-NN dengan nilai k = 5 ........................ 82

Gambar 4. 35 Skenario 4 K-NN Confusion Matrix ...................................... 83

Gambar 4. 36 Skenario 5 Akurasi K-NN dengan nilai k = 9 ........................ 83

Gambar 4. 37 Skenario 5 Confusion Matrix ................................................ 84

Gambar 4. 38 Skenario 5 Akurasi K-NN dengan nilai k = 10 ...................... 84

Gambar 4. 39 Skenario 6 Confusion Matrix ................................................ 85

Gambar 5. 1 Perhitungan tabel K-NN .......................................................... 95

Gambar 5. 2 Hasil Eksperimen Naive Bayes dan K-NN ............................. 99

Gambar 5. 3 Grafik Tingkat Akurasi ......................................................... 100

Gambar 5. 4 Grafik Tingkat Presisi ........................................................... 100

Gambar 5. 5 Grafik Tingkat Recall ............................................................ 101

Gambar 5. 6 Grafik Tingkat F-Measure ..................................................... 101

Gambar 5. 7 Perbandingan Akurasi Naive Bayes Dan K-NN ................... 104

Page 16: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

xvi

UIN Syarif Hidayatullah Jakarta

DAFTAR TABEL

Tabel 2. 1 Tabel Klasifikasi ......................................................................... 16

Tabel 2. 2 Confusion Matrix ........................................................................ 27

Tabel 3. 1 Tabel Penelitian Sejenis .............................................................. 33

Tabel 4. 1 score penjumlahan lexicon .......................................................... 45

Tabel 4. 2 Tipe Data Input Kamus Lexicon Positif ..................................... 60

Tabel 4. 3 Tipe Data Input Kamus Lexicon Negatif .................................... 60

Tabel 4. 4 Tipe Data Input Kamus Lexicon Negasi ..................................... 60

Tabel 4. 5 Tipe Data Input Kamus KBBI .................................................... 60

Tabel 4. 6 Tipe Data Input Kata Dasar ........................................................ 60

Tabel 4. 7 Tipe Data Input Kamus Stopwords ............................................. 61

Tabel 4. 8 Tipe Data Input Kata Tidak Baku Singkatan .............................. 61

Tabel 4. 9 Tipe Data Input Data Latih dan Uji ............................................ 61

Tabel 4. 10 Tipe Data Processing ................................................................ 61

Tabel 4. 11 Tipe Data Output Data Uji Naive Bayes ................................... 61

Tabel 4. 12 Tipe Data Output Data Uji K-NN .............................................. 61

Tabel 4. 13 Tipe Data Input Perhitungan K-NN ........................................... 62

Tabel 4. 14 Tipe Data Input TF-IDF ............................................................ 62

Tabel 4. 15 Tipe Data Input Likelihood Naive Bayes ................................. 62

Tabel 4. 16 Tabel Query Tokenisasi ............................................................ 64

Tabel 4. 17 Tabel Query Normalisasi .......................................................... 64

Tabel 4. 18 Hasil identifikasi kata sentimen ................................................ 64

Tabel 4. 19 Hasil identifikasi kata negasi .................................................... 65

Tabel 4. 20 Dokumen Latih ......................................................................... 66

Tabel 4. 21 Pengumpulan Dokumen Latih .................................................. 67

Tabel 4. 22 Case Folding Naive Bayes......................................................... 67

Tabel 4. 23 Filtering Naive Bayes ................................................................ 67

Tabel 4. 24 Tokenizing pada Naive Bayes ................................................... 67

Tabel 4. 25 Normalisasi Naive Bayes .......................................................... 68

Tabel 4. 26 Stopword dan Stemming Naive Bayes ...................................... 68

Tabel 4. 27 Case Folding Query Uji Naive Bayes ....................................... 69

Tabel 4. 28 Filtering Query Uji Naive Bayes .............................................. 69

Page 17: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

xvii

UIN Syarif Hidayatullah Jakarta

Tabel 4. 29 Tokenizing Query Uji Naive Bayes ........................................... 69

Tabel 4. 30 Normalisasi Query Uji Naive Bayes ......................................... 69

Tabel 4. 31 Stopword dan Stemming Query Uji Naive Bayes .................... 69

Tabel 4. 32 Conditional Probability ............................................................ 70

Tabel 4. 33 Posterior Probability ................................................................ 70

Tabel 4. 34 Dokumen Latih K-NN ............................................................... 71

Tabel 4. 35 Pengumpulan Dokumen Latih K-NN ........................................ 71

Tabel 4. 36 Case Folding K-NN ................................................................... 72

Tabel 4. 37 Filtering K-NN .......................................................................... 72

Tabel 4. 38 Tokenizing K-NN ...................................................................... 72

Tabel 4. 39 Normalisasi K-NN ..................................................................... 73

Tabel 4. 40 Stopword dan Steming K-NN .................................................... 73

Tabel 4. 41 Hasil proses indexing K-NN ...................................................... 73

Tabel 4. 42 TF dan DF K-NN ....................................................................... 73

Tabel 4. 43 Pembobotan TF-IDF K-NN pada data latih .............................. 74

Tabel 4. 44 Case Folding Query Uji K-NN.................................................. 74

Tabel 4. 45 Filtering Query Uji K-NN ......................................................... 74

Tabel 4. 46 Tokenizing Query Uji K-NN ...................................................... 75

Tabel 4. 47 Normalisasi Query Uji K-NN .................................................... 75

Tabel 4. 48 Stopword dan Stemming Query Uji K-NN ............................... 75

Tabel 4. 49 Pembobotan TF-IDF K-NN menggunakan query uji ................ 76

Tabel 4. 50 Hasil perkalian skalar antara query dan data latih .................... 76

Tabel 4. 51 Hasil panjang vektor setiap dokumen ....................................... 76

Tabel 4. 52 Simulasi Penelitian .................................................................... 78

Tabel 5. 1 Perbandingan Klasifikasi Naive Bayes ....................................... 87

Tabel 5. 2 Hasil klasifikasi sentimen kombinasi algoritma K-NN dan

Lexicon ......................................................................................................... 92

Tabel 5. 3 Hasil Pengujian Naive Bayes ...................................................... 96

Tabel 5. 4 Tabel Hasil Pengujian k = 1 ........................................................ 96

Tabel 5. 5 Tabel Hasil Pengujian k = 3 ........................................................ 97

Tabel 5. 6 Tabel Hasil Pengujian k = 5 ........................................................ 97

Tabel 5. 7 Tabel Hasil Pengujian k = 9 ........................................................ 98

Page 18: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

xviii

UIN Syarif Hidayatullah Jakarta

Tabel 5. 8 Tabel Hasil Pengujian k =10 ....................................................... 98

Page 19: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

1

UIN Syarif Hidayatullah Jakarta

BAB I

PENDAHULUAN

1.1 Latar Belakang

Aktivitas pemilihan legislatif (Pileg) dan pemilihan presiden (Pilpres)

2019 akan dimulai pada bulan april 2019 meskipun masih cukup lama namun

keramaiannya sudah bisa dirasakan. Dimulai tepatnya tanggal 17 agustus

2017 kemarin KPU sudah melakukan perencanaan dari jadwal sosialisasi

pemilihan hingga diakhiri peresmian calon presiden pada bulan oktober 2019

yang akan datang. Sejak tahapan pemilihan presiden 2019 ditetapkan nama-

nama calonnya mulai banyak diperbincangkan, baik di dunia nyata maupun

dunia maya (infopemilu.kpu.go.id).

Dewasa ini perkembangan pengguna internet indonesia di dunia maya

kian hari bertambah banyak. Terbukti dari data yang disurvei oleh APJII

(Asosiasi Penyelenggara Jasa Internet Indonesia ) pada tahun 2016 tercatat

mencapai 132,7 juta jiwa naik menjadi 143,26 juta jiwa pada tahun

2017(news.detik.com). Hal itu juga dapat dilihat dari survei APJII tentang

pemanfaatan pengunaan internet di setiap bidang, para pengguna internet

cenderung lebih menyukai membaca berita. Salah satunya seperti

pemanfaatan internet di bidang lifestyle hasil tertinggi dicapai pada aktivitas

sosial media sebanyak 87,13 persen, lalu download musik sebesar 71,10

persen, download film sebesar 70 persen, kemudian pada bidang sosial politik

hasil pemanfaatan tertinggi dicapai oleh aktivitas membaca sosial dan

lingkungan sebesar 50,26 persen. Dari survei tersebut dapat diketahui bahwa

pemanfaatan internet di indonesia cukup tinggi terhadap penggunaan media

sosial dan posisi kedua yaitu membaca media massa online yang

menggerakan banyak media massa mulai banyak yang aktif ke dalam media

sosial. (https://apjii.or.id/survei2017)

Page 20: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

2

UIN Syarif Hidayatullah Jakarta

Media sosial sendiri mengalami peningkatan pengguna aktif seperti

facebook, twitter, dan youtube, dari data 2015 memaparkan jumlah pengguna

twitter lebih dari 285 juta jiwa. Mayoritas penggunanya dari umur 16 tahun

hingga 65 tahun keatas. Twitter pada waktu belakangan ini kerap kali

digunakan dalam ranah sosial – politik misalnya seperti pergerakan sosial

bersama, melaporkan informasi tentang kemacetan, politik, kondisi cuaca,

bencana alam dan informasi tertentu seperti peringatan terhadap suatu

kejadian. Beberapa jurnal pun meneliti mengenai keutamaan twitter dalam

menganalisis dan melakukan klasifikasi terhadap data contohnya seperti

jurnal dengan judul analysis of tweet related to cyberbullying yang isinya

tentang analisa sentimen terkait cyberbullying (Alim, 2015).

Media sosial twitter juga belakangan ini mengalami perubahan fungsi

yang cukup drastis. Pada awal mula twitter berdiri media ini digunakan

sebagai alat berbalas pesan dan tempat berbagi, namun akibat popularitas

yang cukup tinggi penggunaan fungsinya bertambah banyak, seperti

pencarian trend, promosi produk, dan pemberian rating. Akibatnya fungsi

pada twitter yang awal mula sebagai tempat tanya jawab dan berbagi

informasi menjadi sarana yang digunakan diberbagai aspek salah satunya

sebagai media penelitian berupa text mining, sentimen analisis, dan artificial

intelligence (Hartanto,2017).

Gambar 1. 1 Survei Pengguna Media Sosial

Page 21: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

3

UIN Syarif Hidayatullah Jakarta

Analisis sentimen atau opinion mining merupakan proses memahami,

mengekstrak dan mengolah data tekstual secara otomatis untuk mendapatkan

informasi sentimen yang terkandung dalam suatu kalimat. Minimumnya di

dalam analisis sentimen terdapat 2 kategori dalam menentukan sentimen yaitu

kategori sentimen positif dan negatif. Sentimen analisis sendiri merupakan

salah satu model klasifikasi data dengan pendekatan supervised learning di

dalam machine learning. Machine learning mempunyai 2 tipe teknik yaitu

supervised learning dan unsupervised learning. (Brownlee, 2016).

Supervised learning adalah salah satu tipe algoritma machine learning

yang menggunakan data latih yang dikenal (training dataset) untuk membuat

prediksi. Sedangkan unsupervised learning adalah salah satu tipe algoritma

machine learning yang digunakan untuk menarik kesimpulan dari dataset

yang terdiri dari input data labeled response. Metode unsupervised learning

yang paling umum adalah analisa cluster, yang digunakan pada analisa data

untuk mencari pola-pola tersembunyi atau pengelompokan dalam data,

sedangkan pada supervised learning contoh yang paling umum adalah

klasifikasi data. Mayoritas praktis dari machine learning sendiri

menggunakan supervised learning. Karena besarnya pengaruh dan manfaat

dari klasifikasi data menyebabkan penelitian dan aplikasi berbasis klasifikasi

data seperti text ming, analisis sentiment justru berkembang pesat (Ghulam,

2016).

Berbagai metode telah dikembangkan dan diterapkan untuk klasifikasi

teks. Seperti K-Nearest Neighbor (K-NN), Naive Bayes Classifier (NBC),

SVM, Deep Learning. Kemudian beberapa klasifikasi yang bergantung

dengan kamus atau Knowledge Base Approach yakni Lexicon dan Point

Mututal Information.(Zhang,2014)

Contoh penelitian Naive Bayes Classifier (NBC) pada tahun 2016

dibuat oleh Ghulam Asrofi Buntoro dengan judul “Analisa Sentimen Calon

Gurbernur DKI Jakarta 2017 di Twitter“. Dengan menggunakan 2 algoritma

yaitu Naive bayes dan SVM (Support Vector Machine) menggunakan dataset

mengenai calon gurbernur DKI Jakarta tahun 2017 berbentuk hasil acak dari

beberapa keyword dan media online dengan menghasilkan akurasi yang

Page 22: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

4

UIN Syarif Hidayatullah Jakarta

tertinggi sebesar 95 persen untuk algoritma naive bayes dan 90 persen untuk

SVM.

Kemudian penelitian yang dilakukan oleh Hailong Zhang 2014,

mengenai perbandingan klasifikasi sentimen dengan menggunakan

pendekatan lexicon dan pendekatan machine learning. Dengan beberapa

algoritma terdiri dari SVM, Naive Bayes, Deep Learning, Lexicon sebagai

algoritma pembanding. Hasilnya penggunaan sentiwordnet yaitu klasifikasi

berdasarkan pendekatan lexicon dapat berbanding akurasi sebesar 64,25

persen lalu diikuti Naive Bayes sebesar 68,75 persen dan terbesar yakni SVM

71 persen. (Zhang,2014)

Berdasarkan uraian diatas, peneliti tertarik untuk melakukan analisis

sentimen menggunakan kombinasi pendekatan lexicon dengan beberapa

machine learning Naive Bayes dan K-NN untuk mengetahui seberapa besar

peningkatan akurasi jika dilakukan penggabungan. Pendekatan menggunakan

dataset dari media twitter dengan kata kunci calon presiden 2019 yang sedang

hangat diperbincangkan. Sehingga penulis mengangkat tema yang berjudul

“Analisis Kinerja Algoritma Naive Bayes dan K-NN Pada Sentimen

Analisis Dengan Pendekatan Lexicon Di Media Twitter”.

1.2 Tujuan Penulisan

Tujuan dari penulisan ini adalah untuk membandingkan akurasi

algoritma naive bayes dan K-NN dengan pendekatan lexicon menggunakan

analisa sentimen pada media twitter.

1.3 Manfaat Penulisan

Dengan melakukan penulisan ini, penulis dapat menguraikan manfaat-

manfaat sebagai berikut:

1. Penulis

a. Penulis dapat memahami materi-materi mengenai pengembangan

sistem berbasis web.

b. Penulis dapat mengimplementasikan pembelajaran bahasa

pemrograman berbasis web dengan membangun web analisa sentimen

menggunakan algoritma naive bayes dan K-NN.

2. Pembaca

Page 23: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

5

UIN Syarif Hidayatullah Jakarta

a. Menambah wawasan pembaca tentang klasifikasi data berbentuk

analisis sentimen menggunakan algoritma naive bayes dan K-NN.

b. Pembaca dapat mengetahui secara langsung penggunaan algoritma

naive bayes dan K-NN ketika diimplementasikan berbentuk analisis

sentimen.

3. Universitas

a. Mengetahui kemampuan mahasiswa dalam menguasai materi-materi

pembelajaran yang telah diperoleh di bangku kuliah.

b. Mengetahui kemampuan mahasiswa dalam mengimplementasikan

ilmunya dan sebagai bahan evaluasi.

1.4 Rumusan Masalah

Berdasarkan latar belakang yang dijelaskan, maka pokok permasalahan

yang akan dibahas adalah bagaimana kinerja algoritma naive bayes dan K-

NN dalam meningkatkan akurasi pada analisa sentimen di twitter dengan

menggunakan pendekatan lexicon.

1.5 Batasan Masalah

Dengan luasnya cakupan pembahasan, maka penulis membatasi ruang

lingkup pembahasan agar penulis dapat fokus pada pembahasan yang ada.

Ruang lingkup pembahasan adalah:

1. Nilai k yang digunakan pada algoritma K-NN adalah k=1, k=3, k=5, K=9

dan k=10.

2. Menggunakan fitur seleksi TF-IDF pada algoritma K-NN.

3. Menggunakan stopwords berdasarkan kamus dari Tala sebagai tambahan

Text Preprocessing.

4. Menggunakan Stemming Nazief Andriani sebagai tambahan Text

Preprocessing.

5. Menggunakan data latih hasil crawling twitter dengan tweet yang merujuk

tagar Pilpres 2019 tentang Presiden Jokowi serta jumlah data latih sebesar

900 tweet.

6. Pengambilan data dilakukan pada periode 08 februari 2018 – 24 februari

2018 dan 12 Juni 2018 – 08 Agustus 2018 dengan kata kunci pilpres 2019

dan jokowi.

Page 24: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

6

UIN Syarif Hidayatullah Jakarta

7. Bahasa Pemrograman yang digunakan Hypertext Preprocessor atau PHP

7.1.11 dan Database MySql menggunakan XAMPP control panel.

8. Metode yang digunakan adalah metode simulasi.

1.6 Metodologi Penelitian

Dalam penulisan ini menggunakan dua metode dalam merancang

aplikasi dan pengumpulan data serta informasi, yaitu metode Pengumpulan

Data dan Metode Simulasi.

1.6.1 Pengumpulan Data

Metode pengumpulan data dilakukan dengan studi pustaka, yaitu

dengan membaca buku-buku yang bersangkutan sebagai referensi dan bahan

acuan. Dan observasi data dengan cara crawling data pada twitter.

1.6.1 Metode Simulasi

Pada penelitian ini Penulis melakukan simulasi terhadap sistem yang

dibuat. Adapun langkah-langkah yang dilakukan yaitu (Madani, Kazmi, &

Mahlknecht, 2010):

1. Problem Formulation

2. Conceptual Model

3. Input Output Data

4. Modelling

5. Simulation

6. Verification, Validation, Experimentation and Output Analysis

1.7 Sistematika Penulisan

Untuk memudahkan dalam penulisan ini, maka pembahasan terbagi

menjadi 6 bagian atau bab yang diuraikan sebagai berikut:

BAB I PENDAHULUAN

Dalam bab ini berisi pembahasan mengenai Latar Belakang,

Tujuan Penulisan, Manfaat Penulisan, Rumusan Masalah,

Batasan Masalah, Metodologi Penelitian serta Sistematika

Penulisan.

BAB II LANDASAN TEORI

Dalam bab ini dijelaskan mengenai pembahasan teori yang

digunakan sebagai panduan dasar dalam penelitian ini.

Page 25: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

7

UIN Syarif Hidayatullah Jakarta

BAB III METODE PENELITIAN

Dalam bab ini membahas metodologi penelitian yang

digunakan yaitu metodologi pengumpulan data dan metode

simulasi.

BAB IV IMPLEMENTASI DAN EKSPERIMEN

Dalam bab ini membahas tentang implementasi aplikasi

sentimen analisis.

BAB V HASIL DAN PEMBAHASAN

Dalam bab ini membahas hasil dan pembahasan berdasarkan

penelitian yang telah dilakukan serta sesuai dengan metodologi

yang digunakan.

BAB VI KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan saran

Page 26: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

8

UIN Syarif Hidayatullah Jakarta

BAB II

LANDASAN TEORI

2.1 Analisis Sentimen

Analisis Sentimen dikatakan sebagai opinion mining dapat digunakan

dalam berbagai kemungkinan domain/entitas dari produk dan jasa, peristiwa

sosial dan politik serta kegiatan tertentu lainnya. Opinion atau pendapat

adalah pusat dari semua aktifitas manusia karena merupakan pemberi

pengaruh utama perilaku kita. Opinion dan konsep sejenisnya seperti

sentimen, evaluasi, sikap, dan emosi adalah subjek studi tentang analisis

sentimen (Liu, 2015).

Analisis sentimen merupakan topik penelitian yang aktif dibawah

natural language proccessing yang bertujuan untuk membangun sebuah

metode yang dapat diimplementasikan menjadi sebuah tools yang dapat

digunakan untuk mengekstraksi informasi subjektif berupa sentimen atau

opini dalam sebuah data text. Kecenderungan penelitian tentang analisis

sentimen berfokus pada pendapat yang menyatakan suatu sentimen memiliki

nilai positif atau negatif. (Liu, 2015)

Liu mencontohkan permasalahan kalimat sentimen pada kasus

pemilihan berikut : “(1) Saya membeli IPhone 7 enam bulan yang lalu. (2)

Saya menyukai kameranya yang memiliki kualitas gambar menakjubkan. (3)

Ketahanan pemakaian baterai juga sangat bagus. (4) Namun kurang baik

karena tidak memiliki fitur fast charging“.

Dari tulisan tersebut dapat dijelaskan sebagai berikut : tulisan ini

memiliki pendapat tentang suatu entitas/domain yaitu IPhone 7. Pada kalimat

(2) dan kalimat (3) kecenderungan pendapat positif terhadap IPhone 7 tentang

kamera yang menghasilkan kualitas gambar yang bagus dan ketahanan daya

baterai yang bagus. Sedangkan pada kalimat (4) mengekspresikan pendapat

negatif tentang fitur charging yang tidak ada.

2.2 Twitter

Twitter adalah sebuah situs web yang dimiliki dan dioperasikan oleh

Twitter Inc., yang menawarkan jaringan sosial berupa microblog sehingga

Page 27: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

9

UIN Syarif Hidayatullah Jakarta

memungkinkan pengguna untuk mengirim dan membaca pesan Tweets

(Twitter, 2013). Mikroblog adalah adalah satu jenis alat komunikasi online

dimana pengguna dapat memperbarui status tentang mereka yang sedang

memikirkan dan melakukan sesuatu, apa pendapat mereka tentang suatu

objek atau fenomena tertentu. Tweets adalah teks tulisan hingga 140 karakter

yang ditampilkan pada halaman profil pengguna. Tweets bisa dilihat secara

publik, namun pengirim dapat membatasi pengiriman pesan ke daftar teman-

teman mereka saja. Pengguna dapat melihat tweets pengguna lain yang

dikenal dengan sebutan pengikut (follower).

2.2.1 Twitter API

Application Programming Interface (API) merupakan fungsi-

fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan dalam

system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh

programmer. Fungsi yang dibuat dengan menggunakan API tersebut

kemudian akan memanggil system calls sesuai dengan sistem operasinya.

Tidak tertutup kemungkinan nama dari system calls sama dengan nama di

API. Twitter menyediakan API yang diperuntukkan untuk developer yang ada

pada website https://developer.twitter.com. Twitter API terdiri dari 3 bagian

yaitu :

a. Search API

Search API dirancang untuk memudahkan user dalam mengelola query

search di konten twitter. User dapat menggunakannya untuk mencari

tweet berdasarkan keyword khusus atau mencari tweet lebih spesifik

berdasarkan username twitter. Search API juga menyediakan akses pada

data trending topic.

b. REST API

REST API memperbolehkan developer untuk mengakses inti dari Twitter

seperti timeline, status update dan informasi user. REST API digunakan

dalam membangun sebuah aplikasi Twitter yang kompleks yang

memerlukan inti dari Twitter

c. Streaming API

Page 28: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

10

UIN Syarif Hidayatullah Jakarta

Streaming API digunakan developer untuk kebutuhan yang lebih intensif

seperti melakukan penelitian dan analisis data. Streaming API dapat

menghasilkan aplikasi yang dapat mengetahui statistik status update,

follower dan lain sebagainya

Pada penelitian ini, bagian Twitter API yang digunakan adalah REST

API, dengan menggunakan REST API proses pengumpulan data

komentar pengguna twitter akan lebih mudah didapat.

2.2.2 Analisis Sentimen Pada Twitter

Definisi analisis sentimen twitter pada dasarnya merujuk pada

pendapat komentar yang ada pada media twitter. Pesan twitter lebih mudah

untuk dilakukan analisis karena penulisan yang dibatasi. Kalimat seringkali

memuat pendapat tunggal, meskipun tidak bersifat mutlak bahwa setiap

kalimat berisi pendapat tunggal. Dalam kasus lain terdapat kalimat dengan

pendapat lebih dari satu pada suatu kalimat namun ini hanya sebagian kecil

(Liu, 2015).

Pada dasarnya analisis sentimen merupakan tahapan klasifikasi.

Namun tahapan klasifikasi sentimen pada twitter yang tidak terstruktur

menyebabkan sedikit lebih sulit dibanding dengan klasifikasi dokumen

terstruktur. Langkah pertama adalah untuk mengklasifikasikan apakah

kalimat mengungkapkan pendapat atau tidak. Langkah kedua adalah

mengklasifikasikan kalimat-kalimat pendapat menjadi positif dan kelas

negatif.

2.2.3 Struktur Data Twitter

Untuk mendalami permasalahan analisis sentimen twitter diperlukan

pemahaman terhadap struktur data twitter itu sendiri. Twitter menjadi sumber

yang hampir tak terbatas yang digunakan pada text classification. Menurut

Go (2009), terdapat banyak karakteristik pada tweets twitter. Pesan pada

twitter memiliki banyak attribute yang unik, yang membedakan dari media

sosial lainnya :

1. Twitter memiliki maksimal panjang karakter yaitu 140 karakter.

Page 29: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

11

UIN Syarif Hidayatullah Jakarta

2. Twitter menyediakan data yang bisa diakses secara bebas dengan

menggunakan Twitter API, mempermudah saat proses pengumpulan

tweets dalam jumlah yang sangat banyak.

3. Pengguna twitter mem-posting pesan melalui banyak media berbeda

untuk mengungkapkan pendapat tentang suatu topik atau kejadian

tertentu, sehingga merupakan sumber yang bagus dalam menemukan

pendapat orang lain.

4. Terdapat ragam topik didalamnya. Setiap pengguna dapat menuliskan

topik apapun pada pesan twitter.

2.3 Text Mining

Menurut Raymon J. Mooney (2006), text mining memiliki definisi

menambang data yang berupa teks dimana sumber data biasanya didapatkan

dari dokumen, dan tujuannya adalah mencari kata-kata yang dapat mewakili

isi dari dokumen sehingga dapat dilakukan analisa keterhubungan antar

dokumen. Berikut ini merupakan tahapan dari text mining:

1. Tahap Tokenizing

Tahap tokenizing adalah tahap pemotongan string input berdasarkan

tiap kata yang menyusunya. Contoh dari tahap ini adalah sebagai

berikut:

a. Manajemen Pengetahuan (teks input)

b. Manajemen pengetahuan (hasil tokenizing)

2. Tahap Filtering

Tahap filtering adalah tahap mengambil kata-kata penting dari hasil

tokenizing. Bisa menggunakan stoplist (membuang kata yang kurang

penting) dan wordlist (menyimpan kata yang penting. Contoh dari tahap

ini adalah sebagai berikut:

a. manajemen pengetahuan adalah sebuah konsep baru (hasil token).

b. manajemen pengetahuan konsep baru (hasil filtering)

3. Tahap Stemming

Tahap stemming adalah adalah tahap mencari root kata dari teks yang

dimasukan. Contoh dari tahap ini adalah sebagai berikut:

a. Memasukan (teks input)

Page 30: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

12

UIN Syarif Hidayatullah Jakarta

b. Masuk (hasil stemming)

4. Tahap Analisis

Tahap analisis adalah tahap penentuan seberapa jauh keterhubungan

antara kata-kata dengan dokumen yang ada.

Berikut gambaran sistem arsitektur text mining yang dicantumkan pada

buku (Feldman, dkk. 2007).

Gambar 2. 1 Sistem Arsitektur Text Mining

Penelitian dibidang text mining menangani masalah yang berkaitan

dengan representasi teks, klasifikasi, clustering, ekstraksi informasi atau

pencarian dan pemodelan pola. Dalam hal ini pemilihan karakteristik, juga

domain penelitan dan prosedur penelitian menjadi peran penting. Oleh karena

itu, adaptasi dari algoritma data mining dari teks yang diketahui sangat

diperlukan. Maka dari itu untuk mencapai hal ini seringkali berdasarkan

penelitian sebelumnya text mining bergantung pada information retrieval,

natural language processing dan information extraction. Selain itu juga

penerapan metode data mining dan statistic juga diterapkan untuk menangani

masalah ini (Hotho, 2005).

Information Retrieval (IR) adalah menemukan bahan (biasanya

dokumen) dari suatu keadaan yang tidak terstruktur (biasanya teks) yang

memenuhi kebutuhan informasi dari dalam kumpulan data yang besar

(biasanya disimpan didalam komputer) (Manning, dkk. 2009). Natural

Language Processing (NLP) bertujuan untuk mencapai hasil yang lebih baik

dalam pemahaman bahasa alami dengan menggunakan komputer. Sedangkan

Ekstraksi Informasi (IE). Bertujuan untuk menemukan informasi tertentu dari

dokumen teks yang kemudian Ini disimpan dalam basis data seperti pola

sehingga dapat digunakan dan dimanfaatkan (Hotho, 2005).

Hotho (2005). juga mengatakan bahwa pada penelitian text mining

diperlukan tahapan text preprocessing pada koleksi dokumen dan menyimpan

Page 31: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

13

UIN Syarif Hidayatullah Jakarta

informasi tersebut dalam struktur data. Pendekatan text mining didasarkan

pada pemikiran bahwa dokumen teks dapat diwakili oleh satu set kata-kata,

yaitu dokumen teks digambarkan berdasarkan pada set kata-kata yang

terkandung di dalamnya.

2.4 Web Service

Web Services adalah kumpulan dari fungsi dan method yang terdapat

pada sebuah server yang dapat dipanggil oleh klien dari jarak jauh, kemudian

untuk memanggil method-method tersebut kita bebas menggunakan aplikasi

yang akan dibuat dengan bahasa pemrograman apa saja yang dijalankan pada

platform apa saja. Menurut Kasman (2015) web service digunakan sebagai

suatu fasilitas yang menyediakan layanan (dalam bentuk informasi atau data)

kepada sistem lain, sehingga dapat berinteraksi dengan sistem tersebut

melalui layanan-layanan yang disediakan. Web service menyimpan data

informasi dalam format JSON atau XML, sehingga data ini dapat diakses oleh

sistem lain walaupun berbeda platform, sistem operasi, dan bahasa

pemrograman.(Kasman,2015)

Teknologi web services menawarkan kemudahan dalam memberikan

informasi tanpa mempermasalahkan perbedaan teknologi yang digunakan

masing-masing sumber. Misalkan sebuah situs informasi dibangun dengan

menggunakan database Oracle sedangkan situs lainya menggunakan Mysql

sedangkan anda sendiri menggunakan perangkat lunak Open Source dalam

membangun situs web services akan mengatasi perbedaan ini. Web Services

diperlukan karena pada masa sekarang ini perangkat keras, sistem operasi,

aplikasi hingga bahasa pemrograman semakin beraneka ragam jenisnya.

Keadaan tersebut dapat menimbulkan masalah dalam proses pertukaran data

antar perangkat yang menggunakan aplikasi dan platform yang berbeda.

Berikut merupakan komponen yang ada digunakan didalam web

services, yaitu :

1. Extensible Markup Language (XML) merupakan dasar yang penting atas

terbentuknya web services. Web Services dapat berkomunikasi dengan

aplikasi-aplikasi yang memanggilnya dengan menggunakan XML, karena

XML berbentuk teks sehingga mudah untuk ditransportasikan

Page 32: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

14

UIN Syarif Hidayatullah Jakarta

menggunakan protokol HTTP. Selain itu, XML juga bersifat platform

independen sehingga informasi di dalamnya bisa baca oleh aplikasi apapun

pada platform apapun selama aplikasi tersebut menerjemahkan tag-tag

XML. Kesimpulannya adalah apabila Web Services dan aplikasi dianggap

sebagai manusia yang berbeda ras dan bahasa, maka XML adalah sebuah

bahasa universal yang dapat mempersatukan mereka digunakan untuk

saling berkomunikasi dan bertukar informasi. Berikut merupakan contoh

XML pada gambar 2.2 Sebagai berikut :

Gambar 2. 2 Gambaran XML pada web service

2. Simple Object Access Protocol (SOAP) merupakan suatu format standar

dokumen berbentuk XML yang digunakan untuk melakukan proses

request dan response antara web services dengan aplikasi yang

memanggilnya. Dokumen SOAP digunakan untuk melakukan request

disebut dengan SOAP request sedangkan dokumen SOAP yang diperoleh

dari web services disebut dengan SOAP responses.

3. Web Service Definition Language (WSDL) adalah sebuah dokumen dalam

format XML yang isinya menjelaskan informasi detail sebuah Web

Services. Di dalam WSDL dijelaskan method-method apa saja yang

tersedia dalam web services, parameter apa saja yang diperlukan untuk

memanggil sebuah method, dan apa hasil atau tipe data yang dikembalikan

oleh method yang dipanggil tersebut.

Page 33: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

15

UIN Syarif Hidayatullah Jakarta

2.5 Pre-proccessing

Pre-processing dalam proses klasifikasi dokumen digunakan untuk

membangun sebuah index dari koleksi dokumen. Index adalah himpunan

term yang menunjukkan isi atau topik yang dikandung oleh dokumen

(Indriani, 2014)

Pembuatan inverted index harus melibatkan konsep linguistic

processing yang bertujuan ekstraksi term-term penting dari dokumen yang

dipresentasikan sebagai bag-of-words. Ekstraksi term biasanya melibatkan

tiga operasi utama, antara lain:

a. Pemisahan rangkaian term (tokenization). Tokenization adalah tugas

memisahkan deretan kata di dalam kalimat, paragraph atau halaman

menjadi token atau potongan kata tunggal atau termedword. Tahapan ini

juga menghilangkan karakter-karakter tertentu seperti tanda baca dan

mengubah semua token ke bentuk huruf kecil (lower case).

b. Penghapusan stopwords. Stop word didefinisikan sebagai term yang

tidak berhubungan (irrelevant) dengan subyek utama dari database

meskipun kata tersebut sering kali hadir di dalam dokumen. Contoh stop

words adalah ada,adalah, adanya, adapun, agak.

c. Stemming. Kata-kata yang muncul di dalam dokumen sering mempunyai

banyak varian. Karena itu, setiap kata yang bukan stopwords direduksi

ke stemmed word (term) yang cocok yaitu kata tersebut distem untuk

mendapatkan bentuk akarnya dengan menghilangkan awalan atau

akhiran. Dengan cara ini, diperoleh kelompok kata yang cocok dimana

kata-kata dalam kelompok tersebut merupakan varian sintaktis dari satu

sama lain dan dapat menghimpun hanya satu kata per kelompok. Sebagai

contoh, kata terdaftar, pendaftaran berbagi-pakai term stemming umum

daftar, dan dapat diperlakukan sebagai bentuk lain dari kata ini (Indriani,

2014).

2.6 Klasifikasi

Klasifikasi merupakan suatu metode untuk mengelompokkan sebuah

objek ke dalam kelompok atau kelas tertentu. Algoritma klasifikasi yang

banyak digunakan secara luas, yaitu Decision atau Classification Trees,

Page 34: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

16

UIN Syarif Hidayatullah Jakarta

Bayesian Classifiers atau Naïve Bayes classifiers, Neural Networks, Analisa

Statistik, Algoritma Genetika, Rough Sets, K-Nearest Neighbor, Metode Rule

Based, Memory Based Reasoning, dan Support Vector Machines (SVM).

Proses ini dilakukan agar data atau citra dapat dikategorikan dalam suatu

kelas tertentu yang telah ditentukan(Suyanto, 2017).

Sebuah sistem klasifikasi juga harus diukur kinerjanya guna melihat

tingkat akurasi dan kesalahan dari sistem tersebut. Umumnya, pengukuran

kinerja klasifikasi dilakukan dengan matriks konfusi (confusion matrikx).

Matriks konfusi merupakan tabel pencatat hasil kerja klasifikasi. Tabel 2.1

merupakan contoh matriks konfusi yang melakukan klasifikasi masalah biner

pada dua kelas yaitu kelas 0 dan 1. Setiap set 𝑓𝑖𝑗 dalam matriks menyatakan

jumlah record/data dari kelas i yang hasil prediksinya masuk ke kelas j.

Misalnya, set 𝑓11 adalah jumlah data dalam kelas 1 yang secara benar

dipetakan ke kelas 1, dan 𝑓10 adalah data dalam kelas 1 yang dipetakan secara

salah kelas 0 (Prasetyo, 2012).

Tabel 2. 1 Tabel Klasifikasi

𝑓𝑖𝑗 Kelas hasil prediksi (j)

Kelas = 1 Kelas = 0

Kelas Asli (i) Kelas = 1 𝑓11 (True Positive) 𝑓10(False

Negative)

Kelas = 0 𝑓01(False Positive) 𝑓00 (True Negative)

Berdasarkan isi tabel matriks, dapat diketahui jumlah data dari

masing-masing kelas yang diklasifikasikan secara benar, yaitu (𝑓10+ 𝑓01)

kuantitas matriks konfusi dapat diringkas menjadi dua nilai, yaitu akurasi dan

laju error. Beradasarkan jumlah data yang diklasifikasi secara benar, maka

dapat diketahui akurasi hasil prediksi, dan dengan mengetahui jumlah data

yang diklasifikasikan secara salah, dapat diketahui laju error dari prediksi

yang dilakukan. Dua kuantitas ini digunakan sebagai matrik kinerja

klasifikasi (Prasetyo, 2012).

Untuk menghitung akurasi digunakan formula sebagai berikut:

𝐽𝑢𝑚𝑙𝑎ℎ 𝑑𝑎𝑡𝑎 𝑦𝑎𝑛𝑔 𝑑𝑖𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 𝑠𝑒𝑐𝑎𝑟𝑎 𝑏𝑒𝑛𝑎𝑟

𝑗𝑢𝑚𝑙𝑎ℎ 𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 𝑦𝑎𝑛𝑔 𝑑𝑖𝑙𝑎𝑘𝑢𝑘𝑎𝑛=

𝑓11 − 𝑓00

𝑓11 + 𝑓10 + 𝑓01 + 𝑓00

Page 35: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

17

UIN Syarif Hidayatullah Jakarta

(𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.1)

Untuk menghitung laju error (kesalahan prediksi) digunakan formula

𝐽𝑢𝑚𝑙𝑎ℎ 𝑑𝑎𝑡𝑎 𝑦𝑎𝑛𝑔 𝑑𝑖𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 𝑠𝑒𝑐𝑎𝑟𝑎 𝑠𝑎𝑙𝑎ℎ

𝑗𝑢𝑚𝑙𝑎ℎ 𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 𝑦𝑎𝑛𝑔 𝑑𝑖𝑙𝑎𝑘𝑢𝑘𝑎𝑛=

𝑓10 − 𝑓01

𝑓11 + 𝑓10 + 𝑓01 + 𝑓00

(𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.2)

2.7 Metode Klasifikasi Analisis Sentimen

Ada dua pendekatan utama dalam menentukan orientasi sentimen

yaitu, pendekatan supervised learning dan unsupervised learning .

2.6.1 Supervised Learning

Supervised learning adalah sebuah pendekatan dimana sudah terdapat

data yang dilatih, dan terdapat variabel yang ditargetkan sehingga tujuan dari

pendekatan ini adalah mengkelompokan (klasifikasi) suatu data ke data yang

sudah ada. Algoritma ini mengamati sekumpulan pasangan masukan-

keluaran dalam jumlah yang cukup besar dan kemudian menghasilkan sebuah

model yang mampu memetakan masukan yang baru menjadi keluaran yang

tepat.

Terdapat empat isu yang harus dipertimbangkan dalam menggunakan

teknik supervised learning (Feldman, dkk. 2007) yaitu perlunya memutuskan

kategori yang akan digunakan untuk mengklasifikasikan kasus. Kedua,

dibutuhkan satu set pelatihan untuk masing-masing kategori. Ketiga, perlu

menentukan fitur dari setiap kategori. Biasanya, lebih baik untuk

menghasilkan fitur sebanyak mungkin karena sebagian besar algoritma akan

dapat fokus hanya pada fitur yang relevan. Terakhir, perlu memutuskan

algoritma yang akan digunakan untuk kategorisasi tersebut.

Beberapa algoritma yang biasa digunakan terhadap pendekatan

supervised learning, diantaranya naïve bayes, dan support vector machines

(SVM). Supervised learning bergantung pada data pelatihan. Model

klasifikasi berdasarkan data latih yang telah diberi label dalam satu domain,

sering berkinerja buruk dengan domain yang berbeda. Meskipun adaptasi

domain telah dipelajari oleh para peneliti, namun teknologi ini masih jauh

dari sempurna (Liu, 2015).

Page 36: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

18

UIN Syarif Hidayatullah Jakarta

2.6.2 Unsupervised Learning

Dalam pendekatan unsupervised learning, metode diterapkan tanpa

adanya latihan (training) dan tanpa adanya guru (teacher). Guru yang

dimaksud adalah label dari data. Misalkan ada sekelompok pengamatan atau

data tanpa ada label (output) tertentu, makan dalam unsupervised learning

harus mengelompokkan data tersebut ke dalam beberapa kelas yang kita

kehedaki. Ini terutama dilakukan karena data yang ada tidak memiliki label.

Label menandai kemana data akan dikelompokkan. Untuk melakukan tugas

(task) ini bias kita menerapkan metode unsupervised learning.

Unsupervised (Pang, dkk. 2008) adalah teknik yang terlebih dahulu

menciptakan sebuah sentimen tanpa data latih, dan kemudian menentukan

orientasi sentimen dari unit teks melalui beberapa fungsi berdasarkan positif

dan negatif. Menentukan sentimen dengan pendekatan unsupervised adalah

melalui kata-kata atau frase dengan polaritas sentimen, juga disebut sebagai

orientasi semantik. Masuk kedalam kelompok ini adalah Metode Lexicon.

2.8 Metode Lexicon

Lexicon Based merupakan metode yang sederhana, layak dan praktis

untuk analisis sentimen dari data media sosial. Data yang cocok dengan

metode Lexicon Based yaitu data kuesioner, data twitter, data facebook, atau

media sosial lainnya yang berupa opini pelanggan tentang suatu produk atau

pelayanan jasa (Matulatuwa et al., 2017).

Lexicon Based didasarkan pada asumsi bahwa orientasi sentimen

kontekstual adalah jumlah dari orientasi sentimen setiap kata atau frase.

Metode lexicon dapat digunakan untuk mengekstrak sentimen dari blog

dengan mengkombinasi lexical knowledge dan klasifikasi teks. Metode

lexicon dapat dibuat secara manual atau diperluas secara otomatis dari seed

of words (Matulatuwa et al., 2017).

Kamus adalah komponen penting dalam sistem yang menggunakan

lexicon based. Kamus digunakan dalam proses normalisasi kalimat dan

ekstraksi kata kunci. Berikut adalah contoh kamus dan isinya (Matulatuwa et

al., 2017).

1. Positive keywords: baik, bagus, bisa, ok, cepat, akurat, aman, senang.

Page 37: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

19

UIN Syarif Hidayatullah Jakarta

2. Negative keywords: acuh, ambigu, bodoh, gagal, abnormal, susah,

lambat.

3. Negation keywords: seharusnya, bukan, tidak

Hu, dkk. 2004 dikutip Liu, 2012 mengusulkan algoritma berbasis

lexicon untuk aspek menentukan orientasi sentimen. Orientasi sentimen

kalimat itu ditentukan dengan menjumlahkan nilai orientasi semua kata

sentimen di kalimat. Sebuah kata positif diberi nilai sentimen dari +1 dan kata

negative diberi nilai sentimen dari -1. Kata negasi dan kata-kata yang

bertentangan (misalnya, tetapi dan namun) juga dipertimbangkan. Ada empat

langkah dalam menentukan orientasi sentimen berdasarkan pendekatan

lexicon yaitu :

1. Tandai kata yang mengandung sentimen : untuk setiap kalimat yang berisi

satu atau lebih kata sentimen, langkah ini menandai semua kata dan frasa

dalam sentimen kalimat. Setiap kata positif diberikan skor sentimen +1

dan setiap kata negatif diberikan skor sentimen -1. Contoh “Kualitas lampu

penerangan ini tidak baik [ +1 ], tapi daya nya tahan lama [ +1 ]". Dari

contoh tersebut kata baik bernilai +1 dan tahan lama bernilai +1 karna

termasuk kata positif.

2. Terapkan sentimen shifter adalah kata-kata dan frase yang dapat

mengubah orientasi sentimen. Ada beberapa jenis shifter kata negasi

seperti tidak, tidak pernah, dan tidak ada adalah jenis yang paling umum.

Berdasarkan hal tersebut kalimat menjadi “Kualitas lampu penerangan ini

tidak baik [ -1 ], tapi daya nya tahan lama [ +1 ]" karena kata negasi " tidak.

" .

3. Agregat : Pada langkah ini berlaku fungsi agregasi pendapat dengan skor

sentimen yang dihasilkan untuk menentukan orientasi akhir dari sentimen.

𝑠𝑐𝑜𝑟𝑒(𝑓) = ∑𝑤𝑖𝑆𝑂

𝑑𝑖𝑠(𝑤𝑖, 𝑓) (𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.3)

Keterangan :

w i SO = Jumlah (socre) fitur ke i setiap sentimen (Positif dan Negatif)

dis (wi,f) = Jumlah fitur yang berhasil ditemukan

Page 38: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

20

UIN Syarif Hidayatullah Jakarta

2.9 Kamus Lexicon

Dalam pendekatan analisis sentimen dengan menggunakan Lexicon,

kamus merupakan komponen penting dalam ekstraksi kata sentimen.

Menggunakan pendekatan kamus untuk mengumpulkan kata-kata sentimen

adalah pendekatan yang jelas karena sebagian besar kamus misalnya,

WordNet mengandung sinonim dan antonim untuk setiap kata. Jadi secara

sederhana, teknik atau pendekatan ini adalah dengan menggunakan beberapa

kata sentimen benih untuk dijadikan acuan dan kemudian dicocokan

berdasarkan sinonimnya dan struktur antonim dari kamus.

Secara khusus, metode ini berfungsi sebagai berikut: Satu set kecil kata

sentimen dengan orientasi positif atau negatif yang diketahui kemudian

dikumpulkan secara manual. Algoritma ini kemudian menghitung banyaknya

kata dengan mencari di WordNet atau kamus lain sesuai dengan sinonim dan

antonimnya. Kata-kata yang ditemukan akan dimasukkan ke dalam daftar

positif atau negatif. Proses berakhir ketika tidak ada kata-kata baru yang dapat

ditemukan. Setelah proses selesai, langkah pemeriksaan digunakan untuk

menghitung agregat positif atau negatif. (Bhonde, 2015)

Kamus yang digunakan dalam pendekatan Lexicon diantaranya kamus

lexicon positif, kamus lexicon negatif, kamus lexicon negasi, KBBI, kamus

kata dasar, dan kamus stopwords.

a. Kamus positif

Kamus positif digunakan untuk meyeleksi kata-kata yang termasuk

kedalam sentimen positif dari suatu kalimat atau query yang akan

ditentukan sentimennya. Kamus positif pada penelitian ini sebanyak 1.182

kata. Sumber data didapatkan dari GITHUB,

https://github.com/masdevid/ID-OpinionWords.

b. Kamus negatif

Kamus negatif digunakan untuk meyeleksi kata-kata yang termasuk

kedalam sentimen negatif dari suatu kalimat atau query yang akan

ditentukan sentimennya. Kamus negatif pada penelitian ini sebanyak 2.402

kata. Sumber data didapatkan dari GITHUB,

https://github.com/masdevid/ID-OpinionWords.

Page 39: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

21

UIN Syarif Hidayatullah Jakarta

c. Kamus negasi

Kamus negasi digunakan untuk mendeteksi suatu kalimat atau query yang

telah ditentukan sentimennya baik positif maupun negatif, apakah

sentimen tersebut diikuti kata negasi. Sentimen yang diikuti kata negasi

akan memiliki perubahan nilai sentimen dari yang sebelumnya. Kamus

negasi yang digunakan pada penelitian ini sebanyak 9 kata. Sumber data

didapatkan dari GITHUB, https://github.com/jakaprata/Analisis-

Sentimen-Twitter-Dengan-Klasifikasi-Naive-Bayes-menggunakan-

PHP/blob/master/negation.txt

d. Kamus kata dasar dan KBBI

Kamus kata dasar dan KBBI digunakan untuk melakukan proses stemming

dalam tahapan natural language processing. Stemming merupakan

pengubahan kata berimbuhan menjadi kata dasar. Dalam proses ini

dibutuhkan kamus kata dasar dan KBBI sebagai penyeleksian kata yang

sesuai. Kamus kata dasar dan KBBI yang digunakan dalam penelitian ini

sebanyak 29.932 kata dan 61.434 kata. Sumber data didapatkan dari

GITHUB :

https://github.com/nolimitid/nolimit-kamus/blob/master/kata-dasar/kata-

dasar-all.txt

https://github.com/geovedi/indonesian-wordlist/blob/master/00-

indonesian-wordlist.lst

e. Kamus stopwords

Kamus stopwords digunakan untuk penyeleksian kata-kata yang dianggap

tidak penting. Proses ini dilakukan untuk mempercepat proses klasifikasi

data. Kamus stopwords yang digunakan dalam penelitian ini sebanyak 756

kata. Sumber data didapatkan dari GITHUB,

https://github.com/masdevid/IDStopwords/blob/master/id.stopwords.02.0

1.2016.txt

2.10 Pembangunan Index

Untuk mendapatkan kata-kata yang digunakan dalam teks tertentu,

dibutuhkan proses tokenization, yaitu dimana dokumen teks dibagi menjadi

Page 40: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

22

UIN Syarif Hidayatullah Jakarta

aliran kata-kata yang terpisah kemudian dengan menghapus semua tanda baca

dan dengan mengganti tab dan karakter non-teks lain dengan spasi tunggal

(Hotho, 2005). Selanjutnya (Hotho, 2005) juga mengatakan untuk dapat

mengurangi ukuran koleksi dokumen dapat dilakukannya proses filtering,

lemmatization dan stemming. Ketiga tahapan tersebut dapat dijelaskan

(Hotho, 2005) sebagaimana berikut:

1. Stopwords yaitu, menghapus kata-kata pada dokumen dimana

penyaringan untuk menghapus kata-kata yang mengganggu informasi

konten, seperti konjungsi, preposisi. Dan juga kata-kata tersebut

cenderung tidak memiliki relevansi statistik tertentu dan dapat dihapus

dari kamus

2. Lemmatization, yaitu mencoba untuk memberikan pola pada kata kerja

dan kata benda tunggal. Namun, untuk mengambarkan hal ini, bentuk

kata harus diketahui, yaitu part of speech (POS) dari setiap kata dalam

dokumen teks harus ditentukan. Karena proses penandaan ini biasanya

cukup memakan waktu dan masih rawan kesalahan, dalam

penggunaanya metode stemming yang diterapkan.

3. Metode stemming mencoba untuk membangun bentuk-bentuk dasar dari

kata kata. Dengan cara ini, diperoleh kelompok kata yang mempunyai

makna serupa tetapi berbeda wujud sintaktis satu dengan lainnya.

Sehingga proses stemming tidak akan merubah makna dari sebuah

dokumen. Namun justru meningkatkan relevansi kemiripan dokumen.

Ada beberapa algoritma yang dapat digunakan untuk stemming dalam

bahasa indonesia, yaitu algoritma Nazief dan Andriani, algoritma Arifin

dan Setiono, algoritma Vega dan algoritma Ahmad, Yussof dan Sembok.

Algoritma Nazief dan Andriani adalah algoritma yang paling efektif

untuk stemming bahasa Indonesia (Agusta, 2009).

Terdapat lima langkah pembangunan inverted index (Bintana, 2012), yaitu:

1. Membangun dokumen yang kemudian akan dihitung index, pada tahapan

berikut hasil dari kumpulan dokumen sering disebut corpus.

Page 41: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

23

UIN Syarif Hidayatullah Jakarta

2. Penghapusan format dan markup dari dalam dokumen. Pada dokumen

yang mempunyai banyak tag markup dan format seperti dokumen

(X)HTML semua format Tag Markup dihapus.

3. Pemisahan rangkaian kata (tokenization). Pada tahap ini seluruh kata

(term) pada dokumen dipisahkan menjadi potongan kata tunggal.

Selanjutnya tahapan ini juga akan menghilangkan karakter-karakter

tertentu, yang tidak mewakili atau dapat mengurangi relevansi seperti

tanda baca dan mengubah bentuk huruf menjadi kecil.

4. Melakukan linguistic preprocessing untuk menghasilkan daftar kata

(term) yang ternormalisasi. Dua hal yang dilakukan dalam tahap ini

adalah:

5. Mengindeks dokumen (indexing). indexing dilakukan dengan membuat

inverted index yang terdiri dari dictionary dan postings. Inverted index

merupakan konversi dari dokumen asli yang mengandung sekumpulan

kata ke dalam daftar kata (dictionary) yang memiliki hubungan dengan

dokumen terkait dimana kata-kata tersebut muncul (postings).

Dictionary adalah daftar kata yang diperoleh dari hasil pengindeksan

koleksi dokumen.

2.11 Pembobotan Kata

Setiap term yang telah di-index diberikan bobot sesuai dengan struktur

pembobotan yang dipilih, apakah pembobotan lokal, global atau kombinasi

keduanya. Jika menggunakan pembobotan lokal maka, pembobotan term

diekspresikan sebagai tf (term frequency). Namun, jika pembobotan global

yang digunakan maka, pembobotan term didapatkan melalui nilai idf (inverse

document frequency). Beberapa aplikasi juga ada yang menerapkan

pembobotan kombinasi keduanya yaitu, dengan mengalikan bobot lokal dan

global (tf . idf) (Bintana, 2012).

1. Term Frekuency

Empat cara yang dapat digunakan untuk memperoleh nilai term

frequency (tf), yaitu:

a. Raw term frequency. Nilai tf sebuah term diperoleh berdasarkan jumlah

kemunculan term tersebut dalam dokumen. Contoh kasus dimana term

Page 42: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

24

UIN Syarif Hidayatullah Jakarta

muncul sebanyak dua kali dalam suatu dokumen maka, nilai tf term

tersebut adalah 2.

b. Logarithm term frequency. Hal ini untuk menghindari dominasi

dokumen yang mengandung sedikit term dalam query, namun

mempunyai frekuensi yang tinggi. Cara ini menggunakan fungsi

logaritmik matematika untuk memperoleh nilai tf.

tf = 1 + log(tf)

c. Binary term frequency. Hanya memperhatikan apakah suatu term ada

atau tidak dalam dokumen. Jika ada, maka tf diberi nilai 1, jika tidak ada

diberi nilai 0. Pada cara ini jumlah kemunculan term dalam dokumen

tidak berpengaruh.

d. Augmented Term Frequency. Nilai tf adalah jumlah kemunculan suatu

term pada sebuah dokumen, sedangkan nilai max(tf) adalah jumlah

kemunculan terbanyak sebuah term pada dokumen yang sama.

𝑡𝑓 = 0.5 + 0.5 ×𝑡𝑓

𝑚𝑎𝑥(𝑡𝑓) (𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.4)

2. Inverse Document Frekuency

Inverse document frequency (idf) digunakan untuk memberikan tekanan

terhadap dominasi term yang sering muncul di berbagai dokumen. Hal

ini diperlukan karena term yang banyak muncul di berbagai dokumen,

dapat dianggap sebagai term umum (common term) sehingga tidak

penting nilainya. Pembobotan akan memperhitungkan faktor kebalikan

frekuensi dokumen yang mengandung suatu term (inverse document

frequency).(Oktinas,2017)

𝑖𝑑𝑓(𝑡) = log (𝑛

𝑑𝑓(𝑡)) (𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.5)

Keterangan :

n = jumlah dokumen dalam corpus

df(t) = document frekuency / jumlah dokumen dalam corpus yang

mengandung term t

Page 43: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

25

UIN Syarif Hidayatullah Jakarta

2.12 Algoritma Naive Bayes

Metode naïve bayes memanfaatkan probabilitas atau nilai

kemungkinan. Konsep dasar yang digunakan oleh naïve bayes adalah teorema

bayes, yaitu melakukan klasifikasi dengan melakukan perhitungan nilai

probabilitas p(c), yaitu probabilitas kelas jika diketahui dokumen

(Yosyaningsih, 2015).

Naive bayes menganggap sebuah dokumen sebagai kumpulan dari kata-

kata yang menyusun dokumen tersebut, dan tidak memperhatikan urutan

kemunculuan kata pada dokumen perhitungan probabilitasnya dapat

dianggap sebagai hasil perkalian dari probabilitas kemunculan kata-kata pada

dokumen (Yosyaningsih, 2015).

Probabilitas sebuah dokumen berada di kelas c dapat dihitung

menggunakan rumus posterior probability sebagai berikut: (Rossi, 2017)

𝑃(𝑐𝑗|𝑤𝑖) = 𝑃(𝑐𝑗)𝑥𝑃(𝑤1|𝑐𝑗)𝑥 … 𝑥𝑃(𝑤𝑘|𝑐𝑗) (𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.6)

Keterangan:

1. P(Cj|Wi) = Posterior Probability adalah peluang kemunculan hasil dari

prior dan likelihood untuk menentukan kategori sebuah kelas (dokumen).

2. P(Cj) = Prior Probability adalah peluang kemunculan tiap kelas

3. P(Wi|Cj) = Conditional Probability (Likelihood) adalah peluang kata-kata

pada kelas (dokumen) tertentu

Persamaan prior probability P(c) adalah sebagai berikut:

𝑃(𝑐) = 𝑁𝑐

𝑁 (𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.7)

Keterangan:

1. Nc adalah Jumlah dokumen kelas c dalam training

2. N adalah jumlah keseluruhan dokumen training dari seluruh kelas

Kemudian untuk persamaan conditional probability P(w|c) adalah sebagai

berikut: (Rossi, 2017)

𝑃(𝑤𝑖|𝑐𝑗) = 𝑐𝑜𝑢𝑛𝑡(𝑤𝑖, 𝑐𝑗) + 1

(∑ 𝑐𝑜𝑢𝑛𝑡𝑤∈𝑣 (𝑤, 𝑐𝑗)) + |𝑉| (𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.8)

Page 44: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

26

UIN Syarif Hidayatullah Jakarta

Keterangan :

1. 𝑐𝑜𝑢𝑛𝑡(𝑤𝑖, 𝑐𝑗) adalah jumlah dokumen latih yang masuk ke dalam

kategori class, angka 1 ditambahkan untuk menghindari nilai nol.

2. ∑ 𝑐𝑜𝑢𝑛𝑡𝑤∈𝑣 (𝑤, 𝑐𝑗) adalah jumlah kemunculan kata pada semua kategori

class.

3. |𝑉| adalah jumlah kata unik pada seluruh kategori

2.13 Algoritma K-Nearest Neighbor (K-NN)

K-NN adalah algoritma untuk mengklasifikasi objek baru berdasarkan

atribut dan training samples (data latih). Dimana hasil dari sampel uji yang

baru diklasifikasikan berdasarkan mayoritas dari kategori pada K-NN.

Algoritma K-NN menggunakan klasifikasi ketetanggaan sebagai nilai

prediksi dari sampel uji yang baru (Krisandi, dkk. 2013). Data latih akan

dibangun dengan memperhatikan keseimbangan dokumen satu sama lain.

Adapun algoritma K-NN dapat dijelaskan (Oktinas, 2017) dengan keterangan

berikut :

a. Hitung jarak antara data sampel (data uji) dengan data latih yang telah

dibangun. Salah satu persamaan dalam menghitung jarak kedekatan

dapat menggunakan persamaan Cosine Similarity.

b. Menentukan parameter nilai k = jumlah tetanggaan terdekat.

c. Mengurutkan jarak terkecil dari data sample

d. Pasangkan kategori sesuai dengan kesesuaian

e. Cari jumlah terbanyak dari tetanggaan terdekat. Kemudian tetapkan

kategori.

Jarak yang digunakan dalam penelitian ini adalah Cosine Similarity.

𝐶𝑜𝑠(𝑖, 𝑘) =∑ 𝑘 (𝑑𝑖. 𝑑𝑘)

√∑ 𝑘 𝑑𝑖𝑘2 √∑ 𝑘 𝑑𝑗𝑘

2

(𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.9)

Keterangan :

∑ 𝑘 (𝑑1 𝑑𝑘) = vektor dot produk dari i dan k

√∑ 𝑘 𝑑𝑖𝑘2 = panjang vektor i

Page 45: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

27

UIN Syarif Hidayatullah Jakarta

√∑ 𝑘 𝑑𝑗𝑘2 = panjang vektor k

Algoritma K-NN (Krisandi, dkk. 2013) adalah algoritma yang

menentukan nilai jarak pada pengujian data testing dengan data training

berdasarkan nilai terkecil dari nilai ketetanggaan terdekat didefinisikan

sebagai berikut:

𝐷𝑛𝑛(𝑐1 𝑐2) = 𝑚𝑖𝑛1≤𝑖≤𝑟,1≤𝑗≤𝑠𝑑(𝑦𝑖, 𝑧𝑖) (𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.10)

2.14 Confusion Matrix

Dalam mengukur tingkat akurasi sistem orientasi sentimen, maka

digunakan tabel confussion matrix. Confusion matrix adalah sebuah tabel

yang menyatakan jumlah data uji yang benar diklasifikasikan dan jumlah data

uji yang salah diklasifikasikan. Contoh confusion matrix untuk klasifikasi

biner ditunjukkan pada tabel 2.2 berikut:

Tabel 2. 2 Confusion Matrix

Kelas Sebenarya Kelas hasil prediksi

Positif = 1 Negatif = 0

Positif = 1 TP FN

Negatif = 0 FP TN

Keterangan untuk tabel diatas dinyatakan sebagai berikut :

1. True Posstive (TP), yaitu jumlah dokumen dari kelas 1 yang benar dan

diklasifikan sebagai kelas 1.

2. True Negative (TN), yaitu jumlah dokumen dari kelas 0 yang benar

diklasifikasikan sebagai kelas 0.

3. False Positive (FP), yaitu jumlah dokumen dari kelas 0 yang salah

diklasifikasikan sebagai kelas 1.

4. False Negative (FN) yaitu jumlah dokumen dari kelas 1 yang salah

diklasifikasikan sebagai kelas 0.

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 𝑇𝑃 + 𝑇𝑁

𝑇𝑃 + 𝐹𝑁 + 𝐹𝑃 + 𝑇𝑁 (𝑃𝑒𝑟𝑠𝑎𝑚𝑎𝑎𝑛 2.11)

Page 46: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

28

UIN Syarif Hidayatullah Jakarta

2.15 Metode Simulasi

Simulasi adalah suatu metodologi untuk melaksanakan percobaan

dengan menggunakan model dari suatu sistem nyata. Menurut Hasan (2002),

simulasi merupakan suatu metode pengambilan keputusan dengan mencontoh

atau mempergunakan gambaran sebenarnya dari suatu sistem kehidupan

dunia nyata tanpa harus mengalaminya pada keadaaan yang sesungguhnya.

Simulasi adalah suatu teknik yang dapat digunakan untuk memecahkan

model-model dari golongan yang luas. Golongan atau kelas ini sangat luasnya

sehingga dapat dikatakan “Jika semua cara yang lain gagal, cobalah simulasi”

(Schroeder, 1997)

Ada berbagai jenis lifecycle menurut Madani (2010) yang dapat

digunakan untuk studi pada pemodelan dan simulasi. Terdapat langkah-

langkah dasar yang harus dipertimbangkan dalam melakukan studi simulasi.

Lifecycle tidak harus diartikan sebagai sebuah sekuensial yang strict, bersifat

iteratif, dan kadang juga bertransisi dalam arah yang berlawanan. Demikian

juga, beberapa langkah terkadang dapat dilewati atau di-skip sesuai dengan

kompleksitas aplikasi. Hal ini sangat dianjurkan untuk menggunakan siklus

spiral dengan pengembangan incremental yaitu pada langkah 2-8, yang dapat

menyebabkan revisi untuk fase sebelumnya. Setiap fase dalam siklus spiral

harus berakhir sebuah prototipe yang sudah dapat bekerja yang sudah lebih

fungsionalitas dari siklus sebelumnya.

Madani et al (2010) meberikan suatu tahapan dalam melakukan studi

simulasi. Adapun tahapan-tahapan tersebut adalah sebagai berikut.

2.14.1 Problem Formulation

Setiap studi seharusnya dimulai dengan statemen terhadap masalah.

Proses simulasi dimulai dengan masalah yang memerlukan pemecahan atau

pemahaman. Sebagai contoh seperti kasus sebuah perusahaan kargo mencoba

untuk mengembangkan strategi baru untuk truk pengiriman atau astronom

mencoba untuk memahami bagaimana nebula terbentuk. Pada tahap ini, harus

dipahami perilaku dari sebuah sistem, organize operasi sistem sebagai obyek

dalam rangka percobaan. Kemudian perlu dianalisis berbagai alternatif solusi

dengan menyelidiki hasil sebelumnya untuk masalah yang sama. Solusi yang

Page 47: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

29

UIN Syarif Hidayatullah Jakarta

paling diterima harus dipilih (menghilangkan tahap ini dapat menyebabkan

pemilihan solusi yang salah). Jika masalah melibatkan analisis kinerja, ini

adalah titik di mana bisa didefinisikan metrik kinerja (berdasarkan variabel

output) dan fungsi tujuan (yaitu, kombinasi dari beberapa metrik) (Madani et

al., 2010).

2.14.2 Conceptual Model

Langkah ini terdiri dari pengembangan deskripsi tingkat tinggi dari

struktur dan perilaku atau behavior sebuah sistem dan mengidentifikasi

semua benda dengan atribut dan interface mereka. Pada tahap ini harus

ditentukan apa saja variabel statenya, bagaimana mereka berhubungan, dan

mana yang penting untuk penelitian. Pada langkah ini, aspek-aspek kunci dari

requierements dinyatakan. Selama definisi model konseptual, perlu

diungkapkan fitur yang penting. Kemudian mendokumentasikan informasi-

untuk non-fungsional misalnya, perubahan masa depan, perilaku unintuitive,

dan hubungan sistem dengan lingkungan (Madani et al., 2010).

2.14.3 Collection of Input/Output Data

Pada tahap ini, kita harus mempelajari sistem untuk memperoleh data

input / output. Untuk melakukannya, harus diamati dan mengumpulkan

atribut yang dipilih pada tahap sebelumnya. Isu penting lainnya selama fase

ini adalah pemilihan ukuran sampel yang valid secara statistik dan format data

yang dapat diproses dengan komputer. Akhirnya, kita harus memutuskan

mana atribut yang stokastik dan yang deterministik. Dalam beberapa kasus,

tidak ada sumber data yang bisa dikumpulkan (misalnya, untuk sistem yang

belum ada). Dalam kasus tersebut, kita perlu mencoba untuk mendapatkan set

data dari sistem yang sama (jika tersedia). Pilihan lain adalah dengan

menggunakan pendekatan stokastik untuk menyediakan data yang diperlukan

melalui generasi nomor acak (Madani et al., 2010).

2.14.4 Modelling Phase

Pada tahap pemodelan, kita harus membangun representasi rinci dari

sistem berdasarkan model konseptual dan koleksi data yang dikumpulkan.

Model ini dibangun dengan mendefinisikan objek, atribut, dan metode

menggunakan paradigma yang dipilih. Pada titik ini, spesifikasi model dibuat,

Page 48: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

30

UIN Syarif Hidayatullah Jakarta

termasuk set persamaan yang mendefinisikan perilaku dan struktur. Setelah

menyelesaikan definisi ini, kita harus berusaha untuk membangun struktur

awal model (mungkin berkaitan variabel sistem dan metrik kinerja). Harus

berhati-hati dalam menjelaskan setiap asumsi dan penyederhanaan dan juga

dalam mengumpulkan atribut ke EF (Entity Framework) model (Madani et

al., 2010).

2.14.5 Simulation Phase

Selama tahap simulasi, kita harus memilih mekanisme untuk

menerapkan model (dalam banyak kasus menggunakan komputer dan bahasa

pemrograman yang memadai serta tools yang tepat), dan model simulasi yang

dibangun. Selama langkah ini, mungkin diperlukan untuk menentukan

algoritma dan menerjemahkannya ke dalam program komputer. Pada tahap

ini, kita juga harus membangun model EF untuk proses simulasi (Madani et

al., 2010).

2.14.6 Verification, Validation and Experimentation

Pada tahap-tahap sebelumnya, tiga model yang berbeda dibangun:

model konseptual (spesifikasi), model sistem (desain), dan model simulasi

(executable program). Kita perlu untuk memverifikasi dan memvalidasi

model ini. Verifikasi terkait dengan konsistensi internal antara tiga model.

Validasi difokuskan pada korespondensi antara model dan realitas: adalah

hasil simulasi yang konsisten dengan sistem yang dianalisis. Sementara itu

pada fase experimentation, kita harus mengevaluasi hasil dari simulator,

menggunakan korelasi statistik untuk menentukan tingkat presisi untuk

metrik kinerja. Fase ini dimulai dengan desain eksperimen, dengan

menggunakan teknik yang berbeda. Beberapa teknik ini meliputi analisis

sensitivitas, optimasi,dan seleksi (dibandingkan dengan sistem alternatif)

(Madani et al., 2010).

2.14.7 Output Analysis Phase

Pada tahap analisis output, output simulasi dianalisis untuk

memahami perilaku sistem. Output ini digunakan untuk memperoleh

tanggapan tentang perilaku sistem yang asli. Pada tahap ini, alat visualisasi

dapat digunakan untuk membantu proses tersebut. Tujuan dari visualisasi

Page 49: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

31

UIN Syarif Hidayatullah Jakarta

adalah untuk memberikan pemahaman yang lebih dalam tentang sistem yang

sedang diselidiki dan membantu dalam mengeksplorasi set besar data

numerik yang dihasilkan oleh simulasi (Madani et al., 2010).

Page 50: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

32

UIN Syarif Hidayatullah Jakarta

BAB III

METODE PENELITIAN

3.1 Metode Pengumpulan Data

Pada penelitian ini penulis mengumpulkan data dan informasi yang

dapat menunjang proses dalam penelitian dimana proses pengumpulan data

sebagai berikut

3.1.1 Studi Pustaka

Studi pustaka dilakukan dengan pengumpulan teori-teori yang

berkaitan dengan penulisan skripsi sebagai bahan untuk melengkapi

penelitian ini. Sumber teori berasal dari buku referensi, hasil penelitian

(jurnal dan skripsi) dan artikel-artikel terkait. Selain itu peneliti juga

mengunjungi situs-situs yang terkait aplikasi natural language processing,

text mining, pendekatan lexicon dan algoritma klasifikasi tentang Naive

Bayes dan K-Nearest Neighbor (K-NN).

3.1.2 Observasi

Peneliti melakukan observasi data dari Twitter API tentang komentar

netizen terhadap salah satu calon pilpres 2019 joko widodo pada pemilihan

calon pilpres di tahun 2019. Crawling data dimulai dari tanggal 08 februari

2018 hingga 24 febuari 2018 kemudian crawling kedua dimulai tanggal 12

juni sampai 08 agustus 2018. Pengambilan data memanfaatkan fitur dari

twitter yang diperuntukkan untuk developer yang terdapat pada website

https://developers.twitter.com/. Setelah data didapatkan dari twitter API

dalam bentuk XML, kemudian data tersebut disimpan langsung menuju ke

database MySql.

3.1.3 Studi Literatur

Merupakan sumber data sekunder dalam penelitian. Studi literatur

dilakukan dengan pengumpulan teori-teori yang berkaitan dengan penulisan

riset sebagai bahan untuk melengkapi penelitian. Sumber teori berasal dari

buku referensi, hasil penelitian (jurnal dan skripsi), artikel terkait. Pustaka-

pustaka yang dijadikan acuan dapat dilihat di daftar pustaka. Pustaka-pustaka

yang dijadikan acuan dapat dilihat di daftar pustaka sebanyak 16 studi pustaka

yang terdiri dari 1 buku, 1 e-book, 10 jurnal, 4 sumber literatur elektronik.

Page 51: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

33

UIN Syarif Hidayatullah Jakarta

Tabel 3. 1 Tabel Penelitian Sejenis

Judul

Penelitian

Nama Peneliti,

Tahun Tahapan yang

digunakan

Kesimpulan

Analisis

Sentimen Calon

Gubernur DKI

Jakarta 2017

Ghulam Asrofi

Buntoro, 2015

1. PreProcessing

a. Tokenizing,

b. Normalisasi

c. Cleansing

2. POS Tagger

3. Klasfikasi

a Naive bayes

b SVM

Pada tahap pre processing

banyak menggunakan

metode NLP seperti

seleksi komentar,

normalisasi, parsing yang

menyebabkan nilai akurasi

pada kedua algoritma

yaitu SVM dan Naive

bayes memiliki akurasi

paling tinggi 95% dan 90

%. Dataset yang

digunakan opini warga net

tentang pilkada dan

memiliki kekurangan

yaitu membutuhkan waktu

proses yang lebih lama

pada saat pengujian,

besarnya data latih tidak

meningkatkan akurasi

sistem

Analisis

Sentimen Pada

Acara Televisi

Menggunakan

Improved K-

Nearest

Neighbor

Willa Oktinas,

2017

1. PreProcessing

a Cleansing

b Filtering

c Tokenizing,

d Stopword

removal

e Stemming

2. Fitur Seleksi

a TF-IDF

Hasil Akurasi terbesar

yang didapat pada saat

k=10 sebesar 90%

,Menggunakan Cosine

Similarity. Dan memiliki

kekurangan

membutuhkan waktu

proses yang lebih lama

pada saat pengujian

Page 52: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

34

UIN Syarif Hidayatullah Jakarta

3. Klasifikasi

a K-NN (Cosine

Similarity)

Machine

Learning and

Lexicon based

Methods for

Sentiment

Classifcation :

A Survey

Hailong Zhang,

Wenyan Gan,

Bo Jiang, 2014

- Membandingkan berbagai

macam algoritma untuk

sentimen klasifikasi baik

dari metode supervised

seperti svm dan naive

bayes hingga

unsupervised seperti

lexicon. Pada proses

perbandingan meskipun

membandingkan proses

supervised dan

unsupervised namun tidak

ada survey mencoba

analisa kombinasi dari

kedua metode tersebut.

Sentiment

Analyst of

Review

Datasets Using

Naive Bayes

and K-NN

Classifier

Lopamudra

Dey, Sanjay

Chakraborty,

Anuraag

Biswas,Sweta

Tiari, 2016

1. Preprocessing

2. Klasifikasi

a Naive Bayes

b K-NN

Hasil Akurasi paling

tinggi yang didapat pada

algoritma Naive Bayes

sebesar 81% dan pada K-

NN sebesar 69% dan

Kurangnya tahapan proses

Text Preprocessing

menyebabkan noise

dataset yang tinggi

berpengaruh pada nilai

akurasi klasifikasi

Sentiment

Analysis : A

Comparative on

Devika M D,

Sunitha C,

- Studi Perbandingan

analisis sentimen dari

berbagai pendekatan baik

Page 53: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

35

UIN Syarif Hidayatullah Jakarta

Different

Approaches

Amal Ganesh,

2016

dari unsupervised learning

dan supervised learning

dengan tujuan melihat

seluruh kelebihan dari

berbagai algoritma

klasifikasi salah satunya

naive bayes dengan

kelebihan merupakan

algoritma yang mudah

digunakan dalam

klasifikasi, cocok dengan

jumlah data yang sedikit.

Kemudian K-NN dengan

kelebihan klasifikasi data

dalam jumlah besar.

3.2 Metode Simulasi

Metode yang digunakan pada penelitian ini yakni metode simulasi,

berikut langkah-langkah metode simulasi.

3.2.1 Problem Formulation (Formulasi Masalah)

Pada tahap formulasi masalah penulis melakukan identifikasi masalah

dari hasil penelitian sebelumnya. Pada penelitian (asrofi,2016) masalah

utama yaitu melakukan perbandingan klasifikasi naive bayes dengan svm

menggunakan data berupa sentimen yang diambil dari tweet berhubungan

dengan pemilihan gubernur DKI Jakarta 2017, Kemudian penelitian kedua

(Oktinas,2017) menjelaskan analisis sentimen dengan menggunakan

pembobotan tf-idf serta algoritma K-NN cosine similarity, dan pada penelitian

ketiga (Zhang,2014) yaitu perbandingan algoritma salah satunya lexicon

dalam sentimen analisis serta menguji akurasi algoritma dengan beberapa

penambahan seleksi fitur dan tahap preprocessing. Dan penelitian keempat

(Lopamudra,2016) yaitu membandingkan penggunaan algoritma klasifikasi

k-nearest neighbor dengan naive bayes dengan beberapa dataset.

Page 54: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

36

UIN Syarif Hidayatullah Jakarta

3.2.2 Conceptual Model (Pemodelan Konsep)

Dalam penelitian ini pemodelan konsep membahas keseluruhan

penelitian. Pertama dengan identifikasi input dalam penelitian yaitu hasil

observasi data melalui media sosial twitter dengan menggunakan teknik

crawling data dan disimpan ke dalam database. Kedua klasifikasi sentimen

pada data latih menggunakan bantuan metode lexicon untuk memudahkan

pemberian label sentimen pada data latih. Kemudian masuk tahap klasifikasi

yaitu: data uji hasil crawling data setelah masuk tahap Pre-Processing di

proses satu per satu menggunakan algoritma pengujian naive bayes dan K-

NN. Hasil dari pengujian dihitung kemudian dapat dibandingkan tingkat

akurasi, presisi dan recall.

3.2.3 Collection of Input/Output Data (Pengumpulan Masukan atau

Keluaran Data)

Data yang berupa tweet diambil dari Twitter API sebanyak 1000

tweet. Jangka waktu pengambilan tweet berlangsung dari 19 April hingga 30

Juli 2018. Tweet yang diambil dengan crawling dijadikan sebagai input

penelitian. Kemudian data input tersebut di klasifikasi menggunakan

algoritma naive bayes dan K-NN dengan data latih sebanyak 900 kemudian

dibagi sebanyak 300 pada setiap kelas sentimen. Hasil klasifikasi tersebut

menghasilkan output berupa tingkat akurasi dari masing-masing algoritma

dengan melakukan pengujian klasifikasi sebanyak 100 tweet data uji.

3.2.4 Modeling Phase (Tahap Permodelan)

Pada tahap pemodelan, penulis membuat rancangan model sistem

yang akan dibuat. Pemodelan yang dibuat yaitu pemodelan pedekatan lexicon

sebagai metode pemberian label otomatis pada data latih dan pemodelan

dengan algoritma naive bayes dan K-NN untuk klasifikasi data uji.

3.2.5 Simulation Phase (Tahap Simulasi)

Penulis melakukan simulasi dengan membuat web sentimen

kemudian membandingkan algoritma klasifikasi Naive Bayes dan K-NN.

Simulasi fitur-fitur pada web sentimen yaitu memilih data mentah yang

diambil dari database Mysql untuk dianalisa dan diklasifikasi sentimennya.

Page 55: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

37

UIN Syarif Hidayatullah Jakarta

Kemudian hasil dari klasifikasi dapat dibandingkan untuk mengetahui tingkat

akurasi setiap algoritma baik naive bayes dan K-NN.

3.2.6 Conclusion (Verification, Validation, and Experimentation)

Untuk membuat kesimpulan terlebih dahulu dilakukan verifikasi,

validasi, dan eksperimen. Validasi dan verifikasi tujuannya untuk

meyakinkan hasil dari perbandingan klasifikasi naive bayes dan K-NN sesuai

dengan yang konsep sebelumnya. Sedangkan eksperimen bertujuan untuk

mengevaluasi hasil simulasi.

3.2.7 Output Analysis Phase (Fase Analisa Hasil)

Penulis melakukan analisa terhadap hasil output berdasarkan skenario

yang dilakukan yaitu melakukan perbandingan dengan hasil klasifikasi

algoritma naive bayes dan K-NN dengan model data latih seimbang 300

sentimen positif, 300 negatif, dan 300 netral, serta menghitung hasil akurasi

dari kedua algoritma tersebut.

3.3 Skenario Pengujian

Setelah aplikasi sudah menjadi suatu perangkat lunak yang siap untuk

dipakai, maka perlu dilakukan pengujian terhadap aplikasi tersebut. Skenario

pengujian yang dilakukan adalah sebagai berikut.

1. Pengujian kombinasi algoritma Naive Bayes dan K-NN dengan labelling

pendekatan Lexicon. Pengujian ini dilakukan untuk mengklasifikasikan

data uji ke dalam kelas sentimen positif, negatif atau netral menggunakan

algoritma Naive Bayes dan K-NN menggunakan data latih hasil labelling

pendekatan Lexicon. Pengujian dilakukan berdasarkan penentuan nilai k

pada algoritma K-NN yaitu k=1, k=3, k=5, k=9, k=10. Perhitungan

tingkat akurasi, presisi, recall, dan f-measure akan ditentukan dengan

menggunakan model confusion matrix dari kombinasi algoritma tersebut

2. Pengujian peningkatan algoritma Naive Bayes dan K-NN dengan

pendekatan Lexion dibandingkan dengan algoritma Naive Bayes dan K-

NN. Pengujian ini dilakukan untuk mengetahui sejauh mana tingkat

akurasi penggunaan pendekatan Lexicon pada data latih klasfikasi Naive

Bayes dan K-NN dalam menentukan orientasi sentimen dibandingkan

dengan algoritma Naive Bayes dan K-NN tanpa pendekatan Lexicon.

Page 56: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

38

UIN Syarif Hidayatullah Jakarta

3.4 Alur Penelitian

Alur Penelitian merupakan suatu alur diagram yang menjelaskan proses

berjalannya sebuah penelitian. Dalam penelitian ini, penulis mengacu pada

kerangka penelitian gambar 3.1 sebagai berikut:

Gambar 3. 1 Alur Penelitian

Page 57: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

39

UIN Syarif Hidayatullah Jakarta

BAB IV

IMPLEMENTASI

4.1 Problem Formulation

Berdasarkan ketiga penelitian sebelumnya (sub bab 3.2.1), didapatkan

kesimpulan bahwa sentimen analisis dilakukan dengan membandingkan

algoritma Naive Bayes dan K-NN sebagai klasifikasi. Kemudian pada data

latih klasifikasi sentimen dibantu dengan metode lexicon untuk

mempermudah pemberian label secara otomatis dengan jumlah data latih

sebasar 900 dan data uji sebesar 100. Dilanjutkan pada tahap klasifikasi naive

bayes dan K-NN menggunakan seluruh jumlah data latih sebesar 900 dengan

100 data uji.

4.2 Conceptual Model

Berdasarkan Conceptual Model pada Subbab 3.2.2, berikut ini

merupakan alur dari penelitian ini.

4.2.1 Conceptual Model Crawling Data

Crawling data merupakan tahap awal berupa pengumpulan data untuk

diproses menuju tahap text mining. Dalam proses crawling data penggunaan

twitter API sebagai sarana dan pintu untuk mengambil data berupa tweet dari

media sosial twitter. Berikut adalah langkah-langkah dari setiap tahap

crawling data :

1. Koneksi API merupakan tahap awal untuk melakukan crawling data.

Koneksi API digunakan oleh aplikasi dengan cara menghubungkan

database dengan twitter API. Kemudian bahasa pemrograman yang

digunakan adalah PHP.

2. Registrasi adalah tahap kedua dari conceptual model crawling data.

Registrasi yang dimaksud setelah tahap koneksi API berupa registrasi

akun sebagai developer twitter untuk memperoleh akses penggunaan

twitter API. Website untuk registrasi adalah developer.twitter.com.

3. Otentikasi adalah tahap ketiga dari conceptual model crawling data.

Setelah berhasil melakukan registrasi sebagai developer twitter pada

website developer.twitter,com , pengguna dapat membuat access kepada

twitter API dengan menggunakan 4 kode yang diberikan untuk 1 aplikasi

Page 58: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

40

UIN Syarif Hidayatullah Jakarta

API key, API secret key, Access token , Access token secret. Dengan

menggunakan akses web service yang diberikan pengguna dapat

mengambil sumber data baik tweet, tanggal, bahkan nama akun dengan

bahasa pemrograman dan aplikasi apapun dengan catatan menggunakan

ketentuan yang ada dalam website developer.twitter.com. Berikut

gambar 4.1 dan gambar 4.2 merupakan contoh otentikasi setelah

registrasi berhasil, yaitu :

Gambar 4. 1 Setelah registrasi

Gambar 4. 2 Otentikasi access token

4. Mengambil data tweet, setelah otentikasi berhasil data tweet dapat

diakses lewat twitter API namun memiliki kekurangan hanya maksimal

100 data tweet untuk sekali pengunaan bagi pengguna non premium.

Page 59: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

41

UIN Syarif Hidayatullah Jakarta

Gambar 4. 3 Contoh hasil crawling data

Gambar 4. 4 Flowchart Conceptual Model Crawling Data

Page 60: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

42

UIN Syarif Hidayatullah Jakarta

4.2.2 Conceptual Model Pendekatan Lexicon

Dalam analisis sentimen tahap penggunaan pendekatan lexicon

sebagai cara mempermudah pemberian label data latih secara otomatis setelah

proses crawling berhasil. Berikut adalah langkah-langkah dari setiap tahap

penggunaan pendekatan lexicon beserta dengan rich picture pada gambar 4.5

Sebagai berikut :

Gambar 4. 5 Alur Klasifikasi Lexicon

1. Case Folding merupakan tahap awal setelah teks (komentar pada twitter)

berupa hasil crawling didapatkan. Teks diproses oleh aplikasi dengan

merubah seluruh karakter huruf menjadi huruf kecil. Berikut merupakan

gambaran hasil setelah tahap case folding, yaitu :

Gambar 4. 6 Tahap case folding

Page 61: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

43

UIN Syarif Hidayatullah Jakarta

2. Filtering merupakan tahap penghapusan URL, @hastag, karakter pada

dokumen setelah tahap case folding menggunakan jenis karakter UTF-8.

Berikut merupakan gambaran hasil setelah tahap filtering, yaitu:

Gambar 4. 7 Tahap filtering

3. Tokenizing merupakan proses dimana dalam satu dokumen dipecah

menjadi token-token dengan batas spasi. Contoh dari gambar 4.6 satu

dokumen isi kalimat : enak banget nyebut org gitu niru siapa pak setelah

melewati tahap tokenizing dokumen berubah menjadi penggalan kata

sebanyak 8 kata terdiri dari enak, banget, nyebut, org, gitu, niru, siapa,

pak.

4. Normalisasi kata. normalisasi dilakukan dua kali. Pertama normalisasi

kata yang memiliki kata berlebih dan tidak sesuai dengan standar ejaan

KBBI. Kedua normalisasi kata tidak baku yang diubah menjadi kata baku

sesuai dengan ejaan KBBI. Berikut merupakan langkah-langkah tahap

normalisasi, yaitu :

a. Cari kata yang akan dinormalisasi dalam kamus. Jika ditemukan maka

diasumsikan bahwa kata tersebut adalah kata dasar, maka algoritma

berhenti.

b. Jika tidak ditemukan hapus huruf berlebih dimulai untuk setiap huruf

pada kata. Periksa huruf pertama pada kata tersebut, kemudian lakukan

penyimpanan, lalu periksa huruf selanjutnya jika huruf sama dengan

huruf sebelumnya maka hapus huruf tersebut, jika tidak simpan huruf dan

lakukan hal yang sama pada huruf selanjutnya.

c. Jika telah diperiksa untuk setiap huruf, periksa kembali kata hasil proses

sebelumnya pada kamus.

Page 62: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

44

UIN Syarif Hidayatullah Jakarta

d. Jika ditemukan maka algoritma berhenti, jika tidak ditemukan algoritma

akan mengembalikan kata yang asli sebelum dilakukan penghapusan

huruf berlebih.

Proses normalisasi dapat digambarkan dengan flowchart gambar 4.8

dan hasil dari tahap normalisasi pada gambar 4.9 sebagai berikut.

Gambar 4. 8 Flowchart normalisasi

Page 63: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

45

UIN Syarif Hidayatullah Jakarta

Gambar 4. 9 Hasil tahap normalisasi

5. Ekstrasi Keyword. Tahap selanjutnya adalah mengekstrasi kata-kata

yang memiliki sentimen positif dan negatif dengan membandingkanya

dengan kamus lexicon positif, negatif dan negasi.

6. Menentukan Sentimen. Setelah keyword berhasil diekstrak, selanjutnya

masing-masing kelas sentimen yaitu sentimen positif dan negatif

dihitung kemunculannya. Jumlah kelas sentimen terbanyak, maka akan

diambil sentimennya. Contohnya pada tabel 4.2 score penjumlahan

lexicon nilai diberikan pada setiap kata yang sesuai dengan kamus

lexicon jika kata sesuai dengan kamus positif maka akan diberikan score

+1 ,kemudian jika sesuai dengan kamus negatif diberikan score -1 dan

ketika ada kata yang tidak sesuai dengan kamus positif dan negatif

diberikan score 0. Pada contoh gambar 4.2 kemunculan kata positif lebih

banyak dibandingkan negatif di dalam tweet tersebut dengan jumlah

seluruh score +1 maka dokumen tersebut memiliki sentimen positif,

begitupun sebaliknya pada sentimen negatif.

Tabel 4. 1 score penjumlahan lexicon

Kata Score

enak 1

Sekali 0

nyebut 0

org 0

Page 64: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

46

UIN Syarif Hidayatullah Jakarta

gitu 0

niru 0

siapa 0

pak 0

jumlah 1

Gambar 4. 10 Conceptual Model Pendekatan Lexicon

4.2.3 Conceptual Model Klasifkasi Naive Bayes

Dalam analisa sentimen tahap klasifikasi naive bayes digunakan untuk

klasifikasi dokumen data uji setelah tahap sebelumnya berupa klasifikasi data

latih dengan pendekatan lexicon dilakukan. Berikut adalah langkah-langkah

dari setiap tahap penggunaan pendekatan klasifikasi naive bayes beserta rich

picture pada gambar 4.11 sebagai berikut:

Page 65: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

47

UIN Syarif Hidayatullah Jakarta

Gambar 4. 11 Alur klasifikasi naive bayes

1. Ambil data uji hasil dari crawling data uji .

2. Tahap Case Folding merupakan tahap awal setelah teks (komentar pada

twitter) berupa hasil crawling didapatkan. Teks diproses oleh aplikasi

dengan merubah seluruh karakter huruf menjadi huruf kecil. Berikut

merupakan gambaran hasil setelah tahap case folding, yaitu :

Gambar 4. 12 Tahap case folding naive bayes

3. Filtering merupakan tahap penghapusan URL, @hastag, karakter pada

dokumen setelah tahap case folding menggunakan jenis karakter UTF-8.

Berikut merupakan gambaran hasil setelah tahap filtering, yaitu:

Page 66: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

48

UIN Syarif Hidayatullah Jakarta

Gambar 4. 13 Tahap filtering naive bayes

4. Tokenizing merupakan proses dimana dalam satu dokumen dipecah

menjadi token-token dengan batas spasi. Contoh dari gambar 4.6 satu

dokumen isi kalimat : enak banget nyebut org gitu niru siapa pak setelah

melewati tahap tokenizing dokumen berubah menjadi penggalan kata

sebanyak 8 kata terdiri dari enak, banget, nyebut, org, gitu, niru, siapa,

pak.

5. Normalisasi kata. normalisasi dilakukan dua kali. Pertama normalisasi

kata yang memiliki kata berlebih dan tidak sesuai dengan standar ejaan

KBBI. Kedua normalisasi kata tidak baku yang diubah menjadi kata baku

sesuai dengan ejaan KBBI. Untuk langkah-langkah normalisasi kata

sesuai dengan sub bab 4.2.3 berjudul conceptual model pendekatan

lexicon.

6. Stopword removal merupakan proses penghapusan kata yang tidak

penting dalam text. Hal tersebut dilakukan untuk meningkatkan akurasi

dari pembobotan term dan memperkecil jumlah kata disetiap dokumen.

stopword yang berjumlah 758 kata untuk meningkatkan akurasi. Pada

tahap ini kata yang ada dalam kamus stopwords akan dibuang hal ini

dikarenakan stopwords dianggap sebagai kata tidak penting atau tidak

berguna dan tahapan ini juga dapat menekan penggunaan waktu dalam

proses pembobotan kata. (Tala,2003)

Proses stopword dapat digambarkan dengan flowchart pada gambar

4.14 dengan hasil pada gambar 4.15 sebagai berikut :

Page 67: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

49

UIN Syarif Hidayatullah Jakarta

Gambar 4. 14 Flowchart stopword

Gambar 4. 15 Hasil tahap stopword naive bayes

7. Stemming merupakan proses recoding (penyusunan ulang) dimana kata

disusun kembali mengikuti kamus KBBI untuk menghilangkan imbuhan

dan awalan agar diubah menjadi kata dasar dengan menggunakan

algoritma nazief dan adriani. Selanjutnya untuk mengetahui tahapan

algoritma stemming (Nazief & Andriani) dijelaskan sebagai berikut:

a. Pertama, cek kata yang akan dicari akar katanya dalam kamus kata dasar.

Jika ditemukan maka diasumsikan kata tersebut adalah sebagai kata

Page 68: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

50

UIN Syarif Hidayatullah Jakarta

dasar. Maka algoritma berhenti. Jika tidak ditemukan lakukan langkah

kedua

b. Hilangkan inflectional suffixes bila ada. Dimulai dari inflectional

particle (“-lah”, “-kah”, “-tah” dan“-pun”), kemudian possessive

pronoun (“-ku”, “-mu” dan “-nya”). Cari kata pada kamus

jika ditemukan algoritma berhenti, jika kata tidak ditemukan dalam

kamus lakukan langkah 3.

c. Hilangkan derivational suffixes (“-an”, “-i” dan “-kan”). Jika akhiran “-

an” dihapus dan ditemukan akhiran “-k”, maka akhiran “-k” dihapus.

Cari kata pada kamus jika ditemukan maka algoritma berhenti, jika kata

tidak ditemukan maka lakukan langkah 4.

d. Hilangkan derivation semua prefixes (“-di”, “ke-, “se-”, “te-”, “be-”,

“me-”, atau “pe-”). Cari kata pada kamus jika ditemukan maka

algoritma berhenti, jika kata tidak ditemukan maka lakukan langkah 5

e. Melakukan recoding.

f. Jika semua langkah telah dilakukan tetapi kata dasar tersebut tidak

ditemukan pada kamus, maka algoritma ini mengembalikan kata yang

asli sebelum dilakukan stemming.

Proses hasil stemming dapat digambarkan dengan pada gambar 4.16

dengan flowchart pada gambar 4.17 sebagai berikut :

Gambar 4. 16 Tahap stemming

Page 69: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

51

UIN Syarif Hidayatullah Jakarta

Gambar 4. 17 Flowchart stemming Nazrief Andriani

8. Hitung nilai Prior Probability setiap kategori sentimen dengan rumus

prior probability pada sub bab 2.12 tentang Algoritma Naive Bayes dan

praktiknya terdapat pada sub bab 4.4.2 tentang Konstruksi Pendekatan

Naive Bayes.

9. Hitung nilai Condtional Probability dari setiap kata pada kategori

sentiment dengan rumus conditional Probability pada sub bab 2.12

tentang Algoritma Naive Bayes dan praktiknya terdapat pada sub bab

4.4.2 tentang Konstruksi Penedekatan Naive Bayes.

10. Hitung nilai Posterior Probability dengan rumus conditional Probability

pada sub bab 2.12 tentang Algoritma Naive Bayes dan praktiknya

terdapat pada sub bab 4.4.2 tentang Konstruksi Penedekatan Naive

Bayes.

Page 70: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

52

UIN Syarif Hidayatullah Jakarta

11. Klasifikasi hasil dari nilai Posterior Probability untuk mengetahui

sentimen sebuah dokumen dengan cara melihat nilai tertinggi dari 3 tabel

kelas sentimen positif, negatif atau netral.

Gambar 4. 18 Conceptual Model Naive Bayes

4.2.4 Conceptual Model Klasifkasi K-Nearest Neighbor

Dalam analisa sentimen tahap penggunaan pendekatan klasifikasi K-

NN untuk klasfikasi data uji hasil analisa sentimen. Berikut adalah langkah-

langkah dari setiap tahap penggunaan pendekatan klasifikasi K-NN:

1. Ambil data uji dari hasil crawling data.

2. Tahap Case Folding merupakan tahap awal setelah teks (komentar pada

twitter) berupa hasil crawling didapatkan. Teks diproses oleh aplikasi

Page 71: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

53

UIN Syarif Hidayatullah Jakarta

dengan merubah seluruh karakter huruf menjadi huruf kecil. Berikut

merupakan gambaran hasil setelah tahap case folding, yaitu :

Gambar 4. 19 Tahap case folding K-NN

3. Filtering merupakan tahap penghapusan URL, @hastag, karakter pada

dokumen setelah tahap case folding menggunakan jenis karakter UTF-8.

Berikut merupakan gambaran hasil setelah tahap filtering, yaitu:

Gambar 4. 20 Tahap filtering K-NN

4. Tokenizing merupakan proses dimana dalam satu dokumen dipecah

menjadi token-token dengan batas spasi. Contoh dari gambar 4.6 satu

dokumen isi kalimat : enak banget nyebut org gitu niru siapa pak setelah

melewati tahap tokenizing dokumen berubah menjadi penggalan kata

sebanyak 8 kata terdiri dari enak, banget, nyebut, org, gitu, niru, siapa,

pak.

5. Normalisasi kata. normalisasi dilakukan dua kali. Pertama normalisasi

kata yang memiliki kata berlebih dan tidak sesuai dengan standar ejaan

KBBI. Kedua normalisasi kata tidak baku yang diubah menjadi kata baku

sesuai dengan ejaan KBBI. Untuk langkah-langkah normalisasi kata

Page 72: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

54

UIN Syarif Hidayatullah Jakarta

sesuai dengan sub bab 4.2.3 berjudul conceptual model pendekatan

lexicon.

6. Stopword removal merupakan proses penghapusan kata yang tidak

penting dalam text. Hal tersebut dilakukan untuk meningkatkan akurasi

dari pembobotan term dan memperkecil jumlah kata disetiap dokumen.

stopword yang berjumlah 758 kata untuk meningkatkan akurasi. Pada

tahap ini kata yang ada dalam kamus stopwords akan dibuang hal ini

dikarenakan stopwords dianggap sebagai kata tidak penting atau tidak

berguna dan tahapan ini juga dapat menekan penggunaan waktu dalam

proses pembobotan kata. (Tala,2003)

Proses stopword dapat digambarkan dengan flowchart pada gambar

4.21 dengan hasil pada gambar 4.22 sebagai berikut :

Gambar 4. 21 Flowchart stopword K-NN

Page 73: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

55

UIN Syarif Hidayatullah Jakarta

Gambar 4. 22 Hasil tahap stopword K-NN

7. Stemming Nazief Andriani merupakan proses recoding (penyusunan

ulang) dimana kata disusun kembali mengikuti kamus KBBI untuk

menghilangkan kata imbuhan berupa awalan dan akhiran agar diubah

menjadi kata dasar dengan menggunakan algoritma nazief dan adriani.

Selanjutnya untuk mengetahui tahapan algoritma stemming (Nazief &

Andriani) dijelaskan sebagai berikut:

a. Pertama, cek kata yang akan dicari akar katanya dalam kamus kata dasar.

Jika ditemukan maka diasumsikan kata tersebut adalah sebagai kata

dasar. Maka algoritma berhenti. Jika tidak ditemukan lakukan langkah

kedua

b. Hilangkan inflectional (penambahan kata) suffixes (akhiran) maksudnya

menghapus akhiran kata untuk mencari akar kata sesuai dengan

ketentuan. Dimulai dari (“-lah”, “-kah”, “-tah” dan“-pun”), kemudian (“-

ku”, “-mu” dan “-nya”). Cari kata pada kamus

jika ditemukan algoritma berhenti, jika kata tidak ditemukan dalam

kamus lakukan langkah 3.

c. Hilangkan derivational suffixes atau akhiran kata seperti (“-an”, “-i” dan

“-kan”) untuk menemukan akar kata. Jika akhiran “-an” dihapus dan

ditemukan akhiran “-k”, maka akhiran “-k” dihapus. Cari kata pada

kamus jika ditemukan maka algoritma berhenti, jika kata

tidak ditemukan maka lakukan langkah 4.

d. Hilangkan derivation (proses pembentukan kata) berupa prefixes

(awalan) maksudnya menghapus seluruh awalan suku kata yang ada di

Page 74: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

56

UIN Syarif Hidayatullah Jakarta

dalam ketentuan huruf awalan seperti (“-di”, “ke-, “se-”, “te-”, “be-”,

“me-”, atau “pe-”) untuk menemukan akar kata. Cari kata pada kamus

jika ditemukan maka algoritma berhenti, jika kata tidak ditemukan maka

lakukan langkah 5

e. Melakukan recoding.

f. Jika semua langkah telah dilakukan tetapi kata dasar tersebut tidak

ditemukan pada kamus, maka algoritma ini mengembalikan kata yang

asli sebelum dilakukan stemming.

Proses hasil stemming dapat digambarkan dengan pada gambar 4.23

dengan flowchart pada gambar 4.24 sebagai berikut :

Gambar 4. 23 Tahap stemming K-NN

Page 75: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

57

UIN Syarif Hidayatullah Jakarta

Gambar 4. 24 Flowchart stemming Nazrief Andriani untuk K-NN

8. Membangun pembobotan kata menggunakan teknik TF-IDF dengan

mencari nilai tf,df beserta idf sesuai dengan rumus sub bab 2.11 tentang

Pembobotan Kata dan sub bab 4.4.3 untuk praktik tentang membangun

pembobotan kata tentang TF-IDF pada pendekatan K-NN.

9. Klasifikasi query uji sementara (sentimen sementara) dengan algoritma

K-NN menggunakan cosine similarity sesuai rumus sub bab 2.13 tenta

ng Cosine Similarity dan praktiknya pada sub bab 4.4.3 tentang

konstruksi pendekatan K-NN.

Tahapan klasifikasi data uji sementara dengan algortima K-NN dapat

dilihat pada gambar 4.25 beserta dengan flowchart konsep K-NN sebagai

berikut.

Page 76: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

58

UIN Syarif Hidayatullah Jakarta

Gambar 4. 25 Langkah Algoritma K-NN

Page 77: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

59

UIN Syarif Hidayatullah Jakarta

Gambar 4. 26 Conceptual Model Pendekatan K-NN

4.3 Collection Input / Output Data

Pada penelitian ini data-data yang digunakan hasil crawling data dari

media sosial twitter berupa komentar netizen terhadap sentimen calon pilpres

dengan kata kunci jokowi dan pilpres 2019. Hasil crawling data dimulai dari

tanggal 08 februari 2018 hingga 24 febuari 2018 kemudian crawling kedua

dimulai tanggal 12 juni sampai 08 agustus 2018 dengan memanfaatkan twitter

API. Proses pengambilan data ini dinamakan dengan crawling. Selain itu

pengumpulan data berkaitan dengan kamus-kamus yang akan digunakan,

yang terdiri dari kamus lexicon positif, kamus lexicon negatif, kamus lexicon

negasi, kamus KBBI, kamus kata dasar, dan kamus stopwords. Berikut adalah

hasil input dan tipe data yang terdapat pada gambar 4.11 sebagai berikut :

Page 78: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

60

UIN Syarif Hidayatullah Jakarta

Gambar 4. 27 Hasil Crawling Tweet

Data-data yang telah diperoleh dan dikumpukan akan dijadikan input

dan output data. Berikut adalah tabel tipe data dari masing-masing input dan

output.

Tabel 4. 2 Tipe Data Input Kamus Lexicon Positif

Nama Field Type dan Length Primary key Null

Id Bigint Yes No

kata_positif Varchar(100) - No

Tabel 4. 3 Tipe Data Input Kamus Lexicon Negatif

Nama Field Type dan Length Primary key Null

id Bigint Yes No

kata_negatif Varchar(100) - No

Tabel 4. 4 Tipe Data Input Kamus Lexicon Negasi

Tabel 4. 5 Tipe Data Input Kamus KBBI

Nama Field Type dan Length Primary key Null

id Bigint Yes No

kata_kamus_kbbi Varchar(100) - No

Tabel 4. 6 Tipe Data Input Kata Dasar

Nama Field Type dan Length Primary key Null

id Bigint Yes No

Nama Field

Type dan Length Primary key Null

id Bigint Yes No

kata_negasi Varchar(100) - No

Page 79: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

61

UIN Syarif Hidayatullah Jakarta

kata_katadasar Varchar(100) - No

Tabel 4. 7 Tipe Data Input Kamus Stopwords

Nama Field Type dan Length Primary key Null

id Bigint Yes No

kata_stopwords Varchar(100) - No

Tabel 4. 8 Tipe Data Input Kata Tidak Baku Singkatan

Nama Field Type dan Length Primary key Null

id Bigint Yes No

kata_tidak_baku_singkatan Varchar(100) - No

Kata_baku_singkatan Varchar(100) - No

Tabel 4. 9 Tipe Data Input Data Latih dan Uji

Nama Field Type dan Length Primary key Null

no Bigint Yes No

id_tweet Varchar(100) - No

tweet_by Varchar(100) - No

tweet Varchar(100) - No

sentimen_tweet Varchar(100) - No

Kategori_tweet Varchar(100) - No

Tabel 4. 10 Tipe Data Processing

Nama Field Type dan Length Primary key Null

id_processing_query Bigint Yes No

id_tweet Varchar(100) - No

Casefolding Varchar(100) - No

Filtering Varchar(100) - No

Tokenizing Varchar(100) - No

Normalization Varchar(100) - No

Stopword Varchar(100) - No

Stemming Varchar(100) - No

Tabel 4. 11 Tipe Data Output Data Uji Naive Bayes

Nama Field Type dan Length Primary key Null

Id_datauji Bigint Yes No

id_tweet Varchar(100) - No

pos_post_prob Double - No

neg_post_prob Double - No

net_post_prob Double - No

Sentimen_datauji Varchar(100) - No

Tabel 4. 12 Tipe Data Output Data Uji K-NN

Nama Field Type dan Length Primary key Null

Page 80: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

62

UIN Syarif Hidayatullah Jakarta

Id_hasil Bigint Yes No

id_tweet_uji Varchar(100) - No

Hasil_analisis_sentimen Double - No

Tabel 4. 13 Tipe Data Input Perhitungan K-NN

Nama Field Type dan Length Primary key Null

Id_proses_hitung Bigint Yes No

id_tweet_uji Varchar(100) - No

Query Varchar(100) - No

Frekuensi_kemunculan Bigint - No

bobot_vektor Float - No

Panjang_vektor_query Float - No

Id_tweet_latih Varchar(100) - No

Perkalian_skalar Float - No

Cosine_similarity Float - No

Tabel 4. 14 Tipe Data Input TF-IDF

Nama Field Type dan Length Primary key Null

Id_term Bigint Yes No

term Varchar(100) - No

Asal_dokumen Varchar(100) - No

Frekuensi_kemunculan Double - No

Inverse_dokumen_frekuensi Float - No

Bobot float - No

Panjang_vektor float - No

Tabel 4. 15 Tipe Data Input Likelihood Naive Bayes

Nama Field Type dan Length Primary key Null

id_term Bigint Yes No

Term Varchar(100) - No

pos_occ Double - No

neg_occ Double - No

net_occ Double - No

pos_likelihood Double - No

neg_likelihood Double - No

net_likelihood Double - No

4.4 Modelling Phase

Dalam modelling phase atau fase pemodelan pada penelitian ini,

dilakukan pemodelan konstruksi analisis sentimen dengan pendekatan

Lexicon, klasifikasi Naive Bayes dan pendekatan K-NN. Berikut ini dapat

dilihat pemodelan-pemodelan tersebut secara lengkap.

Page 81: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

63

UIN Syarif Hidayatullah Jakarta

4.4.1 Konstruksi Pendekatan Lexicon

Proses ini akan menentukan sentimen twitter menggunakan

pendekatan lexicon. Penggunaan pendekatan lexicon bertujuan menciptakan

data latih dan kemudian menentukan orientasi sentimen dari unit teks melalui

beberapa fungsi berdasarkan kamus positif dan negatif. Proses ini sangat

memperhatikan dan bergantung pada kamus sentimen dan negasi yang

dibangun guna mendapatkan akurasi sentimen yang baik. Secara keseluruhan

konstruksi analisis orientasi sentimen dengan pendekatan lexicon dapat

dijelaskan sebagai berikut.

1. Membangun kamus sentimen yang terbagi menjadi sentimen positif

dan negatif.

Dalam penelitian ini dibangun kamus positif dan negatif secara sistem.

Kamus sentimen positif dalam penelitian ini berjumlah 1185 kata dan

kamus negatif berjumlah 2402 kata.

2. Membangun kamus negasi

Kamus negasi yang digunakan dalam penelitian ini sebanyak 10 kata.

3. Pre-proccessing query

Tahapan pre-proccessing query yang dilakukan pada pendekatan lexicon

secara keseluruhan dijelaskan dibawah ini :

Query : @LawanPoLitikJKW @permadiaktivis Saya tidak ahli

dalam urusan hutang negara biarlah ahli2 ekonomi dan keuangan yan…

https://t.co/Bxr3VWjFTF

a. Case folding.

“@lawanpolitikjkw @permadiaktivis saya tidak ahli dalam urusan

hutang negara biarlah ahli2 ekonomi dan keuangan yan…

https://t.co/bxr3vwjftf”.

b. Filtering

saya tidak ahli dalam urusan hutang negara biarlah ahli ekonomi dan

keuangan yan”.

c. Tokenisasi (menghapus semua tanda baca dan memecah kata)

Page 82: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

64

UIN Syarif Hidayatullah Jakarta

Tabel 4. 16 Tabel Query Tokenisasi

Query

Saya Tidak Ahli dalam

Urusan Hutang Negara biarlah

Ahli Ekonomi Dan keuangan

Yan

d. Normalisasi

Karena tidak ada term atau kata yang abnormal maka tabel tokenizing

sama dengan tabel normalisasi.

Tabel 4. 17 Tabel Query Normalisasi

Query

Saya Tidak Ahli dalam

Urusan Hutang Negara biarlah

Ahli Ekonomi Dan keuangan

Yan

Setelah melalui 4 tahapan pre-proccessing query diatas, maka sistem

akan menyimpan query tersebut untuk diproses ketahap selanjutnya.

4. Identifikasi setiap kata sentimen pada query.

Pada proses ini query akan identifikasi kata sentimen berdasarkan

kamus sentimen yang telah dibangun. Setiap kata yang berhasil diidentifikasi

dikelompokkan berdasarkan sentimennya baik positif maupun negatif. Jika

tidak ditemukan kata sentimen maka query diklasifikasikan sebagai kalimat

netral

Tabel 4. 18 Hasil identifikasi kata sentimen

Positif Negatif

Ahli -

- hutang

Page 83: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

65

UIN Syarif Hidayatullah Jakarta

Ahli -

2 kata 1 kata

Diidentifikasi terdapat 2 kata bernilai sentimen positif dan 1 kata

bernilai sentimen negatif.

5. Identifikasi kalimat negasi

Pada tahapan ini, query yang telah ditentukan kata sentimennya akan

dilihat apakah terdapat kata negasi pada setiap kata sentimen tersebut. Query

yang akan diidentifikasi kata negasi didalamnya ditandai dengan adanya kata

negasi dengan batas 4 frasa sebelum kata sentimen dan 1 frasa sesudah kata

sentimen.

Tabel 4. 19 Hasil identifikasi kata negasi

Positif Negatif

- ahli

- hutang

Ahli -

1 kata 2 kata

Diidentifikasi terdapat 1 kata yang memiliki negasi, sehingga kata

sebelumnya yang bernilai sentimen positif berubah menjadi sentimen negatif.

6. Menentukan orientasi sentimen pada query.

Dari tabel 4.19 hasil tabel indentifikasi negasi terdapat 3 kata yang

dihitung, pertama untuk sentimen positif hanya terdapat kata ahli, dan negatif

terdapat kata ahli dan hutang. Sesuai dengan rumus bab 2.9 perhitungan score

lexicon dilakukan dengan menjumlahkan total sentimen positif dengan

sentimen negatif, sehingga dapat disimpulkan bahwa dokumen memiliki

sentimen negatif karena hasil penjumlahan score lexicon untuk kata positif -

1 dan kata negatif + 1.

4.4.2 Konstruksi Pendekatan Naive Bayes

Proses ini akan menentukan sentimen twitter menggunakan algoritma

klasifikasi Naive Bayes. Algoritma Naive Bayes pada pendekatan ini sebagai

klasifikasi data uji setelah data latih sudah berhasil di berikan label sentimen.

Setelah pemeberian label pada data latih , kemudian klasifkasi naive bayes

dilakukan dengan menghitung nilai prior probability yaitu menghitung

peluang kemunculan dokumen tiap kelas, setelah itu menghitung nilai

Page 84: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

66

UIN Syarif Hidayatullah Jakarta

conditional probaility (likelihood) atau peluang kemunculan kata pada setiap

kelas setelah itu tahap klafikasi akhir menghitung nilai posterior probability

menggunakan rumus MAP (maximum at posterior) atau mengambil nilai

maksimum probabilitas setiap dokumennya.

Berikut penjelasan diatas yaitu penggunaan algoritma naive bayes

sebagai algoritma untuk klasifikasi dapat dijelaskan sebgai berikut :

1. Membangun kamus positif dan negatif didalam sistem sebagai sarana

untuk melakukan tahap preprocessing data latih. Kamus sentimen positif

dalam penelitian ini berjumlah 1182 kata dan kamus negatif berjumlah

2399 kata. (Tala, 2003)

2. Mengumpulkan data latih menggunakan crawling data berupa tweet.

Sebagai contoh digunakan 6 dokumen sebagai data latih sebagai berikut.

Tabel 4. 20 Dokumen Latih

Dokumen(n) Isi Tweet Sentimen

Tweet

1 @Jokowi @dionnka Bagus kinerja pakde

#Presiden2019 #JokowiUntukPresiden2019

#GantiPresiden2019

Positif

2 Salut sama Kinerja pak Jokowi

#Jokowi2019SekaliLagi

Positif

3 Hancur Negatif

4 Kalah Negatif

5 @zoelfick @Jokowi Sudah ... Netral

6 #Jokowi2019SekaliLagi

https://t.co/NlnnCu3LQi

Netral

3. Pelatihan data latih menggunakan pre-processing, inverted index dan

pembobotan kata pada tweet. Untuk lebih jelas nya, berikut adalah contoh

pembuatan inverted index dan pembobotan kata pada data latih secara

keseluruhan.

a Pengumpulan data latih menggunakan crawling data berupa tweet.

Sebagai contoh digunakan 6 dokumen sebagai data latih sebagai

berikut.

Page 85: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

67

UIN Syarif Hidayatullah Jakarta

Tabel 4. 21 Pengumpulan Dokumen Latih

Dokumen(n) Isi Tweet Sentimen

Tweet

1 @Jokowi @dionnka Bagus kinerja pakde

#Presiden2019 #JokowiUntukPresiden2019

#GantiPresiden2019

Positif

2 Salut sama Kinerja pak Jokowi

#Jokowi2019SekaliLagi

Positif

3 Hancur dah #GantiPresiden2019 Negatif

4 Kalah Negatif

5 @zoelfick @Jokowi Sudah ... Netral

6 #Jokowi2019SekaliLagi

https://t.co/NlnnCu3LQi

Netral

b Case folding

Tabel 4. 22 Case Folding Naive Bayes

Dokumen(n) Isi Tweet Sentimen

Tweet

1 @jokowi @dionnka bagus kinerja pakde

#presiden2019 #jokowiuntukpresiden2019

#gantipresiden2019

Positif

2 salut sama kinerja pak jokowi

#jokowi2019sekalilagi

Positif

3 hancur dah #gantipresiden2019 Negatif

4 kalah... Negatif

5 @zoelfick @Jokowi sudah ... Netral

6 #jokowi2019sekalilagi

https://t.co/nlnncu3lqi

Netrall

c Filtering

Tabel 4. 23 Filtering Naive Bayes

Dokumen(n) Isi Tweet Sentimen

Tweet

1 bagus kinerja pakde Positif

2 salut sama kinerja pak jokowi Positif

3 hancur dah Negatif

4 Kalah Negatif

5 sudah Netral

6 Netral

d Tokenizing

Tabel 4. 24 Tokenizing pada Naive Bayes

Dok(1) Dok(2) Dok(3) Dok(4) Dok(5) Dok(6)

Page 86: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

68

UIN Syarif Hidayatullah Jakarta

Bagus salut Hancur kalah sudah

Kinerja sama Dah

Pakde kinerja

pak

jokowi

e Normalisasi

Tabel 4. 25 Normalisasi Naive Bayes

Dok(1) Dok(2) Dok(3) Dok(4) Dok(5) Dok(6)

Bagus salut Hancur kalah sudah

Kinerja sama Dah

Pakde kinerja

pak

jokowi

f Stopword dan Stemming

Tabel 4. 26 Stopword dan Stemming Naive Bayes

Dok(1) Dok(2) Dok(3) Dok(4) Dok(5) Dok(6)

Bagus salut Hancur kalah sudah

Kinerja kinerja

jokowi

4. Mencari nilai persamaan untuk menghitung peluang kemunculan

dokumen pada kategori tertentu (prior probability) berdasarkan rumus bab

2.11. Misal pada contoh diatas terdapat 6 dokumen latih dengan setiap

kelas sentimen terdiri dari 2 anggota, maka prior probability setiap kelas

adalah 0,33 yaitu hasil dari pembagian 2 dengan 6.

5. Mencari nilai condtional probability atau nilai peluang kemunculan setiap

kata berdasarkan kategori sentimen berdasarkan rumus bab 2.11.

6. Klasifikasi hasil dari nilai posterior probability untuk menentukan hasil

sentimen. Menghitung nilai posterior probability dapat dihitung

berdasarkan rumus pada sub bab 2.11. Untuk lebih jelasnya berikut

tahapan yang dilakukan untuk menghitung nilai posterior probability.

a. Pre-proccessing query uji

Pada tahapan ini dilakukan seleksi kalimat netral dengan menggunakan

kamus sentimen yang ada.

Page 87: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

69

UIN Syarif Hidayatullah Jakarta

1. Case folding

Tabel 4. 27 Case Folding Query Uji Naive Bayes

Dokumen (n)

kinerja bagus pak

2. Filtering

Tabel 4. 28 Filtering Query Uji Naive Bayes

Dokumen (n)

kinerja bagus pak

3. Tokenizing

Tabel 4. 29 Tokenizing Query Uji Naive Bayes

Dokumen (n)

Kinerja bagus pak

4. Normalisasi

Tabel 4. 30 Normalisasi Query Uji Naive Bayes

Dokumen (n)

Kinerja bagus pak

5. Stopwords dan stemming

Tabel 4. 31 Stopword dan Stemming Query Uji Naive Bayes

Dokumen (n)

Kinerja bagus

Hasil dari pre-proccessing adalah “kinerja bagus”.

Data Uji : Kinerja Bagus Pak :D

Page 88: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

70

UIN Syarif Hidayatullah Jakarta

b. Hitung nilai Prior Probability

Pada tahapan ini dilakukan perhitungan nilai prior probability dengan

hasil sentimen positif 0,33, sentimen negatif 0,33 dan sentimen netral

0,33.

c. Hitung nilai Condtional Probaility

Pada tahapan ini dilakukan perhitungan nilai condtional probability

menggunakan data uji diatas yaitu kinerja dan bagus.

Tabel 4. 32 Conditional Probability

Kata dan

sentimen

Positif

Likelihood

Negatif

Likelihood

Netral

Likelihood

Kinerja 0,272727273 0,125 0,142857

Bagus 0,181818182 0,125 0,142857

d. Hitung nilai Posterior Probaility

Pada tahapan ini dilakukan perhitungan nilai posterior probability

menggunakan data uji diatas yaitu kinerja bagus.

Tabel 4. 33 Posterior Probability

Kata dan

sentimen

Positive

Posterior

Probability

Negative

Posterior

Probability

Neutral

Posterior

Probability

Kinerja Bagus 0,016527

0,005208

0,006802

Dari klasifikasi tersebut nilai paling tinggi mengarah pada kolom

positive posterior probability dengan nilai 0,016257 dibanding nilai negative

dan neutral maka data uji tersebut dapat disimpulkan memiliki sentimen

positif.

4.4.3 Konstruksi Pendekatan K-NN

Proses ini akan menentukan sentimen twitter menggunakan algoritma

klasifikasi K-NN. Algoritma K-NN pada pendekatan ini sebagai klasifikasi

data uji setelah data latih sudah berhasil di berikan label sentimen. Setelah

pemberian label pada data latih , kemudian klasifkasi K-NN dilakukan dengan

Page 89: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

71

UIN Syarif Hidayatullah Jakarta

menghitung nilai tf-idf kemudian dilanjutkan pembobotan kata dan

penggunaan cosine similarity. Tidak jauh berbeda dari naive bayes K-NN

merupakan algoritma klasifikasi dengan metode supervised learning yaitu

membutuhkan data latih sebagai pembelajaran. Berikut penjelasan

penggunaan algoritma K-NN beserta langkah-langkah untuk konstruksi

algoritma klasifikasi K-NN sebagai berikut :

1. Membangun kamus positif dan negatif didalam sistem sebagai sarana

unutk melakukan tahap preprocessing data latih. Kamus sentimen positif

dalam penelitian ini berjumlah 1182 kata dan kamus negatif berjumlah

2403 kata. (Tala,2003)

2. Mengumpulkan data latih menggunakan crawling data berupa tweet.

Sebagai contoh digunakan 6 dokumen sebagai data latih sebagai berikut.

Tabel 4. 34 Dokumen Latih K-NN

Dokumen(n) Isi Tweet Sentimen

Tweet

1 @Jokowi @dionnka Bagus kinerja pakde

#Presiden2019 #JokowiUntukPresiden2019

#GantiPresiden2019

Positif

2 Salut sama Kinerja pak Jokowi

#Jokowi2019SekaliLagi

Positif

3 Hancur dah Negatif

4 Kalah Negatif

5 @zoelfick @Jokowi Sudah ... Netral

6 #Jokowi2019SekaliLagi

https://t.co/NlnnCu3LQi

Netral

3. Pelatihan data latih menggunakan pre-processing, inverted index dan

pembobotan kata pada tweet. Untuk lebih jelas nya, berikut adalah contoh

pembuatan inverted index dan pembobotan kata pada data latih secara

keseluruhan.

a Pengumpulan data latih menggunakan crawling data berupa tweet.

Sebagai contoh digunakan 6 dokumen sebagai data latih sebagai

berikut.

Tabel 4. 35 Pengumpulan Dokumen Latih K-NN

Dokumen(n) Isi Tweet Sentimen

Tweet

Page 90: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

72

UIN Syarif Hidayatullah Jakarta

1 @Jokowi @dionnka Bagus kinerja pakde

#Presiden2019 #JokowiUntukPresiden2019

#GantiPresiden2019

Positif

2 Salut sama Kinerja pak Jokowi

#Jokowi2019SekaliLagi

Positif

3 Hancur dah #GantiPresiden2019 Negatif

4 Kalah Negatif

5 @zoelfick @Jokowi Sudah ... Netral

6 #Jokowi2019SekaliLagi

https://t.co/NlnnCu3LQi

Netral

b Case folding

Tabel 4. 36 Case Folding K-NN

Dokumen(n) Isi Tweet Sentimen

Tweet

1 @jokowi @dionnka bagus kinerja pakde

#presiden2019 #jokowiuntukpresiden2019

#gantipresiden2019

Positif

2 salut sama kinerja pak jokowi

#jokowi2019sekalilagi

Positif

3 hancur dah #gantipresiden2019 Negatif

4 kalah... Negatif

5 @zoelfick @Jokowi sudah ... Netral

6 #jokowi2019sekalilagi

https://t.co/nlnncu3lqi

Netral

c Filtering

Tabel 4. 37 Filtering K-NN

Dokumen(n) Isi Tweet Sentimen

Tweet

1 bagus kinerja pakde Positif

2 salut sama kinerja pak jokowi Positif

3 hancur dah Negatif

4 Kalah Negatif

5 sudah Netral

6 Netral

d Tokenizing

Tabel 4. 38 Tokenizing K-NN

Dok(1) Dok(2) Dok(3) Dok(4) Dok(5) Dok(6)

Bagus Salut Hancur kalah sudah

Kinerja Sama Dah

Pakde Kinerja

Pak

Jokowi

e Normalisasi

Page 91: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

73

UIN Syarif Hidayatullah Jakarta

Tabel 4. 39 Normalisasi K-NN

Dok(1) Dok(2) Dok(3) Dok(4) Dok(5) Dok(6)

Bagus Salut Hancur kalah Sudah

kinerja Sama Dah

Pakde Kinerja

Pak

Jokowi

f Stopword dan Stemming

Tabel 4. 40 Stopword dan Steming K-NN

Dok(1) Dok(2) Dok(3) Dok(4) Dok(5) Dok(6)

Bagus Salut Hancur kalah

Kinerja Kinerja

Jokowi

g Indexing (pembuatan inverted index). Berikut ini hasil dari indexing

pada data latih.

Tabel 4. 41 Hasil proses indexing K-NN

Kosa Kata (Dokumen : Frekuensi)

Bagus 1:1

Salut 2:1

Hancur 3:1

Kalah 4:1

Kinerja 2 : 1

Jokowi 2:1

Keterangan :

Kosa kata : kata tunggal yang terdapat dalam dokumen.

Dokumen frekuensi : Frekuensi kata dalam dokumen.

h Pembobotan kata. Berikut ini hasil dari pembobotan kata terhadap kata

hasil indexing

Tabel 4. 42 TF dan DF K-NN

Kosa

Kata

Tf(D1) Tf(D2) Tf(D3) Tf(D4) Tf(D5) Tf(D6) Df

Bagus 1 0 0 0 0 0 1

Salut 0 1 0 0 0 0 1

Hancur 0 0 1 0 0 0 1

Kalah 0 0 0 1 0 0 1

Kinerja 1 1 0 0 0 0 2

Jokowi 0 1 0 0 0 0 1

Page 92: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

74

UIN Syarif Hidayatullah Jakarta

Tabel 4. 43 Pembobotan TF-IDF K-NN pada data latih

Keterangan :

Kosa Kata : kata tunggal yang telah terpisah dari dokumen query

df : document frequency atau jumlah dokumen dalam koleksi

dokumen yang mengandung kosa kata

idf : inverse dokumen frequency

tf(n) : term frequency (frekuensi kata) pada dokumen ke-n

4. Klasifikasi data uji menggunakan algoritma K-NN penjelasannya akan

dimuat sebagai berikut :

a. Pre-proccessing query uji

Pada tahapan ini dilakukan seleksi kalimat netral dengan

menggunakan kamus sentimen yang ada.

1. Case folding

Tabel 4. 44 Case Folding Query Uji K-NN

Dokumen (n)

kinerja bagus pak

2. Filtering

Tabel 4. 45 Filtering Query Uji K-NN

Dokumen (n)

Kosa Kata df Idf w(D1) w(D2) w(D3) w(D4) w(D5) w(D6)

Bagus 1 0,7781 0,7781 0 0 0 0 0

Salut 1 0,7781 0 0,7781 0 0 0 0

Hancur 1 0,7781 0 0 0,7781 0 0 0

Kalah 1 0,7781 0 0 0 0,7781 0 0

Kinerja 2 0,4771 0,4771 0,4771 0 0 0 0

Jokowi 1 0,7781 0 0,7781 0 0 0 0

Data Uji : Kinerja Bagus Pak :D

Page 93: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

75

UIN Syarif Hidayatullah Jakarta

kinerja bagus pak

3. Tokenizing

Tabel 4. 46 Tokenizing Query Uji K-NN

Dokumen (n)

Kinerja Bagus Pak

4. Normalisasi

Tabel 4. 47 Normalisasi Query Uji K-NN

Dokumen (n)

Kinerja Bagus Pak

5. Stopwords dan stemming

Tabel 4. 48 Stopword dan Stemming Query Uji K-NN

Dokumen (n)

Kinerja Bagus

6. Pembobotan kata

Hasil pembobotan kata setelah pre-processing diatas adalah kata kinerja

dan bagus berjumlah satu.

b. Menghitung kedekatan kemiripan query uji dengan data latih

menggunakan rumus consine similarity.

Untuk lebih jelasnya, tahapan ini akan dijelaskan sebagai lanjutan

contoh dari proses pre-proccessing query diatas. Sebagai contoh query yang

sudah dilakukan pre-proccessing sebagai berikut.

Sebelum menghitung consine similarity terlebih dahulu dilakukan

tahapan-tahapan berikut :

1. Menghitung bobot setiap kata dalam dokumen query uji terhadap bobot

data latih. Hasil dari pembobotan ini dapat dilihat pada tabel 4.25

Data Uji : kinerja bagus

Page 94: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

76

UIN Syarif Hidayatullah Jakarta

Tabel 4. 49 Pembobotan TF-IDF K-NN menggunakan query uji

2. Selanjutnya berdasarkan perhitungan bobot tersebut, hitung panjang

vektor setiap dokumen. Tahapan yang dilakukan adalah sebagai berikut

:

1. Hitung hasil perkalian skalar antara query uji dan 6 dokumen lainnya

(data latih). Hasilnya perkalian dari setiap dokumen dengan query

dijumlahkan. Hasil dari proses ini dapat dilihat pada tabel 4.50.

Tabel 4. 50 Hasil perkalian skalar antara query dan data latih

2. Hitung panjang vektor setiap dokumen, termasuk query uji. Caranya

dengan mengkuadratkan bobot setiap kata dalam setiap dokumen,

jumlahkan nilai kuadrat dan terakhir akarkan. Hasil dari proses ini

dapat dilihat pada tabel 4.51.

Tabel 4. 51 Hasil panjang vektor setiap dokumen

Kosa

Kata

Df Idf W(Q) w(D1) w(D2) w(D3) w(D4) w(D5) w(D6)

Bagus 1 0,7781 0,7781 0,7781 0 0 0 0 0

Salut 1 0,7781 0 0 0,7781 0 0 0 0

Hancur 1 0,7781 0 0 0 0,7781 0 0 0

Kalah 1 0,7781 0 0 0 0 0,7781 0 0

Kinerja 2 0,4771 0,4771 0,4771 0,4771 0 0 0 0

Jokowi 1 0,7781 0 0 0,7781 0 0 0 0

Asal_dokumen_perkalian_skalar (WD*Wdi)

w(D1) w(D2) w(D3) w(D4) w(D5) w(D6)

0,60543961 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0,22762441 0,22762441 0 0 0 0

0 0 0 0 0 0

0,83306402 0,22762441 0 0 0 0

Asal_dokumen_panjang_vektor (Panjang Vektor)

W(Q) w(D1) w(D2) w(D3) w(D4) w(D5) w(D6)

0,60543961 0,60543961 0 0 0 0 0

0 0 0,60543961 0 0 0 0

Page 95: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

77

UIN Syarif Hidayatullah Jakarta

3. Menerapkan rumus cosine similarity. Hitung kemiripan query

dengan 6 dokumen data latih.

1. Cos(Q,D1) = 0,83306402 / (0,9127 * 0,9127) =

1,0000512952075930736416112486153

2. Cos(Q,D2) = 0,22762441 / (0,9127 * 1,1993) =

0,20795192688960456106243122665936

3. Cos(Q,D3) = 0 / (0,9127 * 0,7781) = 0

4. Cos(Q,D4) = 0 / (0,9127 * 0,7781) = 0

5. Cos(Q,D5) = 0 / (0,9127 * 0) = 0

6. Cos(Q,D6) = 0 / (0,9127 * 0) = 0

Hasil perhitungan dalam tabel

c. Menentukan besar nilai k pada algoritma K-NN.

Menentukan nilai k pada algoritma K-NN. Nilai k merupakan parameter

yang akan membatasi ketetanggaan terdekat yang akan diproses pada tahap

selanjutnya. Ditentukan nilai k pada algoritma K-NN adalah 1. Sehingga

berdasarkan nilai tersebut ketetanggaan terdekat dengan query adalah sebagai

berikut :

Setelah diurutkan (dari yang memiliki nilai terbesar)

d. Menyimpulkan hasil sentimen dengan persamaan

0 0 0 0,60543961 0 0 0

0 0 0 0 0,60543961 0 0

0,22762441 0,22762441 0,22762441 0 0 0 0

0 0 0,60543961 0 0 0 0

0,83306402 0,83306402 1,43850363 0,60543961 0,60543961 0 0

0,9127 0,9127 1,1993 0,7781 0,7781 0 0

(D1) (D2) (D3) (D4) (D5) (D6)

1,00005 0,20795 0 0 0 0

1 2 3 4 5 6

D1 D2 D3 D4 D5 D6

Page 96: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

78

UIN Syarif Hidayatullah Jakarta

D1 = 1,00005

D1 = POSITIF (Dokumen pertama memiliki sentimen positif)

Dnn(c1,c2) = POSITIF

Dapat disimpulkan bahwa query uji memiliki sentimen positif

4.5 Simulation Phase

Pada tahapan simulasi ini akan dilakukan dengan beberapa percobaan

simulasi aplikasi yang berkaitan dengan pengujian tingkat akurasi algoritma

Naive Bayes dan K-NN. Adapun faktor-faktor dalam proses simulasi dapat

dilihat pada tabel 4.52 berikut.

Tabel 4. 52 Simulasi Penelitian

Variabel/Parameter

Simulasi

Tahap Simulasi

Faktor 1 Tahap klasifikasi sentimen data latih dengan

pendekatan Lexicon

Faktor 2 Tahap pelatihan data pada data latih

Faktor 3 Tahap pengujian data uji dengan algoritma

Naive Bayes dan algoritma K-NN berdasarkan

nilai k pada algoritma K-NN adalah 1,3,5,9 dan

10

Faktor 4 Tahap pengujian akurasi menggunakan model

confusion matrix

Variabel atau parameter simulasi yang digunakan dalam melakukan

skenario-skenario pengujian yaitu dengan menggunakan pendekatan Lexicon,

algoritma Naive Bayes dan pendekatan K-NN. Pendekatan Lexicon digunakan

untuk memudahkan peneliti dalam melakukan labelling data pada data latih

sebanyak 900 data. Sementara algoritma Naive Bayes dan pendekatan K-NN

digunakan untuk klasifikasi data uji sebanyak 100 data dan untuk melihat

tingkat akurasi dari membandingkan dua algoritma pengujian tersebut.

Dalam sub-bab berikut akan dibahas simulasi aplikasi analisis orientasi

sentimen berdasarkan skenario simulasi pada tabel 4.38.

Page 97: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

79

UIN Syarif Hidayatullah Jakarta

4.5.1 Tahap Pengujian Data Uji

Pengujian yang dilakukan adalah untuk mengklasifikasikan data uji

kedalam kelas positif, negatif atau netral dengan algoritma Naive Bayes dan

K-NN. Proses klasifikasi data uji akan dilakukan kedalam 6 skenario yaitu

pertama pengujian menggunakan algoritma naive bayes, kemudian untuk

skenario kedua hingga keenam berdasarkan penentuan nilai k pada algoritma

K-NN dengan nilai k=1, k=3, k=5, k=9 dan k=10.

Pada tahapan ini terdapat informasi sejauh mana tingkat keberhasilan

kombinasi algoritma tersebut dalam mengklasifikasikan data uji kedalam

kelasnya yang dihitung berdasarkan tingkat akurasi, error rate, presisi, recall

dan f-measure.

1. Skenario I nilai akurasi pada algoritma Naive Bayes

Pada gambar skenario 1 menggambarkan tampilan hasil setelah

melakukan proses klasifikasi data uji menggunakan algoritma Naive

Bayes. Tingkat akurasi yang dihasilkan pada skenario pertama sebesar

81%, error rate sebesar 19%, recall sebesar 0,86%, presisi sebesar 0,81

dan f-measure sebesar 0,83.

Gambar 4. 28 Skenario 1 akurasi naive bayes

Page 98: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

80

UIN Syarif Hidayatullah Jakarta

Gambar 4. 29 Skenario 1 Confusion Matrix Naive Bayes

2. Skenario 2 pada algoritma K-NN dengan nilai k = 1

Pada gambar skenario 2 menggambarkan tampilan hasil setelah

melakukan proses klasifikasi data uji menggunakan algoritma K-NN

dengan nilai ketetanggaan atau nilai k = 1. Tingkat akurasi yang

dihasilkan pada skenario pertama sebesar 61%, error rate sebesar 39%,

recall sebesar 55%, presisi sebesar 0,66 dan f-measure sebesar 0,60.

Gambar 4. 30 Skenario 2 akurasi K-NN nilai k = 1

Page 99: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

81

UIN Syarif Hidayatullah Jakarta

Gambar 4. 31 Skenario 2 akurasi K-NN Confusion Matrix

3. Skenario 3 pada algoritma K-NN dengan nilai k = 3

Pada gambar skenario 3 menggambarkan tampilan hasil setelah

melakukan proses klasifikasi data uji menggunakan algoritma K-NN

dengan nilai ketetanggaan atau nilai k = 3. Tingkat akurasi yang

dihasilkan pada skenario pertama sebesar 65%, error rate sebesar 35%,

recall sebesar 0,61%, presisi sebesar 0,73 dan f-measure sebesar 0,66.

Gambar 4. 32 Skenario 3 Akurasi K-NN dengan nilai k = 3

Page 100: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

82

UIN Syarif Hidayatullah Jakarta

Gambar 4. 33 Skenario 3 K-NN Confusion Matrix

4. Skenario 4 pada algoritma K-NN dengan nilai k = 5

Pada gambar skenario 4 menggambarkan tampilan hasil setelah

melakukan proses klasifikasi data uji menggunakan algoritma K-NN

dengan nilai ketetanggaan atau nilai k = 5 Tingkat akurasi yang

dihasilkan pada skenario pertama sebesar 77%, error rate sebesar 23%,

recall sebesar 88%, presisi sebesar 0,80 dan f-measure sebesar 0,84.

Gambar 4. 34 Skenario 4 Akurasi K-NN dengan nilai k = 5

Page 101: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

83

UIN Syarif Hidayatullah Jakarta

Gambar 4. 35 Skenario 4 K-NN Confusion Matrix

5. Skenario 5 pada algoritma K-NN dengan nilai k = 9

Pada gambar skenario 5 menggambarkan tampilan hasil setelah

melakukan proses klasifikasi data uji menggunakan algoritma K-NN

dengan nilai ketetanggaan atau nilai k = 9. Tingkat akurasi yang

dihasilkan pada skenario pertama sebesar 72%, error rate sebesar 28%,

recall sebesar 80%, presisi sebesar 0,70 dan f-measure sebesar 0,75.

Gambar 4. 36 Skenario 5 Akurasi K-NN dengan nilai k = 9

Page 102: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

84

UIN Syarif Hidayatullah Jakarta

:

Gambar 4. 37 Skenario 5 Confusion Matrix

6. Skenario 6 pada algoritma K-NN dengan nilai k = 10

Pada gambar skenario 6 menggambarkan tampilan hasil setelah

melakukan proses klasifikasi data uji menggunakan algoritma K-NN

dengan nilai ketetanggaan atau nilai k = 10. Tingkat akurasi yang

dihasilkan pada skenario pertama sebesar 76%, error rate sebesar 24%,

recall sebesar 91%, presisi sebesar 0,71 dan f-measure sebesar 0,80.

Gambar 4. 38 Skenario 5 Akurasi K-NN dengan nilai k = 10

Page 103: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

85

UIN Syarif Hidayatullah Jakarta

Gambar 4. 39 Skenario 6 Confusion Matrix

4.6 Verification, Validation and Experimentation

Pembahasan pada sub-bab ini akan dibahas pada BAB 5.

4.7 Output Analysis Phase

Pembahasan pada sub-bab ini akan dibahas pada BAB 5.

Page 104: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

86

UIN Syarif Hidayatullah Jakarta

BAB V

HASIL DAN PEMBAHASAN

5.1 Verification, Validation and Experimentation

Verifikasi dilakukan untuk memastikan bahwa setiap tahapan pada bab-

bab sebelumnya saling memiliki hubungan, dalam hal ini setiap tahapan pada

bab 4 diulas kembali untuk memastikan tiap tahap tersebut saling terkait.

Verifikasi juga memastikan bahwa input dan output sesuai dengan yang

diharapkan dimulai dari tahap problem formulation (formulasi masalah)

hingga simulation phase (simulasi).

Dari tahapan problem formulation (formulasi masalah) dilakukan

pembahasan mengenai cara identifikasi masalah untuk dirumuskan dalam

penulisan skripsi, sehingga dari permasalahan tersebut dapat dikembangkan

menjadi pemodelan konsep sebagai solusi. Selanjutnya pada tahapan

conceptual model (pemodelan konsep), dilakukan pembahasan konsep secara

keseluruhan pada Aplikasi analisis orientasi sentimen meliputi input, proses,

eksperimen dan output yang diharapkan. Pada tahapan collection input/output

data, membahasa input dan output data dengan menyebutkan atribut-atribut

data yang akan disimpan kedalam database Mysql. Berlanjut ke tahapan

Modelling phase (pemodelan) yaitu berkaitan dengan mengolah data input

dan output yang telah dibuat pada tahapan sebelumnya. Pada tahapan ini

dilakukan perhitungan sampel dan konstruksi klasifikasi sentimen data latih

menggunakan pendekatan lexicon, perhitungan sampel dan konstruksi

klasifikasi data uji menggunakan kombinasi algoritma K-NN dan pendekatan

lexicon yang dilakukan secara manual untuk dapat dijadikan acuan dalam

pembuatan aplikasi pada skripsi ini. Berikutnya pada tahapan terkahir adalah

simulation (simulasi), yaitu dengan melakukan simulasi pada aplikasi analisis

orientasi sentimen yang fungsinya mengimplementasikan pemodelan-

pemodelan manual sebelumnya. Oleh karena itu, setiap tahapan dapat

dipastikan memiliki keterkaitan, karena setiap tahapan yang dibuat akan

berpengaruh untuk membuat tahapan selanjutnya. Sehingga dari seluruh

Page 105: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

87

UIN Syarif Hidayatullah Jakarta

tahapan-tahapan yang dibahas pada sub-bab sebelumnya dapat diverifikasi

sesuai dengan ketentuan verifikasi yang ada.

Dalam proses validasi dilakukan pengujian kebenaran sistem yaitu

dengan melakukan perbandingan hasil kombinasi algoritma naive bayes dan

K-NN dengan pendekatan lexicon yang dihitung secara manual dengan hasil

pada aplikasi analisis orientasi sentimen sehingga menghasilkan keakuratan

sistem. Kemudian dilakukan eksperimen dengan membandingkan hasil

skenario yaitu hasil klasifikasi sentimen data uji menggunakan kombinasi

algoritma naive bayes dan K-NN yang ditentukan berdasarkan ke 5 parameter

nilai k yaitu k=1, k=3, k=5, k=9, k=10 pada algoritma K-NN dan 1 parameter

sebagai hasil uji dari algoritma Naive Bayes. Dari eksperimen tersebut

dilakukan analisis outputnya yang akan dibahas pada tahapan Output Analysis

Phase.

5.2 Output Analysis Phase

Dalam melakukan analisis output, dilakukan analisis terhadap hasil

klasifikasi sentimen publik terhadap data opini publik presiden Jokowi pada

media twitter menggunakan kombinasi algoritma naive bayes dan pendekatan

K-NN dengan hasil tingkat akurasi dari algoritma tersebut. Output penelitian

berupa aplikasi berbasis web menggunakan bahasa pemrograman PHP dan

database MySql yang dibangun sendiri oleh penulis.

5.2.1 Hasil Klasifikasi Sentimen Kombinasi Algoritma Naive Bayes

Dengan Pendekatan Lexicon

Sub-bab ini menjelaskan hasil dari klasifikasi sentimen 100 data uji

yang bersumber dari twitter berkaitan dengan komentar netizen terhadap

salah satu calon pilpres 2019 terhadap sentimen yang diberikan. Klasifikasi

dilakukan menggunakan pendekatan lexicon sebagai data latih dengan

algoritma naive bayes untuk menentukan besarnya pengaruh akurasi. Berikut

hasil klasifikasi sentimen 100 data uji.

Tabel 5. 1 Perbandingan Klasifikasi Naive Bayes

No

Hasil

Klasifikasi

Kelas

Sebenarnya

Positive

Posterior

Probability

Negative

Posterior

Probability

Neutral

Posterior

Probability

Page 106: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

88

UIN Syarif Hidayatullah Jakarta

Naive

Bayes

1 NEGATIF NEGATIF 0.00008398 0.0004379 0.00009704

2 POSITIF NEGATIF 1,50E-34 7,97E-37 2,45E-35

3 NETRAL NEGATIF 1,04E-26 4,39E-26 7,45E-26

4 POSITIF NEGATIF 5,86E-28 4,91E-28 1,45E-28

5 NETRAL NETRAL 2,03E-05 1,25E-04 9,54E-04

6 NEGATIF NEGATIF 1,03E-11 1,04E-11 1,18E-12

7 NEGATIF NEGATIF 1,66E-37 7,17E-36 4,90E-36

8 NETRAL NETRAL 1,71E-09 2,19E-09 3,58E-08

9

NETRAL NETRAL

0.00000000

000000268

6

0.00000000

000000158

8

0.00000000

000001755

10 POSITIF POSITIF 2,05E-08 3,29E-09 4,48E-09

11 NETRAL NEGATIF 2,78E-06 4,21E-07 1,38E-05

12 NEGATIF NEGATIF 2,37E-05 3,51E-04 1,70E-05

13 NEGATIF NEGATIF 1,37E-23 2,09E-23 6,42E-24

14 POSITIF NETRAL 3,64E-14 2,27E-15 1,01E-15

15 POSITIF POSITIF 3,09E-11 3,46E-13 6,51E-12

16 NETRAL NEGATIF 3,30E-22 1,05E-22 1,28E-21

17 NETRAL NETRAL 5,84E-22 1,11E-21 2,09E-20

18 POSITIF POSITIF 0.0003359

0.00017516

2 0.0001940

19 NEGATIF NEGATIF 1,61E-11 2,42E-10 7,68E-11

20 NEGATIF NEGATIF 8,53E-10 6,58E-09 2,43E-09

21

POSITIF POSITIF

0.00000000

000000671

6

0.00000000

000000476

5

0.00000000

000000176

0

22 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

23 NETRAL POSITIF 1,53E-08 3,51E-07 8,70E-06

24 NEGATIF NEGATIF 4,30E-13 6,22E-11 4,27E-12

25 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

26 POSITIF POSITIF

0.00000006

348

0.00000002

301

0.00000005

650

Page 107: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

89

UIN Syarif Hidayatullah Jakarta

27 NETRAL NETRAL 0.00008398 0.00008758 0.0001940

28 NEGATIF NEGATIF 2,50E-24 1,00E-23 3,98E-24

29 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

30 POSITIF NEGATIF 3,71E-16 2,71E-17 5,31E-19

31 NETRAL NETRAL 2,03E-05 4,17E-05 5,09E-05

32 POSITIF POSITIF 1,89E-14 9,08E-17 5,71E-15

33 POSITIF NEGATIF 2,75E-22 3,14E-23 3,49E-23

34 POSITIF POSITIF 7,36E-18 2,86E-18 1,40E-18

35 NEGATIF NEGATIF 6,93E-27 6,59E-25 2,11E-25

36 NEGATIF NEGATIF 1,62E-16 2,21E-13 2,02E-15

37 NETRAL NETRAL 1,62E-16 4,54E-16 8,24E-16

38 POSITIF POSITIF

0.00000000

0005561

0.00000000

00004606

0.00000000

00003878

39 POSITIF POSITIF

0.00000000

0005561

0.00000000

00004606

0.00000000

00003878

40 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

41

POSITIF POSITIF 0.00000000

000001611

0.00000000

000000635

4

0.00000000

000000780

0

42 NETRAL POSITIF 4,30E-13 2,88E-13 2,82E-11

43 NETRAL POSITIF 4,30E-13 2,88E-13 2,82E-11

44 NETRAL POSITIF 4,30E-13 2,88E-13 2,82E-11

45 POSITIF POSITIF

0.00000000

08263

0.00000000

005441

0.00000000

03117

46 POSITIF POSITIF

0.00000000

08263

0.00000000

005441

0.00000000

03117

47 POSITIF POSITIF

0.00000000

08263

0.00000000

005441

0.00000000

03117

48 NETRAL NETRAL

0.00000002

116

0.00000002

301

0.00000002

301

49 POSITIF POSITIF 2,35E-24 6,93E-28 1,13E-27

50 NETRAL NETRAL 4,30E-13 5,76E-13 7,05E-12

51 POSITIF POSITIF 2,35E-24 6,93E-28 1,13E-27

52 NEGATIF NETRAL 1,03E-23 3,66E-23 5,79E-24

Page 108: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

90

UIN Syarif Hidayatullah Jakarta

53 POSITIF POSITIF 5,41E-05 2,50E-05 2,52E-05

54 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

55 POSITIF POSITIF 2,58E-12 1,94E-13 1,01E-12

56 NETRAL NETRAL 4,26E-09 3,29E-09 5,39E-09

57 POSITIF POSITIF 4,05E-27 1,16E-29 8,49E-29

58 NEGATIF NEGATIF 1,02E-07 4,42E-07 5,97E-07

59 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

60 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

61 POSITIF POSITIF 9,20E-20 1,69E-21 1,66E-20

62 NETRAL NETRAL

0.00000000

001066

0.00000000

0006046

0.00000000

001339

63 NEGATIF NEGATIF 2,49E-26 2,08E-24 8,13E-26

64 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

65 POSITIF NEGATIF 4,97E-06 2,96E-08 2,03E-09

66 NEGATIF NEGATIF 7,78E-05 7,87E-03 2,04E-04

67 NETRAL NETRAL 0.00008398 0.00008758 0.0004852

68 NEGATIF NEGATIF

0.00000000

0005331

0.00000000

002418

0.00000000

0006699

69

NETRAL NETRAL

0.00000000

000000134

3

0.00000000

000000158

8

0.00000000

000000158

8

70 NEGATIF NEGATIF 0.00008398

0.00026274

3 0.00009704

71 POSITIF POSITIF 1,78E-20 1,25E-22 1,16E-22

72 POSITIF NETRAL 3,69E-34 2,39E-35 1,16E-34

73 NETRAL NETRAL

0.00000002

116

0.00000002

301

0.00000002

301

74 NETRAL NETRAL

0.00000002

116

0.00000002

301

0.00000002

301

75 NETRAL NETRAL

0.00000002

116

0.00000002

301

0.00000002

301

76 NEGATIF NEGATIF 1,09E-30 1,30E-29 5,44E-31

77 POSITIF POSITIF 1,93E-26 3,94E-28 1,63E-27

78 POSITIF POSITIF 1,93E-26 3,94E-28 1,63E-27

Page 109: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

91

UIN Syarif Hidayatullah Jakarta

79 POSITIF POSITIF 1,93E-26 3,94E-28 1,63E-27

80 POSITIF POSITIF 1,93E-26 3,94E-28 1,63E-27

81 POSITIF POSITIF 1,93E-26 3,94E-28 1,63E-27

82 POSITIF POSITIF

0.00000000

000008059

0.00000000

000007625

0.00000000

000002730

83 NEGATIF NEGATIF

0.00000001

410

0.00000003

559

0.00000000

7993

84 NETRAL NETRAL 2,53E-31 8,19E-32 1,85E-30

85 POSITIF POSITIF 2,30E-08 9,87E-09 2,98E-09

86 NETRAL NETRAL 6,77E-08 8,35E-07 3,07E-05

87 POSITIF POSITIF 5,01E-07 2,74E-08 5,13E-08

88 POSITIF POSITIF

0.00000503

6

0.00000018

40

0.00000059

32

89

POSITIF POSITIF 0.00000000

000004298

0.00000000

000000794

2

0.00000000

000000864

3

90 POSITIF POSITIF 4,36E-25 4,12E-26 2,36E-25

91 NEGATIF NETRAL 2,02E-31 8,65E-31 4,10E-31

92 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

93 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

94 NEGATIF POSITIF 8,83E-14 1,21E-13 2,69E-14

95 NETRAL NETRAL

0.00000002

116

0.00000002

301

0.00000002

301

96 NETRAL NETRAL 0.00008398 0.00008758 0.00008758

97 NEGATIF NETRAL 2,03E-05 6,26E-05 2,52E-05

98 NEGATIF NETRAL 2,03E-05 1,00E-04 5,11E-05

99 NETRAL NETRAL

0.00000002

116

0.00000002

301

0.00000002

301

100 NETRAL NETRAL

0.00000006

348

0.00000002

301

0.00000012

74

Page 110: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

92

UIN Syarif Hidayatullah Jakarta

5.2.2 Hasil Klasifikasi Sentimen Kombinasi Algoritma K-NN dan

Pendekatan Lexicon

Sub-bab ini menjelaskan hasil dari klasifikasi sentimen 100 data uji

yang bersumber dari Twitter berkaitan dengan komentar netizen terhadap

calon pilpres 2019 bernama Joko Widodo. Klasifikasi dilakukan

menggunakan kombinasi algoritma K-NN sebagai hasil klasifikasi dan

pendekatan lexicon untuk data latih yang ditentukan berdasarkan ke 5

parameter nilai k pada algoritma K-NN. Berikut hasil klasifikasi sentimen 100

data uji beserta gambar 5.1 tentang gambaran tabel perhitungan K-NN .

Tabel 5. 2 Hasil klasifikasi sentimen kombinasi algoritma K-NN dan Lexicon

Data

ke-n

Klasifikasi algoritma K-NN dengan 5 parameter Kelas

Sebenarnya k=1 k=3 k=5 k=9 k=10

1 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

2 NEGATIF POSITIF POSITIF POSITIF POSITIF NEGATIF

3 NETRAL NEGATIF NEGATIF NETRAL NETRAL NEGATIF

4 NETRAL NETRAL NETRAL NETRAL POSITIF NEGATIF

5 NETRAL NETRAL POSITIF NETRAL NEGATIF NETRAL

6 NEGATIF NEGATIF NEGATIF POSITIF POSITIF NEGATIF

7 NETRAL NETRAL NETRAL NETRAL NETRAL NEGATIF

8 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

9 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

10 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

11 NETRAL NETRAL NETRAL NETRAL NETRAL NEGATIF

12 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

13 POSITIF POSITIF POSITIF POSITIF POSITIF NEGATIF

14 POSITIF NETRAL NEGATIF NEGATIF NETRAL NETRAL

15 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

16 POSITIF NETRAL NETRAL POSITIF POSITIF NEGATIF

17 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

18 POSITIF NETRAL POSITIF POSITIF POSITIF POSITIF

19 NETRAL NETRAL NETRAL NEGATIF NEGATIF NEGATIF

20 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

Page 111: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

93

UIN Syarif Hidayatullah Jakarta

21 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

22 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

23 NETRAL NETRAL NEGATIF NETRAL NETRAL POSITIF

24 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

25 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

26 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

27 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

28 NETRAL NETRAL NEGATIF NEGATIF NEGATIF NEGATIF

29 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

30 POSITIF POSITIF POSITIF POSITIF POSITIF NEGATIF

31 POSITIF POSITIF NETRAL NETRAL NETRAL NETRAL

32 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

33 NEGATIF NEGATIF NETRAL POSITIF POSITIF NEGATIF

34 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

35 POSITIF POSITIF NETRAL NETRAL NETRAL NEGATIF

36 NETRAL NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

37 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

38 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

39 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

40 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

41 NETRAL NETRAL POSITIF POSITIF POSITIF POSITIF

42 NETRAL POSITIF POSITIF NETRAL POSITIF POSITIF

43 NETRAL POSITIF POSITIF NETRAL POSITIF POSITIF

44 NETRAL POSITIF POSITIF NETRAL POSITIF POSITIF

45 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

46 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

47 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

48 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

49 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

50 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

51 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

Page 112: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

94

UIN Syarif Hidayatullah Jakarta

52 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NETRAL

53 NETRAL NETRAL POSITIF POSITIF POSITIF POSITIF

54 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

55 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

56 NEGATIF NEGATIF NETRAL POSITIF POSITIF NETRAL

57 POSITIF POSITIF NEGATIF NETRAL POSITIF POSITIF

58 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

59 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

60 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

61 NETRAL NETRAL NETRAL POSITIF POSITIF POSITIF

62 NETRAL POSITIF POSITIF POSITIF POSITIF NETRAL

63 NEGATIF NETRAL NEGATIF POSITIF POSITIF NEGATIF

64 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

65 POSITIF POSITIF POSITIF POSITIF POSITIF NEGATIF

66 NETRAL NETRAL NEGATIF NEGATIF NEGATIF NEGATIF

67 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

68 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

69 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

70 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

71 POSITIF NETRAL POSITIF POSITIF POSITIF POSITIF

72 POSITIF NETRAL NETRAL NETRAL NETRAL NETRAL

73 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

74 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

75 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

76 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF

77 NETRAL NETRAL POSITIF POSITIF POSITIF POSITIF

78 NETRAL NETRAL POSITIF POSITIF POSITIF POSITIF

79 NETRAL NETRAL POSITIF POSITIF POSITIF POSITIF

80 NETRAL NETRAL POSITIF POSITIF POSITIF POSITIF

81 NETRAL NETRAL POSITIF POSITIF POSITIF POSITIF

82 NEGATIF POSITIF POSITIF NEGATIF NEGATIF POSITIF

Page 113: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

95

UIN Syarif Hidayatullah Jakarta

83 POSITIF NEGATIF POSITIF POSITIF POSITIF NEGATIF

84 NEGATIF NEGATIF NEGATIF NETRAL NETRAL NETRAL

85 NETRAL NETRAL POSITIF POSITIF POSITIF POSITIF

86 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

87 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

88 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

89 NETRAL NETRAL NEGATIF POSITIF POSITIF POSITIF

90 POSITIF POSITIF POSITIF POSITIF POSITIF POSITIF

91 NEGATIF NEGATIF NETRAL POSITIF POSITIF NETRAL

92 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

93 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

94 NETRAL NETRAL POSITIF NEGATIF NEGATIF POSITIF

95 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

96 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

97 NEGATIF NEGATIF NEGATIF NEGATIF NEGATIF NETRAL

98 POSITIF POSITIF POSITIF NEGATIF NEGATIF NETRAL

99 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

100 NETRAL NETRAL NETRAL NETRAL NETRAL NETRAL

Gambar 5. 1 Perhitungan tabel K-NN

Page 114: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

96

UIN Syarif Hidayatullah Jakarta

5.2.3 Analisa Hasil Tingkat Akurasi Kombinasi Algoritma Naive Bayes

dan K-NN dengan Pendekatan Lexicon

Sub-bab ini akan menjelaskan mengenai analisa hasil tingkat akurasi

algoritma naive bayes dan algoritma K-NN dengan pendekatan lexicon

menggunakan tabel confusion matrix. Pada algoritma naive bayes pengujian

dilakukan sekali untuk menghitung nilai akurasi dan algoritma K-NN

pengujian dilakukan terhadap nilai k dalam 5 nilai yaitu k=1, k=3, k=5 K=9

dan k=10. Data latih yang digunakan adalah berjumlah 900 dokumen. Dan

100 dokumen data uji baru.

a. Hasil tingkat akurasi algoritma naive bayes dengan pendekatan lexicon.

Tabel 5. 3 Hasil Pengujian Naive Bayes

Sentimen Kelas hasil prediksi

Positif Negatif Netral

Kelas

Sebenarnya

Positif a=31 b=1 c=4

Negatif d= 5 e=18 f =3

Netral g=2 h=4 i=32

Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai

akurasi sebagai berikut :

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 31 + 18 + 32

31 + 1 + 4 + 5 + 18 + 3 + 2 + 4 + 32× 100

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 81

100× 100 = 81%

b. Hasil Tingkat Akurasi Kombinasi Algoritma K-NN dan Lexicon dengan

nilai k pada algoritma K-NN sama dengan 1.

Tabel 5. 4 Tabel Hasil Pengujian k = 1

Sentimen Kelas hasil prediksi

Positif Negatif Netral

Kelas

Sebenarnya

Positif a=20 b=1 c=15

Negatif d= 6 e=12 f =8

Netral g=4 h=5 i=29

Page 115: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

97

UIN Syarif Hidayatullah Jakarta

Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai

akurasi sebagai berikut :

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 20 + 12 + 29

20 + 1 + 15 + 6 + 12 + 8 + 4 + 5 + 29× 100

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 61

100× 100 = 61%

c. Hasil Tingkat Akurasi Kombinasi Algoritma K-NN dan Lexicon dengan

nilai k pada algoritma K-NN sama dengan 3.

Tabel 5. 5 Tabel Hasil Pengujian k = 3

Sentimen Kelas hasil prediksi

Positif Negatif Netral

Kelas

Sebenarnya

Positif a=22 b=0 c=14

Negatif d=5 e=13 f=8

Netral g=3 h=5 i=30

Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai

akurasi sebagai berikut :

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 22 + 13 + 30

22 + 0 + 14 + 5 + 13 + 8 + 3 + 5 + 30× 100

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 65

100× 100 = 65%

d. Hasil Tingkat Akurasi Kombinasi Algoritma K-NN dan Lexicon dengan

nilai k pada algoritma K-NN sama dengan 5.

Tabel 5. 6 Tabel Hasil Pengujian k = 5

Sentimen Kelas hasil prediksi

Positif Negatif Netral

Kelas

Sebenarnya

Positif a=32 b=3 c=1

Negatif d=5 e=14 f=7

Netral g=3 h=4 i=31

Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai

akurasi sebagai berikut :

Page 116: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

98

UIN Syarif Hidayatullah Jakarta

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 32 + 14 + 31

32 + 3 + 1 + 5 + 14 + 7 + 3 + 4 + 31× 100

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 77

100× 100 = 77%

e. Hasil Tingkat Akurasi Kombinasi Algoritma K-NN dan Lexicon dengan

nilai k pada algoritma K-NN sama dengan 9.

Tabel 5. 7 Tabel Hasil Pengujian k = 9

Sentimen Kelas hasil prediksi

Positif Negatif Netral

Kelas

Sebenarnya

Positif a=29 b=2 c=5

Negatif d=9 e=12 f=5

Netral g=3 h=4 i=31

Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai

akurasi sebagai berikut :

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 29 + 12 + 31

29 + 2 + 5 + 9 + 12 + 5 + 3 + 4 + 31× 100

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 72

100× 100 = 72%

f. Hasil Tingkat Akurasi Kombinasi Algoritma K-NN dan Lexicon dengan

nilai k pada algoritma K-NN sama dengan 10

Tabel 5. 8 Tabel Hasil Pengujian k =10

Sentimen Kelas hasil prediksi

Positif Negatif Netral

Kelas

Sebenarnya

Positif a=33 b=2 c=1

Negatif d=10 e=12 f=4

Netral g=3 h=4 i=31

Berdasarkan hasil pengujian dari tabel diatas dapat diambil nilai

akurasi sebagai berikut :

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 33 + 12 + 31

33 + 2 + 1 + 10 + 12 + 4 + 3 + 4 + 31× 100

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 76

100× 100 = 76%

Page 117: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

99

UIN Syarif Hidayatullah Jakarta

Keterangan :

a = jumlah record positif yang diklasifikasikan sebagai positif

b = jumlah record positif yang diklasifikasikan sebagai negatif

c = jumlah record positif yang diklasifikasikan sebagai netral

d = jumlah record negatif yang diklasifikasikan sebagai positif

e = jumlah record negatif yang diklasifikasikan sebagai negatif

f = jumlah record negatif yang diklasifikasikan sebagai netral

g = jumlah record netral yang diklasifikasikan sebagai positif

h = jumlah record netral yang diklasifikasikan sebagai negatif

i = jumlah record netral yang diklasifikasikan sebagai netral

Secara keseluruhan hasil eksperimen ke 6 skenario pada penelitian ini

dirangkum berdasarkan gambar 5.1 sebagai berikut.

Gambar 5. 2 Hasil Eksperimen Naive Bayes dan K-NN

81

6165

7772

7681

66

73

80

70 71

83

6066

84

7580

86

5561

88

80

90

0

10

20

30

40

50

60

70

80

90

100

Naive Bayes K-NN (k=1) K-NN (k=3) K-NN (k=5) K-NN (k=9) K-NN (k=10)

Hasil Eksperimen Naive Bayes dan K-NN

Akurasi Presisi f-measure recall

Page 118: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

100

UIN Syarif Hidayatullah Jakarta

Gambar 5. 3 Grafik Tingkat Akurasi

Gambar 5. 4 Grafik Tingkat Presisi

81

6165

7772

76

0

10

20

30

40

50

60

70

80

90

Naive Bayes K-NN (k=1) K-NN (k=3) K-NN (k=5) K-NN (k=9) K-NN (k=10)

Analisis Kinerja Akurasi Naive Bayes dan K-NN

81

66

73

80

70 71

0

10

20

30

40

50

60

70

80

90

Naive Bayes K-NN (k=1) K-NN (k=3) K-NN (k=5) K-NN (k=9) K-NN (k=10)

Analisis Tingkat Presisi Naive Bayes dan K-NN

Page 119: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

101

UIN Syarif Hidayatullah Jakarta

Gambar 5. 5 Grafik Tingkat Recall

Gambar 5. 6 Grafik Tingkat F-Measure

Berdasarkan grafik pada gambar 5.1 maka didapatkan hasil analisis

sebagai berikut :

1. Perbandingan algoritma naive bayes dan K-NN memiliki tingkat akurasi,

error rate, presisi dan recall yang berbeda disetiap ekperimen yang

dilakukan.

86

5561

88

80

90

0

10

20

30

40

50

60

70

80

90

100

Naive Bayes K-NN (k=1) K-NN (k=3) K-NN (k=5) K-NN (k=9) K-NN (k=10)

Analisis Tingkat Recall Naive Bayes dan K-NN

83

6066

84

7580

0

10

20

30

40

50

60

70

80

90

Naive Bayes K-NN (k=1) K-NN (k=3) K-NN (k=5) K-NN (k=9) K-NN (k=10)

Tingkat F-Measure Naive Bayes dan K-NN

Page 120: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

102

UIN Syarif Hidayatullah Jakarta

2. Pada eksperimen pertama, naive bayes menghasilkan tingkat akurasi

sebesar 81% dengan error rate sebesar 19%, f-measure sebesar 0,83,

presisi sebesar 0,81 dan recall sebesar 86%.

3. Pada eksperimen kedua, K-NN dengan parameter k=1 menghasilkan

tingkat akurasi sebesar 61% dengan error rate sebesar 39%, f-measure

sebesar 0,60, presisi sebesar 0,66 dan recall sebesar 55%. Perbedaan

eksperimen pertama ke eksperimen kedua mengalami selisih akurasi

sebesar 20%.

4. Pada eksperimen ke tiga, K-NN dengan parameter k=3 menghasilkan

tingkat akurasi sebesar 66% dengan error rate sebesar 35%, f-measure

sebesar 0,66, presisi sebesar 0,73 dan recall sebesar 61%. Pada

eksperimen ketiga tingkat akurasi mengalami peningkatan 4% pada

paramater k=3.

5. Pada eksperimen keempat, K-NN dengan parameter k=5 menghasilkan

tingkat akurasi sebesar 77% dengan error rate sebesar 23%, f-measure

sebesar 0,84, presisi sebesar 0,80 dan recall sebesar 88%. Eksperimen

keempat mengalami peningkatan akurasi tertinggi dibandingkan

sebelumnya.

6. Pada eksperimen kelima, K-NN dengan parameter k=9 menghasilkan

tingkat akurasi sebesar 72% dengan error rate sebesar 28%, f-measure

sebesar 0,75, presisi sebesar 0,70 dan recall sebesar 80%. Eksperimen

kelima akurasi turun 5 % dari eksperimen keempat.

7. Pada eksperimen keenam, K-NN dengan parameter k=10 menghasilkan

tingkat akurasi sebesar 76% dengan error rate sebesar 24%, f-measure

sebesar 0,80, presisi sebesar 0,71 dan recall sebesar 91%. Eksperimen

keenam merupakan eksperimen tertinggi kedua dalam algoritma K-NN.

8. Dari keenam eksperimen/skenario yang dilakukan peneliti, tingkat

tertinggi akurasi ada pada eksperimen pertama algoritma naive bayes

dengan tingkat akurasi sebesar 81% dan tingkat akurasi pada algoritma

K-NN tingkat akurasi tertinggi pada parameter k = 5 sebesar 77%.

Sementara tingkat terendah akurasi jatuh pada eksperimen kedua

algoritma K-NN dengan parameter k = 1.

Page 121: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

103

UIN Syarif Hidayatullah Jakarta

9. Perhitungan recall tertinggi jatuh pada eksperimen keenam sebesar 91%.

Semakin tinggi nilai recall yang dihasilkan maka sistem dapat

memprediksi kelas yang diidentifikasi dengan benar.

10. Perhitungan f-measure terhadap keenam eksperimen yang tertinggi ada

pada eksperimen kelima, serta kedua diikuti dengan tingkat akurasi yang

paling tinggi. Sementara nilai f-measure terkecil ada pada eksperimen

pertama diikuti dengan tingkat akurasi yang paling rendah. Artinya nilai

f-measure menunjukan semakin tinggi nilai f-measure (mendekati nilai

1) yang dihasilkan semakin bagus kerja klasifikasi dalam memprediksi.

11. Dimulai dari eksperimen kedua dan eksperimen ketiga, tingkat

akurasinya berada dalam tingkat yang rendah dibawah 70 persen, ini

disebabkan karena penentuan nilai k pada algoritma K-NN yang kecil.

Namun pada eksperimen selanjutnya 4 sampai 6 tingkat akurasi naik

turun diatas 70 persen. Penelitian (Oktinas, 2017) menguji nilai k dari

k=5, k=10, k=15, k=20, k=25, k=30,k=35,k=40,k=45,k=50,k=55, dan

k=60, dan nilai k dengan akurasi tertinggi jatuh pada k=10, setelah dari

k =10 akurasi mengalami penurunan sedikit hingga k=60. Pada penelitian

yang dilakukan oleh penulis juga mengalami hal demikian yaitu nilai

akurasi pada K-NN mengalami pola naik sebelum mencapai nilai k

terbaik lalu turun setelah mencapai nilai k terbaik.

5.2.4 Analisis Hasil Perbandingan Akurasi Algoritma Naive Bayes

Dengan Algoritma K-NN

Pada sub-bab ini akan dibahas tingkat perbandingan akurasi antara

kombinasi algortima Naive Bayes dan pendekatan lexicon dibandingkan

dengan algortima K-NN. Pengujian ini dilakukan untuk mengetahui adanya

peningkatan akurasi dalam menentukan orientasi sentimen twitter. Berikut

merupakan hasil uji coba yang dilakukan oleh penulis.

Page 122: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

104

UIN Syarif Hidayatullah Jakarta

Gambar 5. 7 Perbandingan Akurasi Naive Bayes Dan K-NN

Berdasarkan gambar grafik 5.6 maka didapatkan hasil analisis yaitu

algoritma naive bayes memiliki tingkat akurasi yang lebih tinggi

dibandingkan dengan algoritma K-NN. Uji coba yang dilakukan pada naive

bayes menghasilkan akurasi sebesar 81% sedangkan algoritma K-NN pada

nilai tertinggi menggunakan parameter k adalah 5 tingkat akurasi yang

dihasilkan sebesar 77%. Tingkat akurasi algoritma K-NN sedikit lebih rendah

disebabkan oleh banyaknya data yang diklasifikasi tidak sesuai. Apabila

pembobotan query uji terhadap data latih bernilai 0 (tidak ada fitur yang

ditemukan sesuai dengan data latih) maka perhitungan cosine similarity untuk

penentuan ketetanggan data uji terhadap data latih sulit diketahui dan akan

bernilai 0 sehingga pengklasifikasian sulit ditentukan dan berimbas

pengklasifikasian bernilai netral. Pada pengujian ini banyak data sentimen

negatif yang diklasifikasikan sebagai positif.

81

77

75

76

77

78

79

80

81

82

Naive Bayes K-NN (terbaik)

Akurasi

Page 123: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

105

UIN Syarif Hidayatullah Jakarta

BAB VI

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Berdasarkan rumusan masalah dan penejelasan yang telah peneliti

deskripsikan pada bab sebelumnya, maka peneliti dapat menarik kesimpulan

sebagai berikut:

1. Kombinasi algoritma klasifikasi supervised learning dengan pendekatan

lexicon dapat diterapkan pada analisis sentimen kata.

2. Nilai k optimal dalam melakukan proses klasifikasi algoritma K-NN

mencapai tingkat akurasi pada k=5 dengan tingkat akurasi mencapai 77%

menggunakan dataset hasil crawling data twitter dengan kata kunci

pilpres 2019 dan Jokowi.

3. Pada perbandingan algoritma Naive Bayes dengan K-NN selisih tingkat

akurasi mencapai 4%. Berdasarkan pengujian yang telah dilakukan oleh

peneliti, kombinasi algoritma naive bayes dan K-NN dengan pendekatan

lexicon telah terbukti meningkatkan akurasi dalam mengklasifikasi

sentimen.

4. Akurasi pada nilai k dalam algoritma K-NN mengalami pola naik

sebelum mencapai nilai k terbaik lalu mengalami penurunan tingkat

akurasi setelah nilai k terbaik.

5. Dengan penggunaan jumlah data latih yang sedikit, naive bayes memiliki

sedikit kelebihan dibandingkan K-NN yang mungkin menyebabkan

akurasi naive bayes sedikit diatas K-NN.

6.2 Saran

Penulis menyadari bahwa aplikasi orientasi sentimen ini masih

memiliki beberapa kekurangan dan keterbatasan. Oleh karena itu, ada

beberapa hal yang perlu dipertimbangkan untuk mengembangkan aplikasi ini

agar lebih baik, yaitu:

1. Sistem hanya dapat mengklasifikasi data teks dan berbahasa Indonesia,

diharapkan dapat dikembangkan dalam berbagai bahasa.

Page 124: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

106

UIN Syarif Hidayatullah Jakarta

2. Adanya peningkatan koleksi kamus sentimen sehingga dapat

meningkatkan akurasi.

3. Metode orientasi sentimen diharapkan dapat dikembangkan dengan

penggunaan teknis bigram dan POST tagging.

4. Diharapkan pengembangan selanjutnya menggunakan bahasa

pemrograman python untuk mempercepat processing data, dan

mendukung untuk semua platform.

Page 125: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

107

UIN Syarif Hidayatullah Jakarta

DAFTAR PUSTAKA

Anonim. 2018. https://infopemilu.kpu.go.id/ Diakses pada 04 April 2018.

Asosiasi Penyelenggara Jasa Internet Indonesia (APJII). 2018.

apjii.or.id/survei2017 Diakses 04 April 2018.

Bagir Muhammad, Indah Ayu Yuliani. 2012. Database Introduction. Depok:

CCIT-FTUI.

Bhonde, Rhesma et al.(2015). Sentiment Analysis Based on Dictionary

Approach.

Bintana, Rizqa Raiqa .(2012). Penerapan Model Okapi Bm25 Pada Sistem

Temu Kembali Informasi Tugas Akhir Teknik Informatika UIN Suska

Riau.

Devid Haryalesmana. 2018.https://github.com/masdevid/ID-

OpinionWords/blob/master/positive.txt Diakses pada 28 Februari

2018.

Brownlee, Jason 2016. Supervised Learning and Unsupervised Learning.

https://machinelearningmastery.com/supervised-and-unsupervised-

machine-learning-algorithms/. Diakses pada 10 April 2018.

Feldman, R., & Sanger, J. (2007). Advanced Approaches in Analyzing

Unstructured Data, The Text Mining Handbook. New York: Cambirdge

UP.

Hotho A. (2005). A Brief Survey of Text Mining. University of Kassel.

Indriani, A. (2014). Klasifikasi Data Forum dengan menggunakan Metode

Naïve Bayes Classifier. Seminar Nasional Aplikasi Teknologi Informasi

(SNATI), 5–10.

Kadir, A. (2012). Algoritma dan Pemrograman Menggunakan C & C++. (B.

R. W, Ed.) (1st ed.). Yogyakarta: Andi

Kasman, Akhmad Dharma. 2015. Trik Kolaborasi ANDROID dengan PHP

dan MySQL. Yogyakarta. Lokomedia.

Page 126: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

108

UIN Syarif Hidayatullah Jakarta

Krisandi, Nobertus.,dkk (2013). Algoritma k-Nearest Neighbor Dalam

Klasifikasi Data Hasil Produksi Kelapa Sawit Pada PT.Minamas

Kecamatan Parindu. Buletin Ilmiah Math.Stat. dan Terapannya

(Bimaster) Volume 02, No.01 2013: hal. 33-38

Liu, B. (2012). Sentiment Analysis and Opinion Mining. (H. Graeme, Ed.)

(1st ed.). Chicago : Morgan & Claypool Publisher. Retrieved from

https://www.cs.uic.edu/~liub/FBS/SentimentAnalysis-and-

OpinionMining.pdf

Liu, B. (2015). Sentiment Analysis: Opinion Mining, Sentiment, and

Emotions. (H. Graeme, Ed.) (1st ed.). Chicago : Morgan & Claypool

Publisher. Retrieved from https://www.cs.uic.edu/~liub/FBS/chapter-

1-and-chapter-2.pdf

Madani et al. (2010). Wireless Sensor Network : Modelling and Simulation

.COMSATS Institute Information of Technology Abbotabad .

Matulatuwa, F. M., Studi, P., Sistem, M., Informasi, F. T., Kristen, U., &

Wacana, S. (2017). Text Mining dengan Metode Lexicon Based untuk

Sentiment Analysis Pelayanan PT. POS Indonesia Melalui Media

Sosial Twitter Jurnal, (September).

Oktinas, Willa (2017). Analisis Sentimen Pada Acara Televisi Menggunakan

Improved K-Neasrest Neighbor Tugas Akhir Teknik Informatika.

Medan: Universitas Sumatra Utara

Pang, B., & Lee, L. (2008). Opinion Mining and Sentiment Analysis.

Foundations and Trends in Information Retrieval , 1-2.

Prasetyo, E. (2012). Data Mining Konsep dan Aplikasi Menggunakan Matlab

(1st ed.).

Lestari, Agnes Rossi Trisna, dkk (2017). Analisis Sentimen Tentang Opini

Pilkada DKI 2017 Pada Dokumen Twitter Berbahasa Indonesia

Menggunakan Naive Bayes dan Pembobotan Emoji Volume 01,No 12

Desember 2017 : hal. 1718 – 1724

Tala, Fadillah Z (2003). A Study Of Stemming Effects on Information

Retrieval in Bahasa Indonesia. Retrieved from

Page 127: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

109

UIN Syarif Hidayatullah Jakarta

https://pdfs.semanticscholar.org/8ed9/c7d54fd3f0b1ce3815b2eca8214

7b771ca8f.pdf

Suyanto. 2017. Data Mining Untuk Klasifikasi dan Klasterisasi Data.

Bandung: Informatika

Yosnaningsih, Y Violya. 2015. Klasifikasi Dokumen Bahasa Jawa

Menggunakan Metode Naïve Bayesian

Page 128: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

110

UIN Syarif Hidayatullah Jakarta

LAMPIRAN

KODE PROGRAM

Models – m_doc_classifier.php

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class M_doc_classifier extends CI_Model{

function __construct(){

parent::__construct();

//error_reporting(0);

}

//----------------------TRAINING NAIVE BAYES----------------------\\

//ambil array semua term dari data latih positif

public function count_total(){

$this->load->database();

$sql = "SELECT * from twitlog_latih";

$query = $this->db->query($sql);

$hasil = $query->num_rows();

$row = $query->result();

return $hasil;

}

//hitung total review di data latih

public function count_total_traindata(){

$this->db->select('id_tweet');

$this->db->from('twitlog_latih');

$this->db->where('kategori_tweet','DATA LATIH');

Page 129: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

111

UIN Syarif Hidayatullah Jakarta

$total_traindata = $this->db->count_all_results();

return $total_traindata;

}

//hitung total review positif di data latih

public function count_pos_traindata(){

$this->db->select('id_tweet');

$this->db->from('twitlog_latih');

$this->db->where('sentimen_tweet','POSITIF');

$this->db->where('kategori_tweet','DATA LATIH');

$total_pos_traindata = $this->db->count_all_results();

return $total_pos_traindata;

}

//hitung total review negatif di data latih

public function count_neg_traindata(){

$this->db->select('id_tweet');

$this->db->from('twitlog_latih');

$this->db->where('sentimen_tweet','NEGATIF');

$this->db->where('kategori_tweet','DATA LATIH');

$total_neg_traindata = $this->db->count_all_results();

return $total_neg_traindata;

}

//hitung total review netral di data latih

public function count_net_traindata(){

$this->db->select('id_tweet');

$this->db->from('twitlog_latih');

$this->db->where('sentimen_tweet','NETRAL');

$this->db->where('kategori_tweet','DATA LATIH');

$total_neg_traindata = $this->db->count_all_results();

return $total_neg_traindata;

Page 130: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

112

UIN Syarif Hidayatullah Jakarta

}

//PRIOR PROBABILITY

//prior probability kelas positif

public function pos_prior_prob(){

$total_traindata = $this->count_total_traindata();

$pos_traindata = $this->count_pos_traindata();

//prior prob positif = jumlah data latih positif/jumlah semua

data latih

$pos_prior = $pos_traindata/$total_traindata;

return $pos_prior;

}

//prior probability kelas negatif

public function neg_prior_prob(){

$total_traindata = $this->count_total_traindata();

$neg_traindata = $this->count_neg_traindata();

//prior prob negatif = jumlah data latih negatif/jumlah semua

data latih

$neg_prior = $neg_traindata/$total_traindata;

return $neg_prior;

}

public function net_prior_prob(){

$total_traindata = $this->count_total_traindata();

$net_traindata = $this->count_net_traindata();

//prior prob negatif = jumlah data latih negatif/jumlah semua

data latih

Page 131: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

113

UIN Syarif Hidayatullah Jakarta

$net_prior = $net_traindata/$total_traindata;

return $net_prior;

}

//ambil array semua term dari data latih positif

public function array_pos_terms(){

//fungsi awal 100-105

$this->db->select('stemming');

$this->db->from('processing_query');

$this->db->join('twitlog_latih', 'twitlog_latih.id_tweet =

processing_query.id_tweet');

$this->db->where('twitlog_latih.sentimen_tweet','POSITIF');

$this->db->where('twitlog_latih.kategori_tweet','DATA

LATIH');

$array_pos_terms = $this->db->get()->result_array();

$array_pos_terms=

array_column($array_pos_terms,'stemming');

$all_pos_terms = implode(" ",$array_pos_terms);

$all_pos_terms = preg_replace('/\s+/', ' ', $all_pos_terms);

$all_pos_terms = trim($all_pos_terms);

$array_pos_terms = explode(" ",$all_pos_terms);

return $array_pos_terms;

}

//ambil array semua term dari data latih negatif

public function array_neg_terms(){

$this->db->select('stemming');

$this->db->from('processing_query');

Page 132: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

114

UIN Syarif Hidayatullah Jakarta

$this->db->join('twitlog_latih', 'twitlog_latih.id_tweet =

processing_query.id_tweet');

$this->db-

>where('twitlog_latih.sentimen_tweet','NEGATIF');

$this->db->where('twitlog_latih.kategori_tweet','DATA

LATIH');

$array_neg_terms = $this->db->get()->result_array();

$array_neg_terms=

array_column($array_neg_terms,'stemming');

$all_neg_terms = implode(" ",$array_neg_terms);

$all_neg_terms = preg_replace('/\s+/', ' ', $all_neg_terms);

$all_neg_terms = trim($all_neg_terms);

$array_neg_terms = explode(" ",$all_neg_terms);

return $array_neg_terms;

}

//ambil array semua term dari data latih netral

public function array_net_terms(){

$this->db->select('stemming');

$this->db->from('processing_query');

$this->db->join('twitlog_latih', 'twitlog_latih.id_tweet =

processing_query.id_tweet');

$this->db->where('twitlog_latih.sentimen_tweet','NETRAL');

$this->db->where('twitlog_latih.kategori_tweet','DATA

LATIH');

$array_net_terms = $this->db->get()->result_array();

$array_net_terms=

array_column($array_net_terms,'stemming');

$all_net_terms = implode(" ",$array_net_terms);

$all_net_terms = preg_replace('/\s+/', ' ', $all_net_terms);

$all_net_terms = trim($all_net_terms);

Page 133: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

115

UIN Syarif Hidayatullah Jakarta

$array_net_terms = explode(" ",$all_net_terms);

return $array_net_terms;

}

//ambil array semua term dari data uji positif

public function array_pos_terms2(){

$this->db->select('stemming');

$this->db->from('processing_query');

$this->db->join('twitlog_latih', 'twitlog_latih.id_tweet =

processing_query.id_tweet');

$this->db->where('twitlog_latih.sentimen_tweet','POSITIF');

$this->db->where('twitlog_latih.kategori_tweet','DATA

UJI');

$array_pos_terms = $this->db->get()->result_array();

$array_pos_terms=

array_column($array_pos_terms,'stemming');

$all_pos_terms = implode(" ",$array_pos_terms);

$all_pos_terms = preg_replace('/\s+/', ' ', $all_pos_terms);

$all_pos_terms = trim($all_pos_terms);

$array_pos_terms = explode(" ",$all_pos_terms);

return $array_pos_terms;

}

//ambil array semua term dari data uji negatif

public function array_neg_terms2(){

$this->db->select('stemming');

$this->db->from('processing_query');

$this->db->join('twitlog_latih', 'twitlog_latih.id_tweet =

processing_query.id_tweet');

Page 134: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

116

UIN Syarif Hidayatullah Jakarta

$this->db-

>where('twitlog_latih.sentimen_tweet','NEGATIF');

$this->db->where('twitlog_latih.kategori_tweet','DATA

UJI');

$array_neg_terms = $this->db->get()->result_array();

$array_neg_terms=

array_column($array_neg_terms,'stemming');

$all_neg_terms = implode(" ",$array_neg_terms);

$all_neg_terms = preg_replace('/\s+/', ' ', $all_neg_terms);

$all_neg_terms = trim($all_neg_terms);

$array_neg_terms = explode(" ",$all_neg_terms);

return $array_neg_terms;

}

//ambil array semua term dari data uji netral

public function array_net_terms2(){

$this->db->select('stemming');

$this->db->from('processing_query');

$this->db->join('twitlog_latih', 'twitlog_latih.id_tweet =

processing_query.id_tweet');

$this->db->where('twitlog_latih.sentimen_tweet','NETRAL');

$this->db->where('twitlog_latih.kategori_tweet','DATA

UJI');

$array_net_terms = $this->db->get()->result_array();

$array_net_terms=

array_column($array_net_terms,'stemming');

$all_net_terms = implode(" ",$array_net_terms);

$all_net_terms = preg_replace('/\s+/', ' ', $all_net_terms);

$all_net_terms = trim($all_net_terms);

$array_net_terms = explode(" ",$all_net_terms);

return $array_net_terms;

Page 135: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

117

UIN Syarif Hidayatullah Jakarta

}

//ambil array semua term yang unik dari semua data latih (vocabulary)

public function vocabulary(){

$array_terms = $this->all_terms_traindata();

$vocabulary = array_unique($array_terms);

$array_vocabulary = array();

foreach ($vocabulary as $unique_term) {

array_push($array_vocabulary,$unique_term);

}

return $array_vocabulary;

}

//ambil semua term dari semua data latih

public function all_terms_traindata(){

$this->db->select('stemming');

$this->db->from('processing_query');

$this->db->join('twitlog_latih', 'twitlog_latih.id_tweet =

processing_query.id_tweet');

$this->db->where('twitlog_latih.kategori_tweet','DATA

LATIH');

$array_terms = $this->db->get()->result_array();

$array_terms= array_column($array_terms,'stemming');

$all_terms = implode(" ",$array_terms);

$all_terms = preg_replace('/\s+/', ' ', $all_terms);

$all_terms = trim($all_terms);

$array_terms = explode(" ",$all_terms);

return $array_terms;

}

Page 136: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

118

UIN Syarif Hidayatullah Jakarta

//hitung kemunculan (occurences) term t di data latih positif lalu

masukkan nilainya ke dalam array

public function get_pos_occurences(){

$array_pos_occs = array();

$vocab = $this->vocabulary();

$array_pos_terms = $this->array_pos_terms();

$array_pos_values = array_count_values($array_pos_terms);

foreach ($vocab as $term) {

if(isset($array_pos_values[$term])){

$array_pos_occs[] =

$array_pos_values[$term];

}

else{

$array_pos_occs[] = 0;

}

}

return $array_pos_occs;

}

//hitung kemunculan (occurences) term t di data latih negatif lalu

masukkan nilainya ke dalam array

public function get_neg_occurences(){

$array_neg_occs = array();

$vocab = $this->vocabulary();

$array_neg_terms = $this->array_neg_terms();

$array_neg_values = array_count_values($array_neg_terms);

foreach ($vocab as $term) {

if(isset($array_neg_values[$term])){

$array_neg_occs[] =

$array_neg_values[$term];

Page 137: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

119

UIN Syarif Hidayatullah Jakarta

}

else{

$array_neg_occs[] = 0;

}

}

return $array_neg_occs;

}

//hitung kemunculan (occurences) term t di data latih netral lalu

masukkan nilainya ke dalam array

public function get_net_occurences(){

$array_net_occs = array();

$vocab = $this->vocabulary();

$array_net_terms = $this->array_net_terms();

$array_net_values = array_count_values($array_net_terms);

foreach ($vocab as $term) {

if(isset($array_net_values[$term])){

$array_net_occs[] =

$array_net_values[$term];

}

else{

$array_net_occs[] = 0;

}

}

return $array_net_occs;

}

//LIKELIHOOD

//fungsi untuk menghitung likelihood

public function

likelihood($term_occ,$total_term_in_cat,$vocabulary_count){

Page 138: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

120

UIN Syarif Hidayatullah Jakarta

$likelihood =

($term_occ+1)/($total_term_in_cat+$vocabulary_count);//total term in cat =

jumlah folder stemming karena merujuk dari processing query

//$likelihood = log($likelihood); //agar tidak terjadi underflow

return $likelihood;

}

// proses training naive bayes berlangsung

function training()

{

$array_training_terms=array();

//ini menghitung total term di data latih sesuai tabel

sa_vocabulary

$vocab = $this->vocabulary();

//$vocab = $this->all_vocabs2();

//echo $vocab;

$pos_terms_count = count($this->array_pos_terms());

//jumlah semua term di data latih positif

//echo $pos_term_count;

$neg_terms_count = count($this->array_neg_terms());

//jumlah semua term di data latih negatif

//echo $neg_term_count;

$net_terms_count = count($this->array_net_terms());

//jumlah semua term di data latih negatif

//echo $net_term_count;

$array_pos_occ = $this->get_pos_occurences();

$array_neg_occ = $this->get_neg_occurences();

$array_net_occ = $this->get_net_occurences();

$vocab_count = count($vocab); //hitung jumlah semua term di

vocabulary

Page 139: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

121

UIN Syarif Hidayatullah Jakarta

//echo $vocab_count;

//$vocab_count = $vocab;

for($i=0; $i<$vocab_count; $i++){

//hitung likelihood kelas positif dan negatif untuk

setiap term di vocabulary

$pos_likelihood = $this-

>likelihood($array_pos_occ[$i],$pos_terms_count,$vocab_count);

$neg_likelihood = $this-

>likelihood($array_neg_occ[$i],$neg_terms_count,$vocab_count);

$net_likelihood = $this-

>likelihood($array_net_occ[$i],$net_terms_count,$vocab_count);

$array_training_terms[] =

array("term"=>$vocab[$i],"pos_occ"=>$array_pos_occ[$i],"neg_occ"=>$ar

ray_neg_occ[$i],"net_occ"=>$array_net_occ[$i],

"pos_likelihood"=>$pos_likelihood,"neg_likelihood"=>$neg_likelih

ood,"net_likelihood"=>$net_likelihood);

//$array_training_terms[] =

array("term"=>$vocab[$i],"pos_occ"=>$array_pos_occ[$i],"neg_occ"=>$ar

ray_neg_occ[$i],"net_occ"=>$array_net_occ[$i],

//

"pos_likelihood"=>$pos_likelihood,"neg_likelihood"=>$neg_likelih

ood,"net_likelihood"=>$net_likelihood);

}

return $array_training_terms;

}

Page 140: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

122

UIN Syarif Hidayatullah Jakarta

//insert hasil proses training ke database

public function insert_train(){

$this->db->truncate('sa_vocabulary');

$data = $this->training();

$this->db->insert_batch('sa_vocabulary',$data);

}

/*---------------------------PROSES TESTING---------------------------*/

//hitung total review di data uji

public function count_total_testdata(){

$this->db->select('no');

$this->db->from('twitlog_latih');

$this->db->where('kategori_tweet','DATA UJI');

$total_testdata = $this->db->count_all_results();

return $total_testdata;

}

//ambil semua review data uji

public function all_test_docs(){

$this->db->select('twitlog_latih.id_tweet,

processing_query.stemming');

$this->db->from('twitlog_latih');

$this->db->where('twitlog_latih.kategori_tweet','DATA

UJI');

$this->db->join('processing_query',

'processing_query.id_tweet = twitlog_latih.id_tweet');

$array_test_docs = $this->db->get()->result_array();

return $array_test_docs;

}

Page 141: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

123

UIN Syarif Hidayatullah Jakarta

//ambil semua isi tabel vocabulary (frekuensi kemunculan term dan

likelihood)

public function all_vocabs(){

$this->db->select('*');

$this->db->from('sa_vocabulary');

$array_all_vocabs = $this->db->get()->result_array();

return $array_all_vocabs;

}

//ambil semua isi tabel vocabulary (frekuensi kemunculan term dan

likelihood)

public function all_vocabs2(){

$this->load->database();

$query = $this->db->query("SELECT id_term, SUM(pos_occ

+ neg_occ + net_occ) FROM sa_vocabulary GROUP BY id_term") ;

$i = 0;

$summ = 0;

foreach ($query->result_array() as $row) {

$summ += $row['SUM(pos_occ + neg_occ +

net_occ)'];

$i++;

}

return $summ;

}

//normalisasi log posterior probability tapi tidak dipakai

public function normalize_log($pos,$neg,$net){

$max_val = max($pos,$neg,$net);//cari nilai log terbesar

$pos = $max_val/$pos;

$neg = $max_val/$neg;

Page 142: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

124

UIN Syarif Hidayatullah Jakarta

$net = $max_val/$net;

$exp_pos = exp($pos);

$exp_neg = exp($neg);

$exp_net = exp($net);

$pos_prob = $exp_pos/($exp_pos+$exp_neg+$exp_net);

$neg_prob = $exp_neg/($exp_pos+$exp_neg+$exp_net);

$net_prob = $exp_net/($exp_pos+$exp_net+$exp_neg);

$array_results = array("pos_prob"=>$pos_prob,

"neg_prob"=>$neg_prob, "net_prob"=>$net_prob);

return $array_results;

}

//fungsi dummy tanpa log tapi dipakai

public function normalize_log2($pos,$neg,$net){

//$max_val = max($pos,$neg,$net);//cari nilai log terbesar

//$pos = $max_val/$pos;

//$neg = $max_val/$neg;

//$net = $max_val/$net;

$exp_pos = $pos;

$exp_neg = $neg;

$exp_net = $net;

$pos_prob = $exp_pos;

$neg_prob = $exp_neg;

$net_prob = $exp_net;

Page 143: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

125

UIN Syarif Hidayatullah Jakarta

$array_results = array("pos_prob"=>$pos_prob,

"neg_prob"=>$neg_prob, "net_prob"=>$net_prob);

return $array_results;

}

//tentukan kelas sentimen terbaik

public function best_class($positive,$negative,$netral){

if(($positive == $negative) && ($negative ==

$netral))

{

//simpan netral

$best_class = "NETRAL";

}

else if(($positive > $negative) && ($positive >

$netral))

{

//simpan positif

$best_class = "POSITIF";

}

else if(($positive > $negative) && ($positive

== $netral))

{

//simpan positif

$best_class = "POSITIF";

}

else if(($positive < $negative) && ($negative

> $netral))

{

//simpan negatif

$best_class = "NEGATIF";

}

Page 144: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

126

UIN Syarif Hidayatullah Jakarta

else if(($positive < $negative) && ($negative

== $netral))

{

//simpan negatif

$best_class = "NETRAL";

}

else if(($positive > $negative) && ($positive <

$netral))

{

//simpan netral

$best_class = "NETRAL";

}

else if(($positive < $negative) && ($negative

< $netral))

{

//simpan netral

$best_class = "NETRAL";

}

else

{

//simpan netral

$best_class = "NETRAL";

}

return $best_class;

}

//fungsi naive bayes classifier untuk mengklasifikasikan data uji

public function naive_bayes(){

$array_results=array();

Page 145: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

127

UIN Syarif Hidayatullah Jakarta

$vocab = $this->all_vocabs();

$pos_terms_count = count($this->array_pos_terms());

//jumlah semua term di data uji positif

$neg_terms_count = count($this->array_neg_terms());

//jumlah semua term di data uji negatif

$net_terms_count = count($this->array_net_terms());

//jumlah semua term di data uji netral

$vocab_count = count($vocab); //jumlah semua term di

vocabulary

$array_test_docs = $this->all_test_docs(); //ambil semua

review data uji

//print_r($array_test_docs) ;

//fungsi prior dengan log

//$pos_prior_prob = log($this->pos_prior_prob()); //log dari

prior probability kelas positif

//$neg_prior_prob = log($this->neg_prior_prob()); //log dari

prior probability kelas negatif

//$net_prior_prob = log($this->net_prior_prob()); //log dari

prior probability kelas netral

//fungsi prior tanpa log

$pos_prior_prob = $this->pos_prior_prob(); //log dari prior

probability kelas positif tanpa log

$neg_prior_prob = $this->neg_prior_prob(); //log dari prior

probability kelas negatif tanpa log

$net_prior_prob = $this->net_prior_prob(); //log dari prior

probability kelas netral tanpa log

foreach($array_test_docs as $test_doc){ //loop untuk semua

review data uji

$id = $test_doc["id_tweet"];

Page 146: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

128

UIN Syarif Hidayatullah Jakarta

$terms_in_doc = explode(" ", $test_doc["stemming"]);

$total_pos_likelihood = 1;

$total_neg_likelihood = 1;

$total_net_likelihood = 1;

foreach($terms_in_doc as $term){

$pos_likelihood = 1;

$neg_likelihood = 1;

$net_likelihood = 1;

$found = false;

for($i=0; $i < $vocab_count;$i++){

if($vocab[$i]["term"] == $term){

$pos_likelihood =

$vocab[$i]["pos_likelihood"];

$neg_likelihood =

$vocab[$i]["neg_likelihood"];

$net_likelihood =

$vocab[$i]["net_likelihood"];

$found= true;

break;

}

}

if(!$found){

$pos_likelihood = $this-

>likelihood(0,$pos_terms_count,$vocab_count);

$neg_likelihood = $this-

>likelihood(0,$neg_terms_count,$vocab_count);

$net_likelihood = $this-

>likelihood(0,$neg_terms_count,$vocab_count);

}

Page 147: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

129

UIN Syarif Hidayatullah Jakarta

//nilai likelihood didalam 1 dokumen

ditambahkan 1 per satu sesuai class

$total_pos_likelihood *= $pos_likelihood;

$total_neg_likelihood *= $neg_likelihood;

$total_net_likelihood *= $net_likelihood;

}

//echo $total_pos_likelihood;

//posterior probability kelas positif dokumen C = prior

probability x total likelihood

$pos_post_prob = $pos_prior_prob *

$total_pos_likelihood;

//posterior probability kelas negatif dokumen C = prior

probability x total likelihood

$neg_post_prob = $neg_prior_prob *

$total_neg_likelihood;

//echo $neg_post_prob;

//posterior probability kelas netral dokumen C = prior

probability x total likelihood

$net_post_prob = $net_prior_prob *

$total_net_likelihood;

//echo $net_post_prob;

//posterior probability kelas positif dokumen C =

log(prior probability) + total likelihood

//$pos_post_prob = $pos_prior_prob +

$total_pos_likelihood;

//posterior probability kelas negatif dokumen C =

log(prior probability) + total likelihood

Page 148: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

130

UIN Syarif Hidayatullah Jakarta

//$neg_post_prob = $neg_prior_prob +

$total_neg_likelihood;

//posterior probability kelas netral dokumen C =

log(prior probability) + total likelihood

//$net_post_prob = $net_prior_prob +

$total_net_likelihood;

//normalisasi log posterior probability

//$array_prob = $this-

>normalize_log($pos_post_prob,$neg_post_prob,$net_post_prob);

//tes hapus normalisasi log dengan gunakan fungsi

normalizelog2

$array_prob = $this-

>normalize_log2($pos_post_prob,$neg_post_prob,$net_post_prob);

$pos_post_prob = $array_prob["pos_prob"];

$neg_post_prob = $array_prob["neg_prob"];

$net_post_prob = $array_prob["net_prob"];

//ambil kelas terbaik (kelas dengan posterior

probability tertinggi)

$best_class= $this-

>best_class($pos_post_prob,$neg_post_prob,$net_post_prob);

//masukkan ke array results

$array_results[] =

array("id_tweet"=>$id,"pos_post_prob"=>$pos_post_prob,

Page 149: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

131

UIN Syarif Hidayatullah Jakarta

"neg_post_prob"=>$neg_post_prob,"net_post_prob"=>$net_post_pr

ob,"sentimen_datauji"=>$best_class);

}

return $array_results;

}

public function insert_datauji(){

$this->db->truncate('sa_datauji');

$data = $this->naive_bayes();

$this->db->insert_batch('sa_datauji',$data);

}

//isi badge di tabel vakurasi

public function accuracy_badge($predicted,$result){

$badge="<span class='badge bg-gray'>BLM

DIKETAHUI</span>";

if(isset($result)){

if($predicted==$result){

$badge="<span class='badge bg-

green'>AKURAT</span>";

}else{

$badge="<span class='badge bg-red'>TDK

AKURAT</span>";

}

}

return $badge;

}

//isi badge di tabel vakurasi3

public function accuracy_badge_kombinasi($predicted,$result){

Page 150: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

132

UIN Syarif Hidayatullah Jakarta

$badge="<span class='badge bg-gray'>BLM

DIKETAHUI</span>";

if(isset($result)){

if($predicted==$result){

$badge="<span class='badge bg-

green'>AKURAT</span>";

}else{

$badge="<span class='badge bg-red'>TDK

AKURAT</span>";

}

}

return $badge;

}

//ambil sentimen asli dan sentimen hasil analisis

//fungsi join ini kalau id kedua tabel sama doang yg bisa

public function get_sentiments()

{

$this->db->select('twitlog_latih.sentimen_tweet,

sa_datauji.sentimen_datauji');

$this->db->from('twitlog_latih');

$this->db->where('kategori_tweet','DATA UJI');

$this->db->join('sa_datauji', 'sa_datauji.id_tweet =

twitlog_latih.id_tweet');

$array_all_sentiments = $this->db->get()->result_array();

return $array_all_sentiments;

}

public function matrix_akurasi(){

$array_sentiments = $this->get_sentiments();

$total_datauji = count($array_sentiments);

Page 151: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

133

UIN Syarif Hidayatullah Jakarta

$popo = 0;

$pone = 0;

$pont = 0;

$nepo = 0;

$nene = 0;

$nent = 0;

$ntpo = 0;

$ntne = 0;

$ntnt = 0;

foreach($array_sentiments as $sentiment){

if($sentiment["sentimen_tweet"]=="POSITIF" &&

$sentiment["sentimen_datauji"]=="POSITIF"){

$popo = $popo+1;

}

else if($sentiment["sentimen_tweet"]=="POSITIF"

&& $sentiment["sentimen_datauji"]=="NEGATIF"){

$nepo = $nepo+1;

}

else if($sentiment["sentimen_tweet"]=="POSITIF"

&& $sentiment["sentimen_datauji"]=="NETRAL"){

$ntpo = $ntpo+1;

}

else if($sentiment["sentimen_tweet"]=="NEGATIF"

&& $sentiment["sentimen_datauji"]=="POSITIF"){

$pone = $pone+1;

}

else if($sentiment["sentimen_tweet"]=="NEGATIF"

&& $sentiment["sentimen_datauji"]=="NEGATIF"){

$nene = $nene+1;

}

Page 152: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

134

UIN Syarif Hidayatullah Jakarta

else if($sentiment["sentimen_tweet"]=="NEGATIF"

&& $sentiment["sentimen_datauji"]=="NETRAL"){

$ntne = $ntne+1;

}

else if($sentiment["sentimen_tweet"]=="NETRAL"

&& $sentiment["sentimen_datauji"]=="POSITIF"){

$pont = $pont+1;

}

else if($sentiment["sentimen_tweet"]=="NETRAL"

&& $sentiment["sentimen_datauji"]=="NEGATIF"){

$nent = $nent+1;

}

else if($sentiment["sentimen_tweet"]=="NETRAL"

&& $sentiment["sentimen_datauji"]=="NETRAL"){

$ntnt = $ntnt+1;

}

}

$akurasi = ($popo + $nene + $ntnt)/($popo + $nepo + $ntpo +

$pone + $nene + $ntne + $pont + $nent + $ntnt); //AKURASI :(true

positives+true negatives+true netral)/total data uji

$error_rate = 1- $akurasi; //ERROR-RATE : 1 - akurasi

(tingkat kesalahan sistem)

$ppv = $popo/($popo+$pone+$pont); //POSITIVE

PREDICTION VALUE /PRESISI

$nepv = $nene/($nepo+$nene+$nent); //NEGATIVE

PREDICTION VALUE

$ntpv = $ntnt/($ntpo+$ntne+$ntnt); //NETRAL

PREDICTION VALUE

$sensitivity = $popo/($popo+$nepo+$ntpo); //SENSITIVITY

/RECALL : true positives/(true positives+false negatives)

Page 153: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

135

UIN Syarif Hidayatullah Jakarta

//$specificity =

$true_negatives/($true_negatives+$false_positives); //SPECIFICITY : true

negatives/(true negatives+false positives)

$ppvxsensitivity = $ppv*$sensitivity; //presisi x recall untuk

f-measure

$ppvtsensitivity = $ppv+$sensitivity; //presisi + recall untuk

f-measure

$dua= 2; // untuk nilai dua

$fmeasure = $dua*($ppvxsensitivity/$ppvtsensitivity); //f-

measure = 2.((presisixrecall)/(presisi+recall))

$semua = $popo + $nepo + $ntpo + $pone + $nene + $ntne +

$pont + $nent + $ntnt;

return array('data1'=>$popo, 'data2'=>$nepo, 'data3'=>$ntpo,

'data4'=>$pone, 'data5'=>$nene, 'data6'=>$ntne, 'data7'=>$pont,

'data8'=>$nent, 'data9'=>$ntnt, 'data10'=>$error_rate, 'data11'=>$ppv,

'data12'=>$nepv, 'data13'=>$sensitivity, 'data14'=>$akurasi,

'data15'=>$ntpv, 'data16'=>$fmeasure, 'data17'=>$semua);

}

//---------------PENDEKATAN LEXICON---------------\\

function tahap_satu($data)

{

$i_pos = 0;

$i_neg = 0;

$arraySemuaKataSentimen = array();

$pecahKata = array();

$pecahKata = explode(" ",$data);

$banyakKata = count($pecahKata);

foreach($pecahKata as $kata)

{

Page 154: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

136

UIN Syarif Hidayatullah Jakarta

$cektermPos = $this->cekKataPos($kata);

if($cektermPos==true)

{

$i_pos++;

array_push($arraySemuaKataSentimen,

$kata);

}

else

{

$cektermNeg = $this->cekKataNeg($kata);

if($cektermNeg==true)

{

$i_neg++;

array_push($arraySemuaKataSentimen, $kata);

}

}

}

$semuasentimen = implode(" ",$arraySemuaKataSentimen);

return array('semuasentimen'=>$semuasentimen,

'banyakkata'=>$banyakKata, 'i_pos'=>$i_pos, 'i_neg'=>$i_neg);

}

function lexicon($data)

{

$tahapsatu = $this->tahap_satu($data);

if($tahapsatu['i_pos'] == 0 && $tahapsatu['i_neg'] == 0)

{

return "NETRAL";

}

else

Page 155: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

137

UIN Syarif Hidayatullah Jakarta

{

//lakukan pengecekan setiap kata sentimen yang

ditemukan apakah terdapat negasi pada kata sentimen tersebut

//pengecekan dilakukan dengan memeriksa 4 frasa

sebelum kata sentimen dan 1 frasa setelah kata sentimen

$periksa_negasi = $this->tahap_dua($data,

$tahapsatu['banyakkata'], $tahapsatu['semuasentimen']);

$senpos = $tahapsatu['i_pos'];

$senneg = $tahapsatu['i_neg'];

$fitur = $senpos + $senneg;

$negasi_pos = $periksa_negasi['i_pos_neg'];

$negasi_neg = $periksa_negasi['i_neg_neg'];

$senpos_ak = $senpos;

$senneg_ak = $senneg;

if($negasi_pos > 0)

{

$senpos_ak = $senpos - $negasi_pos;

$senneg_ak = $senneg + $negasi_pos;

}

if($negasi_neg > 0)

{

$senneg_ak = $senneg_ak - $negasi_neg;

$senpos_ak = $senpos_ak + $negasi_neg;

}

//hitung score

$score = ($senpos_ak/$fitur) + (- $senneg_ak/$fitur);

Page 156: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

138

UIN Syarif Hidayatullah Jakarta

//return $score;

//return "ditemukan fitur sebanyak $fitur dengan sen

pos sebanyak $senpos dan sen negatif sebanyak $senneg negasi positif

sebanyak $negasi_pos dan negasi negatif sebanyak $negasi_neg dengan

demikian nilai akhir sen pos sebanyak $senpos_ak dan sen neg sebanyak

$senneg_ak";

if($score >= 1)

{

return "POSITIF";

}

else if($score == 0)

{

return "NETRAL";

}

else

{

return "NEGATIF";

}

}

}

function tahap_dua($data0, $data1, $data2)

{

$i_pos_neg = 0;

$i_neg_neg =0;

$fix = false;

$hasil = array();

$pecahKata = array();

$pecahKata = explode(" ",$data0);

$arraySentKata = array();

Page 157: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

139

UIN Syarif Hidayatullah Jakarta

$arraySentKata = explode(" ",$data2);

foreach($arraySentKata as $ask)

{

for($j=0; $j<=$data1-1; $j++)

{

if($pecahKata[$j] == $ask)

{

//memeriksa 4 frasa sebelum

kata sentimen apakah terdapat negasi

if($j>=4)

{

$m = 0;

for($k=$j-1; $m<4; $k--

)

{

$fix = false;

$cekNegasi =

$this->cekKataNegasi($pecahKata[$k]);

if($cekNegasi==true)

{

$fix =

true;

//memeriksa jenis sentimen

$cekjnssenpos = $this->cekKataPos($pecahKata[$j]);

$cekjnssenneg = $this->cekKataNeg($pecahKata[$j]);

Page 158: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

140

UIN Syarif Hidayatullah Jakarta

if($cekjnssenpos==true)

{

$i_pos_neg++;

}

if($cekjnssenneg==true)

{

$i_neg_neg++;

}

//array_push($hasil, "terdapat negasi yang mempengaruhi kata posisi

sebanyak $i_pos_neg dan kata negatif sebanyak $i_neg_neg");

break;

}

$m++;

}

if($fix != true)

{

//jika kata negasi

tidak ditemukan pada 4 frasa sebelum kata sentimen, maka memeriksa 1 frasa

setelah kata sentimen

$l = $j+1;

$cekNegasi =

$this->cekKataNegasi($pecahKata[$l]);

if($cekNegasi==true)

Page 159: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

141

UIN Syarif Hidayatullah Jakarta

{

//memeriksa jenis sentimen

$cekjnssenpos = $this->cekKataPos($pecahKata[$j]);

$cekjnssenneg = $this->cekKataNeg($pecahKata[$j]);

if($cekjnssenpos==true)

{

$i_pos_neg++;

}

if($cekjnssenneg==true)

{

$i_neg_neg++;

}

//array_push($hasil, "terdapat negasi yang mempengaruhi kata posisi

sebanyak $i_pos_neg dan kata negatif sebanyak $i_neg_neg");

}

}

}

//memeriksa kurang dari 4 frasa

sebelum kata sentimen

else

{

Page 160: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

142

UIN Syarif Hidayatullah Jakarta

$m = 0;

for($k=$j-1; $m<$j; $k-

-)

{

$fix = false;

$cekNegasi =

$this->cekKataNegasi($pecahKata[$k]);

if($cekNegasi==true)

{

$fix =

true;

//memeriksa jenis sentimen

$cekjnssenpos = $this->cekKataPos($pecahKata[$j]);

$cekjnssenneg = $this->cekKataNeg($pecahKata[$j]);

if($cekjnssenpos==true)

{

$i_pos_neg++;

}

if($cekjnssenneg==true)

{

$i_neg_neg++;

}

Page 161: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

143

UIN Syarif Hidayatullah Jakarta

//array_push($hasil, "terdapat negasi yang mempengaruhi kata posisi

sebanyak $i_pos_neg dan kata negatif sebanyak $i_neg_neg");

break;

}

$m++;

}

if($fix != true)

{

//jika kata negasi

tidak ditemukan pada 4 frasa sebelum kata sentimen, maka memeriksa 1 frasa

setelah kata sentimen

$l = $j+1;

$cekNegasi =

$this->cekKataNegasi($pecahKata[$l]);

if($cekNegasi==true)

{

//memeriksa jenis sentimen

$cekjnssenpos = $this->cekKataPos($pecahKata[$j]);

$cekjnssenneg = $this->cekKataNeg($pecahKata[$j]);

if($cekjnssenpos==true)

{

$i_pos_neg++;

Page 162: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

144

UIN Syarif Hidayatullah Jakarta

}

if($cekjnssenneg==true)

{

$i_neg_neg++;

}

//array_push($hasil, "terdapat negasi yang mempengaruhi kata posisi

sebanyak $i_pos_neg dan kata negatif sebanyak $i_neg_neg");

}

}

}

continue;

}

}

}

return array('i_pos_neg'=>$i_pos_neg,

'i_neg_neg'=>$i_neg_neg);

}

function cekKataPos($data)

{

$this->load->database();

$arraykataPositif = array();

//ambil semua kata positif didalam kamus positif dan diubah

ke array

$this->db->select('kata_positif');

$this->db->from('positif');

Page 163: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

145

UIN Syarif Hidayatullah Jakarta

$arrayPos = $this->db->get()->result_array();

//ubah ke associative array

$arraykataPositif = array_column($arrayPos,'kata_positif');

//lakukan pengecekan apakah kata ada didalam kamus positif

if(in_array($data,$arraykataPositif))

{

return true;

}

else

{

return false;

}

}

function cekKataNeg($data)

{

$this->load->database();

$arraykataNegatif = array();

//ambil semua kata negatif didalam kamus negatif dan diubah

ke array

$this->db->select('kata_negatif');

$this->db->from('negatif');

$arrayNeg = $this->db->get()->result_array();

//ubah ke associative array

$arraykataNegatif = array_column($arrayNeg,'kata_negatif');

//lakukan pengecekan apakah kata ada didalam kamus negatif

if(in_array($data,$arraykataNegatif))

Page 164: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

146

UIN Syarif Hidayatullah Jakarta

{

return true;

}

else

{

return false;

}

}

function cekKataNegasi($data)

{

$this->load->database();

$arraykataNegasi = array();

//ambil semua kata negatif didalam kamus negatif dan diubah

ke array

$this->db->select('kata_negasi');

$this->db->from('negasi');

$arrayNegasi = $this->db->get()->result_array();

//ubah ke associative array

$arraykataNegasi =

array_column($arrayNegasi,'kata_negasi');

//lakukan pengecekan apakah kata ada didalam kamus negatif

if(in_array($data,$arraykataNegasi))

{

return true;

}

else

{

return false;

Page 165: ANALISIS KINERJA ALGORITMA NAIVE BAYES DAN K-NEAREST

147

UIN Syarif Hidayatullah Jakarta

}

}

//-------------------------------- Pembatas ------------------------------------

--------//

//==================================UNTUK

KNN===========================================//

}

?>