IDENTIFIKASI PERNYATAAN MISOGINI BERBAHASA INDONESIA BERDASARKAN KOMENTAR YOUTUBE MENGGUNAKAN
GLOVE EMBEDDING DAN RANDOM FOREST CLASSIFIER
SKRIPSI
ARNESA JULIA DAMANIK 171402125
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN
2021
IDENTIFIKASI PERNYATAAN MISOGINI BERBAHASA INDONESIA BERDASARKAN KOMENTAR YOUTUBE MENGGUNAKAN
GLOVE EMBEDDING DAN RANDOM FOREST CLASSIFIER
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
ARNESA JULIA DAMANIK 171402125
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN
2021
Judul : IDENTIFIKASI PERNYATAAN MISOGINI
BERBAHASA INDONESIA BERDASARKAN
KOMENTAR YOUTUBE MENGGUNAKAN
GLOVE EMBEDDING DAN RANDOM FOREST CLASSIFIER
Kategori : SKRIPSI
Nama : ARNESA JULIA DAMANIK
Nomor Induk Mahasiswa : 171402125
Program Studi : TEKNOLOGI INFORMASI
Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dr. Erna Budhiarti Nababan, M.IT. Sarah Purnamawati ST., M.Sc.
NIP. 196210262017042001 NIP. 198302262010122003
Diketahui/disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc.
NIP. 198603032010121004
iii
PERNYATAAN
IDENTIFIKASI PERNYATAAN MISOGINI BERBAHASA INDONESIA BERDASARKAN KOMENTAR YOUTUBE MENGGUNAKAN
GLOVE EMBEDDING DAN RANDOM FOREST CLASSIFIER
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 20 Juni 2021
ARNESA JULIA DAMANIK
171402125
UCAPAN TERIMA KASIH
Puji dan syukur penulis sampaikan kepada Tuhan yang Maha Esa, karena atas kasih dan berkat-Nya penulis dapat menyelesaikan penyusunan skripsi ini yang merupakan salah satu syarat untuk memperoleh gelar Sarjana pada Program Studi S1 Teknologi Informasi, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.
Penulis tidak dapat menyelesaikan penyusunan skripsi ini apabila tidak disertai oleh doa, dukungan, dan semangat dari seluruh pihak yang terlibat dalam masa perkuliahan dan penyusunan skripsi ini sampai selesai. Adapun pada kesempatan ini penulis ingin mengucapkan terimakasih yang sebesar-besarnya kepada:
1. Keluarga penulis, Ayah Ir. Edward Janer Damanik dan Ibu Rosita Herawaty Sumbayak, S.H yang tiada henti memberikan kasih sayang, doa, dukungan, dan semangat kepada penulis hingga saat ini, begitu juga dengan kakak penulis Ruth Melda Damanik, S.Km dan abang ipar penulis Lamhot Gibson Halashon Pane, S.ST, yang juga senantiasa memberikan doa, dukungan, dan semangat kepada penulis.
2. Bapak Dr. Muryanto Amin, S.Sos., M.Si selaku Rektor Universitas Sumatera Utara.
3. Ibu Dr. Maya Silvi Lydia, M.Sc selaku Dekan Fasilkom-TI USU.
4. Bapak Romi Fadillah Rahmat, B.Comp.Sc., M.Sc selaku Ketua Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
5. Ibu Sarah Purnamawati, ST., M.Sc., selaku Sekretaris Program Studi S1 Teknologi Informasi Universitas Sumatera Utara dan Dosen Pembimbing I dan juga Ibu Dr. Erna Budhiarti Nababan, M.IT. selaku Dosen Pembimbing II yang telah meluangkan waktu untuk membimbing, memberikan masukan, kritik, dan saran kepada penulis.
6. Bapak Dani Gunawan, ST., MT selaku Dosen Pembanding I, dan Bapak Indra Aulia, S.TI, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran untuk membantu penyempurnaan skripsi.
7. Seluruh Dosen Program Studi S1 Teknologi Informasi yang telah memberikan
ilmu dan mengajari penulis selama perkuliahan.
v
8. Staff dan pegawai akademik Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara yang telah membantu penulis memenuhi kelengkapan administrasi dalam menyelesaikan studi.
9. Sahabat dan teman-teman seperjuangan penulis semasa kuliah Lenny Tobing, Grace Sella Ginting, Sophia Nola, Jessie Gabriella Silalahi, dan Fani Theresa yang telah banyak membantu dan sama-sama berjuang juga saling memberikan dukungan, doa, dan semangat di masa perkuliahan sampai selesai penyusunan skripsi ini.
10. Sahabat penulis yang menemani mulai dari masa SMA, Sisilia Desy Ananda Samosir, Mawar Agnes Simanjuntak, S.AB., Popy Naomi Agustina Purba, Saras Maulinita Nainggolan, Teguh Dwijaya Putra Butar-butar, dan Martin Afrizal Harianja, yang telah memberikan dukungan dan semangat kepada penulis hingga penyusunan skripsi selesai.
11. Abangku, Aldo Stepanus Simarmata yang telah banyak sekali membantu dan memberikan motivasi kepada penulis juga memberikan doa, dukungan serta semangat dari semasa kuliah hingga selesai penyusunan skripsi.
12. Kakak dan abang penulis selama masa perkuliahan, Karina Br Tanggang, Grace Siregar, Sahat Gebima Sihotang, Elwin Duha, dan Gebriel Juliendi Sitorus, yang telah memberikan nasehat, motivasi, dan semangat kepada penulis.
13. Teman-teman angkatan 2017 Teknologi Informasi USU yang telah bersama- sama berjuang bersama penulis dari semasa perkuliahan hingga selesai penyusunan skripsi.
14. Kepada senior, junior, dan teman-teman yang lain yang telah memberikan semangat semasa kuliah hingga selesai penyusunan skripsi.
15. Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat penulis tuliskan satu persatu yang telah membantu dalam penyelesaian skripsi ini.
Medan, 20 Juni 2021
Penulis
ABSTRAK
Di dunia media sosial yang sangat terhubung saat ini, misogini ataupun ungkapan kebencian terhadap perempuan dapat terjadi kapanpun dan di manapun, bahkan dapat dinyatakan di ruang siber atau online, yaitu dalam bentuk komentar, posting, atau tweet pada sosial media. Misogini lazim di semua platform media sosial khususnya pada platform Youtube dan hal ini menjadi isu yang semakin relevan dalam beberapa tahun terakhir dan semakin mengkhawatirkan. Ungkapan ataupun pernyataan tersebut memiliki konsekuensi yang serius bagi kehidupan perempuan dan dapat menimbulkan keresahan dan ketidaknyamanan terhadap perempuan. Namun, masih sulit untuk mengidentifikasi pernyataan misogini tersebut karena jutaan kontribusi yang terus meningkat oleh pengguna di platform media sosial setiap hari, sehingga membutuhkan ketelitian dan waktu yang lama untuk mengidentifikasi pernyataan misogini secara manual. Untuk itu dibutuhkan pendekatan untuk mengatasi permasalahan tersebut dengan membangun sistem untuk mengidentifikasi pernyataan misogini. Penelitian ini bertujuan untuk mengidentifikasi pernyataan misogini berbahasa indonesia berdasarkan komentar Youtube menggunakan Glove Embedding dan Random Forest Classifier.
Penelitian ini menggunakan 600 data yang merupakan komentar-komentar pada akun youtuber perempuan yang ada di Indonesia. Tahapan preproses yang dilakukan pada penelitian ini yaitu penghapusan emoji, pengubahan semua kata menjadi huruf kecil, penghapusan simbol dan tanda baca, normalisasi, penghapusan stopword, serta tokenisasi. Penelitian ini menggunakan word embedding yaitu Glove Embedding untuk mengubah seluruh kata yang ada dalam data menjadi vektor dan akan diidentifikasi menggunakan metode Random Forest Classifier. Metode evaluasi pada penelitian ini menggunakan confussion matrix dan menghasilkan akurasi sebesar 92,5%. Berdasarkan hasil evaluasi yang didapat, maka dapat diambil kesimpulan bahwa algoritma yang digunakan dalam penelitian ini dapat mengidentifikasi pernyataan misogini dengan performa yang baik.
Kata Kunci : identifikasi misogini, glove embedding, random forest classifier,
confussion matrix
vii
IDENTIFICATION OF INDONESIAN MISOGYNY STATEMENT BASED ON YOUTUBEβS COMMENT USING
GLOVE EMBEDDING AND RANDOM FOREST CLASSIFIER
ABSTRACT
In today's highly connected social media world, misogyny or expressions of hatred against women can occur anytime and anywhere, even in cyberspace or online, namely in the form of comments, posts, or tweets on social media. Misogyny is prevalent on all platforms social media especially on the Youtube platform and this has become an increasingly relevant issue in recent years and becoming increasingly worrying. These expressions or statements have serious consequences for women's lives and can cause anxiety and discomfort to women. However, it is still difficult to identify such misogyny statements because of the millions of contributions that continue to increase by users on platforms social media every day, so it takes a lot of precision and time to identify misogyny statements manually. For this reason, an approach is needed to overcome these problems by building a system to identify misogyny statements. This study aims to identify misogyny statements in Indonesian based on Youtubeβs comments using Glove Embedding and Random Forest Classifier. This study uses 600 data which are comments on female youtuber account in Indonesia. The preprocessing stages carried out in this study were emoji deletion, changing all words to lowercase, deletion of symbols and punctuation, normalization, deletion of stopwords, and tokenization. This study uses word embedding, namely Glove Embedding to convert all the words in the data into vectors and will be identified using the method Random Forest Classifier. The evaluation method in this study uses a confussion matrix and produces an accuracy of 92.5%. Based on the evaluation, it can be concluded that the algorithm used in this study can identify misogyny statements with good performance.
Keywords : misogyny identification, glove embedding, random forest classifier,
confussion matrix
DAFTAR ISI
Hal.
PERSETUJUAN ii
PERNYATAAN iii
UCAPAN TERIMA KASIH iv
ABSTRAK vi
ABSTRACT vii
DAFTAR ISI viii
DAFTAR TABEL x
DAFTAR GAMBAR xi
BAB 1 PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Rumusan Masalah 3
1.3. Tujuan Penelitian 3
1.4. Batasan Masalah 3
1.5. Manfaat Penelitian 3
1.6. Metodologi Penelitian 4
1.7. Sistematika Penulisan 5
BAB 2 LANDASAN TEORI 6
2.1. Pernyataan Misogini 6
2.2. Youtube API 6
2.3. Text Preprocessing 7
2.4. Word Embedding 7
2.5. Random Forest Classifier 8
2.6. Classification and Regression Tree (CART) 11
2.7. Penelitian Terdahulu 12
2.8. Perbedaan Penelitian 15
ix
BAB 3 ANALISIS DAN PERANCANGAN SISTEM 16
3.1. Arsitektur Umum 16
3.2. Data yang Digunakan 17
3.3. Preprocessing 18
3.3.1. Cleaning 19
3.3.2. Case Folding 19
3.3.3. Punctuation Removal 20
3.3.4. Normalization 21
3.3.5. Stopword Removal 22
3.3.6. Stemming 23
3.3.7. Tokenization 24
3.4. Word Embedding 25
3.5. Random Forest Classifier 27
3.6. Metode Evaluasi 29
3.7. Perancangan Sistem 30
3.7.1. Rancangan Tampilan Beranda 30
3.7.2. Rancangan Tampilan Training 31
3.7.3. Rancangan Tampilan Testing 32
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 33
4.1. Implementasi Sistem 33
4.1.1. Spesifikasi Perangkat Keras dan Perangkat Lunak 33 4.1.2. Implementasi Perancangan Tampilan Antarmuka 33
4.2. Implementasi Model 37
4.2.1. Menentukan Nilai Vektor Kata dengan Glove Embedding 37 4.2.2. Implementasi Model Random Forest Classifier 39
4.3. Hasil Pengujian Sistem 41
4.4. Evaluasi Model 43
BAB 5 KESIMPULAN DAN SARAN 46
5.1. Kesimpulan 46
5.2. Saran 46
DAFTAR PUSTAKA 47
DAFTAR TABEL
Hal
Tabel 2.1. Penelitian Terdahulu 13
Tabel 3.1. Dataset Komentar Youtube 17
Tabel 3.2. Pembagian Dataset 18
Tabel 3.3. Penerapan proses cleaning 19
Tabel 3.4. Penerapan proses case folding 20
Tabel 3.5. Penerapan proses punctuation removal 20
Tabel 3.6. Penerapan proses normalization 22
Tabel 3.7. Penerapan proses stopword removal 23
Tabel 3.8. Penerapan proses stemming 24
Tabel 3.9. Penerapan proses tokenization 24
Tabel 3.10. Penerapan confussion matrix 29
Tabel 4.1. Performansi Hyperparameters Tuning 40
Tabel 4.2. Hasil Pengujian Sistem 41
Tabel 4.3 Keterangan Pernyataan Non Misogini Confussion Matrix 44 Tabel 4.4. Keterangan Pernyataan Misogini Confussion Matrix 44
Tabel 4.5. Hasil Evaluasi 45
xi
DAFTAR GAMBAR
Hal.
Gambar 2.1. Contoh Komentar Misogini 6
Gambar 2.2. Dataset 9
Gambar 2.3. Dataset acak untuk membangun tree ke-1 9
Gambar 2.4. Dataset acak untuk membangun tree ke-2 9
Gambar 2.5. Dataset acak untuk membangun tree ke- 3 9
Gambar 2.6. Struktur Algoritma Random Forest Classifier 10 Gambar 2.7. Cara Kerja Algoritma Random Forest Classifier 11
Gambar 3.1. Arsitektur Umum 16
Gambar 3.2. Vektor dari kata βjahatβ 26
Gambar 3.3. Contoh Data Input 27
Gambar 3.4. Arsitektur Random Forest Classifier 28
Gambar 3.5. Tampilan Beranda 30
Gambar 3.6. Tampilan Training 31
Gambar 3.7. Tampilan Testing 32
Gambar 4.1. Tampilan Beranda (Halaman Utama) 34
Gambar 4.2. Tampilan training sebelum proses training 34 Gambar 4.3. Tampilan training setelah proses training 35 Gambar 4.4. Tampilan testing sebelum proses testing 35 Gambar 4.5. Tampilan testing setelah proses testing 36
Gambar 4.6. Hasil Evaluasi 36
Gambar 4.7. Tampilan footer 37
Gambar 4.8. Vektor dari kata βperempuanβ 38
Gambar 4.9. Kamus kata dengan nilai rata-rata vektor 39
Gambar 4.10. Evaluasi Confussion Matrix 43
BAB 1 PENDAHULUAN
1.1. Latar Belakang
Media sosial telah menjadi sarana komunikasi yang dibutuhkan dan berpengaruh karena mudah diakses dan memberikan banyak kebebasan kepada pengguna. Dalam beberapa tahun terakhir, bahasa kebencian dan khususnya fenomena kebencian terhadap wanita meningkat secara eksponensial di platform media sosial seperti Facebook, Twitter, Youtube, dan platform media sosial lainnya (Samghabadi et al, 2020). Hal ini tentunya menjadi masalah sosial yang relevan dan perlu dicermati. Misogini, yang merupakan salah satu bentuk diskriminasi terhadap wanita, dapat didefinisikan sebagai ekspresi atau prasangka kebencian terhadap perempuan, baik dari laki-laki maupun sesama perempuan, dan baik secara verbal ataupun tidak, dapat diwujudkan secara linguistik dalam berbagai cara, termasuk pengucilan sosial, diskriminasi jenis kelamin, permusuhan, androsentrisme, patriarki, hak istimewa laki-laki, meremehkan perempuan, fitnah perempuan, pencabutan hak perempuan, kekerasan dan pelecehan seksual yang dilakukan terhadap perempuan (Favara, 2018).
Berdasarkan Catatan Tahunan (CATAHU) yang dilaporkan oleh Komisi Nasional Anti Kekerasan Terhadap Perempuan (KOMNAS PEREMPUAN) pada tahun 2021, angka kasus kekerasan dan pelecehan yang dilakukan terhadap perempuan secara siber (ruang online/daring) mengalami peningkatan yaitu pada tahun 2019 ada 241 kasus meningkat menjadi 940 kasus di tahun 2020. Lembaga Layanan melaporkan hal yang sama yaitu terdapat 126 kasus di tahun 2019, naik menjadi 510 kasus pada tahun 2020.
Meningkatnya angka kasus kekerasan dan pelecehan yang dilakukan terhadap perempuan secara online/siber ini sepatutnya menjadi hal serius yang harus diperhatikan semua pihak.
Sangat penting untuk mengidentifikasi pernyataan misogini di jejaring sosial untuk melindungi pengguna online dari serangan yang bersifat misogini tersebut, tetapi proses ini tentunya memakan waktu yang cukup lama untuk melakukannya secara manual.
Karenanya, diperlukan pendekatan yang dapat mengotomatiskan proses identifikasi
tersebut.
2
Sebelumnya banyak penelitian yang telah dilakukan, diantaranya Misogyny Detection and Classification in English Tweets: The Experience of the ITT Team (Cardiff et al, 2018). Penelitian ini melakukan deteksi dan klasifikasi pernyataan misogini pada english tweets dari Twitter. Deteksi tersebut dibagi menjadi dua bagian yaitu identifikasi misogini (memisahkan tweets misogini dari non-misogini) dan klasifikasi target (mendefinisikan tweet misogini yang menyinggung orang tertentu (aktif) dan tweet yang menghina sekelompok orang (pasif)). Pada penelitian ini digunakan Term FrequencyβInverse Document Frequency (TF-IDF) sebagai metode untuk pembobotan kata, selanjutnya pada setiap bagian akan diklasifikasi menggunakan Logistic Regression (LR), Support Vector Machines (SVM), Naive Bayes and Logistic Regression (NB+LR), dan perpaduan dari keseluruhan metode tersebut. Hasil penelitian tersebut menyatakan perpaduan dari keseluruhan metode tersebut menghasilkan akurasi yang tertinggi yaitu sebesar 78 % pada identifikasi misogini dan 76 % pada klasifikasi target. Penelitian lainnya yaitu berjudul Online Hate Speech against Women: Automatic Identification of Misogyny and Sexism on Twitter (Frenda et al, 2019). Penelitian ini mengidentifikasi dua bagian yaitu pernyatan misogini dan pernyataan seksisme pada data english tweets yang diperoleh dari Twitter. Identifikasi pada penelitian ini menggunakan metode ekstraksi fitur Bag and Sequences of Words, Characters n-grams, dan Lexicons kemudian dilanjutkan dengan TF-IDF sebagai pembobotan katanya, lalu diklasifikasi menggunakan Support Vector Machines (SVM) classifier dengan akurasi sebesar 89%. Penelitian lainnya yaitu Aggression and Misogyny Detection using BERT : A Multi-task Approach (Samghabadi et al, 2020). Pada penelitan ini mendeteksi dua bagian, yaitu deteksi pernyataan penyerangan dan deteksi pernyataan misogini di dalam tiga bahasa yaitu bahasa inggris, bahasa hindi, dan bahasa bengali. Penelitian ini menggunakan metode Bidirectional Encoder Representations Transformers (BERT) dengan akurasi 85%.
Pada penelitian ini, penulis menggunakan algoritma Random Forest Classifier
untuk mengidentifikasi pernyataan misogini. Algoritma ini merupakan pengembangan
dari algoritma Classification and Regression Tree (CART) dimana sering digunakan
dan mampu menghasilkan tingkat akurasi yang tinggi dalam bidang text classification
terbukti pada penelitian A Semantics Aware Random Forest for Text Classification
(Islam et al, 2019) dengan akurasi sebesar 83%.
Berdasarkan latar belakang di atas, maka penulis mengajukan penelitian yang berjudul βIDENTIFIKASI PERNYATAAN MISOGINI BERBAHASA INDONESIA
BERDASARKAN KOMENTAR YOUTUBE MENGGUNAKAN GLOVE
EMBEDDING DAN RANDOM FOREST CLASSIFIERβ.
1.2. Rumusan Masalah
Maraknya pernyataan ataupun komentar yang bersifat misogini pada sosial media menimbulkan ketidaknyamanan dan keresahan yang besar bagi perempuan khususnya pada sosial media Youtube. Banyak dampak yang dapat diakibatkan oleh pernyataan misogini tersebut, yaitu selain mengakibatkan rasa tidak nyaman, juga dapat menyebabkan perasaan tersinggung, merasa tidak adil, merasa direndahkan martabatnya, dan mungkin dapat menyebabkan masalah kesehatan dan keselamatan.
Mengidentifikasi pernyataan misogini membutuhkan waktu yang lama dan ketelitian apabila melakukannya dengan cara manual.
1.3. Tujuan Penelitian
Tujuan dari penelitian ini adalah mengidentifikasi pernyataan misogini berbahasa Indonesia berdasarkan komentar Youtube menggunakan Glove Embedding dan Random Forest Classifier.
1.4. Batasan Masalah
Batasan masalah dalam penelitian ini adalah sebagai berikut:
1. Data yang akan dipakai berupa teks di dalam file dokumen berekstensi .csv 2. Identifikasi pernyataan dilakukan terhadap kata, tidak terhadap angka, gambar
ataupun emoji.
3. Data merupakan komentar hasil crawling dari platform Youtube.
1.5. Manfaat Penelitian Manfaat penelitian antara lain :
1. Mempelajari kinerja GloVe Embedding dan algoritma Random Forest Classifier
pada identifikasi pernyataan misogini berbahasa Indonesia berdasarkan
komentar Youtube.
4
2. Sebagai tindakan preventif untuk membuat platform Youtube terbebas dari komentar misogini.
1.6. Metode Penelitian
Tahapan - tahapan yang akan dilakukan dalam penelitian ini adalah sebagai berikut:
1.6.1. Studi Literatur
Studi literatur merupakan sebuah tahap untuk mengumpulkan beberapa referensi yaitu berupa jurnal, buku, artikel, dan sumber bacaan lainnya mengenai text processing, word embedding, metode Random Forest Classifier, dan pernyataan yang bersifat misogini.
1.6.2. Analisis Permasalahan
Setelah tahap studi literatur, selanjutnya adalah tahap analisis permasalahan.
Analisis permasalahan dilakukan dengan tujuan untuk memahami tentang konsep dari metode yang digunakan yaitu metode Random Forest Classifier beserta faktor-faktor yang dapat digunakan untuk menyelesaikan permasalahan pada penelitian ini.
1.6.3. Perancangan
Setelah melalui tahap analisis permasalahan, selanjutnya yaitu tahap perancangan. Pada tahap ini, perancangan akan dilakukan berdasarkan studi literatur dan analisis permasalahan yang telah dilakukan sebelumnya. Pada tahap perancangan ini akan dilakukan perancangan arsitektur yang akan dipakai di dalam sistem, dataset yang akan dipakai di dalam sistem, dan desain antarmuka sistem.
1.6.4. Implementasi
Setelah tahap perancangan, maka selanjutnya akan dilakukan tahap implementasi. Pada tahap ini, dilakukan implementasi yaitu tahap untuk menerapkan hasil rancangan yang sebelumnya telah dilakukan untuk membangun sistem.
1.6.5. Pengujian
Setelah melalui tahap implementasi, maka akan dilakukan pengujian performa
pada hasil implementasi tersebut dari metode yang digunakan yaitu Random
Forest Classifier.
1.6.6. Penyusunan Laporan
Setelah tahap pengujian, maka akan dilakukan penyusunan laporan. Sesuai dengan namanya, maka pada tahap ini akan dilakukan penyusunan laporan dari keseluruhan penelitian yang telah dilakukan sebelumnya.
1.7. Sistematika Penulisan
Sistematika penulisan di dalam penelitian ini terdiri dari lima bagian yang akan diuraikan sebagai berikut:
Bab 1: Pendahuluan
Pada bab ini akan diuraikan pembukaan masalah yaitu yang berisi latar belakang, rumusan masalah, tujuan penelitan, batasan masalah, manfaat penelitian, metodologi penelitan dan sistematika penulisan.
Bab 2: Landasan Teori
Pada bab ini akan diuraikan dasar - dasar teori yang dibutuhkan dan menjadi penunjang untuk memahami permasalahan yang ada pada penelitian ini. Pada bab ini juga akan diuraikan tentang metode yang digunakan seperti cara kerja Random Forest Classifier, apa saja yang termasuk pernyataan misogini, dan yang lainnya. Selain itu pada bab ini juga diuraikan penelitian-penelitian yang telah dilakukan sebelumnya yang dijadikan sebagai rujukan ataupun referensi untuk melaksanakan penelitian ini.
Bab 3: Analisis dan Perancangan Sistem
Pada bab ini akan diuraikan tentang analisis dan perancangan sistem menggunakan metode Random Forest Classifier untuk mengidentifikasi pernyataan misogini berbahasa Indonesia berdasarkan komentar Youtube. Pada bab ini juga akan diuraikan urutan untuk menyelesaikan masalah yang ada dalam penelitian ini. Bab ini juga membahas tentang arsitektur umum dari sistem yang dibangun.
Bab 4: Implementasi dan Pengujian Sistem
Pada bab ini akan diuraikan tentang penerapan ataupun implementasi dari rancangan yang telah dibuat sebelumnya. Pada bab ini akan diuraikan tentang bagaimana hasil akhir dari sistem yang telah dirancang pada bab sebelumnya, dan akan dilakukan evaluasi pada sistem yang telah dibuat.
Bab 5: Kesimpulan dan Saran
Bab ini merupakan bab terakhir yang berisi kesimpulan dari keseluruhan pengerjaan
penelitian yang telah diuraikan pada bab-bab sebelumnya serta saran yang diajukan oleh
penulis agar penelitian yang dilakukan selanjutnya dapat dikembangkan.
BAB 2
LANDASAN TEORI
2.1. Pernyataan Misogini
Misogini adalah salah satu bentuk diskriminasi terhadap wanita. Pernyataan misogini adalah pernyataan yang diungkapkan sebagai ekspresi atau prasangka kebencian terhadap perempuan, baik disampaikan dari laki-laki maupun sesama perempuan, dan baik secara verbal ataupun tidak, dapat diwujudkan secara linguistik dalam berbagai cara. Adapun pernyataan misogini adalah pernyataan yang diungkapkan yang termasuk pengucilan sosial, diskriminasi jenis kelamin, permusuhan, androsentrisme, patriarki, hak istimewa laki-laki, meremehkan perempuan, fitnah perempuan, pencabutan hak perempuan, kekerasan dan pelecehan seksual yang dilakukan terhadap perempuan (Pamungkas et al, 2020). Contoh komentar yang bersifat misogini pada platform Youtube dapat dilihat pada Gambar 2.1.
Gambar 2.1. Contoh Komentar Misogini
2.2. Youtube API
Youtube adalah perusahan besar yang memberikan layanan kepada masyarakat berupa video streaming. Layanan yang diberikan berupa video musik, tutorial, olahraga, movie, dan yang lainnya. Dengan mengakses platform youtube, pengguna sudah dapat menonton dan mengakses video yang mereka inginkan dimanapun dan kapanpun tanpa batasan waktu. Youtube juga memiliki Application Programming Interface (API), sehingga video yang ada pada platform tersebut dapat diintegrasikan ke site yang lain.
Youtube API memungkinkan pengguna untuk menggunakan fungsionalitas
yang umum yang terdapat pada Youtube. YouTube API merupakan fungsi-fungsi yang
dikumpulkan dan disediakan oleh developer Youtube sehingga konten-konten video,
komentar, channels, captions, dan fungsionalitas lainnya memungkinkan untuk dapat
diintegrasikan atau di export ke aplikasi perangkat lunak, situs web, ataupun perangkat lainnya (Aisyah et al, 2015).
2.3. Text Preprocessing
Text Preprocessing merupakan proses untuk menyeleksi data agar data yang akan dipakai dan diolah dalam penelitian menjadi lebih terstruktur dan dapat memudahkan penelitian. Tahap ini dilakukan guna untuk membersihkan data yang awalnya merupakan hasil crawling dan belum diolah sehingga diubah menjadi data yang lebih teratur dan lebih dimengerti oleh mesin dengan tujuan untuk mendapatkan performa yang lebih baik dalam proses identifikasi. Text preprocessing perlu dilakukan dengan tujuan untuk mengurangi karakter-karakter yang tidak memiliki makna dimana karakter-karakter tersebut dapat mengurangi kinerja dari algoritma yang digunakan.
Adapun proses yang terjadi dalam text preprocessing antara lain cleaning, case folding, punctuation removal, normalization, stopword removal, stemming dan tokenization.
2.4. Word Embedding
Word embedding merupakan sebuah metode untuk mengkonversi serangkaian kata yang berupa karakter alphanumeric ke dalam bentuk vektor atau array yang berisi angka atau bilangan. Representasi kata dalam bentuk angka merupakan fungsi dari word embedding. Word embedding mengubah setiap kata dalam data menjadi dense vector, di mana vektor tersebut merupakah hasil representasi kata yang diproyeksi di dalam ruang vektor. Teks ataupun kata-kata yang berada di sekitarnya akan mempelajari posisi dari suatu kata. Selain itu, word embedding ini juga dapat mengartikan makna yang bersifat sintatik maupun semantik dari suatu kata.
Salah satu jenis word embedding adalah GloVe (Global Vector). Pada Glove
embedding terjadi penggabungan informasi co-occurrence kata agar hubungan
semantik yang terjadi diantara setiap kata dalam data dapat diperoleh. GloVe embedding
menggunakan metode yang bersifat global yaitu matrix factorization. Matriks ini adalah
matriks yang mewakili setiap kata yang ada dalam data. GloVe embedding mempelajari
hubungan setiap kata yang ada dalam data dengan cara menghitung seberapa sering kata
8
tersebut muncul bersama dengan kata-kata yang lain dalam sebuah dataset yang diberikan (Nurdin et al, 2020).
2.5. Random Forest Classifier
Random Forest Classifier merupakan algoritma pembelajaran mesin yang bersifat supervised learning berdasarkan ensemble learning. Ensemble learning adalah suatu metode yang menggabungkan beberapa metode yang sama atau berbeda untuk menghasilkan model yang baik. Random Forest Classifier menggabungkan beberapa metode yang sama yaitu decision tree. Gabungan beberapa decision tree membuat algoritma random forest classifier menjadi lebih baik. Algoritma Random Forest Classifier menciptakan sebuah hutan (forest) dengan sejumlah pohon yang ada di dalamnya (tree). Hutan akan semakin bagus apabila semakin tinggi jumlah pohon yang ada di dalamnya (Polamuri, 2017).
Random Forest Classifier dirancang untuk mengatasi kelemahan decision tree.
Algoritma decision tree adalah metode yang mudah untuk dimengerti dan diterapkan, tetapi dalam kasusnya, sering sekali satu decision tree tidak cukup untuk menghasilkan model yang efektif. Satu decision tree rentan terhadap noise, tetapi kumpulan dari beberapa decision tree mengurangi efek noise sehingga memberikan hasil yang lebih akurat (Patel, 2017). Semakin banyak decision tree yang dibuat maka akan semakin baik pula model yang dihasilkan.
Random Forest Classifier menggunakan gini impurity untuk melakukan perhitungan dalam membangun tree (Haristu, 2019). Random Forest Classifier membuat decision tree secara acak berdasarkan training set. Hasil dari masing β masing decision tree akan dikumpulkan dan ditentukan hasil akhirnya berdasarkan voting.
Gambar 2.2 adalah sebuah contoh dataset yang akan diklasifikasi menggunakan
Random Forest Classifier. Dataset tersebut kemudian akan dibagi secara random (acak)
menjadi tiga bagian data yang akan ditunjukkan pada Gambar 2.3, 2.4, dan 2.5. Tree
akan dibangun dari tiga bagian data yang telah dibagi tersebut. Dari setiap tree akan
dihasilkan suatu keputusan untuk menghasilkan keputusan terbaik berdasarkan majority
voting.
Gambar 2.2. Dataset (Haristu, 2019)
Gambar 2.3. Dataset acak untuk membangun tree ke- 1 (Haristu, 2019)
Gambar 2.4. Dataset acak untuk membangun tree ke- 2 (Haristu, 2019)
Gambar 2.5. Dataset acak untuk membangun tree ke- 3 (Haristu, 2019) f01 f02 f03 f04 f05 t0
f11 f12 f13 f14 f15 t1 f21 f22 f23 f24 f25 t2 : : : : : : : : : : : : fm1 fm2 fm3 fm4 fm5 tm
f11 f12 f13 f14 f15 t1 f61 f62 f63 f64 f65 t6 f81 f82 f83 f84 f85 t8 : : : : : : : : : : : : fm1 fm2 fm3 fm4 fm5 tm
f21 f22 f23 f24 f25 t2 f41 f42 f43 f44 f45 t4 f71 f72 f73 f74 f75 t7 : : : : : : : : : : : : fm1 fm2 fm3 fm4 fm5 tm
f31 f32 f33 f34 f35 t3 f51 f52 f53 f54 f55 t5 f81 f82 f83 f84 f85 t8 : : : : : : : : : : : : fm1 fm2 fm3 fm4 fm5 tm
10
Gambaran random forest classifier terdapat pada Gambar 2.6.
Gambar 2.6. Struktur algoritma Random Forest Classifier (Sharma, 2020)
Cara kerja algoritma Random Forest Classifier adalah sebagai berikut:
1. Mengambil sebuah sampel data Di dimana data diambil secara acak (random) dari dataset D.
2. Menggunakan dataset Di untuk membangun pohon keputusan atau tree ke i (i = 1,2,...k). Dalam membangun tree, digunakan metodologi Classification and Regression Tree (CART) yaitu gini impurity untuk menentukan setiap node pada tree.
3. Mengulangi langkah 1 dan 2 sebanyak k.
4. Menggunakan data testing untuk memprediksi output dari hasil klasifikasi tersebut, dan menghasilkan sebuah keputusan.
5. Menghitung suara hasil voting untuk setiap target yang diprediksi pada setiap tree. Setiap pohon keputusan bisa saja menghasilkan hasil prediksi yang sama ataupun berbeda.
6. Target kelas yang paling banyak terprediksi akan menjadi hasil akhir dari
algoritma Random Forest Classifier.
Struktur dan cara kerja Random Forest Classifier dapat dilihat pada Gambar 2.7.
Gambar 2.7. Cara kerja algoritma Random Forest Classifier (Navlani, 2018)
2.6. Classification and Regression Tree (CART)
Untuk membangun suatu pohon keputusan dalam algoritma Random Forest Classifier digunakan metodologi Classification and Regression Tree (CART) (Han, 2012).
Dalama metodologi ini digunakan gini impurity untuk menjadi tolak ukur dalam memilih atribut yang akan dipakai pada setiap node dalam tree. Misalkan N adalah node yang digunakan sebagai pemisahan setiap kelas dengan menggunakan atribut dari dataset D. Atribut yang merupakan hasil gini impurity dan yang memperoleh nilai tertinggi akan dipakai selanjutnya sebagai pemisahan node N. Untuk mendapatkan nilai gini impurity dapat dihitung menggunakan persamaan 2.1.
πΊ = β
πΆπ=1π (π) β (1 β π (π)) ...(2.1) Keterangan:
C = jumlah kelas
p (i) = probabilitas terambilnya elemen kelas ke i secara acak
12
2.7.Penelitian Terdahulu
Beberapa penelitian telah dilakukan sebelumnya mengenai identifikasi pernyataan yang bersifat misogini pada suatu platform sosial media dan implementasi tentang metode Random Forest Classifier. Cardiff et al. (2018) dalam penelitiannya yang berjudul Misogyny Detection and Classification in English Tweets: The Experience of the ITT Team. Penelitian ini melakukan deteksi dan klasifikasi pernyataan misogini pada english tweets dari Twitter. Deteksi tersebut dibagi menjadi dua bagian yaitu identifikasi misogini (memisahkan tweets misogini dari non-misogini) dan klasifikasi target (mendefinisikan tweet misogini yang menyinggung orang tertentu (aktif) dan tweet yang menghina sekelompok orang (pasif)). Pada penelitian ini digunakan Term FrequencyβInverse Document Frequency (TF-IDF) sebagai metode untuk pembobotan katanya, selanjutnya pada setiap bagian akan diklasifikasi menggunakan Logistic Regression (LR), Support Vector Machines (SVM), Naive Bayes dan Logistic Regression (NB+LR), dan perpaduan dari seluruh metode tersebut. Penelitian tersebut menyatakan perpaduan metode menghasilkan akurasi tertinggi yaitu 78% dan 76%.
Penelitian lainnya dilakukan oleh Frenda et al. (2019) yang berjudul Online Hate Speech against Women: Automatic Identification of Misogyny and Sexism on Twitter. Penelitian ini mengidentifikasi dua bagian yaitu pernyatan misogini dan pernyataan seksisme pada data yang berupa english tweets yang diperoleh dari Twitter.
Identifikasi pada penelitian ini menggunakan metode Bag and Sequences of Words, Characters n-grams, dan Lexicons kemudian dilanjutkan dengan TF-IDF sebagai pembobotan katanya, lalu diklasifikasi menggunakan Support Vector Machines (SVM) classifier dan menghasilkan akurasi sebesar 89%.
Selanjutnya, penelitian oleh Samghabadi et al. (2020) yang berjudul Aggression and Misogyny Detection using BERT : A Multi-task Approach. Pada penelitan ini, deteksi dibagi menjadi dua bagian, yaitu deteksi pernyataan penyerangan dan deteksi pernyataan misogini di dalam tiga bahasa yaitu bahasa inggris, bahasa hindi, dan bahasa bengali. Penelitian ini menggunakan metode Bidirectional Encoder Representations Transformers (BERT) dan menghasilkan akurasi sebesar 85%.
Penelitian lain dilakukan oleh Eke et al. (2020) yang berjudul The Significance
of Global Vectors Representation in Sarcasm Analysis. Penelitian ini bertujuan untuk
melakukan deteksi pernyataan yang bersifat sarkasme. Adapun data yang dipakai pada
penelitian ini adalah english tweets yang diambil dari Twitter menggunakan Twitter API. Data diambil dengan menggunakan hashtag #sarcasm dan #sarcastic. Penelitian ini menggunakan Global Vector (GloVE) sebagai word embedding, dan menggunakan tiga metode, yaitu Support Vector Machines (SVM), Random Forest (RF), dan Decision Tree (DT). Didapatkan bahwa metode Random Forest dengan GloVe Embedding sebagai word embeddingnya unggul dan menghasilkan akurasi sebesar 75%.
Penelitian lainnya dilakukan oleh Islam et al. (2019) yang berjudul A Semantics Aware Random Forest for Text Classification. Pada penelitian ini peneliti melakukan klasifikasi teks pada sentimen analisis. Sentimen analisis akan dibagi menjadi dua bagian, yaitu sentimen positif dan sentimen negatif. Di dalam penelitian ini peneliti menggunakan metode Random Forest untuk mengklasifikasi sentimen tersebut ke dalam sentimen positif dan negatif, dan menghasilkan akurasi sebesar 83%. Rincian singkat penelitian yang telah dilakukan sebelumnya dapat dilihat pada Tabel 2.1.
Tabel 2.1. Penelitian Terdahulu
No Peneliti Metode Judul Keterangan
1 Cardiff et al.
(2018)
TF-IDF, Logistic Regression, Support Vector Machines, Naive Bayes and Logistic Regression (NB+LR)
Misogyny Detection and Classification in English Tweets: The Experience of the ITT Team
Melakukan klasifikasi
pernyataan misogini
menjadi dua kelas
menggunakan TF-IDF
sebagai pembobotan
kata, dilanjutkan
dengan metode
Logistic Regression,
Support Vector
Machines, dan Naive
Bayes dan Logistic
Regression (NB+LR)
yang menghasilkan
akurasi tertinggi yaitu
78% dan 76%.
14
Tabel 2.1. Penelitian Terdahulu (lanjutan)
No Peneliti Metode Judul Keterangan
2 Frenda et al.
(2019)
Bag and
Sequences of Words,
Characters n-grams, Lexicons, TF-IDF, Support Vector Machines
Online Hate Speech against Women:
Automatic
Identification of Misogyny and Sexism on Twitter
Mengidentifikasi pernyataan misogini
dan seksisme
menggunakan Bag and Sequences of Words, n-grams, Lexicons, dan TF- IDF, dilanjutkan metode SVM dan menghasilkan akurasi 89%.
3 Samghabadi et al.
(2020)
Bidirectional Encoder
Representations Transformers
Aggression and Misogyny Detection using BERT : A Multi- task Approach
Mendeteksi
pernyataan misogini dan penyerangan menggunakan metode Bidirectional Encoder Representations Transformers dan menghasilkan akurasi sebesar 85%.
4 Eke et al.
(2020)
GloVe Embedding, Support Vector Machines, Random Forest, Decision Tree
The Significance of Global Vectors Representation in Sarcasm Analysis
Mendeteksi
pernyataan sarkasme menggunakan GloVe Embedding dan metode Support Vector Machines, Random Forest, Decision Tree.
Random Forest
menghasilkan akurasi
tertinggi yaitu 75%.
Tabel 2.1. Penelitian Terdahulu (lanjutan)
No Peneliti Metode Judul Keterangan
5 Islam et al.
(2019)
Random Forest
A Semantics Aware Random Forest for Text Classification
Melakukan klasifikasi pada analisis sentimen menjadi dua kelas menggunakan Random Forest dengan akurasi 83%.
2.8. Perbedaan Penelitian
Ada beberapa hal yang membedakan penelitian ini dengan semua penelitian terdahulu.
Yang pertama yaitu metode yang digunakan didalam penelitian. Belum ada penelitian
yang mengidentifikasi pernyataan misogini berbahasa indonesia berdasarkan komentar
Youtube menggunakan Glove embedding dan metode Random Forest Classifier. Selain
itu pada semua penelitian terdahulu melakukan deteksi, klasifikasi, ataupun identifikasi
pernyataan misogini pada bahasa inggris, belum ada penelitian yang melakukannya
dalam bahasa indonesia. Hal lain yang membedakannya adalah dalam penelitian ini
penulis menggunakan Glove Embedding sebagai word embedding, dimana pada
penelitian terdahulu rata-rata menggunakan TF-IDF, Bag and Sequences of Words,
Characters n-grams, dan Lexicons sebagai pembobotan katanya.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1. Arsitektur Umum
Pada penelitian ini akan dilakukan beberapa tahapan yaitu: mengumpulkan data, data yang dikumpulkan akan disimpan dalam format .csv (Comma-Separated Values) dan akan digunakan sebagai input dalam perancangan sistem. Data yang telah dikumpulkan tersebut selanjutnya akan melalui tahap preprocessing yang terdiri dari cleaning, case folding, punctuation removal, normalization, stopword removal, stemming dan tokenization. Kemudian data akan melalui proses word embedding untuk mengubah semua kata yang ada dalam data menjadi vector. Selanjutnya data akan ditraining, dan menghasilkan suatu model yang akan dipakai untuk proses testing. Untuk lebih mudah memahaminya, proses akan diuraikan pada arsitektur umum pada Gambar 3.1.
Gambar 3.1. Arsitektur Umum
3.2. Data yang Digunakan
Data yang digunakan dalam penelitian ini adalah file berformat .csv yang berisi komentar-komentar hasil crawling dari platform Youtube menggunakan Youtube API (Application Programming Interface). Komentar-komentar yang di crawling didapatkan dari beberapa akun Youtube channel youtuber-youtuber perempuan yang ada di Indonesia, sehingga data yang diperoleh dapat dipastikan berbahasa indonesia dan ditujukan untuk perempuan. Total keseluruhan data hasil crawling berjumlah 600 data.
Di dalam data terdapat komentar dan kelas yaitu untuk menentukan pernyataan tersebut misogini atau non-misogini, dimana untuk setiap pernyataan misogini akan diberi kelas 1 dan setiap pernyataan non-misogini akan diberi kelas 0. Dalam penentuan kelas tersebut peneliti (human rater) dibantu oleh seorang ahli bahasa bernama Reza Pahlevi Ginting, S.S., M.Pd. untuk melakukan labelling dan memvalidasi data yang ada berdasarkan acuan yang telah dituliskan pada landasan teori di bab sebelumnya. Data ini akan menjadi acuan untuk sistem agar dapat dilatih.
Tabel 3.1. menunjukkan data komentar hasil crawling dari platform Youtube menggunakan Youtube API.
Tabel 3.1. Dataset Komentar Youtube
No Comment Class
1 Kak coba sekali gak pakek bh πππ€ 1
2 ni perempuan bijak banget dan cantik banget yaππππ 0 3 Emangnya kenapa kak? Gak suka ya? Kalo gitu biar aku aja
yang nyolekin anu mu 1
4 Ka Tatum aku suka banget sama warna kuku kakak, buat salah
fokusβ€οΈβ€οΈ 0
. . .
. . .
.
.
.
591 duh montok banget dada nya kak, pengen colek dehhhππ 1
592 Good mama...suka sm mamanya...cantik dan awet mudaππ 0
18
Tabel 3.1. Dataset Komentar Youtube (lanjutan)
No Comment Class
593 Kakak ini orang indonesia apa luar negri 0
594 Kegedean tete nyaaa KIMII onichann aku ga sanggupπ 1 595 Mama kakak orang sunda?<br />Terus kakak agamanya apa? 0
596 Kak kimi coba sekalian pepek nya liatinοΈοΈ 1
597 Doakan saya gaes agar suatu hari nanti dapat ngisap tetek Kimi
Hime 1
598 Su Yan Lebih Cantik saking cantiknya Aku Sampe Bayangin
terus, pantatnya aduh ampun banget deh 1
599 Kimi hime aku punya tantangan nih buat kamu, bisa gak?? 0 600 Campuran Arab indo mah pasti cantik banget kaya bidadari :) 0
Dataset hasil crawling akan dibagi menjadi data training dan data testing. Dataset akan dibagi sebesar 80 persen untuk data yang akan menjadi data training dan 20 persen untuk data yang akan menjadi data testing. Pembagian jumlah dataset tersebut ditunjukkan pada Tabel 3.2.
Tabel 3.2. Pembagian Dataset
Data Training Data Testing
Misogini Non-Misogini Misogini Non-Misogini
240 240 60 60
3.3. Preprocessing
Pada tahap ini, data akan diproses dan akan dilakukan beberapa tahapan untuk
menghasilkan data yang baik sehingga mudah dipelajari oleh mesin dan dapat
menghasilkan akurasi yang baik pula. Adapun tahapan pre-processing yaitu cleaning,
case folding, punctuation removal, normalization, stopword removal, stemming, dan
tokenization.
3.3.1. Cleaning
Proses ini merupakan proses yang pertama dilakukan pada tahap pre-processing guna untuk membersihkan data agar meminimalisir kegagalan pada proses identifikasi di dalam penelitian ini. Pada proses ini, data yang mengalami duplikasi akan dihilangkan, attribute dan missing value yang ada pada data juga akan dihilangkan. Misalnya pada data komentar hasil crawling dari Youtube umumnya banyak terdapat emoji atau angka yang tidak diperlukan dan dapat mempengaruhi makna yang ada dalam data. Penerapan proses cleaning dapat dilihat pada pseudocode berikut ini dan hasilnya dapat dilihat pada Tabel 3.3.
function cleaning_preprocessing(parameter komentar):
komentar = re.sub(βnilai karakter yang dihilangkanβ)
komentar = re.sub(βangka dan spasi berlebihanβ,ββ, komentar)
return komentar
Tabel 3.3. Penerapan Proses Cleaning
Sebelum Proses Cleaning Setelah Proses Cleaning MUNAFIK bgt si hana !!! ππ padahal
sekota bogor sdh tauu aslinya dulu dia kaya apa π perempuan yang hanya tauu JUAL DIRI!!! Sampah....
MUNAFIK bgt si hana !!! padahal sekota bogor sdh tauu aslinya dulu dia kaya apa perempuan yang hanya tauu JUAL DIRI!!! Sampah....
3.3.2. Case Folding
Proses ini mempunyai tujuan untuk mengubah semua huruf pada kata yang ada dalam data menjadi huruf kecil. Proses ini bertujuan untuk membuat karakter menjadi lebih sederhana, sehingga karakter yang tidak diinginkan menjadi lebih mudah untuk dihapus karena huruf kecil dan huruf besar memiliki bentuk yang berbeda pada text processing.
Contoh penerapan case folding dapat dilihat pada pseudocode berikut dan hasilnya
terdapat pada Tabel 3.4.
20
function CaseFolding_preprocessing(parameter komentar):
komentar = komentar.lower()
return komentar
Tabel 3.4. Penerapan Proses Case Folding
Sebelum Proses Case Folding Setelah Proses Case Folding MUNAFIK bgt si hana !!! padahal sekota
bogor sdh tauu aslinya dulu dia kaya apa perempuan yang hanya tauu JUAL DIRI!!! Sampah....
munafik bgt si hana !!! padahal sekota bogor sdh tauu aslinya dulu dia kaya apa perempuan yang hanya tauu jual diri!!!
sampah....
3.3.3. Punctuation removal
Proses ini mempunyai tujuan untuk menghapus semua tanda baca ataupun simbol yang ada pada data dengan tujuan untuk membersihkan data yang akan diproses, membuat data menjadi karakter yang lebih sederhana sehingga karakter yang tidak diinginkan tidak akan ikut diproses. Contoh penerapan proses punctuation removal ini dapat dilihat pada pseudocode berikut dan hasilnya terdapat pada Tabel 3.5.
function PunctuationRemoval_preprocessing(parameter komentar):
komentar = re.sub(βnilai karakter yang dihilangkanβ) return komentar
Tabel 3.5. Penerapan Proses Punctuation Removal
Sebelum Proses Punctuation Removal Setelah Proses Punctuation Removal munafik bgt si hana !!! padahal sekota
bogor sdh tauu aslinya dulu dia kaya apa perempuan yang hanya tauu jual diri!!!
sampah....
munafik bgt si hana padahal sekota bogor
sdh tauu aslinya dulu dia kaya apa
perempuan yang hanya tauu jual diri
sampah
3.3.4. Normalization
Proses ini memiliki tujuan untuk menormalisasi setiap kata yang terdapat dalam data.
Setiap kata yang ada dalam data yang merupakan singkatan dan typo akan diperbaiki dan dinormalisasi menjadi kata yang terstruktur sehingga dapat diproses. Proses akan menjadi lebih mudah apabila struktur kalimat lebih spesifik. Pada penelitian ini penulis menggunakan dictionary yang telah disediakan sebelumnya. Proses ini dilakukan dengan cara menormalisasikan kata - kata singkatan seperti βbgtβ menjadi βbangetβ,
βsdhβ menjadi βsudahβ, βsiβ menjadi βsihβ, βtauuβ menjadi βtahuβ dan kata - kata typo yang tidak sesuai dalam bahasa indonesia. Tetapi dictionary yang dipakai dalam proses normalization ini memiliki kekurangan yaitu terdapat beberapa kata yang tidak ternormalisasi dengan baik akibat singkatan dan typo yang berlebihan. Contoh penerapan proses normalization ini dapat dilihat pada pseudocode berikut dan hasilnya dapat dilihat pada Tabel 3.6.
#inisiasi fungsi
function normalize_text(text, standard_word, nonstandard_word):
#memasukkan kata-kata pada data ke variable text = text.split(" ")
for i in range(len(text)):
#memeriksa apakah kata merupakan kata yang tidak normal if text[i] in nonstandard_word:
#memeriksa index pada kata yang tidak normal index = nonstandard_word.index(text[i]) #mengganti kata menjadi kata yang normal text[i] = standard_word[index]
return text
22
Tabel 3.6. Penerapan Proses Normalization
Sebelum Proses Normalization Setelah Proses Normalization munafik bgt si hana padahal sekota bogor
sdh tauu aslinya dulu dia kaya apa perempuan yang hanya tauu jual diri sampah
munafik banget sih hana padahal sekota bogor sudah tahu aslinya dulu dia kaya apa perempuan yang hanya tahu jual diri sampah
3.3.5. Stopword Removal
Proses ini mempunyai tujuan untuk menghapus stopword yaitu kata yang sering muncul dan biasanya dapat diabaikan tetapi tidak mengubah arti kalimat. Tahap ini dilakukan dengan tujuan untuk membuat kalimat menjadi lebih sederhana, agar dapat mempercepat proses training tanpa mengubah arti dari kalimat tersebut. Kata hubung yang terdapat dalam data tidak akan mempengaruhi arti dari kalimat yang ada. Kata hubung dalam bahasa indonesia hanya memperjelas konteks yang hanya dipahami oleh manusia, tetapi mesin tidak dapat memahaminya. Pada penelitian ini penulis menggunakan library NLTK (Natural Language Tool Kit) untuk proses stopword removal, dimana stopword yang akan dihapus yaitu kata hubung, subjek seperti βakuβ,
βdiaβ, βkamiβ, dan setiap kata yang mengandung makna negatif seperti βtidakβ juga akan dihapus. Contoh penerapan proses stopword removal ini dapat dilihat pada pseudocode berikut dan hasilnya dapat dilihat pada Tabel 3.7.
import nltk
from nltk.corpus import stopwords
function StopwordRemoval_preprocessing(parameter komentar):
for word in komentar:
liststopword = set(stopwords.word(βlang))
return komentar
Tabel 3.7. Penerapan Proses Stopword Removal
Sebelum Proses Stopword Removal Setelah Proses Stopword Removal munafik banget sih hana padahal
sekota bogor sudah tahu aslinya dulu dia kaya apa perempuan yang hanya tahu jual diri sampah
munafik banget hana sekota bogor sudah tahu aslinya dulu kaya apa perempuan tahu jual diri sampah
3.3.6. Stemming
Proses ini memiliki tujuan untuk menemukan kata dasar dengan menghilangkan imbuhan dalam kata tersebut. Adapun tujuan dari pengurangan imbuhan tersebut adalah untuk memaksimalkan proses dan kinerja dari algoritma yang digunakan untuk menemukan kata yang muncul sesuai dengan maknanya. Adapun contoh imbuhan yang akan dihilangkan antara lain Inflection Suffixes (β-nyaβ,βkuβ,βmuβ,β-kahβ), imbuhan awalan (βbeβ,βkeβ,βdiβ), dan imbuhan turunan (βkanβ,β-iβ,β-anβ). Setiap penggunaan imbuhan yang terdapat dalam data akan dihapus guna untuk mendapatkan variasi kata dasar yang akurat tanpa harus menghilangkan makna pada kata tersebut. Penulis menggunakan library Sastrawi untuk melakukan proses stemming dalam penelitian ini tetapi proses stemming cukup memakan waktu yang sedikit lama. Contoh penerapan proses stemming ini dapat dilihat pada pseudocode berikut dan hasilnya dapat dilihat pada Tabel 3.8.
import Sastrawi
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory function stemming_preprocessing (Parameter komentar):
ps = PorterStemmer()
for word in komentar : word = ps.stem(word)
return komentar
24
Tabel 3.8. Penerapan Proses Stemming
Sebelum Proses Stemming Setelah Proses Stemming munafik banget hana sekota bogor sudah
tahu aslinya dulu kaya apa perempuan tahu jual diri sampah
munafik banget hana kota bogor sudah tahu asli dulu kaya apa perempuan tahu jual diri sampah
3.3.7. Tokenization
Proses ini memiliki tujuan untuk melakukan pemotongan rangkaian karakter yang ada di dalam dokumen menjadi beberapa bagian yang disebut dengan token. Token dapat berupa kata, frasa, atau bahkan seluruh kalimat individual. Dalam penelitian ini, pemotongan akan dilakukan berdasarkan kata. Kata yang telah melalui proses pemotongan atau pemisahan akan menjadi input untuk proses yang selanjutnya. Contoh penerapan proses tokenization dapat dilihat pada pseudocode berikut dan hasilnya terdapat pada Tabel 3.9.
function tokenization_preprocessing(parameter komentar):
komentar = word_tokenize(komentar)
return komentar
Tabel 3.9. Penerapan Proses Tokenization
Sebelum Proses Tokenization Setelah Proses Tokenization
munafik banget hana kota bogor sudah tahu asli dulu kaya apa perempuan tahu jual diri sampah
βmunafikβ,βbangetβ,βhanaβ,βkotaβ,βbo gorβ,βsudahβ,βtahuβ
βasliβ,βduluβ,βkayaβ,βapaβ,
βperempuanβ,βtahuβ,βjualβ,βdiriβ
βsampahβ
3.4. Word Embedding
Word embedding merupakan sebuah metode untuk mengkonversi serangkaian kata yang berupa karakter alphanumeric ke dalam bentuk vektor atau array yang berisi angka atau bilangan. Penelitian ini menggunakan Glove embedding sebagai word embedding.
GloVe embedding sebagai word embedding mempelajari hubungan setiap kata yang ada dalam data dengan cara menghitung seberapa sering kata tersebut muncul bersama dengan kata-kata yang lain dalam sebuah dataset yang diberikan (Nurdin et al, 2020). Kata-kata yang telah menjadi vektor akan dijadikan sebagai feature extraction.
Glove embedding dibangun oleh Pennington et al. (2014) dengan menghitung kemungkinan co-occurence suatu kata terhadap kata yang lain pada seluruh corpus.
Model GloVe embedding yang telah dibangun oleh Pennington et al. (2014) tidak dapat digunakan dalam penelitian ini karena model yang dibangun dalam bahasa inggris, sedangkan penelitian ini mengidentifikasi kata berbahasa indonesia. Untuk itu, peneliti membangun model Glove embedding dalam bahasa Indonesia menggunakan corpus Wikipedia Indonesia. Wikipedia Indonesia menyediakan corpus yang berisi artikel Wikipedia berbahasa Indonesia. Jumlah kata yang didapat dari corpus Wikipedia Indonesia adalah sebanyak 555.139.395 token.
Pennington et al. (2014) telah menyediakan library dalam bahasa C yang
memiliki format bash untuk membangun model GloVe dengan corpus Wikipedia
Indonesia. Library diperoleh dari https://github.com/stanfordnlp/GloVe yang
selanjutnya akan digunakan untuk melatih 555.139.395 token. Hasil model yang
diperoleh setelah dilatih menghasilkan 377.364 kosa kata dengan vektor berukuran 300
dimensi. Gambar 3.2 menunjukkan nilai vektor dari kata βjahatβ.
26
Gambar 3.2. Vektor dari kata βjahatβ
Penerapan glove embedding dapat dilihat pada pseudocode berikut:
#membangun corpus kosakata dengan nilai rata rata vector dari glove embedding
#inisialisasi variabel kosakata dengan tipe data dictionary kosakata = {}
#buka file glove.txt
with open('glove.txt', 'r') as file:
#menelusuri isi file
for i, line in enumerate(file):
l = line.split(' ') #deteksi kosa kata if l[0].isalpha():
#memasukkan nilai vector ke variable v v = [float(i) for i in l[1:]]
#membangun kosakata dengan kata sebagai key dan nilai rata-rata vector sebagai value
kosakata[l[0]] = mean(v)
3.5. Random Forest Classifier
Random Forest Classifier menawarkan indikator pemilihan fitur yang baik. Pada penelitian ini, penulis menggunakan algoritma Random Forest Classifier dengan menginstall library Scikit-learn. Scikit-learn menyediakan variabel tambahan dengan model, yang menunjukkan kepentingan relatif atau kontribusi setiap fitur dalam prediksi dan secara otomatis menghitung skor relevansi setiap fitur dalam training. Pada umumnya, Random Forest Classifier dilakukan dengan cara bagging dimana proses tersebut terletak pada proses split. Pada Random Forest Classifier, split membuat beberapa variabel prediktor yang terambil secara acak terlibat dalam proses split tersebut.
Cara kerja algoritma Random Forest Classifier adalah sebagai berikut:
1. Menggunakan n data sampel yang telah terambil secara acak dari dataset yang telah ada dengan menggunakan teknik bagging dengan pengembalian (replacement). Input berupa sequence matriks dengan panjang 54, sesuai dengan batas maksimal kata. Contoh input ditunjukkan pada Gambar 3.3.
Gambar 3.3. Contoh Data Input
2. Selanjutnya melakukan penentuan jumlah variabel prediktor yang akan diambil secara acak guna untuk menentukan split saat membentuk pohon keputusan. Jumlah variabel prediktor yang diambil secara acak dapat dihitung menggunakan rumus logβ(π + 1) (Breiman, 2001) atau bisa juga dihitung menggunakan rumus βπ (Genuer et al., 2009) dimana M dan p adalah jumlah variabel prediktor.
3. Membentuk pohon keputusan dengan melakukan perhitungan gini impurity
dimana node terbaik akan dipilih berdasarkan variabel-variabel prediktor
yang diambil secara acak pada proses sebelumnya.
28
4. Melakukan prediksi pada data training.
5. Mengulangi langkah 1 sampai dengan langkah 4 hingga K kali replikasi.
6. Selanjutnya melakukan majority voting pada setiap hasil prediksi yang telah dihasilkan dari K kali replikasi dalam proses pembentukan pohon keputusan.
7. Mencari perhitungan ketepatan output dari data training.
8. Mencari perhitungan ketepatan output dari data testing.
9. Melakukan perulangan pada langkah 1 sampai langkah 8 dengan melakukan percobaan pada kombinasi jumlah pohon (K) dengan nilai yang berbeda, yaitu sebesar 10, 30, 50, dan seterusnya.
10. Memilih dan menentukan kombinasi jumlah pohon yang mempunyai akurasi paling tinggi.
Arsitektur Random Forest Classifier akan ditunjukkan pada Gambar 3.4 dan penerapan algoritma Random Forest Classifier dapat dilihat pada pseudocode di bawah ini.
Gambar 3.4. Arsitektur Random Forest Classifier import sklearn
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(parameter RandomForestClassifier) clf.fit(X_train,Y_train)
y_pred = clf.predict(X_test)
Untuk visualisasi, digunakan kombinasi library matplotlib dan seaborn. Karena seaborn dibangun di atas matplotlib, library tersebut menawarkan sejumlah tema yang disesuaikan dan menyediakan jenis plot tambahan. Matplotlib adalah superset dari seaborn. Kedua library tersebut menghasilkan visualisasi yang baik.
3.6. Metode Evaluasi
Performansi suatu model identifikasi dapat dievaluasi dengan perhitungan beragam cara seperti akurasi, precision, recall, dan F1-Score. Akurasi merupakan rasio prediksi yang sesuai dengan aktual baik yang kelasnya positif atau negatif. Precision merupakan rasio perbandingan antara kelas yang diprediksi benar positif dengan seluruh kelas hasil yang diprediksi positif. Recall adalah rasio perbandingan antara kelas yang diprediksi benar positif dengan seluruh data yang memiliki kelas aktual positif. F1- Score adalah rata- rata perhitungan precision dan recall. Penelitian ini menggunaakan perhitungan akurasi, precision, recall, dan F1-Score untuk evaluasi sistem yang dibangun.
Penerapan confussion matrix dapat dilihat pada Tabel 3.10.
Tabel 3.10. Penerapan Confussion Matrix
Aktual Positif (1) Aktual Negatif (0)
Prediksi Positif (1) TP
(True Positive)
FP (False Positive)
Prediksi Negatif (0) TN
(True Negative)
FN (False Negative)
Persamaan yang digunakan untuk melakukan evaluasi dijabarkan dalam Persamaan 3.1, 3.2, 3.3, 3.4 seperti di bawah ini :
ππππππ πππ =
πππ’π πππ ππ‘ππ£ππππ’π πππ ππ‘ππ£π+πΉπππ π πππ ππ‘ππ£π
π₯ 100%...(3.1) π πππππ =
πππ’π πππ ππ‘ππ£ππππ’π πππ ππ‘ππ£π+πΉπππ π πππππ‘ππ£π
π₯ 100%...(3.2) πΉ1 β π ππππ =
2 π₯ ππππππ πππ π₯ π πππππππππππ πππ+π πππππ
π₯ 100%...(3.3) π΄πππ’ππππ¦ =
πππ’π πππ ππ‘ππ£π+πππ’π πππππ‘ππ£ππππ‘ππ π·ππ‘π