• Tidak ada hasil yang ditemukan

Implementasi algoritma Modified K-Nearest Neighbor dalam analisis sentimen review restoran dengan teks Bahasa Indonesia

N/A
N/A
Protected

Academic year: 2023

Membagikan "Implementasi algoritma Modified K-Nearest Neighbor dalam analisis sentimen review restoran dengan teks Bahasa Indonesia"

Copied!
68
0
0

Teks penuh

(1)

i

IMPLEMENTASI ALGORITMA MODIFIED K-NEAREST NEIGHBOR DALAM ANALISIS SENTIMEN REVIEW RESTORAN

DENGAN TEKS BAHASA INDONESIA

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Informatika

Disusun Oleh : Hadiyan Faikar

165314029

PROGRAM STUDI INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVESITAS SANATA DHARMA YOGYAKARTA

2022

(2)

ii

IMPLEMENTATION OF MODIFIED K-NEAREST NEIGHBOR ALGORITHM IN RESTAURANT REVIEW SENTIMENT ANALYSIS

WITH INDONESIAN TEXT

THESIS

Presented as Partial Fulfilment of Requirement to Obtain Sarjana Komputer Degree in Informatics Department

By :

Hadiyan Faikar 165314029

INFORMATICS STUDY PROGRAM FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA

2022

(3)

iii

(4)

iv

(5)

v

HALAMAN MOTTO

"There is only one thing that makes a dream impossible to achieve: the fear of failure." - Paulo Coelho, The Alchemist

(6)

vi

(7)

vii

(8)

viii ABSTRAK

Review adalah sebuah kegiatan yang dilakakuan oleh seseorang untuk memberikan ulasan terhadap suatu hal yang pernah mereka coba dan dengan adanya review ini, orang lain yang belum pernah sama sekali mencoba akan dibuat penasaran. Dengan adanya review ini, tidak jauh dari efek negatif juga karena akan ada beberapa komentar yang tidak diinginkan oleh si Pemilik. Oleh, karena itu, untuk memprediksi data review restoran dengan metode klasifikasi dan menerapkan Algoritma Modified K-Nearest Neighbor (MKNN). Metode yang digunakan didalam penelitian ini, data review restoran akan melewati preprocessing. Setelah data siap, data dibagi menjadi dua bagian yaitu data training dan data testing. Setiap data training akan dicari nilai validitas, yang digunakan untuk mencari bobot atau Weight Voting dan setiap data testing digunakan untuk menguji dan mengetahui kinerja dari hasil yang sudah didapatkan pada saat testing. Peneliti melakukan pengujian data sebanyak 400 data dengan 2 label. Hasil dari penelitian ini beragam berdasarkan nilai k untuk fold yang digunakan. Berdasarkan data review yang dimiliki, program ini menghasilkan nilai akurasi terbesar pada nilai 93,18 % pada pengujian menggunakan nilai k = 9 dan jumlah tetangga terdekat 7.

Kata Kunci : MKNN, Akurasi, Klasifikasi.

(9)

ix ABSTRACT

Review is an activity carried out by someone to provide a review of something they have tried and with this review, other people who have never tried it will be curious.

With this review, it is not far from a negative effect because there will be some unwanted comments by the owner. Therefore, to predict restaurant review data with the classification method and apply the Modified K-Nearest Neighbor (MKNN) Algorithm. The method used in this study, restaurant review data will go through preprocessing. After the data is ready, the data is divided into two parts, namely training data and testing data. Each training data will look for the validity value, which is used to find the weight or Weight Voting and each testing data is used to test and determine the performance of the results that have been obtained at the time of testing. Researchers tested 400 data with 2 labels. The results of this study vary based on the value of k for the fold used. Based on the review data owned, this program produces the greatest accuracy value at 93.18 % in the test using the value of k = 9 and the number of nearest neighbors 7.

Keyword: MKNN, Accuracy, Classification.

(10)

x

KATA PENGANTAR

Puji syukur ke hadirat Tuhan Yang Maha Esa, karena berkat, rahmat dan karunia- Nya penulis dapat menyelesaikan Tugas Akhir yang berjudul “Klasifikasi Data Nasabah Berpotensi Terkena Kredit Macet Dengan Menggunakan Algoritma Modified K- Nearest Neighbor”. Penulis menyadari bahwa Tugas Akhir ini dapat terselesaikan atas bimbingan serta dukungan dari berbagai pihak. Oleh karena itu, penulis ingin mengucapkan terima kasih kepada:

1. Tuhan Yang Maha Esa atas berkat, rahmat, dan karunia-Nya kepada penulis.

2. Bapak Tri Nurwahyo dan Srina Afriani selaku orang tua yang memberikan penulis dukungan penuh dari awal memasuki bangku sekolah hingga menyelesaikan Tugas Akhir ini.

3. Bapak Ir. Drs. Haris Sriwindono, M.Kom., Ph.D. selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.

4. Bapak Robertus Adi Nugroho, S.T., M.Eng., selaku Ketua Program Studi Informatika Universitas Sanata Dharma Yogyakarta dan Ibu Paulina Heruningsih Prima Rosa, M.Sc selaku pembimbing Tugas Akhir penulis.

5. Ibu Dr. Anastasia Rita Widiarti, selaku Dosen Metopen yang sudah memberikan banyak masukan dan ilmu yang telah diterapkan penulis dalam penyusunan proposal dan selanjutnya diteruskan menjadi Tugas Akhir.

6. Ibu Vitalis Ayu selaku dosen pembimbing akademik yang selalu memberikan bimbingan dan nasehat selama masa perkuliahan.

7. Seluruh Dosen Fakultas Sains dan Teknologi khususnya Program Studi Informatika yang telah mengajar dan mendidik penulis selama masa kuliah.

8. Keluarga besar Informatika Universitas Sanata Dharma Yogyakarta dengan segala solidaritasnya.

9. Mas Novri, Mas Adres, Bayu, Nanang, Yoga, Yogi, Tatag, dan teman teman yang telah membantu penulis dalam menyelesaikan Tugas Akhir.

10. Dan semua pihak lain yang tidak dapat disebutkan satu persatu.

(11)

xi

(12)

xii DAFTAR ISI

IMPLEMENTASI ALGORITMA MODIFIED K-NEAREST NEIGHBOR DALAM ANALISIS SENTIMEN REVIEW RESTORAN DENGAN TEKS

BAHASA INDONESIA ... i

IMPLEMENTATION OF MODIFIED K-NEAREST NEIGHBOR ALGORITHM IN RESTAURANT REVIEW SENTIMENT ANALYSIS WITH INDONESIAN TEXT ... ii

HALAMAN PERSETUJUAN ... Error! Bookmark not defined. HALAMAN PENGESAHAN ... Error! Bookmark not defined. HALAMAN PERSEMBAHAN ... v

PERNYATAAN KEASLIAN KARYA ... Error! Bookmark not defined. LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... Error! Bookmark not defined. ABSTRAK ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xv

DAFTAR TABEL ... xvi

BAB I PENDAHULUAN ... 1

1.1Latar Belakang ... 1

1.2Rumusan Masalah... 3

1.3Tujuan Penelitian ... 3

1.4Manfaat Penelitian ... 3

1.5Batasan Masalah ... 3

1.6Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 5

2.1Analisis Sentimen ... 5

2.2Data Mining ... 5

2.3Text Mining ... 7

(13)

xiii

2.3.1 Preprocessing ... 9

2.4Term Frequency & Inverse Document Frequency ... 16

2.5Modified K-Nearest Neighbor ... 17

2.6K-Fold Cross Validation ... 19

2.7Confusion Matrix ... 20

BAB III METODE PENELITIAN ... 22

3.1Gambaran Umum ... 22

3.2Data ... 24

3.3Preprocessing ... 24

3.3.1 Preprocessing ... 24

3.4Pembobotan TF-IDF ... 30

3.4.1 Menghitung Term Frequency ... 30

3.4.2 Menghitung Document Frequency ... 31

3.4.3 Menghitung Inverse Document Frequency... 31

3.5Modified K-Nearest Neighbor ... 32

3.5.1 Menghitung Euclidean Distance ... 32

3.5.2 Menghitung Validitas ... 32

3.5.3 Menghitung Weight Voting ... 33

3.6Confusion Matrix ... 34

3.7Kebutuhan Sistem ... 34

3.7.1 Hardware ... 34

3.7.2 Software ... 34

3.8Perancangan Interface ... 35

BAB IV IMPLEMENTASI ... 36

4.1Browse File ... 36

4.2Preprocessing ... 36

4.2.1 Case Folding ... 37

4.2.2 Tokenizing ... 38

4.2.3 Stopword Removal ... 38

4.2.4 Stemming ... 39

4.3Modified K-Nearest Neighbor ... 39

4.3.1 Hitung Validity ... 40

(14)

xiv

4.3.2 Hitung Weight Voting ... 40

4.3.3 Hitung K-Fold Validation ... 41

BAB V HASIL DAN ANALISA ... 42

5.1Uji Data Kelompok ... 42

5.2Uji Data Tunggal ... 48

BAB VI PENUTUP ... 50

6.1Kesimpulan ... 50

6.2Saran ... 50

DAFTAR PUSTAKA ... 51

(15)

xv DAFTAR GAMBAR

Gambar 3.1 Gambaran Umum ... 22

Gambar 3.2 Data Review Restoran ... 24

Gambar 3.3 Perhitungan Term Frequncy ... 30

Gambar 3.4 Perhitungan Document Frequency ... 31

Gambar 3.5 Perhitungan Inverse Document Frequency ... 31

Gambar 3.6 Perhitungan Euclidean Distance ... 32

Gambar 3.7 Perancangan Interface ... 35

Gambar 4.1 Browse File ... 36

Gambar 4.2 Kode Program Case Folding ... 37

Gambar 4.3 Kode Program Tokenizing ... 38

Gambar 4.4 Kode Program Stopword ... 38

Gambar 4.5 Kode Program Stemming ... 39

Gambar 4.6 Kode Program Hitung Validity ... 40

Gambar 4.7 Kode Program Weight Voting ... 40

Gambar 4.8 Kode Program K-Fold Cross Validation ... 41

Gambar 5.1 Hasil Uji Data Kelompok ... 42

Gambar 5.2 Hasil Akurasi 3-fold ... 43

Gambar 5.3 Hasil Uji Akurasi 5-fold ... 44

Gambar 5.4 Hasil Akurasi 7-fold ... 46

Gambar 5.5 Hasil Akurasi 9-fold ... 47

Gambar 5.6 Percobaan Uji Data Tunggal ... 48

(16)

xvi DAFTAR TABEL

Tabel 2. 1 Tabel Contoh Case Folding ... 9

Tabel 2. 2 Tabel Contoh Tokenization ... 10

Tabel 2. 3 Tabel Contoh Stemming ... 10

Tabel 2. 4 Awalan-akhiran ... 11

Tabel 2. 5 Aturan peluruhan kata dasar ... 12

Tabel 2. 6 Tabel Contoh Normalization ... 15

Tabel 2. 7 Tabel Contoh Stopword Removal ... 15

Tabel 3.1 Menghitung Validitas ... 32

Tabel 3.2 Hasil Weight Voting ... 33

Tabel 3.3 Confusion Matrix ... 34

Tabel 5.1 Hasil Akurasi 3-fold ... 43

Tabel 5.2 Hasil Akurasi 5-fold ... 44

Tabel 5.3 Hasil Akurasi 7-fold ... 45

Tabel 5.4 Hasil Akurasi 9-fold ... 46

(17)

1 BAB I PENDAHULUAN

Bab ini membahas mengenai latar belakang, rumusan masalah, tujuan penelitian, manfaat penelitian, Batasan masalah, serta sistematika penulisan.

1.1 Latar Belakang

Di era perkembangan zaman seperti sekarang ini ,sejumlah besar informasi kini mengalir melalui jaringan. Karena berbagai konten web yang mencakup opini subyektif maupun informasi yang obyektif ,pada masa sekarang sangatlah umum bagi orang-orang untuk mengumpulkan informasi tentang produk atau jasa yang ingin mereka beli. Namun ,sangat cukup banyak informasi yang terkandung dalam bentuk teks tanpa ada skala numerik,, Jika tidak membaca teks dengan lengkap maka akan sulit untuk mengklasifikasikan evaluasi informasi secara efektif (Muthia. 2017)

Tren sentimen (emosi) yang sering berubah dapat dituangkan dalam sebuah ulasan(review). Adanya sebuah manajemen analisis sentimen menjadi jembatan komunikasi terhadap sesama pengunjung ataupun pelaku bisnis.

Dampak dari review ini sangat penting untuk menjalankan bisnis apapun saat ini seiring dengan berkembangnya teknologi dan internet. Dengan adanya ulasan (review) dari pengunjung yang sudah pernah mmengunjungi tempat tersebut bisa membantu pengunjung lainnya untuk mengevaluasi suatu restoran dan mereka dapat membuat pilihan setelah membaca ulasan (review) restoran yang sudah ada, sehingga tidak merasa kecewa setelah mengunjungi tempat tersebut.

Dalam penelitian Putrianti,dkk (2019), menyatakan bahwa Implementasi algoritma K-Nearest Neighbor terhadap analasis sentimen review restoran dengan teks Bahasa Indonesia dapat mengatasi hal tersebut dengan

(18)

membuat sistem informasi otomatis yang dibuat. Pada saat melakukan analisis sentimen pada review restoran Taman Santap Rumah Kayu diperoleh hasil akurasi confusion matrix sebesar 96,61%.

Metode K-NN telah banyak digunakan dalam penelitian di bidang analisis sentimen, salah satunya adalah untuk mengklasifikasi pengaduan yang diterima oleh salah satu Universitas di Indonesia melalui sebuah fasilitas E-3 Complaint yang dimiliki Unversitas tersebut. Karena data yang masuk terlalu banyak dan Sumber Daya Manusia yang mengolahnya terbatas, maka perlu dilakukan pengelompokan data sehingga dapat diketahui data mana yang akan menjadi prioritas pihak Universitas.

Konsep utama dari metode K-Nearest Neighbor sendiri yaitu untuk mengklasifikasikan data uji dengan tetangga terdekatnya. Pada penelitian kali ini, peneliti menggunakan metode Modified K-Nearest Neighbor, karena pada metode Modified K-Nearest Neighbor memiliki proses-proses yang tidak dimiliki oleh metode K-Nearest Neighbor pada umumnya. Proses yang dimaksud tersebut yaitu menghitung validasi dan pembobotan (Simanjuntak,2017). Dengan adanya proses tambahan seperti menghitung validasi dan pembobotan atau yang sering disebut dengan weight voting pada metode Modified K-Nearest Neighbor akan menghasilkan akurasi yang lebih baik jika nilai validasi dan weight voting tersebut tinggi. Dengan adanya sedikit tambahan proses pada metode Modified K-Nearest Neighbor dapat memperbaiki akurasi pada metode K-Nearest Neighbor.

(19)

1.2 Rumusan Masalah

Berdasarkan latar belakang diatas dapat dirumuskan bahwa permasalahan akan penelitian ini adalah :

1. Bagaimana mengimplementasikan Algoritma Modified K-Nearest Neighbor dengan pembobotan TF-IDF mampu mengklasifikasikan sebuah sentimen review restoran pada teks bahasa Indonesia?

2. Bagaimana akurasi yang didapat dari hasil mengklasifikasian sentimen review restoran menggunakan Algoritma Modified K-Nearest Neighbor ?

1.3 Tujuan Penelitian

Berdasarkan rumusan masalah tersebut, maka tujuan dari penelitian ini adalah:

1. Membangun sistem yang mampu mengklasifikasikan review menggunakan Modified K-Nearest Neighbor.

2. Mengetahui akurasi algoritma Modified K-Nearest Neighbor dalam pengklasifikasian sentimen review dengan teks Bahasa Indonesia dengan pembobotan TF-IDF

1.4 Manfaat Penelitian

Penelitian ini dapat membantu para calon pengunjung untuk meminimalisir pencarian sebuah restoran dalam membaca sebuah review suatu restoran dan membantu para pengembang sistem yang berkaitan dengan review restoran dari social media maupun dari aplikasi yang merekomendasikan restoran tersebut.

1.5 Batasan Masalah

Dalam penelitian ini ada Batasan Batasan masalah, sebagai berikut : 1. Review yang dianalisa hanya review yang berbahasa Indonesia saja 2. Data yang disajikan adalah data yang berbentuk file excel.

3. Metode yang digunakan adalah metode Modified K-Nearest Neighbor.

4. Review yang diambil dalam rentang waktu Januari 2020 sampai Juni 2020

(20)

1.6 Sistematika Penulisan

Sistematika penulisan dalam penelitian ini adalah sebagai berikut:

1. BAB I PENDAHULUAN

Bab I menjelaskan tentang latar belakang, rumusan masalah, tujuan penelitian, manfaat penelitian Batasan masalah, metodologi penelitian dan sistematika penulisan

2. BAB II LANDASAN TEORI

Bab II menjelaskan tentang teori yang digunakan dalam penelitian ini. Teori yang digunakan adalah Analisis Sentimen, Text Mining, Klasifikasi, Pembobotan kata, K-Fold Cross Validation dan Confusion Matrix.

3. BAB III METODOLOGI PENELITIAN

BAB III menjelaskan tentang langkah-langkah yang dilakukan dalam penelitian

4. BAB IV IMPLEMENTASI

BAB IV menjelaskan implementasi dengan menggunakan aplikasi Netbeans.

5. BAB V HASIL DAN ANALISA

BAB V menjelaskan tentang hasil dan Analisa uji data kelompok dan uji data tunggal.

6. BAB VI PENUTUP

BAB VI menjelaskan tentang kesimpulan dan saran.

(21)

5 BAB II LANDASAN TEORI

Bab II berisikan penjelasan tentang tinjauan pusaka dan landasan teori yang berkaitan atau berhubungan dengan topik yang dibahas pada penelitian ini.

2.1 Analisis Sentimen

Analisis sentimen merupakan metode yang digunakan dalam memahami, mengekstrak, data opini serta mengolah data tekstual secara otomatis, sehingga didapatkan sebuah sentimen yang terkandung pada sebuah opini. Biasanya data yang didapatkan dari sebagian besar pengunjung sangat tidak terstruktur sehingga proses data mining dan text mining digunakan untuk menyusun data yang terkumpul sedangkan analisis sentimen digunakan untuk memahami signifikansi dan nuansa sebenarnya dalam data. Dalam analisis sentimen terdapat 3 jenis opini yaitu, opini positif, opini netral dan opini negatif (Romadloni,dkk. 2019).

2.2 Data Mining

Istilah lain dari data mining adalah Knowledge Discovery in Database (KDD). Walaupun sebenarnya data mining merupakan bagian dari tahapan proses dalam KDD (Han & Kamber, 2011).

Tahapan dalam Knowledge Discovery in Database (KDD) (Han &

Kamber, 2011).

a. Pembersihan data (data cleaning)

Pembersihan data digunakan untuk menghilangkan data noise dan tidak konsisten seperti data salah ketik, data tidak akurat, maupun data kosong.

(22)

b. Integrasi data (data integration)

Integrasi data adalah penggabungan data yang didapatkan dari beberapa sumber, hal ini dimaksudkan untuk merangkum seluruh data dalam satu tabel utuh.

c. Seleksi data (data selection)

Seleksi data adalah proses seleksi data-data yang relevan untuk digunakan dalam proses analisis.

d. Transformasi data (data transformation)

Data yang telah didapatkan diubah menjadi bentuk yang sesuai untuk proses selanjutnya.

e. Penerapan teknik data mining (data mining)

Pada tahap ini merupakan proses penting dimana metode data mining diterapkan untuk mengekstrak pola data.

f. Evaluasi pola yang ditemukan (pattern evaluation)

Pada tahap ini dilakukan identifikasi pola yang khas ataupun model prediksi, dievaluasi untuk menilai apakah hipotesa yang ada tercapai.

Gambar 2.1 Diagram Knowledge Discovery in Database (KDD) (Sumber: Han & Kamber (2012))

(23)

2.3 Text Mining

Text mining merupakan proses penemuan pola yang sebelumnya tidak terlihat ada dokumen atau sumber tertentu menjadi pola yang diinginkan untuk tujuan tertentu (Mustafa,dkk. 2009). Text mining memiliki tugas yang lebih kompleks karena melibatkan data teks yang sifatnya tidak terstruktur (Rahutomo. 2018).

Dalam proses Text Mining, terdapat langkah-langkah untuk mengekstrak data, yaitu sebagai berikut :

1. Text Preprocessing

Pada tahap ini adalah tahap untuk melakukan analisis semantic dan sintaktik terhadap teks. Pada proses ini memiliki tujuan ada mempersiapkan teks agar dapat dijadikan pengelohan tahap selanjutnya. Operasi yang dilakukan pada tahap ini adalah:

1. Case Folding

Pada proses ini adalah mengubah semua huruf dalam Dokumen menjadi huruf kecil.

Karakter selain huruf ‘a’ sampai dengan ‘z’

dihilangkan dan dianggap menjadi delimiter.

2. Tokenization

Mengubah karakter menjadi konstituen bermakna. Pendekatan yang paling sering ditemukan dalam sistem text miningmelibatkan teks menjadi kalimat dan kata-kata, yang disebut tokenization.

(24)

2. Text Transformation

Transformasi teks atau pembentukan atribut mengacu pada proses untuk mendapatkan representasi dokumen yang diharapkan.

3. Feature Selection

Pada tahap ini adalah tahap kelanjutan dari pengurangan dimensi pada proses tranformasi teks. Terdapat beberapa operasi pada feature selection, diantaranya :

1. Stopword removal

Untuk mengurangi dimensi, pemilihan hanya dilakukan terhadap kata-kata yang relevan yang benar-benar merepresentasikan isi dari suatu dokumen.Langkah preprocessing yang menghilangkan atau menghapuskata-kata yang tidak penting atau tidak relevan disebut fitur seleksi. Banyak sistem, bagaimanapun, melakukan penyaringan jauh lebih agresif, menghilangkan 90 hingga 99 persen.

2. Stemming

Stemming merupakan suatu proses yang mentransformasi kata-kata yang terdapat dalam suatu dokumen ke kata-kata akarnya (root word) dengan menggunakan aturan-aturan tertentu.

Algoritma Nazief & Adriani sebagai algoritma stemming untuk teks berbahasa Indonesia yang memiliki kemampuan presentase keakuratan (presisi) lebih baik dari algoritma lainnya.

(25)

2.3.1 Preprocessing

Tahap Preprocessing merupakan tahap yang paling penting dalam Text Mining. Preprocessing dilakukan untuk mendapatkan data yang akurat. Preprocesing memiliki peran untuk mengurangi noise pada data review restoran. Dalam Text Preprocessing. Ada beberapa langkah pada tahap Preprocessing seperti Case Folding,Tokenizing ,Stopword, Stemming.

2.3.1.1 Case Folding

Case Folding memiliki tujuan untuk mengubah kata menjadi huruf kecil atau lowercase, yang bertujuan untuk mengubah data demi mendapatkan data dengan format yang sama.

Pada Tabel 2.1 dibawah ini menguraikan tentang bagaimana proses sebuah dokumen sebelum melakukan Case Folding dan sesudah dilakukan Case Folding.

Tabel 2. 1 Tabel Contoh Case Folding Sebelum Case Folding Setelah CaseFolding Rumah makan yang

unik di Jogja bagus sih makanan standarrr untuk harganya, banyak pilihan makanan juga.

rumah makan yang unik di jogja bagus sih

makanan standarrr untuk harganya, banyak pilihan

makanan juga.

2.3.1.2 Tokenization

Proses tokenization berfungsi untuk memecah kalimat menjadi pecahan-pecahan. Pada tahap ini juga berguna untuk menghilangkan tanda baca.

(26)

Pada Tabel 2.2 dibawah ini menguraikan tentang bagaimana proses sebuah dokumen sebelum melakukan Tokenization dan sesudah dilakukan Tokenization.

Tabel 2. 2 Tabel Contoh Tokenization

Sebelum Tokenization Setelah

Tokenization rumah makan yang unik di

jogja bagus sih makanan standarrr untuk harganya, banyak pilihan

makanan juga.

[‘rumah’ ‘makan’

‘yang’ ‘unik’ ‘di’

‘jogja’ ‘bagus’

‘sih’ ‘makanan’

‘standarrr’

‘untuk’

‘harganya’

‘banyak’ ‘pilihan’

'makanan’ ‘juga’]

2.3.1.3 Stemming

Tahap stemming merupakan proses menyederhanakan kata ke kata akarnya atau kata dasarnya dengan cara menghilangkan imbuhan pada kata.

Pada Tabel 2.3 dibawah ini menguraikan tentang bagaimana proses sebuah dokumen sebelum melakukan Stemming dan sesudah dilakukan Stemming.

Tabel 2. 3 Tabel Contoh Stemming

Sebelum Stemming Setelah Stemming

rumah makan yang unik di jogja bagus sih makanan

Rumah makan yang unik di jogja

(27)

standarrr untuk harganya, banyak pilihan

makanan juga.

bagus sih makan standar untuk harga banyak pilih makan juga

Berdasarkan algoritma stemming yang dibuat oleh Bobby Nazief dan Mirna Adriani adalah sebagai berikut :

1. Cari kata yang akan di-stem dalam kamus stemming atau kamus kata dasar. Setelah ditemukan, asumsikan kata tersebut sebagai root word, lalu algoritma berhenti.

2. Langkah selanjutnya adalah menghapus inflection suffixes (“-lah”,

“-kah”, “-ku”, “-mu”, atau “-nya”). Hapus jika berupa particles (“- lah”, “-kah”, “-tah”, atau “-pun”), langkah ini kemudian diulang jika ada possesive pronouns (“-ku”, “-mu”, atau “-nya”), maka possesive pronouns-nya dihapus.

3. Hapus derivation suffixes (“-i”, “-an”, atau “-kan”), jika kata telah ditemukan di kamus, maka algoritma berhenti, jika tidak lanjut ke langkah 3a.

a. Jika “-an“ telah dihapus dan huruf terakhir dari kata yang dituju adalah “-k“ maka “-k“ juga dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak maka lakukan langkah 3b.

b. Akhiran yang dihapus (“-i“, “-an“, atau “-kan“) dikembalikan, lalu lanjut ke langkah 4.

4. Pada langkah 4 terdapat tiga iterasi:

a. Iterasi berhenti jika :

(i) Ditemukannya kombinasi akhiran yang tidak diizinkan berdasarkan awalan.

Tabel 2. 4 Awalan-akhiran

(28)

Awalan Akhiran yang tidak diizinkan

be- -i

di- -an

ke- -i, -kan

me- -an

se- -i, -kan

(ii) Awalan yang dideteksi sama dengan awalan yang dihilangkan sebelumnya.

(iii) Tiga awalan telah dihilangkan.

b. Identifikasi tipe awalan dan hilangkan. Awalan terdiri dari dua tipe :

(i) Standar (“di-“, “ke-“, “se-“) yang dapat langsung dihilingkan dari kata.

(ii) Kompleks (“me-“, “be”, “pe”, “te”) adalah tipe awalan yang dapat berubah sesuai kata dasar yang mengikutinya.

Dibutuhkan aturan pada tabel berikut untuk mendapatkan hasil pemenggalan yang tepat.

Tabel 2. 5 Aturan peluruhan kata dasar Aturan Bentuk awalan Peluruhan

1 berV Ber-V... | be-rV...

2 Belajar Bel-ajar

3 beC1erC2 Be-C1erC2.. dimana C!={‘r’|1}

4 terV Ter-V | te-rV

5 teCer Te-Cer... dimana C !=’r’

6 teC1C2 te-C1erC2... dimana C!=’r’

7 me{1|r|w|y}V... Me-{1|r|w|y}V...

8 mem{b|f|v}... Mem-{b|f|v}...

9 Mempe... Mem-pe

10 Mem{rV|V}... Me-m{rV|V}...| Me-p{rV|V}...

11 Men{c|d|j|z}... Men-{c|d|j|z}...

(29)

12 menV... Me-nV...|me-tV...

13 Meng{g|h|q|k}... Meng-{g|h|q|k}....

14 mengV... Meng-V...|meng-kV

15 mengeC Menge-C

16 menyV Me-ny...|meny-sV...

17 mempV Mem-pV...

18 Pe{w|y}V... Pe-{w|y}V....

19 perV Per-V...|pe-rV

20 Pem{b|f|v} Pe-m{b|f|v}...

21 Pem{rV|V} Pe-m{rV|V}...|pe-p{rV|V}

22 Pen{c|d|j|z}... Pen-{c|d|j|z}...

23 penV Pe-nV..|pe..tV

24 Peng{g|h|q} Peng-{g|h|q}

25 pengV Peng-V | peng-kV

26 penyV Pe-nya | peny-sV

27 pelV Pe-lV..;kecuali untuk kata

“pelajar” menjadi ajar

28 peCP Pe-CP...dimana C!={r|w|y|l|m|n}

dan P!=’er’

29 perCerV Per_CerV dimana C!={r|w|y|l|m|n}

Tabel 2.2 merupakan aturan peluruhan kata dasar yang berawalan “be-“, “te-“, “me-“, dan “pe-“. Dalam kolom kedua pada tabel 2.2 menjelaskan bentuk kata dasar yang berawalan

“be-“, “te-“, “me-“, dan “pe-“, dalam kolom ketiga merupakan perubahan karakter kata dasar setelah algoritma menghilangkan awalan yang melekat pada kata dasar tersebut. Huruf “V” yang terdapat pada kolom kedua dan ketiga merupakan huruf vokal.

Sedangkan huruf “C” merupakan huruf konsonan dan huruf “P”

merupakan pecahan “er”.

(30)

c. Cari kata yang telah dihilangkan awalannya, jika tidak ditemukan maka langkah diulang kembali, jika telah ditemukan maka algoritma berhenti.

5. Jika langkah 4 kata dasar masih belum ditemukan, maka proses dilakukan dengan mengacu kepada aturan tabel 2.2.

6. Jika tetap tidak berhasil, maka kata awal diasumsikan sebagai kata dasar, kemudian algoritma berhenti.

Dalam mengatasi keterbatasan pada algoritma stemming diatas, maka ditambahkan aturan dibawah (Agusta, 2009) :

1. Aturan reduplikasi

 Jika terdapat dua kata yang dihubungkan dan memiliki bentuk kata yang sama, maka kata dasarnya adalah bentuk tunggalnya, seperti “ibu-ibu”, karena memiliki kata yang sama maka kata dasarnya adalah “ibu”.

 Jika terdapat dua kata yang dihubungkan namun memiliki bentuk kata yang berbeda seperti “bermalas-malasan” maka cara untuk menjadi kata dasarnya adalah dengan mengartikan kedua kata tersebut secara terpisah. Jika kedua kata tersebut memiliki kata dasar yang sama, maka kedua kata tersebut masing-masing dirubah menjadi kata dasar tunggal. Sehingga dalam prosesnya memiliki dua kata dari kata “bermalas- malasan” menjadi “malas” dan “malas”. Perilaku yang sama pun dilakukan jika dua kata berhubungan memiliki kata-kata yang berbeda seperti “bolak-balik”, maka kata dasar dari

“bolak-balik” adalah “bolak” dan “balik”.

2.3.1.4 Normalization

Tahap normalisasi merupakan tahap untuk menghilangkan nilai huruf yang berlebihan.

(31)

Pada Tabel 2.6 dibawah ini menguraikan tentang bagaimana proses sebuah dokumen sebelum melakukan Normalization dan sesudah dilakukan Normalization.

Tabel 2. 6 Tabel Contoh Normalization

Sebelum Normalization Setelah Normalization rumah makan yang

unik di jogja bagus sih makanan standarrr untuk harganya, banyak pilihan makanan juga.

rumah makan yang unik di jogja bagus sih makanan standar untuk harganya, banyak pilihan

makanan juga.

2.3.1.5 Stopword Removal

Tahap stopword removal merupakan proses pengambilan kata yang penting dan menghilangkan kata yang tidak penting(dan, di, atau dll).

Pada Tabel 2.7 dibawah ini menguraikan tentang bagaimana proses sebuah dokumen sebelum melakukan Stopword Removal dan sesudah dilakukan Stopword Removal.

Tabel 2. 7 Tabel Contoh Stopword Removal

Sebelum Stopword Removal Setelah Stopword removal rumah makan yang unik di jogja

bagus sih makanan standarrr untuk harganya, banyak pilihan

makanan juga.

Rumah makan unik jogja bagus sih makan bagus sih makan standar

harga, banyak pilih makan

(32)

2.4 Term Frequency & Inverse Document Frequency

Pemberian bobot di dalam kata diperlukan agar kita dapat mengetahui kemiripan antara 1 dokumen dengan dokumen lain. Dokumen disini bukan hanya dokumen negara, melainkan banyak tipe data dokumen, seperti teks musik, teks berita, teks cerpen, maupun teks review.

Salah satu metode yang populer dalam pembobotan kata-kata dalam dokumen adalah TF-IDF. Metode ini menggunakan frekuensi kata yang ada di dalam dokumen untuk memberikan bobot kata tersebut.

TF adalah Term Frequency yaitu frekuensi berapa kali kemunculan kata tersebut di dalam dokumen terkait. Semakin banyak sebuah term muncul di dalam dokumen, maka akan semakin besar pula bobot dari kata tersebut. Perhitungan TF dapat dilakukan dengan menghitung berapa kali suatu kata tersebut muncul dalam dokumen yang bersangkutan.

Sedangkan IDF adalah Inverse Document Frequency yang merupakan sebuah perhitungan bagaimana pendistribusian term dilakukan secara luas pada koleksi dokumen yang bersangkutan. IDF menunjukkan hubungan ketersediaan sebuah term dalam seluruh dokumen. Semakin sedikit jumlah dokumen yang mengandung term yang dimaksud, maka nilai IDF dari term tersebut akan semakin besar. Perhitungan IDF dari suatu term dapat menggunakan rumus :

𝑖𝑑𝑓 = 10𝑙𝑜𝑔(𝑁/𝑑𝑓)……….(2.5)

Keterangan :

N = jumlah total banyak dokumen yang digunakan df = frekuensi term tersebut

Perhitungan bobot TF-IDF dari suatu term juga dapat dilakukan dengan :

(33)

𝑊 = 𝑡𝑓 𝑥 𝑖𝑑𝑓 ……….(2.6) Keterangan :

W = bobot

Tf = Term Frequency

Idf = inverse document frequency

2.5 Modified K-Nearest Neighbor

Algoritma modified k-nearest neighbor merupakan pengembangan dari metode KNN dengan penambahan 2 buah proses yaitu perhitungan nilai validitas dan perhitungan bobot (Wu et al, 2008). Berikut ini Langkah-langkah proses penghitungan modified k-nearest neighbor :

1. Perhitungan Jarak Euclidean

Untuk menghitung jarak dapat menggunakan Euclidean Distance. Metode ini cicik untuk data yang berupa numerik. Khususnya dengan atribut kontinu(Gorunescu, 2011). Euclidean Distance dihitung denga rumus :

𝑑(𝑥, 𝑦) = √∑ (𝑥𝑛𝑖=1 𝑖 − 𝑦𝑖)2………..(2.1)

Dimana:

D(x,y) = jarak n = dimensi data i = variabel data xi = data uji yi = sampel data

(34)

2. Perhitungan Nilai Validitas

Dalam algoritma MKNN, setiap data pada data latih harus divalidasi pada langkah pertama. Validitas setiap data berantung pada setiap tetangganya. Proses validasi dilakukan untuk semua data latih. Setelah dihitung nilai validitas tiap data maka nilai tersebut akan digunakan sebagai informasi lebih mengenai data tersebut (Parvin et al., 2008).

Tetangga terdekat perlu dipertimbangkan dalam menghitung validitas data latih. Di antara tetangga terdekat dengan data, validitas digunakan untuk menghitung jumlah titik dengan label yang sama dengan data tersebut. Untuk menghitung validitas dari setiap titik pada data latih menggunakan persamaan (Parvin et al., 2008):

𝑉𝑎𝑙𝑖𝑑𝑖𝑡𝑦(𝑥) =𝐻1𝐻𝑖=1𝑆(𝑙𝑏𝑙(𝑥), (𝑙𝑏𝑙(𝑁𝑖(𝑥)))………..(2.2) di mana :

H = jumlah titik terdekat N = jumlah data

(𝑙𝑏𝑙(𝑥)) = kelas x

𝑙𝑏𝑙(𝑁𝑖(𝑥)) = label kelas titik terdekat x

Fungsi S digunakan untuk menghitung kemiripan antara titik x dan data ke-I dari tetangga tersekat. Yang dituliskan dengan persamaan :

𝑆(𝑎, 𝑏) = {1 𝑎 = 𝑏, 0𝑎 ≠ 𝑏} ………(2.3) Keterangan :

a = kelas a pada data latih

b = kelas lain selain kelas a pada data latih

3. Perhitungan Weight Voting

Dalam metode MKNN, langkah pertama dalam weight masing-masing tetangga dihitung menggunakan 1 / (de + 0.5). Kemudian, validitias dari tiap data pada data latih dikalikan dengan weighted berdasarkan pada jarak

(35)

Euclidian. Dalam metode MKNN, weight voting masing-masing tetangga dihitung menggunakan persamaan (Parvin et al., 2008):

𝑊(𝑖) = 𝑉𝑎𝑙𝑖𝑑𝑖𝑡𝑦(𝑖) 𝑥 𝑑𝑒(𝑖)+0.51 ………..(2.4) Di mana :

W(i) = Perhitungan Weight Voting Validity(i) = Nilai Validitas

de(i) = Jarak Euclidean

Teknik Weight Voting ini mempunyai pengaruh lebih penting terhadap data yang mempunyai nilai validitas lebih tinggi dan paling dekat dengan data uji. Selain itu, perkalian validitas dengan jarak dapat mengatasi kelemahan dari setiap data yang mempunyai jarak dengan weight yang memiliki banyak masalah dalam outlier. Jadi, algoritma MKNN yan diusulkan secara signifikan lebih kuat daripada metode KNN tradisional yang didasarkan pada jarak (Parvin et al., 2008).

2.6 K-Fold Cross Validation

Cross Validation adalah teknik validasi model untuk menilai keakuratan hasil analisis (Nasution, D. A.,dkk. 2019). Cross Validation merupakan metode statistik untuk mengevaluasi kinerja suatu model atau algoritma yang dibangun berdasarkan dataset tertentu, yang dimana data kemudian dibagi menjadi dua, yaitu data training, yang dimana data training digunakan untuk melatih suatu algoritma yang digunakan dan yang kedua ada data testing, dimana data testing digunakan untuk mengetahui performa dari sebuah algoritma yang sudah dilatih sebelumnya ketika menemukan suatu data yang belum pernah ditemukan sebelumnya pada data training.

Salah satu metode cross-validation yang populer adalah K-Fold Cross Validation. Dalam teknik ini dataset dibagi menjadi sejumlah K-buah partisi secara acak. Kemudian dilakukan sejumlah K-kali eksperimen, dimana masing-masing eksperimen menggunakan data partisi ke-K sebagai data testing dan memanfaatkan sisa partisi lainnya sebagai data training.

(36)

Sebagai gambaran, jika kita melakukan 10 Fold Cross Validation, maka desain data eksperimen nya akan seperti tabel 2.1 berikut :

Tabel 2.8 Tabel Data Eksperimen Eksperimen Data Testing Data Training

1 k1 k2,k3,k4,k5

2 k2 k1,k3,k4,k5

3 k3 k1,k2,k4,k5

4 k4 k1,k2,k3,k5

5 k5 k1,k2,k3,k4

2.7 Confusion Matrix

Confusion Matrix adalah pengukuran performa untuk masalah klasifikasi machine learning dimana keluaran dapat berupa dua kelas atau lebih. (Narkhede,S. 2018). Di dalam Confusion Matrix, terdapat empat istilah yang digunakan sebagai representasi hasil proses klasifikasi , yaitu True Positive (TP), True Negative (TN), False Positive (FP) dan False Negative (FN).

Tabel 2.9 Contoh Confusion Matrix

Nilai Asli, Nilai Prediksi Nilai Asli (i)

Positif Negatif

Nilai Prediksi Positif TP FN

Negatif FN TN

Keterangan:

TP (True Positive) = Klasifikasi bernilai benar menurut prediksi dan benar menurut nilai sebenarnya

FP (False Positive) = Klasifikasi bernilai benar menurut prediksi dan salah menurut nilai sebenarnya

(37)

TN (True Negative) = Klasifikasi bernilai salah menurut prediksi dan salah menurut nilai sebenarnya

FN (False Negative) = Klasifikasi bernilai salah menurut prediksi dan benar menurut nilai sebenarnya.

Perhitungan akurasi dengan confusion matrix :

𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = 𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁𝑇𝑃+𝑇𝑁 x 100 % ………(2.7) Perhitungan Error Rate dengan Confusion Matrix :

𝐸𝑟𝑟𝑜𝑟 𝑅𝑎𝑡𝑒 = 𝐹𝑃+𝐹𝑁𝑃+𝑁 ………(2.8)

(38)

22 BAB III

METODE PENELITIAN

3.1 Gambaran Umum

Gambar 3.1 Gambaran Umum Penelitian

Gambar 3.1 mendeskripsikan bagaimana data akan di proses dan menghasilkan akurasi. Tahap Preprocessing pada gambar tersebut adalah Case folding, dimana proses ini tahapan awal dari Preprocessing yang bertujuan untuk mengubah kata-kata yang didapat menjadi format yang sama. Pada tahapan ini dilakukan dengan mengubah kata menjadi huruf kecil atau lower case. Proses selanjutnya yaitu Tokenization, dimana proses ini digunakan untuk memisahkan setiap kata menjadi pecahan pecahan kecil yang bertujuan untuk menghilangkan whitespace. Pada langkah ini terkadang disertai langkah untuk membuangkarakter tertentu seperti tanda baca,emoji dan url. Proses Selanjutnya yaitu Stopword Removal, dimana proses ini digunakan untuk pembuangan kata-kata yang tidak penting. Pada tahap ini , dilakukan proses perhitungan yang lebih berfokus pada kata-kata yang lebih penting. Proses terakhir ada proses Stemming, dimana proses ini dilakukan untuk mencari kata dasar dari setiap kata. Pada tahapan ini, dilakukan proses pengembalian berbagai bentukan kata ke dalam suatu representasi yang sama. Setelah

(39)

melewati proses Preprocessing, data akan masuk ke tahap Pembobotan Kata dengan menggunakan metode TF-IDF, dalam metode TF-IDF ini semua data yang sudah masuk tahap Preprocessing akan di hitung bobot perkatanya.

Setelah melewati proses pembobotan kata , data akan masuk ke tahap pembentukan model. Dimana data akan dibagi menjadi 2 bagian yaitu data training dan data testing. Dalam pemodelan tersebut data akan diolah menggunakan algoritma modified k-nearest neighbor. Yang akan di lakukan yaitu pencarian validitas dari jarak seluruh data testing dan mencari bobot dari jarak data training terhadap data testing. Berdasarkan hasil yang telah didapat dari perhitungan validitas dan perhitungan weight voting diatas kemudian dilakukan pengujian K-fold cross validation, yaitu salah satu teknik untuk menilai/memvalidasi keakuratan suatu model yang dibangun berdasarkan dataset tertentu. Pengujian menggunakan k=5 yang menunjukkan jumlah dataset, dimana dataset dibagi menjadi 5 bagian yaitu K1,K2,K3,K4,K5 dengan iterasi pengujian sebanyak 5 kali dimaan setiap dataset secara bergantian menjadi data latih dan data uji. Jumlah dataset yang digunakan sebanyak 400 data. tiap dataset berjumlah 80 dengan isi dokumen yang berbeda-beda dalam bahasa Indonesia. Skenario pengujian K-fold cross validation yang akan dilakukan dapat dilihat pada Tabel 3.1 Dibawah ini :

Tabel 3.1 Skenario Pengujian K-Fold Cross Validation

Fold Data Latih Data Uji

1 K2,K3,K4,K5 K1

2 K1,K3,K4,K5 K2

3 K1,K2,K4,K5 K3

4 K1,K2,K3,K5 K4

5 K1,K2,K3,K4 K5

(40)

Hasil akan di rekam menggunakan confusion matrix yang akan menghasilkan akurasi menjadi hasil akhir pada sistem ini.

3.2 Data

Data yang akan digunakan dalam penelitian ini adalah data review restoran dari situs web TripAdvisor, namun data review yang digunakan dalam penelitian ini hanya mengambil salah satu restoran di Indonesia tepatnya di daerah Yogyakarta yaitu The House of Raminten. Data yang diambil hanya 400 review.

Gambar 3.2 Data Review Restoran

3.3 Preprocessing 3.3.1 Preprocessing

Tahap pre-processing merupakan tahap yang paling penting dalam Text mining. Pre-processing dilakukan untuk mendapatkan data yang akurat. Pre-

(41)

processing memiliki peran untuk mengurangi noise dari data lirik lagu. Dalam pre- processing teks, ada beberapa langkah seperti case folding, tokenisasi, stemming, normalisasi, stopword removal.

3.3.1.1 Case Folding

Tahap pertama yang dilakukan pada pre-processing adalah case folding. Case folding dilakukan untuk mengubah seluruh teks menjadi menjadi huruf kecil atau lowercase, hal ini dilakukan untuk merubah kata – kata menjadi mempunyai format yang sama.

Berikut langkah-langkah case folding : 1. Baca tiap baris pada dokumen

2. Dokumen yang berisi huruf besar dan kecil akan diubah menjadi huruf kecil semua.

3. Dokumen disimpan.

3.3.1.2 Tokenization

Pada tahap ini, setelah melalui proses case folding kumpulan kata lirik lagu kemudian akan dipotong menjadi potongan-potongan kecil yang nantinya akan menjadi satu kata yang disebut dengan token.

Berikut merupakan langkah-langkah tokenization : 1. Baca setiap baris pada file text sebagai satu dokumen.

2. Pada satu kalimat lirik lagu ambil setiap token dengan cara menjadikan spasi sebagai patokan untuk memisahkan antara token satu dengan yang

rumah makan yang unik di jogja bagus sih makanan standarrr untuk harganya,

banyak pilihan makanan juga.

Gambar 3. 3 Proses Hasil Case Folding

(42)

lain.

3. Simpan hasil dari setiap kalimat lirik lagu yang terdiri dati token penyusun.

Tabel 3. 1 Proses Hasil tokenization

Sebelum Tokenization Setelah Tokenization Rumah makan yang unik di Jogja

bagus sih makanan standarrr untuk harganya, banyak pilihan

makanan juga.

[‘rumah’ ‘makan’

‘yang’ ‘unik’ ‘di’

‘jogja’ ‘bagus’ ‘sih’

‘makanan’ ‘standarrr’

‘untuk’ ‘harganya’

‘banyak’ ‘pilihan’

'makanan’ ‘juga’]

Gambar 3.4 Hasil Tokenization 3.3.1.3 Stemming

Setelah proses tokenization, proses selanjutnya adalah stemming.

Stemming dilakukan untuk mengubah kata menjadi bentuk dasar atau kata dasar dengan menghilangkan imbuhan di awal dan akhir.

Berikut langkah-langkah dalam stemming : 1. Baca setiap token pada setiap dokumen lirik lagu.

2. Hasil dari tokenization akan dicocokan dengan kamus kata dasar, jika ada kecocokan maka dapat disimpulkan bahwa kata tersebut adalah kata dasar.

(43)

3. Jika terdapat kata yang tidak cocok dengan kamus kata dasar, hapus awalan dan akhiran pada kata.

4. Setelah menghapus awalan dan akhiran kata, kembali dilakukan pencocokan dengan kamus kata dasar, jika terdapat kecocokan maka dapat disimpulkan bahwa kata tersebut adalah kata dasar.

5. Jika tetap tidak ditemukan, maka sebelum langkah 3 ditentukan sebagai kata dasarnya.

Tabel 3. 2 Proses Hasil Stemming

Sebelum Stemming Setelah Stemming

Suka sekali,tempatnya unik, variasi makanannya banyak.

Sebaiknya reservasi dulu karena selalu ramai.

suka sekali tempat unik variasi makan banyak. baik reservasi dulu

karena selalu ramai.

Gambar 3.5 Hasil Stemming 3.3.1.4 Normalization

Tahap ini merupakan tahap menghilangkan atau memperbaiki huruf dalam sebuah kata yang muncul berurut-urut atau berlebihan.

Berikut langkah-langkah normalisasi : 1. Baca token hasil dari proses stemming .

2. Jika token hasil proses stemming terdapat kecocokan pada kamus maka sudah termasuk kata normalisasi.

3. Jika token terdapat huruf yang melebihi akan dihapus dan akan dicari dalam kamus.

(44)

Tabel 3. 3 Proses Hasil Normalization

Sebelum Normalization Setelah Normalization Rumah makan yang unik di Jogja

bagus sih makanan standarrr untuk harganya, banyak pilihan

makanan juga.

rumah makan yang unik di Jogja bagus sih makanan standar untuk harganya, banyak pilihan

makanan juga.

Gambar 3.6 Hasil Normalization

3.3.1.5 Stopword Removal

Tahap ini merupakan tahap menghilangkan kata-kata yang memiliki informasi rendah dari sebuah teks, kita dapat fokus pada kata-kata penting sebagai gantinya.

Berikut langkah-langkah stopword removal :

1. Baca token hasil dari normalisasi, kemudian cocokan dengan kamus stopword.

2. Jika kata ditemukan dalam kamus stopword, maka kata tersebut

(45)

dibuang atau dihapus.

3. Jika tidak ditemukan maka disimpan.

Tabel 3. 4 Proses Hasil Stopword Removal

Sebelum Stopword Removal Setelah Stopword Removal Rumah makan yang unik di Jogja

bagus sih makanan standarrr untuk harganya, banyak pilihan makanan juga.

rumah makan unik jogja bagus sih makan bagus sih makan standar

harga, banyak pilih makan

`

Gambar 3.6 Hasil Stopword Removal

(46)

3.4 Pembobotan TF-IDF

3.4.1 Menghitung Term Frequency

Gambar 3.7 Hasil Perhitungan Term Frequncy

(47)

3.4.2 Menghitung Document Frequency

Gambar 3.8 Hasil Perhitungan Document Frequency

3.4.3 Menghitung Inverse Document Frequency

Gambar 3.9 Hasil Perhitungan Inverse Document Frequency

(48)

3.5 Modified K-Nearest Neighbor

3.5.1 Menghitung Euclidean Distance

Gambar 3.10 Perhitungan Euclidean Distance 3.5.2 Menghitung Validitas

Validitas (x = 1) =1

𝑘∑ s(label(x), ((label(Ni(x)))

𝑘

𝑘=1

= 1

1010𝑘=1s(label(x), ((label(Ni(x)))

= 101 (1 + 1 + 1 + 1 + 1 + 0 + 1 + 1+)

= 0.7

Untuk langkah selanjutnya sama dengan langkah sebelumnya, sehingga diakhir akan mendapatkan nilai validitas seperti dibawah ini :

Tabel 3.5 Menghitung Validitas

VALIDITAS

k1 0.7

k2 0.6

k3 0.5

k4 0.4

k6 0.4

k7 0.4

k8 0.4

k9 0.5

(49)

3.5.3 Menghitung Weight Voting

𝑊(𝑖) = 𝑉𝑎𝑙𝑖𝑑𝑖𝑡𝑎𝑠(𝑖) x 𝑑+0.51 𝑊(1) = 𝑉𝑎𝑙𝑖𝑑𝑖𝑡𝑎𝑠(1) x 4.16772+0.51

𝑊(1) = 0.7 x 4.16772+0.51

𝑊(1) = 0.21423

Untuk langkah selanjutnya sama dengan langkah sebelumnya, sehingga diakhir akan mendapatkan nilai validitas seperti dibawah ini :

Tabel 3.6 Hasil Weight Voting WEIGHT VOTING

k1 0.2142372 k2 0.19030107 k3 0.23253124 k4 0.21471509 k6 0.19166016

k7 0

k8 0.19499657 k9 0.24730471

(50)

3.6 Confusion Matrix

Setelah dilakukan proses perhitungan, proses selanjutnya adalah menghitung akurasi dengan menggunakan confusion matrix, yaitu dengan menjumlahkan data yang benar dan membaginya dengan semua data kemudian dikalikan dengan 100%.

Tabel 3.7 Confusion Matrix Aktual

Prediksi

Positif Negatif

Positif 9 0

Negatif 0 1

Berdasarkan pada hasil pada Tabel 3.7 dihitung menggunakan rumus (2.7), berikut merupakan hasil perhitungannya :

𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = 9+1

9+0+0+1 × 100% = 100%

3.7 Kebutuhan Sistem 3.7.1 Hardware

a. Processor : Inter® Celeron® N4120 CPU @ 1.10GHz (4 CPUs)

~1.1GHx

b. Memory : 4GB 3.7.2 Software

a. Operating System : Windows 11 Home Single Language 64 Bit b. Application : Netbeans 8.2

(51)

3.8 Perancangan Interface

Gambar 3.10 Perancangan Interface

Dilihat pada Gambar 3.10, desain interface yang dirancang oleh peneliti , secara garis besar hanya memiliki 2 bagian seperti tombol Browse yang digunakan untuk mencari data berupa data review yang sudah dimiliki oleh peneliti dengan format .xls dimana data ini digunakan sebagi input dan tampil dilayar dengan bentuk tabel. Kemudian ada radio button K-Fold dan jumlah tetangga yang digunakan untuk menentukan jumlah K-Fold dan jumlah tetangga. Lalu tombol proses yang digunakan untuk memproses data yang akan ditampilkan akurasinya setelah melewati perhitungan K-Fold dan jumlah tetangga untuk menampilkan hasil akurasi di kotak kosong.

(52)

36 BAB IV IMPLEMENTASI

Bab ini menjelaskan mengenai implementasi menggunakan aplikasi Netbeans 8.2 sebagai alat bantu untuk membangun perangkat lunak.

4.1 Browse File

Pada implementasi sistem terdapat button Browse File yang berfungsi untuk mengambil data review restoran yang nantinya akan digunakan untuk proses penghitungan akurasi.

Gambar 4.1 Kode Program Browse File

Di lihat dari Kode Program pada gambar 4.1 bahwa data file yang bisa digunakan pada sistem ini hanya file excel yang bereksistensi .xls saja.

4.2 Preprocessing

Pada tahap preprocessing terdapat Case Folding, Tokenizing, Stopword Removal, Stemming. Berikut merupakan Kode Program dari tahap preprocessing :

(53)

4.2.1 Case Folding

Gambar 4.2 Kode Program Case Folding

(54)

Dari kode program pada Gambar 4.2 dapat dilihat bahwa Kode Program diatas berfungsi untuk mengubah mengubah kata-kata yang didapat menjadi format yang sama, yaitu mengubah kata menjadi huruf kecil atau lower case.

4.2.2 Tokenizing

Gambar 4.3 Kode Program Tokenizing

Dari Kode Program pada Gambar 4.3 dapat dilihat bahwa Kode Program diatas berfungsi untuk memisahkan setiap kata menjadi pecahan pecahan kecil yang bertujuan untuk menghilangkan whitespace dalam dokumen.

4.2.3 Stopword Removal

Gambar 4.4 Kode Program Stopword Removal

(55)

Dari Kode Program pada Gambar 4.4 dapat dilihat bahwa Kode Program diatas berfungsi untuk membuang kata kata yang tidak penting dan difokuskan ke kata kata yang penting saja dalam dokumen.

4.2.4 Stemming

Gambar 4.5 Kode Program Stemming

Dari Kode Program pada Gambar 4.5 dapat dilihat bahwa Kode Program diatas berfungsi untuk mencari kata kata dasar dari setiap kata yang ada dalam dokumen.

4.3 Modified K-Nearest Neighbor

Modified K-Nearest Neighbor meruapakan metode yang digunakan untuk mengklasifikasikan data nasabah. Didalam metode ini dibutukan inputan data yang berupa data testing dan data training serta nilai K atau nilai tetangga terdekat.

(56)

4.3.1 Hitung Validity

Gambar 4.6 Kode Program Hitung Validity

Dari Kode Program pada Gambar 4.6 dapat dilihat bahwa Kode Program diatas berfungsi untuk menghitung nilai validitas dari setiap kata yang ada dalam dokumen.

4.3.2 Hitung Weight Voting

Gambar 4.7 Kode Program Weight Voting

Dari Kode Program pada Gambar 4.7 dapat dilihat bahwa Kode Program diatas berfungsi untuk menghitung bobot weight voting dari setiap kata yang ada dalam dokumen.

(57)

4.3.3 Hitung K-Fold Validation

Gambar 4.8 Kode Program K-Fold Cross Validation

Dari Kode Program pada Gambar 4.7 dapat dilihat bahwa Kode Program diatas berfungsi untuk mencari nilai akurasi dengan menggunkan metode k-fold validation dari berbagai tetangga.

(58)

42 BAB V

HASIL DAN ANALISA

Bab ini membahas mengenai hasil dan analisa uji data kelompok dengan variasi k-fold cross validation dan variasi banyaknya jumlah tetangga terdekat serta hasil pengujian data tunggal

5.1 Uji Data Kelompok

Gambar 5.1 Hasil Uji Data Kelompok

Pada Gambar 5.1 ini menggunakan 400 dataset review yang sudah melewati proses preprocessing, yaitu case folding, tokenization,stopword removal dan stemming serta penggunaan 3-fold, 5-fold, 7-fold serta 9-fold cross validation untuk membagi dataset menjadi data training dan data testing dan menggunakan tetangga terdekat 3, 5, 7 untuk metode modified k-nearest neighbor. Pada gambar 5.1 merupakan interface dari sistem ketika menentukan akurasi. Langkah menentukan akurasi yaitu user perlu menekan tombol Browse yang diperintahkan untuk memilih file data set berupa excel. Selanjutnya memilih k-fold dan jumlah tetangga yang

(59)

diinginkan. Kemudian tekan tombol proses untuk memunculkan nilai akurasi. User memilih metode 9-fold, 9 tetangga yang dimana menghasilkan akurasi sebesar 93,18%. Berikut merupakan hasil akurasi dari setiap fold :

2. 3-Fold Cross Validation

Tabel 5.1 Hasil Akurasi 3-fold 3 Fold

Tetangga Terdekat Akurasi

1 89,47 %

3 92,48 %

5 92,48 %

7 92,48 %

9 92,48 %

Berdasarkan tabel 5.1 di atas, dapat diketahui bahwa nilai akurasi yang paling optimal adalah 92,48% dengan menggunakan 3-fold cross validation dengan banyaknya tetangga terdekat 3, karena jika menggunakan jumlah tetangga 5,7,9 akan menghasilkan beban komputasi yang lebih berat.. Berikut gambar 5.2 grafik hasil akurasi penelitian menggunakan 3- fold cross validation dan menggunakan tetangga terdekat 1, 3, 5, 7, 9 :

Gambar 5.2 Hasil Akurasi 3-fold

(60)

3. 5-Fold Cross Validation

Tabel 5.2 Hasil Akurasi 5-fold 5 Fold

Tetangga Terdekat Akurasi

1 88,10 %

3 91,64 %

5 92,40 %

7 92,40 %

9 92,40 %

Berdasarkan tabel 5.2 di atas, dapat diketahui bahwa nilai akurasi yang paling optimal adalah 92,40% dengan menggunakan 5-fold cross validation dengan banyaknya tetangga terdekat 5, karena jika menggunakan jumlah tetangga 7 dan 9 akan menghasilkan beban komputasi yang lebih berat. Berikut gambar 5.3 grafik hasil akurasi penelitian menggunakan 5- fold cross validation dan menggunakan tetangga terdekat 1, 3, 5, 7, 9 :

Gambar 5.3 Hasil Uji Akurasi 5-fold

(61)

4. 7-Fold Cross Validation

Tabel 5.3 Hasil Akurasi 7-fold 5 Fold

Tetangga Terdekat Akurasi

1 91,83 %

3 92,60 %

5 92,60 %

7 92,85 %

9 92,85 %

Berdasarkan tabel 5.3 di atas, dapat diketahui bahwa nilai akurasi yang paling optimal adalah 92,40% dengan menggunakan 7-fold cross validation dengan banyaknya tetangga terdekat 7, karena jika menggunakan jumlah tetangga terdekatnya 9 akan menghasilkan beban komputasi yang lebih berat . Berikut gambar 5.4 grafik hasil akurasi penelitian menggunakan 7-fold cross validation dan menggunakan tetangga terdekat 1, 3, 5, 7, 9 :

(62)

Gambar 5.4 Hasil Akurasi 7-fold

5. 9-Fold Cross Validation

Tabel 5.4 Hasil Akurasi 9-fold 9 Fold

Tetangga Terdekat Akurasi

1 92,42 %

3 92,92 %

5 92,92 %

7 93,18 %

9 93,18 %

Berdasarkan tabel 5.4 di atas, dapat diketahui bahwa nilai akurasi yang paling optimal adalah 93,18% dengan menggunakan 9-fold cross validation dengan banyaknya tetangga terdekat 7, karena jika menggunakan 9 tetangga terdekat maka akan menghasilkan beban komputasi yang lebih berat. Berikut gambar 5.5 grafik hasil akurasi penelitian menggunakan 9- fold cross validation dan menggunakan tetangga terdekat 1, 3, 5, 7, 9 :

(63)

Gambar 5.5 Hasil Akurasi 9-fold

5.1.1 Analisis

Dari hasil uji akurasi sistem yang telah dibuat dengan menggunakan algoritma modified k-nearest neighbor dengan menggunakan K-Fold Cross Validation untuk pembagian model antara data training dan data testing dengan menggunakan nilai K yaitu 3-fold. Dapat dilihat dari gambar 5.2.

Pada penelitian ini pada saat menggunakan 3-fold diperoleh akurasi tertinggi ketika k = 9 dengan hasil akurasi sebesar 92,48%. Pada percobaan menggunakan 5-fold diperoleh akurasi tertinggi ketika k = 5 dengan hasil akurasi sebesar 92,40%. Pada percobaan menggunakan 7-fold diperoleh akurasi tertinggi ketika k = 7 dengan hasil akurasi sebesar 92,85%. Pada percobaan menggunakan 9-fold diperoleh akurasi tertinggi ketika k = 7 dengan hasil akurasi 93,18%.Dapat diartikan jumlah K dari nilai tetangga dalam algoritma Modified K-Nearest Neighbor berpengaruh terhadap nilai akurasi yang didapat.

(64)

5.2 Uji Data Tunggal

Untuk melakukan uji data tunggal dilakukan input file data berupa excel yang bisa berisikan 1 atau lebih data uji. Berikut merupakan hasil dari percobaan uji data tunggal:

Gambar 5.6 Percobaan Uji Data Tunggal

Pada gambar 5.6 merupakan percobaan uji data tunggal dengan inputan data berupa excel, didalam file tersebut kita dapat mengisikan lebih dari satu data dengan cara menekan tombol Browse. Cari file data yang ingin digunakan untuk uji data tunggal, maka setelah file tersebut dipilih maka akan muncul didalam tampilan interface. Dari data tersebut sistem akan menguji satu persatu data terhadap dataset yang sudah di proses pada pengujian akurasi. Kemudian dalam interface tersebut User memilih jumlah tetangga yang diinginkan, kemudian User mengetik text yang berkaitan dengan review sebuah restoran di kolom text, lalu

(65)

tekan tombol Proses. Hasil Dari Proses tadi, akan menampilkan sebuah hasil Klasifikasi berupa Sentimen apa yang dimiliki oleh text tersebut.

(66)

50 BAB VI PENUTUP

6.1 Kesimpulan

Berdasarkan penelitian yang dilakukan, klasifikasi analisis sentimen review restoran dengan teks Bahasa Indonesia menggunakan Modified K- Nearest Neighbor maka dapat diambil kesimpulan bahwa :

1. Metode Modified K-Nearest Neighbor mampu mengklasifikasikan data review restoran dengan akurasi tertinggi yaitu sebesar 93,18%. Akurasi ini diperoleh saat menggunakan 9-fold cross validation serta 7

tetangga terdekat.

6.2 Saran

Berikut saran yang dapat membantu peneliti selanjutnya agar penelitian ini menjadi lebih baik:

1. Peneliti selanjutnya bisa mengembangkan data menggunakan data yang berlabel netral sehingga data lebih bervariatif

2. Data yang digunakan bisa diambil secara otomatis dari TripAdvisor 3. Dapat menggunakan metode klasifikasi lain yang menghasilkan nilai

akurasi yang lebih baik daripada metode yang digunakan oleh peneliti sebelumnya.

(67)

51

DAFTAR PUSTAKA

Han, J., Pei, J., & Kamber, M. (2011). Data mining: concepts and techniques.

Elsevier.

Imanda, A. C., Hidayat, N., & Furqon, M. T. (2018). Klasifikasi Kelompok Varietas Unggul Padi Menggunakan Modified K-Nearest Neighbor. Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e-ISSN, 2548, 964X.

Mustafa, Atika, Ali Akbar, and Ahmer Sultan. "Knowledge discovery using text mining: a programmable implementation on information extraction and categorization." (2009).

Muthia, Dinda Ayu. "Analisis Sentimen Pada Review Restoran Dengan Teks Bahasa Indonesia Mengunakan Algoritma Naive Bayes." JITK (Jurnal Ilmu Pengetahuan Dan Teknologi Komputer) 2.2 (2017): 39-45.

Putrianti, Risma Putri, Ana Kurniati, and Dina Agustin. "Implementasi Algoritma K-Nearest Neighbor Terhadap Analisis Sentimen Review Restoran Dengan Teks Bahasa Indonesia." Seminar Nasional Aplikasi Teknologi Informasi (SNATI). 2019.

Ravi, M. R., & Indriati, S. A. Implementasi Algoritme Modified K-Nearest Neighbor (MKNN) Untuk Mengidentifikasi Penyakit Gigi Dan Mulut. Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e- ISSN, 2548, 964X.

Rahutomo, Faisal, et al. "Implementasi Text Mining Pada Website/Blog Di Internet Untuk Menilai Kinerja Suatu Organisasi." INOVTEK Polbeng-Seri Informatika 3.2 (2018): 101-109.

(68)

Romadloni, N. T., Santoso, I., & Budilaksono, S. (2019). Perbandingan Metode Naive Bayes, KNN dan Decision Tree Terhadap Analisis Sentimen Transportas KRL Commuter Line. IKRA-ITH INFORMATIKA: Jurnal Komputer dan Informatika, 3(2), 1-9.

Salam, Abu, Junta Zeniarja, and Rima Septiyan Uswatun Khasanah. "Analisis Sentimen Data Komentar Sosial Media Facebook dengan K-NEAREST NEIGHBOR (Studi Kasus Pada Akun Jasa Ekspedisi Barang J&T Ekspress Indonesia)." (2018).

Simanjuntak, Tri Halomoan. Implementasi Modified K-Nearest Neighbor Dengan Otomatisasi Nilai K Pada Pengklasifikasian Penyakit Tanaman Kedelai.

Diss. Universitas Brawijaya, 2014.

Zhang, Z., Ye, Q., Zhang, Z., & Yijun, L. (2011). Sentiment classification of Internet restaurant reviews written in Cantonese. Expert Systems with Applications, 7674-7682.

Referensi

Dokumen terkait

Dari hasil perhitungan cosine similarity ke- enam data, diperoleh hasil yang tertera pada Tabel 4. Data tersebut kemudian diurutkan mulai dari nilai terbesar hingga nilai

Dari hasil perhitungan cosine similarity ke- enam data, diperoleh hasil yang tertera pada Tabel 4. Data tersebut kemudian diurutkan mulai dari nilai terbesar hingga nilai

1 menunjukkan diagram heatmap korelasi antar variabel HASIL Dan PEMBAHASAN Setelah menghitung dataset yang terdiri dari dua belas pertanyaan yang disebutkan di atas dengan algoritma