• Tidak ada hasil yang ditemukan

Pada tahap ini akan dilakukan konstruksi terhadap aplikasi yang akan dibuat, penulis akan mengkonstruksi proses preprocessing, klasifikasi pendekatan lexicon dan algoritma K-NN. Berikut penjelasan lebih lengkap mengenai konstruksi tersebut.

4.4.1 Konstruksi Preprocessing query

Tahapan preprocessing yang dilakukan secara keseluruhan dijelaskan dibawah ini: a. Casefolding

Tahapan untuk mengubah karakter huruf kapital menjadi huruf kecil untuk menyeragamkan dan memudahkan dalam proses selanjutnya.

Tabel 4.11 Contoh proses casefolding

Sebelum Proses Case Folding

Sesudah Proses Case Folding

@mandiricare ini ATMnya rsk ya, gagal utk ambil uang

@mandiricare ini atmnya rsk ya, gagal utk ambil uang

b. Cleansing

Proses penghilangan karakter karakter selain karakter UTF-8, seperti koma (,), titik (.), hashtag (#) dan lain lain selain itu kata yang bersifat untuk me-mention dan link url juga dihilangkan.

Tabel 4.12 Contoh proses cleansing

Sebelum Proses UTF-8 character filtering

Sesudah Proses UTF-8 character filtering

@mandiricare ini ATMnya rsk ya, gagal utk ambil uang

ini atmnya rsk ya gagal utk ambil uang

Normalisasi kata –kata singkatan maupun kata yang tidak standar bahasa indonesia menjadi kata yang sesuai dengan Kamu Besar Bahasa Indonesia

Tabel 4.13 Contoh proses normalisasi

Sebelum Proses normalisasi filtering

Sesudah Proses normalisasi filtering

ini atmnya rsk ya gagal utk ambil uang

ini atmnya rusak ya gagal untuk ambil uang

d. Stemming

Tahapan stemming mengubah kata menjadi kata dasar sesuai dengan Kamus Besar Bahasa Indonesia (KBBI) yang tersedia.

Tabel 4.14 Contoh proses stemming

Sebelum

Stemming

Sesudah

Stemming

rusak gagal ambil uang

rusak gagal ambil uang

e. Stopword removal

Tahap ini menghilangkan kata-kata yang tidak berpengaruh dalam proses klasifikasi, sehingga proses pemberian bobot kata dapat lebih efisien.

Tabel 4.15 Contoh proses stopword removal

Sebelum Proses Case Folding Sesudah Proses Case Folding ini ATMnya rusak ya gagal untuk ambil uang

rusak gagal ambil uang

f. Tokenizing

Tokenization memisahkan satu kalimat menjadi potongan kata. Tabel 4.16 Contoh proses tokenizing

Sebelum

Tokenization

Sesudah

Tokenization

rusak gagal ambil uang

rusak gagal ambil uang

4.4.2 Konstruksi Klasifikasi data latih dengan pendekatan lexicon

Hasil setelah proses prepocessing adalah potongan kata kata hasil dari tahap tokenization yang selanjutnya melakukan pemberian label terhadap token, ada 4 aturan yang berlaku dalam proses labeling ini.

1. Cari kata yang mengandung sentimen 2. Cari kalimat yang mengandung negasi 3. Cari kata dengan klausa “tapi”

4. Menghitung score

Sebagai contoh berikut adalah query dari hasil tokenisasi sebelumnya.

Query = “rusak gagal ambil uang”

1. Cari kata yang mengandung sentimen.

Query akan di indentifikasi setiap katanya dengan membandingkan dengan kamus lexicon positif atau negatif untuk menentukan orientasi kata tersebut jika tidak ditemukan kata sentimen maka query diklasifikasi sebagai kalimat netral. Dari query tersebut didapat dua kata yang mengandung sentimen.

Tabel 4.17 Perhitungan kata mengandung sentimen Sentimen Positif Negatif - rusak - gagal Total 0 2

2. Cari kata yang bersifat negasi.

Dari pencarian, didalam query tersebut tidak ditemukan adanya negasi maka hasil nya sebagai berikut.

Tabel 4.18 Perhitungan kata bersifat negasi

Sentimen

Positif Negatif

- Rusak - gagal

total 0 2

3. Cari kata yang dengan klausa “tapi”.

Hasil dari indetifikasi kata tapi, tidak ditemukan maka hasil sama seperti sebelumnya.

Tabel 4.19 Perhitungan kata dengan klausa "tapi"

Sentimen Positif Negatif - rusak - gagal Total 0 2 4. Menghitung score.

Setelah melalui tahap identifikasi sebelumnya, selanjutnya akan dihitung score (lihat BAB II, hal 8) yang diperoleh dari hasil akhir tersebut.

Gambar 4. 9 Perhitungan score klasifikasi lexicon

Berdasarkan hasil penghitungan score diperoleh nilai -1, yang menunjukkan bahwa sentimen untuk dokumen tersebut adalah negatif. Hasil akhir dari proses tersebut akan disimpan sebagai data latih, data uji, dan sentimen sementara. Dalam penelitian ini, diperoleh sebanyak 1068 data, dengan alokasi sebanyak 1018 data disimpan sebagai data latih, dan 50 data sebagai data uji.

4.4.3 Konstruksi Klasifikasi Algoritma K-NN

Klasifikasi yang akan dilakukan sangat bergantung pada keberadaan data latih. Terdapat 2 tahapan yang perlu dilakukan dalam proses klasifikasi, diantaranya:

1. Indexing dan pembobotan data latih

Setelah melalui proses preprocessing, maka hasil dokumen perlu diberi bobot atau nilai. Pembobotan dilakukan dengan menggunakan metode TF-IDF, yakni dengan menghitung peluang muncul kata. Contoh proses pembobotan dan indexing yang dilakukan pada data latih sebagai berikut :

Tabel 4.20 Contoh data latih setelah klasifikasi lexicon

Dokumen Tweet Sentimen

1 atm bank mandiri masalah negatif

2 tampil atm bagus keren positif

3 atm mandiri daerah selamat positif

5 mandiri online repot banding

dulu negatif

6 mantap mudah mandiri online

maju positif

Data latih yang diambil dari database kemudian dilakukan tokenization untuk memecah kalimat menjadi kata-kata.

Tabel 4.21 Tokenisasi data latih

Doc 1 Doc 2 Doc 3 Doc 4 Doc 5 Doc 6

atm tampil atm kata Mandiri mantap

bank atm mandiri mandiri Online mudah

mandiri bagus daerah online Repot mandiri

masalah keren selamat mudah Banding online

sulit Dulu maju

Pada tabel 4.21 terlihat hasil dari tokenisasi dari data latih yang berupa kata - kata yang sudah dipisah dari satu kalimat sebagai contoh, hasil tokenisasi pada doc 1 menjadi atm, bank, mandiri dan masalah

Tabel 4.22 Proses indexing data latih

Term TF DF

Doc 1 Doc 2 Doc 3 Doc 4 Doc 5 Doc 6

atm 1 1 1 0 0 0 3 bank 1 0 0 0 0 0 1 mandiri 1 0 1 1 1 1 5 masalah 1 0 0 0 0 0 1 tampil 0 1 0 0 0 0 1 bagus 0 1 0 0 0 0 1

keren 0 1 0 0 0 0 1 daerah 0 0 1 0 0 0 1 selamat 0 0 1 0 0 0 1 kata 0 0 0 1 0 0 1 online 0 0 0 1 1 1 3 mudah 0 0 0 1 0 1 2 sulit 0 0 0 1 0 0 1 repot 0 0 0 0 1 0 1 banding 0 0 0 0 1 0 1 dulu 0 0 0 0 1 0 1 mantap 0 0 0 0 0 1 1 maju 0 0 0 0 0 1 1 Keterangan :

Term : Kata dari data yang sudah melalui tokenization.

Tf : Term frequency, banyaknya kata yang muncul pada dokumen ke – n.

Df : Document Frequency, jumlah dokumen yang mengandung kata tersebut.

Dari tabel tersebut, setelah menghitung df, maka dilakukan dengan menghitung idf (inverse document frequency). Dalam menghitung nilai menggunakan rumus berikut:

Gambar 4. 10 Rumus perhitungan IDF

Tabel 4.23 Hasil nilai idf

2. Indexing dan pembobotan data uji.

Dari data uji yang dialokasikan di awal, diambil sejumlah 100 data untuk proses klasifikasi. Proses pengambilan data uji, sama seperti mengambil data latih. Data uji yang diambil selanjutnya melalaui proses seleksi dokumen, yaitu seleksi duplikasi dan seleksi retweet yang kemudian melewati tahap text preprocesing. Alur kerja pada proses text processing data uji digambarkan sebagai berikut:

Gambar 4.11 Text preprocessing data uji

Term TF DF IDF

Doc 1 Doc 2 Doc 3 Doc 4 Doc 5 Doc 6

atm 1 1 1 0 0 0 3 0.301 bank 1 0 0 0 0 0 1 0.778 mandiri 1 0 1 1 1 1 5 0.079 masalah 1 0 0 0 0 0 1 0.778 tampil 0 1 0 0 0 0 1 0.778 bagus 0 1 0 0 0 0 1 0.778 keren 0 1 0 0 0 0 1 0.778 daerah 0 0 1 0 0 0 1 0.778 selamat 0 0 1 0 0 0 1 0.778 kata 0 0 0 1 0 0 1 0.778 online 0 0 0 1 1 1 3 0.301 mudah 0 0 0 1 0 1 2 0.477 sulit 0 0 0 1 0 0 1 0.778 repot 0 0 0 0 1 0 1 0.778 banding 0 0 0 0 1 0 1 0.778 dulu 0 0 0 0 1 0 1 0.778 mantap 0 0 0 0 0 1 1 0.778 maju 0 0 0 0 0 1 1 0.778

Penjelasan lebih detil dapat dilihat pada contoh berikut contoh query data uji berikut:

Query : “selamat ya untuk @mandiricare, semoga tambah maju dan tambah keren!!”.

Query akan melalui text processing dengan tahapan sebagai berikut: 1. Case Folding.

Query = “selamat ya untuk @mandiricare, semoga tambah maju dan tambah keren !!”.

2. Cleansing.

Query = “selamat ya untuk semoga tambah maju dan tambah keren”. 3. Tokenization.

Tabel 4.24 Tokenizing data uji

Query Tokenization

selamat ya untuk semoga tambah maju dan tambah keren

selamat ya untuk semoga tambah maju dan tambah keren 4. Seleksi slangword.

Tabel 4.25 Seleksi slangword data uji

Query Token

selamat ya untuk semoga tambah maju dan tambah keren

selamat ya untuk semoga tambah maju

tambah Keren

5. Stopword removal

Tabel 4.26 Seleksi stopword data uji

Query Token

selamat ya untuk semoga tambah maju dan tambah keren

Selamat Semoga Tambah Maju Tambah Keren 6. Stemming.

Tabel 4.27 Proses stemming data uji

Query Token

selamat ya untuk semoga tambah maju dan tambah keren

Selamat Semoga Tambah Maju Tambah Keren

Setelah melalui tahap preprocessing, selanjutnya query data uji melalui tahap pembobotan menggunakan data latih yang sudah di index sebelumnya. Maka tahap ini melakukan perhitungan bobot dari kata-kata data uji yang berbentuk token terhadap bobot data latih dengan perhitungan bobot sebagai berikut:

Gambar 4. 12 Rumus Pembobotan Keterangan.

W : bobot.

TF : Term frequency

Idf : Inverse document frequency

Tabel 4.28 Hasil pembobotan token data uji

Term TF DF IDF W

Doc 1 Doc 2 Doc 3 Doc 4 Doc 5 Doc 6

Atm 0.301 0.301 1 0 0 0 3 0.301 bank 0.778 0 0 0 0 0 1 0.778 mandiri 0.079 0 0.079 0.079 0.079 0.079 5 0.079 masalah 0.778 0 0 0 0 0 1 0.778 tampil 0 0.778 0 0 0 0 1 0.778 bagus 0 0.778 0 0 0 0 1 0.778 keren 0 0.778 0 0 0 0 1 0.778 0.778 daerah 0 0 0.778 0 0 0 1 0.778 selamat 0 0 0.778 0 0 0 1 0.778 0.778 kata 0 0 0 0.778 0 0 1 0.778 online 0 0 0 0.301 0.301 0.301 3 0.301 mudah 0 0 0 0.477 0 0.477 2 0.477 sulit 0 0 0 0.778 0 0 1 0.778 repot 0 0 0 0 0.778 0 1 0.778 banding 0 0 0 0 0.778 0 1 0.778 dulu 0 0 0 0 0.778 0 1 0.778 mantap 0 0 0 0 0 0.778 1 0.778 maju 0 0 0 0 0 0.778 1 0.778 0.778

Dalam penentuan klasifikasi, terdapat beberapa tahap yang perlu diperhatikan, diantaranya:

1. Perhitungan cosine similarity

Menghitung kemiripan hasil bobot data uji dengan kemiripan terhadap dokumen data latih dapat dilakukan menggunakan metode cosine similarity. Berikut perhitungan cosine similarity:

Kemiripan terhadap dokumen ke-1 : R(Q, 1) = (0.778×0)+(0.778×0)+(0.778×0)

√1.307×√1.815

Kemiripan terhadap dokumen ke-4 : R(Q, 4) = (0.778×0)+(0.778×0)+(0.778×0)

R(Q, 1) = 0 1.540 R(Q, 1) = 0.000. R(Q, 4) = 0 1.668 R(Q, 4) = 0.000. Kemiripan terhadap dokumen ke-2 :

R(Q,2)= (0.778×0.778)+(0.778×0)+(0.778×0) √1.906×√1.815

R(Q, 2) = 0.605 1.859 R(Q, 2) = 0.325.

Kemiripan terhadap dokumen ke-5 : R(Q,5) = (0.778×0.778)+(0.778×0)+(0.778×0)

√1.906×√1.815 R(Q, 5) = 1.8590

R(Q, 5) = 0.000. Kemiripan terhadap dokumen ke-3 :

R(Q,3)= (0.778×0.778)+(0.778×0.778)+(0.778×0) √1.307×√1.815

R(Q, 3) = 0.605 1.540 R(Q, 3) = 0.392.

Kemiripan terhadap dokumen ke-6 : R(Q,6)= (0.778×0.778)+(0.778×0)+(0.778×0.778)

√1.534×√1.815 R(Q, 6) = 0.6051.668

R(Q, 6) = 0.362.

2. Mengurutkan nilai bobot tertinggi.

Hasil dari perhitungan query data uji terhadap data latih didapatkan hasil sebagai berikut : R(Q, 1) = 0.000. R(Q, 2) = 0.325. R(Q, 3) = 0.392. R(Q, 4) = 0.000. R(Q, 5) = 0.000. R(Q, 6) = 0.362.

Kemudian hasil tersebut diurutkan berdasarkan nilai yang tertinggi, maka didapat nilai sebagai berikut.

Tabel 4. 29 Proses pengurutan hasil pembobotan

Sebelum Diurutkan Sesudah Diurutkan

R(Q, 1) = 0.000. R(Q, 3) = 0.392. R(Q, 2) = 0.325. R(Q, 6) = 0.362. R(Q, 3) = 0.392. R(Q, 2) = 0.325. R(Q, 4) = 0.000. R(Q, 1) = 0.000.

R(Q, 5) = 0.000. R(Q, 4) = 0.000. R(Q, 6) = 0.362. R(Q, 5) = 0.000.

3. Menentukan sentimen.

Setelah diurutkan maka label data uji di berikan sesuai label sementara data latih, hanya dokumen yang memiliki nilai yang dapat diberikan label sentimen.

Tabel 4.30 Pemberian label hasil klasifikasi

Sesudah Diurutkan Label R(Q, 3) = 0.392. Positif R(Q, 6) = 0.362. Positif R(Q, 2) = 0.325. Positif R(Q, 1) = 0.000. - R(Q, 4) = 0.000. - R(Q, 5) = 0.000. -

Pada percobaan ini, digunakan nilai k = 3, maka akan diambil 3 ketetanggaan terdekat sebagai penentu sentimen.

Tabel 4. 31 Proses pembatasan nilai k

Sesudah

Diurutkan Label

R(Q, 3) = 0.392. Positif R(Q, 6) = 0.362. Positif R(Q, 2) = 0.325. Positif

Dengan mayoritas suara menyatakan positif, maka sentimen untuk query data uji tersebut adalah positif.

Dokumen terkait