22 3.1 Analisis Sistem
Analisis sistem berisi hasil kajian dari permasalahan yang akan dihadapi. Pada tahap ini, dilakukannya tahapan analisa terhadap beberapa hal yang berhubungan dengan permasalahan tersebut. Analisis diperlukan untuk dapat mengetahui tahapan-tahapan apa saja yang diperlukan dalam merancang sebuah sistem yang akan dibuat.
3.1.1 Analisis Masalah
Seseorang membaca ulasan tempat wisata memiliki beberapa tujuan, diantaranya untuk mengetahui polaritas yang terkandung pada ulasan tersebut. Contohnya terdapat ulasan seperti berikut: “Tempatnya nyaman, menyenangkan, fasilitas toilet banyak, ada mushola”, dari ulasan tersebut seseorang dapat menyimpulkan bahwa ulasan tersebut termasuk polaritas positif, d ikarenakan di dalam komentar tersebut hanya terdiri dari satu aspek yaitu fasilitas, setiap pembaca dapat mengetahui langsung bahwa komentar tersebut berniat mengomentari fasilitas dan polaritasnya bernilai postif. Namun kenyataannya, sebuah ulasan tempat wisata mengandung banyak aspek dan setiap aspeknya memiliki polaritas yang berbeda-beda. Pada umumnya, aspek yang terkandung pada ulasan tempat wisata diantaranya harga, pelayanan dan fasilitas. Contohnya terdapat ulasan seperti berikut: “Tidak sesuai pemikiran, harga makanan lumayan mahal pelayanan kurang .. tp untuk suasana enak sejuk sayangnya setiap wahana kita harus bayar lagi 😢”, pada ulasan tersebut mulai menemukan kesulitan jika sebuah sistem ingin menentukan polaritas yang terkandung pada ulasan tersebut, dikarenakan ulasan tersebut terdapat banyak aspek dan polaritas yang bebeda-beda. Maka diperlukannya sistem yang dapat melakukan analisis sentimen pada sebuah ulasan dengan cara menentukan sentimen berdasarkan aspeknya.
Dalam penelitian yang dilakukan oleh Novi Supraptiningsih, untuk menyelesaikan kasus analisis sentimen berdasarkan aspek, digunakanlah metode
K-Nearest Neighbor (K-NN). Metode tersebut mengkasilkan tingkat akurasi sekitar
79.58% jika menggunakan Principal Component Analysis (PCA) dan 79.86% jika tidak menggunakan PCA. Dilihat dari kesimpulan penelitian yang didapatkan, bahwa penggunaan KNN dalam mengklasifikasi teks menghasilkan tingkat akurasi yang kurang baik, walaupun telah menggunakan PCA tetapi hasil yang diperoleh lebih baik tidak menggunakan PCA. Serta peneliti menyarankan dapat melakukan analisis sentimen terhadap fitur produk yang tidak disebutkan langsung di kalimatnya, serta melakukan filtering pada calon fitur yang tidak sesuai, termasuk menangani kata yang disingkat [3]. Lalu jika melihat penelitian lain yang menggunakan metode K-Nearest Neighbor (K-NN), seperti yang dilakukan oleh Ken Kinanti Purnamasari dan Nelly Indriani Widiastuti, pada pembuatan sistem peringkasan otomatis menghasilkan tingkat akurasi sebesar 49%. Serta saran dari penelitian tersebut menyebutkan bahwa dalam pemilihan preprocessing yang tepat dapat memungkinkan peningkatan akurasi yang signifikan [39]. Oleh sebab itu, diperlukannya sebuah pengembangan metode dari KNN dan mengkombinasikan dengan preprocessing yang tepat. Maka pada penelitian ini, untuk melakukan klasifikasi teks metode yang digunakan adalah Modified K-Nearest Neighbor (MKNN). Pemilihan metode tersebut dapat menghasilkan tingkat akurasi yang lebih baik, karena terdapat sebuah proses perhitungan nilai validitas pada seluruh data latih agar menghasilkan informasi lebih mengenai data tersebut, serta terdapat proses perhitungan weighted voting yang dapat mengatasi kelemahan dari setiap data yang mempunyai jarak dengan weight yang memiliki banyak masalah dalam
outlier.
3.1.2 Analisis Data
Berdasarkan analisis masalah yang telah dibahas sebelumnya, maka untuk menyelesaikan permasalahan tersebut, tahap awal yang perlu dilakukan adalah mengumpulkan data-data untuk dijadikan dataset. Data yang digunakan merupakan ulasan tempat wisata yang selanjutnya akan digunakan pada proses klasifikasi
sentimen pada setiap aspek. Data tersebut diperoleh dari Google Maps pada ulasan tempat wisata Orchid Forest di Kabupaten Bandung Barat, tempat wisata tersebut dipilih karena Orchid Forest merupakan salah satu tempat wisata yang sedang populer baik bagi warga lokal ataupun mancanegara. Serta kondisi tempat wisata tersebut bisa mewakili tempat wisata lainnya dikarenakan rata-rata tempat wisata di Bandung Raya memiliki konsep yang sama dengan Orchid Forest.
Data yang didapatkan berupa kalimat yang berisi komentar pengunjung mengenai kondisi tempat wisata tersebut, bisa berupa deskripsi hingga ungkapan emosi. Pada kalimat tersebut berisi kata, angka, tanda baca hingga emoticon. Rata-rata aspek yang terkandung pada ulasannya berisi aspek harga, pelayanan dan fasilitas. Untuk polaritas yang mendominasi hanyalah positif dan negatif, karena data yang memiliki polaritas netral sangat sedikit dan tidak memiliki aspek, sehingga polaritas yang digunakan hanya positif dan negatif saja. Berikut merupakan contoh dataset ulasan tempat wisata ditunjukkan pada Tabel 3.1.
Tabel 3.1 Contoh Ulasan Pada Dataset
Kalimat Ulasan Polaritas
Jalan akses jelek...petugas shutle mobilnya tidak ramah...mobil
dibawa kencang ditengah kerumunan negatif
jauh, macet, masuk antri, tiket mahal, makanan mahal dan kurang
enak, ga ada apa2 pula. negatif
Harga untuk mancanegara TERLALU MAHAL terus sebelum masuk ketempat parkir ada yang maksa parkir di bawah minta uang parkir lagi 15rb. Padahal sudah bayar sekali sama tiket 5rb .
negatif
+ Multi spots
+ Ada resto & tempat ibadah + Shuttle car
- Jalan masuk sempit & kurang terawat - Kuliner tergolong mahal
Baguus... luas... & bersih. banyak spot foto2 yang keren,
cantiknya....😍😘 positif
Liburan seru bersama sahabat dan suami-suaminya.. sejuuuukkk.. foto di tempat ini ada jalur antriannya nanti difotoin petugasnya. .mantaappp
positif
Dari beberapa contoh pada Tabel 3.1 dapat disimpulkan bahwa setiap ulasan memiliki bentuk yang berbeda-beda. Hal tersebut bisa berdampak pada tingkat akurasi.
Seperti pada contoh ulasan pertama dan keempat di atas, penggunaan tanda bacanya tidak sesuai dengan penempatan yang sebenarnya. Pada proses klasifikasi teks, tanda baca tidak digunakan dalam proses, sehingga biasanya tanda baca akan dihapus.
Penggunaan huruf besar dan kecil dapat berpengaruh terhadap proses klasifikasi, pada contoh pertama di atas terdapat kata “Jalan”, jika pada data latih terdapat fitur “jalan”, maka kata “Jalan” tidak dianggap sama, dan akan menyebabkan fitur kata menjadi banyak. Sehingga kata-kata pada ulasan harus diseragamkan bentuknya ke huruf kecil agar seluruh kata yang berbeda bentuk hurufnya akan dibaca sama pada sistem.
Penggunaan emoticon seperti pada contoh ulasan kelima di atas, sangat berpengaruh terhadap penentuan polaritas. Emoticon tersebut akan dikonversi ke dalam bentuk string yang unik agar dapat dikenali oleh sistem.
Jika pada contoh ulasan ketiga di atas, kalimat yang mengandung angka akan dimanfaatkan untuk penentuan polaritas, terutama polaritas harga. Angka tersebut akan tetap dipertahankan.
Agar sistem dapat mengenali setiap kata, maka diperlukan pemisahan tiap kata pada sebuah kalimat. Sehingga kata-kata yang telah terpisah akan digunakan untuk fitur.
Hasil pemisahan tidak bisa langsung digunakan untuk proses klasifikasi, hingga penulisan tiap kata akan diperiksa. Pada ulasan kedua dan kelima di atas, terdapat kata ulang yang bentuknya tidak sesuai, bentuk kata tersebut harus dirubah
dengan kaidah penulisan kata ulang yang benar. Kata yang tertera pada ulasan pun tidak seluruhnya menggunakan kata baku dan penulisan katanya benar, contohnya pada ulasan keenam di atas terdapat kata “sejuuuukkk” yang sebaiknya dirubah menjadi bentuk yang benar atau jika menemukan kata yang tidak baku maka akan dirubah ke dalam kata baku.
Pada proses klasifikasi pun tidak seluruhnya kata digunakan pada proses klasifikasi, hanya beberapa kata yang bermakna yang sebaiknya diproses, agar fitur yang dihasilkan tidak terlalu banyak. Pada contoh ulasan ketiga di atas terdapat kata umum seperti “untuk” dan “terus” yang biasanya muncul dalam jumlah besar dan dianggap tidak memiliki makna, sehingga kata tersebut akan dihapus.
Setelah menyisakan kata-kata yang memiliki makna, maka setiap kata yang berimbuhan seperti pada ulasan kelima dan keenam di atas akan dirubah ke dalam bentuk kata dasar, agar tidak menghasilkan dimensi data yang terlalu besar. Oleh karena itu diperlukan tahap preprocessing untuk mengubah dataset tersebut agar siap digunakan untuk inputan pada sistem yang akan dibangun.
3.1.3 Gambaran Umum Sistem
Secara umum, sistem yang akan dibangun memiliki dua proses, yaitu pemrosesan data latih dan pemrosesan data uji. Pada pemrosesan data latih memiliki tiga tahapan utama, diantaranya preprocessing, feature extraction dan penentuan validitas pada data latih. Preprocessing adalah tahap awal yang digunakan untuk mempersiapkan dataset menjadi data yang siap untuk diproses pada tahap selanjutnya. Pada tahap preprocessing terdapat beberapa metode yang digunakan sesuai dengan hasil analisis data yang telah diperoleh. Metode pertama yaitu filtering, metode tersebut dapat menangani penggunaan tanda baca yang tidak sesuai, yaitu dengan cara menghilangkannya. Selanjutnya masuk pada metode
convert emoticon, emoticon yang terdapat pada ulasan akan diubah menjadi string
yang unik agar dapat diproses untuk mengklasifikasi, terutama dalam penentuan polaritas suatu aspek. Metode case folding berfungsi untuk menangani penggunaan jenis huruf yang berbeda-beda, agar jika memiliki kata yang sama namun menggunakan jenis huruf yang berbeda dapat diseragamkan menjadi huruf kecil.
Masuk pada metode tokenizing yang memiliki fungsi untuk memecahkan setiap kalimat menjadi token kata agar setiap kata dapat dikenali pada tahap selanjutnya. Kata-kata yang telah dipisahkan akan diperiksa pada metode spelling
normalization, metode tersebut dapat mengatasi bentuk kata yang tidak sesuai
seperti “sejuuuukkk” dan akan mengubahnya menjadi bentuk yang normal, merubah bentuk kata ulang yang tidak sesuai dan merubah kata yang tidak baku menjadi baku. Setelah kata-kata diperbaiki, maka masuk pada metode stopwords
removal, untuk menghapus kata-kata yang dianggap kurang penting pada proses
klasifikasi. Dan terakhir, kata-kata yang berimbuhan akan dirubah ke dalam bentuk kata dasar dengan metode stemming, metode tersebut bertujuan untuk meminimalisir terbentuknya kata baru akibat adanya kata berimbuhan agar dapat mengurangi dimensi data yang terbentuk. Selanjutnya pada tahap kedua melakukan
feature extraction yang dilakukan dengan menggunakan model Raw Term-Frequency. Raw Term-Frequency melakukan pembobotan kata dengan cara
menghitung jumlah kemunculan kata tersebut pada sebuah ulasan. Hasil dari
feature extraction akan digunakan untuk penentuan validitas data latih dengan cara
menentukan nilai K (jumlah tetangga terdekat), dilanjut dengan perhitungan jarak antar data latih menggunakan rumus Euclidean Distance, hasil perhitungan tersebut diurutkan secara ascending dengan memilih tetangga terdekat sesuai dengan nilai k, selanjutnya hasil pemilihan tetangga terdekat akan digunakan pada proses perhitungan validitas di setiap data latih, hasil dari perhitungan nilai validitas akan digunakan pada pemrosesan data uji dalam menghitung weight voting. Agar dapat mengklasifikasi berdasarkan aspek, maka pemrosesan data latih dibagi menjadi tiga, ada pemrosesan untuk inputan data latih yang beraspek harga, pemrosesan untuk inputan data latih yang beraspek pelayanan dan pemrosesan untuk inputan data latih yang beraspek fasilitas. Dalam menentukan aspek pada data latih dilihat dari kata-kata yang terkandung dalam ulasan tersebut dominan membicarakan aspek apa. Sedangkan Dalam menentukan polaritas dapat dilihat dari penggunaan katanya yang dominan pada sebuah polaritas apakah positif atau negatif.
Pada pemrosesan data uji memiliki empat tahapan utama, diantaranya
yang dilakukan pada pemrosesan data uji adalah melakukan preprocessing, dan dilanjutkan dengan feature extraction. Tahapan preprocessing dan feature
extraction dilakukan sama seperti pada pemprosesan data latih. Selanjutnya hasil feature extraction yang sudah didapatkan akan masuk pada tahap klasifikasi. Agar
sistem tersebut dapat mengenali polaritas dari setiap aspek, maka proses klasifikasi dan data latih yang digunakan dibagi menjadi tiga bagian berdasarkan jumlah aspeknya. Metode yang digunakan pada proses klasifikasi yaitu Modified
K-Nearest Neighbor (MKNN).
Metode MKNN memiliki beberapa tahapan proses, beberapa proses seperti menentukan nilai ka dan perhitungan nilai validitas telah dilakukan sebelumnya pada proses data latih, sehingga tinggal dilanjutkan pada tahap perhitungan jarak antara data uji dengan data latih menggunakan rumus Euclidean Distance, hasil perhitungan tersebut dengan hasil nilai validitas data latih akan digunakan dalam menghitung Weight Voting (pembobotan), terakhir masuk pada tahap menentukan kelas dari data uji dengan mengurutkan hasil perhitungan pembobotan secara
descending untuk mendapatkat klasifikasi kelas berdasarkan jumlah k tetangga
terdekat. Dan tahap terakhir yang dilakukan yaitu penentuan polaritas dari keseluruhan hasil klasifikasi dengan cara melihat hasil polaritas dari tiap aspek yang didapatkan dari proses klasifikasi, sehingga polaritas yang lebih dominan maka polaritas tersebut yang akan dipilih. Untuk melihat urutan pemrosesan yang terjadi pada sistem yang dibuat dapat dilihat pada Gambar 3.1.
Gambar 3.1 Tahapan Proses Pada Sistem
3.1.4 Analisis Proses
Sistem yang akan dibangun dibagi menjadi dua tahapan utama. Pertama terdapat proses pelatihan dan proses pengujian.
3.1.4.1 Proses Pelatihan
Proses pelatihan pada penelitian ini dibagi menjadi tiga, yaitu untuk aspek harga, pelayanan dan fasilitas. Sebagai contoh untuk memperlihatkan proses per langkahnya akan diperlihatkan proses pelatihan pada data latih aspek fasilitas, karena aspek yang lainnya memiliki tahapan proses yang sama, hanya membedakan penyimpanannya saja pada database. Proses pelatihan tiap aspek memiliki dua tahapan utama, yaitu preprocessing dan feature extraction. Langkah pertama yang dilakukan adalah mempersiapkan beberapa ulasan untuk digunakan dalam data latih, sebagai contoh data yang akan digunakan yang memiliki aspek fasilitas saja. Pada Tabel 3.2 telah dipersiapkan data latih aspek fasilitas yang akan masuk pada tahap preprocessing.
Tabel 3.2 Contoh Data Latih Aspek Fasilitas
Kalimat Ulasan Polaritas
U1 Tempatnya luas dan sejuk, banyak spot foto menarik Positif
U2 Wahana bermainnya kurang Negatif
U3 Bagus bersih 👍 Positif
U4 Masih minim fasilitas Negatif
U5
Tempatnya sangat bersih, banyak spot foto keren, dan
disiapkan shuttle di pintu keluar untuk ke tempat parkir Positif
Selanjutnya masuk pada tahap preprocessing, tahap preprocessing terdapat beberapa langkah yang dilakukan, diantaranya filtering, convert emoticon, case
folding, tokenizing, spelling normalization, stopword removal dan stemming. Untuk
melihat urutan pemrosesan yang terjadi pada tahap preprocessing dapat dilihat pada Gambar 3.2.
Gambar 3.2 Tahapan Preprocessing
1. Filtering
Ulasan yang diinput akan masuk pada tahap filtering, tahap tersebut berfungsi untuk mengganti karakter-karakter yang tidak dibutuhkan menjadi spasi, terutama untuk mengatasi penggunaan tanda baca yang tidak sesuai. Sebagai contoh pada ulasa terdapat tanda baca koma yang akan digantikan dengan spasi seperti pada Tabel 3.3.
Tabel 3.3 Proses Filtering Pada Data Latih
Sebelum Filtering Setelah Filtering
U1
Tempatnya luas dan sejuk, banyak spot foto menarik
Tempatnya luas dan sejuk banyak spot foto menarik
U2 Wahana bermainnya kurang Wahana bermainnya kurang
U3 Bagus bersih 👍 Bagus bersih 👍
U4 Masih minim fasilitas Masih minim fasilitas
U5
Tempatnya sangat bersih, banyak spot foto keren, dan disiapkan shuttle di pintu keluar untuk ke tempat parkir
Tempatnya sangat bersih banyak spot foto keren dan disiapkan shuttle di pintu keluar untuk ke tempat parkir
2. Convert Emoticon
Hasil dari proses filtering akan dilanjutkan ke tahap convert emoticon.
Emoticon yang terdapat pada ulasan akan dirubah ke dalam string unik agar dapat
digunakan pada proses klasifikasi. Proses convert emoticon ini menggunakan
library convert Emoji (iOS 6, 7, 8, 9, OS X) to unicode yang dibuat oleh BriquzStudio. Untuk hasil dari tahapan convert emoticon pada data latih dapat
Tabel 3.4 Proses Convert Emoticon Pada Data Latih
Sebelum Convert Emoticon Setelah Convert Emoticon
U1
Tempatnya luas dan sejuk banyak spot foto menarik
Tempatnya luas dan sejuk banyak spot foto menarik
U2 Wahana bermainnya kurang Wahana bermainnya kurang
U3 Bagus bersih 👍 Bagus bersih \ud83d\udc4d
U4 Masih minim fasilitas Masih minim fasilitas
U5
Tempatnya sangat bersih banyak spot foto keren dan disiapkan shuttle di pintu keluar untuk ke tempat parkir
Tempatnya sangat bersih banyak spot foto keren dan disiapkan shuttle di pintu keluar untuk ke tempat parkir
3. Case Folding
Setelah semua emoticon telah dirubah, selanjutnya masuk tahap case folding.
Case folding dapat mengatasi perbedaan jenis huruf pada setiap kata karena
memiliki fungsi untuk penyeragaman karakter huruf. Dalam penelitian ini, melakukan penyeragaman karakter menjadi huruf kecil. Sebagai contoh, karakter awal pada kata pertama akan diubah menjadi huruf kecil seperti pada Tabel 3.5.
Tabel 3.5 Proses Case Folding Pada Data Latih
Sebelum Case Folding Setelah Case Folding
U1
Tempatnya luas dan sejuk banyak spot foto menarik
tempatnya luas dan sejuk banyak spot foto menarik
U2 Wahana bermainnya kurang wahana bermainnya kurang
U3 Bagus bersih \ud83d\udc4d bagus bersih \ud83d\udc4d
U5
Tempatnya sangat bersih banyak spot foto keren dan disiapkan shuttle di pintu keluar untuk ke tempat parkir
tempatnya sangat bersih banyak spot foto keren dan disiapkan shuttle di pintu keluar untuk ke tempat parkir
4. Tokenizing
Keluaran dari proses sebelumnya masih dalam bentuk satu kalimat ulasan, agar sistem dapat memeriksa setiap katanya, maka dilakukannya proses tokenizing.
Tokenizing berfungsi untuk memecah sebuah kalimat menjadi token kata.
Pemecahan ini dilakukan dengan menggunakan spasi sebagai pemisah antar kata. Hasil dari tokenizing pada data latih dapat dilihat pada Tabel 3.6.
Tabel 3.6 Proses Tokenizing Pada Data Latih
Sebelum Tokenizing Setelah Tokenizing
U1
tempatnya luas dan sejuk banyak spot foto menarik tempatnya luas dan sejuk banyak spot foto menarik
U2 wahana bermainnya kurang
wahana bermainnya kurang
U3 bagus bersih \ud83d\udc4d
bagus bersih
\ud83d\udc4d U4 masih minim fasilitas
masih minim
fasilitas
U5
tempatnya sangat bersih banyak spot foto keren dan disiapkan shuttle di pintu keluar untuk ke tempat parkir tempatnya sangat bersih banyak spot foto keren dan disiapkan shuttle di pintu keluar untuk ke tempat parkir 5. Spelling Normalization
Kata-kata yang telah dipisahkan tidak langsung bisa digunakan pada proses selanjutnya, maka setiap kata akan diperiksa penulisannya dengan proses spelling
normalization. Proses tersebut akan mengoreksi kata-kata yang kurang baik, seperti
penulisan kata yang berlebihan, penggunaan kata ulang yang tidak sesuai dengan kaidahnya, hingga penggunaan kata tidak baku. Berikut dibawah ini beberapa langkah dalam memperbaiki penulisan kata yang berlebihan dan penggunaan kata tidak baku:
1. Token kata yang akan diperiksa akan dicocokkan dengan kamus kata dasar, jika kata tersebut terdapat dalam kamus maka proses berhenti sampai disini, jika tidak maka dilanjutkan pada tahap kedua.
2. Hapus huruf berlebihan dimulai untuk setiap huruf pada kata, periksa huruf pertama kata tersebut, kemudian simpan pada variabel sementara. Periksa huruf selanjutnya jika huruf sama dengan huruf sebelumnya maka hapus huruf tersebut, jika tidak simpan huruf pada variabel sementara dan lakukan hal yang sama pada huruf selanjutnya.
3. Hasil pengecekan dan penghapusan pada tahap kedua disimpan pada variabel sementara untuk diperiksa pada tahap empat.
4. Variabel sementara akan diperiksa dengan kamus kata dasar. Jika kata yang ditemukan pada kamus kata dasar, maka proses berakhir sampai disini, namun jika tidak ditemukan, maka kata tersebut akan dikembalikan ke dalam bentuk aslinya sebelum dilakukan penghapusan.
5. Selanjutnya masuk pada tahap pemeriksaan kamus silang.
6. Jika kata tidak baku ditemukan pada kamus silang, maka ubah kata tersebut menjadi kata baku yang ada di kamus silang. Jika tidak ditemukan maka kembalikan kata ke dalam bentuk sebelum dilakukan perubahan.
Spelling normalization dilanjutkan dengan pemeriksaan kata ulang yang
penulisannya tidak sesuai kaidah. Berikut dibawah ini beberapa langkah d alam memperbaiki penulisan kata ulang yang tidak sesuia dengan kaidah:
1. Setiap token kata akan diperiksa karakter terakhirnya, jika karakter terakhir bukan angka 2, maka dilanjutkan pada tahap kedua, namun jika karakter terakhir berupa angka 2 maka kararter-karakter selain angka 2 akan disimpan pada variabel sementara dan menambahkan karakter “-”. Lalu dilakukan kembali pemeriksaan untuk menentukan jenis kata ulang pada variabel sementara. Jika tiga karakter awal pada variabel sementara berisi “ber-”, maka variabel sementara akan menambahkan variabel dirinya sendiri namun dengan menghilangkan “ber-” dan karakter “-”, contohnya terdapat kata “bermacam2” yang seharusnya hasilnya “bermacam-bermacam-” menjadi “bermacam-macam”. Namun jika kondisi tersebut tidak terpenuhi akan diperiksa kembali, jika dua karakter awal pada variabel sementara berisi “di-”, maka variabel sementara akan
menambahkan variabel dirinya sendiri namun dengan menghilangkan “di-” dan karakter “-“di-”, contohnya terdapat kata “dimana2“di-” yang seharusnya hasilnya “dimana-dimana-” menjadi “dimana-mana”. Namun jika kondisi tersebut belum juga terpenuhi maka variabel sementara akan menambahkan variabel dirinya sendiri namun dengan menghilangkan karakter “-” saja, contohnya terdapat kata “apa2” yang seharusnya hasilnya “apa-apa-” menjadi “apa-apa”.
2. Pada tahap kedua akan dilakukan pemeriksaan bentuk kata ulang namun dengan bentuk yang berbeda dari tahap pertama, jika tiga karakter terakhir bukan “-nya” dan di depan “-nya” bukan angka 2, maka proses hanya cukup sampai disini, namun jika tiga karakter terakhir adalah “-nya” dan di depan “-nya” adalah angka 2, maka kararter-karakter sebelum angka 2 akan disimpan pada variabel_sementara1. Selanjutnya membuat varibel_sementara2 lalu mengisinya dengan urutan: variabel_sementara1+”-”+variabel_sementara1+”nya”. Contohnya terdapat kata “anggrek2nya” dan hasilnya menjadi “anggrek-anggreknya”.
Dikarenakan pada data latih tidak terdapat token kata yang perlu dinormalisasi, maka contoh perubahan kata akan diperlihatkan pada pemrosesan data uji. Untuk hasil keseluruhan dari spelling normalization pada data latih dapat dilihat pada Tabel 3.7.
Tabel 3.7 Prose Spelling Normalization Pada Data Latih
Sebelum Spelling Normalization Setelah Spelling Normalization
U1 tempatnya tempatnya luas luas dan dan sejuk sejuk banyak banyak spot spot
foto foto menarik menarik U2 wahana wahana bermainnya bermainnya kurang kurang U3 bagus bagus bersih bersih \ud83d\udc4d \ud83d\udc4d U4 masih masih minim minim fasilitas fasilitas U5 tempatnya tempatnya sangat sangat bersih bersih banyak banyak spot spot foto foto keren keren dan dan disiapkan disiapkan shuttle shuttle di di pintu pintu keluar keluar untuk untuk ke ke tempat tempat parkir parkir
7. Stopword Removal
Hasil dari spelling normalization akan masuk ke tahap stopword removal, tahap tersebut bertujuan untuk menghilangkan kata yang tidak memiliki makna pada tahap klasifikasi. Setiap token kata akan dicocokan dengan stopword list, jika kata tersebut serasi, maka kata tersebut akan dihapus. Hasil dari stopword removal pada data latih dapat dilihat pada Tabel 3.8.
Tabel 3.8 Proses Stopword Removal Pada Data Latih
Sebelum Stopword Removal Setelah Stopword Removal
U1 tempatnya tempatnya luas luas dan sejuk sejuk banyak banyak spot spot foto foto menarik menarik U2 wahana wahana bermainnya bermainnya kurang kurang U3 bagus bagus bersih bersih \ud83d\udc4d \ud83d\udc4d U4 masih minim minim fasilitas fasilitas U5 tempatnya tempatnya sangat bersih bersih banyak banyak
spot spot foto foto keren keren dan disiapkan disiapkan shuttle shuttle di pintu pintu keluar keluar untuk ke tempat tempat parkir parkir 8. Stemming
Tahap preprocessing selanjutnya yang dilakukan adalah proses stemming, setiap token kata yang berimbuhan akan diubah menjadi bentuk kata dasar, sehingga meminimalisir dimensi kata yang terbentuk. Pada penelitian ini, untuk metode stemming Bahasa Indonesia yang digunakan adalah metode Arifin Setiono. Metode tersebut dipilih karena dalam penelitian Dian Novitasari mendapatkan kesimpulan bahwa proses stemming dokumen teks berbahasa Indonesia menggunakan metode Arifin & Setiono memiliki presisi lebih tinggi sebesar 95% dibandingkan dengan stemming menggunakan metode Porter yang menghasilkan sebesar 90% [40]. Dalam metode tersebut mengasumsikan bahwa setiap kata masukan memiliki dua awalan (prefiks) dan tiga akhiran (sufiks). Berikut detail dari asumsi dari metode Arifin Setiono:
[AW1] + [AW2] + KD + [AK3] + [AK2] + [AK1]
Dimana AW merupakan awalan, KD merupakan kata dasar dan AK merupakan akhiran. Tahapan yang dilakukan pada metode tersebut adalah sebagai berikut [41]:
1. Melakukan pemeriksaan pada kamus kata dasar, jika terdapat kata yang sesuai pada kamus kata dasar maka proses cukup samapai disini, jika tidak akan dilanjutkan dengan mempersiapkan variabel awalan[0], awalan[1], akhiran[0] , akhiran[1] , akhiran[2] untuk menampung imbuhan yang telah terpisah dari kata dasar.
2. Pemotangan dilakukan secara berurutan sebagai berikut: a. AW I, hasil disimpan pada awalan[0].
b. AW II, hasil disimpan pada awalan[1]. c. AK I, hasil disimpan pada akhiran[0]. d. AK II, hasil disimpan pada akhiran[1]. e. AK III, hasil disimpan pada akhiran[2].
Dalam setiap proses pemotongan di atas selalu dilakukan pemeriksaan dengan kamus kata dasar. Hal tersebut dilakukan untuk mengetahui apakah hasil pemotongan tersebut sudah ada dalam bentuk kata dasar. Apabila sudah dalam bentuk kata dasar, maka proses dinyatakan selesai dan tidak perlu melanjutkan proses pemotongan selanjutnya. 3. Namun jika sampai tahap dua belum menemukan kata dasar, maka
akan dilakukan proses kombinasi. Kata dasar yang telah dihasilkan akan dikombinasikan dengan imbuhan-imbuhan dalam 12 konfigurasi berikut: a. KD b. KD + AK III c. KD + AK III + AK II d. KD + AK III + AK II + AK I e. AW I + AW II + KD f. AW I + AW II + KD + AK III g. AW I + AW II + KD + AK III + AK II h. AW I + AW II + KD + AK III + AK II + AK I i. AW II + KD j. AW II + KD + AK III k. AW II + KD + AK III + AK II
l. AW II + KD + AK III + AK II + AK I
Pemeriksaan dalam 12 kombinasi di atas selalu dilakukan pemeriksaan dengan kamus kata dasar. Hal tersebut dilakukan untuk mengetahui apakah hasil pemotongan tersebut sudah ada dalam bentuk kata dasar. Apabila sudah dalam bentuk kata dasar, maka proses dinyatakan selesai, namun jika sampai pada tahap akhir tidak ditemukan kata dasar yang tepat maka akan dikembalikan pada kata semula.
Dalam kasus ini terdapat token kata “tempatnya”, kata tersebut akan dirubah menjadi kata dasar. Tahapan awal yang dilakukan adalah melakukan pemeriksaan dengan kamus kata dasar, namun karena kata “tempatnya” tidak ada dalam kamus kata dasar maka masuk pada tahap pemotongan.
Tahap pemotongan dilakukan dengan 5 urutan, disetiap tahapan memiliki kamusnya masing-masing untuk menentukan imbuhan yang tepat pada kata tersebut. Berikut dibawah ini daftar imbuhan di setiap tahapan yang bisa dilihat pada Tabel 3.9.
Tabel 3.9 Daftar Imbuhan
AW I AW II AK I AK II AK III
meng- ber- -lah -ku -i
peng- ter- -kan -mu -an
meny- per- -pun -nya -kan
peny- -tan mem- pem- men- pen- per- ber-
bel- ter- me- pe- be- di- ke- ku- se-
Jika dilihat tabel di atas, kata “tempatnya” bisa dicocokan dengan proses AK II. Ketika pada proses tersebut, sistem akan memisahkan antara imbuhan dengan kata dasar. Hasil pemisahan tersebut akan diperiksa apakah imbuhan yang dipisah telah sesuai dengan daftar imbuhan di Tabel 3.9, jika sesuai dengan kata dasar yang didapatkan ditemukan pada kamus kata dasar maka proses telah selesai dan menghasilkan kata “tempat”. Untuk hasil dari proses stemming pada data latih dapat dilihat pada Tabel 3.10.
Tabel 3.10 Proses Stemming Pada Data Latih
Sebelum Stemming Setelah Stemming
U1 tempatnya tempat luas luas sejuk sejuk banyak banyak spot spot foto foto menarik tarik U2 wahana wahana bermainnya main kurang kurang
U3 bagus bagus bersih bersih \ud83d\udc4d \ud83d\udc4d U4 minim minim fasilitas fasilitas U5 tempatnya tempat bersih bersih banyak banyak spot spot foto foto keren keren disiapkan siap shuttle shuttle pintu pintu keluar keluar tempat tempat parkir parkir
Proses preprocessing pada data latih berhenti sampai tahap ini, dengan menghasilkan token-token kata yang siap digunakan. Sebelum masuk pada tahap klasifikasi, dilakukannya feature extraction terlebih dahulu. Agar dapat memperlihatkan proses feature extraction maka data hasil akhir preprocessing pada data latih akan digunakan yang dapat dilihat pada Tabel 3.11.
Tabel 3.11 Hasil Akhir Preprocessing Pada Data Latih
Token Kata Polaritas
U1 tempat Positif luas sejuk banyak
spot foto tarik U2 wahana Negatif main kurang U3 bagus Positif bersih \ud83d\udc4d U4 minim Negatif fasilitas U5 tempat Positif bersih banyak spot foto keren siap shuttle pintu keluar tempat parkir
Model yang digunakan dalam feature extraction adalah Raw
Term-Frequency. Metode ini melakukan pembobotan kata dengan cara menghitung
jumlah kemunculan kata pada sebuah ulasan. Misalkan data pada Tabel 3.11 akan digunakan pada proses Raw Term-Frequency, maka hasil dari pembobotannya dapat dilihat pada Tabel 3.12. Angka-angka tersebut diperoleh dari menghitung jumlah kemunculan kata pada Tabel 3.11.
Tabel 3.12 Hasil Pembobotan
tempat luas sejuk banyak spot foto tarik wahana main kurang bagus bersih \ud83d\udc4d minim
U1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
U2 0 0 0 0 0 0 0 1 1 1 0 0 0 0
U3 0 0 0 0 0 0 0 0 0 0 1 1 1 0
U4 0 0 0 0 0 0 0 0 0 0 0 0 0 1
U5 2 0 0 1 1 1 0 0 0 0 0 1 0 0
fasilitas keren siap shuttle pintu keluar parkir polaritas
0 0 0 0 0 0 0 positif
0 0 0 0 0 0 0 negatif
0 0 0 0 0 0 0 positif
1 0 0 0 0 0 0 negatif
Hasil pembobotan tersebut akan digunakan pada penentuan nilai validitas pada data latih. Tahapan pertama yang dilakukan adalah menentukan nilai k (jumlah tetangga terdekat), nilai k berfungsi untuk menentukan jumlah kelas yang dipilih pada proses validitas dan penentuan jumlah nilai weight voting yang dipilih untuk menentukan kelas dari data uji. Pada contoh perhitungan ini nilai k berisi 3, karena jika memilih 1 maka tidak ada pertimbangan dengan data lainnya, sedangkat lebih dari 3 akan terlalu banyak data yang menjadi pertimbangan dalam melakukan klasifikasi. Selanjutnya masuk ke tahap perhitungan jarak antar data latih dengan menggunakan rumus Euclidean Distance pada Persamaan (2.1):
𝐷(𝑝, 𝑞) = √∑( 𝑝𝑖 − 𝑞𝑖 )2 𝑛
𝑖=1
(2.1)
Dimana D(p,q) merupakan jarak skalar dari dua buah vektor data p dan q, n merupakan ukuran dimensi data, p merupakan masukkan data ke-i dari vektor data
p, dan q merupakan masukkan data ke-i dari vektor data q. Sebagai contohnya,
Tabel 3.13 akan memperlihatkan perhitungan jarak antara data U1 dengan data U2,
U3, U4 dan U5 menggunakan rumus kuadrat jarak Euclidean Distance pada
Persamaan (2.1).
Tabel 3.13 Perhitungan Kuadrat Jarak Euclidean Distance Antara Data U1
dengan data U2, U3, U4 dan U5 Ulasan Jarak Antar Data Latih
U2 √ (1 − 0)2 + (1 − 0)2 + (1 − 0)2 + (1 − 0)2 + (1 − 0)2 + (1− 0)2 + (1− 0)2 + (0 − 1)2 +(0 − 1)2 + (0 − 1)2 + (0 − 0)2 + (0 − 0)2 + (0 − 0)2 + (0− 0)2 + (0− 0)2 + (0 − 0)2 +(0 − 0)2 + (0 − 0)2 + (0 − 0)2 + (0 − 0)2 + (0 − 0)2 + (0− 0)2 + (0− 0)2 + (0 − 0)2 +(0 − 0)2 = 10 U3 √ (1 − 0)2+ (1 − 0)2+ (1− 0)2+ (1 − 0)2+ (1 − 0)2+ (1 − 0)2+ (1 − 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0 − 1)2+ (0− 1)2+ (0 − 1)2+ (0 − 0)2+ (0 − 0)2+ (0− 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0− 0)2+ (0 − 0)2+ (0 − 0)2+ (0 − 0)2+ (0− 0)2+ (0− 0)2 = 10
U4 √ (1 − 0)2+ (1 − 0)2+ (1− 0)2+ (1 − 0)2+ (1 − 0)2+ (1 − 0)2+ (1 − 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0 − 0)2+ (0− 0)2+ (0 − 0)2+ (0 − 1)2+ (0 − 1)2+ (0− 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0− 0)2+ (0 − 0)2+ (0 − 0)2+ (0 − 0)2+ (0− 0)2+ (0− 0)2 = 9 U5 √ (1 − 2)2+ (1 − 0)2+ (1− 0)2+ (1 − 1)2+ (1 − 1)2+ (1 − 1)2+ (1 − 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0 − 0)2+ (0− 1)2+ (0 − 0)2+ (0 − 0)2+ (0 − 0)2+ (0− 1)2+ (0− 1)2+ (0 − 1)2 +(0 − 1)2+ (0− 1)2+ (0 − 1)2+ (0 − 0)2+ (0 − 0)2+ (0− 0)2+ (0− 0)2 = 11
Hasil dari perhitungan di atas akan diurutkan secara ascending, selanjutnya memilih tetangga terdekat sesuai nilai k. Sehingga dipilihlah label ulasan U4, U2
dan U3 berdasarkan tetangga terdekat, karena menghasilkan jarak terkecil. Berikut
pada Tabel 3.14 hasil dari pemilihan tetangga terdekat yang nantinya label-label tersebut akan digunakan pada perhitungan validitas data latih, kelas yang dipilih ditandai dengan warna biru.
Tabel 3.14 Hasil Pemilihan Tetangga Terdekat Antar Data Latih
Ulasan Jarak Antar Data Latih Polaritas
U4 9 negatif
U2 10 negatif
U3 10 positif
U5 11 positif
Masuk pada tahap perhitungan nilai validitas data latih, validitas adalah proses perhitungan jumlah titik dengan label yang sama pada semua data latih. Untuk menghitung validitas pada data latih dapat menggunakan Persamaan (2.2):
𝑉𝑎𝑙𝑖𝑑𝑖𝑡𝑎𝑠(𝑥) = 1
𝐻∑ 𝑆(𝑙𝑏𝑙(𝑥), 𝑙𝑏𝑙(𝑁𝑖(𝑥)))
𝐻
𝑖=1
(2.2)
Dimana Validitas(x) merupakan nilai validitas dari data latih x, k merupakan jumlah titik terdekat, lbl(x) merupakan kelas x, lbl(Ni(x)) merupakan label kelas titik
terdekat x. Variabel S digunakan untuk menghitung kesamaan antara titik a dan data ke-b pada tetangga terdekat dengan menggunakan Persamaan (2.3):
𝑆(𝑎, 𝑏) = {1 𝑎 = 𝑏
0 𝑎 ≠ 𝑏 (2.3)
Dimana a merupakan kelas a pada data latih dan b merupakan kelas selain a pada data latih. Selanjutnya data ulasan U1 akan dihitung nilai validitasnya
berdasarkan label terdekat yang diperoleh dari Tabel 3.14. Hal pertama yang dilakukan adalah mencari nilai S(a,b), mencari nilai S(a,b) menggunakan Persamaan (2.3), hasil perhitunga S(a,b) pada ulasan U1 dapat dilihat pada Tabel
3.15.
Tabel 3.15 Perhitungan S(a,b) Pada Ulasan U1
Ulasan a b S(a,b)
U4 positif negatif 0
U2 positif negatif 0
U3 positif positif 1
Hasil perhitungan S(a,b) pada ulasan U1 telah diperoleh, selanjutnya hasil
tersebut akan dimasukkan pada perhitungan validitas ulasan U1 menggunakan
persamaan (2.2). Proses perhitungan nilai validitas pada ulasan U1 dapat dilihat
pada perhitungan dibawah ini:
𝑉𝑎𝑙𝑖𝑑𝑖𝑡𝑎𝑠(𝑈1) = 1 𝐻∑ 𝑆(𝑙𝑏𝑙(𝑥), 𝑙𝑏𝑙(𝑁𝑖(𝑥))) 𝐻 𝑖=1 = 1 3∗ (0 + 0 + 1) = 0,333333333
Data latih U1 telah didapatkan nilai validitasnya, selanjutnya tinggal mencari
nilai validitas data latih lainnya dengan cara mengulangi proses perhitungan jarak antar data latih sampai menghitung nilai validitas, namun dengan data latih yang berbeda-beda. Jika semua nilai validitas data latih telah diperoleh, maka hasil nilai validitas pada data latih aspek fasilitas akan seperti pada Tabel 3.16.
Tabel 3.16 Nilai Validitas Pada Data Latih Aspek Fasilitas
Ulasan Validitas U1 0,333333333 U2 0,333333333 U3 0,333333333 U4 0,333333333 U5 0,666666667
Nilai validitas pada Tabel 3.16 akan digunakan pada pemrosesan data uji dengan klasifikasi pada aspek fasilitas. Hasil diatas baru hanya aspek fasilitas saja, untuk aspek lainnya tinggal mengulangi langkah-langkah di atas dengan data latih pada aspek harga dan pelayanan.
3.1.4.2 Proses Pengujian
Dalam proses pengujian memiliki empat tahapan utama, yaitu preprocessing,
feature extraction, klasifikasi dan penentuan polaritas keseluruhan. Langkah
pertama yang dipersiapkan adalah sebuah ulasan yang akan diproses pada sistem. Pada Tabel 3.17 telah dipersiapkan data uji yang akan masuk pada tahap
preprocessing.
Tabel 3.17 Contoh Data Uji
Kalimat Ulasan Polaritas
U6 Baguus... luas... & bersih. banyak spot foto2 yang keren,
cantiknya....😍😘
Selanjutnya Masuk pada tahap preprocessing. Tahapan yang dilakukan masih sama seperti pada data latih. Proses yang dilakukan diantaranya filtering, convert
emoticon, case folding, tokenizing, spelling normalization, stopword removal dan stemming.
1. Filtering
Pada tahap ini beberapa karakter dan simbol akan digantikan dengan spasi. Contohnya seperti tanda baca dan karakter & akan diubah menjadi spasi. Hasil dari
filtering pada data uji dapat dilihat pada Tabel 3.18.
Tabel 3.18 Proses Filtering Pada Data Uji
Sebelum Filtering Setelah Filtering
Baguus... luas... & bersih. banyak spot foto2 yang keren, cantiknya....😍😘
Baguus luas bersih banyak spot foto2 yang keren cantiknya 😍😘
2. Convert Emoticon
Pada ulasan tersebut terdapat dua emoticon yang akan diubah menjadi string unik. Hasil dari perubahan pada convert emoticon terhadap data uji dapat dilihat pada Tabel 3.19.
Tabel 3.19 Proses Convert Emoticon Pada Data Uji
Sebelum Convert Emoticon Setelah Convert Emoticon Baguus luas bersih banyak spot
foto2 yang keren cantiknya 😍😘
Baguus luas bersih banyak spot foto2 yang keren cantiknya \ud83d\ude0d \ud83d\ude18
Pada kata pertama terdapat huruf besar yang akan diproses pada tahap case
folding menjadi huruf kecil. Hasil dari case folding terhadap data uji dapat dilihat
pada Tabel 3.20.
Tabel 3.20 Proses Case Folding Pada Data Uji
Sebelum Case Folding Setelah Case Folding Baguus luas bersih banyak spot
foto2 yang keren cantiknya \ud83d\ude0d \ud83d\ude18
baguus luas bersih banyak spot foto2 yang keren cantiknya \ud83d\ude0d \ud83d\ude18
4. Tokenizing
Keluaran dari proses case folding akan langsung dipecah pada proses
tokenizing menjadi token-token kata berdasarkan spasi. Hasil dari tokenizing pada
data uji dapat dilihat pada Tabel 3.21.
Tabel 3.21 Proses Tokenizing Pada Data Uji
Sebelum Tokenizing Setelah Tokenizing
baguus luas bersih banyak spot foto2 yang keren cantiknya \ud83d\ude0d \ud83d\ude18 baguus luas bersih banyak spot foto2 yang keren cantiknya \ud83d\ude0d \ud83d\ude18
5. Spelling Normalization
Token-token kata yang baru terbentuk akan masuk pada proses spelling
normalization. Proses tersebut akan mengoreksi kata-kata yang kurang baik, seperti
penulisan kata yang tidak benar, penggunaan kata ulang yang tidak sesuai dengan kaidahnya, hingga penggunaan kata tidak baku. Contohnya terdapat kata yang tidak benar seperti “baguus”, setiap kata akan diperiksa per hurufnya, dan jika ditemukan huruf yang berulang maka huruf selanjutnya akan dihapus, lalu hasil pemeriksaan tersebut akan dicocokkan dengan kamus kata, bila hasil pemeriksaan serasi dengan kamus kata maka kata tersebut akan diperbaiki sesuai dengan bentuk di kamus kata, namun jika tidak maka kata tersebut akan dikembalikan ke dalam bentuk semula. Jika menemukan kata ulang yang tidak sesuai seperti “foto2”, maka sistem akan memeriksa apakah pada akhir kata tersebut terdapat katakter “2”, mengecek beberapa karakter di awal kata atau di belakang karakter “2” tersebut apakah termasuh imbuhan atau tidak, jika syarat tersebut terpenuhi maka kata ulang tersebut akan diperbaiki dengan bentuk yang benar, namun jika tidak maka akan dikembalikan pada bentuk semula. Dan untuk mengatasi kata yang tidak baku, sistem akan mencocokannya dengan kamus silang, jika kata tersebut serasi dengan kamus silang maka akan dirubah ke dalam bentuk kata baku, namun jika tidak maka akan dikembalikan lagi ke bentuk semula. Untuk hasil keseluruhan dari spelling
normalization pada data uji dapat dilihat pada Tabel 3.22.
Tabel 3.22 Prose Spelling Normalization Pada Data Uji
Sebelum Spelling Normalization Setelah Spelling Normalization
baguus bagus luas luas bersih bersih banyak banyak spot spot foto2 foto-foto yang yang
keren keren
cantiknya cantiknya
\ud83d\ude0d \ud83d\ude0d
\ud83d\ude18 \ud83d\ude18
6. Stopword Removal
Pada tahap stopword removal, token-token kata akan dicocokkan dengan kamus stopword list, jika ditemukan kata yang serasi maka token tersebut akan dihapus. Hasil dari stopword removal pada data uji dapat dilihat pada Tabel 3.23.
Tabel 3.23 Proses Stopword Removal Pada Data Uji
Sebelum Stopword Removal Setelah Stopword Removal
bagus bagus luas luas bersih bersih banyak banyak spot spot foto-foto foto-foto yang keren keren cantiknya cantiknya \ud83d\ude0d \ud83d\ude0d \ud83d\ude18 \ud83d\ude18 6. Stemming
Hasil dari stopword removal akan masuk pada tahap stemming, untuk metode yang digunakan masih sama seperti pada pemrosesan data latih menggunakan Arifin Setiono. Setiap token-token kata akan diubah menjadi kata dasar. Contohnya pada token kata “cantiknya” akan diubah menjadi kata “cantik”. Hasil dari
Tabel 3.24 Proses Stemming Pada Data Uji
Sebelum Stemming Setelah Stemming
bagus bagus luas luas bersih bersih banyak banyak spot spot foto-foto foto-foto keren keren cantiknya cantik \ud83d\ude0d \ud83d\ude0d \ud83d\ude18 \ud83d\ude18
Proses preprocessing pada data uji berhenti sampai tahap ini, dengan menghasilkan token-token kata yang siap untuk digunakan pada tahap feature
extraction. Pada Tabel 3.25 merupakan hasil akhir preprocessing pada data uji yang
akan digunakan pada tahap feature extraction.
Tabel 3.25 Hasil Akhir Preprocessing Pada Data Uji
Token Kata Polaritas
U6 bagus ? luas bersih banyak spot foto-foto keren cantik \ud83d\ude0d
\ud83d\ude18
Selanjutnya masuk pada tahap feature extraction, dalam pembobotannya masih seperti pada pemrosesan data latih menggunakan Raw Term-Frequency. Hal yang menjadi pembeda dalam proses ini adalah bagaimana melakukan pembobotan kata jika pada data uji terdapat fitur kata baru, sedangkan pada pembuatan fitur di data latih belum terbentuk. Sehingga pada tahap ini akan diperlihatkan bagaimana proses penambahan fitur baru ketika ada kata-kata baru yang masuk. Kata-kata baru yang akan masuk menggunakan data uji pada Tabel 3.25. Hal pertama yang dilakukan adalah dengan menghitung jumlah kemunculan kata dari seluruh token kata pada data uji, pada Tabel 3.26 menunjukkan hasil perhitungan jumlah kemunculan kata dari token kata data uji.
Tabel 3.26 Hasil Perhitungan Jumlah Kemunculan Kata Pada Data Uji
Kata Jumlah Kemunculan Kata
bagus 1 luas 1 bersih 1 banyak 1 spot 1 foto-foto 1 keren 1 cantik 1 \ud83d\ude0d 1 \ud83d\ude18 1
Hasil dari tabel di atas akan dilakukan pembobotan seperti pada pemrosesan data latih. Hal yang menjadi pembeda adalah jika tedapat kata yang belum ada pada tabel pembobotan data latih pada Tabel 3.12, maka dibuatkan kolom kata baru, lalu atur isi seluruh kolom dengan 0, karena memang kelima ulasan tersebut tidak
memiliki kata tersebut. Selanjutnya tinggal menambahkan baris ulasan baru sebagai data uji dengan mengisi kolom kata lama dan kolom kata baru. Hasil akhir pembobotan data latih dapat dilihat pada Tabel 3.27 dan hasil akhir pembobotan data uji terdapat pada Tabel 3.28. Untuk memperlihatkan fitur yang baru dibuat akibat dari masuknya data uji ditandai dengan warna biru.
Tabel 3.27 Hasil Akhir Dari Data Latih Yang Telah Melalui Feature Extraction
tempat luas sejuk banyak spot foto tarik wahana main kurang bagus bersih \ud83d\udc4d minim
U1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
U2 0 0 0 0 0 0 0 1 1 1 0 0 0 0
U3 0 0 0 0 0 0 0 0 0 0 1 1 1 0
U4 0 0 0 0 0 0 0 0 0 0 0 0 0 1
U5 2 0 0 1 1 1 0 0 0 0 0 1 0 0
fasilitas keren siap shuttle pintu keluar parkir foto-foto cantik \ud83d\ude0d \ud83d\ude18 polaritas
0 0 0 0 0 0 0 0 0 0 0 positif
0 0 0 0 0 0 0 0 0 0 0 nega tif
0 0 0 0 0 0 0 0 0 0 0 positif
1 0 0 0 0 0 0 0 0 0 0 nega tif
0 1 1 1 1 1 1 0 0 0 0 positif
Tabel 3.28 Hasil Akhir Dari Data Uji Yang Telah Melalui Feature Extraction
tempat luas sejuk banyak spot foto tarik wahana main kurang bagus bersih \ud83d\udc4d minim
U7 0 1 0 1 1 0 0 0 0 0 1 1 0 0
fasilitas keren siap shuttle pintu keluar parkir foto-foto cantik \ud83d\ude0d \ud83d\ude18 polaritas
Tahap feature extraction cukup sampai disini, sehingga menghasilkan kata-kata yang telah dilakukan pembobotan. Selanjutnya kata-kata-kata-kata yang telah dilakukan pembobotan akan masuk pada tahap klasifikasi. Pada penelitian ini, proses klasifikasi dibagi menjadi tiga, yaitu klasifikasi aspek harga, pelayanan dan fasilitas. Sehingga satu inputan data uji akan didistribusikan ke dalam tiga klasifikasi tersebut untuk mengetahui polaritas di setiap aspeknya. Untuk contoh klasfikasi, akan menjabarkan proses perhitungan pada aspek fasilitas saja, karena perhitungan aspek yang lainnya tidak ada perbedaan, dan data pada Tabel 3.27 akan digunakan sebagai data latih aspek fasilitas dan data pada Tabel 3.28 sebagai data uji. Metode klasifikasi dengan Modified K-Nearest Neighbor (MKNN) memiliki beberapa tahapan proses, yaitu menentukan nilai k (jumlah tetangga terdekat), menghitung jarak antar data latih, menghitung nilai validitas data latih, menghitung jarak antara data uji dan data latih, menghitung weight voting (pembobotan) dan menentukan kelas dari data uji. Karena tahap menentukan nilai k (jumlah tetangga terdekat), menghitung jarak antar data latih dan menghitung nilai validitas data latih sudah dilakukan pada pemrosesan data latih, maka proses klasifikasi dilanjutkan dengan menghitung jarak antar data latih dan data uji.
Perhitungan jarak antara data uji dengan data latih menggunakan Persamaan (2.1). Untuk data latih yang digunakan berada pada Tabel 3.27 dan data uji yang digunakan pada Tabel 3.28. Hasil yang diperoleh dari perhitungan tersebut dapat dilihat pada Tabel 3.29.
Tabel 3.29 Perhitungan Kuadrat Jarak Euclidean Distance Antara Data Latih Dan Data Uji
Ulasan Jarak Antara Data Latih Dan Data Uji
U1 √ (1 − 0)2+ (1 − 1)2+ (1− 0)2+ (1 − 1)2+ (1 − 1)2+ (1 − 0)2+ (1 − 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0 − 1)2+ (0− 1)2+ (0 − 0)2+ (0 − 0)2+ (0 − 0)2+ (0− 1)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0− 0)2+ (0 − 0)2+ (0 − 1)2+ (0 − 1)2+ (0− 1)2+ (0− 1)2 = 11 U2 √ (0 − 0)2+ (0 − 1)2+ (0− 0)2+ (0 − 1)2+ (0 − 1)2+ (0 − 0)2+ (0 − 0)2+ (1− 0)2+ (1 − 0)2 +(1 − 0)2+ (0 − 1)2+ (0− 1)2+ (0 − 0)2+ (0 − 0)2+ (0 − 0)2+ (0− 1)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0− 0)2+ (0 − 0)2+ (0 − 1)2+ (0 − 1)2+ (0− 1)2+ (0− 1)2 = 13
U3 √ (0 − 0)2+ (0 − 1)2+ (0− 0)2+ (0 − 1)2+ (0 − 1)2+ (0 − 0)2+ (0 − 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (1 − 1)2+ (1− 1)2+ (1 − 0)2+ (0 − 0)2+ (0 − 0)2+ (0− 1)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0− 0)2+ (0 − 0)2+ (0 − 1)2+ (0 − 1)2+ (0− 1)2+ (0− 1)2 = 9 U4 √ (0 − 0)2+ (0 − 1)2+ (0− 0)2+ (0 − 1)2+ (0 − 1)2+ (0 − 0)2+ (0 − 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0 − 1)2+ (0− 1)2+ (0 − 0)2+ (1 − 0)2+ (1 − 0)2+ (0− 1)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0− 0)2+ (0 − 0)2+ (0 − 1)2+ (0 − 1)2+ (0− 1)2+ (0− 1)2 = 12 U5 √ (2 − 0)2+ (0 − 1)2+ (0− 0)2+ (1 − 1)2+ (1 − 1)2+ (1 − 0)2+ (0 − 0)2+ (0− 0)2+ (0 − 0)2 +(0 − 0)2+ (0 − 1)2+ (1− 1)2+ (0 − 0)2+ (0 − 0)2+ (0 − 0)2+ (1− 1)2+ (1− 0)2+ (1 − 0)2 +(1 − 0)2+ (1− 0)2+ (1 − 0)2+ (0 − 1)2+ (0 − 1)2+ (0− 1)2+ (0− 1)2 = 16
Selanjutnya masuk pada tahap menghitung weight voting, yang merupakan sebuah proses yang dapat mengatasi kelemahan dari setiap data yang mempunyai jarak dengan weight yang memiliki banyak masalah dalam outlier. Metode tersebut memiliki pengaruh terhadap data yang mempunyai nilai validitas lebih tinggi dan paling dekat dengan data uji. Rumus yang digunakan pada weight voting terdapat pada persamaan (2.4):
𝑊(𝑖) = 𝑉𝑎𝑙𝑖𝑑𝑖𝑡𝑎𝑠(𝑖)𝑥 1 𝑑𝑒+ 0.5
(2.4)
Dimana W(i) merupakan nilai dari weight voting, Validitas(i) merupakan nilai validitas data ke-i dan de merupakan jarak antara data latih dan data uji. Untuk nilai
validitas pada data latih akan menggunakan data pada Tabel 3.16 dan nilai jarak antara data latih data uji akan menggunakan data pada Tabel 3.29, hasil perhitungan dari weight voting dapat dilihat pada Tabel 3.30.
Tabel 3.30 Hasil Perhitungan Weight Voting
Ulasan Weight Voting Polaritas
U1 0,333333333 𝑥 1
11+0,5 = 0,028985507 positif
U2 0,333333333 𝑥 1
U3 0,333333333 𝑥 1 9+0,5 = 0,035087719 positif U4 0,333333333 𝑥 1 12+0,5 = 0,026666667 negatif U5 0,666666667 𝑥 1 16+0,5 = 0,040404040 positif
Nilai weight voting yang telah didapatkan akan digunakan untuk menentukan kelas dari data uji. Cara menentukannya yaitu dengan mengurutkan hasil weight
voting secara descending, lalu memilih bobot terbesar sesuai dengan nilai k
tetangga terdekat. Hasil dari penentuan kelas dari data uji bisa dilihat pada Tabel 3.31 dan ditandai dengan warna biru.
Tabel 3.31 Hasil Penentuan Kelas Dari Data Uji
Ulasan Weight Voting Polaritas U5 0,040404040 positif
U3 0,035087719 positif
U1 0,028985507 positif
U4 0,026666667 negatif
U2 0,024691358 negatif
Berdasarkan hasil klasifikasi terhadap aspek fasilitas yang didapatkan pada Tabel 3.31, maka pada aspek fasilitas data uji tersebut termasuk ke dalam polaritas positif. Selanjutnya tinggal dilakukan proses klasifikasi terhadap aspek pelayanan dan harga. Untuk memperlihatkan proses penentuan polaritas secara keseluruhan, maka polaritas pada aspek pelayanan dan harga akan diasumsikan bahwa polaritasnya berisi positif. Maka pada Tabel 3.32 memperlihatkan hasil dari klasifikasi pada setiap aspek.
Tabel 3.32 Hasil Klasifikasi Pada Setiap Aspek
Klasifikasi Aspek Polaritas Fasilitas positif Pelayanan positif
Harga positif
Tahap akhir yang dilakukan yaitu menentukan polaritas keseluruhan, yang membedakan dengan proses penentuan polaritas sebelumnya adalah jika sebelumnya yang dilakukan untuk penentuan polaritas di setiap aspek, dan yang terakhir adalah untuk menentukan polaritas secara keseluruhan. Proses t ersebut dilakukan dengan cara memilih polaritas yang lebih dominan dari seluruh aspek yang ada, pemilihan polaritas menggunakan data pada Tabel 3.32, dan hasil dari proses tersebut menghasilkan polaritas positif yang dapat dilihat pada Tabel 3.33 dengan ditandai dengan warna biru.
Tabel 3.33 Hasil Dari Penentuan Polaritas Pada Data Uji
tempat luas sejuk banyak spot foto tarik wahana main kurang bagus
U7 0 1 0 1 1 0 0 0 0 0 1
bersih \ud83d\udc4d minim fasilitas keren siap shuttle pintu keluar parkir foto-foto
1 0 0 0 1 0 0 0 0 0 1
cantik \ud83d\ude0d \ud83d\ude18 polaritas
1 1 1 positif
3.1.5 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak berisi tentang kebutuhan-kebutuhan yang berhubungan dengan proses pembangunan perangkat lunak. Pada tahap ini, analisis
dibagi menjadi dua bagian. yaitu analisis kebutuhan non fungsional dan analisis kebutuhan fungsional.
3.1.5.1 Analisis Kebutuhan Non Fungsional
Analisis kebutuhan non fungsional merupakan kebutuhan yang bersifat sekunder terhadap perangkat lunak yang dibangun. Pada tahapan ini, analisis dibagi menjadi dua, yaitu analisis kebutuhan perangkat lunak dan analisis kebutuhan perangkat keras. Pada Tabel 3.34 terdapat daftar kebutuhan non fungsional.
Tabel 3.34 Daftar Kebutuhan Non Fungsional
Nomor Deskripsi Kebutuhan
SKPL-NF-001 Sistem yang dibangun berbasis web.
SKPL-NF-002 Sistem yang dibangun membutuhkan jaringan localhost. SKPL-NF-003 Sistem yang dibangun memenuhi spesifikasi minimum
hardware yang dibutuhkan.
SKPL-NF-004 Sistem yang dibangun support windows 7, vista, 8, dan windows 10.
SKPL-NF-005 Sistem yang dibangun dapat dijalankan di Google Chrome dan Mozilla Firefox.
3.1.5.1.1 Analisis Kebutuhan Perangkat Lunak
Analisis kebutuhan perangkat lunak berisi kebutuhan spesifikasi perangkat lunak yang diperlukan agar sistem dapat bekerja dengan baik. Pada penelitian ini, spesifikasi minimum yang digunakan berdasarkan perangkat lunak yang digunakan pada tahap pembangunan sistem, dan pada Tabel 3.35 merupakan spesifikasi perangkat lunak yang digunakan.
Tabel 3.35 Perangkat Lunak Yang Digunakan
Perangkat Lunak
Sistem Operasi Windows 10 32-bit Web Browser Chrome, Firefox, dll
XAMPP
Berdasarkan hasil perbandingan antara kebutuhan non-fungsional SKPL-NF-001, SKPL-NF-002, SKPL-NF-004, dan SKPL-NF-005 dengan fakta perangkat lunak pada Tabel 3.35 sudah memenuhi syarat kebutuhan non fungsional perangkat lunak.
3.1.5.1.2 Analisis Kebutuhan Perangkat Keras
Analisis kebutuhan perangkat keras berisi kebutuhan spesifikasi perangkat keras yang berhubungan dengan proses pembangunan perangkat keras. Pada penelitian ini, spesifikasi minimum yang digunakan berdasarkan perangkat keras yang digunakan pada tahap pembangunan sistem, dan pada Tabel 3.36 merupakan spesifikasi perangkat keras yang digunakan.
Tabel 3. 36 Perangkat Keras Yang Digunakan
Perangkat Keras Processor 1.70 Ghz RAM 2GB Harddisk 120GB Monitor Mouse Keyboard
Berdasarkan hasil perbandingan antara kebutuhan non-fungsional SKPL-NF-003 dengan fakta perangkat keras pada Tabel 3.36 sudah memenuhi syarat kebutuhan non fungsional perangkat keras.
3.1.5.2 Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional merupakan kebutuhan yang befokus pada properti perilaku yang dimiliki oleh sistem. kebutuhan fungsional juga sering disebut sebagai batasan layanan atau fungsi yang ditawarkan oleh sistem. Untuk daftar kebutuhan fungsional dapat dilihat pada Tabel 3.37. Perangkat lunak yang dibangun menggunakan konsep pemrograman terstruktur, sehingga model yang digunakan dalam penelitian ini adalah diagram konteks dan Data Flow Diagram (DFD).
Tabel 3.37 Daftar Kebutuhan Fungsional
Nomor Deskripsi Kebutuhan
SKPL-F-001 Sistem dapat menampilkan grafik data latih dan data uji, serta menampilkan grafik hasil pengujian akurasi.
SKPL-F-002 Sistem dapat menampilkan data latih aspek harga, pelayanan dan fasilitas.
SKPL-F-003 Sistem dapat menampilkan data uji. SKPL-F-004 Sistem dapat melakukan proses pelatihan. SKPL-F-005 Sistem dapat melakukan proses pengujian.
3.1.5.3 Aliran Informasi (Diagram Konteks)
Diagram konteks merupakan diagram yang menggambarkan secara umum yang menjadi masukan, proses dan keluaran yang terjadi pada sebuah sistem. Pada Gambar 3.3 merupakan diagram konteks yang menggambarkan aliran informasi pada sistem yang dibangun.
Gambar 3.3 Diagram Konteks
3.1.5.3.1 DFD Level 1
Data Flow Diagram (DFD) merupakan diagram yang menggambarkan aliran data pada sebuah sistem. Sistem yang dibuat hanya memiliki satu level saja, dan pada Gambar 3.4 merupakan DFD Level 1 pada sistem.
Gambar 3.4 DFD Level 1
3.1.5.4 Deskripsi Spesifikasi Proses
Deskripsi spesifikasi proses berisi gambaran proses model aliran yang terdapat pada DFD. Pada Tabel 3.38 berisi penjelasan dari proses pada DFD level 1.
Tabel 3.38 Proses DFD Level 1
No Proses Keterangan
1 No Proses 1
Nama Proses Pelatihan Source (sumber) Pengguna
Input Data Latih Harga, Data Latih Pelayanan, Data Latih Fasilitas, Data Kamus Silang, Data Kata Dasar, Data Stopword
Output Informasi Latih Harga, Informasi Latih Pelayanan, Informasi Latih Fasilitas, Informasi Kamus Silang, Informasi Kata Dasar, Informasi Stopword
Destination Pengguna
Logika Proses 1. Pengguna memasukkan ulasan, aspek dan polaritas. 2. Sistem akan melakukan validasi terlebih dahulu
sebelum masuk pada tahap preprocessing. Jika form ulasan telah terisi maka akan dilanjutkan pada proses berikutnya, namun tidak tidak maka tidak akan dilanjutkan pada proses berikutnya.
3. Preprocessing pertama yang dilakukan adalah
filtering, karakter-karakter tertentu pada ulasan akan
digantikan oleh sistem dengan spasi berdasarkan list karater yang telah dibuat sebelumnya.
4. Preprocessing kedua yang dilakukan adalah
emoticon converter, sistem akan menggunakan
library convert Emoji menggunakan ulasan sebagai inputannya untuk mengubah emoticon menjadi string unik.
5. Preprocessing ketiga yang dilakukan adalah case
folding, seluruh huruf pada ulasan akan dirubah oleh
6. Preprocessing keempat yang dilakukan adalah
tokenizing, sistem akan memecah ulasan menjadi
bentuk token kata berdasarkan spasi sebagai pemisahnya.
7. Preprocessing kelima yang dilakukan adalah
spelling normalization, setiap token kata akan
divalidasi terlebih dahulu dengan kamus kata untuk mengecek jika ada penulisan kata yang perlu diperbaiki. Jika token kata terdapat pada kamus kata, maka dilanjutkan pada proses selanjutnya. Namun jika tidak sesuai, maka dilanjutkan untuk validasi
spelling normalization dengan membandingkannya
dengan kamus silang untuk memperbaiki token kata yang tidak sesuai.
8. Preprocessing keenam yang dilakukan adalah
stopword removal, setiap token kata akan divalidasi
terlebih dahulu dengan stopword list, jika token kata terdapat pada stopword list maka token kata tersebut akan dihapus.
9. Preprocessing ketujuh yang dilakukan adalah
stopword removal, setiap token kata akan divalidasi
terlebih dahulu dengan stopword list, jika token kata terdapat pada stopword list maka token kata tersebut akan dihapus.
10. Preprocessing kedelapan yang dilakukan adalah
stemming, sistem akan memvalidasi setiap token
kata yang ada untuk mengubahnya menjadi kata dasar dengan membandingkan kamus kata.
11. Hasil token kata akan dihitung frekuensi kemunculan katanya untuk ekstraksi fitur.
12. Sistem akan memilih tahap proses selanjutnya berdasarkan jenis aspek yang dipilih.
13. Jika aspek yang dipilih merupakan harga, maka akan menjalankan perintah untuk mengambil data fitur kata pada data_latih_harga, jika aspek yang dipilih merupakan pelayanan, maka akan menjalankan perintah untuk mengambil data fitur kata pada data_latih_pelayanan, jika aspek yang dipilih merupakan fasilitas, maka akan menjalankan perintah untuk mengambil data fitur kata pada data_latih_fasilitas.
14. Hasil dari perhitungan frekuensi kemunculan kata akan divalidasi oleh sistem dengan data fitur kata yang telah dipilih. Jika terdapat kata yang tidak ada pada fitur kata, maka kata tersebut akan dibuatkan pada database sebagai fitur baru.
15. Frekuensi kemunculan data dimasukkan pada tabel data latih yang telah ditentukan berdasarkan aspek yang telah dipilih.
2 No Proses 2
Nama Proses Pengujian Source (sumber) Pengguna
Input Data Latih Harga, Data Latih Pelayanan, Data Latih Fasilitas, Data Uji, Data Kamus Silang, Data Kata Dasar, Data Stopword
Output Informasi Latih Harga, Informasi Latih Pelayanan, Informasi Latih Fasilitas, Informasi Uji, Informasi Kamus Silang, Informasi Kata Dasar, Informasi
Destination Pengguna
Logika Proses 1. Pengguna memasukkan ulasan.
2. Sistem akan melakukan validasi terlebih dahulu sebelum masuk pada tahap preprocessing. Jika form ulasan telah terisi maka akan dilanjutkan pada proses berikutnya, namun tidak tidak maka tidak akan dilanjutkan pada proses berikutnya.
3. Preprocessing pertama yang dilakukan adalah
filtering, karakter-karakter tertentu pada ulasan akan
digantikan oleh sistem dengan spasi berdasarkan list karater yang telah dibuat sebelumnya.
4. Preprocessing kedua yang dilakukan adalah
emoticon converter, sistem akan menggunakan
library convert Emoji menggunakan ulasan sebagai inputannya untuk mengubah emoticon menjadi string unik.
5. Preprocessing ketiga yang dilakukan adalah case
folding, seluruh huruf pada ulasan akan dirubah oleh
sistem dengan huruf kecil.
6. Preprocessing keempat yang dilakukan adalah
tokenizing, sistem akan memecah ulasan menjadi
bentuk token kata berdasarkan spasi sebagai pemisahnya.
7. Preprocessing kelima yang dilakukan adalah
spelling normalization, setiap token kata akan
divalidasi terlebih dahulu dengan kamus kata untuk mengecek jika ada penulisan kata yang perlu diperbaiki. Jika token kata terdapat pada kamus kata, maka dilanjutkan pada proses selanjutnya. Namun jika tidak sesuai, maka dilanjutkan untuk validasi