TUGAS AKHIR
Disusun Oleh :
CHRISTIAN LAUW
NRP : 160415024
TIM PENGUJI
Mengetahui
ii
ABSTRAKSI
iii
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa, atas segala rahmat-Nya, tugas akhir
K-Nearest Neighbor” ini dapat diselesaikan dengan baik. Pembuatan tugas akhir ini
dibuat dengan tujuan untuk memenuhi syarat dalam memperoleh gelar sarjana
bimbingan, saran, fasilitas, dan kerjasama dari beberapa pihak, sehingga laporan ini
kasih kepada:
3. Bapak Dr. Budi Hartanto S.T., M.Sc. selaku ketua jurusan Teknik
Tugas Akhir ini dapat terselesaikan dengan baik dan tepat waktu.
yang dihadapi.
iv
Dalam laporan tugas akhir ini, penulis sangat mengharapkan adanya masukkan
tentang laporan yang telah dibuat. Akhir kata, penulis berharap laporan ini dapat
Penulis
v
DAFTAR ISI
HALAMAN JUDUL................................................................................................ i
.................................................................................................................. 1-1
.................................................................................................................. 2-1
vi
D AFT AR I SI vi i
.................................................................................................................. 3-1
.................................................................................................................. 4-1
vii
D AFT AR I SI vi ii
4.2.3 Desain Proses Indexing Tweet Data Uji Coba ............................... 4-9
.................................................................................................................. 5-1
viii
D AFT AR I SI ix
.................................................................................................................. 6-1
6.2.2.3 Validasi k-fold Cross Validation Data Uji Coba ...................... 6-32
.................................................................................................................. 7-1
ix
D AFT AR I SI x
x
DAFTAR GAMBAR
Gambar 2.1 Alur Proses Crawling ....................................................................... 2-2
Gambar 2.2 Alur proses algoritma stemming Nazief Andriani ........................... 2-9
Gambar 2.3 Ilustrasi penerapan k-fold cross validation (Wikipedia, 2018) ...... 2-19
Gambar 3.1 Contoh tweet ujaran kebencian (Sumber: detik.com) ...................... 3-3
Gambar 3.2 Contoh tweet ujaran penghinaan ...................................................... 3-3
Gambar 3.3 Contoh tweet ancaman kekerasan .................................................... 3-3
Gambar 3.4 Konten Kesusilaan............................................................................ 3-4
Gambar 3.5 Konten Perjudian transaksi penjualan nomor togel.......................... 3-5
Gambar 3.6 Contoh penggunaan fitur mute ......................................................... 3-6
Gambar 3.7 Hasil penggunaan fitur mute ............................................................ 3-7
Gambar 3.8 Contoh penggunaan fitur block ........................................................ 3-7
Gambar 3.9 Penggunaan fitur report .................................................................... 3-8
Gambar 3.10 Aksi lanjutan fitur report ................................................................ 3-9
Gambar 3.11 Tweet mengandung kata “g***ok” ................................................ 3-9
Gambar 3.12 List kata mute word ...................................................................... 3-10
Gambar 3.13 Grafik dokumen kata pada tweet .................................................. 3-11
Gambar 3.14 Dendrogram hasil hierarchical clustering .................................... 3-12
Gambar 3.15 Contoh tampilan user interface web peneliti ................................ 3-14
Gambar 4.1 ERD sistem ....................................................................................... 4-2
Gambar 4.2 Proses login sistem ........................................................................... 4-7
Gambar 4.3 Alur Proses Preprocessing ................................................................ 4-8
Gambar 4.4 Alur Proses Indexing ...................................................................... 4-10
Gambar 4.5 Alur proses posting tweet ............................................................... 4-11
Gambar 4.6 Alur proses crawling data tweet ..................................................... 4-13
Gambar 4.7 Alur Proses Ubah nilai K ............................................................... 4-14
Gambar 4.8 Alur proses ubah status tweet ......................................................... 4-15
Gambar 4.9 Halaman login ................................................................................ 4-16
Gambar 4.10 Halaman awal user admin ............................................................ 4-17
Gambar 4.11 Halaman awal user biasa .............................................................. 4-18
xi
D AFT AR G AMB AR xi i
Gambar 4.12 Tampilan Awal Menu Data Training, sub-bagian “Data Training” . 4-
19
Gambar 4.13 Pesan berhasil ubah status Tweet ................................................. 4-20
Gambar 4.14 Tampilan Awal sub-bagian “Aksi” .............................................. 4-20
Gambar 4.15 Contoh tampilan Crawling ........................................................... 4-21
Gambar 4.16 Modal loading proses ................................................................... 4-22
Gambar 4.17 Tampilan selesai crawling data .................................................... 4-22
Gambar 4.18 Konfirmasi simpan data uji coba .................................................. 4-23
Gambar 4.19 Contoh Modal Notifikasi .............................................................. 4-24
Gambar 4.20 Modal ubah nilai K....................................................................... 4-24
Gambar 4.21 Halaman utama history data testing ............................................. 4-25
Gambar 4.22 Halaman utama detail history data testing ................................... 4-26
Gambar 4.23 Tampilan pesan peringatan konten negatif................................... 4-27
Gambar 4.24 Tampilan pesan tweet dapat di posting ........................................ 4-27
Gambar 5.1 Struktur tabel users ........................................................................... 5-2
Gambar 5.2 Struktur tabel social_twitter_accounts ............................................. 5-3
Gambar 5.3 Struktur tabel tweets ......................................................................... 5-3
Gambar 5.4 Struktur tabel log_tweets .................................................................. 5-4
Gambar 5.5 Struktur tabel history_tweets ............................................................ 5-5
Gambar 5.6 Struktur tabel detail_history_tweets ................................................. 5-6
Gambar 5.7 Struktur penyimapan nilai dft ........................................................... 5-6
Gambar 5.8 Struktur penyimpanan tf dan tf-idf ................................................... 5-7
Gambar 6.1 Halaman utama posting tweet baru .................................................. 6-2
Gambar 6.2 Pesan validasi kolom input tidak diisi .............................................. 6-2
Gambar 6.3 Pesan validasi kolom input berisi lebih dari 140 karakter ............... 6-3
Gambar 6.4 Tampilan konfirmasi posting tweet “Tidak Melanggar”.................. 6-3
Gambar 6.5 Pesan berhasil posting tweet ............................................................ 6-4
Gambar 6.6 Tampilan pesan konten “Melanggar” ............................................... 6-4
Gambar 6.7 Halaman utama sub-menu Aksi ....................................................... 6-8
Gambar 6.8 Tampilan peringatan hak akses ........................................................ 6-8
Gambar 6.9 Tampilan pilihan crawling dengan username................................... 6-9
xii
D AFT AR G AMB AR xi ii
xiii
DAFTAR TABEL
Tabel 2.1 Penghapusan Stopword Berbahasa Indonesia ...................................... 2-3
Tabel 2.2 Tabel aturan konfiks yang dilarang (Firdaus et al., 2014) ................... 2-6
Tabel 2.3 Aturan prefiks khusus (Firdaus et al., 2014) ........................................ 2-6
Tabel 2.4 Keterangan simbol tabel 2.3 (Firdaus et al., 2014) .............................. 2-7
Tabel 2.5 Hasil stemming dokumen..................................................................... 2-8
Tabel 2.6 Hasil tokenisasi unigram dokumen .................................................... 2-10
Tabel 2.7 Hasil pembobotan tf-idf token unigram ............................................. 2-11
Tabel 2.8 Perhitungan term frequency ............................................................... 2-12
Tabel 2.9 Perhitungan inverse document frequency .......................................... 2-12
Tabel 2.10 Hasil perhitungan tf-idf .................................................................... 2-13
Tabel 2.11 Hasil Proses Pengindeksan Inverted Index ...................................... 2-14
Tabel 2.12 Perhitungan Euclidean distance dokumen 1 dan 2........................... 2-15
Tabel 2.13 Hasil perhitungan euclidean distance antar dokumen ...................... 2-16
Tabel 2.14 Data dokumen yang telah diurutkan ................................................ 2-17
Tabel 3.1 Tabel ciri konten negatif berdasarkan pandangan pakar ...................... 3-2
Tabel 3.2 Bobot pelabelan Tweet....................................................................... 3-13
Tabel 3.3 Hasil metode SVM RBF Kernel dengan C=4 .................................... 3-14
Tabel 3.4 Hasil ujicoba dengan metode k-NN ................................................... 3-15
Tabel 4.1 Tabel kamus data ................................................................................. 4-2
Tabel 5.1 Parameter Crawling Username .......................................................... 5-21
Tabel 5.2 Parameter Crawling keyword............................................................. 5-22
Tabel 6.1 Contoh data uji ..................................................................................... 6-5
Tabel 6.2 Contoh hasil perhitungan k-nn euclidean distance oleh sistem (k=5) . 6-5
Tabel 6.3 Proses tokenisasi unigram data testing................................................. 6-6
Tabel 6.4 Proses pembobotan data testing dan data pembanding No.3 ............... 6-6
Tabel 6.5 Hasil perhitungan similaritas euclidean distance ................................. 6-6
Tabel 6.6 Contoh tabel sampel data uji coba ID=1 sampai 40........................... 6-18
Tabel 6.7 Sampel perhitungan k-fold 99 dan k=3 .............................................. 6-20
Tabel 6.8 Contoh cara pelabelan data berdasarkan wawancara ......................... 6-22
xiv
D AFT AR T AB E L xv
xv
D AFT AR T AB E L x vi
xvi
DAFTAR LISTING
Listing 5.1 Potongan program proses tokenisasi ................................................. 5-7
Listing 5.2 Potongan program perhitungan dft dan nilai tf .................................. 5-8
Listing 5.3 Potongan program perhitungan nilai tf-idf dan penyimpanan hasil .. 5-9
Listing 5.4 Potongan program redirect ke landing page login twitter................ 5-10
Listing 5.5 Potongan program redirect ke sistem .............................................. 5-10
Listing 5.6 Potongan program proses link removal ........................................... 5-12
Listing 5.7 Potongan program proses username removal .................................. 5-12
Listing 5.8 Potongan program proses number removal ..................................... 5-12
Listing 5.9 Potongan program Hastag Processing ............................................. 5-14
Listing 5.10 Potongan program proses stopword removal ................................ 5-14
Listing 5.11 Potongan program proses stemming .............................................. 5-15
Listing 5.12 Proses penghapusan kata ............................................................... 5-16
Listing 5.13 Potongan program proses pembobotan dan perhitungan euclidean
distance ....................................................................................................... 5-17
Listing 5.14 Proses pengurutan hasil perhitungan jarak .................................... 5-19
Listing 5.15 Potongan program proses k-nn ...................................................... 5-19
Listing 5.16 Potongan program mengirimkan tweet .......................................... 5-20
Listing 5.17 Potongan program crawling dengan username .............................. 5-22
Listing 5.18 Potongan program crawling dengan keyword ............................... 5-22
Listing 5.19 Program menyimpan data hasil crawling ...................................... 5-23
Listing 5.20 Program fungsi ubah nilai K .......................................................... 5-24
Listing 5.21 Program fungsi mengubah status tweet ......................................... 5-25
xvii
DAFTAR LAMPIRAN
xviii
PENDAHULUAN
Media sosial merupakan bentuk media komunikasi berbasis online yang dapat
digunakan masyarakat untuk berbagi informasi yang dapat berbentuk teks, gambar,
suara maupun video. Selain itu media sosial juga berperan sebagai media untuk
transaksi bisnis. Salah satu media sosial yang cukup dikenal yaitu Twitter. Twitter
media sosial sebagai salah satu media komunikasi elektronik diatur oleh suatu
(UU ITE).
Sebagai contoh, salah satu pasal yang memiliki keterkaitan dengan berperilaku
dalam penggunaan media sosial adalah UU No.19 Tahun 2016 Pasal 45A ayat 3
yang berbunyi : “Setiap Orang yang dengan sengaja dan tanpa hak mendistribusikan
dan/atau pencemaran nama baik sebagaimana dimaksud dalam Pasal 27 ayat (3)
dipidana dengan pidana penjara paling lama 4 (empat) tahun dan/atau denda paling
Akan tetapi penerapan UU ITE yang ada, belum diterapkan dalam bentuk sistem
sebagai langkah untuk mencegah kemunculan tweet yang mengandung konten yang
kurang pantas ketika akan dibagikan ke twitter. Oleh karena itu dibutuhkan suatu
cara untuk mencegah penyebaran konten yang mengandung unsur negatif ketika
teknik menemukan informasi yang hilang dari sekumpulan data. Salah satu ilmu
Salah satu metode dari klasifikasi adalah k-nearest neighbor (kNN). Metode kNN
data baru dilakukan berdasarkan kelompok terbanyak dari data yang menjadi
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 1 - PE NDA H UL UA N 1 -3
deteksi terlebih dahulu dengan metode klasifikasi untuk menentukan apakah konten
tersebut sesuai dengan peraturan yang berlaku di Indonesia ketika akan dibagikan.
rumusan masalah yang menjadi dasar penulisan tugas akhir ini adalah bagaimana
membuat suatu sistem yang dapat mencegah konten yang mengandung unsur
1.3 Tujuan
Tujuan dari penulisan tugas arkhir ini adalah membuat suatu sistem pendeteksi
terhadap ada tidaknya konten negatif pada sebuah postingan sebelum dibagikan ke
media sosial twitter. Hasil keluaran yang diharapkan dapat mencegah tweet yang
1.4 Manfaat
Batasan yang dimaksud adalah konten negatif yang akan dikirimkan akan
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 1 - PE NDA H UL UA N 1 -4
Dalam penyusunan tugas akhir ini, adapun beberapa batasan yang dikerjakan
3. Dataset tweet uji coba yang digunakan sebagai acuan sejumlah 3960 data
tweet yang didapatkan dari proses crawling twitter dan telah melalui proses
indexing.
4. Data Tweet yang dianalisis adalah tweet berupa teks berbahasa Indonesia
yang baku
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 1 - PE NDA H UL UA N 1 -5
Dalam pembuatan tugas akhir ini, rencana kegiatan yang dilakukan adalah
sebagai berikut:
1. Persiapan
Undang Informasi dan Transaksi Elektronik (UU ITE) yang berkaitan dengan
2. Analisis
Pada tahapan ini berisi analisis keadaan saat ini terkait dengan penggunaan
permasalahan yang terjadi berdasarkan keadaan saat ini, serta kebutuhan sistem
3. Desain
Pada tahapan desain dilakukan desain data, desain antar muka pengguna dan
4. Implementasi
Pada tahapan ini dilakukan implementasi berupa sistem berbasis web sesuai
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 1 - PE NDA H UL UA N 1 -6
Pada tahapan ini dilakukan uji coba terhadap tingkat keberhasilan yang
6. Penyusunan Laporan
Pada tahapan ini dilakukan penyusunan laporan dari hasil perencanaan kegiatan
sistem mulai dari persiapan hingga uji coba dan evaluasi yang telah dijelaskan
sebelumnya.
Dalam sistematika penulisan laporan tugas akhir ini terdiri dari tujuh bagian.
Penjelasan singkat dari setiap bagian yang akan dibuat dalam penulisan tugas akhir
BAB 1: PENDAHULUAN
akhir, rumusan masalah, tujuan, ruang lingkup tugas akhir, rencana kegiatan
mencapai tujuan yang telah dirumuskan pada bab pendahuluan. Teori yang
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 1 - PE NDA H UL UA N 1 -7
BAB 3: ANALISIS
Bab analisis sistem menjelaskan mengenai analisis keadaan saat ini terkait
sistem.
penulisan tugas akhir ini adalah desain data yang terdiri dari desain ERD
dan desain file, desain proses yang menunjang sistem, yaitu desain proses
BAB 5: IMPLEMENTASI
neighbor yang terdiri dari implementasi data (database dan file) serta
sistem.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 1 - PE NDA H UL UA N 1 -8
Bab ini membahas hasil ujicoba dari sistem yang telah diimplementasikan
dapat berjalan dengan baik. Validasi untuk memastikan hasil yang diberikan
sesuai dengan tujuan yang dirumuskan pada bagian pendahuluan. Hasil dari
diberikan.
Bab ini akan berisi kesimpulan dari pembuatan tugas akhir ini, serta saran
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
DASAR TEORI
Pada bab ini dijelaskan mengenai teori yang digunakan dalam pembuatan
informasi yang hilang tersebut, dibutuhkan query yang akan diberikan user. Query
merupakan suatu kata kunci yang nantinya akan digunakan sistem untuk dilakukan
Klasifikasi merupakan teknik untuk menemukan informasi ciri dari suatu data
serta menentukan kelompok dari suatu data yang memiliki karakterisitk yang
memiliki keterkaitan dengan data lainnya. Untuk mengetahui tingkat keseuaian dari
hasil pengklasifikasian suatu data yang diberikan sistem dengan representasi user
2.2 Crawling
Untuk mendapatkan data atau dokumen dengan jumlah besar pada suatu situs
dalam satu waktu dapat menggunakan teknik crawling. Crawling merupakan teknik
yang digunakan untuk mengambil komponen suatu halaman web dan melakukan
url web. URL ini kemudian didownload untuk mendapatkan kumpulan page dari
url tersebut. Page yang telah didapatkan kemudian dilakukan ekstraksi terhadap
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -3
2.3 Preprocessing
bertujuan untuk mengurangi ukuran dimensi dari fitur yang dimiliki oleh data. Pada
proses preprocessing, khususnya untuk data berupa dokumen teks terdiri dari
besar, tetapi kurang memiliki makna, seperti kata penghubung (“dan”, “atau”,
yang telah berisi daftar stopword dari suatu bahasa tertentu yang akan dihapus.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -4
Salah satu library yang menyediakan kamus dan fungsi stopword berbahasa
dokumen teks khusus berbahasa Indonesia. Cara kerja dari penghapusan stopword
pada library sastrawi adalah membandingkan tiap kata dalam dokumen dengan
kamus stopword yang disimpan dalam sebuah array, jika ditemukan maka
2.3.2 Stemming
Stemming merupakan proses untuk mengurangi jumlah variasi dari suatu kata
dengan mengubah kata tersebut kedalam bentuk dasarnya. Untuk proses stemming
pada dokumen teks berbahasa Indonesia dilakukan terhadap imbuhan yang dapat
kata dasar (konfiks) yang dapat menimbulkan makna lain terhadap kata tersebut
Untuk proses stemming berbahasa Indonesia, salah satu library yang dapat
digunakan adalah library sastrawi. Library sastrawi memiliki kamus kata dasar
penghapusan terhadap awalan dan akhiran dari suatu kata. Cara kerja dari algoritma
Nazief Andriani seperti pada gambar 2.2 adalah sebagai berikut (Firdaus et al.,
2014) :
1. Jika suatu kata ditemukan dalam kamus, maka proses stemming selesai. Jika
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -5
2. Jika kata hasil stemming pada tahap 1 memiliki suffiks “-lah”, “-kah”, “-tah”
atau “-pun”, maka suffiks tersebut dihapus dan jika terdapat suffiks “-ku”, “-
mu”, atau “-nya” dilakukan penghapusan lanjutan. Jika kata belum ditemukan
berhenti.
3. Menghapus kata yang memiliki suffiks “-i”, “-an” atau “-kan”, contoh memberi-
kan. Jika ditemukan dalam kamus, proses stemming berhenti. Jika tidak
terdapat suffiks “-k”, maka “-k” juga akan dihapus. Proses stemming selesai jika
setelah penghapusan “-an” dan “-k”, kata dasar ditemukan dalam kamus. Jika
sebelumnya
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -6
Tabel 2.2 Tabel aturan konfiks yang dilarang (Firdaus et al., 2014)
Awalan Akhiran
be- -i
di-, me-, te- -an
ke-, se- -i, -kan
memiliki kata dasar “main". Aturan dari awalan ini ditunjukkan pada tabel
2.3. Serta keterangan dari simbol yang ada dijelaskan pada tabel 2.4
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -7
Simbol Keterangan
C Abjad Konsonan
V Abjad Vokal
A Abjad Konsonan atau Vokal
P Partikel kata (kata yang tidak memiliki makna)
Setelah dilakukan penghapusan pada tahap 4b dan tidak ditemukan maka proses
pada tahap 4 diulang. Jika ditemukan dalam kamus proses stemming selesai.
Proses ini dilakukan jika setelah proses stemming pada tahap 4 dilakukan, kata
kata dasar, maka kata tersebut diasumsikan sebagai kata dasar dan proses
stemming berakhir.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -8
Tabel 2.5 menunjukkan contoh hasil dari dokumen yang telah melalui proses
stopword pada tabel 2.1. Sebagai contoh proses stemming, diambil kata pada
Kata “menyukai” diubah menjadi kata dasar “suka”. Akhiran “-i” akan dihapus
mengalami pemenggalan pada tahap 4, dengan aturan 15 pada tabel 2.3 (menV..)
menjadi “nonton”. Karena “nonton” bukan merupakan kata dasar, dilakukan proses
mengalami pemenggalan pada tahap 4, dengan aturan 17 pada tabel 2.3 (meng-V).
Sedangkan kata “menuju” diubah menjadi kata dasar “tuju”. Kata “menuju”
mengalami pemenggalan pada tahap 4, dengan aturan 15 pada tabel 2.3 (menV..)
menjadi “nuju”. Karena “nuju” bukan merupakan kata dasar, dilakukan proses
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -9
2.3.3 Tokenisasi
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 0
(Ahmed, 2017). Tabel 2.6 menunjukkan contoh hasil proses tokenisasi unigram dari
penghapusan stopword pada tabel 2.1 dan proses stemming pada tabel 2.5
token dalam dokumen dapat dilakukan dengan memberikan bobot kepada token
kata dalam sebuah dokumen (term frequency - tf), jumlah dokumen yang
dokumen(N). Nilai dari dft dan N digunakan untuk melakukan perhitungan nilai
inverse document frequency (idf) seperti yang dituliskan pada persamaan (2-2) dan
perhitungan nilai pembobotan tf-idf dituliskan pada persamaan (2-3). Semakin kecil
nilai dft, maka semakin besar nilai idf yang dihasilkan. (Christian, Agus &
Suhartono, 2016).
𝑵
idft = log (𝒅𝒇𝒕) ………………………………………( 2-2 )
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 1
Tabel 2.7 menunjukan hasil pembobotan token dari suatu dokumen. Dokumen
stopword pada tabel 2.1, proses stemming pada tabel 2.5 dan tahap tokenisasi pada
tabel 2.6.
satu model yang dapat merepresentasikan term dalam suatu dokumen adalah Vector
Space Model. Vector space model berbentuk matrix berisi dokumen serta term
Representasi yang digambarkan pada vector space model untuk dokumen teks
dapat berupa kemunculan term dalam suatu dokumen (term frequency – tf), nilai
document frequency – idf) dan nilai pembobotan tf-idf (Singh & Singh, 2015).
Tabel 2.8 menggambarkan nilai dari term frequency(tf) dan tabel 2.9
menggambarkan nilai dari inverse document frequency(idf) untuk setiap token hasil
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 2
tokenisasi dari tabel 2.6. Sedangkan tabel 2.10 menggambarkan nilai dari tf-idf
hasil perhitungan dari tf dan idf masing-masing pada tabel 2.8 dan tabel 2.9.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 3
sehari-hari konsep inverted index dapat digambarkan seperti buku Kamus Besar
Bahasa Indonesia (KBBI). Sebagai contoh mencari kata “mobil” dalam KBBI,
diawali dengan mencari indeks (awalan) “m” pada kamus kemudian mencari kata
“mo” dilanjutkan dengan “mob” dan seterusnya hingga didapatkan kata “mobil”.
dokumen diawali dengan tahapan tokenisasi untuk menentukan kata kunci yang
dapat ditemukan pada setiap dokumen (Croft, Metzler & Strohman, 2010). Pada
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 4
Pada tabel 2.11 kata kunci “andi” dengan daftar ID Dokumen 1, dimana kata
andi dapat ditemukan pada dokumen 1. Untuk kata kunci “film”, daftar ID dokumen
bernilai 1,2 yang berarti kata kunci “film” dapat ditemukan pada dokumen 1 dan
dokumen 2.
Untuk menemukan keterkaitan suatu data dengan data yang lain dapat
ditentukan dengan melihat kemiripan ciri-ciri yang dimiliki setiap data. Untuk
menentukan kemiripan tersebut dapat diukur dengan suatu metode yang disebut
dengan euclidean distance. Metode ini membandingkan setiap nilai fitur dari
sebuah data dengan data lainnya untuk menemukan nilai similaritas / jarak terkecil
(Bagchi, 2015). Semakin kecil nilai yang dihasilkan maka keterkaitan yang dimiliki
juga akan semakin mirip. Perhitungan dari euclidean distance ditunjukkan pada
persamaan (2-4).
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 5
yang ditunjukan pada Tabel 2.12 dan persamaan (2-5) menggunakan hasil
perhitungan tf-idf dokumen 1(D1) dan dokumen 2(D2) pada Tabel 2.10.
kedua dokumen.
Sebagai contoh kata andi pada dokumen 1 memiliki bobot 0.477 sedangkan
pada dokumen 2 bernilai 0. Bobot kata andi pada dokumen 2 bernilai 0, karena pada
dokumen 2 tidak ditemukan kata andi. Selisih nilai dari kedua bobot tersebut akan
dikuadratkan. Selisih kuadrat dari bobot setiap kata dijumlahkan seperti yang
kedua dokumen. Tabel 2.13 menunjukkan hasil similaritas euclidean distance antar
dokumen pada koleksi dokumen berdasarkan detail perhitungan distance pada tabel
2.12.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 6
𝐝𝐢𝐬𝐭(𝐃𝟏, 𝐃𝟐) =
penentuan kelompok suatu data, metode ini melihat data yang telah dikelompokkan
sebelumnya. Kelebihan metode ini adalah proses pelatihan data yang cepat, tahan
terhadap noise dalam data latih dan efektif bila data latih tersedia dalam jumlah
dipilih secara acak, umumnya nilai yang disarankan adalah bilangan ganjil. Asumsi
jika nilai k yang dipilih adalah bilangan genap, sebagai contoh jika ada 6 data
terdekat dengan jumlah kelompok masing masing 3 data, maka kelompok dari data
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 7
Cara kerja dari metode kNN dapat dituliskan sebagai berikut (Tan, Steinbach
1. Tentukan nilai k
2. Hitung nilai antar data baru dengan yang dibandingkan dengan fungsi
similaritas.
Sebagai contoh diberikan suatu data baru, “Andi menyukai film kartun dan
horor” yang akan dikelompokkan berdasarkan data dokumen pada tabel 2.14. Pada
tabel 2.14 menunjukkan hasil perhitungan similaritas euclidean distance pada tabel
2.13 yang telah diurutkan. Nilai similaritas dari data pembanding diurutkan dari
kemunculan dari setiap kelas dari setiap dokumen pada tabel 2.14 tersebut
dijumlahkan dan dipilih kelas dengan kemunculan terbesar, dalam hal ini adalah
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 8
K-Fold Cross Validation merupakan salah satu metode untuk melakukan uji
validasi. Salah satu uji validasi yang dapat dilakukan adalah uji akurasi terhadap
kebenaran pengkategorian oleh sistem terhadap pelabelan manual data testing yang
diambil dari sekumpulan dataset. Metode ini dilakukan dengan membagi dataset
menjadi 2 bagian yaitu data pembanding/training dan data uji/testing. Untuk setiap
Nilai k pada metode k-fold cross validation merupakan jumlah perulangan yang
akan dilakukan untuk mendapatkan nilai akurasi dari setiap kelompok dataset
testing. Nilai akurasi kebenaran pengkategorian oleh sistem dari setiap dataset
umumnya merupakan kelipatan 10, tetapi nilai ini bergantung dari besarnya jumlah
dataset yang akan diuji untuk meminimalkan waktu proses perhitungan (James,
Sebagai ilustrasi seperti pada gambar 2.3, terdapat 20 data yang telah dilabeli
kedalam kelompok “Hijau” atau “Merah”. Kemudian dari 20 data tersebut dibagi
menjadi 4 bagian, dimana setiap bagian akan terdiri dari 15 data training dan 5 data
testing. Untuk bagian pertama, data testing yang digunakan merupakan data 1
hingga 5, sedangkan data lainnya akan berperan sebagai data training. Untuk bagian
kedua, data testing yang digunakan merupakan data 6 hingga 10, sedangkan data
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -1 9
lainnya akan berperan sebagai data training. Proses berlanjut hingga seluruh bagian
disalahgunakan untuk hal-hal yang tidak sesuai dengan aturan yang berlaku. Untuk
2008 mengenai Informasi dan Transasksi Elektronik (UU ITE) dan Undang-
2008.
hukuman yang akan diterima oleh masyarakat jika melanggar salah satu aspek yang
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -2 0
telah dijelaskan sebelumnya, beberapa pasal yang terdapat didalam UU ITE adalah
sebagai berikut:
1) Pasal 27 Ayat 1
kesusilaan”.
Hukuman: Penjara paling lama 6 tahun dan/atau denda paling banyak 1 Miliar.
2) Pasal 27 Ayat 2
Hukuman: Penjara paling lama 6 tahun dan/atau denda paling banyak 1 Miliar.
3) Pasal 27 Ayat 3
Hukuman: Penjara paling lama 4 tahun dan/atau denda paling banyak 750 juta.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -2 1
4) Pasal 28 Ayat 2
“Setiap Orang dengan sengaja dan tanpa hak menyebarkan informasi yang
dan/atau kelompok masyarakat tertentu berdasarkan atas suku, agama, ras, dan
antargolongan (SARA)”.
Hukuman: Penjara paling lama 6 tahun dan/atau denda paling banyak 1 Miliar.
5) Pasal 29
“Setiap Orang dengan sengaja dan tanpa hak mengirimkan Informasi Elektronik
Hukuman: Penjara paling lama 4 tahun dan/atau denda paling banyak 750 juta.
2.11 Twitter
secara singkat dalam berbagai bentuk seperti teks, gambar maupun video. Informasi
yang dibagikan di twitter dikenal dengan sebutan tweet. Dalam sebuah tweet jumlah
informasi online merupakan salah satu yang terbesar di dunia. Hingga tahun 2017,
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 2 – DAS AR T EORI 2 -2 2
Indonesia menempati peringkat ke-3 dunia dengan jumlah user aktif sekitar 24,34
juta user serta penyumbang tweet terbesar yang mencapai +/- 4,1 milyar tweet
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
ANALISIS SISTEM
Pada bab ini dibahas mengenai analisis sistem yang terdiri dari penggunaan
masalah yang muncul dari penggunaan twitter serta analisis kebutuhan sistem untuk
menjawab permasalahan.
wawancara dengan seorang pakar hukum yang bergerak di bidang UU ITE yaitu,
Anton Hendrik Samudra, S.H., M.H., yang merupakan dosen fakultas hukum
Universitas Surabaya. Daftar pertanyaan dan hasil wawancara dapat dilihat pada
lampiran A.
sarana berbagi pendapat secara bebas ataupun mencari berita, informasi atau
keadaan terbaru yang sedang populer. Sedangkan dari sisi negatif, penggunaan
media sosial dapat membuat pengguna lupa diri ataupun tidak dapat mengontrol
didukung dengan adanya salah satu data yang telah dihimpun kementrian
konten negatif berupa ujaran kebencian dan 13.120 konten berupa pornografi
ciri-ciri tersendiri. Pada tabel 3.1 merupakan pandangan pakar terkait ciri dari
Sebagai contoh, kasus yang diberitakan oleh detik.com terkait dengan tweet
yang mengandung unsur kebencian seperti pada gambar 3.1 (Ramdhani, 2017).
Untuk tweet dengan unsur lainnya, dilakukan wawancara dengan pakar hukum
untuk memastikan kesesuaian contoh yang diberikan. Contoh untuk tweet dengan
unsur penghinaan ditunjukkan pada gambar 3.2, contoh tweet ancaman kekerasan
ditunjukkan pada gambar 3.3, contoh tweet yang menunjukkan konten yang
mengandung unsur kesusilaan dalam hal ini tawaran prostitusi ditunjukkan oleh
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -3
gambar 3.4 dan contoh tweet yang menunjukkan konten perjudian yang berupa
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -4
perjudian, ancaman kekerasan dan kesusilaan belum tersedia. Hanya saja dari
filter dari URL situs porno bukan terhadap konten di media sosial.
beberapa fitur yang dapat digunakan. Fitur yang disediakan berupa fitur mute &
block, report dan mute word. Fitur mute & block memiliki kemiripan kegunaan
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -5
yaitu memungkinkan user tidak melihat tweet serupa yang dibagikan oleh user
tertentu.
Perbedaan kedua fitur ini adalah fitur block mengakibatkan user yang di block
ketika mengirimkan tweet secara pribadi ke user yang melakukan block tidak akan
penggunaan fitur mute seperti pada gambar 3.6 dimana setelah tweet dari akun
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -6
maka tweet dari @det******88 tidak akan muncul seperti pada gambar 3.7.
Sebagai contoh penggunaan fitur block, user akan melakukan block terhadap
salah satu akun yaitu @det******88 maka akan muncul pesan peringatan terkait
penggunaan fitur ini seperti pada gambar 3.8 dan hasilnya akan sama seperti pada
gambar 3.7 dimana tweet dari user @det******88 tidak akan muncul pada halaman
utama.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -7
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -8
tweet yang dibagikan. Sebagai contoh pada gambar 3.9 merupakan pemanfaatan
fitur report dan aksi lanjutan seperti pada gambar 3.10 yang dapat dilakukan setelah
melakukan report. Untuk jenis pelaporan yang dapat dilaporkan tersedia pada tautan
https://help.twitter.com/en/rules-and-policies/twitter-report-violation#specific-
violations.
Untuk fitur mute word, user akan melakukan list terhadap kata yang dikandung
dari suatu tweet yang tidak ingin dilihat, ciri ini dapat berupa kata ataupun user
yang tidak ingin dilihat (Twitter, 2018). Sebagai contoh pada gambar 3.11 terdapat
“g***ok” seperti pada gambar 3.12 sehingga setiap tweet yang mengandung kata
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -9
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -1 0
Analisis sistem sejenis yang dilakukan, merujuk pada beberapa jurnal yang
melakukan penelitian serupa dengan penelitian pada laporan tugas akhir ini. Tujuan
menerapkan metode penelitian pada laporan tugas akhir ini. Penelitian yang
menjadi acuan dalam analisis sistem sejenis adalah “Text Mining of UU-ITE
Twitter”.
Pada penelitian ini, peneliti (Hakim, Kusumasari, & Lubis, 2018) melakukan
Twitter untuk memperoleh data berupa tweet yang sesuai dan mengumpulkan 1843
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -1 1
pengambilan data, dalam hal ini Indonesia, serta akun tertentu. Dari setiap tweet
yang kemudian dipetakan menjadi sebuah grafik seperti yang ditunjukkan pada
dilakukan perhitungan jarak antar kata dan dilakukan proses clustering dengan
menunjukkan hasil dendogram yang telah dibangun dari data yang telah
dikumpulkan.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -1 2
terkait dengan tweet yang dapat mengandung konten yang dapat melanggar UU ITE
Sehingga peneliti memberikan usulan agar dibuat suatu regulasi tersendiri yang
dikhususkan untuk kasus tertentu seperti SARA, ujaran kebencian ataupun konten
negatif yang dapat tersebar atau terjadi di sosial media. Tujuannya agar masyarakat
tetap dapat dengan bebas menggunakan haknya untuk berpendapat di media sosial
tweet yang mengandung unsur cyberbullying dan melakukan analisa terkait user
yang melakukan tweet. Tetapi, pada analisa sistem sejenis terhadap penelitian ini
Dalam melakukan pelabelan data uji, peneliti membangun suatu web seperti
pada gambar 3.13 dimana web tersebut digunakan untuk memberikan kebebasan
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -1 3
kategori dari setiap kata dalam tweet tersebut sebagai “negatif” atau “kata kasar”.
Responden diberikan 4 pilihan untuk setiap tweet yang akan diberi label seperti
Pelabelan tweet ini dilakukan untuk membandingkan hasil yang akan diberikan
oleh sistem. Peneliti menggunakan 700 data set yang dibagi menjadi 301 tweet
sebagai Cyberbullying dan 399 tweet sebagai non-Cyberbullying, dengan 60% data
digunakan sebagai data training dan 40% digunakan sebagai data testing.
terhadap angka, simbol dan username, sedangkan POS Tagging dilakukan untuk
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -1 4
Metode klasifikasi yang digunakan oleh peneliti adalah k-NN dan SVM dengan
membandingkan 2 metode linear function dan RBF kernel dan mendapatkan hasil
terbaik ketika menggunakan nilai C=4 dengan metode RBF kernel seperti yang
Untuk metode k-NN peneliti melakukan uji dengan nilai K=1 hingga K=10.
Hasil ujicoba terbaik seperti pada tabel 3.4 didapatkan ketika ketika nilai K=7
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -1 5
Twitter. Dataset yang digunakan sejumlah 1000 data tweet yang didapat dari proses
Metode preprocessing yang dilakukan oleh peneliti adalah case folding dan
stopword removal. Peneliti melakukan uji coba dengan membagi dataset kedalam
masing-masing data training dan data testing sebesar 80:20, 70:30 dan 60:40. Hasil
sistem pada tugas akhir ini berkaitan dengan saran yang diusulkan oleh peneliti 1
untuk dibuatnya suatu regulasi atau aturan yang dapat memberikan kebebasan
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -1 6
dengan metode k-NN seperti yang dilakukan oleh peneliti 2 dan peneliti 3 yang
digabungkan dengan metode stemming yang tidak dilakukan oleh kedua peneliti.
Metode stemming yang dilakukan akan dikombinasikan dengan proses cleaning dan
Berdasarkan analisa keadaan saat ini yang telah dijelaskan dan wawancara
yang dilakukan dengan pakar, maka muncul beberapa permasalahan dalam hal
apakah tweet yang akan diposting aman untuk dibagikan atau dapat berpotensi
melanggar UU ITE.
- Belum adanya sistem untuk mencegah suatu konten negatif yang berpotensi
dibutuhkan suatu sistem yang dapat mendeteksi tweet yang akan dibagikan ke
Twitter. Sistem ini membutuhkan data training yang berasal dari data uji coba yang
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 3 – A N ALI S I S S I S T EM 3 -1 7
apakah suatu tweet yang akan dibagikan aman atau berpotensi mengandung konten
Data training ini digunakan untuk membandingkan tweet baru yang akan
dikirimkan user, yang sebelumnya telah melakukan login kedalam sistem dengan
id twitter yang dimiliki. Sistem ini dibuat seakan-akan seperti user sedang berada
di dalam twitter.
penelitian 3 pada analisis sistem sejenis didapatkan akurasi sebesar 90.55% untuk
proses klasifikasi teks dengan metode klasifikasi k-nn dengan euclidean distance.
Keluaran yang diberikan oleh sistem ini adalah hasil pembandingan tweet dengan
data ujicoba yang berupa kelompok terbanyak dari k data ujicoba yang memiliki
nilai similaritas / jarak terkecil dengan tweet baru. Jika kelompok tweet tersebut
“Melanggar, maka tweet tidak dapat dibagikan, sedangkan jika “Tidak Melanggar”,
maka tweet dapat dibagikan, jika user berkenan untuk membagikan tweet tersebut.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
DESAIN SISTEM
Pada bab ini berisi uraian terkait desain dari sistem yang dikerjakan
berdasarkan hasil analisis yang telah dilakukan sebelumnya. Desain yang diuraikan
terdiri dari desain data, desain proses serta desain tampilan (user interface).
Pada bagian ini dibahas mengenai proses perancangan data sehingga dapat
berjalan baik pada sistem. Perancangan data ini dibagi menjadi dua bagian, yaitu
yang dibutuhkan dan tabel yang berisi setiap entitas dan atribut serta penjelasan dari
kegunaan tiap entitas dan atribut dalam bentuk kamus data. Pada gambar 4.1
menunjukkan hasil rancangan ERD yang akan digunakan dalam sistem ini.
Struktur database dalam bentuk ERD seperti yang ditunjukkan pada gambar
4.1, dimana tabel tweets tidak memiliki relasi dengan tabel user maupun tabel
crawling, tweet yang diinputkan user, tweet hasil preprocessing dan hasil kategori
dari tweet.
BAB 4 – DES AI N S I S TE M 4 -2
kamus data yang berisi penjelasan dari setiap entitas beserta atribut yang ada
didalamnya. Pada tabel 4.1 menunjukkan tabel kamus data dari rancangan ERD
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -3
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -4
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -5
dari frekuensi dari data tweet. File akan berisi document frequency suatu term (dft),
frequency (tf-idf) atau nilai bobot setiap term pada suatu data tweet.
Tipe data yang akan disimpan dalam file ini akan berbentuk JSON. Untuk
Pada bagian ini dijabarkan proses yang terjadi pada sistem. Desain proses
baik dan sesuai dengan alur yang dibuat. Desain proses yang dijabarkan terdiri dari
desain proses login, desain proses preprocessing, desain proses indexing tweet data
uji coba, desain proses posting tweet baru, desain proses crawling data twitter,
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -6
desain proses ubah nilai K, desain proses ubah status tweet dan desain proses ubah
Kemudian user akan diarahkan ke halaman autentikasi (landing page) milik twitter,
dimana user diminta untuk memasukkan username dan password yang telah
didaftarkan ke twitter. Setiap sistem yang memanfaatkan login dengan API twitter
Setelah user menginputkan username dan password yang sesuai. twitter akan
memberikan sebuah token. Token ini berfungsi untuk memberikan akses kepada
sistem untuk melakukan kontrol terhadap aksi yang dapat dilakukan oleh user
sesuai dengan fitur yang tersedia pada sistem yang membutuhkan token tersebut.
Karena sistem ini memanfaatkan API Twitter, sehingga sistem tidak memiliki input
Hal ini karena sistem tidak memiliki database dari pengguna twitter dan twitter
tidak memberikan akses khususnya password user yang login. Tujuannya untuk
aplikasi yang membutuhkan login dengan akun twitter. Setelah selesai twitter akan
melakukan redirect ke sistem utama. Alur dari proses login ini digambarkan seperti
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -7
Tahapan ini diawali dengan menghapus link, angka dan username yang terdapat
proses ini selesai, kemudian hasil kata yang dihasilkan digabungkan kembali
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -8
dihapus, maka tweet akan diubah ke bentuk dasar dengan proses stemming. Setelah
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -9
Proses indexing bertujuan untuk menyimpan nilai document frequency (dft) dan
nilai term-frequency inverse document frequency (tf-idf) dari data uji coba. Proses
indexing diawali dengan membaca seluruh data ujicoba yang tersimpan dalam
database.
Untuk setiap tweet data ujicoba yang dibaca dilakukan proses preprocessing.
Setelah dilakukan preprocessing maka tweet tersebut akan dipecah menjadi token
unigram. Setiap token akan memiliki nilai dft dan nilai tf-idf yang akan disimpan
sementara dalam sebuah array. Setelah proses pembacaan data selesai, maka nilai
dft dan nilai tf-idf yang disimpan dalam array dituliskan kedalam file. Pada gambar
Alur proses ini dapat digambarkan seperti pada gambar 4.5. Sistem akan
kemudian dilakukan pembobotan tf-idf. Pembobotan tf-idf tweet baru ini dilakukan
dengan menggunakan hasil indexing data uji coba sebagai data training yang
4). Setelah didapatkan nilai similaritas antara dataset uji coba dan tweet baru, maka
dengan metode k-nearest neighbor dengan nilai k tertentu, kemudian diambil k data
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 0
teratas untuk menentukan nilai kelas terbanyak yang terpilih dan data tweet baru
Jika dari k kelas teratas menghasilkan melanggar maka akan muncul pesan
yang menyatakan bahwa tweet tersebut melanggar, sedangkan jika tidak melanggar
maka user diberikan opsi untuk melakukan post tweet atau tidak.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 1
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 2
Untuk mengumpulkan dataset uji coba dilakukan proses crawling. Pada gambar
4.6 menunjukkan alur proses crawling data pada twitter. Proses crawling data yang
API Twitter, sistem melakukan query terhadap kata kunci yang diberikan. Dalam
hal ini tweet yang diharapkan dari query tersebut adalah berbahasa Indonesia.
API Twitter akan memberikan respon berupa tweet yang berhasil diambil.
Kemudian tweet yang berhasil diambil akan dipilih dan dikategorikan secara
Nilai K merupakan salah satu faktor yang menentukan hasil klasifikasi dari
tweet. Mengubah nilai K bertujuan untuk menemukan nilai yang sesuai tepat untuk
memasukkan nilai K yang diinginkan. Jika berhasil menyimpan nilai K yang baru,
Nilai K yang baru akan disimpan didalam sistem, sehingga setiap tweet baru yang
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 3
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 4
Melanggar”. Admin dapat melakukan perubahan status dari sebuah tweet. Alur dari
Mengubah status tweet dilakukan dengan menekan tombol “Ubah Status” pada
kolom aksi dari tweet yang akan diubah. Sistem akan menyimpan perubahan status
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 5
Pada bagian ini menjelaskan rancangan tampilan dari sistem yang dibuat yang
terdiri dari tampilan halaman awal sistem, halaman menu admin dan tampilan
Halaman login akan digunakan oleh setiap user baik admin maupun user biasa
untuk menggunakan sistem ini. Pada halaman ini berisi sebuah tombol login yang
Pada gambar 4.9 menunjukkan halaman login dari sistem ini. Sistem ini
menggunakan API twitter dalam proses login, sehingga akan diarahakan pada
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 6
landing page login twitter sehingga pada halaman login sistem tidak terdapat kolom
Halaman awal merupakan halaman utama yang tampil ketika user melakukan
akses kedalam sistem. Untuk sistem ini halaman awal dibagi menjadi 2 dibagi
menjadi 2 macam yaitu untuk halaman untuk user admin dan user biasa.
Setelah melakukan login, user admin akan diarahkan menuju halaman awal dari
sistem ini. Pada halaman awal admin terdiri dari tiga bagian, bagian 1 merupakan
menu yang dapat diakses oleh admin, bagian 2 merupakan tempat admin akan
mengisikan suatu tweet dan bagian 3 merupakan kumpulan tweet dari user twitter
lainnya yang diikuti oleh user admin yang sedang login kedalam sistem.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 7
Untuk bagian menu admin terdiri dari 3 menu, yaitu “Home”, “Data Training”
dan “History Data”. Pada gambar 4.10 menunjukkan tampilan halaman awal untuk
user admin.
Pada tampilan halaman awal user biasa serupa dengan tampilan untuk user
admin. Dimana terdapat 3 bagian yaitu, bagian menu, bagian posting tweet dan
Pada user biasa untuk bagian menu “Data Training” dan “History Data” tidak
ditampilkan karena menu tersebut hanya dapat diakses oleh admin. Gambar 4.11
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 8
Pada bagian ini akan dibahas terkait dengan menu yang dapat diakses oleh user
admin. Menu yang dapat diakses oleh user admin adalah menu “Data Trainig” dan
“History Data”.
Halaman menu data training digunakan untuk melakukan pengelolaan data uji
coba yang dibagi menjadi 2 bagian yaitu “Data Training” dan “Aksi”. Pada
tampilan awal, secara default akan menampilkan tabel yang berisi kumpulan data
uji coba berupa isi tweet dan kategori tweet dari database pada sub-bagian “Data
Training” seperti pada gambar 4.12 Untuk setiap baris data diberikan sebuah
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -1 9
Untuk melakukan pencarian terhadap suatu data tertentu, pada halaman sub-
berdasarkan kata kunci. Kata kunci yang dimasukkan akan menyesuaikan dengan
data pada tabel tersebut dengan id, tweet dan tweet hasil preprocessing. Serta pada
halaman ini juga disediakan combobox pilihan untuk menampilkan jumlah data
Tombol “Ubah Status” berfungsi untuk merubah status data uji coba dari
status selesai dilakukan maka akan muncul pesan yang berisi informasi terkait tweet
yang dirubah dan perubahan statusnya seperti yang ditunjukkan pada gambar 4.13.
crawling, indexing dan mengubah nilai k. Sehingga pada menu ini terdapat 3 buah
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -2 0
tombol utama yaitu “Crawling”, “Indexing” dan “Ubah Nilai K”. Gambar 4.14
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -2 1
Twitter. Pada sistem ini diberikan 2 pilihan untuk melakukan proses crawling yaitu
yang akan di crawling dan jumlah perulangan yang ingin dilakukan . Sistem akan
informasi kepada user crawling sedang diproses akan ditampilkan dalam bentuk
Setelah proses loading data crawling selesai, jika request berhasil diproses dan
sistem memperoleh data dari proses tersebut, maka data tersebut akan ditampilkan
pada tabel dan akan muncul sebuah tombol “Save Data Uji” seperti gambar 4.17.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -2 2
Pada setiap baris data yang muncul pada tabel terdapat kolom status yang berisi
combobox pilihan kategori untuk setiap tweet. User akan memilih data yang akan
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -2 3
Baris tweet yang telah dipilih akan memiliki warna berbeda dengan tweet yang
tidak dipilih. Setelah selesai memilih dan mengkategorikan tweet, user akan
menekan tombol “Save Data Uji” yang akan memunculkan modal konfirmasi
kebenaran terkait tweet yang dipilih dan pengkategorian yang dilakukan seperti
gambar 4.18. Pada halaman ini juga disediakan kolom pencarian berdasarkan tweet.
Jika terdapat tweet yang dipilih namun belum dikategorikan, maka seluruh
tweet gagal disimpan dan akan muncul modal notifikasi seperti gambar 4.19.
Sedangkan, jika seluruh tweet telah dikategorikan, maka akan muncul modal
notifikasi seperti pada gambar 4.19 dengan isi pesan yang berbeda dan akan
(k) dari dokumen yang memiliki similaritas / jarak terkecil yang digunakan untuk
proses pembandingan. Tombol ini akan memunculkan modal yang digunakan untuk
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -2 4
menginputkan nilai K yang baru seperti pada gambar 4.20. Setelah melakukan
perubahan maka akan diarahkan ke halaman utama data training dengan notifikasi
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -2 5
ujicoba yang ada. Setelah berhasil melakukan proses indexing, maka akan
diarahkan ke halaman utama seperti pada gambar 4.13 dengan pesan notifikasi.
Halaman “History Data” digunakan untuk melihat hasil klasifikasi tweet baru
yang telah dibandingkan dengan tweet data uji coba. Tampilan utama dari halaman
ini seperti yang ditunjukkan oleh gambar 4.21, berisi kumpulan tweet serta hasil
pengklasifikasian tweet baru yang disajikan dalam bentuk tabel. Setiap data
terdapat aksi “Detail” untuk melihat history klasifikasi data tersebut. Data yang
Aksi “Detail” berguna untuk melihat data yang digunakan sebagai pembanding
tweet baru yang telah diklasifikasikan kedalam kategori tertentu. Pada detail yang
ditampilkan terdiri dari tweet yang di uji, tweet pembanding, nilai K yang
digunakan, kategori tweet pembanding serta nilai hasil perhitungan jarak antar
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -2 6
Tampilan ini akan muncul sebagai pesan peringatan ketika sistem memberikan
feedback kepada user. Pesan peringatan ini berisi informasi terkait hasil dari
konten negatif. Sedangkan jika tweet baru yang dibagikan tidak mengandung
konten negatif, maka akan muncul pesan “Tweet anda dapat diposting” serta
konfirmasi jika tweet tersebut benar akan dibagikan ke twitter seperti pada gambar
4.24.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 4 – DES AI N S I S TE M 4 -2 7
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
IMPLEMENTASI
Pada bab ini berisi pembahasan terkait implementasi yang dilakukan dalam
pembuatan tugas akhir ini. Bab ini menerangkan hasil dari desain yang telah
dijelaskan pada bab 4. Pada bab ini dibagi menjadi 2 bagian yaitu, Implementasi
framework PHP Laravel 5.7 dengan konsep MVC dan Implementasi data dengan
MySQL.
yang telah dijelaskan pada bab 4. Implementasi database akan dilakukan terhadap
setiap tabel berdasarkan ERD yang telah dibuat dan implementasi file terkait
Pada sub-bab ini berisi penjelasan tabel pada ERD yang dibuat. Tabel yang
Tabel user pada database sistem ini bernama “users”. Tabel ini digunakan untuk
menyimpan informasi user yang menggunakan sistem ini. Data yang disimpan
BAB 5 – I MP LE ME N TAS I 5 -2
adalah nama, email, role, nilaiK, isActive. Data nama dan email diperoleh dari
twitter setelah user melakukan login pada landing page twitter. Gambar 5.1
media sosial twitter untuk user yang login kedalam sistem. Tabel ini berelasi one-
to-one dengan tabel user, dimana tabel ini menerima foreign key dari tabel user.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -3
Tabel tweet pada database sistem ini bernama “tweets”. Tabel ini digunakan
untuk menyimpan tweet data uji coba maupun tweet baru hasil testing yang
diinputkan. Data yang disimpan berupa id tweet dari twitter, user yang
membagikan, tweet asli, tweet hasil preprocessing, kategori tweet dan status tweet.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -4
Tabel log tweet pada database sistem ini bernama “log_tweets”. Tabel ini
digunakan untuk proses debugging sistem, dimana tabel ini menyimpan informasi
jika terdapat suatu perubahan pada suatu tweet. Tabel ini memiliki relasi one-to-
many dengan tabel “tweets” dan tabel ini menerima donor foreign key dari tabel
“tweets”.
perubahan yang terjadi pada tweet tersebut. Pada gambar 5.4 menunjukkan struktur
Tabel history tweet pada database sistem ini bernama “history_tweets”. Tabel
ini digunakan untuk menyimpan informasi tweet baru yang digunakan sebagai data
uji. Informasi yang disimpan berupa id tweet yang merupakan data testing serta
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -5
Tabel ini memiliki relasi one-to-many dengan tabel “tweets” dan tabel ini
menerima donor foreign key dari tabel “tweets”. Pada gambar 5.5 menunjukkan
dari tweet yang digunakan untuk membandingkan tweet data uji. Informasi yang
Tabel ini memiliki relasi one-to-many dengan tabel “tweets” dan tabel
“history_tweets”. Tabel ini menerima donor foreign key dari tabel “tweets” maupun
detail_history_tweets.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -6
document frequency (dft), term frequency (tf) pada suatu dokumen dan nilai tf-idf.
Struktur dari penyimpanan yang akan dilakukan dapat dilihat pada gambar 5.7
untuk penyimpanan dft dan gambar 5.8 untuk penyimpanan tf dan tf-idf.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -7
dengan status aktif lalu dilakukan preprocessing terhadap data tersebut. Proses
tersebut akan melalui proses tokenisasi untuk dipecah menjadi token-token dengan
Fungsi ini membutuhkan 2 parameter yaitu, pemisah objek dalam hal ini adalah
kata dalam kalimat dan objek yang akan diproses. Potongan program pada listing
nilai dft dan nilai tf untuk masing masing dokumen pada file. Selain melakukan
perhitungan nilai dft dan nilai tf, juga dilakukan perhitungan nilai tf-idf.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -8
dalam dokumen. Dalam suatu dokumen jika terdapat 2 kata yang sama, maka akan
apakah kata tersebut sudah pernah disimpan atau belum, jika belum maka
kemunculan kata dalam dokumen tersebut akan di set 1, jika sudah maka akan
pada listing 5.2 menunjukkan proses perhitungan nilai dft dan nilai tf hasil
tokenisasi.
foreach($arrTokenisasi as $item)
{
if(!$arrTemp[$item]) //Untuk masukkan df
{
if(isset($arrTermDf[$item]))
$arrTermDf[$item]+=1;
else
$arrTermDf[$item]=1;
$arrTemp[$item]=true;
}
if(isset($arrTerminDoc[$count][$item]['tf']))
$arrTerminDoc[$count][$item]['tf']+=1;
else
$arrTerminDoc[$count][$item]['tf']=1;
}
Setelah dilakukan perhitungan dft dan tf, kemudian dilakukan perhitungan tf-
idf untuk setiap kata dalam dokumen. Perhitungan tf-idf dilakukan dengan
menggunakan nilai tf setiap kata dalam suatu dokumen dan nilai idf yang
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -9
Listing 5.3 Potongan program perhitungan nilai tf-idf dan penyimpanan hasil
file_put_contents('termDf_v4.json',json_encode($arrTermDf));
file_put_contents('termInDoc_v4.json',json_encode($arrTerminDoc
));
Pada sub bab ini dijelaskan mengenai implementasi yang dilakukan berdasarkan
Twitter” dan diarahkan ke landing page login twitter. Untuk melakukan proses
Secret. Kemudian melakukan request untuk diarahkan ke landing page twitter dan
menerima token. Token ini digunakan untuk kembali ke sistem setelah melakukan
login melalui twitter. Potongan program pada listing 5.4 menunjukkan proses
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 0
$connection = new
TwitterOAuth(env('TWITTER_CONSUMER_KEY'),env('TWITTER_CONSUMER_
SECRET'));
$reqToken = $connection->oauth("oauth/request_token",
array("oauth_callback" =>
"http://localhost:8085/TwitterUUApp/public/callback/twitter"));
$url = $connection->url("oauth/authenticate",
array("oauth_token" => $reqToken['oauth_token']));
Session::put('oauth_token',$reqToken['oauth_token']);
Session::put('oauth_token_secret',$reqToken['oauth_token_secret
']);
return redirect()->away($url);
login dengan akun yang dimiliki. Setelah berhasil melakukan login ke twitter, jika
pengguna adalah pengguna baru, maka akan disimpan ke dalam database dan
if(isset($_GET['oauth_verifier']))
{
$token = $connection->oauth('oauth/access_token',[
'oauth_verifier' => $_GET['oauth_verifier']]);
try
{
$connection2 = new
TwitterOAuth(env('TWITTER_CONSUMER_KEY'),env('TWITTER_CO
NSUMER_SECRET'),$token['oauth_token'],$token['oauth_toke
n_secret']);
}
catch (Exception $e){
return redirect('/')->with('alert', 'Anda belum login');
}
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 1
$account =
SocialTwitterAccount::where('provider_user_id',$detail->id)-
>first();
if ($account) {
auth()->login($account->user);
}
else
{
$account = new SocialTwitterAccount([
'provider_user_id' => $detail->id,
'provider' => 'twitter']);
$user = User::where('email',$detail->email)->first();
if (!$user) {
$user = User::create([
'email' => $detail->email,
'name' => $detail->name,]);
}
$account->user()->associate($user);
$account->save();
auth()->login($user);
}
return redirect()->to('/');
}
return redirect('/')->with('alert', 'Anda belum login');
normalisasi terhadap suatu tweet. Tahapan awal diawali dengan “Link Removal”.
Tahapan ini dilakukan untuk menghapus link yang terdapat dalam suatu tweet.
Fungsi ini membutuhkan 3 parameter, pola, pengganti, serta objek yang akan
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 2
$regex = "@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-
]*(\?\S+)?[^\.\s])?)?)@";
$strNoLink = preg_replace($regex, ' ', $tweet);
simbol “@” dalam suatu tweet. Pada listing 5.7 menunjukkan potongan program
“Number Removal”. Proses ini dilakukan untuk menghapus angka yang melekat
pada suatu kalimat. Sebagai contoh “undang2” menjadi “undang. Pada listing 5.8
ini bertujuan untuk melakukan ekstraksi kata yang terdapat dalam suatu hastag.
Hastag yang terdapat dalam suatu tweet dapat mengandung kata yang dapat
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 3
Proses ini diawali dengan memisahkan simbol hastag dengan tweet. Untuk
membutuhkan 3 parameter, yaitu pola, objek yang akan diproses, hasil dari
dicek apakah seluruh karakter setelah simbol hastag (#) terdiri dari huruf kapital
atau tidak.
Jika seluruh karakter setelah simbol hastag (#) adalah huruf kapital atau huruf
kecil, maka dianggap 1 kata. Sedangkan jika campuran, maka akan dipisahkan
Fungsi ini membutuhkan 2 parameter yaitu pola dan objek yang akan diproses.
“Membara”. Potongan program proses hastag processing dapat dilihat pada listing
5.9.
“Stopword Removal”. Proses ini memanfaatkan library “Sastrawi”. Cara kerja dari
Kemudian stopword akan dihapus setelah tweet diubah kedalam huruf kecil dengan
fungsi php “strtolower”. Pada listing 5.10 menunjukkan potongan program proses
stopword removal.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 4
$regexHT = "@#\w+@";
preg_match_all($regexHT,$strNoLink,$delete_User);
$resHastag = "";
foreach($delete_User[0] as $key => $item)
{
if(!ctype_lower(substr($item,1)) &&
!ctype_upper(substr($item,1)))
{
//Memisahkan setiap huruf kapital awal
$regx2 ="@(?=[A-Z])@";
$value = preg_split($regx2,$item);
unset($value[0]);
$resHastag = $resHastag.implode(' ',$value)." ";
}
else
$resHastag = $resHastag.' '.substr($item, 1);
}
untuk mengubah kedalam kata dasar. Proses ini diawali dengan menginisialisasi
fungsi “stem”, setiap kata diubah kedalam bentuk dasar. Proses stemming ini
memanfaatkan library php “Sastrawi”. Cara kerja dari library sastrawi adalah
sebagai berikut:
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 5
4. Hasil normalisasi setiap token akan dikembalikan menjadi suatu kalimat utuh.
removal seperti pada listing 5.10 untuk menghapus stopword yang masih tersisa
dari hasil dari proses stemming. Pada proses stopword removal ini juga dilakukan
proses untuk memisahkan kata-kata yang memiliki panjang kurang dari 3 karakter.
Hal ini dilakukan karena, didalam tweet terdapat kata singkatan yang memiliki
panjang kurang dari 3 karakter yang tidak diproses. Sebagai contoh “yg”,
“dr”,”mn”. Untuk melakukan hal tersebut digunakan fungsi php “explode” untuk
memecah kalimat baru menjadi kumpulan token, “unset” untuk menghapus kata
dalam kumpulan token dan “implode” untuk menggabungkan kembali token yang
digunakan. Program untuk menghapus kata tersebut ditunjukkan pada listing 5.12.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 6
dokumen data uji coba pada file yang disimpan. Proses indexing dilakukan dengan
membaca seluruh dataset uji coba dan untuk setiap dataset uji coba dilakukan
preprocessing, tokenisasi dan hasilnya disimpan dalam sebuah array yang akhirnya
tahapan. Pengguna akan menekan tombol “Post Tweet” setelah mengisi kolom
inputan tweet.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 7
distance dengan hasil indexing data uji coba yang telah diproses dan disimpan
Proses pembobotan diawali dengan membandingkan kata pada data baru yang
terdapat didalam data uji coba. Jika kata berada dikedua data, maka nilai tf-idf
keduanya akan dikurangkan lalu dikuadratkan dengan fungsi PHP “pow”. Fungsi
ini membutuhkan 2 parameter yaitu, angka dan pangkat. Jika tidak maka yang
membobotkan kata pada data uji yang belum dibobotkan. Jika kata pada data uji
terdapat dalam file indexing, maka dilakukan perhitungan tf-idf, sedangkan jika
tidak maka bobot kata tersebut dianggap 0. Semua nilai hasil perhitungan akan
5.13.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 8
$eucRes += pow((0-$dalamQuery),2);
}
$item=false;
}
$arrEucl[$tweet_id] = sqrt($eucRes);
dilanjutkan dengan melakukan proses k-nn. Proses ini diawali dengan melakukan
sorting terhadap nilai jarak hasil perhitungan antara data uji dan data uji coba.
Proses sorting dilakukan secara ascending yang akan mengurutkan nilai dari nilai
terkecil menuju nilai terbesar. Proses pengurutan ini dilakukan dengan fungsi php
“array_multisort()”.
Fungsi ini membutuhkan parameter utama yaitu array yang akan diurutkan dan
(DESC)), serta jenis data yang diurutkan (contoh: numeric). Pada pengurutan ini
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -1 9
$jarakTemp = array();
foreach ($arrEucl as $key => $dataJarak) {
$jarakTemp[] = $dataJarak;
}
$keys = array_keys($arrEucl);
array_multisort($jarakTemp,SORT_ASC,SORT_NUMERIC,$arrEucl,$keys
);
$arrEucl = array_combine($keys, $arrEucl);
Setelah mengambil nilai k, tweet baru yang diuji akan disimpan kedalam database
Selanjutnya melakukan penyimpanan id tweet yang merupakan data uji dan nilai K
HistoryTweet.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -2 0
$i=env('Nilai_K');
$arrSentimentResult = [];
foreach($arrEucl as $key=>$item)
{
if($i>0)
$i--;
else
break;
if(isset($arrSentimentResult[$getTweet->isMelanggar]))
$arrSentimentResult[$getTweet->isMelanggar]+=1;
else
$arrSentimentResult[$getTweet->isMelanggar]=1;
}
for($i=0;$i<2;$i++)
if(!isset($arrSentimentResult[$i]))
{
$arrSentimentResult[$i]=0;
}
Hasil dari pengkategorian juga akan dikembalikan ke pengguna. Jika hasil yang
didapat “Tidak Melanggar”, maka pengguna diberi dapat mengirimkan tweet atau
Potongan program untuk mengirimkan tweet ke twitter seperti pada listing 5.16.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -2 1
Proses crawling digunakan untuk mengambil dataset uji coba berdasarkan kata
kunci tertentu dari twitter. Pada sistem ini disediakan 2 jenis crawling, berdasarkan
modal crawling seperti pada gambar 4.15. Untuk proses crawling berdasarkan
data tweet. Program crawling dengan username ditunjukkan pada listing 5.17.
tabel 5.2 dengan memanggil fungsi GET “search/tweets” yang ditunjukkan pada
listing 5.18.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -2 2
if($max_id==NULL)
{
$queryUser = array(
"screen_name" => $request->get('inputan'),
"count" =>$request->get('jumData'),
"exclude_replies" => true,
"include_rts" => false,
"tweet_mode" => "extended",
);
}
else
$queryUser = array(
"screen_name" => $request->get('inputan'),
"count" =>$request->get('jumData'),
"exclude_replies" => true,
"include_rts" => false,
"tweet_mode" => "extended",
"max_id" => $max_id,
);
$results2 = Session::get('connect')-
>get('statuses/user_timeline', $queryUser);
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -2 3
Data hasil crawling akan ditampilkan pada halaman crawling yang selanjutnya
pengguna akan memilih data uji coba untuk disimpan. Setelah memilih, setiap data
yang dipilih akan dilooping dan disimpan ke database. Potongan listing 5.19
foreach($request->get('data') as $item)
{
if($item[1]==null)
$item[1]=$item[2];
$newTweet = new Tweet([
'id_str_tweet' => $item[3],
'name' => $item[1],
'screen_name' => $item[2],
'tweet' => $item[4],
'tweet_stemmed' => $this->preProcessing($item[4]),
'isMelanggar' => $item[5],
'isActive'=>0,
]);
$newTweet->save();
if($item[5])
{
$log = new LogTweet([
'detail_perubahan'=>'Menambahkan Tweet '.$newTweet-
>id.' dengan status "Melanggar"',
'tweet_id'=>$newTweet->id,
]);
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -2 4
memberikan hasil yang terbaik dalam proses pengkategorian data uji. Proses
listing 5.20.
Nilai k yang dirubah akan disimpan kedalam sistem dengan fungsi php
sama. Fungsi ini memiliki 3 parameter yaitu, lokasi penyimpanan, data yang akan
disimpan, konten file yang akan diubah. Proses pengubahan nilai K ini hanya dapat
$path = base_path('.env');
if (file_exists($path)) {
$us = User::find($id);
$us->nilaiK = $request->get('nilai');
$us->save();
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -2 5
Proses ini dilakukan untuk mengubah status suatu tweet menjadi “Melanggar”
atau “Tidak Melanggar”. Admin memilih dan mengubah status tweet dengan
Sistem akan mengubah nilai isMelanggar pada suatu tweet didalam database.
Jika tweet tersebut “Melanggar”, setelah proses mengubah status tweet nilai
isMelanggar akan menjadi “0”, sedangkan jika tweet “Tidak Melanggar” maka nilai
isMelanggar akan menjadi “1”. Program mengubah status tweet ditunjukkan pada
listing 5.21.
if($tweet->isMelanggar)
{
$log = new LogTweet([
'detail_perubahan'=>'Perubahan Status Tweet ID
'.$id.' menjadi "Melanggar"',
'tweet_id'=>$id
]);
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 5 – I MP LE ME N TAS I 5 -2 6
$log->save();
return $request->session()->flash('status', 'Berhasil
Update Status Tweet ID:'.$id.' menjadi "Melanggar"');
}
else
{
$log = new LogTweet([
'detail_perubahan'=>'Perubahan Status Tweet ID
'.$id.' menjadi "Tidak Melanggar"',
'tweet_id'=>$id
]);
$log->save();
return $request->session()->flash('status', 'Berhasil
Update Status Tweet ID:'.$id.' menjadi "Tidak
Melanggar"');
}
}
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
UJICOBA dan EVALUASI
Pada bab ini berisi tahapan yang dilakukan untuk melakukan ujicoba terhadap
sistem yang dibangun. Tahapan yang dilakukan terdiri dari 2 tahapan yaitu
verifikasi dan validasi. Verifikasi dilakukan untuk memastikan fungsi yang dibuat
dalam sistem dapat berjalan dengan baik. Sedangkan untuk validasi dilakukan
untuk menguji bahwa sistem dapat memberikan hasil keluaran sesuai dengan yang
diharapkan.
6.1 Verifikasi
Pada sub-bab ini akan berisi verifikasi terkait proses posting tweet baru, proses
penentuan kategori tweet, proses crawling, proses merubah nilai K, proses merubah
Pengguna dapat membagikan tweet dalam bentuk teks pada halaman utama
seperti yang tampak pada gambar 6.1. Panjang tweet yang diperbolehkan dalam
suatu tweet berdasarkan standar twitter adalah 140 karakter. Ketika pengguna
Validasi yang dilakukan terkait dengan kolom input tweet yang kosong serta
panjang karakter yang diinputkan melebihi batas standar twitter. Pada gambar 6.2
menunjukkan pesan validasi jika terjadi error terkait inputan tweet kosong.
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2
Sedangkan pada gambar 6.3 menunjukkan pesan validasi jika panjang karakter
melebihi 140.
membagikan tweet seperti gambar 6.4. Kemudian akan muncul pesan konfirmasi
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3
dan sebuah tombol “Post Tweet” jika tweet benar ingin dibagikan ke twitter. Jika
dibagikan, maka akan muncul pesan seperti pada gambar 6.5. Sedangkan jika gagal
Gambar 6.3 Pesan validasi kolom input berisi lebih dari 140 karakter
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4
distance untuk menentukan kategori suatu tweet baru yang dilakukan oleh sistem
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -5
Sebagai contoh diberikan data input dan nilai parameter k seperti pada tabel 6.1.
Setelah dilakukan ujicoba perhitungan oleh sistem didapatkan hasil seperti yang
ditunjukkan pada tabel 6.2. Sebanyak k tweet terdekat memiliki mayoritas kelas
Tabel 6.2 Contoh hasil perhitungan k-nn euclidean distance oleh sistem (k=5)
No Tweet Asli Hasil Distance Status
Preprocessing
Jadwal Judi Sabung Ayam jadwal judi 3.726185 Melanggar
SV388 3 November 2018 sabung ayam 1041348
http://www.a**********yam. november
1
com/jadwal-ju***********
yam-sv388-3-november-2018/
…
Ba***at:( ba***at 3.778261 Melanggar
2
https://t.*****u2crmGjR 6926166
Ba***at 😂😂😂 ba***at 3.778261 Melanggar
3 6926166
https://t.*****Ymbm4qFf
@d***r0 @F***X ba***at 3.778261 Melanggar
4 @Rih*****owo 6926166
@Far******bain ba***at
ba***at ba***at 3.778261 Melanggar
5
6926166
sistem adalah benar maka dilakukan perhitungan secara manual. Sebagai contoh
akan dilakukan perhitungan similaritas antara data tweet uji dengan data no.3
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -6
menjadi token secara unigram seperti pada tabel 6.3. kemudian dilakukan
pembobotan token dengan tf-idf untuk data testing dan data pembanding seperti
pada tabel 6.4 dengan hasil indexing database yang tersimpan dalam file. Setelah
selisih bobot tiap token antara kedua data tersebut yang ditunjukkan pada tabel 6.5.
Tabel 6.4 Proses pembobotan data testing dan data pembanding No.3
Data Pembanding
Token tf Df idf tf-idf (Wp)
ba***at 1 237 1.2229468 1.2229468
Data Testing
Token tf Df idf tf-idf (Wtest)
judi 1 158 1.3990381 1.3990381
bola 1 95 1.6199716 1.6199716
sabung 1 29 2.1352972 2.1352972
ayam 1 49 1.9074991 1.9074991
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -7
Berdasarkan hasil perhitungan selisih kuadrat bobot setiap token seperti yang
diberikan. Hasil yang diberikan oleh sistem memiliki presisi 13 digit, sedangkan
presisi yang digunakan pada perhitungan pada tabel 6.5 adalah sebanyak 7 digit.
berjalan dengan baik dan benar serta hanya dapat dilakukan oleh user admin. Untuk
melakukan proses crawling diawali dengan masuk pada halaman “Data Training”
pada gambar 6.7. Jika pengguna yang melakukan akses bukan user admin maka
Setelah masuk pada halaman utama, user akan menekan tombol “Crawling”
dimana akan menampilkan pilihan untuk melakukan proses crawling. Pilihan yang
disediakan terdiri dari 2, yaitu crawling dengan username seperti yang ditunjukkan
pada gambar 6.9 atau crawling dengan keyword seperti yang ditunjukkan pada
gambar 6.10.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -8
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -9
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 0
keyword. Untuk memperoleh data yang diinginkan, user akan mengisikan kolom
“Query”, jumlah data yang diinginkan dan jumlah perulangan terlebih dahulu
Sistem akan melakukan validasi terhadap setiap inputan user. Jika dalam proses
crawling ini terdapat kesalahan, sistem akan memunculkan pesan error seperti pada
gambar 6.12. Jika tidak, pengguna akan menekan tombol “Start Crawling” untuk
Setelah pengguna menekan tombol tersebut, jika terdapat data dengan keyword
yang diberikan oleh pengguna, maka sistem akan menampilkan data hasil crawling
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 1
serta sebuah tombol “Save Data Uji” untuk menyimpan data uji coba yang
Pengguna akan memilih tweet yang diinginkan untuk disimpan sebagai data uji
coba, serta menentukan kategori dari tweet tersebut, “Melanggar” atau “Tidak
Melanggar”. Proses memilih tweet untuk disimpan dapat dilihat pada gambar 6.14.
Selesai seluruh tweet dipilih, user akan menekan tombol “Save Data Uji”,
kemudian sistem akan memberikan pesan konfirmasi kepada user. Konfirmasi ini
berguna untuk memastikan bahwa proses pelabelan tweet yang dipilih telah
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 2
Jika terdapat tweet yang dipilih, tetapi belum ditentukan kategori tweet
tersebut, sistem akan memberikan peringatan kepada user bahwa belum dilabeli
jika semua tweet yang dipilih telah ditentukan, maka sistem akan menyimpan
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 3
kedalam database dan akan diberikan pesan informasi berhasil menyimpan. Contoh
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 4
Verifikasi dilakukan agar fungsi yang digunakan untuk merubah nilai K dapat
berjalan dengan baik. Tampilan utama dari mengubah nilai K sama dengan halaman
utama proses crawling pada gambar 6.7. Proses merubah nilai K diawali dengan
menekan tombol “Ubah Nilai K” yang akan memunculkan modal kolom inputan
Pada modal tersebut terdapat tombol “Ubah Nilai” yang akan memproses
perubahan yang terjadi. Sistem akan melakukan pengecekan error terkait dengan
jenis inputan yang diberikan ataupun jika kolom kosong. Jika berhasil akan
Training” beserta pesan error yang diberikan. Contoh pesan peringatan error
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 5
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 6
Halaman ini hanya dapat diakses oleh user admin. Jika diakses oleh pengguna
lain, maka akan muncul pesan peringatan seperti gambar 6.8. Admin dapat
Melanggar” ataupun sebaliknya dapat mengunjungi halaman utama data uji coba
sub-menu “Data Training” seperti pada gambar 6.21. Pada halaman tersebut akan
Setiap data yang ditampilkan akan memiliki pilihan aksi untuk merubah status
yang berupa tombol “Ubah Status” pada kolom aksi. Sebagai contoh, user admin
akan melakukan perubahan terhadap tweet no.1, maka admin akan menekan tombol
“Ubah Status” pada kolom ke-5 baris no.1. Status “Melanggar” dari tweet tersebut
akan berubah menjadi “Tidak Melanggar”. Hasil dari contoh tersebut dapat dilihat
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 7
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 8
Validation
Pada sub-bab ini akan dibahas proses verifikasi yang dilakukan untuk
memastikan bahwa hasil validasi terhadap nilai akurasi dari setiap bagian dari k-
fold adalah benar. Untuk memastikan bahwa proses perhitungan telah dilakukan
dengan benar, peneliti akan mengambil contoh dengan nilai k-fold=99 dan nilai k=3
secara manual dengan kategori pelabelan yang diberikan oleh sistem. Pada tabel 6.6
menunjukkan kategori pelabelan data secara manual dari database dan hasil yang
Tabel 6.6 Contoh tabel sampel data uji coba ID=1 sampai 40
ID Tweet Pelabelan Manual Pelabelan oleh Sistem
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
8 1 1
9 1 1
10 1 1
11 1 1
12 1 1
13 1 1
14 1 1
15 1 0
16 1 1
17 1 1
18 1 1
19 1 1
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -1 9
Tabel 6.6 Contoh tabel sampel data training uji ID=1 sampai ID=40 (lanjutan)
20 1 1
21 1 1
22 1 1
23 1 1
24 1 1
25 1 1
26 1 1
27 1 1
28 1 1
29 1 1
30 1 1
31 1 1
32 1 1
33 1 1
34 1 1
35 1 1
36 1 1
37 1 1
38 1 0
39 1 1
40 1 1
Berdasarkan hasil pelabelan secara manual dan oleh sistem pada tabel 6.6,
proses untuk menghitung akurasi satu bagian dari sebuah nilai k-fold dan nilai k
38
= 𝑥 100%
40
= 95 %
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 0
akurasi per bagian. Sebagai contoh, digunakan perhitungan k-fold=99 dan nilai k=3
Berdasarkan hasil tabel 6.7, dapat dihitung rata-rata akurasi yang dihasilkan
dari sebuah nilai k-fold dan nilai k. Sebagai contoh akan dihitung rata-rata akurasi
dari nilai k-fold=99 dan nilai k=3 dengan persamaan (2-1) tanpa pengali 100%
sebagai berikut:
Total akurasi
Akurasi =
nilai k−Fold
6075
= % = 61.36363636 %
99
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 1
6.2 Validasi
diharapkan, maka pada tahapan ini dilakukan 2 tahapan validasi yaitu, validasi data
Pada penelitian ini data tweet yang dikumpulkan sebanyak 3960 data ujicoba
yang didapatkan dari hasil proses crawling twitter. Total 3960 data tweet terdiri dari
2011 data yang termasuk kategori “Melanggar” dan 1949 data dikategorikan “Tidak
proses pelabelan dibantu oleh seorang pakar hukum yaitu Anton Hendrik Samudra,
S.H., M.H., yang merupakan salah seorang dosen fakultas hukum Universitas
Surabaya. Validasi data uji coba dilakukan dengan wawancara dengan pakar hukum
yang dibuktikan dengan surat pernyataan pada Lampiran B, serta sampling data
contoh untuk melihat ciri-ciri dari suatu tweet yang dikategorikan “Melanggar” dan
“Tidak Melanggar”.
wawancara dan sampling serta ciri yang ditunjukkan pada tabel 3.1. Informasi yang
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 2
Tabel 6.9 menunjukkan 60 data (35 data “Melanggar” dan 25 data “Tidak
Melanggar”) yang digunakan untuk proses sampling. Data sampling tersebut telah
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 3
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 4
Tweet Kategori
Koalisi rezim pun koalisi KOTOR dan Duit Jumlah lebih Melanggar
BESAR berputar disana.... @K****I ba***at harus adil,
jgn mentang mantan jubir mu mjd jubir presiden, engkau
ra iso popo. @seti*****ana21 @yo****awir
@Jas*****neox @ka****de78 https://t.*****L0tniUGF
@Min******ber @ma*****eman @pr****o @sa****no Melanggar
@Ge****ra @P***okrat @P****ahtera @Su*****rkarya
@Po****amRI @tni_ad @Ko****V @jo***i Makaya
otak di pake k***ol lu kaum sampah Pr****o Impotent lo
an***g
😂😂😂 Selama otak lo gak lebih mesum daripada Melanggar
kelamin lo, lo pasti bisa mikir mana yang bener dan salah
kecuali otak lo di k**ol, letaknya jauh diatas tapi kok
serasa gak guna 😂😂😂 https://t.**uLdekBKs
@qi**r @noe*****man @to****AY @Gu****li Melanggar
@ma****s Yg ngibarin bendera hti itu = an***g, b**i
gak punya otak.
Udh jelas2 ormasnya sdh dibubarin.
Senang banget sih negara kacau balau, dasar ka***et lo!
@wah*****c_jabar Ini yg iblis,setan alas,an***g Melanggar
kurap?sihaikal babi mulutnyaa udh kayak comberan
katanya ustad tp gak beradab ini pantas dibinasakan
pendapat boleh tp jg kayal org g**a dsr manusia
busuk,kardus..gimna itu w**o,u*o ini yg namanya beradab
agamis keadilan??
SELAMAT MENIKMATI UANG HASIL TIKET DARI Melanggar
SUPPORTER MALAM INI WAHAI FEDERASI TAK
TAHU MALU @P**I . TERUSLAH MEMIKIRKAN
UANG DAN UANG AGAR NANTI MATI TERTIMPA
UANG PULA. SAYA TUTUP TWEET MESRA INI
DENGAN KATA "AN***G GO**K T*I B**I UNTUK
FEDERASI" #edyout #revolusifederasi
@Er***dan TAPI ANDA NAMPAKNYA MERASA Melanggar
PINTAR TAPI TERNYATA KELIRU AYAM YG
NETES.BURUNG.BEBEK.DAN SEJENISNYA.BEDA
JAUH DENGAN MONYET.OTAK MANUSIA BEDA
DENGAN OTAK MONYET.ALLOH TIDAK PERNAH
SALAH MENCIPTAKAN.
@4s*****ue @An*****aZ kamu jgn bercanda. enggak Melanggar
lucu taw ? itu ba****an terlalu go***k. butang block
nyaaa nggak taw d mana. biarin aja dia sama go***k
nyaaa.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 5
Tweet Kategori
CARI CEWEK S***E, VCS, CA***X Melanggar
Ada cewek s***e?
WA 0821********😘
#tan****nge #n***e #jan****nge #tan*****epian #ca***x
#STW #VCSwhatsapp #tan****t #g***lo #tan*****pak
#ce*****gil
#phonesex #memekbecek #bokep #VCS #VCSgratis
#SANGE_AAAAAAAAAAH
#SANGE_AAAAAAAAAA #ceweknakal
https://t.co/U9BmXdtmBP
Anak Sekolah menjual diri https://t.co/7VYwdeUd5R Melanggar
#bokep #nontonbokep #bokeponline
Malem minggu penuh gejolak nafsu sex. Yg cwok udah Melanggar
pengin jilmek memek, isep puting toket, trs genjot ngewek
ngentot. Yg cwek udh pengim nyepong kontol, jilat badan...
uhhhh fuck
VIMAX ASLI CANADA OBAT PEMBESAR + Melanggar
PEMANJANG PENIS PERMANEN. TLPN/Wa :
081393904441 https://aseongfarma.com
pic.twitter.com/CXW68P2ebi
"Lu lu cina buta, lu banyak taik mata, lu dikejar anjing gila. Melanggar
Cari sampe dapat...."
Lagu masa kecilku yg sangat rasis tp ku ga sadar. Dulu ada
temen orang tionghoa jg kuejek2 "eh cina loleng mata sipit".
@Tinta_DariGoa NATAL karyawan Muslim pake Melanggar
sinterclass di demo makhluk Tauhid, DASAR LOE tukang
jual Agama untuk Nafsu2 bejat Capres HOAX
Agenda pemecah belah umat mulai membuahkan hasil. Melanggar
Setelah atheis, liberalis, Yahudi dan komunis berhasil
menghancurkan PKS, kini mereka menyasar NU.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 6
Tweet Kategori
@biawakair @VickaNadayang @Hujandisenja Klo org Melanggar
cina dl banyak main perempuan,byk judi,banyak mabok itu
umur nya panjang liat aja negara cina brp usia tua brp
persen🤣
nasrani memang sampah, orang tadinya ngomongin apa eh Melanggar
nyambung ke botol dasar yesus keparat :D RT
@ErisArdeanto1: @erisardeanto hey mu.....
Bahasa jawanya alat "kelamin pria mirip muka luh" apa Melanggar
sih?Gw mau ngatain orang jawa brengsek ni
Kenapa orang jawa itu kadang becandanya suka gaenak ke Melanggar
hati, udah gitu nyuruh2 aja kayak aing teh babunya brengsek
@limkitsiang @KasthuriPatto cina tua ni.. sudah dekat Melanggar
dengan kematian masih juga dengan kebodohan.. buatlah
persiapan & keranda.. dan berbuat baik sebelum di
cabut nyawa.. betul x @chedetofficial ?
@fadlizon FADLI ANJING MEMANG BETUL PK Melanggar
JOKOWI NGGK BIASA NGOPI NGGAK NGOKOK
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 7
Tweet Kategori
@Dylanfrost31 @Cittairlanie Gak gitu. Bokep itu "seni" Tidak Melanggar
lahiriah yang memadukan khayalan2 terpendam dari
individu. Menariknya, masyarakat kita "impor" bokep dari
negeri posmo, sedangkan ini negara gak cocok2 amat
dibilang berlanjut. Wong bunuh orang/teror aja masih
dibenarkan.
level pedas ayam geprek adalah berdasarkan berapa banyak Tidak Melanggar
lu teriak "anjing!" setelah ngerasain pedesnya. lv. 1 lv. 2
lv. 3 lv. 4 lv. 5 kalo udah kelewat pedes berarti level
anjing.
#FaktaJepang banyak ibu2 atau bapak2 atau nenek2 yang Tidak Melanggar
bawa kereta bayi, tapi begitu diintip isinya ternyata anjing.
Kesel banget anjinggggg tissue gue baru beli udah diilangin Tidak Melanggar
pdhl baru make dua helai anjing lah
maaf sebesar-besarnya karena saya ga tegas dan rasa ga tega Tidak Melanggar
saya yg slalu mendominasi. saya sadar dengan begitu saya
seolah memberi harapan (kosong). iya, saya terlalu bangsat.
saya ga akan membuat alasan pembelaan karena akan
terkesan nonsense.
Mau ngekomen fangirls bangsat di tweet gue sblmnya tapi Tidak Melanggar
inget ngemention presiden kudu penuh sopan santun.
Wkwkwkwk
Wagela sebacotnya gw di sini bilang anjir bangsat gw Tidak Melanggar
(semoga aja) gak pernah menggiring pikiran orang buat
ngejauhin orang sakit dan itu di real life di tengah ribuan
orang
Jadi inget dulu pernah telpon telponan sampe larut malem Tidak Melanggar
terus ketiduran alias tolol lah bangsat ngabisin pulsa aja
anjing.
Mungkin ini yang disebut malam minggu kelabu Tak ada Tidak Melanggar
anak-anak Tak ada Istri Intina mah sepi
Entar jam 7 bakal ada Times lawan Filipina. Udahg tau sih Tidak Melanggar
gak bakalan lolos ke babak berikutnya, tapi gak apa-apa,
seenggaknya udah berjuang (ya walopun tetep gak lolos) :/
Semoga sepakbola Indonesia bisa lebih bagus lagi cape
liatnya kalah mulu #MenangKalahGarudaDiDadaku
SELAMAT HARI GURU. Waktu SD sy bersekolah di desa Tidak Melanggar
di Madura. Kalau sy dimarahi oleh guru, orang tua sy
mendatangi guru dan mengucapkan terimakasih. Kalau sy
dimarahi oleh orng tua, guru sy menasehati agar sy patuh pd
orng tua. Tak ada orng tua melabrak guru krn anak dihukum
guru.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 8
Tweet Kategori
@keras_keparat ,Sebenarnya umat nasrani nyaman apa tdk Tidak Melanggar
sih saat merayakan natal digereja yg dijaga polisi bersenjata
lengkap?
Tendang doang kung? Gua kyknya di kubur idup2 ama lu Tidak Melanggar
pernah dah
Saya mengajak emak emak pendukung Prabowo sandi, Tidak Melanggar
silahkan mendaftar di http://www.partaiemakemak.co.id
sebagai bentuk dukungan kita pada komunitas
partaiemakemak. Emak emak harus bersatu untuk
perubahan Indonesia lebih baik
@jowalex7 @afriyanaja90 @agnezmo Biarkan anjing Tidak Melanggar
mengonggong,yg penting aku fokus streaming dan request
overdose 😊
Orang yg pemahaman agamanya sempit pasti gampang Tidak Melanggar
emosi kalo agamanya disinggung, contoh kalo dibilang
Yesus telanjang, pasti langsung marah
@P3nj3l4j4h tapi masih merasa ditindas loh om, Muslim di Tidak Melanggar
tindas, Ulama dikriminalisasi, kadang suka bingung mereka
tinggal di Indonesia sebelah mana.
Karna aku lembut, ya ga jago nganjing-nganjingin, bangsat, Tidak Melanggar
sialan, babi, tolol, bajingan, monyet dan biadab gitu-gitu
dong. Ya kan? Huhu. Jadi cuma bales "makasih ya, mas"
Abis itu blokir.
Brengsek gw diperkosa, oh yaudah deh gw harus ikhlas biar Tidak Melanggar
Tuhan aja yg bales keikhlasan gw di surga. Hahah goblok
Spontan, karena secara politis bisa nyudutkan lawan politik, Tidak Melanggar
gak usah berapologi ... Banyak yg tahu kelakuan bajingan
yg kemarin sudah rame" sebarkan hoax, maunya apa ?
https://t.co/D6wGookolC
@nctjun00 @YaoiSociety Pengen ngomong bangsat tapi Tidak Melanggar
bangsat itu jorok.. gajadi deh. G
Semoga ga ada bigot bangsat yang bilang kecelakaan Tidak Melanggar
pesawat ini adalah azab. Kalaupun ada, aku akan sangat
senang mendoakan supaya ybs segera menghadap Yang
Kuasa
@VHSilalahi @ikramarki Report aja mas twitnya, kemarin Tidak Melanggar
akupun abis report twit yg ngatain bangsat. At least biar
dipantau ama twitter.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -2 9
pengecekan terhadap waktu proses yang dibutuhkan sistem untuk melakukan proses
klasifikasi terhadap input data baru, tahapan validasi akurasi sistem dengan data
sampling dan tahapan validasi akurasi sistem dengan data uji coba menggunakan
sistem untuk melakukan deteksi dengan metode klasifikasi k-nn dengan euclidean
distance. Spesifikasi perangkat yang digunakan dalam pengujian ini adalah sebagai
berikut:
input data baru. Data baru yang digunakan sebagai contoh adalah “makan jagung
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 0
membandingkan data baru dengan 3960 data uji coba dengan nilai k-nn 1 hingga
25. Satuan waktu yang digunakan sebagai pengujian akan diukur dalam
millisecond(ms).
Berdasarkan uji coba dengan melakukan input data baru, didapatkan waktu
proses tertinggi ketika nilai k=25 sebesar 1987ms dan terendah ketika k=1 sebesar
935ms. Tabel 6.10 menunjukkan hasil dari pengujian waktu proses yang
Validasi ini dilakukan untuk melakukan uji coba dengan metode klasifikasi k-
nn dengan euclidean distance terhadap tingkat akurasi dari 60 data yang digunakan
validation.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 1
Nilai k-fold yang digunakan untuk pengujian adalah 60, sehingga setiap data
Nilai k-nn yang digunakan untuk pengujian ini adalah 1 hingga 25. Tabel 6.11
menunjukkan hasil dari pengujian k-fold cross validation data sampling dengan
metode k-nn dengan euclidean distance dengan fitur yang digunakan masing-
frequency (tf).
Tabel 6.11 Tabel hasil uji coba akurasi data sampling k-nn euclidean distance
dengan pembobotan tf-idf dan tf dalam persen (%)
Nilai k-nn Akurasi dengan TF-IDF (%) Akurasi dengan TF (%)
1 65.00 55.00
3 60.00 63.33
5 58.33 58.33
7 58.33 58.33
9 58.33 58.33
11 58.33 58.33
13 58.33 58.33
15 58.33 58.33
17 58.33 58.33
19 58.33 58.33
21 58.33 58.33
23 58.33 58.33
25 58.33 58.33
dengan k-nn cosine similarity untuk data sampling. Pada tabel 6.12 menunjukkan
hasil dari pengujian k-fold cross validation data sampling dengan metode k-nn
dengan cosine similarity dengan fitur yang digunakan masing-masing adalah term
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 2
Tabel 6.12 Tabel hasil uji coba akurasi data sampling k-nn cosine similarity
dengan pembobotan tf-idf dan tf dalam persen (%)
Nilai k-nn Akurasi dengan TF-IDF (%) Akurasi dengan TF (%)
1 56.67 53.33
3 51.67 55.00
5 56.67 48.33
7 58.33 55.00
9 56.67 53.33
11 55.00 55.00
13 60.00 55.00
15 51.67 50.00
17 50.00 50.00
19 53.33 56.67
21 51.67 55.00
23 50.00 50.00
25 51.67 53.33
euclidean distance didapatkan nilai akurasi tertinggi sebesar 65% untuk nilai k-
nn=1 dengan fitur tf-idf dan 63% untuk nilai k-nn=3 dengan fitur tf. Sedangkan
untuk metode k-nn dengan cosine similarity, didapatkan akurasi tertinggi sebesar
60% ketika nilai k-nn=13 dengan fitur tf-idf dan 56.67% untuk nilai k=19 dengan
fitur tf.
suatu data uji coba kedalam “Melanggar” atau “Tidak Melanggar”, dilakukan
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 3
Metode ini dilakukan dengan membagi 3960 data uji coba yang telah dilabeli
menjadi 2 bagian yaitu, training set dan test set. Validasi yang dilakukan dengan
menguji beberapa nilai k-fold dan nilai k pada k-nn, untuk mendapatkan tingkat
akurasi terbaik.
Nilai k yang digunakan adalah antara 1 dan 25, sedangkan nilai k-fold dan
besarnya pembagian data yang digunakan berasal dari nilai faktorisasi dari bilangan
3960. Pembagian nilai k-fold dan besarnya pembagian jumlah data dapat dilihat
pada tabel 6.13, sedangkan rata-rata akurasi dalam persen hasil dari ujicoba metode
k-nn dengan pendekatan euclidean distance dapat dilihat pada tabel 6.14.
Tabel 6.13 Pembagian nilai k-fold dan jumlah dataset dalam satu k-fold
Nilai k-Fold Jumlah dataset
198 20
99 40
88 45
66 60
10 396
Tabel 6.14 Tabel hasil uji coba akurasi k-fold data uji coba k-nn euclidean
distance pembobotan tf-idf dalam persen (%)
Nilai k-Fold
198 99 88 66 10
Nilai k-nn
1 66.64 64.80 65.86 63.94 57.27
3 62.73 61.36 61.29 59.95 54.82
5 59.42 57.55 57.05 56.26 52.58
7 56.57 55.00 54.85 54.09 51.79
9 54.90 53.66 53.48 53.08 51.14
11 54.22 53.08 52.83 52.40 51.11
13 53.46 52.60 52.37 52.02 51.01
15 53.11 52.32 52.15 51.69 51.01
17 52.85 51.97 51.99 51.57 50.96
19 52.60 51.87 51.94 51.64 50.93
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 4
Tabel 6.14 Tabel hasil uji coba akurasi k-fold data uji coba k-nn euclidean
distance pembobotan tf-idf dalam persen (%) (lanjutan)
Berdasarkan hasil ujicoba beberapa nilai k-fold ditunjukkan pada tabel 6.16
didapatkan nilai akurasi tertinggi ketika nilai k-fold=198 dan nilai k=1 sebesar
66.64%. Sedangkan rata-rata nilai akurasi untuk pengujian setiap nilai k-fold
nn berdasarkan tabel 6.14 yang ditunjukkan pada tabel 6.15, jika fitur pembobotan
pada k-nn euclidean distance yang digunakan adalah tf-idf. Rata-rata akurasi yang
dihasilkan nilai k antara 1 dan 25 adalah 51.36% - 63.70% dengan nilai akurasi
Tabel 6.15 Tabel rata-rata akurasi hasil ujicoba k-nn euclidean distance
pembobotan tf-idf berdasarkan nilai k dalam persen (%)
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 5
Setelah melakukan uji coba tersebut, penelitian ini juga menguji, jika fitur yang
adalah term frequency (tf). Pada tabel 6.16 menunjukkan hasil pengujian jika
pembobotan yang digunakan adalah tf, didapatkan nilai akurasi tertinggi ketika nilai
k-fold=198 dan nilai k=1 sebesar 68.03%. Sedangkan rata-rata nilai akurasi yang
Tabel 6.16 Tabel hasil uji coba akurasi k-fold data uji coba k-nn euclidean
distance dengan pembobotan tf dalam persen (%)
Nilai k-Fold
198 99 88 66 10
Nilai k-nn
1 68.03 65.88 66.99 65.23 58.18
3 65.20 63.28 63.76 62.35 56.46
5 62.53 60.93 60.86 59.19 55.45
7 60.86 59.24 58.26 57.35 54.27
9 59.47 57.88 57.35 56.36 53.43
11 58.71 56.89 56.49 55.61 52.88
13 57.42 55.78 55.58 55.00 52.37
15 56.87 55.05 54.95 54.34 52.17
17 57.27 55.28 55.18 54.34 52.22
19 56.72 55.15 54.90 54.12 51.94
21 56.16 54.67 54.75 53.76 51.94
23 55.91 54.37 54.37 53.74 51.89
25 55.58 53.99 54.02 53.51 51.77
Rata-Rata 59.29 57.57 57.50 56.53 53.46
Berdasarkan hasil ujicoba tersebut didapatkan nilai rata-rata untuk setiap nilai
k berdasarkan tabel 6.16 yang ditunjukkan pada tabel 6.17, jika fitur pembobotan
pada k-nn euclidean distance yang digunakan adalah tf. Rata-rata akurasi yang
dihasilkan nilai k antara 1 dan 25 adalah 53.77% - 64.86% dengan akurasi tertinggi
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 6
Tabel 6.17 Tabel rata-rata akurasi hasil ujicoba k-nn euclidean distance
pembobotan tf berdasarkan nilai k dalam persen (%)
Nilai K Rata-Rata Akurasi
1 64.86
3 62.21
5 59.79
7 57.99
9 56.90
11 56.12
13 55.23
15 54.68
17 54.86
19 54.57
21 54.26
23 54.06
25 53.77
Berdasarkan hasil uji coba pada penelitian ini dengan beberapa nilai k-fold dan
nilai k yang ditunjukkan oleh tabel 6.14 dan 6.16, menunjukkan bahwa metode k-
terjadi peningkatan pada nilai k. Pada penelitian ini, dilakukan juga untuk menguji
yang digunakan pada search engine dan jika nilai similaritas semakin besar, maka
Similarity ditunjukkan oleh persamaan (6-1). Pada tabel 6.18 menunjukkan hasil
rata-rata akurasi yang diberikan jika pembobotan similaritas cosine similarity yang
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 7
∑𝒏
𝒌=𝟏 𝒖𝒌 𝒙 𝒗𝒌
d(d1,d2) = ……………………….. (6-1)
√ ∑𝒏 𝒏
𝒌=𝟏 𝒖𝒌 𝒙 ∑𝒌=𝟏 𝒗𝒌
Tabel 6.18 Tabel hasil uji coba akurasi k-fold data uji coba k-nn cosine
similarity dengan pembobotan tf-idf dalam persen (%)
Nilai k-Fold
198 99 88 66 10
Nilai k-nn
1 74.37 73.69 74.49 72.95 64.49
3 75.38 74.77 75.28 74.44 66.99
5 76.77 76.01 76.77 75.30 67.68
7 77.63 77.07 77.20 76.36 68.94
9 77.90 77.32 78.08 77.25 70.03
11 79.09 77.68 78.81 77.78 70.15
13 79.34 78.33 78.81 78.03 70.18
15 79.44 78.76 79.17 78.28 70.18
17 80.23 79.27 79.85 78.91 70.83
19 80.23 79.04 79.70 79.09 71.31
21 80.20 79.17 79.80 79.17 71.64
23 80.51 78.81 79.60 78.59 71.39
25 80.61 78.89 79.55 78.71 71.77
Rata-Rata 78.59 77.60 78.24 77.30 69.66
Hasil yang ditunjukkan pada tabel 6.18 dengan metode k-nn cosine similarity
dengan pembobotan yang digunakan adalah tf-idf. Hasil pengujian setiap nilai k-
tertinggi ketika nilai k-fold=198 dan nilai k=25 sebesar 80.61%. Sedangkan untuk
rata-rata dari setiap nilai k-nn sebesar 72% - 77.99% yang ditunjukkan pada tabel
6.19 dengan nilai akurasi tertinggi sebesar 77.99% ketika nilai k-nn= 21.
Tabel 6.19 Tabel rata-rata akurasi hasil ujicoba k-nn cosine similarity
pembobotan tf-idf berdasarkan nilai k dalam persen (%)
Nilai K Rata-Rata Akurasi
1 72.00
3 73.37
5 74.51
7 75.44
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 8
Tabel 6.19 Tabel rata-rata akurasi hasil ujicoba k-nn cosine similarity
pembobotan tf-idf berdasarkan nilai k dalam persen (%) (lanjutan)
Nilai K Rata-Rata Akurasi
9 76.12
11 76.70
13 76.94
15 77.17
17 77.82
19 77.87
21 77.99
23 77.78
25 77.90
Peneliti juga melakukan uji coba untuk metode k-nn cosine similarity dengan
pembobotan yang digunakan adalah term frequency (tf). Pada tabel tabel 6.20,
menunjukkan nilai akurasi metode k-nn cosine similarity yang diberikan dengan
Tabel 6.20 Tabel hasil uji coba akurasi k-fold data uji coba k-nn cosine
similarity dengan pembobotan tf dalam persen (%)
Nilai k-Fold
198 99 88 66 10
Nilai k-nn
1 75.30 74.12 74.90 73.56 64.87
3 75.66 75.18 75.03 74.80 65.78
5 76.49 75.56 75.66 74.55 67.27
7 77.27 76.29 76.67 76.44 67.68
9 77.83 76.97 77.27 76.29 67.78
11 77.45 76.62 76.69 76.01 68.01
13 77.70 76.79 76.26 75.51 67.78
15 78.08 76.31 76.41 75.38 67.60
17 78.36 76.52 76.79 75.76 67.93
19 78.31 76.69 76.84 76.16 68.03
21 77.85 76.54 76.87 76.11 67.45
23 78.11 76.19 77.12 76.09 68.21
25 78.61 76.92 77.15 76.74 68.06
Rata-Rata 77.46 76.21 76.44 75.64 67.42
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -3 9
yang digunakan adalah tf ditunjukkan pada tabel 6.20 Hasil pengujian setiap nilai
tertinggi ketika nilai k-fold=198 dan nilai k=25 sebesar 78.61%. Sedangkan untuk
rata-rata dari setiap nilai k-nn sebesar 72.55% - 75.49%, seperti yang ditunjukkan
pada tabel 6.21 dengan nilai akurasi tertinggi sebesar 75.49% ketika nilai k-nn= 25.
Tabel 6.21 Tabel rata-rata akurasi hasil ujicoba k-nn cosine similarity
pembobotan tf berdasarkan nilai k dalam persen (%)
Nilai K Rata-Rata Akurasi
1 72.55
3 73.29
5 73.90
7 74.87
9 75.23
11 74.95
13 74.81
15 74.76
17 75.07
19 75.21
21 74.96
23 75.14
25 75.49
Setelah dilakukan uji coba dengan metode k-fold cross validation, dilakukan
mengandung setidaknya salah satu kata dari tweet yang diuji. Sebagai contoh
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4 0
diambil data uji yang merujuk pada tabel 6.1 yaitu, “Judi Bola Sabung Ayam”. Pada
hasil pengujian yang diberikan sistem pada tabel 6.2 menunjukkan kejanggalan
karena data yang digunakan sebagai pembanding tidak mengandung kata satupun
Setelah dilakukan pengecekan pada data uji coba, ditemukan beberapa data
yang memiliki konten kata yang hampir serupa dengan data uji. Sebagai contoh
ditunjukkan pada tabel 6.23. Data pada tabel 6.22 akan digunakan untuk pengujian
pembobotan untuk data uji pada tabel 6.23 dan untuk sampel data pembanding pada
tabel 6.24. Hasil pembobotan ini akan digunakan untuk perhitungan similaritas
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4 1
Tabel 6.25 Pembobotan similaritas euclidean distance sampel data uji dan data
uji coba
Data Uji x Dokumen ID=3367
Token Wp Wtest Wp-Wtest (Wp-Wtest)2
judi 1.3990381 1.3990381 0.0000000 0.0000000
bola 1.6199716 1.6199716 0.0000000 0.0000000
sabung 2.1352972 0.0000000 2.1352972 4.5594941
ayam 1.9074991 0.0000000 1.9074991 3.6385528
bonus 0.0000000 1.8734193 -1.8734193 3.5096999
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4 2
Tabel 6.25 Pembobotan similaritas euclidean distance sampel data uji dan data
uji coba (lanjutan)
taruh 0.0000000 1.9956352 -1.9956352 3.9825599
qqfortuna 0.0000000 3.5976952 -3.5976952 12.9434110
Total 28.6337177
Similaritas euclidean distance 5.35104828
Data Uji x Dokumen ID=3369
Token Wp Wtest Wp-Wtest (Wp-Wtest)2
judi 1.3990381 1.3990381 0.0000000 0.0000000
bola 1.6199716 1.6199716 0.0000000 0.0000000
sabung 2.1352972 0.0000000 2.1352972 4.5594941
ayam 1.9074991 0.0000000 1.9074991 3.6385528
taruh 0.0000000 1.9956352 -1.9956352 3.9825599
keranjang 0.0000000 3.5976952 -3.5976952 12.9434110
besar 0.0000000 1.2966652 -1.2966652 1.6813406
Total 26.8053584
Similaritas euclidean distance 5.177389149
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4 3
Berdasarkan hasil yang merujuk pada tabel 6.1 dan tabel 6.25 menunjukkan
dalam hal ini setiap kata dalam data pembanding atau data uji. Jika data yang
digunakan sebagai pembanding memiliki ukuran panjang kata yang kecil dan nilai
similaritas yang dihasilkan kecil, maka data tersebut dianggap sebagai salah satu
sebagai pembanding.
relevan, digunakan data sampel dari tabel 6.8 bagian 3, hasil dari pengujian k-
fold=99 dan nilai k=3. Dimana nilai akurasi yang didapatkan menurun setelah pada
bagian 2 memiliki nilai akurasi yang tinggi. Pada bagian 3 dilakukan pengujian
dengan mengambil salah satu data dari ID=81 sampai 120 sebagai data uji untuk
dibandingkan.
Sebagai contoh, diambil data tweet uji coba ID=86 yang dikategorikan sebagai
“Tidak melanggar” secara manual seperti pada tabel 6.26. Sedangkan, hasil
pengkategorian yang dilakukan sistem adalah “Melanggar” seperti pada tabel 6.27,
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4 4
Penelitian ini tidak memproses slang word yang terdapat didalam tweet data uji
coba maupun data uji. Slang word merupakan kumpulan kata yang memiliki sebuah
makna, tetapi dituliskan dalam berbagai bentuk sehingga bukan merupakan suatu
kata baku yang umum dijumpai. Slang word dalam data tweet umumnya ditemukan
beberapa sampel slang word yang ditemukan dalam data uji coba ditunjukkan pada
tabel 6.28.
Selain karena adanya slang word yang berupa singkatan ataupun kesalahan
penulisan, ditemukan slang word yang merupakan hasil dari hastag processing.
Jika seluruh kata dalam hastag merupakan huruf kecil atau huruf kapital setelah
penghapusan simbol hastag (#), maka kata-kata dalam hastag tersebut dianggap
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4 5
Adanya slang word akan menambah jumlah variansi token didalam melakukan
perhitungan, serta dapat mempengaruhi nilai inverse document frequency (idf) dari
suatu kata. Berdasarkan teori 2.4 yang digunakan, bahwa idf akan memberikan
bobot yang lebih besar untuk kata yang memiliki document frequency (dft) kecil.
Sebagai contoh slangword “Anjinggggg” pada tabel 6.28 akan dianggap 1 kata /
token baru sehingga perhitungan nilai idf yang dihasilkan dituliskan sebagai
berikut:
𝑁 3960
idf = log(𝑑𝑓𝑡) = log10( ) = 3.5976951859
1
antar dokumen maka dapat dikatakan dokumen tersebut serupa. Sehingga jika nilai
document frequency (dft) semakin besar, maka akan memberikan nilai idf yang
semakin kecil, maka hasil perhitungan tf-idf dari kata tersebut akan semakin kecil,
distance.
Sehingga berdasarkan hasil ujicoba dan evaluasi yang dilakukan pada penelitian
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4 6
euclidean distance mengalami penurunan. Hal ini dikarenakan metode ini kurang
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan dan saran untuk pengembangan sistem di
kemudian hari dari hasil penelitian tugas akhir pembuatan “Sistem Pendeteksi
7.1. Kesimpulan
Dari hasil penelitian yang telah dilakukan, dapat diambil beberapa kesimpulan
sebagai berikut:
ketika nilai k-fold=198 dan nilai k-nn=1 dengan fitur pembobotan similaritas
• Pada penelitian ini juga dilakukan pengujian dengan metode k-nn cosine
• Nilai akurasi untuk metode k-nn dengan euclidean distance dan cosine
cross validation.
BAB 7 – KES I MP U LA N DA N S AR AN 7 -2
kurang berjalan dengan baik, serta masih ditemukan slangword pada data tweet
7.2. Saran
dan normalisasi slangword. Serta saran dari pakar adalah sistem seperti ini dapat
diajukan ke ISP (Internet Service Provider), sehingga ketika user akan membagikan
pengembangan di kemudian hari dapat memberikan hasil keluaran yang lebih baik.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
DAFTAR PUSTAKA
Ahmed, H. (2017). Detecting opinion spam and fake news using n-gram analysis
and semantic similarity (Doctoral dissertation).
Bagchi, S. (2015). Performance and quality assessment of similarity measures in
collaborative filtering using mahout. Procedia Computer Science, 50, 229-
234.
Christian, H., Agus, M. P., & Suhartono, D. (2016). Single Document Automatic
Text Summarization using Term Frequency-Inverse Document Frequency
(TF-IDF). ComTech: Computer, Mathematics and Engineering
Applications, 7(4), 285-294.
Croft, W. B., Metzler, D., & Strohman, T. (2010). Search engines: Information
retrieval in practice (Vol. 283). Reading: Addison-Wesley.
Firdaus, A., Ernawati, E., & Arie, V. (2014). Aplikasi Pendeteksi Kemiripan Pada
Dokumen Teks Menggunakan Algoritma Nazief & Adriani Dan Metode
Cosine Similarity (Doctoral dissertation, Fakultas Teknik Universitas
Bengkulu).
Hakim, L., Kusumasari, T. F., & Lubis, M. (2018, April). Text Mining of UU-ITE
Implementation in Indonesia. In Journal of Physics: Conference Series
(Vol. 1007, No. 1, p. 012038). IOP Publishing.
Herman & Mononimbar, D. A. (2017, Mei 3). Indonesia Fifth-Largest Country in
Terms of Twitter Users. Dikutip dari http://jakartaglobe.id/news/indonesia-
fifth-largest-country-in-terms-of-twitter-users/
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to
Statistical Learning - with Applications in R. Diambil dari
https://www.ime.unicamp.br/~dias/Intoduction%20to%20Statistical%20Le
arning.pdf
Katariya, N. P. & Chaudhari M. S. (2015, Januari). Text preprocessing for text
mining using side information. International Journal of Computer Science
and Mobile Applications, 3(1), 01-05.
DAF TAR PUS TA KA A- 3
Kausar, M. A., Dhaka, V. S., & Singh, S. K. (2013). Web crawler: a review.
International Journal of Computer Applications, 63(2).
Lidya, S. K., Sitompul, O. S., & Efendi, S. (2015). Sentiment Analysis Pada Teks
Bahasa Indonesia Menggunakan Support Vector Machine (SVM) Dan K-
Nearest Neighbor (K-NN). In Seminar Nasional Teknologi Informasi dan
Komunikasi.
Manning, D.C., Raghavan, P., & Schütze, H. (2009). An Introduction to
Information Retrieval (Online ed.). Diambil dari
https://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf
Margono, H., Yi, X., & Raikundalia, G. K. (2014, January). Mining Indonesian
cyber bullying patterns in social networks. In Proceedings of the Thirty-
Seventh Australasian Computer Science Conference-Volume 147 (pp. 115-
124). Australian Computer Society, Inc..
Mutrofin, S., Izzah, A., Kurniawardhani, A., & Masrur, M. (2015). Optimasi teknik
klasifikasi modified k nearest neighbor menggunakan algoritma genetika.
Jurnal Gamma, 10(1).
Nurrahmi, H., & Nurjanah, D. (2018). Indonesian Twitter Cyberbullying Detection
using Text Classification and User Credibility. In International Conference
on Information and Communications Technology (ICOIACT), Yogyakarta,
Indonesia.
Prakasa, O. S. Y., & Lhaksmana, K. M. (2018). Klasifikasi Teks Dengan
Menggunakan Algoritma K-nearest Neighbor Pada Kasus Kinerja
Pemerintah Di Twitter. eProceedings of Engineering, 5(3).
Ramdhani, J. (2017, Desember 1). Ini 3 Cuitan Ahmad Dhani yang Dipolisikan.
Dikutip dari: https://news.detik.com/berita/3751250/ini-3-cuitan-ahmad-
dhani-yang-dipolisikan
Singh, V. K., & Singh, V. K. (2015). Vector space model: an information retrieval
system. Int J Adv Eng Res, 141, 143.
Sembodo, J. E., Setiawan, E. B., & Baizal, Z. K. A. (2017). A Framework for
Classifying Indonesian News Curator in Twitter. TELKOMNIKA
(Telecommunication Computing Electronics and Control), 15(1), 357-364.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
DAF TAR PUS TA KA A- 2
Tan, P. N., Steinbach, M., & Kumar, V. (2006). Introduction to Data Mining.
Twitter. (2018). Report violations Dikutip dari https://help.twitter.com/en/rules-
and-policies/twitter-report-violation
UU No.11 Tahun 2008. Tentang informasi dan transaksi elektronik. Jakarta:
Kementrian Komunikasi dan Informatika
Wikipedia (2018). Validasi-Silang (statistik). Dikutip dari
https://id.wikipedia.org/wiki/Validasi-_Silang_(statistik)
Yuliani, A. (2017). Ujaran Kebencian Picu Generasi Muda Jadi Intoleran dan
Diskriminatif. Dikutip dari
https://kominfo.go.id/content/detail/11958/ujaran-kebencian-picu-
generasi-muda-jadi-intoleran-dan-diskriminatif/0/sorotan_media
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
Lampiran A
3. Jika pengguna melakukan hal seperti yang dijelaskan pada pertanyaan 2, apa
alasannya?
- Alasan pengguna melakukan hal tersebut karena timbulnya rasa kesenangan
/ kebangaan didalam diri jika dapat melakukan hal tersebut serta adanya
perasaan emosi yang ingin dilontarkan.
- Pada dasarnya dalam melakukan hal tersebut pengguna tidak mempunyai
alasan untuk menyatakan tidak bersalah karena tidak mengetahui adanya
hukum yang berlaku.
- Adanya konsep presumption iures de iure memperkuat hal tersebut, dimana
konsep ini menyatakan bahwa, jika suatu aturan hukum di terapkan, maka
tidak ada alasan bagi siapapun untuk tidak mengetahui hal tersebut.
6. Apa saja indikator yang menjadi dasar untuk menentukan suatu konten
dikatakan sebagai konten negatif seperti pada pertanyaan 2?
- Penghinaan: Adanya unsur untuk menjelekkan suatu pihak ataupun
seseorang dengan ucapan kata kasar ataupun kata kotor.
Contoh: an***g, k***r, go***k, ba***at dll
- Ujaran Kebencian: Adanya unsur untuk melakukan penghinaan terhadap
suku, ras, agama dan antar golongan / kelompok tertentu.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
LA MPI RA N A – DAF TA R PER TA N YAA N WA WA N CAR A B -3
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya
LA MPI RA N A – DAF TA R PER TA N YAA N WA WA N CAR A B -4
10. Apakah hukum UU ITE yang berlaku dapat mencegah penyebaran konten
negatif di media sosial Twitter?
- Hukum UU ITE tidak dapat mencegah penyebaran konten negatif. Hukum
hanya sebatas untuk memberi efek jera / takut melalui ancaman sanksi yang
terdapat dalam setiap pasal.
J ur u sa n T e k ni k I n fo r ma t ik a, Fa k u lta s T e k ni k , U ni v er si ta s S urab a ya