• Tidak ada hasil yang ditemukan

BAB IV HASIL DAN PEMBAHASAN

N/A
N/A
Protected

Academic year: 2024

Membagikan "BAB IV HASIL DAN PEMBAHASAN"

Copied!
15
0
0

Teks penuh

(1)

BAB IV

HASIL DAN PEMBAHASAN

Bab ini mendeskripsikan pembahasan setiap tahap dan hasil yang diperoleh dari penelitian, mulai dari Pengumpulan data, preprocessing data, klasifikasi data dan juga evaluasi sebagai tahap akhir.

4.1 Pengumpulan Dataset

Data didapatkan dari hasil proses Crawling, crawling merupakan proses pengumpulan data dari media sosial twitter dengan melakukan pencarian melalui suatu kata kunci (keywords) tertentu. Pada proses crawling ini menggunakan library twitter scrapper dengan kata kunci

@citilink, citilink . data yang di proses sebasar 2000 data. Berikut kode crawling pada library twitter scrapper sebagaimana gambar 9.

Crawling data dengan library twitter srapper harus terhubung dengan jaringan internet. Berikut hasil data crawling sebagaiman gambar 10.

Twitterscrapper “@citilink” –output citilink.csv limit 2000 beginddate 2018- 11-1 –enddate 2019-2-2 –csv

Gambar 9. Kode Crawling Dataset

(2)

Gambar 10. Data Tweet Hasil Crawling

Diatas adalah contoh hasil dari pengambilan dokumen, data tweet hasil crawling, yang disimpan langsung dengan format csv, dan juga dapat dijadikan format excel. Data akan diklasifikasi secara manual dengan memberikan label positif atau negatif. Klasifikasi label positif dan negatif pada dataset dilakukan secara manual dengan bantuan kata-kata besar (big og words) sebagai kamus. Berikut dataset yang telah diklasifikasi, seperti pada gambar 11.

(3)

Gambar 11. Dataset

Diatas adalah dokumen yang telah diklasifikasi secara menual dengan memberikan label positif atau negatif yang akan dijadikan data uji pada penelitian ini.

4.3 Prepocessing Data

Dataset yang telah diklasifikasi secara manual, selanjutnya akan dilakukaan proses preprocessing. Proses ini membaca setiap kata dari dokumen. Berikut penjelasan dari proses preprocessing, dan kode setiap tahap-tahap pada prose tersebut :

a) Case Folding

Tahap case folding merupakan teknik penyamaan huruf pada data tweet dengan mengubah huruf kapital jadi huruf kecil, supaya

(4)

merenggangkan kata yang berlebih-lebihan dikerenakan perbedadaan huruf, dan akan menghasilkan dokumen tweet baru. Berikut kode pada proses case folding terlihat pada gambar 12.

b) Cleansing

Tahap cleansing adalah proses yang bertujuan untuk menghilangkan tweet dari kata yang kurang dibutukan seperti simbol HTML, kata kunci, hastags(#), username, email dan simbol (!@#%<>[]=;:”,’&^$*+_-/?), yang akan menghasilkan dokumen tweet baru. berikut kode pada proses cleansing terdapat pada gambar 13.

C) convert Negation

$term = preg_split("/[\d\W\s]+/", strtolower($new_data[$x]['text']));

$new_data = array();

$i = 0;

$j = 0;

if($data != NULL){

if($data[0]==1){

// looping foreach($data[1] AS $row){

$string = $row['B'];

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

$data = preg_replace($regex, ' ', $string);

$data2 = preg_replace($regex, ' ', $data);

$text = $data2 . '';

$new_data[$j]['text'] = $text.'';

$new_data[$j]['class'] = $row['C'];

$i++;

$j++;

} }

Gambar 12. Kode Proses Case Folding

Gambar 13. Kode Proses Cleansing

(5)

c) Convert Negation

Proses convert negation bertujuan untuk transformasi kata negasi yang tergabung dalam tweet. Kata tersebut akan mengganti arti suatu sentimen pada tweet tersebut, kata negasi akan tergabung dengan kata setelahnya. Contoh kata negasi ’tidak’, banyak lagi kata negasi yang akan menghasilkan dokumen tweet baru, dan akan memberikan pengaruh terhadap proses klasifikasi dengan metode naïve bayes pada penelitian ini.

Berikut kode proses convert negation seperti pada gambar 14.

d) Stopword Removal

Stopword Removal, yakni teknik yang bertujuan untuk menghapus kata didalam dokumen dataset, kata tersebut seperti “di”, “ke”, “dari”,

“yang”, “sedang”, “ini”, karena dianggap tidak memberikan deskripsi sesuatu dalam bahasa Indonesi. Tapi pada teks klasifikasi kata semacam

$positive_words_path = "positive-words.txt";

$negative_words_path = "negative-words.txt";

$negation_words_path = "negation.txt";

$pw = file_get_contents($positive_words_path);

$nw = file_get_contents($negative_words_path);

$ne = file_get_contents($negation_words_path);

$pw = preg_split('/\s+/', $pw);

$nw = preg_split('/\s+/', $nw);

$ne = preg_split('/\s+/', $ne);

Gambar 14. Kode Proses Convert Negation

(6)

“tidak”, “bukan”, “tanpa” kurang penting sehingga kata tersebut tidak ikut dibuang. Berikut kode pada proses tersebut terdapat pada gambar 15.

4.5 Klasifikasi Naïve Bayes

Pada penelitian klasifikasi dengan metode Naïve Bayes diperlukan nilai (bobot) pada setiap kata dalam dokumen dataset yang akan diproses.

$stopwords = file_get_contents("./stopwords_en.txt");

$stopwords = preg_split("/[\s]+/", $stopwords);

$data_unclassified = [];

$data_classified = [];

$confussion_matrix = [ 'positive' => [

'positive' => 0, 'negative' => 0 ],

$totalP = 2006/6789;

$totalN = 4783/6789;

$classified['text'] = $new_data[$x]['text'];

$is_negation = 0;

foreach($term as $key => $val){

// check negation handling if(in_array($key, $ne)){

$is_negation = 1;

continue;

}

Gambar 15. Kode Proses Stopword Removal

(7)

Nilai (bobot) diperoleh dengan menghitung peluang (probabilitas) positif atau negatif terhadap kata dalam setiap dokumen dataset. Penghitungan peluang (probabilitas) positif dilakukan dengan kode pada gambar 16.

Gambar 16. kode Penghitungan Probabilitas Positif

Penghitungan peluang (probabilitas) positif bertujuan untuk menghitung nilai (bobot ) pada tiap kata dalam dokumen dataset. Data yang diperlukan dalam penghitungan ini berupa banyaknya kata berkategori positif, kemunculan tiap kata dalam dokumen yang berkategori positif, dan total keseluruhan kata. Nilai tersebut nantinya akan dipakai pada klasifikasi naïve bayes akan berpengaruh dalam menentukan besarnya akurasi yang menjadi parameter kebenaran pada penelitian ini.

Selanjutnya akan menghitung peluang (probabilitas) negatif dengan kode pada gambar 17.

if((in_array($key, $pw) && !$is_negation) || (in_array($key, $nw) &&

$is_negation)){

$classified['term'][$key]['positive'] =

pow(((2+$is_negation)/($countDataset+$countPw)), $val);

} else {

$classified['term'][$key]['positive'] = 1/($countDataset+$countPw);

}

$totalP *= $classified['term'][$key]['positive'];

(8)

Gambar 17. Kode Penghitungan Probabilitas Negatif

Penghitungan peluang (probabilitas) negatif bertujuan untuk menghitung nilai (bobot ) pada tiap kata dalam dokumen dataset. Data yang diperlukan dalam penghitungan ini berupa banyaknya kata berkategori negatif, kemunculan tiap kata dalam dokumen yang berkategori negatif, dan total keseluruhan kata. Nilai tersebut nantinya akan dipakai pada klasifikasi naïve bayes akan berpengaruh dalam menentukan besarnya akurasi yang menjadi parameter kebenaran pada penelitian ini.

Penghitungan nilai (bobot) diatas merupakan proses dimana harus dilakukan karena pada klasifikasi naïve bayes nilai (bobot) tersebut sangat dibutuhkan. Setelah proses penghitungan diatas, selanjutnya akan dilakukan klasifikasi. Berikut kode bisa dilihat pada gambar 18.

if((in_array($key, $nw) && !$is_negation) || (!in_array($key, $nw) &&

$is_negation)){

$classified['term'][$key]['negative'] =

pow(((2+$is_negation)/($countDataset+$countNw)), $val);

} else {

$classified['term'][$key]['negative'] = 1/($countDataset+$countNw);

}

$totalN *= $classified['term'][$key]['negative'];

if($is_negation) $is_negation = 0;

(9)

if((in_array($key, $pw) && !$is_negation) || (in_array($key, $nw) &&

$is_negation)){

$classified['term'][$key]['positive'] =

pow(((2+$is_negation)/($countDataset+$countPw)), $val);

} else {

$classified['term'][$key]['positive'] = 1/($countDataset+$countPw);

}

$totalP *= $classified['term'][$key]['positive'];

if((in_array($key, $nw) && !$is_negation) || (!in_array($key, $nw) &&

$is_negation)){

$classified['term'][$key]['negative'] =

pow(((2+$is_negation)/($countDataset+$countNw)), $val);

} else {

$classified['term'][$key]['negative'] = 1/($countDataset+$countNw);

}

$totalN *= $classified['term'][$key]['negative'];

if($is_negation) $is_negation = 0;

}

$classified['positive'] = $totalP;

$classified['negative'] = $totalN;

$classified['actual'] = $new_data[$x]['class'];

$classified['difference'] = abs($totalP - $totalN);

if($totalP > $totalN){ $classified['predicted'] = 'positive';

} else {

$classified['predicted'] = 'negative'; }

$confussion_matrix[$new_data[$x]['class']][$classified['predicted']]++;

array_push($data_classified, $classified);

}

echo "Unclassified : ". count($data_unclassified);

echo "</br >";

echo "Classified : ". count($data_classified);

echo "</br >"; }

Gambar 18. Klasifikasi Naive Bayes

(10)

Klasifikasi sentimen dengan naïve bayes dilakukan dengan cara membandingkan nilai (bobot) kata pada dokumen dalam dataset. Bila nilai (bobot) kata peluang (probabilitas) yang berkategori positif lebih banyak maka hasil sentimennya positif, bila nilai (bobot) kata peluang (probabilitas) yang berkategori negatif maka hasil sentimennya negatif Semua dokumen dataset akan diklasifikasi bila ditemukan nilai (bobot) pada tiap kata di dokumen dataset, dan data tidak terklasifikasi bila tidak ditemukan nilai (bobot) pada tiap kata di dokumen dataset.

4.6 Evaluasi

Evaluasi menjadi parameter keberanan dalam suatu penelitian, menghitung seberapa besar akurasi yang akan didapat. Berikut kode dari proses evaluasi pada gambar 19.

<td style="font-weight: bold;">Positive</td>

<td><?= $positive = $confussion_matrix['positive']['positive'] ?></td>

<td><?= $confussion_matrix['positive']['negative'] ?></td>

<td style="font-weight: bold;"><?= $actual_positive = $confussion_matrix['positive']['positive'] +

$confussion_matrix['positive']['negative'] ?></td></tr><tr>

<td style="font-weight: bold;">Negative</td>

<td><?= $confussion_matrix['negative']['positive'] ?></td>

<td><?= $negative = $confussion_matrix['negative']['negative'] ?></td>

<td style="font-weight: bold;"><?= $actual_negative = $confussion_matrix['negative']['positive']

+ $confussion_matrix['negative']['negative'] ?></td></tr><tr>

<td style="font-weight: bold;">Total</td>

<td style="font-weight: bold;"><?= $pos = $confussion_matrix['positive']['positive'] +

$confussion_matrix['negative']['positive'] ?></td>

<td style="font-weight: bold;"><?= $neg = $confussion_matrix['positive']['negative'] +

$confussion_matrix['negative']['negative'] ?></td>

<td style="font-weight: bold;"><?= $total = $pos + $neg ?></td></tr>

Gambar 19. Kode Penghitungan Confussion Matrix

(11)

Penghitungan confusision matrix berdasarkan rumus yang tercantum pada tabel 7.

4.7 Implementasi

Implementasi pada penelitian ini dilakukan dengan kode PHP, berupa halaman utama yang berisi menu untuk mengakses data untuk di upload yang akan langsung diproses, menghasilkan hasil penghitungan probabilitas data, dan hasil akurasi dari peneletian. Berikut tampilan halaman utama pada gambar 20.

Gambar 20. Halaman Utama

Pada halaman ini kita bisa mengakses data dari komputer, tombol upload untuk memproses data yang telah dipilih. Berikut gambaran mangakses data dari komputer terdapat pada gambar 21.

(12)

Gambar 21. Proses Mengakses Data dari Komputer

Diatas adalah proses mengakses data untuk dipilih dengan memilih tombol open. Dan data akan langsung diproses yang menghasilkan hasil dari penghitungan. Berikut hasil proses pada gambar 22.

(13)

Gambar 22. Hasil Proses Data

Dalam proses ini menampilkan jumlah kemunculan pada setiap kata, menampilkan hasil penghitungan probabilitas sentimen positif dan probabilitas sentimen negatif pada semua dokumen.

(14)

4.7 EVALUASI

Evaluasi sebagai acuan dalam penelitain ini. Parameter yang digunakan untuk penghitungan akurasi yaitu penghitungan dari tabel confusion matrix yang terdapat pada gambar 23.

Gambar 23. Confussion Matrix

Diatas adalah gambar dimana data tweet sudah terklasifikasi, akan dihitung untuk melihat akurasi yang akan didapat sebagai acuan dari kebenaran pada penelitian ini.

Gambar 24. Hasil Evaluasi

Evaluasi dilakukan sebagai parameter dari kebenaran dalam penelitian ini, dengan akurasi perhitungan dari tabel confusion matrix (matriks klasifikasi). Untuk menghitung akurasi, precision, recall. Akurasi

(15)

yang didapat mencapai 0.778 dengan waktu proses dua menit dua puluh tiga detik. Nilai akurasi adalah tingkat keberhasilan klasifikasi dari semua data.

Precision adalah data actual positif yang diprediksi benar. Recall untuk mengukur keberhasilan klasifikasi yang diprediksi dengan benar.

Referensi

Dokumen terkait

Hasil pengujian terhadap variabel basis perusahaan menunjukkan nilai t sebesar 3,339 dengan probabilitas sebesar 0,022 &lt; 0,05 dengan nilai signifikansi yang lebih besar

Dilihat dari hasil survei kepada 6 orang penilai kedua konsep tersebut, dan dari hasil perhitungan perolehan nilai bobot, maka dapat disimpulkan bahwa remote yang akan

EVA yang positif menandakan bahwa perusahaan mampu menciptakan nilai tambah bagi perusahaan dan pemilik modal, EVA yang negatif menandakan bahwa perusahaan gagal

pemberian tugas.. Selain mendapatkan tanggapan yang positif dari guru, modul yang dikembangkan juga mendapatkan tanggapan yang negatif yaitu mengenai penjelasan

Maka bila dilihat dari tabel 4.10 di atas pernyataan terhadap Kesadaran Merek yang terdapat pada sepeda motor Merek Mio Fino dapat dikatakan Tinggi, karena nilai

Maka dari itu, bila dilihat dari besarnya nilai rerata data pretest dan postest hasil belajar, maka dapat disimpulkan bahwa ada peningkatan rerata skor untuk kedua

Jumlah cacing parasitik yang menginfeksi ikan bawal yang berasal dari tambak di daerah Cibitung Tengah yang paling banyak terdapat pada bobot badan tertinggi yaitu pada kisaran

Nilai harian (NH) ini memiliki bobot nilai yang besar untuk nilai hasil belajar seperti yang tercantum dalam nilai raport, karena nilai harian tersebut terdiri