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
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
iii
iv
v
HALAMAN MOTTO
"There is only one thing that makes a dream impossible to achieve: the fear of failure." - Paulo Coelho, The Alchemist
vi
vii
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.
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.
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.
xi
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
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
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
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
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
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
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.
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
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.
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.
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))
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.
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.
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.
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
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
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}...
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”.
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.
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
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 :
𝑊 = 𝑡𝑓 𝑥 𝑖𝑑𝑓 ……….(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
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
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.
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
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)
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
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
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-
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
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.
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.
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
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
3.4 Pembobotan TF-IDF
3.4.1 Menghitung Term Frequency
Gambar 3.7 Hasil Perhitungan Term Frequncy
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
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
10∑10𝑘=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
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
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
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.
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 :
4.2.1 Case Folding
Gambar 4.2 Kode Program Case Folding
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
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.
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.
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.
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
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
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
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 :
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 :
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.
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
tekan tombol Proses. Hasil Dari Proses tadi, akan menampilkan sebuah hasil Klasifikasi berupa Sentimen apa yang dimiliki oleh text tersebut.
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.
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.
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.