Anda di halaman 1dari 176

SISTEM PENDETEKSI KONTEN NEGATIF DI

TWITTER MENGGUNAKAN METODE K-NEAREST


NEIGHBOR

TUGAS AKHIR

Disusun Oleh :
CHRISTIAN LAUW
NRP : 160415024

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK UNIVERSITAS SURABAYA
SURABAYA
2019
HALAMAN PENGESAHAN

Skripsi ini diajukan oleh:


Nama : Christian Lauw
NRP : 160415024
Jurusan : Teknik Informatika
Judul Skripsi : Sistem Pendeteksi Konten Negatif di Twitter Menggunakan
Metode k-Nearest Neighbor

Telah berhasil dipertahankan di hadapan Tim Penguji dan diterima


sebagai salah satu syarat yang diperlukan untuk memperoleh gelar
Sarjana Komputer pada Jurusan Teknik Informatika, Fakultas
Teknik, Universitas Surabaya

TIM PENGUJI

Pembimbing : Monica Widiasri., S.Kom., M.Kom. ( )

Pembimbing : Vincentius Riandaru Prasetyo, ( )


S.Kom., M.Cs.

Ketua Tim Penguji : Dr. Joko Siswantoro, ( )


S.Si., M.Si.

Sekretaris Tim Penguji : Njoto Benarkah, ( )


S.T., M.Sc.

Mengetahui

Ketua Jurusan Teknik Informatika

(Dr. Budi Hartanto, S.T., M.Sc.)

Ditetapkan di: Surabaya


Tanggal: 16 Januari 2019

ii
ABSTRAKSI

Twitter merupakan salah satu media sosial yang memungkinkan pengguna


untuk membagikan informasi berupa teks, gambar maupun video. Penggunaan
media sosial di Indonesia diatur oleh Undang-Undang Informasi dan Transaksi
Elektronik (UU ITE). Pemanfaatan twitter dapat disalahgunakan untuk hal negatif
yang melanggar UU ITE, seperti penghinaan, ujaran kebencian, kesusilaan,
ancaman kekerasan dan perjudian. Sistem pada media sosial twitter belum dapat
mendeteksi suatu konten yang akan dibagikan, apakah berpotensi mengandung
unsur negatif atau tidak. Untuk mencegah konten negatif di twitter khususnya teks,
dibuatlah sistem pendeteksi konten negatif di twitter. Metode yang digunakan untuk
melakukan deteksi adalah k-nn dengan pendekatan Euclidean distance. Untuk
melakukan deteksi digunakan data ujicoba sebanyak 3960 data. Data ujicoba
digunakan untuk mendapatkan hasil akurasi yang diberikan dengan metode k-fold
cross validation. Metode ini membagi data ujicoba menjadi 2 bagian yaitu dataset
training dan dataset testing. Setiap dataset testing memiliki nilai akurasi yang
digunakan untuk mendapatkan rata-rata akurasi. Kesimpulan yang didapatkan
adalah sistem dapat melakukan deteksi konten negatif dengan hasil akurasi terbaik
yang didapatkan dari pengujian k-fold cross validation sebesar 66.41% ketika nilai
k=1 dan k-fold=198. Nilai akurasi yang diberikan selalu menurun ketika nilai k
pada k-nn ditingkatkan, karena metode k-nn dengan pendekatan euclidean distance
kurang dapat mengukur relevansi data yang digunakan sebagai pembanding serta
masih terdapat slangword pada data tweet.
Kata Kunci: twitter, uu ite, k-nn, euclidean, k-fold

iii
KATA PENGANTAR

Puji syukur kepada Tuhan Yang Maha Esa, atas segala rahmat-Nya, tugas akhir

yang berjudul “Sistem Pendeteksi Konten Negatif di Twitter Menggunakan Metode

K-Nearest Neighbor” ini dapat diselesaikan dengan baik. Pembuatan tugas akhir ini

dibuat dengan tujuan untuk memenuhi syarat dalam memperoleh gelar sarjana

komputer jurusan teknik informatika Universitas Surabaya.

Dalam pengerjaan tugas akhir, penulis mengucapkan terima kasih atas

bimbingan, saran, fasilitas, dan kerjasama dari beberapa pihak, sehingga laporan ini

dapat diselesaikan sesuai dengan yang diharapkan. Penulis mengucapkan terima

kasih kepada:

1. Ibu Monica Widiasri, S.Kom., M.Kom selaku pembimbing I

2. Bapak Vincentius Riandaru Prasetyo, S.Kom., M.Cs.selaku pembimbing II

3. Bapak Dr. Budi Hartanto S.T., M.Sc. selaku ketua jurusan Teknik

Informatika Universitas Surabaya.

4. Ibu Susana Limanto S.T., M.Si. selaku Reviewer II

5. Bapak Anton Hendrik Samudra, S.H., M.H., selaku validator yang

membantu dalam proses pelabelan/pengkategorian data tweet.

6. Keluarga yang telah memberi dukungan dan semangat sehingga pengerjaan

Tugas Akhir ini dapat terselesaikan dengan baik dan tepat waktu.

7. Teman-teman yang memberikan masukkan serta solusi dalam permasalahan

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

bermanfaat bagi pembaca sebagaimana mestinya.

Surabaya, Januari 2019

Penulis

v
DAFTAR ISI

HALAMAN JUDUL................................................................................................ i

HALAMAN PENGESAHAN ................................................................................. ii

ABSTRAKSI ......................................................................................................... iii

KATA PENGANTAR ........................................................................................... iv

DAFTAR ISI .......................................................................................................... vi

DAFTAR GAMBAR ............................................................................................. xi

DAFTAR TABEL ................................................................................................ xiv

DAFTAR LISTING ............................................................................................ xvii

DAFTAR LAMPIRAN ...................................................................................... xviii

.................................................................................................................. 1-1

1.1 Latar Belakang Masalah ........................................................................ 1-1

1.2 Rumusan Masalah ................................................................................. 1-3

1.3 Tujuan .................................................................................................... 1-3

1.4 Manfaat .................................................................................................. 1-3

1.5 Ruang Lingkup ...................................................................................... 1-4

1.6 Metodologi Penelitian ........................................................................... 1-5

1.7 Sistematika Penulisan ............................................................................ 1-6

.................................................................................................................. 2-1

2.1 Information Retrieval ............................................................................ 2-1

2.2 Crawling ................................................................................................ 2-2

2.3 Preprocessing......................................................................................... 2-3

2.3.1 Penghapusan Stopword .................................................................. 2-3

2.3.2 Stemming ....................................................................................... 2-4

vi
D AFT AR I SI vi i

2.3.3 Tokenisasi ...................................................................................... 2-9

2.4 Pembobotan TF-IDF............................................................................ 2-10

2.5 Vector Space Model ............................................................................ 2-11

2.6 Inverted Index ...................................................................................... 2-13

2.7 Perhitungan Euclidean Distance .......................................................... 2-14

2.8 K-Nearest Neighbor ............................................................................ 2-16

2.9 K-Fold Cross Validation ..................................................................... 2-18

2.10 Undang-Undang Informasi dan Transaksi Elektronik ......................... 2-19

2.11 Twitter ................................................................................................. 2-21

.................................................................................................................. 3-1

3.1 Analisis Keadaan Saat Ini ...................................................................... 3-1

3.2 Analisis Sistem Sejenis ....................................................................... 3-10

3.2.1. Text Mining of UU-ITE Implementation in Indonesia ................ 3-10

3.2.2. Indonesian Twitter Cyberbullying Detection using Text


Classification and User Credibility ............................................................. 3-12

3.2.3. Klasifikasi Teks dengan Menggunakan Algoritma K-Nearest


Neighbor pada Kasus Kinerja Pemerintah di Twitter ................................. 3-15

3.3 Analisis Masalah ................................................................................. 3-16

3.4 Analisis Kebutuhan Sistem ................................................................. 3-16

.................................................................................................................. 4-1

4.1 Desain Data ........................................................................................... 4-1

4.1.1 Perancangan Entity Relationship Diagram (ERD) ......................... 4-1

4.1.2 Perancangan File ............................................................................ 4-5

4.2 Desain Proses ........................................................................................ 4-5

4.2.1 Desain Proses Login ....................................................................... 4-6

vii
D AFT AR I SI vi ii

4.2.2 Desain Proses Preprocessing .......................................................... 4-7

4.2.3 Desain Proses Indexing Tweet Data Uji Coba ............................... 4-9

4.2.4 Desain Proses Posting Tweet Baru ................................................ 4-9

4.2.5 Desain Proses Crawling Data Twitter .......................................... 4-12

4.2.6 Desain Proses Ubah Nilai K......................................................... 4-12

4.2.7 Desain Proses Ubah Status Tweet ................................................ 4-14

4.3 Desain User Interface .......................................................................... 4-15

4.3.1 Halaman Login ............................................................................. 4-15

4.3.2 Halaman Awal .............................................................................. 4-16

4.3.2.1 Halaman Awal User Admin ..................................................... 4-16

4.3.2.2 Halaman Awal User Biasa........................................................ 4-17

4.3.3 Halaman Menu Admin ................................................................. 4-18

4.3.3.1 Halaman Menu Data Training .................................................. 4-18

4.3.3.2 Halaman menu History Data .................................................... 4-25

4.3.4 Halaman Peringatan Posting Tweet ............................................. 4-26

.................................................................................................................. 5-1

5.1 Implementasi Data ................................................................................. 5-1

5.1.1. Implementasi Database .................................................................. 5-1

5.1.1.1 Tabel User .................................................................................. 5-1

5.1.1.2 Tabel Social Twitter Account..................................................... 5-2

5.1.1.3 Tabel Tweet ................................................................................ 5-3

5.1.1.4 Tabel Log Tweet ........................................................................ 5-4

5.1.1.5 Tabel History Tweet ................................................................... 5-4

5.1.1.6 Tabel Detail History Tweet ........................................................ 5-5

5.1.2. Implementasi File ........................................................................... 5-6

viii
D AFT AR I SI ix

5.2 Implementasi Proses .............................................................................. 5-9

5.2.1 Implementasi Proses Login ............................................................ 5-9

5.2.2 Implementasi Proses Preprocessing ............................................. 5-11

5.2.3 Implementasi Proses Indexing ..................................................... 5-16

5.2.4 Implementasi Proses Posting Tweet Baru .................................... 5-16

5.2.5 Implementasi Proses Crawling..................................................... 5-21

5.2.6 Implementasi Ubah Nilai K ......................................................... 5-24

5.2.7 Implementasi Ubah Status Tweet ................................................ 5-25

.................................................................................................................. 6-1

6.1 Verifikasi ............................................................................................... 6-1

6.1.1 Verifikasi Posting Tweet Baru ....................................................... 6-1

6.1.2 Verifikasi Proses Penentuan Kategori Tweet dengan Metode k-NN


dengan pendekatan Euclidean Distance ........................................................ 6-4

6.1.3 Verifikasi Proses Crawling ............................................................ 6-7

6.1.4 Verifikasi Proses Ubah Nilai K .................................................... 6-14

6.1.5 Verifikasi Proses Ubah Status Tweet ........................................... 6-16

6.1.6 Verifikasi Proses Validasi dengan Metode k-Fold Cross Validation


6-18

6.2 Validasi ................................................................................................ 6-21

6.2.1. Validasi Data ................................................................................ 6-21

6.2.2. Validasi Sistem ............................................................................ 6-29

6.2.2.1 Validasi Waktu Proses.............................................................. 6-29

6.2.2.2 Validasi k-fold Cross Validation Data Sampling ..................... 6-30

6.2.2.3 Validasi k-fold Cross Validation Data Uji Coba ...................... 6-32

.................................................................................................................. 7-1

ix
D AFT AR I SI x

7.1. Kesimpulan ............................................................................................ 7-1

7.2. Saran ...................................................................................................... 7-2

DAFTAR PUSTAKA ......................................................................................... A-1

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

Gambar 6.10 Tampilan pilihan crawling dengan keyword .................................. 6-9


Gambar 6.11 Mengisi kolom inputan crawling dengan keyword ...................... 6-10
Gambar 6.12 Contoh pesan error validasi pada proses crawling ....................... 6-11
Gambar 6.13 Tampilan hasil proses crawling .................................................... 6-12
Gambar 6.14 Contoh proses memilih tweet ....................................................... 6-12
Gambar 6.15 Tampilan konfirmasi simpan data uji coba .................................. 6-13
Gambar 6.16 Tampilan peringatan gagal menyimpan data uji coba .................. 6-13
Gambar 6.17 Tampilan pesan berhasil melakukan penyimpanan data uji coba 6-14
Gambar 6.18 Tampilan merubah nilai K............................................................ 6-15
Gambar 6.19 Tampilan pesan berhasil mengubah nilai K ................................. 6-15
Gambar 6.20 Tampilan pesan peringatan kesalahan dalam ubah nilai K .......... 6-16
Gambar 6.21 Tampilan halaman utama data training sub-menu “Data Training” 6-
17
Gambar 6.22 Tampilan pesan berhasil ubah status tweet .................................. 6-17

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

Tabel 6.9 Contoh Sampel Data uji coba............................................................. 6-23


Tabel 6.10 Waktu proses klasifikasi data tweet ................................................. 6-30
Tabel 6.11 Tabel hasil uji coba akurasi data sampling k-nn euclidean distance
dengan pembobotan tf-idf dan tf dalam persen (%) ................................... 6-31
Tabel 6.12 Tabel hasil uji coba akurasi data sampling k-nn cosine similarity dengan
pembobotan tf-idf dan tf dalam persen (%) ................................................ 6-32
Tabel 6.13 Pembagian nilai k-fold dan jumlah dataset dalam satu k-fold ......... 6-33
Tabel 6.14 Tabel hasil uji coba akurasi k-fold data uji coba k-nn euclidean distance
pembobotan tf-idf dalam persen (%) .......................................................... 6-33
Tabel 6.15 Tabel rata-rata akurasi hasil ujicoba k-nn euclidean distance
pembobotan tf-idf berdasarkan nilai k dalam persen (%) ........................... 6-34
Tabel 6.16 Tabel hasil uji coba akurasi k-fold data uji coba k-nn euclidean distance
dengan pembobotan tf dalam persen (%) ................................................... 6-35
Tabel 6.17 Tabel rata-rata akurasi hasil ujicoba k-nn euclidean distance
pembobotan tf berdasarkan nilai k dalam persen (%)................................. 6-36
Tabel 6.18 Tabel hasil uji coba akurasi k-fold data uji coba k-nn cosine similarity
dengan pembobotan tf-idf dalam persen (%) .............................................. 6-37
Tabel 6.19 Tabel rata-rata akurasi hasil ujicoba k-nn cosine similarity pembobotan
tf-idf berdasarkan nilai k dalam persen (%)................................................ 6-37
Tabel 6.20 Tabel hasil uji coba akurasi k-fold data uji coba k-nn cosine similarity
dengan pembobotan tf dalam persen (%) ................................................... 6-38
Tabel 6.21 Tabel rata-rata akurasi hasil ujicoba k-nn cosine similarity pembobotan
tf berdasarkan nilai k dalam persen (%) ..................................................... 6-39
Tabel 6.22 Contoh sampel data uji coba yang serupa ........................................ 6-40
Tabel 6.23 Pembobotan tf-idf token sampel data uji ......................................... 6-40
Tabel 6.24 Pembobotan tf-idf token sampel data uji coba ................................. 6-41
Tabel 6.25 Pembobotan similaritas euclidean distance sampel data uji dan data uji
coba ............................................................................................................. 6-41
Tabel 6.26 Data uji coba .................................................................................... 6-43
Tabel 6.27 Hasil similaritas pembandingan. ...................................................... 6-44
Tabel 6.28 Contoh slang word data uji coba ...................................................... 6-44

xv
D AFT AR T AB E L x vi

Tabel 6.29 Slang word akibat hastag preprocessing .......................................... 6-45

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

Lampiran A Wawancara Pakar Hukum .............................................................. B-1

Lampiran B Surat Pernyataan ............................................................................. C-1

xviii
PENDAHULUAN

Pada bagian pendahuluan berisi latar belakang, rumusan masalah, tujuan,

manfaat, ruang lingkup pengerjaan tugas akhir, metodologi penelitian dan

sistematika penulisan laporan tugas akhir.

1.1 Latar Belakang Masalah

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

berinteraksi dengan sesama, berpendapat secara bebas maupun untuk melakukan

transaksi bisnis. Salah satu media sosial yang cukup dikenal yaitu Twitter. Twitter

merupakan media sosial yang memungkinkan berbagi informasi yang dikenal

dengan istilah “Tweet”. Twitter juga memungkinkan seorang user untuk

mengetahui aktivitas yang dilakukan user lainnya. Di Indonesia, pemanfaatan

media sosial sebagai salah satu media komunikasi elektronik diatur oleh suatu

regulasi yang disebut dengan Undang-Undang Informasi dan Transaksi Elektronik

(UU ITE).

Undang-Undang Informasi dan Transaksi Elektronik (UU ITE) merupakan

undang-undang yang mengatur tentang penggunaan dan pemanfaatan teknologi

elektronik untuk menunjang kegiatan serta memastikan bahwa kegiatan yang

dilakukan sesuai dengan keadaan sosial dan kebudayaan masyarakat Indonesia.


BAB 1 - PE NDA H UL UA N 1 -2

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 mentransmisikan dan/atau membuat dapat diaksesnya Informasi

Elektronik dan/atau Dokumen Elektronik yang memiliki muatan penghinaan

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

banyak Rp750.000.000,00 (tujuh ratus lima puluh juta rupiah).”

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

akan dibagikan. Pencegahan dapat dilakukan dengan mendeteksi dengan sistem

yang memanfaatkan bidang keilmuan information retrieval (IR). IR merupakan

teknik menemukan informasi yang hilang dari sekumpulan data. Salah satu ilmu

yang menerapkan ilmu IR adalah klasifikasi.

Klasifikasi merupakan metode untuk mengelompokkan suatu data dengan

mempertimbangkan kesamaan ciri dengan data yang telah memiliki kelompok.

Salah satu metode dari klasifikasi adalah k-nearest neighbor (kNN). Metode kNN

merupakan metode pengelompokan data dengan mempertimbangkan beberapa data

yang memiliki kemiripan dengan data yang akan dikelompokkan. Pengelompokkan

data baru dilakukan berdasarkan kelompok terbanyak dari data yang menjadi

pertimbangan. Sehingga konten yang akan dibagikan di twitter, dapat 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 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.

1.2 Rumusan Masalah

Berdasarkan latar belakang permasalahan yang dijelaskan sebelumnya, maka

rumusan masalah yang menjadi dasar penulisan tugas akhir ini adalah bagaimana

membuat suatu sistem yang dapat mencegah konten yang mengandung unsur

negatif yang akan dikirim ke media sosial twitter?

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

mengandung konten negatif ketika akan dibagikan ke media sosial twitter.

1.4 Manfaat

Manfaat yang diperoleh dengan dikembangkannya sistem pendeteksi konten

negatif di twitter adalah bagi pengguna twitter berbahasa Indonesia, pengguna

memiliki batasan dalam mengirimkan informasi ke media sosial khususnya twitter.

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

berkurang. Sehingga diharapkan dapat menumbuhkan sikap yang positif dalam

penggunaan media sosial twitter.

1.5 Ruang Lingkup

Dalam penyusunan tugas akhir ini, adapun beberapa batasan yang dikerjakan

dalam pembuatan sistem ini, sebagai berikut:

1. Pengembangan sistem berbasis web

2. Metode deteksi konten negatif yang digunakan adalah metode klasifikasi k-

nearest neighbor dengan euclidean distance

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

5. Data Tweet yang di uji diklasifikasikan sebagai “Melanggar” atau “Tidak

Melanggar”, berdasarkan data uji coba yang telah dilakukan pelabelan

dengan bantuan pakar hukum, Anton Hendrik Samudra, S.H., M.H.,

6. Tweet yang dikategorikan sebagai “Melanggar” merupakan tweet yang

mengandung unsur ujaran kebencian atau ancaman kekerasan atau

penghinaan atau perjudian atau konten kesusilaan berdasarkan UU ITE.

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

1.6 Metodologi Penelitian

Dalam pembuatan tugas akhir ini, rencana kegiatan yang dilakukan adalah

sebagai berikut:

1. Persiapan

Persiapan yang dilakukan adalah membaca kumpulan pasal di dalam Undang

Undang Informasi dan Transaksi Elektronik (UU ITE) yang berkaitan dengan

sistem yang dibuat, mempelajari twitter API, mempelajari metode k-nearest

neighbor dan pendekatan euclidean distance serta mengumpulkan dataset uji

coba berupa tweet dari twitter.

2. Analisis

Pada tahapan ini berisi analisis keadaan saat ini terkait dengan penggunaan

twitter oleh masyarakat indonesia, analisis terhadap sistem sejenis, analisis

permasalahan yang terjadi berdasarkan keadaan saat ini, serta kebutuhan sistem

yang menjadi solusi pemecahan pada analisis masalah.

3. Desain

Pada tahapan desain dilakukan desain data, desain antar muka pengguna dan

desain alur sesuai dengan kebutuhan sistem.

4. Implementasi

Pada tahapan ini dilakukan implementasi berupa sistem berbasis web sesuai

dengan desain yang telah dijelaskan pada tahapan desain.

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

5. Uji Coba dan Evaluasi

Pada tahapan ini dilakukan uji coba terhadap tingkat keberhasilan yang

diberikan oleh sistem untuk mewujudkan tujuan yang diharapkan, kemudian

dilakukan evaluasi terhadap hasil yang diberikan oleh sistem.

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.

1.7 Sistematika Penulisan

Dalam sistematika penulisan laporan tugas akhir ini terdiri dari tujuh bagian.

Penjelasan singkat dari setiap bagian yang akan dibuat dalam penulisan tugas akhir

ini sebagai berikut:

BAB 1: PENDAHULUAN

Bab pendahuluan menjelaskan mengenai latar belakang penulisan tugas

akhir, rumusan masalah, tujuan, ruang lingkup tugas akhir, rencana kegiatan

serta sistematika penulisan laporan tugas akhir.

BAB 2: DASAR TEORI

Bab dasar teori menjelaskan mengenai teori yang mendukung dalam

implementasi sistem yang digunakan untuk menyelesaikan masalah dan

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

digunakan dalam penelitian ini adalah Information Retrieval, Crawling,

Preprocessing, Pembobotan TF-IDF, Vector Space Model, Inverted Index,

Euclidean Distance, k-NN, k-Fold Cross Validation, UU ITE dan Twitter.

BAB 3: ANALISIS

Bab analisis sistem menjelaskan mengenai analisis keadaan saat ini terkait

dengan penggunaan twitter di Indonesia yang dilakukan dengan wawancara

seorang pakar, analisis sistem sejenis yang digunakan sebagai pertimbangan

dalam melakukan penelitian, analisis masalah serta analisis kebutuhan

sistem.

BAB 4: DESAIN SISTEM

Bab desain sistem menjelaskan mengenai desain yang dibuat dalam

penulisan tugas akhir ini adalah desain data yang terdiri dari desain ERD

dan desain file, desain proses yang menunjang sistem, yaitu desain proses

login, preprocessing, indexing, posting tweet baru, crawling data, mengubah

nilai K, mengubah status tweet dan desain antar muka pengguna.

BAB 5: IMPLEMENTASI

Bab implementasi menjelaskan mengenai implementasi penelitian sistem

pendeteksi konten negatif di twitter menggunakan metode k-nearest

neighbor yang terdiri dari implementasi data (database dan file) serta

implementasi proses berdasarkan desain yang dirumuskan pada bab desain

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 6: UJICOBA dan EVALUASI

Bab ini membahas hasil ujicoba dari sistem yang telah diimplementasikan

dengan verifikasi dan validasi sistem. Verifikasi untuk memastikan sistem

dapat berjalan dengan baik. Validasi untuk memastikan hasil yang diberikan

sesuai dengan tujuan yang dirumuskan pada bagian pendahuluan. Hasil dari

ujicoba dilakukan evaluasi berdasarkan tingkat keberhasilan / akurasi yang

diberikan.

BAB 7: KESIMPULAN dan SARAN

Bab ini akan berisi kesimpulan dari pembuatan tugas akhir ini, serta saran

yang dapat digunakan dalam pengembangan sistem di kemudian hari.

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

tugas akhir sistem pendeteksi konten negatif di twitter dengan menggunakan

metode k-nearest neighbor

2.1 Information Retrieval

Information Retrieval (IR) merupakan teknik menemukan informasi dari

sekumpulan data dokumen yang memiliki keterkaitan. Dalam menemukan

informasi yang hilang tersebut, dibutuhkan query yang akan diberikan user. Query

merupakan suatu kata kunci yang nantinya akan digunakan sistem untuk dilakukan

perhitungan nilai relevansi dengan sekumpulan dokumen. Salah satu pemanfaatan

IR dalam hal menemukan keterkaitan antar data adalah klasifikasi.

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

dapat dilakukan perhitungkan akurasi dengan persamaan (2-1) (Manning,

Raghavan, Schütze, 2009).

𝒋𝒖𝒎𝒍𝒂𝒉 𝒅𝒐𝒌𝒖𝒎𝒆𝒏 𝒃𝒆𝒏𝒂𝒓 𝒉𝒂𝒔𝒊𝒍 𝒌𝒍𝒂𝒔𝒊𝒇𝒊𝒌𝒂𝒔𝒊


𝑨𝒌𝒖𝒓𝒂𝒔𝒊 = 𝒙 𝟏𝟎𝟎% .………………( 2-1 )
𝒋𝒖𝒎𝒍𝒂𝒉 𝒅𝒐𝒌𝒖𝒎𝒆𝒏 𝒖𝒋𝒊 𝒄𝒐𝒃𝒂
BAB 2 – DAS AR T EORI 2 -2

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

ekstraksi terhadap komponen yang terdapat didalamnya. Pada gambar 2.1

menunjukkan alur proses crawling suatu halaman web.

Berdasarkan gambar 2.1 proses crawling diawali dengan mendapatkan suatu

url web. URL ini kemudian didownload untuk mendapatkan kumpulan page dari

url tersebut. Page yang telah didapatkan kemudian dilakukan ekstraksi terhadap

komponen-komponen yang memiliki informasi terkait dengan data yang

dibutuhkan (Kausar, Dhaka & Singh, 2013).

Gambar 2.1 Alur Proses 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 2 – DAS AR T EORI 2 -3

2.3 Preprocessing

Preprocessing merupakan tahapan pengolahan data mentah menjadi data yang

lebih sederhana sehingga dapat direpresentasikan oleh komputer. Preprocessing

bertujuan untuk mengurangi ukuran dimensi dari fitur yang dimiliki oleh data. Pada

proses preprocessing, khususnya untuk data berupa dokumen teks terdiri dari

beberapa tahapan, yaitu: penghapusan stopword, stemming serta proses tokenisasi

(Katariya & Chaudhari, 2015).

2.3.1 Penghapusan Stopword

Stopword merupakan kata yang memiliki frekuensi kemunculannya cukup

besar, tetapi kurang memiliki makna, seperti kata penghubung (“dan”, “atau”,

“dari”, “adalah”). Penghapusan stopword bertujuan untuk mengurangi jumlah token

sebelum dilakukan proses tokenisasi sehingga dapat mengurangi waktu proses

klasifikasi dokumen (Katariya & Chaudhari, 2015).

Dalam melakukan penghapusan stopword, umumnya digunakan suatu kamus

yang telah berisi daftar stopword dari suatu bahasa tertentu yang akan dihapus.

Tabel 2.1 menunjukkan contoh proses penghapusan stopword berbahasa Indonesia.

Tabel 2.1 Penghapusan Stopword Berbahasa Indonesia

ID Dokumen Dokumen Hasil Penghapusan Stopword


Andi menyukai film kartun Andi menyukai film kartun
1
dan horor horor
Bobi dan Beni menonton Bobi Beni menonton film
2
film di bioskop bioskop
Susi mengantar doni dari Susi mengantar doni rumah
3
rumah menuju sekolah menuju sekolah

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

Indonesia adalah Sastrawi. Sastrawi merupakan salah satu library preprocessing

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

stopword tersebut akan dihapus.

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

berupa awalan(prefix), akhiran(suffiks), serta gabungan awalan dan akhiran diantara

kata dasar (konfiks) yang dapat menimbulkan makna lain terhadap kata tersebut

(Firdaus, Ernawati & Arie, 2014).

Untuk proses stemming berbahasa Indonesia, salah satu library yang dapat

digunakan adalah library sastrawi. Library sastrawi memiliki kamus kata dasar

yang digunakan untuk proses stemming berbahasa Indonesia. Proses stemming

library sastrawi mengimplementasikan algoritma nazief andriani yang melakukan

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

tidak, dilanjutkan ke tahap 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 -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

dalam kamus dilanjutkan ke tahap 3, jika ditemukan maka proses stemming

berhenti.

3. Menghapus kata yang memiliki suffiks “-i”, “-an” atau “-kan”, contoh memberi-

kan. Jika ditemukan dalam kamus, proses stemming berhenti. Jika tidak

ditemukan dilanjutkan ke tahap 4. Jika setelah penghapusan suffiks “-an” dan

terdapat suffiks “-k”, maka “-k” juga akan dihapus. Proses stemming selesai jika

setelah penghapusan “-an” dan “-k”, kata dasar ditemukan dalam kamus. Jika

tidak ditemukan dilanjutkan ke tahap 4.

4. Pada tahap 4 dilakukan penghapusan sebagai berikut:

a. Lakukan pengecekkan terhadap kombinasi konfiks yang tidak

diperbolehkan seperti yang ditunjukkan pada tabel 2.2. Jika ditemukan,

maka dilanjutkan ke tahap 5. Jika tidak, lanjutkan pengecekkan ke tahap 4b,

hingga proses berlanjut ke tahap 5 jika:

1. Prefiks yang ditemukan sama dengan prefiks pada pemeriksaan

sebelumnya

2. Tahap 4 telah dilakukan 3 kali.

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

b. Penghapusan terhadap jenis prefiks dengan aturan:

- Prefiks yang langsung dihapus (“di-”,”ke-”,”se-”)

- Prefiks yang membutuhkan proses lanjutan karena dapat merubah bentuk

dari kata (“me-“,”be-”,”pe-”,”te-”). Contoh: “mempermainkan” yang

memiliki kata dasar “main". Aturan dari awalan ini ditunjukkan pada tabel

2.3. Serta keterangan dari simbol yang ada dijelaskan pada tabel 2.4

Tabel 2.3 Aturan prefiks khusus (Firdaus et al., 2014)


Rule Format Pemenggalan
1 berV… ber-V … | be-rV
2 berCAP… ber-CAP… dimana C != ‘r’ & P != ‘er’
3 berCAerV ber-CaerV… dimana C != ‘r’
4 Belajar bel-ajar
5 berC1erC2… be-C1erC2… dimana C1 != ‘r’ | ‘l’
6 terV… ter-V… | te-rV…
7 terCerV… ter-CerV dimana C != ‘r’
8 terCP… ter-CP… dimana C!=’r’ dan P !=’er’
9 teC1erC2… te-C1erC2… dimana C1 != ‘r’
10 me{l|r|w|y}V… me – {l|r|w|y} V…
11 mem{b|f|v}… mem-{b|f|v}…
12 mempe mem-pe…
13 mem{rV|V}… me-m{rV|V}… | me-p{rV|V}
14 men{c|d|j|s|z}… men-{c|d|js|z}…
15 menV… me-nV… | me-tV
16 meng{g|h|q|k}… meng{g|h|q|k}… meng-{g|h|q|k}…
17 mengV… meng-V… | meng-kV…| mengV-... jika V=’e’
18 menyV… meny-sV….
19 mempA… mem-pA… dimana A != ‘e’
20 pe{w|y}V… pe-{w|y}V…
21 perV… per-V… | pe-rV…
22 perCAP… per-CAP… dimana C != ‘r’ dan P != ‘er’
23 perCAerV… per-CAerV… dimana C != ‘r’

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

Tabel 2.3 Aturan prefiks khusus (lanjutan)

Rule Format Pemenggalan


24 pem{b|f|V}… pem-{b|f|V}…
25 pem{rV|V}… pe-m{rV|V}… | pe-p{rV|V}…
26 pen{c|d|j|z}… pen-{c|d|j|z}…
27 penV… pe-nV… | pe-tV…
28 pengC… peng-C…
29 pengV… peng-V… | peng-kV… | pengV-... jika V=’e’
30 penyV… peny-sV…
31 pelV… pe-lV… kecuali “pelajar” yang menghasilkan “ajar”
32 peCerV… Per-erV … dimana C!= {r|w|y|l|m|n}
33 peCP Pe-CP… dimana C!={r|w|y|l|m|n}dan P!= ‘er’
34 terC1erC2... ter-C1erC2... dimana C1!= ‘r’
35 peC1erC2... pe-C1erC2... dimana C1!={r|w|y|l|m|n}

Tabel 2.4 Keterangan simbol tabel 2.3 (Firdaus et al., 2014)

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.

5. Melakukan recoding. Proses recoding merupakan proses untuk mengubah kata.

Proses ini dilakukan jika setelah proses stemming pada tahap 4 dilakukan, kata

dasar belum ditemukan. Acuan untuk proses recoding menggunakan aturan

pada tabel 2.3.

6. Setelah seluruh proses stemming dijalankan tetapi belum berhasil menemukan

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

stemming. Dokumen yang digunakan merupakan dokumen hasil penghapusan

stopword pada tabel 2.1. Sebagai contoh proses stemming, diambil kata pada

dokumen tabel 2.5 yaitu “menyukai”, “menonton”, “mengantar”, dan “menuju”.

Kata “menyukai” diubah menjadi kata dasar “suka”. Akhiran “-i” akan dihapus

karena aturan 2. Selanjutnya kata “menyuka” dilakukan pemenggalan sesuai

dengan aturan 18 pada tabel 2.3 menjadi kata “suka”.

Kata “menonton” diubah menjadi kata dasar “tonton”. Kata “menonton”

mengalami pemenggalan pada tahap 4, dengan aturan 15 pada tabel 2.3 (menV..)

menjadi “nonton”. Karena “nonton” bukan merupakan kata dasar, dilakukan proses

recoding menjadi kata “tonton”.

Kata “mengantar” diubah menjadi kata dasar “antar”. Kata “mengantar”

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

recoding menjadi “tuju”.

Tabel 2.5 Hasil stemming dokumen

ID Dokumen Dokumen Hasil Stemming


Andi menyukai film kartun andi suka film kartun horor
1
horor
Bobi Beni menonton film di bobi beni tonton film
2
bioskop bioskop
Susi mengantar doni rumah susi antar doni rumah tuju
3
menuju sekolah sekolah

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

Gambar 2.2 Alur proses algoritma stemming Nazief Andriani

2.3.3 Tokenisasi

Tokenisasi merupakan proses pemotongan isi dari suatu dokumen menjadi

kumpulan kata(token). Tokenisasi yang dilakukan pada umumnya ialah mengambil

satu kata atau dikenal dengan unigram.

Untuk meningkatkan keunikan dan mempertahankan makna dari token, maka

unigram dapat dikombinasikan dengan bigram(2 kata) ataupun trigram(3 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 2 – DAS AR T EORI 2 -1 0

(Ahmed, 2017). Tabel 2.6 menunjukkan contoh hasil proses tokenisasi unigram dari

kumpulan dokumen. Dokumen yang digunakan merupakan dokumen hasil

penghapusan stopword pada tabel 2.1 dan proses stemming pada tabel 2.5

Tabel 2.6 Hasil tokenisasi unigram dokumen

ID Dokumen Dokumen Token Unigram(n=1)


andi suka film kartun horor andi, suka, film, kartun,
1
horor
bobi beni tonton film bobi. beni, tonton, film,
2
bioskop bioskop
susi antar doni rumah tuju susi, antar, doni, rumah, tuju,
3
sekolah sekolah

2.4 Pembobotan TF-IDF

Setelah dilakukan proses preprocessing, untuk mengetahui nilai dari suatu

token dalam dokumen dapat dilakukan dengan memberikan bobot kepada token

tersebut. Cara pembobotan yang dapat dilakukan adalah TF-IDF.

Pembobotan ini dilakukan dengan menggunakan jumlah kemunculan suatu

kata dalam sebuah dokumen (term frequency - tf), jumlah dokumen yang

mengandung suatu kata (document frequency - dft) serta jumlah keseluruhan

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

tf-idf = tf * idft ..……………………………………………………( 2-3 )

Tabel 2.7 menunjukan hasil pembobotan token dari suatu dokumen. Dokumen

yang digunakan merupakan dokumen 1 yang telah melalui tahap penghapusan

stopword pada tabel 2.1, proses stemming pada tabel 2.5 dan tahap tokenisasi pada

tabel 2.6.

Tabel 2.7 Hasil pembobotan tf-idf token unigram


Token Tf Idf = log(N/dft) tf-idf = tf * idft
andi 1 log (3/1) = 0.477 1*0.477=0.477
suka 1 log (3/1) = 0.477 1*0.477=0.477
film 1 log (3/2) = 0.176 1*0.176=0.176
kartun 1 log (3/1) = 0.477 1*0.477=0.477
horor 1 log (3/1) = 0.477 1*0.477=0.477

2.5 Vector Space Model

Untuk setiap dokumen yang telah melalui tahap preprocessing akan

menghasilkan kumpulan term yang merepresentasikan dokumen tersebut. Salah

satu model yang dapat merepresentasikan term dalam suatu dokumen adalah Vector

Space Model. Vector space model berbentuk matrix berisi dokumen serta term

merupakan hasil dari proses preprocessing.

Representasi yang digambarkan pada vector space model untuk dokumen teks

dapat berupa kemunculan term dalam suatu dokumen (term frequency – tf), nilai

kepentingan term dalam suatu dokumen terhadap seluruh dokumen (inverse

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.

Tabel 2.8 Perhitungan term frequency


Term / Dokumen Dokumen 1 Dokumen 2 Dokumen 3
andi 1 0 0
suka 1 0 0
Film 1 1 0
kartun 1 0 0
horor 1 0 0
bobi 0 1 0
beni 0 1 0
tonton 0 1 0
bioskop 0 1 0
susi 0 0 1
antar 0 0 1
doni 0 0 1
rumah 0 0 1
tuju 0 0 1
sekolah 0 0 1

Tabel 2.9 Perhitungan inverse document frequency


Term Nilai Idf= log(N/dft)
andi log (3/1) = 0.477
suka log (3/1) = 0.477
film log (3/2) = 0.176
kartun log (3/1) = 0.477
horor log (3/1) = 0.477
bobi log (3/1) = 0.477
beni log (3/1) = 0.477
tonton log (3/1) = 0.477
bioskop log (3/1) = 0.477
susi log (3/1) = 0.477
antar log (3/1) = 0.477
doni log (3/1) = 0.477
rumah log (3/1) = 0.477
tuju log (3/1) = 0.477
sekolah log (3/1) = 0.477

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

Tabel 2.10 Hasil perhitungan tf-idf


Term / Dokumen Dokumen 1 Dokumen 2 Dokumen 3
andi 0.477 0 0
suka 0.477 0 0
film 0.176 0.176 0
kartun 0.477 0 0
horor 0.477 0 0
bobi 0 0.477 0
beni 0 0.477 0
tonton 0 0.477 0
bioskop 0 0.477 0
susi 0 0 0.477
antar 0 0 0.477
doni 0 0 0.477
rumah 0 0 0.477
tuju 0 0 0.477
sekolah 0 0 0.477

2.6 Inverted Index

Inverted index merupakan metode pengindeksan dalam information retrieval

yang digunakan untuk mempercepat pencarian suatu dokumen. Dalam kehidupan

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”.

Pada proses pengindeksan dengan metode inverted index pada kumpulan

dokumen diawali dengan tahapan tokenisasi untuk menentukan kata kunci yang

dapat ditemukan pada setiap dokumen (Croft, Metzler & Strohman, 2010). Pada

tabel 2.11 menunjukkan hasil pengindeksan dengan metode inverted index.

Dokumen yang digunakan sebagai contoh merupakan dokumen 1 dan 2 hasil

tokenisasi pada tabel 2.6.

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.

Tabel 2.11 Hasil Proses Pengindeksan Inverted Index


Kata Kunci Daftar ID Dokumen
andi 1
suka 1
film 1,2
kartun 1
horor 1
bobi 1
beni 1
tonton 1
bioskop 1

2.7 Perhitungan Euclidean Distance

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).

d(u,v) = √∑𝐧𝐤=𝟏(𝐮𝐤 − 𝐯𝐤 )𝟐 .…………………………( 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

Sebagai contoh perhitungan similaritas euclidean distance untuk data dokumen

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.

Perthitungan similaritas diawali dengan membandingkan bobot tf-idf suatu kata di

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

ditunjukkan persamaan (2-5) yang kemudian diakarkan.

Hasil yang dikeluarkan merupakan nilai similaritas euclidean distance dari

kedua dokumen. Tabel 2.13 menunjukkan hasil similaritas euclidean distance antar

dokumen pada koleksi dokumen berdasarkan detail perhitungan distance pada tabel

2.12.

Tabel 2.12 Perhitungan Euclidean distance dokumen 1 dan 2


Term Dokumen 1 Dokumen 2 (Dokumen 1 – Dokumen 2)2
andi 0.477 0 (0.477)2 ≈ 0.288
suka 0.477 0 (0.477)2 ≈ 0.288
film 0.176 0.176 (0)2 = 0
kartun 0.477 0 (0.477)2 ≈ 0.288
horor 0.477 0 (0.477)2 ≈ 0.288
bobi 0 0.477 (−0.477)2 ≈ 0.288
beni 0 0.477 (−0.477)2 ≈ 0.288
tonton 0 0.477 (−0.477)2 ≈ 0.288
bioskop 0 0.477 (−0.477)2 ≈ 0.288

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

𝐝𝐢𝐬𝐭(𝐃𝟏, 𝐃𝟐) =

√𝟎. 𝟐𝟖𝟖 + 𝟎. 𝟐𝟖𝟖 + 𝟎 + 𝟎. 𝟐𝟖𝟖 + 𝟎. 𝟐𝟖𝟖 + 𝟎. 𝟐𝟖𝟖 + 𝟎. 𝟐𝟖𝟖 + 𝟎. 𝟐𝟖𝟖 + 𝟎. 𝟐𝟖𝟖 =

= 𝟏. 𝟓𝟏𝟖 ……………………………………….………….. ( 2-5 )

Tabel 2.13 Hasil perhitungan euclidean distance antar dokumen


Dokumen # 1 2 3
1 0 1.518 1.706
2 1.518 0 1.706
3 1.706 1.706 0

2.8 K-Nearest Neighbor

K-nearest neighbor merupakan salah satu metode klasifikasi, dimana dalam

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

besar (Mutrofin, Izzah, Kurniawardhani & Masrur, 2015).

Dalam menentukan k dokumen terdekat dilakukan dengan menghitung nilai

similaritas/distance dengan calon dokumen pembanding. Nilai k sendiri dapat

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

yang baru dapat memiliki kemungkinan 50% untuk masuk ke masing-masing

kelompok (Lidya, Sitompul & Efendi, 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 -1 7

Cara kerja dari metode kNN dapat dituliskan sebagai berikut (Tan, Steinbach

& Kumar, 2006):

1. Tentukan nilai k

2. Hitung nilai antar data baru dengan yang dibandingkan dengan fungsi

similaritas.

3. Urutkan berdasarkan nilai similaritas terbesar atau terkecil berdasarkan

fungsi similaritas yang digunakan.

4. Ambil k data teratas yang telah diurutkan

5. Hitung jumlah kelas/kelompok terbanyak dari k data tersebut.

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

yang terkecil ke yang terbesar sesuai dengan konsep euclidean distance.

Tabel 2.14 Data dokumen yang telah diurutkan

Ranking ID Dokumen Nilai Similaritas Kelompok


1 1 0 1
2 2 1.518 1
3 3 1.706 2

Setelah pengurutan diasumsikan diambil 3 data teratas (k=3), maka total

kemunculan dari setiap kelas dari setiap dokumen pada tabel 2.14 tersebut

dijumlahkan dan dipilih kelas dengan kemunculan terbesar, dalam hal ini adalah

kelompok 1. Sehingga dokumen baru akan dikelompokkan kedalam kelompok “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 2 – DAS AR T EORI 2 -1 8

2.9 K-Fold Cross Validation

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

data set testing akan dibandingkan dengan dataset training.

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

testing yang berhasil dikelompokkan secara benar akan dirata-rata untuk

mendapatkan rata-rata akurasi dari pengujian validasi. Penentuan nilai k-fold

umumnya merupakan kelipatan 10, tetapi nilai ini bergantung dari besarnya jumlah

dataset yang akan diuji untuk meminimalkan waktu proses perhitungan (James,

Witten, Hastie & Tibshirani, 2013).

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

telah selesai dilakukan pengujian.

Gambar 2.3 Ilustrasi penerapan k-fold cross validation (Wikipedia, 2018)

2.10 Undang-Undang Informasi dan Transaksi Elektronik

Pemanfaatan teknologi dalam berbagai bidang seiring dengan

perkembangannya yang pesat dapat berdampak baik ataupun buruk bila

disalahgunakan untuk hal-hal yang tidak sesuai dengan aturan yang berlaku. Untuk

mencegah hal buruk tersebut terjadi, di Indonesia khususnya terdapat peraturan

yang mengatur tentang pemanfaatan teknologi yaitu Undang-Undang No.11 Tahun

2008 mengenai Informasi dan Transasksi Elektronik (UU ITE) dan Undang-

Undang No 19 Tahun 2016 mengenai perubahan Undang-Undang No.11 Tahun

2008.

UU ITE dikeluarkan berdasarkan dengan persetujuan DPR dan Presiden

Republik Indonesia. UU ITE berisi beberapa kegiatan yang dilarang dalam

penggunaan teknologi informasi seperti, penghinaan, ujaran kebencian (SARA),

ancaman kekerasan, kesusilaan serta perjudian. Dalam UU ITE juga dituliskan

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

“Setiap Orang dengan sengaja dan tanpa hak mendistribusikan dan/atau

mentransmisikan dan/atau membuat dapat diaksesnya Informasi Elektronik

dan/atau Dokumen Elektronik yang memiliki muatan yang melanggar

kesusilaan”.

Hukuman: Penjara paling lama 6 tahun dan/atau denda paling banyak 1 Miliar.

2) Pasal 27 Ayat 2

“Setiap Orang dengan sengaja dan tanpa hak mendistribusikan dan/atau

mentransmisikan dan/atau membuat dapat diaksesnya Informasi Elektronik

dan/atau Dokumen Elektronik yang memiliki muatan perjudian”.

Hukuman: Penjara paling lama 6 tahun dan/atau denda paling banyak 1 Miliar.

3) Pasal 27 Ayat 3

“Setiap Orang dengan sengaja dan tanpa hak mendistribusikan dan/atau

mentransmisikan dan/atau membuat dapat diaksesnya Informasi Elektronik

dan/atau Dokumen Elektronik yang memiliki muatan penghinaan dan/atau

pencemaran nama baik”.

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

ditujukan untuk menimbulkan rasa kebencian atau permusuhan individu

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

dan/atau Dokumen Elektronik yang berisi ancaman kekerasan atau menakut-

nakuti yang ditujukan secara pribadi”.

Hukuman: Penjara paling lama 4 tahun dan/atau denda paling banyak 750 juta.

2.11 Twitter

Twitter merupakan media komunikasi online yang ditemukan oleh Jack

Dorsey, dimana twitter memungkinkan user berbagi informasi ataupun berpendapat

secara singkat dalam berbagai bentuk seperti teks, gambar maupun video. Informasi

yang dibagikan di twitter dikenal dengan sebutan tweet. Dalam sebuah tweet jumlah

karakter yang diperbolehkan sebanyak 140 karakter.

Twitter juga menyediakan API (Application Programming Interface) yang

memungkinkan mendapatkan informasi dari twitter yang dapat digunakan untuk

pengembangan aplikasi ataupun penelitian (Sembodo, Setiawan & Baizal, 2017).

Perkembangan dan penggunaan twitter di Indonesia sebagai salah satu media

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

(Herman & Mononimbar, 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
ANALISIS SISTEM

Pada bab ini dibahas mengenai analisis sistem yang terdiri dari penggunaan

twitter di kalangan masyarakat Indonesia, penelitian sejenis yang telah dilakukan,

masalah yang muncul dari penggunaan twitter serta analisis kebutuhan sistem untuk

menjawab permasalahan.

3.1 Analisis Keadaan Saat Ini

Untuk mengetahui keadaan terkait penggunaan media sosial twitter, dilakukan

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.

Berdasarkan pandangan pakar, dari sisi positif, twitter digunakan sebagai

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

dirinya sendiri, hingga menyalahgunakan media sosial sebagai sarana untuk

menyebarkan konten negatif.

Perkembangan penyebaran konten negatif di twitter menurut pandangan pakar

bahwa, seiring dengan meningkatnya jumlah pengguna twitter, maka akan

meningkatkan kemungkinan jumlah penyebaran konten negatif. Pendapat pakar


BAB 3 – A N ALI S I S S I S T EM 3 -2

didukung dengan adanya salah satu data yang telah dihimpun kementrian

komunikasi dan informatika (kemenkominfo), bahwa ditemukan sekitar 13.829

konten negatif berupa ujaran kebencian dan 13.120 konten berupa pornografi

sepanjang tahun 2017 (Yuliani, 2017).

Berdasarkan pandangan pakar, setiap konten negatif memiliki indikator atau

ciri-ciri tersendiri. Pada tabel 3.1 merupakan pandangan pakar terkait ciri dari

konten yang dikategorikan sebagai konten negatif.

Tabel 3.1 Tabel ciri konten negatif berdasarkan pandangan pakar


Jenis Konten Negatif Indikator / Ciri
Penghinaan Adanya unsur untuk menghina atau merendahkan suatu
pihak. Contoh: ba***at, an***g, b**i, m***et, g***ok,
i***t, g**a, t***l, b**a, j**ek, k***rat, br****ek,
ba****an (Margono, Yi., & Raikundalia., 2014)
Ujaran Kebencian Mengandung unsur penghinaan yang dihubungkan dengan
suku, agama, ras atau golongan/kelompok tertentu
Ancaman Kekerasan Adanya unsur untuk melukai secara fisik
Kesusilaan Adanya tawaran dan/atau mengandung unsur untuk
memuaskan nafsu yang berhubungan dengan alat
seksualitas
Perjudian Adanya tawaran atau hal-hal yang dapat menimbulkan
keuntungan yang mengandung unsur pertaruhan

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

penawaran nomor togel ditunjukkan oleh gambar 3.5.

Gambar 3.1 Contoh tweet ujaran kebencian (Sumber: detik.com)

Gambar 3.2 Contoh tweet ujaran penghinaan

Gambar 3.3 Contoh tweet ancaman kekerasan

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

Gambar 3.4 Konten Kesusilaan

Penanganan penyebaran konten negatif yang beredar, menurut pakar bahwa

untuk penanganan penyebaran seperti pelanggaran penghinaan, ujaran kebencian,

perjudian, ancaman kekerasan dan kesusilaan belum tersedia. Hanya saja dari

pemerintah sendiri telah menurunkan kominfo sebagai pemantau terkait dengan

perilaku masyarakat dalam pemanfaatan media sosial. Sedangkan untuk ISP

(Internet Service Provider) yang menyediakan layanan hanya sebatas melakukan

filter dari URL situs porno bukan terhadap konten di media sosial.

Untuk mengurangi beredarnya konten negatif, twitter saat ini memiliki

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.

Gambar 3.5 Konten Perjudian transaksi penjualan nomor togel

Perbedaan kedua fitur ini adalah fitur block mengakibatkan user yang di block

ketika mengirimkan tweet secara pribadi ke user yang melakukan block tidak akan

diberikan notifikasi, sedangkan fitur mute masih memungkinkan. Contoh

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

@TM********tro terdapat tweet dari @det******88 dan setelah dilakukan mute

maka tweet dari @det******88 tidak akan muncul seperti pada gambar 3.7.

Gambar 3.6 Contoh penggunaan fitur mute

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

Gambar 3.7 Hasil penggunaan fitur mute

Gambar 3.8 Contoh penggunaan fitur block

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

Selanjutnya fitur report, melakukan pelaporan secara manual terkait dengan

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

tweet dengan kata “g***ok”, kemudian pengguna dapat menambahkan kata

“g***ok” seperti pada gambar 3.12 sehingga setiap tweet yang mengandung kata

tersebut tidak akan muncul.

Gambar 3.9 Penggunaan fitur report

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

Gambar 3.10 Aksi lanjutan fitur report

Gambar 3.11 Tweet mengandung kata “g***ok”

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

Gambar 3.12 List kata mute word

3.2 Analisis Sistem Sejenis

Analisis sistem sejenis yang dilakukan, merujuk pada beberapa jurnal yang

melakukan penelitian serupa dengan penelitian pada laporan tugas akhir ini. Tujuan

dilakukannya analisis sistem sejenis ini digunakan sebagai pertimbangan dalam

menerapkan metode penelitian pada laporan tugas akhir ini. Penelitian yang

menjadi acuan dalam analisis sistem sejenis adalah “Text Mining of UU-ITE

Implementation in Indonesia”, “Indonesian Twitter Cyberbullying Detection using

Text Classification and User Credibility” dan “Klasifikasi Teks dengan

Menggunakan Algoritma K-Nearest Neighbor pada Kasus Kinerja Pemerintah di

Twitter”.

3.2.1. Text Mining of UU-ITE Implementation in Indonesia

Pada penelitian ini, peneliti (Hakim, Kusumasari, & Lubis, 2018) melakukan

identifikasi terhadap pandangan masyarakat indonesia di media sosial twitter terkait

dengan penerapan UU ITE dengan teknik clustering. Peneliti menggunakan API

Twitter untuk memperoleh data berupa tweet yang sesuai dan mengumpulkan 1843

tweet dan menggunakan bahasa pemrograman R untuk proses analisis.

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

Tweet dikumpulkan dengan berdasarkan kata kunci tertentu, hastag, region

pengambilan data, dalam hal ini Indonesia, serta akun tertentu. Dari setiap tweet

tersebut akan dilakukan penghapusan stopword, stemming dan perhitungan TF-IDF

yang kemudian dipetakan menjadi sebuah grafik seperti yang ditunjukkan pada

gambar 3.13 yang menunjukkan jumlah kemunculan kata menggunakan R.

Peneliti kemudian menyajikan keterkaitan antar kata dalam bentuk dendogram

dendrogram. Dendrogram yang dibangun dibagi kedalam 5 kelompok setelah

dilakukan perhitungan jarak antar kata dan dilakukan proses clustering dengan

fungsi hierarchical clustering yang disediakan oleh R. Pada gambar 3.14

menunjukkan hasil dendogram yang telah dibangun dari data yang telah

dikumpulkan.

Gambar 3.13 Grafik dokumen kata pada tweet

Berdasarkan tweet yang telah dikumpulkan, peneliti menggunakannya untuk

mengetahui permasalahan yang muncul di masyarakat dengan adanya UU ITE

terkait dengan kebebasan berpendapat. Peneliti menyimpulkan bahwa, pengguna

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

twitter di Indonesia kesulitan untuk berpendapat karena, kurangnya pemahaman

terkait dengan tweet yang dapat mengandung konten yang dapat melanggar UU ITE

Gambar 3.14 Dendrogram hasil hierarchical clustering

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

tanpa harus takut melanggar peraturan tertentu.

3.2.2. Indonesian Twitter Cyberbullying Detection using Text

Classification and User Credibility

Peneliti (Nurrahmi & Nurjanah, 2018) melakukan penelitian terkait deteksi

tweet yang mengandung unsur cyberbullying dan melakukan analisa terkait user

yang melakukan tweet. Tetapi, pada analisa sistem sejenis terhadap penelitian ini

akan difokuskan terhadap penelitian terkait dengan deteksi tweet.

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

kepada responden untuk menentukan kategori dari tweet dan/atau menentukan

kategori dari setiap kata dalam tweet tersebut sebagai “negatif” atau “kata kasar”.

Responden diberikan 4 pilihan untuk setiap tweet yang akan diberi label seperti

yang ditunjukkan pada tabel 3.2.

Tabel 3.2 Bobot pelabelan Tweet


Opsi Bobot Keterangan
1 |-2| Very non-cyberbullying
2 |-1| Non-cyberbullying
3 1 Cyberbullying
4 2 Very Cyberbullying

Pada dasarnya peneliti membagi pelabelan tweet kedalam 2 kelompok besar

yaitu Non-Cyberbullying dan Cyberbullying. Pembobotan Non-Cyberbullying

didasari opsi 1 dan 2, sedangkan pembobotan Cyberbullying didasari opsi 3 dan 4.

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.

Untuk sistem yang dibangun peneliti melakukan 3 tahapan dalam

preprocessing yaitu cleaning, tokenisasi dan POS Tagging. Cleaning dilakukan

terhadap angka, simbol dan username, sedangkan POS Tagging dilakukan untuk

memberikan label terhadap setiap kata dalam suatu 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 3 – A N ALI S I S S I S T EM 3 -1 4

Gambar 3.15 Contoh tampilan user interface web peneliti

Metode klasifikasi yang digunakan oleh peneliti adalah k-NN dan SVM dengan

menggunakan bahasa pemrograman python. Untuk metode SVM peneliti

membandingkan 2 metode linear function dan RBF kernel dan mendapatkan hasil

terbaik ketika menggunakan nilai C=4 dengan metode RBF kernel seperti yang

ditunjukkan pada tabel 3.3. Nilai C merupakan parameter toleransi kesalahan

klasifikasi yang dihasilkan oleh sistem dengan metode SVM.

Tabel 3.3 Hasil metode SVM RBF Kernel dengan C=4


Label Precision Recall F1-Score
N-Cyberbullying 0.7 0.69 0.7
Cyberbullying 0.62 0.64 0.63
avg/total 0.67 0.67 0.67

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

dengan nilai F1-Score 0.66. Berdasarkan penelitian yang dilakukan, peneliti

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

menyimpulkan bahwa penggunaan SVM memiliki nilai F1 Score sebesar 67%

sedangkan k-NN sebesar 66%.

Tabel 3.4 Hasil ujicoba dengan metode k-NN


Label Precision Recall F1-Score
N-Cyberbullying 0.69 0.7 0.7
Cyberbullying 0.62 0.61 0.62
avg/total 0.66 0.66 0.66

3.2.3. Klasifikasi Teks dengan Menggunakan Algoritma K-

Nearest Neighbor pada Kasus Kinerja Pemerintah di Twitter

Peneliti (Prakasa & Lhaksmana, 2018) melakukan penelitian terkait dengan

pendapat masyarakat terkait dengan kinerja pemerintah berdasarkan tweet dari

Twitter. Dataset yang digunakan sejumlah 1000 data tweet yang didapat dari proses

crawling twitter. Pendapat masyarakat akan dikategorikan kedalam “Positif” dan

“Negatif”. Proses pengkategorian data tweet akan menggunakan metode metode

klasifikasi k-nearest neighbor (k-NN) dengan euclidean distance.

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

yang didapatkan penelitan yang dilakukan mendapatkan akurasi sebesar 90.5%

ketika pengujian 80:20 untuk nilai k-nn 3 dan 5.

Berdasarkan analisis sistem sejenis terkait 3 penelitian sebelumnya, pembuatan

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

pengguna dalam berpendapat di media sosial sesuai dengan UU ITE. Sedangkan

berdasarkan penelitian 2 dan penelitian 3, penelitian ini akan melakukan penelitian

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

tokenisasi yang dilakukan pada penelitian ini.

3.3 Analisis Masalah

Berdasarkan analisa keadaan saat ini yang telah dijelaskan dan wawancara

yang dilakukan dengan pakar, maka muncul beberapa permasalahan dalam hal

menangani penyebaran konten negatif di twitter yakni:

- User yang menggunakan media sosial khususnya twitter tidak mengetahui

apakah tweet yang akan diposting aman untuk dibagikan atau dapat berpotensi

melanggar UU ITE.

- Belum adanya sistem untuk mencegah suatu konten negatif yang berpotensi

melanggar UU ITE, ketika akan dibagikan ke media sosial twitter.

3.4 Analisis Kebutuhan Sistem

Berdasarkan analisis masalah, maka untuk dapat mencegah munculnya tweet

yang mengandung konten negatif untuk dibagikan ke media sosial twitter,

dibutuhkan suatu sistem yang dapat mendeteksi tweet yang akan dibagikan ke

Twitter. Sistem ini membutuhkan data training yang berasal dari data uji coba yang

telah dikumpulkan dan dikelompokkan sebagai tweet yang “Melanggar” atau

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

“Tidak Melanggar”. Data training digunakan sebagai acuan untuk mendeteksi

apakah suatu tweet yang akan dibagikan aman atau berpotensi mengandung konten

negatif yang melanggar UU ITE.

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.

Proses pembandingan ini dilakukan dengan menggunakan metode klasifikasi

k-nearest neighbor (k-nn) dengan pendekatan euclidean distance, dikarenakan pada

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).

4.1 Desain Data

Pada bagian ini dibahas mengenai proses perancangan data sehingga dapat

berjalan baik pada sistem. Perancangan data ini dibagi menjadi dua bagian, yaitu

perancangan Entity Relationship Diagram (ERD) dan perancangan File.

4.1.1 Perancangan Entity Relationship Diagram (ERD)

Perancangan ERD yang dilakukan dengan menentukan entitas serta atribut

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

social_twitter_accounts. Tabel ini hanya menyimpan tweet data ujicoba hasil

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

Gambar 4.1 ERD sistem

Berdasarkan hasil ERD pada gambar 4.1, selanjutntya dilakukan pembentukan

kamus data yang berisi penjelasan dari setiap entitas beserta atribut yang ada

didalamnya. Pada tabel 4.1 menunjukkan tabel kamus data dari rancangan ERD

pada gambar 4.1.

Tabel 4.1 Tabel kamus data


Nama Tabel Atribut Tipe Data Keterangan
users id int Primary key user
nama_user varchar Nama user pada
twitter
email varchar Email yang
didaftarkan pada
twitter
role int Hak akses user (1:
Admin, Null: User
Biasa)

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

Tabel 4.1 Tabel kamus data (lanjutan)


Nama Tabel Atribut Tipe Data Keterangan
nilaiK int Nilai K yang
digunakan dalam
sistem
isActive tinyint Status aktif user
(0: Tidak Aktif, 1:
Aktif)
created_at timestamp Waktu data dibuat
updated_at timestamp Waktu data
diubah

social_twitter_acc id int Primary key tabel


ounts social_twitter_acc
ounts
provider_user_id varchar ID User pada
sosial media
twitter
provider varchar Nama Sosial
Media
created_at timestamp Waktu data dibuat
updated_at timestamp Waktu data
diubah
user_id int FK tabel User

tweets id int Primary key tabel


tweets
id_str_tweet varchar ID tweet pada
twitter
name varchar Nama display
akun twitter
screen_name varchar Nama username
twitter
tweet text Isi tweet
tweet_stemmed text Isi tweet setelah
preprocessing
isMelanggar tinyint Status
pengkategorian
tweet (0: Tidak
Melanggar, 1:
Melanggar)
isActive tinyint Status aktif tweet
(0: Tidak Aktif, 1:
Aktif)
created_at timestamp Waktu data dibuat

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

Tabel 4.1 Tabel kamus data (lanjutan)


Nama Tabel Atribut Tipe Data Keterangan
updated_at timestamp Waktu data
diubah
log_tweets id int Primary Key tabel
log_tweets
detail_perubahan text Informasi event
yang terjadi pada
tweet tertentu
isActive tinyint Status aktif log
tweet (0: Tidak
Aktif, 1: Aktif)
created_at timestamp Waktu data dibuat
updated_at timestamp Waktu data
diubah
tweet_id int FK tabel tweets
yang mengalami
event

history_tweets id int Primary key tabel


history_tweets
nilaiK int Nilai K yang
digunakan ketika
data diuji
isActive tinyint Status aktif
history (0: Tidak
Aktif, 1: Aktif)
created_at timestamp Waktu data dibuat
updated_at timestamp Waktu data
diubah

detail_history_tw id int Primary key tabel


eets history_tweets
distance double Nilai jarak antar
data yang diuji
dengan data
training
isActive tinyint (1) Status aktif
history (0: Tidak
Aktif, 1: Aktif)
created_at timestamp Waktu data dibuat
updated_at timestamp Waktu data
diubah

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

Tabel 4.1 Tabel kamus data (lanjutan)


Nama Tabel Atribut Tipe Data Keterangan
tweet_id int (10) FK tabel tweets
dimana tweet
sebagai data
training /
pembanding
historytweet_id int (10) FK tabel history
yang menjadi
parent dari detail
history tertentu

4.1.2 Perancangan File

Perancangan file ini dilakukan untuk melakukan penyimpanan terhadap nilai

dari frekuensi dari data tweet. File akan berisi document frequency suatu term (dft),

term frequency (tf) serta menyimpan nilai term frequency-inverse document

frequency (tf-idf) atau nilai bobot setiap term pada suatu data tweet.

Tipe data yang akan disimpan dalam file ini akan berbentuk JSON. Untuk

menyimpan nilai df suatu term, file json akan berbentuk

{“nama_term”:”jumlah_dokumen”}, sedangkan untuk menyimpan nilai tf dan tf-

idf akan berbentuk {“id”:{“term”:{“tf”,”tf_idf”},…,},…. }.

4.2 Desain Proses

Pada bagian ini dijabarkan proses yang terjadi pada sistem. Desain proses

menentukan alur sistem yang diimplementasikan sehingga dapat berjalan dengan

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

aktif-non aktif tweet.

4.2.1 Desain Proses Login

Proses login diawali dengan mengklik button “Sign-In With Twitter”.

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

akan diarahkan ke halaman tersebut.

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

username dan password sendiri pada halaman awal.

Hal ini karena sistem tidak memiliki database dari pengguna twitter dan twitter

tidak memberikan akses khususnya password user yang login. Tujuannya untuk

menjaga kerahasiaan data user sehingga tetap aman walaupun menggunakan

aplikasi yang membutuhkan login dengan akun twitter. Setelah selesai twitter akan

melakukan redirect ke sistem utama. Alur dari proses login ini digambarkan seperti

pada gambar 4.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 4 – DES AI N S I S TE M 4 -7

Gambar 4.2 Proses login sistem

4.2.2 Desain Proses Preprocessing

Sebelum dilakukan proses pembandingan ataupun menyimpan data ujicoba ke

database dilakukan proses preprocessing. Alur tahapan ini digambarkan seperti

pada gambar 4.3.

Tahapan ini diawali dengan menghapus link, angka dan username yang terdapat

didalam tweet kemudian dilanjutkan dengan proses “Hastag Processing”. Setelah

proses ini selesai, kemudian hasil kata yang dihasilkan digabungkan kembali

dengan tweet, lalu dilanjutkan ke tahap “Stopword Removal”. Setelah stopword

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

dilakukan proses stemming, dilanjutkan proses stopword removal untuk

membersihkan stopword yang dihasilkan dari proses stemming.

Gambar 4.3 Alur Proses Preprocessing

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

4.2.3 Desain Proses Indexing Tweet Data Uji Coba

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

4.4 menunjukkan alur proses dari indexing data.

4.2.4 Desain Proses Posting Tweet Baru

Alur proses ini dapat digambarkan seperti pada gambar 4.5. Sistem akan

melakukan tahapan preprocessing terhadap data tweet baru yang diinputkan,

kemudian dilakukan pembobotan tf-idf. Pembobotan tf-idf tweet baru ini dilakukan

dengan menggunakan hasil indexing data uji coba sebagai data training yang

disimpan dalam bentuk JSON.

Setelah dilakukan pembobotan, hasil pembobotan data tweet baru

dibandingkan dengan pembobotan dataset uji coba untuk dilakukan perhitungan

similaritas menggunakan metode euclidean distance sesuai dengan persamaan (2-

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

tersebut disimpan ke dalam database.

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.

Gambar 4.4 Alur Proses Indexing

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

Gambar 4.5 Alur proses posting 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 4 – DES AI N S I S TE M 4 -1 2

4.2.5 Desain Proses Crawling Data Twitter

Untuk mengumpulkan dataset uji coba dilakukan proses crawling. Pada gambar

4.6 menunjukkan alur proses crawling data pada twitter. Proses crawling data yang

dilakukan diawali dengan mengisikan kata kunci. Kemudian dengan memanfaatkan

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

manual. Setelah pemilihan dan pengkategorian, tweet akan melalui tahap

preprocessing yang kemudian akan disimpan ke database.

4.2.6 Desain Proses Ubah Nilai K

Nilai K merupakan salah satu faktor yang menentukan hasil klasifikasi dari

tweet. Mengubah nilai K bertujuan untuk menemukan nilai yang sesuai tepat untuk

proses pembandingan. Gambar 4.7 menunjukkan alur proses mengubah nilai K.

Mengubah nilai K dilakukan dengan menekan tombol “Ubah Nilai K” dan

memasukkan nilai K yang diinginkan. Jika berhasil menyimpan nilai K yang baru,

maka akan mendapatkan notifikasi bahwa penyimpanan telah berhasil dilakukan.

Nilai K yang baru akan disimpan didalam sistem, sehingga setiap tweet baru yang

akan dibandingkan mengacu pada nilai K 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
BAB 4 – DES AI N S I S TE M 4 -1 3

Gambar 4.6 Alur proses crawling data 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 4 – DES AI N S I S TE M 4 -1 4

Gambar 4.7 Alur Proses Ubah nilai K

4.2.7 Desain Proses Ubah Status Tweet

Data ujicoba digolongkan menjadi 2 jenis “Melanggar” dan “Tidak

Melanggar”. Admin dapat melakukan perubahan status dari sebuah tweet. Alur dari

proses mengubah status tweet ditunjukkan pada gambar 4.8.

Mengubah status tweet dilakukan dengan menekan tombol “Ubah Status” pada

kolom aksi dari tweet yang akan diubah. Sistem akan menyimpan perubahan status

dari “Melanggar” dan “Tidak Melanggar” ataupun sebaliknya. Hasil perubahan

status akan disimpan dalam database.

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

Gambar 4.8 Alur proses ubah status tweet

4.3 Desain User Interface

Pada bagian ini menjelaskan rancangan tampilan dari sistem yang dibuat yang

terdiri dari tampilan halaman awal sistem, halaman menu admin dan tampilan

peringatan yang akan muncul ketika user melakukan posting tweet.

4.3.1 Halaman Login

Halaman login akan digunakan oleh setiap user baik admin maupun user biasa

untuk menggunakan sistem ini. Pada halaman ini berisi sebuah tombol login yang

akan berguna untuk melakukan proses login.

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

username dan password.

Gambar 4.9 Halaman login

4.3.2 Halaman Awal

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.

4.3.2.1 Halaman Awal User Admin

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.

Gambar 4.10 Halaman awal user admin

4.3.2.2 Halaman Awal User Biasa

Pada tampilan halaman awal user biasa serupa dengan tampilan untuk user

admin. Dimana terdapat 3 bagian yaitu, bagian menu, bagian posting tweet dan

bagian untuk melihat tweet user yang diikuti.

Pada user biasa untuk bagian menu “Data Training” dan “History Data” tidak

ditampilkan karena menu tersebut hanya dapat diakses oleh admin. Gambar 4.11

menunjukkan tampilan halaman awal untuk user biasa.

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

Gambar 4.11 Halaman awal user biasa

4.3.3 Halaman Menu Admin

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”.

4.3.3.1 Halaman Menu Data Training

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

tombol yaitu tombol “Ubah 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 9

Untuk melakukan pencarian terhadap suatu data tertentu, pada halaman sub-

bagian “Data Training” disediakan kolom “Search” untuk melakukan pencarian

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

yang ingin ditampilkan untuk setiap page.

Tombol “Ubah Status” berfungsi untuk merubah status data uji coba dari

“Tidak Melanggar” menjadi “Melanggar” ataupun sebaliknya. Jika perubahan

status selesai dilakukan maka akan muncul pesan yang berisi informasi terkait tweet

yang dirubah dan perubahan statusnya seperti yang ditunjukkan pada gambar 4.13.

Gambar 4.12 Tampilan Awal Menu Data Training, sub-bagian “Data


Training”

Sub-bagian “Aksi” memungkinkan user admin untuk melakukan proses

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

menunjukkan tampilan utama dari sub-bagian “Aksi”.

Gambar 4.13 Pesan berhasil ubah status Tweet

Gambar 4.14 Tampilan Awal sub-bagian “Aksi”

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

Tombol “Crawling” digunakan untuk mengambil data menggunakan API

Twitter. Pada sistem ini diberikan 2 pilihan untuk melakukan proses crawling yaitu

dengan menginputkan username atau menginputkan query tertentu seperti pada

contoh gambar 4.15 menunjukkan tampilan crawling dengan username.

Gambar 4.15 Contoh tampilan Crawling

Setelah menentukan pilihan, kemudian user akan menginputkan jumlah data

yang akan di crawling dan jumlah perulangan yang ingin dilakukan . Sistem akan

melakukan proses terhadap request crawling yang dilakukan. Untuk memberikan

informasi kepada user crawling sedang diproses akan ditampilkan dalam bentuk

modal seperti pada gambar 4.16.

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

Gambar 4.16 Modal loading proses

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

disimpan dan menentukan kategorinya (“Melanggar” atau “Tidak Melanggar”).

Gambar 4.17 Tampilan selesai crawling 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 -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.

Gambar 4.18 Konfirmasi simpan data uji coba

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

diarahkan ke halaman utama “Data Training”.

Tombol “Ubah Nilai K” digunakan untuk merubah jumlah tetangga terbanyak

(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

seperti gambar 4.13 dengan isi pesan yang berbeda.

Gambar 4.19 Contoh Modal Notifikasi

Gambar 4.20 Modal ubah nilai K

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

Tombol “Indexing” digunakan untuk memperbaharui file index terhadap data

ujicoba yang ada. Setelah berhasil melakukan proses indexing, maka akan

diarahkan ke halaman utama seperti pada gambar 4.13 dengan pesan notifikasi.

4.3.3.2 Halaman menu History Data

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

ditampilkan berupa tweet serta hasil preprocessing dari tweet tersebut.

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

dokumen seperti pada gambar 4.22.

Gambar 4.21 Halaman utama history data testing

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

Gambar 4.22 Halaman utama detail history data testing

4.3.4 Halaman Peringatan Posting Tweet

Tampilan ini akan muncul sebagai pesan peringatan ketika sistem memberikan

feedback kepada user. Pesan peringatan ini berisi informasi terkait hasil dari

pembandingan yang dilakukan oleh sistem.

Pada gambar 4.23 menunjukkan tampilan peringatan “Tweet mengandung

konten negatif” ketika hasil pembandingan terhadap tweet baru mengandung

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

Gambar 4.23 Tampilan pesan peringatan konten negatif

Gambar 4.24 Tampilan pesan tweet dapat di posting

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

Data dan Implementasi Proses. Implementasi sistem yang dilakukan menggunakan

framework PHP Laravel 5.7 dengan konsep MVC dan Implementasi data dengan

MySQL.

5.1 Implementasi Data

Implementasi data menjelaskan implementasi database dan penyimpanan file

yang telah dijelaskan pada bab 4. Implementasi database akan dilakukan terhadap

setiap tabel berdasarkan ERD yang telah dibuat dan implementasi file terkait

dengan penyimpanan hasil indexing.

5.1.1. Implementasi Database

Pada sub-bab ini berisi penjelasan tabel pada ERD yang dibuat. Tabel yang

dibutuhkan pada sistem ini adalah, users, social_twitter_accounts, tweets,

log_tweets, history_tweets dan detail_history_tweets.

5.1.1.1 Tabel User

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

menunjukkan struktur dari tabel users.

Gambar 5.1 Struktur tabel users

5.1.1.2 Tabel Social Twitter Account

Tabel social twitter account pada database sistem ini bernama

“social_twitter_accounts”. Tabel ini digunakan untuk menyimpan id provider

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.

Pada gambar 5.2 menunjukkan struktur dari tabel social_twitter_accounts.

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

Gambar 5.2 Struktur tabel social_twitter_accounts

5.1.1.3 Tabel Tweet

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.

Pada gambar 5.3 menunjukkan struktur dari tabel tweets.

Gambar 5.3 Struktur tabel 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 -4

5.1.1.4 Tabel Log Tweet

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”.

Data yang disimpan berupa id tweet yang mengalami perubahan serta

perubahan yang terjadi pada tweet tersebut. Pada gambar 5.4 menunjukkan struktur

dari tabel log_tweets.

Gambar 5.4 Struktur tabel log_tweets

5.1.1.5 Tabel History Tweet

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

nilai K yang digunakan ketika proses pembandingan 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 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

struktur dari tabel history_tweets.

Gambar 5.5 Struktur tabel history_tweets

5.1.1.6 Tabel Detail History Tweet

Tabel detail history tweet pada database sistem ini bernama

“detail_history_tweets”. Tabel ini digunakan untuk menyimpan detail informasi

dari tweet yang digunakan untuk membandingkan tweet data uji. Informasi yang

disimpan berupa id tweet yang digunakan untuk membandingkan serta nilai

perhitungan jarak antara data testing dengan tweet tersebut.

Tabel ini memiliki relasi one-to-many dengan tabel “tweets” dan tabel

“history_tweets”. Tabel ini menerima donor foreign key dari tabel “tweets” maupun

tabel “history_tweets”. Pada gambar 5.6 menunjukkan struktur dari tabel

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

Gambar 5.6 Struktur tabel detail_history_tweets

5.1.2. Implementasi File

Implementasi file dilakukan untuk menyimpan hasil indexing berupa nilai

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.

Gambar 5.7 Struktur penyimapan nilai dft

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

Gambar 5.8 Struktur penyimpanan tf dan tf-idf

Dalam melakukan implementasi file, sistem akan mengambil data training

dengan status aktif lalu dilakukan preprocessing terhadap data tersebut. Proses

preprocessing akan dijelaskan pada bab implementasi proses. Selanjutnya data

tersebut akan melalui proses tokenisasi untuk dipecah menjadi token-token dengan

menggunakan fungsi php “explode”.

Fungsi ini membutuhkan 2 parameter yaitu, pemisah objek dalam hal ini adalah

kata dalam kalimat dan objek yang akan diproses. Potongan program pada listing

5.1 menunjukkan proses tokenisasi dokumen.

Listing 5.1 Potongan program proses tokenisasi


$arrTokenisasi = explode(" ", $this->preProcessing($item-
>tweet));

Setelah melalui tahapan tokenisasi maka proses selanjutnya adalah perhitungan

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

Proses perhitungan nilai dft diawali dengan pengecekan kemunculan kata

dalam dokumen. Dalam suatu dokumen jika terdapat 2 kata yang sama, maka akan

dianggap 1 kemunculan. Perhitungan tf diawali dengan melakukan pengecekan

apakah kata tersebut sudah pernah disimpan atau belum, jika belum maka

kemunculan kata dalam dokumen tersebut akan di set 1, jika sudah maka akan

ditambahkan jumlah kemunculan kata dalam dokumen tersebut. Potongan program

pada listing 5.2 menunjukkan proses perhitungan nilai dft dan nilai tf hasil

tokenisasi.

Listing 5.2 Potongan program perhitungan dft dan nilai tf

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

didapatkan dengan persamaan (2-2). Potongan program pada listing 5.3

menunjukkan proses perhitungan nilai tf-idf dan penyimpanan seluruh hasil

perhitungan dft, 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 -9

Listing 5.3 Potongan program perhitungan nilai tf-idf dan penyimpanan hasil

foreach($allTweet as $key => $item)


{
foreach($arrTerminDoc[$item->id] as $key2 => $item2)
$arrTerminDoc[$item->id][$key2]['tf-idf'] =
$arrTerminDoc[$item-
>id][$key2]['tf']*log10(count($arrTerminDoc)/$arrTermDf[$key2])
;
}

file_put_contents('termDf_v4.json',json_encode($arrTermDf));
file_put_contents('termInDoc_v4.json',json_encode($arrTerminDoc
));

5.2 Implementasi Proses

Pada sub bab ini dijelaskan mengenai implementasi yang dilakukan berdasarkan

desain proses yang dijelaskan pada bagian “Desain Proses”.

5.2.1 Implementasi Proses Login

Untuk melakukan login keadalam sistem, dibutuhkan akun yang sebelumnya

telah didaftarkan ke twitter. Pengguna akan menekan tombol “Sign In With

Twitter” dan diarahkan ke landing page login twitter. Untuk melakukan proses

login digunakan library TwitterOauth. Dokumentasi lengkap dari library yang

digunakan dapat dilihat pada tautan https://github.com/abraham/twitteroauth.

Diawali dengan membangun koneksi ke twitter dengan menginisialisasi objek

TwitterOauth yang membutuhkan 2 parameter, Consumer Key dan Consumer

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

sistem mengarahkan ke landing page 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
BAB 5 – I MP LE ME N TAS I 5 -1 0

Listing 5.4 Potongan program redirect ke landing page login twitter

$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);

Setelah diarahkan menuju halaman landing page, pengguna akan melakukan

login dengan akun yang dimiliki. Setelah berhasil melakukan login ke twitter, jika

pengguna adalah pengguna baru, maka akan disimpan ke dalam database dan

selanjutnya akan diarahakan kembali kedalam sistem. Potongan program pada

listing 5.5 menunjukkan proses mengarahkan kembali pengguna kedalam sistem.

Listing 5.5 Potongan program redirect ke sistem


$connection = new
TwitterOAuth(env('TWITTER_CONSUMER_KEY'),env('TWITTER_CONSUMER_
SECRET'),Session::get('oauth_token'),Session::get('oauth_token_
secret'));

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

Listing 5.5 Potongan program redirect ke sistem (lanjutan)


Session::put('connect',$connection2);
$detail = $connection2->get('account/verify_credentials',[
'include_email' => 'true',
'skip_status' => 'true',
'include_entities' => 'false'
]);
Session::put('profileImageSource',$detail-
>profile_image_url_https);
Session::put('screenName',$detail->screen_name);

$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');

5.2.2 Implementasi Proses Preprocessing


Pada tahapan preprocessing dilakukan beberapa tahapan untuk melakukan

normalisasi terhadap suatu tweet. Tahapan awal diawali dengan “Link Removal”.

Tahapan ini dilakukan untuk menghapus link yang terdapat dalam suatu tweet.

Proses ini dilakukan dengan menggunakan fungsi php yaitu preg_replace.

Fungsi ini membutuhkan 3 parameter, pola, pengganti, serta objek yang akan

diproses. Program pada listing 5.6 menunjukkan proses “Link 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 2

Listing 5.6 Potongan program proses link removal

$regex = "@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-
]*(\?\S+)?[^\.\s])?)?)@";
$strNoLink = preg_replace($regex, ' ', $tweet);

Setelah menghapus link pada suatu tweet, selanjutnya adalah tahapan

“Username Removal”. Tahapan ini menghapus username yang diawali dengan

simbol “@” dalam suatu tweet. Pada listing 5.7 menunjukkan potongan program

proses “Username Removal”.

Listing 5.7 Potongan program proses username removal


$regexUser = "/@\w+/";
$strNoLink = preg_replace($regexUser, '', $strNoLink);

Setelah tahapan username removal dilakukan, selanjutnya dilakukan proses

“Number Removal”. Proses ini dilakukan untuk menghapus angka yang melekat

pada suatu kalimat. Sebagai contoh “undang2” menjadi “undang. Pada listing 5.8

menunjukkan potongan program proses “Number Removal”.

Listing 5.8 Potongan program proses number removal


$regexNumber = "/[0-9]+/";
$strNoLink = preg_replace($regexNumber, '', $strNoLink);

Setelah tahapan number removal adalah tahapan Hastag Processing. Tahapan

ini bertujuan untuk melakukan ekstraksi kata yang terdapat dalam suatu hastag.

Hastag yang terdapat dalam suatu tweet dapat mengandung kata yang dapat

digunakan menambah variasi token contoh “#DukunganMembara”.

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

melakukan proses ini digunakan fungsi php “preg_match_all”. Fungsi ini

membutuhkan 3 parameter, yaitu pola, objek yang akan diproses, hasil dari

pemrosesan. Setelah memisahkan tweet dengan simbol hastag, hastag kemudian

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

berdasarkan huruf kapital dengan fungsi php “preg_split”. Fungsi preg_split

memecah kalimat berdasarkan pola tertentu menjadi kumpulan array.

Fungsi ini membutuhkan 2 parameter yaitu pola dan objek yang akan diproses.

Sebagai contoh “#DukunganMembara” akan menjadi “Dukungan” dan

“Membara”. Potongan program proses hastag processing dapat dilihat pada listing

5.9.

Setelah dilakukan tahapan hastag preprocessing, dilanjutkan pada proses

“Stopword Removal”. Proses ini memanfaatkan library “Sastrawi”. Cara kerja dari

library untuk proses ini adalah melakukan inisialisasi objek

“StopWordRemoverFactory” untuk menyiapkan penghapusan stopword.

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

Listing 5.9 Potongan program Hastag Processing

$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);
}

Listing 5.10 Potongan program proses stopword removal


$stopWordRemoverFactory = new
\Sastrawi\StopWordRemover\StopWordRemoverFactory();
$stopWordRemover = $stopWordRemoverFactory-
>createStopWordRemover();
$output = $stopWordRemover->remove(strtolower($sentence));

Setelah dilakukan proses stopword removal, maka dilakukan proses stemming

untuk mengubah kedalam kata dasar. Proses ini diawali dengan menginisialisasi

objek “StemmerFactory” untuk persiapan proses stemming, kemudian dengan

fungsi “stem”, setiap kata diubah kedalam bentuk dasar. Proses stemming ini

memanfaatkan library php “Sastrawi”. Cara kerja dari library sastrawi adalah

sebagai berikut:

1. Kalimat yang akan distem akan dilakukan normalisasi, dimana normalisasi

yang dilakukan merubah ke huruf kecil, menghilangkan karakter selain [0-9],

[a-z] dan simbol dari kalimat serta menghapus spasi berlebih.

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

2. Kalimat yang telah dilakukan normalisasi akan dipisahkan berdasarkan spasi

menjadi kumpulan token.

3. Token tersebut akan dilakukan penghapusan awalan maupun akhiran untuk

mendapatkan bentuk kata dasar dari token tersebut.

4. Hasil normalisasi setiap token akan dikembalikan menjadi suatu kalimat utuh.

Dokumentasi lengkap dari penggunaan library sastrawi untuk stopword dan

stemming dapat dilihat pada tautan https://github.com/sastrawi/sastrawi. Potongan

program untuk proses stemming dengan menggunakan library sastrawi ditunjukkan

pada listing 5.11

Listing 5.11 Potongan program proses stemming


$stemmerFactory = new \Sastrawi\Stemmer\StemmerFactory();
$stemmer = $stemmerFactory->createStemmer();
$outputStem = $stemmer->stem($output);

Setelah dilakukan proses stemming, kemudian dilakukan lagi proses stopword

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

Listing 5.12 Proses penghapusan kata

$output2 = explode(" ",$output);


foreach($output2 as $key => $item)
{
if(strlen($item)<3)
unset($output2[$key]);
}
$output2 = implode(" ", $output2);

5.2.3 Implementasi Proses Indexing

Implementasi proses indexing dilakukan untuk menyimpan nilai token dari

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

dituliskan dalam sebuah file.

Untuk implementasi proses indexing telah dijelaskan pada sub-bab

“Implementasi File”. Potongan program untuk proses indexing ditunjukkan oleh

listing 5.1, listing 5.2 dan listing 5.3.

5.2.4 Implementasi Proses Posting Tweet Baru


Sebelum suatu tweet dapat diposting ke twitter, maka akan melalui beberapa

tahapan. Pengguna akan menekan tombol “Post Tweet” setelah mengisi kolom

inputan tweet.

Untuk tahapan awal, tweet akan dilakukan preprocessing. Potongan program

proses preprocessing dijelaskan pada sub-bab “Implementasi Proses

Preprocessing”. Setelah dilakukan preprocessing, tweet tersebut akan dilakukan

pembobotan dan perhitungan similaritas / jarak dengan pendekatan euclidean

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

dalam bentuk file.

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

dikuadratkan hanya nilai tf-idf pada data uji coba.

Setelah dilakukan pembobotan dengan data uji coba, dilanjutkan dengan

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

dijumlah dan dilakukan pengakaran terhadap hasil tersebut. Potongan program

proses pembobotan dan perhitungan euclidean distance ditujukkan pada listing

5.13.

Listing 5.13 Potongan program proses pembobotan dan perhitungan


euclidean distance
foreach($arrTerminDoc[$tweet_id] as $key => $item)
{
if(isset($arrQueryTf[$key]))
{
$dalamQuery = $arrQueryTf[$key] *
log((count($allTweet)/$arrTermDf[$key]),10);
$dalamDoc = $item['tf-idf'];
$eucRes += pow(($dalamQuery-$dalamDoc),2);
$arrQuery[$key]=true;
}
else
$eucRes += pow((0-$item['tf-idf']),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 5 – I MP LE ME N TAS I 5 -1 8

Listing 5.13 Potongan program proses pembobotan dan perhitungan


euclidean distance (lanjutan)

foreach($arrQuery as $key =>$item)


{
if(!$item)
{
$dalamQuery=0;
if(isset($arrTermDf[$key]))
$dalamQuery=$arrQueryTf[$key]*log10(count($allTweet)/
$arrTermDf[$key]);

$eucRes += pow((0-$dalamQuery),2);
}
$item=false;
}
$arrEucl[$tweet_id] = sqrt($eucRes);

Setelah dilakukan pembobotan dan perhitungan nilai similaritas / jarak,

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

parameter opsional seperti tipe pengurutan (Ascending (ASC) atau Descending

(DESC)), serta jenis data yang diurutkan (contoh: numeric). Pada pengurutan ini

dilakukan batasan berdasarkan id tweet terkecil yang menyimpan nilai jarak

tersebut. Potongan program sorting ditunjukkan pada listing 5.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 5 – I MP LE ME N TAS I 5 -1 9

Listing 5.14 Proses pengurutan hasil perhitungan jarak

$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 proses pengurutan selesai, kemudian mengambil nilai K dari sistem.

Setelah mengambil nilai k, tweet baru yang diuji akan disimpan kedalam database

dengan menggunakan model Tweet yang merepresentasikan tabel tweets.

Selanjutnya melakukan penyimpanan id tweet yang merupakan data uji dan nilai K

yang digunakan pada tabel history_tweets yang direpresentasikan oleh model

HistoryTweet.

Selanjutnya untuk tweet yang digunakan sebagai pembanding dan nilai

similaritas distance yang dihasilkan akan disimpan pada detail_history_tweets yang

direpresentasikan oleh model “DetailHistoryTweet”. Potongan program proses k-

nn ditunjukkan pada listing 5.15.

Listing 5.15 Potongan program proses k-nn


$newTweet = new Tweet([
"name"=>Auth::user()->name,
"screen_name"=>Session::get('screenName'),
"tweet"=>$request->get('tweet'),
"tweet_stemmed"=>$toCheck,
"isActive"=>0,
]);
$newTweet->save();
//Insert History Baru
$newHistory = new HistoryTweet([
"nilaiK"=>env('Nilai_K'),
"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 0

Listing 5.15 Potongan program proses k-nn (lanjutan)


$newHistory->save();

$i=env('Nilai_K');
$arrSentimentResult = [];
foreach($arrEucl as $key=>$item)
{
if($i>0)
$i--;
else
break;

//Insert Detail History


$newDetail = new DetailHistoryTweet([
"distance"=>$arrEucl[$key]['jarak'],
"tweet_id"=>$getTweet->id,
"historytweet_id"=>$newHistory->id,
]);
$newDetail->save();

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

tidak. Mengirimkan tweet ke Twitter dengan menggunakan metode POST

“statuses/update”, dengan parameter “status” berisi tweet yang akan dikirimkan.

Potongan program untuk mengirimkan tweet ke twitter seperti pada listing 5.16.

Listing 5.16 Potongan program mengirimkan tweet


public function postTweet(String $query)
{
$status = Session::get('connect')->post(
"statuses/update",["status" => $query]);
if($status)
echo "1";
else
echo "0"; }

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

5.2.5 Implementasi Proses Crawling

Proses crawling digunakan untuk mengambil dataset uji coba berdasarkan kata

kunci tertentu dari twitter. Pada sistem ini disediakan 2 jenis crawling, berdasarkan

username atau berdasarkan keyword.

Pengguna akan menekan tombol “Start Crawling” yang akan menampilkan

modal crawling seperti pada gambar 4.15. Untuk proses crawling berdasarkan

username dibutuhkan beberapa parameter penunjang dan fungsi dari setiap

parameter yang digunakan dapat dilihat pada tabel 5.1.

Kemudian akan dilakukan request dengan mengirimkan parameter pada tabel

5.1 dengan memanggil fungsi GET “'statuses/user_timeline” untuk mendapatkan

data tweet. Program crawling dengan username ditunjukkan pada listing 5.17.

Sedangkan untuk crawling berdasarkan keyword, mengirimkan parameter pada

tabel 5.2 dengan memanggil fungsi GET “search/tweets” yang ditunjukkan pada

listing 5.18.

Tabel 5.1 Parameter Crawling Username


Parameter Fungsi / Keterangan
screen_name Akun yang akan diambil tweetnya
count Jumlah data yang diambil (Max: 200 dalam 1 literasi)
exclude_replies Melakukan filter terhadap balasan dari tweet yang didapatkan.
include_rts Melakukan filter terhadap tweet yang diretweet
tweet_mode Karakteristik tweet yang diambil (extended)
max_id ID Tweet terakhir dari hasil proses crawling. Umumnya
(Optional) digunakan untuk mengambil tweet lebih dari 200

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

Tabel 5.2 Parameter Crawling keyword

Parameter Fungsi / Keterangan


q Input keyword yang akan dicari
result_type Jenis hasil yang didapat (Popular, Recent, Mixed)
count Jumlah data yang diambil (Max: 100 dalam 1 literasi)
tweet_mode Karakteristik tweet yang diambil (extended = Tweet utuh)
lang Bahasa dari tweet yang akan diambil
max_id ID Tweet terakhir dari proses crawling. Umumnya digunakan
(Optional) untuk mengambil tweet lebih dari 100

Listing 5.17 Potongan program crawling dengan username

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);

Listing 5.18 Potongan program crawling dengan keyword


if($max_id==NULL)
{
$query = array(
"q" => $queryInput." -filter:nativeretweets",
"result_type" => 'popular',
"count"=>$jumlahData,
"tweet_mode" => "extended",
"lang" => "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 3

Listing 5.18 Potongan program crawling dengan keyword (lanjutan)


);
}
else
{
$query = array(
"q" => $queryInput." -filter:nativeretweets",
"result_type" => 'popular',
"count"=>$jumlahData,
"tweet_mode" => "extended",
"lang" => "id",
"max_id" =>$max_id, ); }
$results = Session::get('connect')->get('search/tweets',
$query);

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

menunjukkan penyimpanan data setelah proses crawling.

Listing 5.19 Program menyimpan data hasil crawling

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

Listing 5.19 Program menyimpan data training hasil crawling (lanjutan)


$log->save();
}
else
{
$log = new LogTweet([
'detail_perubahan'=>'Menambahkan Tweet '.$newTweet->id.'
dengan status "Tidak Melanggar"',
'tweet_id'=>$newTweet->id,
]);
$log->save();
}
}
return response()->json([
'hasil'=>'ok',
]);

5.2.6 Implementasi Ubah Nilai K

Implementasi mengubah nilai k bertujuan untuk mendapatkan nilai k yang dapat

memberikan hasil yang terbaik dalam proses pengkategorian data uji. Proses

mengubah nilai k dijalankan dengan melakukan pemanggilan fungsi seperti pada

listing 5.20.

Nilai k yang dirubah akan disimpan kedalam sistem dengan fungsi php

“file_put_contents”, sehingga setiap pengguna akan menggunakan nilai k yang

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

dijalankan oleh admin.

Listing 5.20 Program fungsi ubah nilai K

$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

Listing 5.20 Program fungsi ubah nilai K (lanjutan)


file_put_contents($path, str_replace(
'NILAI_K='.env('NILAI_K'), 'NILAI_K='.$us-
>nilaiK,file_get_contents($path)));
return redirect()->back()->with('status', 'Berhasil Ubah
Nilai K');
}
return redirect()->back()->with('alert', 'Gagal Ubah Nilai K');

5.2.7 Implementasi Ubah Status Tweet

Proses ini dilakukan untuk mengubah status suatu tweet menjadi “Melanggar”

atau “Tidak Melanggar”. Admin memilih dan mengubah status tweet dengan

menekan tombol “Ubah Status”.

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.

Listing 5.21 Program fungsi mengubah status tweet


if($request->get('tipe')=='Ubah')
{
$tweet = Tweet::find($id);
$tweet->isMelanggar = !$tweet->isMelanggar;
$tweet->save();

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

Listing 5.21 Program fungsi mengubah status tweet (lanjutan)

$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

status tweet, dan proses perhitungan k-fold cross validation.

6.1.1 Verifikasi Posting Tweet Baru

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

menekan tombol “Post Tweet”, maka sistem akan melakukan validasi.

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.

Gambar 6.1 Halaman utama posting tweet baru

Gambar 6.2 Pesan validasi kolom input tidak diisi

Selanjutnya, jika pengguna membagikan tweet dan tweet tersebut

dikategorikan “Tidak Melanggar”, maka akan muncul konfirmasi untuk

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

membagikan tweet karena dikategorikan sebagai “Melanggar” maka akan muncul

pesan seperti gambar 6.6

Gambar 6.3 Pesan validasi kolom input berisi lebih dari 140 karakter

Gambar 6.4 Tampilan konfirmasi posting tweet “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
BAB 6 – UJI C OBA DA N EVAL UAS I 6 -4

Gambar 6.5 Pesan berhasil posting tweet

Gambar 6.6 Tampilan pesan konten “Melanggar”

6.1.2 Verifikasi Proses Penentuan Kategori Tweet dengan

Metode k-NN dengan pendekatan Euclidean Distance

Verifikasi ini dilakukan untuk memastikan bahwa perhitungan euclidean

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

telah sesuai dengan perhitungan sebenarnya. Untuk memastikan bahwa perhitungan

telah benar, maka dilakukan ujicoba dengan input tweet tertentu.

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

“Melanggar” sehingga data baru akan dikelompokkan menjadi kelas “Melanggar”.

Tabel 6.1 Contoh data uji


Data uji “Judi Bola Sabung Ayam”
Nilai parameter k 5

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

Untuk memastikan perhitungan atau nilai similaritas/jarak yang diberikan oleh

sistem adalah benar maka dilakukan perhitungan secara manual. Sebagai contoh

akan dilakukan perhitungan similaritas antara data tweet uji dengan data no.3

sebagai salah satu pembanding yang diberikan 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 -6

Perhitungan diawali dengan melakukan preprocessing dan memecah data

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

dilakukan pembobotan masing-masing data kemudian dilakukan perhitungan

selisih bobot tiap token antara kedua data tersebut yang ditunjukkan pada tabel 6.5.

Tabel 6.3 Proses tokenisasi unigram data testing


Data testing Preprocessing Hasil token
Judi Bola Sabung Ayam judi bola sabung ayam [judi, bola, sabung,
ayam]

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

Tabel 6.5 Hasil perhitungan similaritas euclidean distance


Token Wp Wtest Wp-Wtest (Wp-
Wtest)2
judi 0.0000000 1.3990381 -1.3990381 1.9573076
bola 0.0000000 1.6199716 -1.6199716 2.6243079
sabung 0.0000000 2.1352972 -2.1352972 4.5594941
ayam 0.0000000 1.9074991 -1.9074991 3.6385528
ba***at 1.2229468 0.0000000 1.2229468 1.4955990
Total 14.2752614

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

ditunjukkan pada tabel 6.5 dilakukan perhitungan similaritas euclidean distance

dengan persamaan (2-4) sebagai berikut:

d(dp,dtest) = √∑𝑛𝑘=1(𝑢𝑘p − 𝑣𝑘test )2 = √14.2752614 = 3.7782617

Berdasarkan perhitungan jarak yang dilakukan, terdapat perbedaan hasil 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.

6.1.3 Verifikasi Proses Crawling

Verifikasi ini dilakukan untuk memastikan bahwa proses crawling dapat

berjalan dengan baik dan benar serta hanya dapat dilakukan oleh user admin. Untuk

melakukan proses crawling diawali dengan masuk pada halaman “Data Training”

dan memilih sub-menu “Aksi.Halaman awal untuk sub-menu “Aksi” ditunjukkan

pada gambar 6.7. Jika pengguna yang melakukan akses bukan user admin maka

akan muncul pesan peringatan seperti pada gambar 6.8.

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

Gambar 6.7 Halaman utama sub-menu Aksi

Gambar 6.8 Tampilan peringatan hak akses

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

Gambar 6.9 Tampilan pilihan crawling dengan username

Gambar 6.10 Tampilan pilihan crawling dengan keyword

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

Sebagai contoh untuk proses crawling digunakan proses crawling dengan

keyword. Untuk memperoleh data yang diinginkan, user akan mengisikan kolom

“Query”, jumlah data yang diinginkan dan jumlah perulangan terlebih dahulu

seperti pada gambar 6.11.

Gambar 6.11 Mengisi kolom inputan crawling dengan keyword

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

memulai proses crawling.

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

diinginkan pada layar seperti pada gambar 6.13.

Gambar 6.12 Contoh pesan error validasi pada proses crawling

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

dilakukan secara benar dan tepat seperti pada gambar 6.15.

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

Gambar 6.13 Tampilan hasil proses crawling

Gambar 6.14 Contoh proses memilih tweet

Jika terdapat tweet yang dipilih, tetapi belum ditentukan kategori tweet

tersebut, sistem akan memberikan peringatan kepada user bahwa belum dilabeli

seluruhnya. Contoh pesan peringatan ditunjukkan pada gambar 6.16. Sedangkan

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

pesan berhasil menyimpan ditunjukkan pada gambar 6.17.

Gambar 6.15 Tampilan konfirmasi simpan data uji coba

Gambar 6.16 Tampilan peringatan gagal menyimpan data uji coba

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

Gambar 6.17 Tampilan pesan berhasil melakukan penyimpanan data uji


coba

6.1.4 Verifikasi Proses Ubah Nilai K

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

angka untuk merubah nilai K seperti pada gambar 6.18.

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

menampilkan pesan berhasil seperti gambar 6.19. Sedangkan, jika terjadi

kesalahan, maka sistem akan mengarahkan ke halaman utama menu “Data

Training” beserta pesan error yang diberikan. Contoh pesan peringatan error

ditunjukkan pada gambar 6.20.

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

Gambar 6.18 Tampilan merubah nilai K

Gambar 6.19 Tampilan pesan berhasil mengubah nilai K

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

Gambar 6.20 Tampilan pesan peringatan kesalahan dalam ubah nilai K

6.1.5 Verifikasi Proses Ubah Status Tweet

Halaman ini hanya dapat diakses oleh user admin. Jika diakses oleh pengguna

lain, maka akan muncul pesan peringatan seperti gambar 6.8. Admin dapat

melakukan perubahan status suatu tweet dari “Melanggar” menjadi “Tidak

Melanggar” ataupun sebaliknya dapat mengunjungi halaman utama data uji coba

sub-menu “Data Training” seperti pada gambar 6.21. Pada halaman tersebut akan

ditampilkan tweet data uji coba dari database.

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

pada gambar 6.22.

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

Gambar 6.21 Tampilan halaman utama data training sub-menu “Data


Training”

Gambar 6.22 Tampilan pesan berhasil ubah 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 6 – UJI C OBA DA N EVAL UAS I 6 -1 8

6.1.6 Verifikasi Proses Validasi dengan Metode k-Fold Cross

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

pada k-nn pada bagian 1(ID 1 sampai ID 40).

Perhitungan akurasi dilakukan dengan membandingkan kategori pelabelan

secara manual dengan kategori pelabelan yang diberikan oleh sistem. Pada tabel 6.6

menunjukkan kategori pelabelan data secara manual dari database dan hasil yang

diberikan oleh sistem.

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

*Keterangan: 0=Tidak Melanggar, 1=Melanggar

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

dilakukan dengan persamaan (2-1) sebagai berikut:

jumlah data uji yang benar hasil klasifikasi


Akurasi = 𝑥 100%
jumlah seluruh data uji

38
= 𝑥 100%
40

= 95 %

Sedangkan untuk melakukan perhitungan rata-rata akurasi dari sebuah nilai k-

fold dan nilai k dilakukan dengan melakukan penjumlahan terhadap rata-rata

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

yang memiliki 99 bagian, hasil perhitungan ditunjukkan pada tabel 6.7.

Tabel 6.7 Sampel perhitungan k-fold 99 dan k=3


Bagian Akurasi (%)
1 95
2 92.5
3 45
4 57.5
5 52.5
6 55
7 42.5
8 65
9 62.5
10 75
…………. ………….
…………. ………….
…………. ………….
…………. ………….
…………. ………….
…………. ………….
99 97.5
Total Akurasi 6075

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

Untuk memastikan agar sistem yang dibuat menghasilkan keluaran yang

diharapkan, maka pada tahapan ini dilakukan 2 tahapan validasi yaitu, validasi data

dan validasi sistem.

6.2.1. 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

Melanggar”. Data yang dikumpulkan kemudian dilakukan proses indexing,

didapatkan sekitar 11.658 token.

Untuk mendapatkan hasil pelabelan yang baik yang berdasarkan UU ITE,

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”.

Tabel 6.8 menunjukkan contoh cara pelabelan data berdasarkan hasil

wawancara dan sampling serta ciri yang ditunjukkan pada tabel 3.1. Informasi yang

didapatkan akan digunakan sebagai pertimbangan dalam melakukan pelabelan data

uji coba lanjutan.

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.8 Contoh cara pelabelan data berdasarkan wawancara

Jenis Tweet Keterangan


Penghinaan @cha*****1810 @jaz****o1 @q***r Kata anjing sebagai
@Mb******per @noe*****man Kan si kata kasar karena
@jaz****o1 temannya anjing,jadi merujuk pada suatu
bicaranya selalu menyebut nama pihak
kerabatnya 😂😂 (@jaz****o1)
https://t.*****yBdZRmIH
Ujaran nasrani memang sampah, orang tadinya Kata sampah
Kebencian ngomongin apa eh nyambung ke botol merujuk pada kaum
dasar yesus ke***at :D RT “nasrani”. Kata
@Er*******nto1: @eri*****anto hey ke***at merujuk
mu..... kepada “yesus”
Kesusilaan Malem minggu penuh gejolak nafsu sex. Penggunaan kata-
Yg cwok udah pengin ji***k m***k, isep kata dalam kalimat
p***ng t***t, trs genjot n***ek ng***ot. yang merujuk pada
Yg cwek udh pengim ny**ng k***ol, jilat konten yang dapat
badan... uhhhh fuck. mengandung unsur
kesusilaan.
Perjudian @Su*******ang Buat yang hobi bermain Adanya tawaran-
Poker Online Kini Telah hadir tawaran yang dapat
GA******ER Situs Judi Online Terbaik menuntungkan agar
dan Terpecaya di Indonesia ?? BONUS ikut berpartisipasi.
DEPOSIT 10% ?? BONUS TURN OVER
0,5% ?? BONUS REFFERAL 15% ??
HADIAH JACKPOT PULUHAN
JUTAAN. ?? TAMBAHAN BONUS
REFFERAL 30%
Ancaman @M******95 @ra*****97 ngeles mulu Adanya pihak (lu)
Kekerasan lu. Berani jajah lagi gua tusuk lu ntar yang akan
menerima tindakan
fisik
Tidak level pedas ayam geprek adalah Kata anjing tidak
Melanggar berdasarkan berapa banyak lu teriak digunakan sebagai
"anjing!" setelah ngerasain pedesnya. lv. kata kasar untuk
1 lv. 2 lv. 3 lv. 4 lv. 5 kalo udah kelewat merujuk pada suatu
pedes berarti level anjing. pihak (level pedas
ayam geprek)

Tabel 6.9 menunjukkan 60 data (35 data “Melanggar” dan 25 data “Tidak

Melanggar”) yang digunakan untuk proses sampling. Data sampling tersebut telah

melalui proses validasi pelabelan yang dilakukan oleh pakar.

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

Tabel 6.9 Contoh Sampel Data uji coba


Tweet Kategori
@Su*******ang Buat yang hobi bermain Poker Online Melanggar
Kini Telah hadir GA******ER Situs Judi Online Terbaik
dan Terpecaya di Indonesia ?? BONUS DEPOSIT 10% ??
BONUS TURN OVER 0,5% ?? BONUS REFFERAL 15%
?? HADIAH JACKPOT PULUHAN JUTAAN. ??
TAMBAHAN BONUS REFFERAL 30%
Agen Poker Online Uang Asli Indonesia | War*****ker99 Melanggar
WAR*****KER99 - Perkembangan teknologi yang
semakin maju menjadikan banyak hal dimudahkan yang
salah satunya seperti dalam bermain judi. Bahkan bisa
dikatakan https://t.*****9ioJkryS https://t.*****MeaTY7r
Selamat Datang Di Raja Bandar poker / Raja Domino / Agen Melanggar
Judi Online Terbesar Dan Terpercaya Hanya ada di
www*raja******qq*com Dengan Minimal deposit 20.000
Dan Minimal WithDraw 20.000 Saja Tunggu apa lagi? Ayo
segera daftar kan Diri Anda Untuk Menjadi Raja DI
Ra*****darQ https://t.*****VsEh8d6
PREDIKSI TOGEL SINGAPURA 13-10-2018 Bandar Judi Melanggar
Online Terpercaya Dengan Berbagai Bonus Menarik dan
Menguntungkan ^.^ PENDAFTARAN 100% GRATIS !!!
silahkan di klik link https://t.co/2O2C8V9owg
https://t.*****h1LmrV6w
PREDIKSI TOGEL HONGKONG 13-10-2018 Bandar Judi Melanggar
Online Terpercaya Dengan Berbagai Bonus Menarik dan
Menguntungkan ^.^ PENDAFTARAN 100% GRATIS !!!
silahkan di klik link https://t.co/2O2C8V9owg
https://t.*****0PDQurYL
@cha*****1810 @jaz****o1 @q***r @Mb******per Melanggar
@noe*****man Kan si @jaz****o1 temannya anjing,jadi
bicaranya selalu menyebut nama kerabatnya 😂😂
https://t.*****yBdZRmIH
@the****loss @_irfa******man Hey ba***at kalo mau Melanggar
diskusi2 aja jangan pake bawa orangtua, kita ketemuan aja
kalo lagu lo udah mulai ketengilan, mending lo yang mati
apa gw yang mati
@and******rsib78 @in*****orter @bo******uals Melanggar
K***ol Lo. Orang udh meninggal di gituin, semoga berkah
hidup lu ba***at!. Semoga lu rasain keluarga lu udh
meninggal di bikin kaya gitu. A****g ga da otak lo

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

Tabel 6.9 Contoh Sampel Data uji coba (lanjutan)

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

Tabel 6.9 Contoh Sampel Data uji coba (lanjutan)

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.

Semoga mereka sadar. https://t.co/qaYt6SvqSW


@Frangky_Matoa @eLfathir_ Musuh Islam Itu Adalah Melanggar
Bajingan &amp; Penjahat Berbaju Tauhid....!!! Bukan
Hindu, Buda, Atau Nasrani. Begitulah Kutipan Dari
Ceramah Buya Yahya....!!!!
@RadPlague @SpionaseNKRI Ibu Guru : Nak, kalau sudah Melanggar
besar mau jadi apa?
Ucok : Jadi Presiden bu guru.
Ibu Guru : ah.. kamu ngimpi... sudah batak, kristen pula
mana mungkin kamu jadi presiden.
Ucok : aduh... nasib kafir Minoritas di indonistan

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

Tabel 6.9 Contoh Sampel Data uji coba (lanjutan)

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 &amp; keranda.. dan berbuat baik sebelum di
cabut nyawa.. betul x @chedetofficial ?
@fadlizon FADLI ANJING MEMANG BETUL PK Melanggar
JOKOWI NGGK BIASA NGOPI NGGAK NGOKOK

YG KELIHATAN ITU PAS ADA ACARA YG


BERHUBUNGAN DENGAN KOPI LO MEMANG
ANJING FADLI JON WAJIB DI BUNUH
Macam macam lgi sma saya gua BACOK! RT Melanggar
@rahmatcikot: kagak bos. . .!!RT @nanangciko: What the
hell?? RT @rahmatcikot: http://mtw.tl/l05rqv
@MAS_MPI95 @rap_jjk97 ngeles mulu lu. Berani jajah Melanggar
lagi gua tusuk lu ntar
@pchnywl @bfeauty @svtegyu @swulqi Melanggar
@parkchanyeolTL @chainsyeol @TinderWORP
@KimMinRoa @Aiskrim_stoberi @rilkthbts WOY GILA
LO MAU GUE TENDANG #LeonRoaOfficial
@ApriliaLin @rayya_liyandra Ya kita marah, krn ada yg Tidak Melanggar
mau jadi calon pemimpin tapi statmentnya tdk bikin adem.
Calon spt ini cocoknya jadi pengawal tukang judi atau
tukang catut tiket di GBK.
“Enak ya kalo udah nikah. Apa-apa jadi serba halal.” Tidak Melanggar
Iya banget. Kalo udah nikah tuh makan babi halal. Minum
miras halal. Judi halal. Pokoknya yang haram jadi serba
halal deh kalo udah nikah.
Ya kali.

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

Tabel 6.9 Contoh Sampel Data uji coba (lanjutan)

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

Tabel 6.9 Contoh Sampel Data uji coba (lanjutan)

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

6.2.2. Validasi Sistem

Validasi sistem dibagi menjadi 3 tahapan, yaitu tahap untuk melakukan

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

metode k-fold cross validation.

6.2.2.1 Validasi Waktu Proses

Validasi waktu proses dilakukan untuk mengetahui waktu yang dibutuhkan

sistem untuk melakukan deteksi dengan metode klasifikasi k-nn dengan euclidean

distance. Spesifikasi perangkat yang digunakan dalam pengujian ini adalah sebagai

berikut:

• Perangkat Keras (Hardware)

Processor : Intel Core i7-4510U @ 2.00GHz

Sistem Operasi : Windows 10 Education (64-bit)

RAM : 4096 MB (~ 4GB)

Resolusi Layar : 1366 x 768

• Perangkat Lunak (Software)

Web Server : Apache/2.4.26, PHP version 7.1.7 (XAMPP v3.22)

Browser : Mozilla Firefox v65.0b11 (64-bit)

Untuk mendapatkan waktu proses yang dibutuhkan sistem, dilakukan pengujian

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

bakar untuk membunuh dinginnya hujan malam”. Pengujian dilakukan dengan

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

dibutuhkan oleh sistem untuk melakukan klasifikasi terhadap sebuah tweet.

Tabel 6.10 Waktu proses klasifikasi data tweet


Nilai K Waktu Proses (ms)
1 935
3 1107
5 1156
7 1187
9 1435
11 1518
13 1562
15 1506
17 1452
19 1865
21 1893
23 1895
25 1987

6.2.2.2 Validasi k-fold Cross Validation Data Sampling

Validasi ini dilakukan untuk melakukan uji coba dengan metode klasifikasi k-

nn dengan euclidean distance terhadap tingkat akurasi dari 60 data yang digunakan

sebagai sampling. Pengujian yang dilakukan menggunakan metode k-fold cross

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

akan dikategorikan berdasarkan 59 data training (leave-one-out cross validation).

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-

masing adalah term frequency-inverse document frequency (tf-idf) dan term

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

Selain pengujian dengan k-nn euclidean distance, juga dilakukan pengujian

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

frequency-inverse document frequency (tf-idf) dan term frequency (tf).

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

Berdasarkan hasil pengujian data sampling menggunakan metode k-nn dengan

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.

6.2.2.3 Validasi k-fold Cross Validation Data Uji Coba

Untuk mengetahui tingkat keberhasilan sistem dalam menentukan kelompok

suatu data uji coba kedalam “Melanggar” atau “Tidak Melanggar”, dilakukan

perhitungan nilai akurasi klasifikasi metode k-nn dengan pendekatan euclidean

distance. Validasi sistem dilakukan dengan melakukan beberapa kali ujicoba

dengan metode validasi k-fold cross 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 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)

21 52.35 51.79 51.69 51.39 50.88


23 52.17 51.67 51.57 51.19 50.86
25 52.05 51.46 51.39 51.06 50.86
Rata-Rata 55.62 54.55 54.50 53.87 51.94

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

berkisar antara 51.94%-55.62%.

Berdasarkan ujicoba tersebut didapatkan rata-rata akurasi untuk setiap nilai k-

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

tertinggi diperoleh ketika nilai k-nn=1 sebesar 63.70%.

Tabel 6.15 Tabel rata-rata akurasi hasil ujicoba k-nn euclidean distance
pembobotan tf-idf berdasarkan nilai k dalam persen (%)

Nilai K Rata-Rata Akurasi


1 63.70
3 60.03
5 56.57
7 54.46
9 53.25
11 52.73
13 52.29
15 52.06
17 51.87
19 51.80
21 51.62
23 51.49
25 51.36

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

digunakan sebagai pembobotan dalam perhitungan similaritas euclidean distance

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

diperoleh untuk pengujian setiap nilai k-fold berkisar antara 53.46%-59.29%.

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

diperoleh ketika nilai k-nn=1 sebesar 64.86%.

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-

nn dengan pendekatan euclidean distance mengalami penurunan akurasi ketika

terjadi peningkatan pada nilai k. Pada penelitian ini, dilakukan juga untuk menguji

metode lainnya untuk mengetahui apakah memberikan hasil yang serupa.

Pembandingan yang dilakukan adalah menguji rata-rata nilai akurasi yang

dihasilkan dengan menggunakan metode lainnya yang digunakan sebagai

pendekatan yaitu, “Cosine Similarity”. Metode cosine similarity merupakan metode

yang digunakan pada search engine dan jika nilai similaritas semakin besar, maka

dianggap semakin memiliki kedekatan. Perhitungan dengan metode Cosine

Similarity ditunjukkan oleh persamaan (6-1). Pada tabel 6.18 menunjukkan hasil

rata-rata akurasi yang diberikan jika pembobotan similaritas cosine similarity yang

digunakan adalah 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 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-

fold didapatkan rata-rata akurasi antara 69.66%-78.59% dan untuk akurasi

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

metode validasi k-fold cross validation.

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

Hasil pengujian akurasi metode k-nn cosine similarity dengan pembobotan

yang digunakan adalah tf ditunjukkan pada tabel 6.20 Hasil pengujian setiap nilai

k-fold didapatkan rata-rata akurasi antara 67.42%-77.46% dan untuk akurasi

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

analisa terkait penyebab penurunan akurasi metode k-nn dengan pendekatan

euclidean distance yang dikarenakan beberapa hal:

1) Proses pembandingan dengan pendekatan euclidean distance kurang dapat

mengukur dokumen yang relevan untuk digunakan sebagai pembanding.

Pembanding yang dimaksud relevan adalah tweet pembanding yang

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

pada data uji, sebagai contoh data pembanding no 3 “bangsat”.

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

dengan melakukan perhitungan similaritas euclidean distance.

Tabel 6.22 Contoh sampel data uji coba yang serupa


ID Tweet Tweet hasil Preprocessing Kategori
3368 bonus taruh judi bola qqfortuna Melanggar
3369 taruh judi bola keranjang besar Melanggar
3372 jadwal judi sabung online november Melanggar
3380 jadwal judi sabung ayam november Melanggar

Setelah didapatkan data yang serupa, dilakukan tokenisasi unigram dan

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

euclidean distance yang ditunjukkan pada tabel 6.25.

Tabel 6.23 Pembobotan tf-idf token sampel data uji


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 -4 1

Tabel 6.24 Pembobotan tf-idf token sampel data uji coba


Data Training ID = 3368
Token tf dft idf tf-idf (Wtest)
bonus 1 53 1.8734193 1.8734193
taruh 1 40 1.9956352 1.9956352
judi 1 158 1.3990381 1.3990381
bola 1 95 1.6199716 1.6199716
qqfortuna 1 1 3.5976952 3.5976952
Data Training ID = 3369
Token tf dft idf tf-idf (Wtest)
taruh 1 40 1.9956352 1.9956352
judi 1 158 1.3990381 1.3990381
bola 1 95 1.6199716 1.6199716
keranjang 1 1 3.5976952 3.5976952
besar 1 200 1.2966652 1.2966652

Data Training ID = 3372


Token tf dft idf tf-idf (Wtest)
jadwal 1 12 2.5185139 2.5185139
judi 1 158 1.3990381 1.3990381
sabung 1 29 2.1352972 2.1352972
online 1 118 1.5258132 1.5258132
november 1 24 2.2174839 2.2174839

Data Training = 3380


Token tf dft idf tf-idf (Wtest)
jadwal 1 12 2.5185139 2.5185139
judi 1 158 1.3990381 1.3990381
sabung 1 29 2.1352972 2.1352972
ayam 1 118 1.9074991 1.9074991
november 1 24 2.2174839 2.2174839

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

Data Uji x Dokumen ID=3372


Token Wp Wtest Wp-Wtest (Wp-Wtest)2
judi 1.3990381 1.3990381 0.0000000 0.0000000
bola 1.6199716 0.0000000 1.6199716 2.6243080
sabung 2.1352972 2.1352972 0.0000000 0.0000000
ayam 1.9074991 0.0000000 1.9074991 3.6385528
jadwal 0.0000000 2.5185139 -2.5185139 6.3429123
online 0.0000000 1.5258132 -1.5258132 2.3281060
november 0.0000000 2.2174839 -2.2174839 4.9172348
Total 19.8511139
Similaritas euclidean distance 4.455458888

Data Uji x Dokumen ID=3380


Token Wp Wtest Wp-Wtest (Wp-Wtest)2
judi 1.3990381 1.3990381 0.0000000 0.0000000
bola 1.6199716 0.0000000 1.6199716 2.6243080
sabung 2.1352972 2.1352972 0.0000000 0.0000000
ayam 1.9074991 1.9074991 0.0000000 0.0000000
jadwal 0.0000000 2.5185139 -2.5185139 6.3429123
november 0.0000000 2.2174839 -2.2174839 4.9172348
Total 13.8844551
Similaritas euclidean distance 3.7261851

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

bahwa metode pendekatan euclidean distance memperhitungkan seluruh nilai fitur

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

tetangga terdekat. Sehingga proses pembandingan metode k-nn dengan pendekatan

euclidean distance kurang dapat mengukur relevansi dokumen untuk digunakan

sebagai pembanding.

Sebagai contoh akibat dari penentuan dokumen pembanding yang kurang

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,

karena dibandingkan dengan data yang kurang relevan.

Tabel 6.26 Data uji coba


ID Data Uji hasil stemming Kategori
86 barbara sumpah cita kecil punya nama barbaraaaaaa Tidak Melanggar
kata bokap kyk nama anjing tetangga dulu

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

Tabel 6.27 Hasil similaritas pembandingan.


ID Data Pembanding hasil Kategori Hasil Similaritas Distance
stemming
530 bangsat Melanggar 7.5857717691239
531 bangsat Melanggar 7.5857717691239
533 bangsat Melanggar 7.5857717691239

2) Data Tweet masih mengandung slang word.

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

dalam bentuk singkatan, ataupun karena kesalahan penulisan. Sebagai diambil

beberapa sampel slang word yang ditemukan dalam data uji coba ditunjukkan pada

tabel 6.28.

Tabel 6.28 Contoh slang word data uji coba


Makna sebenarnya / Kata Dasar Slang word
Anjing Anjinggggg, anjinggg, ajg, anjengg,
anjenk, anjeng, anjeeeng, anjenggg
Payudara Nenen, toket, tokt
Bangsat Bgst, bangst, bangsst, bangsatttt
Bunuh Bunu, pmbunuh

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

sebagai 1 kata. Sebagai contoh ditunjukkan pada tabel 6.29.

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

Tabel 6.29 Slang word akibat hastag preprocessing

Kata slang word Komponen kata slang word


judibolaresmiterpercaya judi, bola, resmi, terpercaya
situsjudibolaresmidanterpercaya situs, judi, bola, resmi, dan,
terpercaya
tolakideogikhafahindonesiadamaitanpafpi tolak, ideologi, khafah, Indonesia,
damai, tanpa, fpi
katakataselamathariayah kata, selamat, hari, ayah

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

Sedangkan pada pendekatan euclidean distance, bahwa semakin kecil jarak

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,

sehingga adanya slangword dapat mempengaruhi nilai similaritas euclidean

distance.

Sehingga berdasarkan hasil ujicoba dan evaluasi yang dilakukan pada penelitian

ini, bahwa akurasi kebenaran dalam proses pengkategorian tweet kedalam

“Melanggar” atau “Tidak Melanggar” yang diberikan metode k-nn dengan

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

dapat mengukur relevansi dokumen yang digunakan sebagai pembanding, serta

masih ditemukan slang word dalam data 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
KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dan saran untuk pengembangan sistem di

kemudian hari dari hasil penelitian tugas akhir pembuatan “Sistem Pendeteksi

Konten Negatif di Twitter Menggunakan Metode K-Nearest Neighbor.

7.1. Kesimpulan

Dari hasil penelitian yang telah dilakukan, dapat diambil beberapa kesimpulan

sebagai berikut:

• Dengan metode k-nearest neighbor (k-nn) euclidean distance, sistem dapat

melakukan deteksi konten negatif dengan akurasi tertinggi sebesar 66.64%

ketika nilai k-fold=198 dan nilai k-nn=1 dengan fitur pembobotan similaritas

tf-idf. Sedangkan untuk fitur pembobotan similaritas tf didapatkan akurasi

tertinggi sebesar 68.03% ketika nilai k-fold=198 dan nilai k-nn=1.

• Pada penelitian ini juga dilakukan pengujian dengan metode k-nn cosine

similarity dan didapatkan akurasi tertinggi sebesar 80.61% ketika nilai k-

fold=198 dan nilai k-nn=25 dengan fitur pembobotan similaritas tf-idf.

Sedangkan untuk fitur tf didapatkan akurasi tertinggi sebesar 78.61% ketika

nilai k-fold=198 dan nilai k-nn=25.

• Nilai akurasi untuk metode k-nn dengan euclidean distance dan cosine

similarity didapatkan setelah dilakukan proses validasi dengan metode k-fold

cross validation.
BAB 7 – KES I MP U LA N DA N S AR AN 7 -2

• Hasil yang diberikan dengan metode k-nn dengan euclidean distance

mengalami penurunan disebabkan karena metode ini kurang dapat mengukur

relevansi dokumen pembanding, sehingga menyebabkan proses pembandingan

kurang berjalan dengan baik, serta masih ditemukan slangword pada data tweet

yang mempengaruhi nilai similaritas euclidean distance.

7.2. Saran

Untuk penelitian di kemudian hari dapat dilakukan beberapa pengembangan

terhadap “Sistem Pendeteksi Konten Negatif di Twitter Menggunakan Metode k-

Nearest Neighbor”, seperti: penggunaan pendekatan lebih dapat mengukur

relevansi dokumen yang digunakan sebagai pembanding, tokenisasi bigram-trigram

dan normalisasi slangword. Serta saran dari pakar adalah sistem seperti ini dapat

diajukan ke ISP (Internet Service Provider), sehingga ketika user akan membagikan

informasi, informasi akan dikirimkan ISP yang kemudian dilakukan filtering

sebelum konten dapat dibagikan ke media sosial. Diharapkan dengan

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

Daftar Pertanyaan Wawancara

Wawancara dilakukan untuk mengetahui kondisi saat ini terkait dengan


penggunaan media sosial khususnya twitter di Indonesia berdasarkan hukum yang
mengatur penggunaan media sosial, yaitu UU ITE. Wawancara dilakukan dengan
seorang pakar hukum untuk memperoleh informasi yang dapat dipercaya yaitu,
Anton Hendrik Samudra, S.H., M.H. yang merupakan salah satu dosen Fakultas
Hukum di Universitas Surabaya yang ahli di bidang hukum pidana UU ITE.
Beberapa pertanyaan yang diajukan adalah sebagai berikut:

1. Bagaimana perilaku masyarakat Indonesia dalam menggunakan media sosial


Twitter?
- Frekuensi penggunaan media sosial Twitter di Indonesia meningkat ketika
masa politik sedang berlangsung ataupun terdapat berita atau informasi
yang sedang populer di Indonesia.
- Perilaku penggunaan media sosial Twitter dapat berdampak positif dan
negatif. Dampak positifnya adalah, pengguna dapat secara bebas berbagi
atau memperoleh informasi yang diinginkan secara cepat.
- Sedangkan untuk sisi negatif, bahwa penggunaan media sosial dapat
disalahgunakan untuk kejahatan sosial, salah satunya adalah pengancaman.

2. Apakah benar adanya media sosial di masyarakat Indonesia, semakin


disalahgunakan untuk menyebarkan konten negatif. Sebagai contoh:
penghinaan, ujaran kebencian, kesusilaan, ancaman kekerasan, perjudian?
- Untuk membuktikan kebenaran yang konkrit harus melakukan riset lebih
mendalam terkait hal tersebut.
LA MPI RA N A – DAF TA R PER TA N YAA N WA WA N CAR A B -2

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.

4. Bagaimana perkembangan penyebaran konten negatif pada media sosial twitter


dari waktu ke waktu?
- Jumlah penyebaran konten negatif sebanding dengan meningkatnya jumlah
pengguna media sosial.

5. Bagaimana penanganan perkembangan penyebaran konten negatif di masa


depan?
- Di masa depan dapat ditekan untuk menimbulkan efek takut akan hukum
yang ada. Saat ini kapolri mengajukan telah mengajukan hal tersebut dan
sudah terdapat UU ITE. Jika proses filtering dapat diterapkan pada media
sosial twitter, dapat mengurangi penyebaran konten negatif.

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

- Kesusilaan: Adanya unsur untuk memuaskan nafsu kelamin, seperti tawaran


prostitusi, alat pembesar, video porno dll.
- Perjudian: Adanya unsur tawaran perjudian seperti judi bola, judi sabung
ayam, yang dapat menyebabkan keuntungan.
- Ancaman Kekerasan: Adanya unsur untuk melukai dengan melakukan
tindakan fisik kepada suatu pihak yang dituju. Contoh: bunuh, tendang,
tusuk, dll.

7. Apakah terdapat pihak-pihak yang merespon terkait penyalahgunaan


penggunaan media sosial twitter di Indonesia?
- Dari pemerintah terdapat kementrian komunikasi dan informatika
(Kemenkominfo). Kominfo bertugas untuk memantau penggunaan media
sosial di Indonesia.
- Dari ISP, provider telah melakukan filtering terhadap konten-konten
negatif, tetapi yang dilakukan filtering hanya sebatas URL yang
mengandung konten negatif. Filtering yang dilakukan belum tersedia pada
media sosial itu sendiri sebagai tindakan pencegahan. Filtering yang
dimaksud seperti, penghinaan, ujaran kebencian, kekerasan, kesusilaan
maupun perjudian

8. Bagaimana dengan respon terhadap penyebaran konten negatif di luar negeri?


- Untuk diluar negeri peraturan seperti UU ITE tidak ada, karena negara
tersebut lebih menjunjung tinggi kebebasan individu. Akibat yang
ditimbulkan ketika konten tersebut disebarkan, hanya mendapatkan social
judgement.

9. Mengapa di Indonesia tidak menerapkan seperti yang dilakukan di luar negeri?


- Di Indonesia masih perlu tindakan yang lebih ketat dibandingkan di luar
negeri. Hal ini karena di Indonesia, ciri dari pengguna media sosial ialah

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

berkomentar tanpa memperhatikan akibat yang mungkin ditimbulkan dari


komentar tersebut.
- Sehingga untuk menjaga perasaan dan kesejahteraan antar pengguna serta
menghindari kerusuhan yang mungkin terjadi, dilakukan penangangan yang
lebih ketat.

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

Anda mungkin juga menyukai