i
ANALISIS SENTIMEN ULASAN E-COMMERCE LAZADA DI MEDIA SOSIAL TWITTER MENGGUNAKAN ALGORITMA
SUPPORT VECTOR MACHINE
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Program Studi Informatika
Disusun Oleh:
Robertus Yulianto (175314086)
PROGRAM STUDI INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2022
ii
SENTIMENT ANALYSIS OF LAZADA E-COMMERCE REVIEWS ON TWITTER SOCIAL MEDIA USING SUPPORT
VECTOR MACHINE ALGORITHM
THESIS
Present as Partial Fullfillment of The Requirments To Obtain a Bachelor’s Degree
In Informatics Study Program
By:
Robertus Yulianto (175314086)
INFORMATICS STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
YOGYAKARTA
2022
iii
iv
v
HALAMAN MOTTO
“Tidak ada kesuksesan tanpa kerja keras. Tidak ada keberhasilan tanpa kebersamaan. Tidak ada kemudahan tanpa doa.”
(Ridwan Kamil)
vi
vii
viii ABSTRAK
Kualitas jasa pelayanan dari sebuah perusahaan di bidang e-commerce sering menuai opini dari masyarakat umum di media sosial Twitter. Dari sebuah tweet pada media sosial Twitter dapat dilakukan penelitian untuk mengetahui sentimen terhadap ulasan pengguna aplikasi Lazada. Data tweet yang akan diolah sebanyak 3.000 data dengan kata kunci “lazada”. Dataset tersebut akan diberi label bernilai positif atau negatif. Data akan diolah melalui tahap preporcessing, penghitungan bobot TF-IDF, dan klasifikasi dengan menggunakan metode Support Vector Machine yang menerapkan 4 fungsi kernel yaitu Linear, RBF, Sigmoid, dan Polynomial. Dari penerapan analisis sentimen menggunakan 4 fungsi kernel dapat menghasilkan nilai akurasi yang berbeda. Tujuan yang ingin dicapai dalam penelitian ini yaitu menemukan fungsi kernel terbaik yang dapat melakukan analisis sentimen terhadap Tweet dengan kata kunci “Lazada”. Hasil dari penelitian ini menunjukkan bahwa fungsi kernel RBF mempunyai nilai akurasi lebih tinggi dalam melakukan analisis sentimen dengan nilai 72,12%.
Kata Kunci : Tweet, E-commerce Lazada, Analisis Sentimen, Support Vector Machine, Kernel, Linear, RBF, Sigmoid, Polynomial
ix ABSTRACT
The service quality of a company in the e-commerce sector often reaps opinions from the people on Twitter. From a tweet on Twitter, research can be done to find out the sentiment towards Lazada application user reviews. The tweet data that will be processed is 3,000 data with the keyword is "lazada". The dataset will be labeled with a positive or negative value. The data will be processed through the preprocessing stage, calculating TF-IDF weights, and classification using the Support Vector Machine method that applies 4 kernel functions that is Linear, RBF, Sigmoid, and Polynomial. The application of sentiment analysis using 4 kernel functions can produce different accuracy values. The goal of this research is to find the best kernel function that can perform sentiment analysis on Tweets with the keyword “Lazada”. The results of this study indicate that the RBF kernel function has a higher accuracy value in conducting sentiment analysis which can get a 72,12% accuracy result.
Keywords : Tweet, E-commerce Lazada, Sentiment Analysis, Support Vector Machine, Kernel, Linear, RBF, Sigmoid, Polynomial
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa berkat rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi dengan judul
“Analisis Sentimen Ulasan E-Commerce Lazada Di Media Sosial Twitter Menggunakan Algoritma Support Vector Machine” sebagai syarat untuk memperoleh gelar sarjana komputer dari program studi Informatika Universitas Sanata Dharma Yogyakarta.
Selama proses penelitian, penulis mendapat bantuan, bimbingan, dukungan, serta nasehat yang membangun dari berbagai pihak sehingga pada kesempatan ini penulis ingin menyampaikan ucapan terimakasih kepada :
1. Romo Drs.Hari Suparwito,S.J. M.App.IT selaku dosen pembimbing skripsi yang telah bersedia memberikan bimbingan, masukan, serta waktu kepada penulis selama menyelesaikan skripsi.
2. Bapak Prof. Ir. Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.
3. Bapak Robertus Adi Nugroho S.T., M.Eng. Selaku ketua Program Studi Informatika Universitas Sanata Dharma.
4. Seluruh dosen prodi Informatika Universitas Sanata Dharma yang telah membimbing dan memberikan banyak ilmu pengetahuan kepada penulis, sehingga penulis dapat menyelesaikan skripsi ini.
5. Kedua orang tua tercinta, bapak Suhartoyo dan ibu Triharti yang selalu memberikan motivasi dan doa dalam mengerjakan skripsi.
6. Novi Wijayantie yang selalu memberikan dukungan, semangat, bantuan, saran, nasehat, kritik yang membangun, serta menjadi tempat untuk menyampaikan keluh kesah selama penulis dalam proses mengerjakan skripsi.
7. Saudara dan saudari Greg, Kiwil, Martin, Abram, Aldi, Yossa, Thomas, Ellen, Katrin yang selalu membantu dan menemani penulis selama masa kuliah dan ketika mengerjakan skripsi.
8. Teman-teman prodi Informatika Universitas Sanata Dharma Angkatan 2017 yang selalu memberikan dukungan dan semangat dalam menyelesaikan skripsi.
9. Teman-teman dari kelompok “Marine” yang senantiasa memberikan hiburan, dukungan, dan sebagai tempat pelepas penat selama mengerjakan skripsi.
xi
10. Teman-teman dari OMK Gereja Maria Assumpta Pakem yang senantiasa menghibur dan selalu memberi dukungan serta menjadi tempat berkeluh kesah.
11. Seluruh pihak yang tidak bisa diucapkan satu persatu yang telah membantu penulis dalam pengerjaan skripsi ini.
Penulis menyadari masih banyak kekurangan yang terdapat pada skripsi ini.
Sehingga saran dan kritik yang membangun sangat diharapkan dalam menyempurnakannya. Semoga skripsi ini dapat memberikan pengetahuan tambahan bagi pembaca.
xii DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN PERSETUJUAN ... Error! Bookmark not defined. HALAMAN PENGESAHAN ... Error! Bookmark not defined. HALAMAN MOTTO ... v
PERNYATAAN KEASLIAN KARYA ... Error! Bookmark not defined. LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ... vi
ABSTRAK ... vii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xii
DAFTAR TABEL ... xiv
DAFTAR GAMBAR ... xvi
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2Masalah Penelitian ... 3
1.3 Pertanyaan Penelitian ... 3
1.4 Tujuan Penelitian ... 3
1.5 Manfaat ... 3
1.6 Batasan Masalah... 3
1.7 Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 5
2.1Tinjauan Pustaka ... 5
2.2Landasan Teori ... 9
2.2.1E-Commerce ... 9
2.2.2Analisis Sentimen ... 10
2.2.3Text Mining ... 11
2.2.4Pembobotan TF-IDF ... 19
2.2.5Algoritma Support Vector Machine (SVM) ... 20
2.2.6K-Fold Cross Validation ... 25
2.2.7Confusion Matrix ... 27
BAB III METODOLOGI PENELITIAN... 29
3.1Gambaran Umum Penelitian ... 29
xiii
3.2Data ... 30
3.3Struktur Data ... 30
3.4Pemberian Label ... 31
3.5Preprocessing ... 33
3.5.1Case Folding ... 33
3.5.2Data Cleaning ... 35
3.5.3Normalisasi ... 36
3.5.4Tokenizing ... 38
3.5.5Stemming ... 40
3.5.6Stopword Removal ... 43
3.6Features Extraction (Pembobotan TF-IDF) ... 47
3.7Klasifikasi SVM ... 55
3.8Confusion Matrix ... 62
3.9Desain Gui ... 63
BAB IV IMPLEMENTASI SISTEM DAN ANALISIS HASIL ... 65
4.1Pengambilan Data ... 65
4.2Labeling Data ... 66
4.3 Preprocessing ... 67
4.4Cleaning dan Case Folding ... 67
4.5Normalization ... 69
4.6Tokenizing, Stemming, dan Stopword Removal ... 70
4.7Implementasi Pembagian Data Testing dan Training ... 72
4.8Implementasi Features Extraction (Pembobotan TF-IDF) ... 73
4.9Implementasi Klasifikasi Analisis Sentimen ... 73
4.10Implementasi Analisis Sentimen SVM ... 74
4.11Implementasi Pengukuran Performa dengan Confusion Matrix ... 75
4.12Implementasi Pengujian Performa Kernel ... 76
4.13Analisis Hasil ... 81
4.14Implementasi Sistem ... 87
BAB V PENUTUP ... 91
DAFTAR PUSTAKA ... 92
LAMPIRAN ... 96
xiv
DAFTAR TABEL
Tabel 1 Perbandingan Penelitian Sebelumnya ... 8
Tabel 2 Perbandingan Penelitian Sebelumnya ... 9
Tabel 3 Awalan - Akhiran Tidak Diijinjan ... 16
Tabel 4 Aturan Peluruhan Kata Dasar ... 17
Tabel 5 Contoh k-fold cross validation ... 26
Tabel 6 Pembagian Data ... 26
Tabel 7 Confusion Matrix ... 27
Tabel 8 Jumlah Data... 30
Tabel 9 Sampel Data Mentah Twitter ... 30
Tabel 10 Data Mentah ... 32
Tabel 11 Input Data Terjemahan... 32
Tabel 12 Output Hasil Labeling ... 33
Tabel 13 Input Case Folding ... 34
Tabel 14 Output Case Folding ... 34
Tabel 15 Input Data Cleaning ... 35
Tabel 16 Output Data Cleaning ... 36
Tabel 17 Output Data Cleaning ... 37
Tabel 18 Output Normalisasi ... 37
Tabel 19 Input Tokenizing ... 38
Tabel 20 Output Tokenizing ... 40
Tabel 21 Input Stemming ... 42
Tabel 22 Output Stemming ... 43
Tabel 23 Input Stoword Removal ... 45
Tabel 24 Output Stopword Removal... 47
Tabel 25 Term Frequency ... 48
Tabel 26 Document Frequent ... 50
Tabel 27 Inverse Document Frequent ... 51
Tabel 28 Pembobotan Kata ... 53
Tabel 29 Hasil Cosine Normalization ... 55
Tabel 30 Hasil Kernel ... 55
Tabel 31 Matrix Hessian ... 56
xv
Tabel 32 Hasil Iterasi ... 57
Tabel 33 Nilai 𝑥 + dan 𝑥 − ... 57
Tabel 34 Hasil 𝐾𝑋𝑖. 𝑥 + ... 59
Tabel 35 Hasil 𝐾𝑋𝑖. 𝑥 − ... 60
Tabel 36 Hasil 𝑖 = 0𝑛𝑎𝑖𝑦𝑖𝐾𝑋𝑖. 𝑥 + dan 𝑖 = 0𝑛𝑎𝑖𝑦𝑖𝐾𝑋𝑖. 𝑥 − ... 61
Tabel 37 Hasil Bias ... 61
Tabel 38 Nilai h(x) ... 61
Tabel 39 Hasil Klasifikasi dengan SVM ... 62
Tabel 40 Perbandingan Data Asli dengan SVM ... 62
Tabel 41 Confusion Matrix ... 63
Tabel 42 Hasil Labeling Tweet ... 66
Tabel 43 Hasil Cleaning dan Case Folding ... 68
Tabel 44 Normalization... 70
Tabel 45 Tokenizing, Stemming, Stopoword Removal ... 72
Tabel 46 Hasil Pengujian Fungsi Kernel Linear ... 76
Tabel 47 Hasil Pengujian Fungsi Kernel RBF ... 78
Tabel 48 Hasil Pengujian Fungsi Kernel Sigmoid ... 79
Tabel 49 Hasil Pengujian Fungsi Kernel Polynomial ... 80
Tabel 50 Hasil Pengujian Terbaik Setiap Kernel ... 86
xvi
DAFTAR GAMBAR
Gambar 1 Hyperplane Class -1 dan Class +1 ... 21
Gambar 2 Fungsi Φ Memetakan ke dimensi yang lebih tinggi ... 23
Gambar 3 Diagram Penelitian ... 29
Gambar 4 Desain GUI Halaman Pertama ... 63
Gambar 5 Desain GUI Halaman Kedua ... 64
Gambar 6 Source Code Pengambilan Data dengan Twitter Scraper ... 65
Gambar 7 Data Mentah ... 65
Gambar 8 Source Code Labeling Tweet dengan Leksikon Vader ... 66
Gambar 9 Source Code Cleaning ... 67
Gambar 10 Source Code Normalization ... 69
Gambar 11 Source Code Tokenizing ... 71
Gambar 12 Source Code Pembagian Data Testing dan Training ... 72
Gambar 13 Source Code Features Extraction ... 73
Gambar 14 Source Code Hitung Hasil Klasifikasi Analisis Sentimen ... 73
Gambar 15 Hasil Polaritas ... 74
Gambar 16 Source Code Analisis Sentimen Support Vector Machine... 74
Gambar 17 Source Code Input Komparasi Kernel SVM ... 75
Gambar 18 Source Code Pengukuran Performa SVM ... 75
Gambar 19 Confusion Matrix ... 76
Gambar 20 Pengaruh nilai K pada Model Fungsi Kernel Polynomial, RBF, Sigmoid dan Linear ... 82
Gambar 21 Pengaruh Nilai Gamma Pada Model Fungsi Kernel Polynomial, RBF, Sigmoid dan Linear ... 83
Gambar 22 Pengaruh Nilai C Pada Model Fungsi Kernel Polynomial, RBF, Sigmoid dan Linear ... 85
Gambar 23 User Interfaec Sistem ... 87
Gambar 24 Interface Dataset yang Digunakan ... 88
Gambar 25 Hasil Labeling Data ... 89
Gambar 26 Interface Input Pengujian Model ... 90
Gambar 27 Interface Hasil Polaritas Positif dan Negatif ... 90
Gambar 28 Interface Hasil Pengujian ... 90
1 BAB I PENDAHULUAN 1.1. Latar Belakang
Sektor e-commerce di Indonesia terus berkembang, terlebih di tengah kondisi pandemi seperti saat ini. Terlebih Indonesia merupakan pasar e-commerce terbesar di Asia Tenggara. Menurut data dari Wearesocial dan Hootsuite, sekitar 90% pengguna internet di Indonesia pernah berbelanja online[1]. Terdapat beberapa faktor yang mendukung berkembangnya pasar e-commerce di indonesia yaitu pertumbuhan kelas menengah di Indonesia yang cukup pesat dan tingkat penetrasi internet dan pengguna perangkat mobile yang terus meningkat. Hal tersebut memungkinkan lebih banyak orang untuk mengakses berbagai platform belanja online, mulai dari website toko online, aplikasi marketplace, media sosial, dan banyak lagi.
Berkembangnya pasar e-commerce di Indonesia tentu tidak lepas dari peran masyarakat Indonesia yang memiliki perilaku konsumtif melalui media internet. Dilansir dari katadata.co.id, bisnis belanja online diprediksi akan terus tumbuh subur di Indonesia hingga beberapa tahun mendatang[2]. Seiring perkembangan teknologi, pada masa ini e-commerce tentu sangat mudah diakses oleh para pengguna internet melalui smartphone dalam bentuk aplikasi. Moment tersebut tidak mungkin akan disia-siakan oleh para pebisnis untuk memasarkan produknya terutama pada bidang barang dan jasa. Perusahaan besar di Indonesia yang bergerak di bidang e- commerce tentu tidak akan tinggal diam. Hal tersebut tentu akan membentuk persaiangan antar perusahaan-perusahaan besar yang bergerak pada bidang e-commerce untuk meningkatkan pelayanannya dan terus berinovasi.
Pada tahun 2020 ini terdapat beberapa aplikasi yang menawarkan layanan e-commerce salah satunya yaitu aplikasi Lazada. Dilansir dari tempo.co Lazada mengalami pertumbuhan volume pemesanan produk pada kuartal II 2020, hingga 100 persen dibandingkan tahun lalu[3].
Merdeka.com memaparkan bahwa berdasarkan hasil survey yang dilakukan oleh perusahaan riset Alvara mengungkapkan bahwa peringkat pertama brand awareness masyarakat terhadap brand e-commerce shopping adalah Lazada, lalu kemudian disusul Shopee. Lazada mendapatkan prosentase sebesar 47,9 persen dan Shopee 32,2 persen, setelahnya, diurutan ketiga barulah ada Tokopedia dengan persentase 15,4 persen dan Bukalapak 14,4 persen[4]. Penilaian mutu perusahaan e-commerce oleh penggunanya juga terjadi pada beberapa platform media sosial seperti twitter,facebook, instagram, tiktok, dan lain-lain.
Dari tahun ke tahun pengguna media sosial di Indonesia terus meningkat. Media sosial sendiri merupakan sebuah media untuk bersosialisasi satu sama lain dan dilakukan secara online yang memungkinkan manusia untuk saling berinteraksi dan menuang isi pikirannya atau opininya tanpa dibatasi ruang dan waktu. Salah satu media sosial yang digemari oleh masyarakat Indonesia adalah Twitter. Hingga saat ini jumlah pengguna aktif harian Twitter mencapai 166 juta, meningkat 24%
dari 134 juta pada 2019 lalu[5]. Melalui perantara platform media sosial Twitter, pengguna layanan media sosial tersebut biasa mengungkapkan keluh kesahnya atau gagasannya mengenai hal apapun salah satunya mengenai hal-hal yang terkait dengan mutu sebuah perusahaan yang bergerak di bidang e-commerce. Gagasan atau opini yang ditulis oleh user dapat bernilai positif atau negatif. Gagasan atau opini yang bersifat positif atau negatif itu sering disebut dengan polaritas. Untuk melakukan sebuah klasifikasi apakah tweet dari seorang user berupa tweet positif atau negatif dapat dilakukan analisis sentimen. Analisis sentimen atau opinion mining adalah studi komputasional dari opini-opini orang, sentimen, dan emosi melalui entitas dan atribut yang dimiliki yang diekspresikan dalam bentuk teks [6].
Pada penelitian ini, penulis akan melakukan analisis terhadap mutu dan pelayanan perusahaan e-commerce yaitu Lazada berdasarkan tweet pengguna media sosial Twitter. Untuk melakukan analisis sentimen, penulis
menerapkan metode Support Vector Machine (SVM) dengan menggunakan 4 variasi kernel dan 3 variasi cross validation.
1.2. Masalah Penelitian
Untuk mengetahui atau menganalisa pendapat user berkaitan dengan mutu dari perusahaan e-commerce lazada, dalam penelitian ini digunakan algoritma Support Vector Machine. Dari penerapan algoritma tersebut digunakan 4 variasi fungsi kernel, dimana 4 fungsi kernel tersebut menghasilkan nilai akurasi yang berbeda.
1.3. Pertanyaan Penelitian
Pertanyaan yang muncul dalam penelitian ini adalah fungsi kernel manakah yang dapat menghasilkan nilai akurasi paling tinggi dalam melakukan analisis sentimen terhadap tweet e-commerce Lazada?
1.4. Tujuan Penelitian
Tujuan yang ingin dicapai dalam penelitian ini yaitu untuk mengetahui kernel terbaik pada metode Support Vector Machine untuk melakukan analisis sentimen terhadap tweet e-commerce Lazada, dengan cara melakukan perbandingan 4 fungsi kernel SVM kemudian mendapatkan hasil nilai akurasi terbaik yang diperoleh dari setiap kernel.
1.5. Manfaat
Manfaat dari penelitian ini yaitu untuk mengetahui fungsi kernel manakah dalam metode Suport Vector Machine yang dapat menghasilkan nilai akurasi terbaik dalam melakukan analisis sentimen terhadap tweet e- commerce Lazada.
1.6. Batasan Masalah
Batasan masalah dalam penelitian ini adalah sebagai berikut:
a) Menggunakan data tweet yang berasal dari media sosial Twitter.
b) Tweet yang digunakan hanya tweet dengan bahasa Indonesia.
c) Tweet yang digunakan hanya tweet berupa text.
d) Tweet yang digunakan hanya tweet dengan keyword “Lazada”.
e) Tweet yang digunakan hanya tweet yang diunggah pada tanggal 1-31 Juli 2020.
1.7. Sistematika Penulisan BAB I : PENDAHULUAN
Pendahuluan memaparkan masalah umum pada penelitian yang ingin dilakukan, dimana pada bab tersebut berisi latar belakang topik penelitian, masalah penelitian, pertanyaan penelitian, tujuan penelitian, manfaat penelitian, batasan masalah, dan sistematika penulisan.
BAB II : LANDASAN TEORI
Landasan teori berisi dasar teori yang digunakan sebagai acuan serta untuk menunjang penelitian ini.
BAB III : METODOLOGI PENELITIAN
Metodologi penelitian akan menjelaskan mengenai metodologi yang ingin diterapkan dalam penelitian ini. Pada bab tersebut mencakup gambaran umum penelitain, deskripsi data, tahapan dalam melakukan penelitian serta alur metode dalam memproses data.
BAB IV : IMPLEMENTASI SISTEM DAN ANALISIS HASIL
Hasil penelitian dan analisa merupakan bab yang berisi proses implementasi sistem yang dilakukan pada penelitan ini. Dilanjutkan dengan pengujian serta analisis terhadap hasil pelatihan yang telah dilakukan oleh sistem.
BAB V : PENUTUP
Bab terakhir yaitu penutup yang memuat kesimpulan dari penelitian yang telah dilakukan serta saran-saran dari penulis berupa kritik dan gagasan untuk penelitian selanjutnya.
5 BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
Setelah memaparkan masalah umum penelitain yang terdapat pad bab I, pada bab II ini akan menjelaskan mengenai teori-teori yang digunakan pada penelitian ini, antara lain : e-commerce, analisis sentimen, Pembobotan TF-IDF, K- Fold Cross Validation, Confusion Matrix, dan Support Vector Machine (SVM).
2.1 Tinjauan Pustaka
Dalam penelitian ini, penulis juga melakukan pengkajian terhadap beberapa penelitian terkait yang telah dilakukan oleh peneliti lain.
Penelitian-penelitian tersebut dapat dijadikan sebagai literatur guna menambah referensi dalam membuat penelitian. Berikut merupakan beberapa penelitian terkait yang menjadi referensi penulis.
Penelitian terkait analisis sentimen yang telah dilakukan sebelumnya yaitu mengangkat topik mengenai analisis sentimen dan klasifikasi pada media sosial Twitter. Pada penelitian tersebut penulis menerapkan metode Naive Bayes dan Support Vector Machine. Penelitian tersebut telah berhasil membangun model untuk melakukan klasifikasi tweet berdasarkan sentimen dan kategori dengan Naive Bayes Classifier.
Hasil akurasi pengujian klasifikasi dengan fitur term frequency diperoleh sebesar 79,91% sedangkan fitur TF-IDF didapatkan akurasi sebesar 79,68%. Klasifikasi menggunakan tools RapidMiner dengan Naive Bayes dan fitur term frequency diperoleh sebesar 73,81% sedangkan dengan fitur TF-IDF diperoleh sebesar 71.11%. Klasifikasi dengan Support Vector Machine menghasilkan akurasi 83,14% untuk fitur term frequency dan 82,69% untuk fitur TF-IDF [7].
Penelitian lain terkait analisis sentimen yang telah dilakukan yaitu penerapan algoritma Support Vector Machine untuk melakukan klasifikasi komentar pada media sosial Instagram. Penulis melakukan penelitian tersebut atas dasar keresahannya mengenai tindak cyberbullying yang terjadi pada media sosial instagram, dimana pada penelitian tersebut dituliskan bahwa 42% remaja berusia 12-20 tahun telah menjadi korban
cyberbullying. Pada penelitian tersebut penulis menerapkan metode Suppor Vector Machine (SVM) dan fitur Term Frequency-Inverse Document Frequency (TF-IDF). Dokumen yang berisi 400 data yang diambil secara luring dengan total fitur sebanyak 1799. Dokumen komentar dibagi menjadi 70% data latih dan 30% data uji. Berdasarkan pengujian yang telah dilakukan didapatkan parameter terbaik pada metode SVM yaitu dengan nilai degree kernel polynomial sebesar 2, nilai learning rate sebesar 0,0001, dan jumlah iterasi maksimum yang digunakan adalah 200 kali. Dari parameter tersebut didapatkan hasil pengujian tingkat akurasi terbaik sebesar 90%, precision sebesar 94,44%, 85% recall sebesar dan f-measure sebesar 89,47% dengan komposisi data latih 50% dan data uji 50% dan tanpa mengimplementasikan algoritme Lexicon Based Features [8].
Selain itu, terdapat penelitian lain terkait analisis sentimen yang menerapkan metode Support Vector Machine dan Lexicon Based Features untuk melakukan analisis sentimen terhadap kepuasan pelanggan terhadap layanan sebuah penyedia jasa. Pada penelitian tersebut penulis menerapkan metode Support Vector Machine dan Lexicon Based Features sebagai pembaharuan fiturnya selain menggunakan fitur TF-IDF. Data yang digunakan pada penelitian tersebut yaitu sebanyak 300 data. Data tersebut dibagi menjadi dua jenis data dengan perbandingan 70% untuk data latih dan 30% untuk data uji. Hasil akurasi sistem yang diperoleh dari analisis sentimen dengan metode Support Vector Machine dan Lexicon Based Features yaitu sebesar 79%, dimana parameter yang digunakan yaitu menggunakan nilai degree sebesar 2, nilai konstanta learning rate 0,0001, serta jumlah iterasi maksimum sebanyak 50 kali. Sedangkan sistem analisis sentimen tanpa menggunakan Lexicon Based Features menghasilkan tingkat akurasi sebesar 84% dengan menggunakan nilai parameter yang sama[9]. Terdapat juga penelitian lain yang mengangkat topik analisis sentimen dimana penulis menerapkan metode Support Vector Machine dan Naïve Bayes Classifier terhadap tweet pada media sosial Twitter. Pada penelitian tersebut penulis menerapkan metode Naïve Bayes Classifier (NBC) dan Support Vector Machine (SVM) dimana proses preprocessing
data menggunakan tokenisasi, cleansing dan filtering. Data yang digunakan merupakan tweet dalam bahasa Indonesia dengan tagar HateSpeech (#HateSpeech), dengan jumlah dataset sebanyak 522 tweet yang didistribusikan secara merata menjadi dua sentimen HateSpeech dan GoodSpeech. Hasil akurasi tertinggi didapatkan saat menggunakan metode klasifikasi Support Vector Machine dengan tokenisasi unigram, stopword list Bahasa Indonesia dan emoticons, dengan nilai rata-rata akurasi mencapai 66,6%, nilai presisi 67,1%, nilai recall 66,7% nilai TP rate 66,7% dan nilai TN rate 75,8%. Dalam penelitian ini juga dapat diketahui bahwa metode klasifikasi Support Vector Machine mendapatkan nilai akurasi yang lebih tinggi dalam melakukan klasifikasi sentiment tweet HateSpeech Bahasa Indonesia dibandingkan metode Naïve Bayes Classifier [10].
Penelitian terakhir terkait analisis sentimen yaitu menerapkan metode Support Vector Machine (SVM) terhadap tweet pada media sosial Twitter, dimana topik yang diangkat mengenai pemilihan presiden 2019.
Menurut penulis, tweet masyarakat yang berkaitan dengan para calon presiden dapat digunakan untuk melihat gambaran opini masyarakat terhadap para calon presiden. Banyaknya jumlah tweet yang masuk mengenai para calon presiden mendorong perlunya metode yang membantu untuk melihat opini masayarakat secara efektif. Pada penelitian tersebut penulis menerapkan metode Support Vector Machine, metode tersebut akan mengklasifikasikan apakah suatu opini masyarakat akan termasuk dalam sentimen positif atau negatif dengan mencari hyperlane terbaik dari kedua kelas klasifikasi. Pada penelitian tersebut ditambahkan fungsi kernel pada metode Support Vector Machine yang berguna untuk mengatasi data yang tidak terpisah secara linier. Berdasarkan pembahasan dapat dilihat bahwa algoritma klasifikasi SVM dengan fungsi kernel dapat melakukan klasifikasi dengan akurasi sebesar 86,82% untuk tweet dengan kata kunci
“Jokowi” dan 86,27% untuk untuk tweet dengan kata kunci “Prabowo”[11].
Tabel 1 Perbandingan Penelitian Sebelumnya
Peneliti Judul Model Hasil
Hidayatullah (2014)
Analisis Sentimen Dan Klasifikasi Kategori Terhadap Tokoh Publik Pada Twitter
Naive Bayes dan Support Vector Machine
Menggunakan metode Naive Bayes dengan fitur TF-IDF diperoleh akurasi 71,11% dan metode SVM dengan fitur TF-IDF 82.69%
W.Luqyana, I.Cholissodin, dan
R.Perdana (2018)
Analisis Sentimen Cyberbullying Pada Komentar Instagram Dengan Metode Klasifikasi Support Vector Machine
Support Vector Machine
akurasi terbaik sebesar 90%, precision sebesar 94,44%, 85% recall sebesar dan f-measure sebesar 89,47% dengan komposisi data latih 50% dan data uji 50%
U.Rufiqoh, R.Perdana, dan M.Fauzi (2017)
Analisis Sentimen Tingkat Kepuasan Pengguna Penyedia Layanan
Telekomunikasi Seluler Indonesia Pada Twitter Dengan Metode Support Vector Machine Dan Lexicon Based Features
Support Vector Machine dan Lexicon Based Features
Akurasi yang diperoleh dari metode Support Vector Machine dan Lexicon Based Features Sebesar 79%, dan
akurasi tanpa
menggunakan Lexicon Based Features menghasilkan akurasi 84%
G.Buntoro (2016)
Analisis Sentimen Hatespeech Pada Twitter Dengan Metode Naïve Bayes Classifier Dan Support Vector Machine
Support Vector Machine dan Naïve Bayes Classifier
Hasil akurasi tertinggi didapatkan saat menggunakan metode klasifikasi Support Vector Machine dengan tokenisasi unigram, stopword list Bahasa
Indonesia dan
emoticons, dengan nilai rata-rata akurasi mencapai 66,6%.
D.Lukmana, S.Subanti, dan Y.Susanti (2019)
Analisis Sentimen Terhadap Calon Presiden 2019 Dengan Support Vector Machine Di Twitter
Support Vector Machine
SVM dengan fungsi kernel dapat melakukan klasifikasi dengan akurasi sebesar 86,82%
untuk tweet dengan kata kunci “Jokowi” dan 86,27% untuk untuk tweet dengan kata kunci
“Prabowo”
Tabel 2 Perbandingan Penelitian Sebelumnya
2.2 Landasan Teori 2.2.1 E-Commerce
Electronic Commerce atau biasa disingkat e-commerce merupakan transaksi perdagangan melalui media elektronik yang terhubung dengan internet [12]. Sedangkan menurut (terminologi) adalah menurut pandangan WTO (World Trade Organization), e-commerce ini menyangkut semua kegiatan seperti distribusi, produksi, penjualan, pemasaran, pengiriman barang atau jasa melalui cara elektronik[13].
Berikut merupakan pengertian dari E-Commerce dilihat dari empat perspektif, yaitu :
1. Perspektif Komunikasi
Pengertian E-commerce menurut perspektif komunikasi yaitu sebuah proses pengiriman barang, layanan, informasi, atau pembayaran melalui komputer ataupun peralatan elektronik lainnya.
2. Perspektif Proses Bisnis
Pengertian E-commerce menurut perspektif proses bisnis merupakan sebuah aplikasi dari suatu teknologi menuju otomatisasi dari transaksi- transaksi bisnis dan alur kerja (work flow).
3. Perspektif Layanan
Pengertian E-commerce menurut perspektif layanan yaitu E- commerce sebagai suatu alat yang memenuhi keinginan perusahaan, manajemen, dan konsumen untuk menurunkan biaya-biaya pelayanan di satu sisi dan untuk meningkatkan kualitas barang dan meningkatkan kecepatan layanan pengiriman.
4. Perspektif Online
Pengertian E-Commerce menurut perspektif online yaitu E-commerce menyediakan kemampuan untuk membeli dan menjual produk atau barang serta informasi melalui layanan internet maupun sarana online yang lainnya[14].
2.2.2 Analisis Sentimen
Analisis sentimen atau opinion mining merupakan sebuah cabang penelitian di domain text mining yang mulai banyak dilakukan pada tahun 2013 [15]. Analisis sentimen atau opinion mining merupakan proses memahami, mengekstrak dan mengolah data tekstual secara otomatis untuk mendapatkan informasi sentimen yang terkandung dalam suatu kalimat opini[16].
Analisis sentimen dapat digunakan dalam berbagai kemungkian domain, dari jasa kesehatan, produk konsumen, peristiwa sosial, jasa keuangan, dan politik pada pemilu[6]. Analisis sentimen bertujuan untuk melihat pendapat atau kecenderungan opini terhadap sebuah masalah atau objek oleh seseorang, apakah opini tersebut cenderung bersifat
negatif atau positif [16]. Pendapat dapat mewakili hampir semua aktivitas manusia, karena pendapat dapat berpengaruh terhadap perilaku seseorang. Setiap kali kita ingin membuat keputusan, terkadang kita juga ingin tahu pendapat orang lain. Dalam dunia nyata, bisnis dan organisasi selalu ingin melihat opini publik tentang suatu produk atau jasa guna mengetahui sentimen publik mengenai produk dan jasanya [6]. Hal tersebut bertujuan untuk meningkatkan kualitas serta mutu pelayanan atau produk dari organisasi atau pelaku bisnis tertentu.
Dengan adanya analisis sentimen, organisasi atau pelaku bisnis dapat mengetahui dan menentukan opini masyarakat publik terhadap barang atau jasanya. Hal ini memungkinkan bagi organisasi atau pelaku bisnis untuk mengetahui antara lain:
a. Persepsi Produk Baru b. Persepsi Kebijakan Baru c. Persepsi Merek
d. Deteksi Kepuasan Konsumen e. Deteksi Keinginan Konsmune
2.2.3 Text Mining
Text mining adalah satu langkah dari analisis teks yang dilakukan secara otomatis oleh komputer untuk menggali informasi yang berkualitas dari suatu rangkaian teks yang terangkum dalam sebuah dokumen[17]. Text mining atau text analytics merupakan sebuah teknologi yang dapat menganalisis data teks semi-terstruktur ataupun tidak terstruktur, hal tersebut menyebabkan text mining berbeda dengan data mining dimana data mining mengolah data yang sifatnya terstruktur. Perbedaan antara text mining dengan data mining terletak pada sumber data yang digunakan. Dalam data mining, data yang diolah merupakan data yang terstruktur dari proses warehousing sehingga data lebih mudah diproses oleh mesin/komputer. Analisis teks lebih sulit karena struktur teks yang kompleks, struktur yang tidak lengkap, bahasa yang berbeda, dan arti yang tidak standar. Oleh sebab itu pada umumnya digunakan Natural Languange Processing untuk analisis teks yang tidak berstruktur tersebut.
Tujuan dari text mining yaitu untuk memperoleh informasi yang berguna dari sekumpulan dokumen. Fungsi dari text mining yaitu untuk menemukan kata-kata yang dapat mewakili isi dari dokumen yang selanjutnya dilakukan analisis keterkaitan antar dokumen dengan menggunakan metode statistik tertentu seperti analisis kelompok, klasifikasi dan asosiasi[17]. Michael menyebutkan bahwa tahapan dalam text mining secara umum adalah tokenizing, filtering, stemming, tagging, dan analyzing[17].
Tahap pertama yang dilakukan dalam text mining guna dapat diproses pada tahap selanjutnya yaitu sebagai berikut :
2.2.3.1 Text Collection
Text collection merupakan tahap pengumpulan data yang dilakukan dengan menggunkan Twitter Scraper pada tools Spyder Python.
2.2.3.2 Labeling
Labeling merupakan proses dalam Text Mining untuk memberikan label terhadap sebuah data. Labeling biasanya dilakukan untuk melakukan proses klasifikasi data. Proses labeling pada penelitian ini menggunakan bantuan alat analisis sentimen VADER (Valence Aware Dictionary for sEntiment Reasoning), dimana proses pembobotan nilai label berdasarkan nilai yang terdapat pada kamus Vader. Untuk melakukan proses labeling, data mentah yang masih berbahasa Indonesia diterjemahkan dahulu kedalam bahasa inggris menggunakan bantuan Google Document Translator. Hal tersebut dilakukan karena Vader hanya dapat menganalisis data berbahasa inggris saja. Peneliti memilih Vader untuk membantu dalam melakukan proses labeling karena Vader dalam banyak kasus lebih baik daripada sebelas alat analisis sentimen lainnya yang sangat dihormati[18].
2.2.3.3 Preprocessing
Preprocessing merupakan tahapan untuk mengubah struktur isi dari suatu dokumen kedalam format yang sesuai, berupa kumpulan term atau kata, agar dapat diproses oleh algoritma clustering [19]. Tahap preprocessing dilakukan untuk menghindari data yang kurang sempurna, gangguan pada data, dan data-data yang tidak konsisten[7]. Proses
preprocessing yang dilakukan pada penelitian ini melalui 4 tahap yaitu sebagai berikut:
a. Case Folding
Case folding merupakan salah satu bentuk text preprocessing yang berfungsi untuk mengubah semua huruf dalam dokumen menjadi huruf kecil. Huruf- huruf tersebut meliputi huruf
‘a’ hingga huruf ‘z’. Hal tersebut bertujuan untuk membuat data menjadi format yang sama.
Sebagai contoh : Input :
Oh siallll!! Sudah berkali-kali dihubungi tapi penjual dari lazada tak ada kabar sama sekali.
Output :
oh siallll!! Sudah berkali-kali dihubungi tapi penjual dari lazada tidaak ada kabar sama sekali.
b. Cleaning Data
Cleaning data merupakan salah satu proses dalam preprcessing yang berguna untuk menyiapkan data guna dilakukan analisis dengan cara memodifikasi atau menghapus data yang salah atau tidak relevan seperti tanda baca, angka, link url dan lain-lain.
Sebagai Contoh :
Input (hasil case folding) :
oh siallll!! Sudah berkali-kali dihubungi tapi penjual dari lazada tidaak ada kabar sama sekali.
Output :
oh siallll sudah berkali kali dihubungi tapi penjual dari lazada tidaak ada kabar sama sekali
c. Tokenizing
Pada natural language processing (NLP) token diartikan sebagai “kata”. Tokenizing sendiri merupakan proses pemisahan teks yang dapat diambil dari sebuah paragraf maupun kalimat menjadi potongan-potongan yang disebut sebagai token untuk kemudian dianalisa.
Sebagai contoh :
Input (hasil cleaning data) :
oh siallll sudah berkali kali dihubungi tapi penjual dari lazada tidaak ada kabar sama sekali
Output :
oh siallll sudah berkali kali dihubungi tapi penjual dari lazada tidaak ada kabar sama sekali
d. Normalization
Normalization atau Normalisasi merupakan salah satu tahap dalam preprocessing yang berguna untuk menganalisis setiap karakter dalam bentuk huruf maupun angka yang tidak relevan guna disesuaikan dengan Kamus Besar Bahasa Indonesia (KBBI).
Sebagai contoh :
Input (hasil tokenizing) :
oh siallll sudah berkali kali dihubungi tapi penjual dari lazada tidaak ada kabar sama sekali
Output :
oh sial sudah berkali kali dihubungi tapi penjual dari lazada tidak ada kabar sama sekali
e. Stemming
Teknik stemming merupakan suatu teknik untuk mengekstraksi kata dasar dari suatu kata [20]. Umumnya teknik ini
diperlukan pada proses filtering untuk menghemat media penyimpanan[20].
Input (hasil Normalisasi) :
oh sial sudah berkali kali dihubungi tapi penjual dari lazada tidak ada kabar sama sekali
Output :
oh sial sudah kali kali hubungi tapi penjual dari lazada tidak ada kabar sama sekali
Algoritma Nazief & Adriani merupakan salah satu algoritma yang digunakan pada teknik stemming. Berikut merupakan langkah- langkah penerapan algoritma Nazief & Adriani :
1. Langkah pertama yaitu melakukan pencarian di kamus terhadap kata yang belum melewati tahap stemming. Jika kata tersebut ditemukan, maka kata tersebut dianggap sebagai root word atau kata dasar yang benar, kemudian algoritma dihentikan.
2. Pada langkah kedua yaitu menghilangkan Inflectional suffixes seperti imbuhan (“-lah”, ”-kah”, “- tah” atau “-pun”), kemudian menghilangkan inflectional possessive pronoun suffixes seperti imbuhan (“-ku”, “-mu” atau ”-nya”). Setelah melakukan 2 tahap tersebut kemudian melakukan cek kata yang ada pada kamus kata dasar, jika kata ditemuakan maka algoritma dihentikan, jika kata tidak ditemukan, maka lanjut pada langkah ketiga.
3. Langkah ketiga yaitu melakukan penghapusan Derivation Suffixes seperti imbuhan (“-i”, “-an” atau “-kan”). Jika kata berhasil ditemukan di kamus, maka algoritma dihentikan.
Jika tidak, maka lanjut pada langkah 3a, yaitu :
a. Jika imbuhan “-an” telah berhasil dihapus dan huruf terakhir dari kata tersebut adalah “-k”, maka huruf “-k”
tersebut juga dihapus. Jika kata yang dicari ditemukan
pada kamus, maka algoritma dihentikan. Jika tidak, maka lakukan langkah 3b.
b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, kemudian lanjut ke langkah 4.
4. Langkah keempat yaitu melakukan penghapusan Derivation Prefix. Jika pada langkah 3 terdapat tahap penghapusan sufiks, maka pergi ke langkah 4a, yaitu :
Awalan Akhiran yang tidak
diijinkan
be- -i
di- -an
ke- -i, -kan
me- -an
se- -i, -kan
Tabel 3 Awalan - Akhiran Tidak Diijinjan
a. Periksa pada tabel “Awalan Akhiran Tidak Diijinkan”.Jika root word atau kata dasar sudah ditemukan, maka algoritma dihentikan, jika tidak, maka pergi ke langkah 4b.
b. Jika pada langkah 4a root word tidak ditemukan, lakukan identifikasi terhadap tipe awalan dan kemudian hilangkan. Terdapat 2 tipe awalan yaitu sebagai berikut : (i) Standar, dimana jika awalannya adalah: “di-”,
“ke-”, atau “se-” maka tipe awalan tersebut dapat secara langsung dihapus.
(ii) Kompleks, dimana jika awalannya adalah “te-”,
“me-”, “be-”, atau “pe-” maka diperlukan proses tambahan guna menentukan tipe awalannya.
Untuk mendapatkan hasil pemenggalan kata yang tepat, maka diperlukan aturan yang dimuat pada tabel sebagai berikut :
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 : kata “pelajar”
28 peCP pe-CP....dimana C!={r|w|y|l|m|n}
dan P1=’er’
29 perCerV per_CerV dimana C!={r|w|y|l|m|n}
Tabel 4Aturan Peluruhan Kata Dasar
Pada tabel 4 terdapat aturan mengenai peluruhan kata dasar dengan awalan “be-“, “te-“,
“me-“, dan “pe-“. Pada kolom kedua dalam tabel tersebut memaparkan bentuk kata dasar dengan awalan “be-“, “te-“, “me-“, dan “pe-“. Pada kolom selanjutnya berisi hasil karakter yang telah dihapus awalannya oleh proses algoritma.
Pada kolom kedua dan ketiga terdapat huruf “V”
, “C” dan “P”, dimana huruf “V” merupakan huruf vokal, huruf “C” merupakan huruf konsonan, dan huruf “P” merupakan pecahan dari “er”.
c. Cari kata yang telah dihilangkan awalanya, jika tidak ditemukan maka langkah diulang kembali. Namun, jika berhasil ditemukan, maka algoritma berhenti.
5. Jika pada langkah 4 kata yang dicari belum juga ditemukan, maka lakukan proses recording yang mengacu pada aturan tabel 4.
6. Jika langkah 1-5 telah dijalankan namun root word tidak juga ditemukan, maka asumsikan kata awal sebagai root word dan algoritma selesai.
Guna mengatasi keterbatasan algoritma stemming diatas, maka ditambahkan aturan untuk reduplikasi[21]. Berikut merupakan aturan untuk reduplikasi:
1. Jika terdapat kata yang dihubungkan dan kata tersebut memilik pola perulangan atau bentuk kata yang sama, maka kata dasar yang diambil adalah bentuk tunggalnya. Sebagai contoh kata “hati-hati”, karena kata tersebut memiliki pola perulangan atau bentuk kata yang sama maka kata dasar dari kata tersebut adalah “hati”.
2. Untuk kata yang terhubung namun memiliki bentuk kata yang berbeda, maka kata tersebut dipisah dan diartikan
secara terpisah. Sebagai contoh kata “berkali-kali”, untuk mendapatkan root word dari kata tersebut harus dipisah menjadi “berkali” dan “kali” dan diolah sehingga menjadi
“kali” dan “kali”. Contoh lain seperti kata “mondar- mandir”, yang memiliki dua kata yang berbeda dimana untuk mendapatkan root word dari kata tersebut sama dengan contoh sebelumnya. Root word yang dihasilkan dari kata “mondar-mandir” adalah “mondar” dan “mandir”.
f. Stopword Removal
Tahap stopword removal atau filtering merupakan salah satu proses untuk mengambil kata penting dan menyimpaannya atau membuang kata yang kurang penting. Tujuan dari tahap stopword removal adalah mengurangi jumlah kata yang tersimpan pada sistem.
Sebagai contoh :
Input (hasil stemming) :
oh sial sudah kali kali hubungi tapi penjual dari lazada tidak ada kabar sama sekali
Output :
sial kali kali hubungi penjual
lazada tidak ada kabar
2.2.4 Pembobotan TF-IDF
Algoritma Term Frequency Inverse-Document Frequency atau sering disingkat dengan TF-IDF merupakan suatu cara untuk memberikan bobot hubungan suatu kata (term) terhadap dokumen [22]. Term frequency (TF) sendiri merupakan jumlah kemunculan sebuah term pada sebuah dokumen. Sedangkan Inverse Document Frequency (IDF) yaitu pengurangan dominasi term yang sering muncul diberbagai dokumen, dengan memperhitungkan kebalikan frekuensi dokumen yang mengandung suatu kata [22]. Metode TF-IDF ini menggabungkan dua konsep yaitu
frekuensi kemunculan sebuah kata di dalam sebuah dokumen dan inverse frekuensi dokumen yang mengandung kata tersebut [22].
Rumus untuk pemberian bobot kepada setiap kata yaitu sebagai berikut :
Wt.d = tft.d * IDFt (1) Keterangan :
Wt,d : Bobot kata ke-t pada dokumen ke-d.
Tft,d : Banyaknya kemunculan kata ke-t pada dokumen d.
IDFt :
Inverse Document Frequency ke-t nilai IDF adalah hasil dari log(D/df).
D : Dokumen ke-d.
T : Kata ke-t dari kata kunci.
D : Total dokumen.
Df : Banyak dokumen yang mengandung kata kunci.
Agar dapat mengimplementasikan rumus tersebut, diperlukan rumus lain untuk menghitung IDF terlebih dahulu sebagai berikut :
IDFt = log10(D/df) (2) IDFt : Inverse document frequency yang ada pada kata t.
D : jumlah keseluruhan dari dokumen.
Df : jumlah dokumen yang mengandung kata t.
2.2.5 Algoritma Support Vector Machine (SVM)
Untuk melakukan analisis sentimen terhadap ulasan e-commerce lazada pada media sosial twitter, penulis menggunakan metode support vector machine (SVM). SVM pertama kali dikembangkan oleh Boser, Guyon, dan Vapnik pada tahun 1992, dan untuk pertama kali SVM dipresentasikan di Annual Workshop on Computational Learning Theory[23]. Walaupun usia SVM tergolong masih muda, namun evaluasi kemampuannya dalam berbagai aplikasinya menempatkannya sebagai state
of the art dalam pattern recognition [24]. Prinsip kerja dari SVM yaitu linear classifier, namun juga dapat bekerja pada problem non-linear dengan cara memasukkan konsep kernel trick pada ruang berdimensi lebih tinggi [25].
Sederhananya konsep dari SVM yaitu sebagai usaha untuk mencari hyperplane terbaik yang berfungsi sebagai pemisah dua buah kelas pada input space [23]. Kemudian penjelasan mengenai pattern adalah anggota dari dua buah class yang terdiri dari class +1 dan class -1, dan berbagai alternatif garis pemisah (discrimination boundaries)[23]. Sedangkan margin merupakan jarak antara hyperplane dengan pattern paling dekat dari masing-masing kelas [24]. Pattern terdekat tersebut dinyatakan sebagai support vector[24].
Gambar 1Hyperplane Class -1 dan Class +1
Asumsikan data yang tersedua sebagai 𝑥⃗i ∈ ℜ𝑑 sedangkan untuk label masing-masing daisumsikan sebagai 𝑦i ∈ {−1,+1} untuk i = 1,2, ... , l dimana l merupakan jumlah data. Kelas -1 dan +1 diasumsikan dapat terpisah secara sempurna oleh hyperlane berdimensi d, yang didefinsikan sebagai berikut :
𝑤⃗⃗⃗. 𝑥⃗ + 𝑏 = 0 (3) Pattern 𝑥⃗i termasuk pada kelas -1 (sampel negatif) dapat dirumuskan sebagai pattern dengan pertidaksamaan sebagai berikut :
𝑤⃗⃗⃗. 𝑥⃗ + 𝑏 ≤ −1 (4)
Untuk pattern 𝑥⃗i yang termasuk pada kelas +1 (sampel positif) dapat dirumuskan sebagai pattern dengan pertidaksamaan sebagai berikut :
𝑤⃗⃗⃗. 𝑥⃗ + 𝑏 ≥ +1 (5) Untuk mendapatkan margin terbesar dapat dilakukan dengan cara memaksimalkan nilai jarak antara hyperlane dan titik terdekatnya yait 1/||𝑤⃗⃗⃗||. Hal tersebut dapat dirumuskan sebagai Quadratic Programming (QP) Problem, untuk mencari titik minimal persamaan dapat dilakukan dengan memperhatikan constraint dengan persamaan sebagai berikut :
𝑚𝑖𝑛
𝑤⃗⃗⃗ 𝑡(𝑤) =1
2‖𝑤⃗⃗⃗‖2 (6)
𝑦𝑖(𝑥⃗⃗⃗⃗⃗⃗⃗⃗⃗ + 𝑏) − 1 ≥ 0, ∀𝑖. 𝑤 𝑖 (7) Masalah tersebut dapat dipecahkan dengan berbagai teknik komputasi, salah satu teknik yang dapat memecahkan problem tersebut yaitu dengan Lagrange Multiplier dengan rumus sebagai berikut :
𝐿(𝑤, 𝑏, 𝑎) =1
2‖𝑤⃗⃗⃗‖2− ∑ 𝑎𝑖(𝑦𝑖((𝑥𝑖. 𝑤𝑖+ 𝑏) − 1))
𝑙
𝑖=1
(𝑖 = 1,2,3, … , 𝑙) (8)
𝑎𝑖 merupakan lagrange multipliers yang bernilai 0 atau lebih besar (𝑎𝑖 ≥ 0). Hasil optimal dari persamaan 2.6 dapat dihitung dengan cara meminimlakan nilai L terhadap 𝑤⃗⃗⃗ dan b, serta memaksimalkan nilai L terhadap 𝑎𝑖. Persamaan 2.6 dapat dimodifikasi sebagai hasil maksimalisasi masalah yang hanya mengandung 𝑎𝑖 dengan cara mengasumsikan bahwa pada titik optimal gradient L = 0 sebagai berikut :
Maksimalisasi :
∑ 𝑎𝑖−1
2
𝑙𝑖=1 ∑ 𝑎𝑙𝑖.𝑗 𝑖𝑎𝑗𝑦𝑖𝑦𝑗𝑥⃗𝑖𝑥⃗𝑗 (9) Dengan Constraint :
𝑎𝑖 ≥ 0(𝑖 = 1,2,3, … , 𝑙) ∑𝑙𝑖−1𝑎𝑖𝑦𝑖 = 0 (10)
Perhitungan tersebut memperoleh banyak 𝑎𝑖 yang bernilai positif.
Data yang berkolerasi dengan 𝑎𝑖 yang bernilai positif disebut dengan support vector [23].
a. Non-Linear Classification
Pada umumnya masalah dalam domain dunia nyata (real world problem) jarang yang bersifat linear separable (tidak terpisahkan secara linear), tetapi bersifat non-linear [23]. Oleh karena itu, untuk menyelesaikan masalah non-linear perlu adanya modifikasi SVM dengan cara memasukkan fungsi kernel. Hal pertma yang dilakukan dalam non-linear SVM yaitu data 𝑥 dipetakan oleh fungsi Φ(𝑥) ke ruang vektor yang berdimensi lebih tinggi. Hyperplane yang memisahkan kedua kelas tersebut dapat dikontruksikan. Fungsi Φ berfungsi untuk melakukan pemetaan terhadap tiap data pada input space tersebut ke ruang vektor baru yang berdimensi lebih tinggi. Hal tersebut menyebabkan kedua kelas dapat dipisahkan secara linear oleh hyperplane. Berikut merupakan bentuk notasi matematika :
Φ: ℜ𝑑 → ℜ𝑑d < q (11)
Gambar 2Fungsi Φ Memetakan ke dimensi yang lebih tinggi Proses selanjutnya dalam pembelajaran SVM yaitu dalam menemukan titik-titik support vector yang hanya bergantung pada dot product dari data yang telah ditransformasikan pada ruang baru yang memiliki dimensi lebih tinggi, yaitu Φ(𝑥⃗i) . Φ(𝑥⃗j).
Transformasi Φ umumnya tidak diketahui dan sangat sulit untuk dipahami. Oleh karena itu untuk proses perhitungan dot product dapat digantikan dengan fungsi Kernel K Φ (𝑥⃗i, 𝑥⃗j). Fungsi
kernel tersebut mendefinisikan secara implisit mengenai transformasi Φ. Hal tersebut dinyatakan sebagai Kernel trick, yang dirumuskan sebagai berikut :
K Φ (𝑥⃗i, 𝑥⃗j) = Φ(𝑥⃗i) . Φ(𝑥⃗j) (12) 𝑓(Φ(𝑥⃗)) = 𝑤⃗⃗⃗. Φ (𝑥⃗) + 𝑏
= ∑𝑛𝑖=1.𝑋.𝑒𝑆𝑉𝑎𝑖𝑦𝑖Φ(𝑥⃗). Φ(𝑥⃗⃗⃗⃗) + b 𝑙
= ∑𝑛𝑖=1.𝑋.𝑒𝑆𝑉𝑎𝑖𝑦𝑖 𝐾(𝑥, 𝑥𝑖) + 𝑏 (13) Persamaan diatas menjelaskan bahwa subset dari training set dinotasikan sebagai support vector, atau dengan kata lain 𝑥⃗i data yang berkorespondensi pada 𝑎𝑖 ≥ 0.
b. Fungsi Kernel
Mulanya klasifikasi dikembangkan dengan asumsi kelinearan. Hal tersebut menyebabkan algoritma yang dihasilkan terbatas untuk kasus-kasus yang linear saja. Untuk menanggulangi kasus tersebut, maka dapat menggunakan bantuan berbagai macam fungsi kernel. Ketika menggunakan fungsi kernel untuk menentukan support vector, maka tidak perlu mengetahui wujud dari fungsi non- linear [23].
Terdapat beberapa fungsi kernel yang sering digunakan dalam literatus SVM [23]. Berikut merupakan beberapa fungsi kernel yang sering digunakan:
2.2 Kernel linear merupakan kernel paling sederhana dibandingkan dengan fungsi kernel lainnya. Umumnya kernel tersebut digunakan pada kasus klasifikasi teks, dengan persamaan sebagai berikut :
K(𝑥𝑖 , 𝑥𝑗) = 𝑥𝑖𝑇𝑥𝑗 (14)
2.3 Kernel polynomial, kernel ini umumnya digunakan untuk klasifikasi gambar, dengan persamaan sebagai berikut :
K(𝑥⃗⃗⃗⃗,𝑥𝑖⃗⃗⃗⃗) =(𝑥𝑗 ⃗⃗⃗⃗, 𝑥𝑖 ⃗⃗⃗⃗ + 1)𝑗 𝑝 (15)
2.4 Kernel Radial Basis Gaussian merupakan kernel yang umumnya digunakan untuk mengolah data yang sudah valid (available) dan default dalam tools SVM, dengan persamaan sebagai berikut :
K(𝑥𝑖 , 𝑥𝑗) = 𝑒𝑥𝑝 (−‖𝑥𝑖− 𝑥𝑗‖
2
2𝜎2 ) (16)
2.5 Kernel Sigmoid, kernel ini umumnya digunakan untuk neural networks, kernel ini memiliki persamaan sebagai berikut :
K(𝑥𝑖 , 𝑥𝑗) = 𝑡𝑎𝑛ℎ (𝑎𝑥⃗⃗⃗⃗, 𝑥𝑖 ⃗⃗⃗⃗ + 𝛽) 𝑗 (17) Pemilihan fungsi kernel yang tepat sangat penting guna menentukan feature space, dimana fungsi classifier akan dicari.
Selama fungsi kernelnya tepat, SVM akan beroperasi secara benar meskipun pemetaan yang digunakan tidak diketahui [23].
2.2.6 K-Fold Cross Validation
Cross-validation atau estimasi rotasi merupakan sebuah teknik validasi model untuk menilai bagaimana hasil statistik analisis akan menggeneralisasi kumpulan data independent. Umumnya teknik ini digunakan untuk memprediksi model dan memperhitungkan seberapa akurat sebuah model prediktif ketika dijalankan dalam praktiknya. K-fold cross validation merupakan salah satu teknik dari validasi silang. Cara kerja dari k-fold cross validation yaitu memecah data menjadi k bagian set data dengan ukuran yang sama. Tujuan pengimplementasian k-fold cross validation yaitu untuk menghilangkan bias pada data. Pelatihan serta pengujian dilakukan sebanyak k kali. Pada percobaan pertama, subset S1 dinotasikan sebagai data pengujian dan subset lainnya dinotasikan sebagai data pelatihan, percobaan kedua subset S1, S3, ..., Sk menjadi data pelatihan dan S2 menjadi data pengujian, hingga setererusnya [26].
Contoh implementasi k-fold cross validatio, dimana k = 4
d1 d2 d3 d4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
Tabel 5 Contoh k-fold cross validation
Tabel 6 Pembagian Data
Pada Tabel 5 merupakan contoh 4-fold cross validation, dimana setiap data akan dieksekusi sebanyak 4 kali. Setiap subset data memilii kesempatan untuk dinotasikan sebagai data testing maupun data training.
Berikut merupakan model pengujian dengan asumsi setiap pembagian data diberi nama d1,d2,d3, dan d4.
1. Percobaan pertama, d1 diasumsikan sebagai testing dan d2, d3, dan d4 sebagai training.
2. Percobaan pertama, d2 diasumsikan sebagai testing dan d1, d3, dan d4 sebagai training.
3. Percobaan pertama, d3 diasumsikan sebagai testing dan d1, d2, dan d4 sebagai training.
4. Percobaan pertama, d4 diasumsikan sebagai testing dan d1, d2, dan d3 sebagai training.
Untuk melakukan proses pengukuran performance klasifikasi menggunakan cara membandingkan seluruh data uji yang diklasifikasi benar dengan banyaknya data uji. Berikut merupakan persamaan yang berfungsi untuk mengukur kinerja klasifikasi :
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 =∑ 𝑘𝑙𝑎𝑠𝑖𝑓𝑖𝑘𝑎𝑠𝑖 𝑏𝑒𝑛𝑎𝑟
∑ 𝑑𝑎𝑡𝑎 𝑢𝑗𝑖 𝑥 100% (18)
Untuk melihat jarak antar rata-rata akurasi dengan akurasi setiap percobaan lainnya yaitu dengan cara menghitung simpangan baku (standar deviation). Simpangan baku merupakan ukuran penyebaran data yang
Data Testing Data Training
menunjukkan jarak rata-rata dari nilai tengah ke suatu titik nilai. Semakin besar simpangan baku yang dihasilkan, maka penyebaran dari nilai tengahnya juga besar, begitu pula sebaliknya[26]. Berikut merupakan persamaan untuk menghitung simpangan baku :
𝜎 = √∑(𝑥𝑖−𝜇)2
𝑁 (19)
Keterangan :
N = banyaknya percobaan 𝜇 = mean
X = percobaan ke-i
I = indeks setiap percobaan
2.2.7 Confusion Matrix
Confusion matrix pada dasarnya memberikan informasi mengenai perbandingan hasil klasifikasi yang dilakukan oleh sistem dengan hasil klasifikasi sebenarnya [27]. Bentuk dari confusion matrix yaitu adalah tabel matriks yang menggambarkan kinerja model klasifikasi pada serangkaian data uji nilai sebenarnya diketahui.
Terdapat 4 istilah yang digunakan untuk merepresentasikan hasil klasifikasi pada confusion matrix yaitu true positive (TP), true negative (TN), false positive (FP), false negative (FN). Secara khusus confusion matrix juga memberikan informasi mengenai TP,FP,TN, dan FN. Hal tersebut tentu sangat berguna karena hasil dari klasifikasi umumnya tidak dapat diekspresikan dengan baik dalam satu angka saja [28].
Tabel 7 Confusion Matrix
Klasifikasi Prediksi Positif Prediksi Negatif
Positif TP FN
Negatif FP TN
Dimana :
a. True Positive (TP) adalah jumlah data bernilai postif yang diklasifikasikan dengan benar oleh sistem.
b. True Negative (TN) adalah jumlah data bernilai negatif yang diklasifikasikan dengan benar oleh sistem.
c. False Positive (FP) adalah jumlah data bernilai positif yang diklasifikasikan salah oleh sistem.
d. False Negative (FN) adalah jumlah data bernilai negatif yang diklasifikasikan salah oleh sistem.
Dengan mengetahui nilai TP, TN, FP, dan FN maka data dapat diolah untuk mendapatkan nilai akurasi. Akurasi menggambarkan seberapa akurat model dapat mengklasifikasikan dengan benar. Oleh karena itu, akurasi merupakan tingkat kedekatan nilai prediksi dengan nilai aktual atau sebenarnya [28]. Berikut merupakan persamaan untuk mendapatkan nilai akurasi :
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 𝑇𝑃+𝑇𝑁
𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁 (20)
29 BAB III
METODOLOGI PENELITIAN
3.1 Gambaran Umum Penelitian
Pada bagian ini akan memaparkan mengenai gambaran umum yang akan dilakukan dalam penelitian serta perancangan sistem dalam melakukan analisis sentimen terhadap e-commerce lazada dengan menggunakan metode Support Vector Machine. Hal pertama yang dilakukan yaitu melakukan pengambilan data dengan menggunakan cara scrapping tweet dari media sosial Twitter. Setelah data berupa tweet didapatkan, dilakukan pelabelan data dengan menggunakan Vader.
Tahap selanjutnya yaitu data akan melalui proses preprocessing guna mendapatkan struktur data yang lebih terstruktur. Setelah melalui tahap preprocessing, data akan dibagi menjadi dua yaitu training set dan testing set lalu data akan diberi bobot dengan menggunakan metode TF- IDF. Kemudian tahap selanjutnya yaitu membentuk model dengan menggunakan metode Support Vector Machine. Pemodelan SVM diterapkan dengan menggunakan 4 variasi kernel yaitu Linear, Polynomial, Sigmoid, dan RBF serta menggunakan 3 variasi K-Fold Cross Validation dimana Fold bernilai 3, 5, dan 10. Tahap terakhir yaitu menganalisis setiap model yang telah dihitung. Berikut merupakan alur pada penilitian ini :
Gambar 3 Diagram Penelitian
3.2 Data
Pada penelitian ini, data diperoleh dari media sosial Twitter.
Data yang diambil berupa tweet dalam bahasa Indonesia. Data diperoleh dengan menggunakan teknik pengambilan data scraping pada media sosial Twitter melalui Twitter Scraper. Data yang diambil merupakan data acak yang mengandung kata “lazada”. Pengambilan data berupa tweet menggunakan tools Spyder Python(3.7), dimana data yang akan diambil berupa data dengan format excel.
Pengambilan data pada bulan juli 2020 dilakukan sebanyak 1 (satu) kali. Berikut merupakan jumlah data yang telah diambil :
Pengambilan Data Jumlah Data
1 – 31 Juli 2020 3000
Tabel 8 Jumlah Data
Data tersebut merupakan data asli (mentah) yang nantinya akan diolah melalui beberapa tahap.
3.3 Struktur Data
Data mentah yang sudah diambil merupakan data dengan format excel. Berikut merupakan contoh sampel data yang diambil dengan menggunakan teknik scrapping menggunakan Twitter Scraper :
Datetime Tweet Id Tweet Username
2020-07-29 14:54:17+00:00
1288488018261 630000
sekedar mengingatkan
@LazadaID, besuk sdh hr kamis, mohon di pastikan ke seller apakah pesanan sy sdh di kirim dan bs di pastikan besuk atau lusa bs sampai?
https://t.co/66F6gN0MCd
sugiyonok aren
Tabel 9 Sampel Data Mentah Twitter
3.4 Pemberian Label
Data mentah yang telah diperoleh akan diberi label sentimen. Proses pemberian label dilakukan dengan menggunakan modul Vader yang ada pada library Natural Language Toolkit (NLTK) pada bahasa pemrograman Python. Pemberian label ditentukan berdasarkan atribut Tweet yang ada pada Tabel 3.2. Sebelum diberi label, data tweet berbahasa Indonesia akan diterjemahkan kedalam bahasa Inggris. Hal tersebut karena Vader hanya dapat mengerjakan teks dalam bahasa Inggris. Penerjemahan dokumen dilakukan dengan menggunakan tools Document Translator yang ada pada Google. Tahap selanjutnya yaitu mencari nilai polaritas dari data yang sudah diterjemahkan. Nilai polaritas didaptkan dan dihitung berdasarkan bobot dari setiap kata atau emoticons yang terkandung dalam sebuah tweet menggunakan kamus Vader. Jika nilai polaritas kurang dari 0 maka tweet dinyatakan memiliki sentimen negatif, sedangkan jika nilai polaritas lebih dari 0 maka tweet dinyatakan memiliki sentimen positif. Berikut merupakan contoh hasil pemberian label pada tweet :
Data Mentah : No Tweet
1 @jieeaaa Lazada nda tahan sdh aku hahaha
2
Males bgt lama-lama pake lazada. Sampe ribut grgr pengemasan lama astagfir
3 @diperkosah Jgn lupa beli smw di lazada
4 mauuu satu voucher lazada hueeee ketinggalan mulu 5 jauhkan nana dari shopee sama lazada yaallah😭💔
6 ga lama dateng paket dari lazada
7
@aberilian1 Mantapppp aku kok males ya pake lazada walau diskonnya banyak
8
@Andrmdd_ percuma bund, lazada overload. 2x ikut semalam sama tadi ga dapet2
9
@discountfess ya tidak percuma juga sih nder, lazada ngapain ngadain dari jauh jauh hari kalau gak bisa kepake
10
@eggstone Gue suka dapet SMS jadi pemenang shopee atau lazada gitu, coba cek SMS deh
Tabel 10 Data Mentah Input :
No Tweet
1 @jieeaaa Lazada I can't stand it hahaha
2
Too lazy to use Lazada for a long time. Until the noise grgr old packaging astagfir
3 @diperkosah Don't forget to buy SMW at Lazada 4 want a lazada voucher, hueeee it's too late
5 keep nana away from shopee and lazada ya Allah 6 it didn't take long for the package to arrive from lazada
7
@aberilian1 Mantapppp how come I'm lazy to use Lazada even though the discount is a lot
8
@Andrmdd_ useless bund, lazada overloaded. 2x attended last night and didn't get it
9
@discountfess, it's not useless, nder, why are lazada doing it from far away if you can't use it
10
@eggstone I like getting SMS to be the winner of shopee or lazada, try checking the SMS
Tabel 11 Input Data Terjemahan Output :
No Tweet Polaritas
1 @jieeaaa Lazada I can't stand it hahaha negatif
2
Too lazy to use Lazada for a long time.
Until the noise grgr old packaging astagfir negatif
3
@diperkosah Don't forget to buy SMW at
Lazada positif
4 want a lazada voucher, hueeee it's too late positif
5
keep nana away from shopee and lazada ya
Allah negatif