DAFTAR ISI HALAMAN JUDUL LEMBAR PERSETUJUAN LEMBAR PENGESAHAN LEMBAR PERNYATAAN HALAMAN PERSEMBAHAN HALAMAN RIWAYAT HIDUP HALAMAN MOTTO KATA PENGANTAR............................................................................................i ABSTRAK.............................................................................................................iii ABSTRACT............................................................................................................iv DAFTAR ISI...........................................................................................................v DAFTAR GAMBAR............................................................................................vii DAFTAR TABEL...............................................................................................viii BAB I PENDAHULUAN 1.1 Latar Belakang Masalah...........................................................................................1 1.2 Rumusan Masalah....................................................................................................2 1.3 Tujuan......................................................................................................................2 1.4 Batasan Masalah......................................................................................................2
1.5.1 Teknik Pengumpulan Data......................................................................3 1.5.2 Metode Pengembangan Perangkat Lunak...............................................4 1.6 Kerangka Pemikiran.................................................................................................5 1.7 Sistematika Penulisan..............................................................................................6
BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Pustaka......................................................................................................8
2.1.1 State Of The Art.......................................................................................8 2.2 Twitter...................................................................................................................11
2.2.1 Definisi Twitter......................................................................................11 2.2.2 Fitur-fitur Twitter...................................................................................12 2.3 Analisis Sentimen..................................................................................................15 2.4 Klasifikasi..............................................................................................................15 2.5 Algoritma C4.5......................................................................................................16 2.6
Metode Pengembangan Perangkat Lunak...........................................................23
2.7 Pemodelan Sistem..................................................................................................24 2.8 Pengujian Perangkat Lunak....................................................................................33
v
2.8.1 Pengujian White-Box.............................................................................35 2.8.2 Pengujian Black-Box.............................................................................36 2.9 Android..................................................................................................................36 2.10
Database...........................................................................................................39
BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis Kebutuhan Software dan Hardware..........................................................41
3.1.1 Hardware yang dibutuhkan...................................................................41 2.1.1 Software yang dibutuhkan.....................................................................41 2.2 Analisis Kebutuhan Fungsional.............................................................................41 2.3 Perancangan...........................................................................................................42
2.3.1 Use Case Diagram................................................................................42 2.3.2 Skenerio Use Case.................................................................................43 2.3.3 Deployment Diagram.............................................................................46 2.3.4 Activity Diagram...................................................................................47 2.3.5 Class Diagram.......................................................................................50 2.3.6 Sequence Diagram.................................................................................51 2.3.7 Perancangan Antarmuka........................................................................54 2.3.8 Analisis Preprocessing data..................................................................57 2.3.9 Analisis Algoritma C4.5........................................................................59 2.3.10 Flowchart Algoritma C4.5...................................................................75 2.3.11Flowchart Perhitungan Entropy dan Gain............................................76 BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Construction...........................................................................................................77
4.1.1 Batasan Implementasi............................................................................77 4.1.2 Implementasi Perangkat Lunak (Software)...........................................77 4.1.3 Implementasi Perangkat Keras (Hardware)..........................................77 4.1.4 Implementasi Basis Data.......................................................................78 4.1.5 Implementasi Antarmuka......................................................................79 4.2 Implementasi Tahap preprocessing........................................................................84
4.2.1 Implementasi Algoritma C4.5...............................................................85 4.3 Pengujian Black Box..............................................................................................88
4.3.1 Pengujian Hasil Klasifikasi...................................................................89 5.1 Kesimpulan............................................................................................................93 5.2 Saran......................................................................................................................93
vi
BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Media sosial adalah saluran atau sarana pergaulan sosial secara online di dunia maya (internet). Para pengguna (user) media sosial dapat saling berkomunikasi, berinteraksi, saling kirim pesan dan saling berbagi (sharing), juga membangun jaringan (networking) [1]. Salah satu media sosial yang paling sering digunakan di Indonesia adalah Twitter. Twitter adalah layanan jejaring sosial yang memungkinkan penggunaanya untuk mengirim dan membaca pesan berbasis teks hingga 140 karakter, yang dikenal dengan sebutan kicauan (tweet) [2]. Namun penggunaannya tidak sesuai dengan tujuan media sosial sebagai prantara berkomunikasi dengan baik. Kicauan (tweet) sering berisi tentang hal-hal negative atau yang tidak seharusnya dibaca oleh pengguna lain. Oleh karena itu perlunya satu cara untuk mengetahui pantas atau tidakah suatu tweet di publish untuk orang banyak Algoritma C4.5 merupakan salah satu algoritma machine learning. Dengan algoritma ini, mesin (komputer) akan diberikan sekelompok data untuk dipelajari (learning dataset). Kemudian hasil dari pembelajaran selanjutnya akan digunakan untuk mengolah data-data (test dataset). Maka hasil dari pengolahan test dataset berupa pengelompokkan data ke dalam kelas-kelasnya [3].
1
Text mining merupakan variasi dari data mining yang berusaha menemukan pola yang menarik dari sekumpulan data tekstual yang berjumlah besar [4]. Berdasarkan latar belakang tersebut, diangkat sebuah judul “Klasifikasi Sentimen Pada Kicauan Twitter Menggunakan Algoritma C4.5”. 1.2 Rumusan Masalah Berdasarkan uraian pada latar belakang, maka didapatkan rumusan masalah, yaitu: Bagaimana menerapkan algoritma C4.5 untuk klasifikasidata kicauan twitter yang bersifat sentimen? 1.3 Tujuan Adapun tujuan dari penelitian ini adalah menerapkan algoritma C4.5 untuk klasifikasi kicauan twitter yang bersifat sentiment. 1.4 Batasan Masalah Berdasarkan pemaparan diatas, agar hasil penelitian dapat sesuai dengan perumusan masalah dan hasilnya sesuai dengan yang diharapkan, maka ruang lingkup pembahasan dibatasi pada: 1. Data berupa teks dari kicauan yang didapatkan dari twitter 2. Data yang akan diklasifikasi berasal dari semua teman salah satu akun twitter. 3. Data yang akan diklasifikasikan didapatkan sesuai hasil data pencarian. 4. Algoritma yang diimplementasikan untuk klasifikasi data twitter adalah algoritma C4.5. 5. Metode pengembangan perangkat lunak yang diterapkan adalah prototype. 2
6. Bahasa yang digunakan adalah bahasa indonesia.
1.5 1.5.1
Metodologi Penelitian Teknik Pengumpulan Data Guna mendapatkan data yang diperlukan untuk membantu dalam
penyusunan tugas akhir yang akan dibangun, maka digunakan metodologi sebagai berikut: 1. Pengumpulan Data Data yang digunakan pada penelitian ini berupa data dari kicauan semua teman salah satu akun twitter. Data yang digunakan untuk data training maupun pengujian didapat dari tweet dengan menggunakan key pencarian tertentu. 2. Text Mining Text mining merupakan variasi dari data mining yang berusaha menemukan pola yang menarik dari sekumpulan data tekstual yang berjumlah besar. Text mining memiliki definisi menambang data yang berupa teks dimana sumber data biasanya di dapatkan dari dokumen, dan tujuannya adalah mencari kata-kata yang dapat mewakili isi dari dokumen sehingga dapat dilakukan
3
analisa keterhubungan antar dokumen. Langkah-langkah yang dilakukan dalam text mining adalah sebagai berikut: [4]. a.
Text Preprocessing Tindakan yang dilakukan pada tahap ini adalah toLowerCase, yaitu mengubah semua karakter huruf menjadi huruf kecil, dan Tokenizing yaitu proses penguraian deskripsi yang semula berupa kalimat-kalimat menjadi kata-kata dan menghilangkan delimiter-delimiter seperti tanda titik(.), koma(,), spasi dan karakter angka yang ada pada kata tersebut.
b.
Feature Selection Pada tahap ini tindakan yang dilakukan adalah menghilangkan stopword (stopword removal) dan stemming terhadap kata yang berimbuhan. Stopword adalah kosakata yang bukan merupakan ciri (kata unik) dari suatu dokumen. Misalnya “di”, “oleh”, “pada”, “sebuah”, “karena” dan lain sebagainya. Stemming adalah proses pemetaan dan penguraian berbagai bentuk (variants) dari suatu kata menjadi bentuk kata dasarnya (stem). Tujuan dari proses stemming adalah menghilangkan imbuhanimbuhan baik itu berupa prefiks, sufiks, maupun konfiks yang ada pada setiap kata.
3. Kepustakaan Metode penelitian dengan kepustakaan adalah merupakan metode mencari beberapa materi serta keterkaitan data ataupun perbandingan jurnal yang telah membahas kajian yang sama dengan tema penelitian ini. Biasanya kepustakaan disini lebih ke sisi pengembangan sistem yang akan dibuat serta user interface yang cocok dengan bahan kajian. Sehingga pada saat mengalami kesulitan
4
dalam mengembangkan masalah, dapat terpecahkan dengan beberapa studi pustaka diatas. 1.5.2
Metode Pengembangan Perangkat Lunak Prototype adalah proses pembuatan model sederhana yang mengijinkan
pengguna memiliki gambaran dasar tentang program serta melakukan pengujian awal. Proses dimulai dengan mengumpulkan kebutuhan, pengembangan dan pelanggan bertemu dan mendefinisikan keseluruhan dari perangkat lunak, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar dimana definisi lebih jauh merupakan keharusan yang kemudian dilakukan perancangan kilat, perancangan kilat berfokus pada penyajian dari aspek-aspek perangkat lunak tersebut yang akan nampak bagi pelanggan atau pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototype. Prototype tersebut dievaluasi oleh pelanggan atau pemakai dan dipakai untuk menyaring kebutuhan pengembangan perangkat lunak. Iterasi terjadi pada saat prototype disetel untuk memenuhi kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik memahami apa yang harus dilakukannya. Secara ideal prototype berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak. Bila prototype yang sedang bekerja dibangun, pengembang harus mempergunakan fragmen-fragmen program yang ada atau mengaplikasikan alat-alat bantu (contohnya report generation, windows manager) yang memungkinkan program bekerja secara cepat.
5
1.6 Kerangka Pemikiran Kerangka pemikiran adalah dasar pemikiran dari penelitian yang disintesiskan dari fakta-fakta, observasi dan telaah kepustakaan. Kerangka yang akan dijadikan sebuah pemikiran untuk proses penyusunan kajian dapat dilihat pada Gambar 1.1.
Buku, Jurnal, Internet
Studi Literatur
Kicauan Twitter
Pengumpulan Data
Analisis Permasalahan
Latar Belakang Masalah Rumusan Masalah
Text Mining
Algoritma C4.5
Text Preprocessing
Feature Selection
Klasifikasi Sentimen Pada Kicauan Twitter Menggunakan Algoritma C4.5
Gambar 1. 1 Kerangka Pemikiran
6
1.7 Sistematika Penulisan Sistematika penulisan laporan ini disajikan dalam beberapa bab yang masing-masing bab menguraikan beberapa pokok pembahasan. Adapun sistematika penulisan laporan ini adalah sebagai berikut: BAB I
:
PENDAHULUAN Bab I merupakan pengantar yang memberikan gambaran mengenai permasalahan-permasalahan yang kemudian akan dibahas pada bab-bab selanjutnya. Bab ini berisikan tentang Latar Belakang Masalah, Rumusan Masalah, Tujuan, Batasan Masalah, Metodologi Penelitian, Kerangka Pemikiran, dan
BAB II
:
Sistematika Penulisan. STUDI PUSTAKA Bab II akan dijelaskan tinjauan pustaka mengenai studi literatur dan landasan teori mengenai teori yang digunakan dalam analisis permasalahan yang ada, juga teori yang digunakan
BAB III
:
dalam perancangan dan implementasi. ANALISIS DAN PERANCANGAN Bab III membahas mengenai analisis dan perancangan sesuai dengan tahapan metode pengembangan perangkat lunak yang
BAB IV
:
digunakan. IMPLEMENTASI DAN PENGUJIAN Bab IV akan dijelaskan tentang lanjutan tahapan metode pengembangan
perangkat
lunak
yang
digunakan
yaitu
mengenai implementasi aplikasi, dan pengujian yang dilakukan BAB V
:
terhadap aplikasi yang dibangun. PENUTUP
7
Bab V berisi kesimpulan dan saran untuk pengembangan aplikasi lebih lanjut dalam upaya memperbaiki kelemahan pada aplikasi guna untuk mendapatkan hasil kinerja aplikasi yang lebih baik dan pengembangan aplikasi selanjutnya.
BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Pustaka Dari hasil atau teori yang pernah dilakukan sebelumnya, klasifikasi merupakan proses pembelajaran suatu fungsi tujuan (target) f yang memetakan tiap himpunan atribut x kesatu dari label kelas y yang didefinisikan sebelumnya. Klasifikasi data berupa text dari kicauan yang didapatkan dari twitter. Data yang akan diklasifikasi didapatkan sesuai hasil pencarian. Algoritma C4.5 yang diimplementasikan untuk klasifikasi data twitter. 2.1.1 State Of The Art a.
Klasifikasi Trending Topic Twitter Dengan Penerapan Metode Naive Bayes. Pada jurnal ini membahas tentang klasifikasi trending topic twitter dengan
metode naive bayes, metode penelitian yang digunakan dalam penelitian ini
8
menggunakan pengumpulan data, perancangan sistem dan pengembangan sisitem. Uji coba yang di lakukan adalah dengan menggumpulan beberapa data trending topic dan dijadikan sebagai acuan kategori di dalam penelitian. Ketika data trend, kategori, dan fitur sudah dikumpulkan dan ditentukan, maka dilakukan perhitungan menggunakan metode Naive Bayes. Sebelum itu, banyaknya fiturfitur yang saling beririsan akan membuat jumlah kesalahan klasifikasi pada kategori yang memiliki fitur yang sama sangat besar.maka Kesimpulan yang dapat diambil dari penelitan klasifikasi trending topic ini adalah dari 10 data yang dijadikan acuan, diperoleh hasil klasifikasi secara otomatis yang didapat sesuai dengan perhitungan menggunakan Metode Naive Bayes, yaitu mengambil nilai maksimal dari 5 kategori yang sudah ditentukan. b.
Analisi Sentimen Pada Data Twitter Dengan Menggunakan Text Mining Terhadap Suatu Produk. Pada jurnal ini membahas tentang analisis data sentiment pada twitter
menggunakan metode text mining pada suatu produk dan pengklasifikasiannya menggunakan algoritma naive bayes classifier. Analisis sistem yang digunakan untuk menyelesaikan masalah pada penelitan ini terdiri dari Analisis masalah, Pengumpulan data, Proses Text Mining, dan Penerapan metode Klasifikasi naïve Bayes Classifier. Setelah dilakukan analisa dan perancangan sistem maka akan dilakukan
implementasi
sistem
analisa
sentiment
data
twitter
dengan
menggunakan text mining pada suatu produk. Setelah itu pngujian sistem akan mencari nilai klasifikasi terhadap data tweet secara otomatis. Nilai yang diperoleh berupa sentimen positif, sentiment negative atau netral pada setiap tweet yang
9
ditampilkan. Pengujian ini menggunakan form klasifikasi dengan cara memasukkan trend dan jumlah data yang akan di analisa. Sebagai sampel data uji akan menggunakan produk makanan. c.
Analisis Sentimen Pada Twitter Menggunakan Text Mining. Pada jurnal ini membahas klasifikasi sentiment pada twitter dengan
menggunakan metode text mining, Dalam penelitian ini data terdiri dari 4 bagian yaitu data Tweet, data stopword, data kata dasar, dan data knowledge. Pada saat pengumpulan data, jurnal ini menggunakan Twitter API Search, kemudian memasukkan
keyword-keyword
yang
berhubungan
dengan
Provider
Telekomunikasi yang dikombinasikan dengan kata-kata sentiment. Setelah itu dibuat keyword untuk menentukan kategori yang diinginkan yaitu negative word, poditif word, negative emoticon dan positif emoticon. Setelah di dapat data dan keyword maka data tersebut di klasifikasikan menggunakan algoritma naïve bayes classifier dan n-gram untuk karakter sleksi fitur. Tabel 2.1 State Of The Art No
Nama
metode
Data
Teknologi
Hasil
1
Putri Alpita Naïve Agustina bayes
Twitter
Analisis sitem berbasis dekstop
Hasil dari analis dan uji coba adalah klasifikasi trending topic ini adalah dari 10 data yang dijadikan acuan, diperoleh hasil klasifikasi secara otomatis yang didapat sesuai dengan perhitungan menggunakan Metode Naïve Bayes
2
Eka Naïve retnawiyati, bayes dkk classifie r
Data twitter terhadap suatu
Analisis sitem berbasis
Dari hasil uji analisis sentimen pada data twitter didapat tweet dengan tiga kategori 10
produk
desktop
yaitu kategori positif, negatif dan netral, Analisis sentiment dengan menggunakan text mining yang didalamnya terdapat tahapan preprocessing dan ekstraksi fitur untuk menghasilkan tweet kotor menjadi tweet bersih, Semakin banyak data latih atau data yang ditoken saat training maka nilai sentimen yang didapat akan semakin akurat.
Tabel 2.1 State Of The Art (Lanjutan) No
Nama
Metode
Data
3
Boy utomo Naïve Data manalu bayes sentiment dan N- twitter gram
Teknologi
Hasil
Analisi system berbasis desktop
Aplikasi ini mampu melakukan mengklasifikasi sentimen yang ada pada sebuah Tweet secara otomatis, Proses klasifikasi semakin akurat jika data latih yang digunakan dalam pembelajaran berjumlah banyak, akan tetapi dapat juga mengurangi keakuratan jika kata-kata yang terdapat pada Tweet tersebut mengalami bias atau bermakna ganda, Seleksi fitur menggunakan N-gram kata dapat meningkatkan kemampuan analisis
11
sentimen pada Tweet
2.2 Twitter 2.2.1 Definisi Twitter Twitter adalah layanan jejaring sosial dan mikrobloging daring yang memungkinkan pengguna untuk mengirim dan membaca pesan berbasis teks hingga 140 karakter yang dikenal dengan sebutan kicauan (tweet). Twitter didirikan pada bulan Maret 2006 oleh Jack Dorsey, dan situs jejaring sosialnya diluncurkan pada bulan Juli. Sejak diluncurkan, Twitter telah menjadi salah satu dari sepuluh situs yang paling sering dikunjungi di Internet, dan dijuluki dengan "pesan singkat dari Internet." Di Twitter, pengguna tak terdaftar hanya bias membaca kicauan, sedangkan pengguna terdaftar bisa menulis kicauan melalui antarmuka situs web, pesan singkat (SMS), atau melalui berbagi aplikasi untuk perangkat seluler. Twitter mengalami pertumbuhan yang pesat dan dengan cepat meraih popularitas di seluruh dunia. Hingga bulan Januari 2013, terdapat lebih dari 500 juta pengguna terdaftar di Twitter, 200 juta di antaranya adalah pengguna aktif. Lonjakan penggunaan Twitter umumnya berlangsung saat terjadinya peristiwaperistiwa populer. Pada awal 2013, pengguna Twitter mengirimkan lebih dari 340 juta kicauan per hari, dan Twitter menangani lebih dari 1,6 miliar permintaan pencarian per hari. Hal ini menyebabkan posisi Twitter naik ke peringkat kedua sebagai situs jejaring sosial yang paling sering dikunjungi di dunia, dari yang sebelumnya menempati peringkat dua puluh dua.
12
Tingginya
popularitas
Twitter
menyebabkan
layanan
ini
telah
dimanfaatkan untuk berbagai keperluan dalam berbagai aspek, misalnya sebagai sarana
protes, kampanye politik, sarana
pembelajaran,
dan
sebagai media
komunikasi darurat [5]. 2.2.2 Fitur-fitur Twitter Penguna media sosial dapat menggunakan twitter sebagai sarana untuk menciptakan konten media dengan memanfaatkan fitur-fitur yang berada didalamnya. Menurut Brian J.Dixion fitur yang terdapat dalam twitter sebagai berikut : [6]
a. Followers dan Following Followers (pengikut) merupakan akun atau orang yang mengikuti akun yang lain, sedangkan following (mengikuti) merupakan akun atau orang yang diikuti akun yang lain. Cara lain untuk menggunakan twitter adalah untuk berbagi informasi dengan pengikut akun sendiri. Pengguna twitter yang mengikuti akun itu akan menerima update dari akun tersebut, yang diposting di halaman utama mereka di twitter. b. Direct Message Twitter juga memungkinkan untuk mengirim pesan pribadi kepengguna yang mengikuti akun tersbut. Ini pada dasarnya adalah program e-mail yang diterapkan ke twitter. Jika pengguna twitter tidak mengikuti akun tersebut, mereka tetap dapat saling mengirim pesan lewat pesan pribadi.
13
c. Twitter Search Salah satu fitur yang paling kuat dari twitter adalah memberi kemudahan pengguna untuk mencari untuk orang-orang tertentu, kata kunci, subjek, dan tempat-tempat. d. Trending Topics Salah satu bagian yang paling menarik dari twitter adalah trending topics. Trending topics ini adalah terdiri sepuluh topik yang sering disebut atau dibicarakan di twitter pada waktu tertentu. Trending topics akan berkisar dari berita, olahraga, dan barang-barang hiburan yang menghibur.
e. Latest News Twitter memungkinkan penggunanya dengan cepat mengejar ketinggalan berita terbaru. Begitu seseorang tahu tentang berita terbaru, dia dapat memposting informasi tersebut di twitter, dan dalam beberapa detik konten yang dibagi muncul di internet. (Dixion, 2012: 43 – 45). Untuk jenis sosial media seperti twitter dapat menciptakan serta menggerakan komunitas, mengendalikan traffic di blog, atau website. Sedangkan untuk
kekuatan
twitter sendiri adalah: a. Following: Twitter dapat mengidentifikasikan jumlah akun yang diikuti b. Followers: Twitter dapat mengidentifikasikan jumlah akun yang mengikuti c. Updates: Twitter menditeksi seberapa sering orang melakukan posting (menulis konten) 14
d. Men-tag nama (Mention): beberapa orang akan terlibat dalam pembicaraan apabila mencantumkan akun pada setiap status yang ditulis e. Retweet: dengan me-retweet status followers lain menunjukkan tweet tersebut menarik untuk dibahas. Tweet tersebut dapat dibaca oleh seluruh followers f. Keterlibatan: brand harus mampu untuk meningkatkan keterlibatan para konsumen dalam berbagai percakapan g. Kecepatan: konsistensi dan frekuensi diperlukan untuk mengimbangi kecepatan perubahan informasi yang beredar di twitter. (Puntoadi, 2011: 129-131). 2.3 Analisis Sentimen Analisis sentimen dapat dikatakan sebagai opinion mining.Analisis sentiment dapat digunakan dalam berbagai kemungkinan domain, dari produk, konsumen, jasa kesehatan, jasa keuangan, peristiwa sosial politik pada pemilu. Kecenderungan penelitian tentang analisis sentiment berfokus pada pendapat yang menyatakan atau menyiratkan suatu sentiment positif atau negatif. Pendapat mewakili hampir semua aktivitas manusia, karena pendapat dapat mempengaruhi terhadap perilaku seseorang [17].
15
2.4 Klasifikasi Klasifikasi merupakan proses pembelajaran suatu fungsi tujuan (target) f yang memetakan tiap himpunan atribut x ke satu dari label kelas y yang didefinisikan sebelumnya. Fungsi target disebut juga model klasifikasi. Teknik klasifikasi cocok untuk memprediksi atau menggambarkan data-set dengan tipe biner atau nominal.Teknik ini kurang efektif digunakan untuk tipe data ordinal (missal untuk mengklasifikasi anggota yang berpenghasilan rendah, sedang atau tinggi) karena teknik ini tidak mempertimbangkan secara implicit urutan dalam kategori data. Teknik klasifikasi merupakan suatu pendekatan sistematis untuk membangun model klasifikasi dari suatu himpunan data masukan. Tiap teknik menggunakan suatu algoritma pembelajaran untuk mendapatkan suatu model yang paling memenuhi hubungan antara himpunan atribut dan label klas dalam data masukan. Tujan dari algoritma pembelajaran adalah untuk membangun model yang sama secara umum berkemampuan baik, yaitu model yang dapat memprediksi label kelas dari record yang tidak diketahui kelas sebelumnya dengan lebih akurat [7]. 2.5 Algoritma C4.5 Algoritma data mining C4.5 merupakan salah satu algoritma yang digunakan untuk melakukan klasifikasi atau segmentasi atau pengelompokan dan bersifat prediktif. Dasar algoritma C4.5 adalah pembentukan pohon keputusan (decision tree).Cabang-cabang pohon keputusan merupakan pertanyaan klasifikasi dan daun-daunnya merupakan kelas-kelas atau segmen-segmennya.
16
Algoritma C4.5 merupakan salah satu algoritma machine learning. Dengan algoritma ini, mesin (computer) akan diberikan sekelompok data untuk dipelajari yang disebut learning dataset. Kemudian hasil dari pembelajaran selanjutnya akan digunakan untuk mengolah data-data yang baru yang disebut test dataset berupa pengelompokkan data ke dalam kelas-kelasnya. Berikut adalah uraian langkah-langkah dalam algoritma C4.5 untuk menyelesaikan kasus suatu pertandingan tenis akan dilakukan atau tidak, berdasarkan keadaan cuaca, suhu, kelembaban, dan angin. Data yang telah ada pada Tabel 2.2 Akan digunakan untuk membentuk pohon keputusan. [3] Pada Tabel 2.2 Atribut yang digunakan adalah cuaca, suhu, kelembaban, dan berangin.Setiap atribut memiliki nilai.Sedangkan kelasnya ada pada kolom Main
yaitu
kelas
“Tidak”
dan
kelas
“Ya”.Kemudian
data
tersebut
dianalisis.Dataset tersebut memiliki 14 kasus yang terdiri dari 10 “Ya” dan 4 “Tidak” pada kolom Main.
Tabel 2.2 Learning Dataset No 1 2 3 4 5 6 7 8 9
Cuaca Cerah Cerah Berawan Hujan Hujan Hujan Berawan Cerah Cerah
Suhu Panas Panas Panas Sejuk Dingin Dingin Dingin Sejuk Dingin
Kelembaban Tinggi Tinggi Tinggi Tinggi Normal Normal Normal Tinggi Normal
Berangin Salah Benar Salah Salah Salah Benar Benar Salah Salah
Main Tidak Tidak Ya Ya Ya Ya Ya Tidak Ya
17
10 11 12 13 14
Hujan Cerah Berawan Berawan Hujan
Sejuk Sejuk Sejuk Panas Sejuk
Normal Normal Tinggi Normal Tinggi
Salah Benar Benar Salah Benar
Ya Ya Ya Ya Tidak
Kemudian hitung entropi dengan rumus sebagai berikut:
Gambar 2. 1 Rumus Menghitung Entropy Keterangan: 1. S adalah himpunan (dataset) kasus 2. K adalah banyaknya partisi S 3. pj adalah probabilitas yang didapat dari Sum (Ya) dibagi Total Kasus Jadi:
Gambar 2. 2 Hasil Perhitungan Entropy Hasil dari perhitungan pada dataset dapat dilihat pada Tabel 2.3. Tabel 2.3 Hasil Perhitungan Pada Dataset Total Kasus 14
Sum (Ya) 10
Sum (Tidak) 4
Entropi Total 0.863120569
Setelah mendapatkan entropi dari keseluruhan kasus, dilakukan analisis pada setiap atribut dan nilai-nilainya dan hitung entropinya seperti yang ditampilkan pada Tabel 2.4. 18
Tabel 2.4 Analisis Atribut, Nilai Entropi dan Gain Node 1
Atribut
Nilai
Sum
Sum
Sum
Entropi
Cuaca
Berawan Hujan Cerah
(Nilai) 4 5 5
(Ya) 4 4 2
(Tidak) 0 1 3
0 0.721928095 0.970950594
Suhu
Dingin Panas Sejuk
4 4 6
4 2 4
0 2 2
0 1 0.918295834
Gain
0.258521037
0.183850925 Kelembaban
Tinggi 7 3 4 0.985228136 Normal 7 7 0 0 Tabel 2.4 Analisis Atribut (Lanjutan)
Berangin
Salah Benar
0.370506501 8 6
6 2
2 4
0.811278124 0.918295834 0.005977711
Untuk menghitung gain setiap atribut rumusnya adalah:
Gambar 2.3 Rumus Menghitung Gain Jadi:
Gambar 2.4 Hasil Menghitung Gain Dihitung pula Gain (Suhu), Gain (Kelembaban), dan Gain (Berangin). Hasilnya dapat dilihat pada Tabel 2.3.Karena nilai gain terbesar adalah Gain (Kelembaban).Maka kelembaban menjadi node akar (root node). Kemudian pada kelembaban normal, memiliki 7 kasus dan semuanya memiliki jawaban Ya
19
(Sum(Total / Sum(Ya) = 7/7 = 1). Dengan demikian kelembaban normal menjadi daun atau leaf.Dapat dilihat pada Tabel 2.3 yang selnya berwarna biru.
Gambar 2.5 Pohon Keputusan Node 1.1 (root node) Berdasarkan pembentukan pohon keputusan node 1.1 (root node), node 1.1 akan dianalisis lebih lanjut. Untuk mempermudah, Tabel 1 difilter dengan mengambil data yang memiliki Kelembaban = Tinggi, sehingga jadilah Tabel 2.5. Tabel 2.5 Data yang Memiliki Kelembaban = Tinggi No 1 2 3 4 5 6 7
Cuaca Cerah Cerah Berawan Hujan Cerah Berawan Hujan
Suhu Panas Panas Panas Sejuk Sejuk Sejuk Sejuk
Kelembaban Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi
Berangin Salah Benar Salah Salah Salah Benar Benar
Main Tidak Tidak Ya Ya Tidak Ya Tidak
Kemudian data di Tabel 2.5 dianalisis dan dihitung kembali entropi atribut Kelembaban Tinggi dan entropi setiap atribut serta gainnya sehingga hasilnya
20
Gambar 2.6 Pohon Keputusan Analisis Node 1.1.2 akan seperti data pada Tabel 2.6. Setelah itu tentukan pilih atribut yang memiliki gain tertinggi untuk dibuatkan node berikutnya. Tabel 2.6 Hasil Analisis Node 1.1.2 Kelembaban Tinggi 7
Sum(Ya) 3
Sum(Tidak) 4
Entropi 0.985228136
Tabel 2.7 Perhitungan Gain 1.1 Node 1.1
Atribut Cuaca
Nilai
Sum
Sum
Sum
Entropi
Berawan Hujan Cerah
(Nilai) 2 2 3
(Ya) 2 1 0
(Tidak) 0 1 3
0 1 0
Gain
0.69951385 Suhu
Dingin Panas Sejuk
0 3 4
0 1 2
0 2 2
0 0.918295834 1 0.02024207
Berangin
Salah Benar
4 3
2 2
2 1
1 0.918295834 0.020244207
Dari Tabel 2.7 gain tertinggi ada pada atribut Cuaca dan Nilai yang dijadikan daun atau leaf adalah Berawan dan Cerah. Maka pohon keputusan tampak seperti Gambar 2.7. Untuk menganalisis node 1.1.2, dilakukan kembali langkah-langkah yang sama seperti sebelumnya Hasilnya ditampilkan pada Tabel 2.8 dan Gambar 2.7. Tabel 2.8 Hasil Analisis Node 1.1.2 No
Cuaca
Suhu
Kelembaban
Berangin
Main 21
1 2
Hujan Hujan
Sejuk Sejuk
Tinggi Tinggi
Salah Benar
Ya Tidak
Tabel 2.9 Hasil Perhitungan Node 1.1.2 Kelembaban Tinggi
Sum(Ya)
Sum(Tidak)
Entropi
1
1
1
dan Hujan 2
Tabel 2.10 Perhitungan Gain 1.1.2 Node 1.1.2
Atribut Suhu
Nilai Dingin Panas Sejuk
Sum
Sum
Sum
Entropi
(Nilai) 0 0 2
(Ya) 0 0 1
(Tidak) 0 0 1
0 0 1
Gain
0 Berangin
Salah Benar
1 1
1 0
0 1
0 0 1
22
2.6
Gambar 2.7 Pohon Keputusan Akhir Metode Pengembangan Perangkat Lunak Prototype adalah proses pembuatan model sederhana yang mengijinkan
pengguna memiliki gambaran dasar tentang program serta melakukan pengujian awal. Proses dimulai dengan mengumpulkan kebutuhan, pengembangan dan pelanggan bertemu dan mendefinisikan keseluruhan dari perangkat lunak, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar dimana definisi lebih jauh merupakan keharusan yang kemudian dilakukan perancangan kilat, perancangan kilat berfokus pada penyajian dari aspek-aspek perangkat lunak tersebut yang akan nampak bagi pelanggan atau pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototype.Prototype tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan perangkat lunak. Iterasi terjadi pada saat prototype disetel untuk memenuhi kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik memahami apa yang harus dilakukannya. Secara ideal prototype berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak. Bila prototype yang sedang bekerja
23
dibangun, pengembang harus mempergunakan fragmen-fragmen program yang ada atau mengaplikasikan alat-alat bantu (contohnya report generation, windows manager) yang memungkinkan program bekerja secara cepat. Alur dari metode prototype digambarkan pada Gambar 2.8.
Gambar 2.8 Prototype [8] 2.7
Pemodelan Sistem Pemodelan adalah gambaran dari realita yang simpel dan dituangkan
dalam bentuk pemetaan dengan aturan tertentu. Pemodelan dapat menggunakan bentuk yang sama dengan realitas misalnya jika seorang arsitek ingin memodelkan sebuah gedung yang akan dibangun, maka dia akan memodelkannya dengan membuat sebuah maket (tiruan) arsitektur gedung yang akan dibangun. Dimana maket itu akan dibuat semirip mungkin dengan desain gedung yang akan dibangun agar arsitektur gedung yang diinginkan dapat terlihat. Seperti yang pengguna ketahui bahwa manusia akan lebih memahami suatu hal dengan menggunakan visual agar sekelompok manusia yang berkepentingan dapat mengerti bagaimanakah ide yang akan dikerjakan. Pemodelan juga banyak
24
digunakan untuk merencanakan suatu hal agar kegagalan dan risiko yang mungkin terjadi dapat diminimalisir. Pada dunia pembangunan perangkat lunak sistem informasi juga diperlukan
pemodelan.Pemodelan
perangkat
lunak
digunakan
untuk
mempermudah langkah berikutnya dari pengembangan sebuah sistem informasi sehingga lebih terencana. Seperti halnya maket, pemodelan pada pembangunan perangkat lunak digunakan untuk memvisualkan perangkat lunak yang akan dibuat. Perangkat pemodelan adalah suatu model yang digunakan untuk menguraikan
sistem
menjadi
bagian-bagian
yang
dapat
diatur
dan
mengkomunikasikan ciri konseptual dan fungsional kepada pengamat [9]. Peran perangkat pemodelan adalah sebagai berikut: 1. Komunikasi Perangkat pemodelan dapat digunakan sebagai alat komunikasi antara pemakai dengan analis sistem maupun developer dalam pengembangan sistem. 2. Eksperimentasi Pengembangan sistem bersifat “trial and error”. 3. Prediksi Model meramalkan bagaimana suatu sistem akan bekerja. Salah satu perangkat pemodelan adalah Unified Modelling Language (UML).UML muncul karena adanya kebutuhan pemodelan visual untuk 25
menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. UML hanya berfungsi untuk melakukan pemodelan. Jadi penggunaan UML tidak terbatas pada metodologi tertentu, meskipun pada kenyataannya UML paling banyak digunakan pada metodologi berorientasi objek. 1. Use Case Diagram Use case diagram merupakan pemodelan untuk kelakukan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih actor untuk mengetahui fungsi apa saja yang ada dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut actor dan use case. a. Actor merupakan orang, proses atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi meskipun simbol dari actor adalah gambar orang, akan tetapi actor belum tentu merupakan orang. b. Use case merupaan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau actor.
26
Simbol-simbol yang ada pada use case diagram dapat dilihat pada Tabel 2.11
Tabel 2.11 Simbol Pada Use Case Diagram Simbol
Nama
Deskripsi Fungsionalitas
yang
disediakan sistem sebagai unitunit Use Case
yang
sering
bertukar
pesan antar unit atau actor, biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case. Orang, proses atau sistem lain yang
berinteraksi
dengan
sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, Actor
jadi meskipun simbol dari actor adalah gambar orang, akan tetapi actor belum tentu merupakan
orang,
biasanya
dinyatakan menggunakan kata benda di awal frase nama actor. Komunikasi antar actor dan usecase Association
yang
berpartisipasi
pada use case atau use case memiliki
interaksi
dengan
actor. 27
2. Activity Diagram Activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Activity diagram menggambarkan aktivitas sistem bukan apa yang dilakukan actor. Activity diagram juga banyak digunakan untuk mendefinisikan hal-hal berikut: a. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. b. Urutan atau pengelompokan tampilan dari system atau user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan. c. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya. Simbol-simbol yang ada pada activity diagram dapat dilihat pada Tabel 2.12. Tabel 2.12 Simbol Pada Activity Diagram Simbol
Nama Status Awal
Deskripsi Status awal aktivitas sistem, sebuah
diagram
aktivitas
memiliki status awal.
28
Aktivitas yang dilakukan sistem, Activity
aktivitas
biasanya
diawali
dengan kata kerja Asosiasi percabangan dimana Decision
jika ada pilihan aktivitas lebih dari satu.
Simbol
Nama
Deskripsi Status akhir yang dilakukan
Status Akhir
sistem, sebuah diagram aktivitas memiliki sebuah status akhir. Memisahkan pelaku yang
Swimline
bertanggung
jawab
terhadap
aktivitas yang terjadi.
3. Class Diagram Class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki atribut dan metode atau operasi. a. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. b. Metode atau operasi merupakan fungsi-fungsi yang dimiliki oleh suatu kelas. Kelas-kelas yang ada pada struktur sistem dapat melakukan fungsi-fungsi sesuai dengan kebutuhan sistem. Susunan struktur kelas yang baik pada diagram kelas sebaiknya memiliki jenis-jenis kelas berikut: a. Kelas main 29
Kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan. b. Kelas yang menangani tampilan sistem Kelas yang mendefinisikan dan mengatur tampilan ke pemakai. c. Kelas yang diambil dari pendefinisian use case Kelas yang menangani fungsi-fungsi yang harus ada. Kelas ini diambil dari pendefinisian use case. d. Kelas yang diambil dari pendefinisian data Kelas yang digunakan untuk memegang atau membungkus data menjadi sebuah kesatuan yang diambil maupun akan disimpan ke basis data. Jenis-jenis tersebut juga dapat digabungkan satu sama lain sesuai dengan pertimbangan yang dianggap baik asalkan fungsi-fungsi yang sebaiknya ada pada struktur kelas tetap ada. Susunan kelas juga dapat ditambahkan kelas utilitas seperti koneksi ke basis data, membaca file teks, dan lain sebagainya sesuai kebutuhan. Dalam
mendefinisikan
metode
yang
ada
didalam
kelas
perlu
memperhatikan apa yang disebut dengan cohesion dan coupling. Cohesion adalah ukuran seberapa dekat keterkaitan instruksi didalam sebuah metode terkait satu sama lain, sedangkan coupling adalah ukuran seberapa dekat keterkaitan instruksi antara metode yang satu dengan metode yang lain dalam sebuah kelas. Sebagai aturan secara umum, maka sebuah metode yang dibuat harus memiliki
30
kadarcohesion yang kuat dan kadar coupling yang lemah. Simbol-simbol yang ada pada class diagram dapat dilihat pada Tabel 2.13. Tabel 2.13 Simbol Pada Class Diagram Simbol
Nama
Deskripsi Kelas pada struktur system
Class Relasi antar kelas dengan makna Association
umum, asosiasi biasanya juga disertai dengan multiplicity
4. Sequence Diagram Sequence Diagram menggambarkan kelakukan objek pada use case dengan mendeskripsikan waktu hidup obek dan message yang dikirimkan dan diterima antarobjek. Oleh karena itu untuk menggambar sequence diagram harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Banyaknya sequence diagram yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri. Simbol-simbol yang ada pada sequence diagram dapat dilihat pada Tabel 2.14. Tabel 2.14 Simbol Pada Sequence Diagram Simbol
Nama
Deskripsi
31
Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat. Meskipun simbol dari actor nama aktor
adalah Actor
atau
gambar
orang,
akan
tetapi belum tentu merupakan orang.
Biasanya
dinyatakan
menggunakan kata benda diawal nama aktor
frase nama actor.
Tabel 2.15 Simbol Pada Sequence Diagram (Lanjutan) Simbol
Nama Lifeline
Deskripsi Menyatakan kehidupan suatu objek.
nama objek: nama kelas
Objek
Menyatakan
objek
yang
berinteraksi pesan. Waktu Aktif
Menyatakan
objek
keadaan
aktif
dalam dan
berinteraksi pesan. Pesan tipe create
Menyatakan
suatu
objek
32
<
>
membuat objek yang lain, arah panah mengarah pada Pesan tipe send
1: masukan
objek yang dibuat. Menyatakan bahwa
suatu
objek
data,
mengirimkan
masukan, informasi ke objek lainnya,
arah
panah
mengarah pada objek yang dikirimkan.
2.8
Pengujian Perangkat Lunak Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas
perangkat lunak dan mempresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean [10]. Pentingnya pengujian perangkat lunak mengacu pada kualitas perangkat lunak yang melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan karena ketidakmampuan manusia dalam melakukan komunikasi dengan sempurna terhadap kebutuhan yang diinginkan user maka pengembangan perangkat lunak harus diiringi dengan aktivitas jaminan kualitas dengan melakukan pengujian terhadap perangkat lunak tersebut. Pada dasarnya,
pengujian
merupakan
satu
langkah
dalam
proses
rekayasa
perangkatlunak unuk mencari kesalahan yang terdapat pada perangkat lunak sebelum perangakat lunak tersebut digunakan. Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah :
33
1.
Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan.
2.
Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya.
3.
Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya. Sasaran itu berlawanan dengan pandangan yang biasanya dipegang yang
menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada kesalahan yang ditemukan.Data yang dikumpulkan pada saat pengujian dilakukan memberikan indikasi yang baik mengenai reliabilitas perangkat lunak dan beberapa menunjukkan kualitas perangkat lunak secara keseluruhan. Sebelum mengaplikasikan metode untuk mendesain test case yang efektif, perekayasa perangkat lunak harus memahami prinsip dasar yang menuntun pengujian perangkat lunak, yaitu: 1. Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan, maksudnya mengungkap kesalahan dari cacat yang meneybabkan program gagal. 2. Pengujian harus direncanakan lama sebelum pengujian itu dimulai, maksudnya semua pengujian dapat direncanakan dan dirancang sebelum semua kode dijalankan. 3. Prinsip Pareto berlaku untuk pengujian perangkat lunak, maksudnya dari 80% kesalahan yang ditemukan selama pengujian dapat ditelusuri sampai 20% dari semua modul program.
34
4. Pengujian harus mulai “dari yang kecil” dan berkembang ke pengujian “yang besar”. Selagi pengujian berlangsung maju, pengujian mengubah fokus dalam usaha menemukan kesalahan pada klaster modul yang terintegrasi dan akhirnya pada sistem. 5. Pengujian yang mendalam tidak mungkin karena tidak mungkin mengeksekusi setiap kombinasi jalur skema pengujian dikarenakan jumlah jalur permutasi untuk program menengah pun sangat besar. 6. Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independen. Dalam lingkungan yang ideal, perekayasa perangkat lunak mendesain suatu program komputer, sebuah sistem atau produk dengan testabilitas dalam pikirannya.Hal ini memungkinkan individu yang berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah.Testabilitas adalah seberapa mudah sebuah program komputer dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi lebih mudah. Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak Untuk mendapatkan kesalahan pada perangkat lunak, digunakan beberapa teknik pengujian diantaranya: 2.8.1 Pengujian White-Box White-Box Testing adalah sebuah metoda perancangan kasus uji yang menggunakan struktur kontrol dari perancangan prosedur. Pengguna metoda pengujian akan membuat software enginer dapat :
35
a. Menjamin bahwa semua jalur independen dalam sebuah modul telah dilewati paling tidak satu kali b. Memeriksa semua keputusan logika baik pada sisi sebenarnya maupun pada sisi salahnya c. Mengeksekusi semua loop pada nilai batasnya dan dalam nilai dimana dia harus beroperasi d. Menguji struktur data internal untuk menjamin validasinya.
2.8.2 Pengujian Black-Box Black-Box Testing adalah metode pengujian perangkat lunak yang menguji fungsionalitas dari aplikasi.Pengetahuan khusus dari kode aplikasi / struktur internal dan pengetahuan pemrograman pada umumnya tidak diperlukan. Cara pengujian dilakukan dengan hanya menjalankan atau mengeksekusi unit atau modul kemudian diamati apakah hasil dari unit itu sesuai dengan proses bisnis yang diinginkan. Dari sini dapat diketahui keinginan client terhadap perangkat lunak tersebut, misal client ingin tampilannya diubah atau proses penjalanan perangkat lunak tersebut agar lebih dimengerti. Ujicoba black-box berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya : 1. Fungsi-fungsi yang salah atau hilang. 2. Kesalahan interface. 3. Kesalahan dalam struktur data atau akses database eksternal. 4. Kesalahan performa.
36
5. Kesalahan inisialisasi dan terminasi. 2.9 Android Beberapa penjelasan mengenai android yaitu sebagai berikut: a.
Definisi Android Android adalah sistem operasi berbasis linux yang digunakan untuk telepon
seluler (mobile) seperti telepon pintar (smartphone) dan computer tablet (PDA).
Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri yang digunakan oleh bermacam peranti bergerak.Android kini telah menjelma menjadi sistem operasi mobile terpopuler didunia. Perkembangan Android tidak lepas dari peranan sang raksasa Google. Android pada mulanya didirikan oleh Andy Rubin, Rich Miner, Nick Sears dan Chris White pada tahun 2003 [11]. a.
Android SDK (Software Development Kit) Android SDK adalah tools API (Application Programming Interface) yang
diperlukan untuk mengembangkan aplikasi pada Platform Android menggunakan bahasa pemograman Java. Android merupakan subset perangkat lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang direlease oleh google. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mulai mengembangkan aplikas pada platform android menggunakan bahasa pemrograman java. Sebagai paltform
37
aplikasi-netral, anroid memberi anda kesempatan untuk membuat aplikasi yang kita butuhkan yang bukan merupakan bawaan handphone Atau smartphone.[12] b.
Android Studio Android Studio merupakan sebuah Integrated Development Environment
(IDE) yang bisa digunakan untuk pengembangan aplikasi Android, dan dikembangkan oleh Google, Ellie Powers. Android Studio merupakan pengembangkan dari Eclipse IDE, dan dibuat berdasarkan IDE Java populer, yaitu Intellij IDEA. Android Studio direncanakan untuk menggantikan Eclipse ke depannya sebagai IDE resmi untuk pengembangan aplikasi Android. Sebagai pengembangan dari Eclipse, Android Studio mempunyai banyak fitur-fitur baru dibandingkan dengan Eclipse IDE. Berbeda dengan Eclipse yang menggunakan Ant, Android Studio menggunakan Gradle sebagai build environment. [13] c. Arsitektur Android Arsitektur android menggambarkan komponen-komponen yang membangun sebuah aplikasi android. Berikut ini adalah gambaran arsitektur android yang dikutip dari buku “Android Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android”. Secara garis besar arsitektur Android dapat dijelaskan sebagai berikut: [14] 1.
Application dan Widgets Application dan Widgets merupakan puncak dari diagram arsitektur
android.Lapisan aplikasi ini merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pada lapisan ini terdapat aplikasi inti
38
yang dipergunakan pengguna, yaitu email, client, program SMS, kalender, peta, browser, kontak dan lain-lain. 2. ApplicationFramework Android merupakan Open Development Platform yakni developer dapat melakukan pengembangan dengan membangun aplikasi yang bagus dan inovatif. Dalam android terdapat kerangka aplikasi yang menyediakan kelaskelas yang dapat digunakan untuk mengembangkan aplikasi. Selain itu, android juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan (User Interface) dan sumber daya aplikasi. 2.10
Database
Berikut adalah beberapa penjelasan mengenai database yaitu: a.
Definisi Database Database merupakan kumpulan file-file yang mempunyai kaitan antara satu
file dengan file yang lainnya sehingga membentuk satu bangunan data untuk menginformasikan satu perusahaan, instansi dalam batasan tertentu. Model data yang dibentuk bisa berbasis objek, record atau lainnya. Perancangan model data ini sudah didukung oleh paket-paket program yang ada dalam Database Management System (DBMS). Dukungan yang diberikan adalah Data Definition Language (DDL) untuk mendifinisikan struktur data, dan Data Manipulation Language (DML) untuk pengolahan data (operator) [15]. b.
Database SQLite SQLite adalah database opensource yang ditanam pada android. SQLite
merupakan salah satu dari SQL database engine yang paling banyak digunakan sebagai Embedded database. Tidak seperti kebanyakan database SQL lainnya, 39
SQLite tidak memiliki proses server yang terpisah dan dapat membaca serta menulis secara langsung kedalam file biasa. SQLite dapat digunakan secara bebas, baik kepentingan personal maupun komersial. [16] Kelebihan dari SQLite yaitu: 1. Database dengan konfigurasi nol. Artinya tidak ada konfigurasi database untuk para developer. Ini membuatnya relatif mudah digunakan. 2. Tidak memiliki server. Tidak ada proses database SQLite yang berjalan. Pada dasarnya satu set libraries menyediakan fungsionalitas database. 3. Single-file database. Ini membuat keamanan database secara langsung. 4. Opensource. Hal ini membuat developer mudah dalam pengembangan aplikasi. Sedangakan kekurangan dari SQLite yaitu: 1. Security, karena berdasar operasi baca/tulis maka security yang dimiliki oleh SQLite hanya read dan write yang didasarkan pada security file system environment yang digunakan. 2. Reliability, untuk ukuran data yang kecil, reliability atau ketahanan database SQLite mungkin lebih baik daripada database konvensional. Tapi untuk data besar hal ini akan sulit, karena SQLite menggunakan operasi read atau write secara langsung ke file. Sehingga ketika operasi write terjadi, seluruh file akan di-lock dan menyebabkan operasi yang lain tidak bisa berjalan. Meskipun proses locking ini terjadi hanya dalam hitungan mili bahkan mungkin micro second. Tapi kalau frekuensi pengaksesan data cukup tinggi bisa jadi akan menyebabkan turunnya 40
performansi aplikasi. Dalam beberapa kasus hal ini bisa diakali dengan memecah data menjadi beberapa file yang lebih kecil.
BAB III ANALISIS DAN PERANCANGAN Berdasarkan hasil pengumpulan data yang telah dilakukan dengan berbagai metode yang telah ditentukan dari mulai wawancara, penelitian kepustakaan (landasan teori), serta penelitian langsung terhadap pakar yang dianggap berkompeten dalam permasalahan yang telah dirumuskan, menghasilkan berbagai perancangan yang sebaiknya dibuat untuk memenuhi berbagai kebutuhan. 3.1
Analisis Kebutuhan Software dan Hardware Software dan hardware yang digunakan untuk menjalankan aplikasi yang
akan dibuat ini harus memiliki spesifikasi sebagai berikut: 3.1.1 Hardware yang dibutuhkan 1.
Layar : Minimal 720 x 1280 px
2.
RAM :
Minimal 512 MB
2.1.1 Software yang dibutuhkan 1.
Operating System Android
2.
Minimum Required SDK : Android 4.4.4 (Kitkat)
41
2.2
Analisis Kebutuhan Fungsional Dalam analisis kebutuhan fungsional ini, berbagai tahapan pengumpulan
data
khususnya
dalam
wawancara
terhadap
para
pakar
yang
telah
mengaplikasikan teknik diagnose ini secara manual. Dari hasil wawancara tersebut maka munculah berbagai kebutuan fungsional sistem yang seharusnya ada di dalam aplikasi yang akan dibuat ini, dan berikut dapat dijelaskan pada Tabel 3.1. Tabel 3.1. Analisis kebutuhan fungsional No
1
2
3
4
2.3
Kode Requirement
req1
req2
req3
req4
Nama Modul
Keterangan
Login
Masuk Aplikasi dengan menggunakan Username dan Password Twitter
Menu Pilihan
Menampilkan Pilihanpilihan menu yang tersedia
Ambil Data Tweet
Mengambil data tweet sesuai dengan kata yang di inputkan
Klasifikasi Data
Menampilkan hasil data yang yang telah diklasifikasi dengan algoritma C.45
Perancangan Perancangan aplikasi ini menggunakan pendekatan berorientasi objek
dengan menggunakan metode Unified Modeling Language (UML), dan berikut ini gambarannya .
42
2.3.1 Use Case Diagram
System
Mengambil data kicauan dari twitter
Login
<>
Aktor
Mengklasifikasi data kicauan
Gambar 3.1 Use case aplikasi Mendeskripsikan kelakuan sistem dari sudut pandang pengguna, berguna untuk membantu memahami kebutuhan. Berdasarkan Gambar 3.1 tentang use case yang dirancang untuk aplikasi ini, maka ada beberapa use case yang dapat dijelaskan sebagai berikut : a.
Masuk Kedalam Aplikasi Use case ini merupakan cara untuk masuk kedalam aplikasi ini dengan
menggunakan authentifikasi dari account twitter sehingga mendapatkan izin untuk mengambil data tweet dari twitter. b.
Mengambil Data Kicauan Dari Twitter Use case ini merupakan cara untuk mengambil data kicauan dari twitter
dengan menggunakan authentifikasi account twitter yang telah dilakukan di use case sebelumnya. c.
Mengklasifikasi Data Kicauan
43
Pada use case ini kita mengklasifikasikan data yang di dapatkan dari twitter dengan menggunakan algoritma C.45 sehingga didapatkan data tweet yang terklasifikasi sebagai data sentiment atau tidak. 2.3.2 Skenerio Use Case Skenario use case digunakan untuk menjelaskan dari gambaran use case yang ada dengan menggambarkan identifkasinya dan scenario per use case. a.
Use Case Scenario Login Tabel 3.2. Tabel Use Case Scenario Login
IDENTIFIKASI No
UCS01
Nama
Login
Tujuan
Untuk masuk kedalam aplikasi dengan menggunakan akun twitter
Deskripsi
Proses pada use case ini system meminta inputan User name dan Password lalu saat akun berhasil login system menyimpan session Id User
IDENTIFIKASI Aktor
User
SKENARIO UTAMA Kondisi Awal
Tampilan menu awal aplikasi
Aksi actor
Reaksi Sistem
1. User membuka aplikasi
Aksi actor 3. User memasukan username dan
2. Meminta input username dan password Reaksi Sistem 4. Mengaunthetifikasi akun twitter
password 5. Menyimpan session id user 6. Menampilkan
hasil
pencarian
data tweet
44
7. Sukses masuk kedalam aplikasi
b. Use Case Scenario Menu Ambil Data Tabel 3.3. Tabel Use Case Scenario Menu Ambil Data IDENTIFIKASI No
UCS02
Nama
Menu Ambil Data
Tujuan
Untuk untuk mengambil data tweet
Deskripsi
Proses pada use case ini sistem akan melakukkan pengambilan data sesuai dengan key yang ingin dicari oleh user
IDENTIFIKASI Aktor
User
SKENARIO UTAMA Kondisi Awal
Tampilan menu pilihan
Aksi actor
Reaksi Sistem
1. User mengklik menu ambil
data
2. Memastikan usertelah
terautentifikasi 3. Menampilkan halaman pengambilan data
4. User memasukan key atau
data yag ingin dicari
5. Meminta data tweet sesuai key yang dicari 6. Menampilkan hasil pencarian data tweet
7. User mengklik tombol simpan
data
8. Sistem akan melakukan
processing data tweet 9. System melakukan penyimpanan kedalam database
45
10. Selesai melakikan pengambilan data
c.
Use Case Scenario Klasifikasi Tabel 3.4. Tabel Use Case Scenario Klasifikasi
IDENTIFIKASI No
UCS03
Nama
Klasifikasi
Tujuan
Untuk mengelompokan data dan menampilkan hasil klasifikasi
Deskripsi
Proses pada use case ini sistem akan melakukan penghitungan algoritma c.45 lalu memberikan hasil perhitungan
IDENTIFIKASI Aktor
User
SKENARIO UTAMA Kondisi Awal
Tampilan menu awal aplikasi
Aksi actor
Reaksi Sistem
1. User
memilih
menu
klasifikasi 4. User
menekan klasifikasi data
tombol
2. System melakukan pengecekan
data tweet yang tersimpan 3. Sistem menampilkan data tweet yang tersimpan 5. Melakukan penghitungan dengan algoritma c45 6. Lalu sistem mengklasifikasikan data sesuai dengan hasil algoritma c4.5 7. Menampilkan data tweet yang termasuk sentiment
8. Selesai melakukan klasifikasi
46
2.3.3 Deployment Diagram
Gambar 3.2 Deployment Diagram Pada gambar 3.2 device atau aplikasi menggunakan satu library atau depedencies yang bernama twitter SDK, twitter sdk tersebut menghubungkan aplikasi dengan server twitter. Di dalamnya terdapat API get tweet yang digunakan untuk mengambil data tweet. Pada aplikasi juga terdapat juga database yang berfungsi untuk menyimpan data tweet yang diambil dan di proses pada algoritma c4.5
47
2.3.4
Activity Diagram
Gambar 3.3 Activity diagram login Gambar 3.3 merupakan alur aktifitas yang dilakukkan aktor dengan sistem, dimana dalam gambar tersebut dijelaskan bagaimana tahap saat akan melakukan login. Interaksi aktor dan user digambarkan bahwa user haru memasukan username dan password untuk masuk kedalam aplikasi yang terhubung dengan twitter, dan bila sukses melakukan login system akan menyimpan session ID user.
48
Gambar 3.4 Activity diagram ambil data Gambar 3.4 merupakan alur aktifitas antara userdan system pada saat mengambil data tweet dari twitter, dimana dalam tahap ini user atau actor akan menginputkan kata sebagai key yang akan dicari di dalam data tweet, setelah itu pada saat data telah didapatkan dan user bersedia untuk menyimpan data. Data akan melalui proses preprocessing yang didalamnya memiliki tahap seperti case
49
folding, steaming, stopwords dan lain-lain. Hasil data yang telah di preprocessing tadi selanjutnya akan disimpan ke dalam database. User
Memilih menu klasifikasi
menekan tombol klasifikasi data
System
Mengecek data tweet yang tersimpan
Menampilkan data tweet yang tersimpan
melakukan penghitungan algoritma c4.5
mengklasifikasikan data sesuai dengan hasil algo
Selesai melakukan aplikasi
menampilkan data tweet yang termasuk sentimen
Gambar 3.5 Activity diagram klasifikasi Gambar 3.5 merupakan alur aktifitas antara userdan system pada saat mengklasifikasi data tweet dari twitter, dimana dalam tahap ini user akan masuk kedalam menu klasifikasi yang akan menampilkan data tweet yang telah disimpan. Selanjutnya setelah user menyetujui untuk memulai klasifikasi, system akan membuat suatu pohon keputusan dengan menggunakan metode C4.5. Setelah mendapatkan pohon keputusan maka selanjutnya tinggallah mengklasifikasi data sesuai dengan pohon klasifikasi yang terbentuk sebelumnya. Hasil dari klasifikasi
50
atau tweet yang dianggap sebagai tweet sentimen akan ditampilkan sebagai output dari proses ini. 2.3.5 Class Diagram Text peocessing Ambil Data +List data tweet +SearchService Search +Int jumlahData +SQLHelper sqlHelper +String Key +onCreat() +ambilDataTweet(Key) +TamilkanDataTweet() +SimpanData() +preprocessingData()
Menu Pilihan
+List StopwordList +StringService Search +int jumlahData +SQLHelper sqlHelper +String Key +HapusTagURL() +HapusTandaBaca() +tokenisasi() +caseFolding() +steamming() +stopword()
SQL Helper
+int pilihan menu +SQLHelper sqlHelper
+DBHandler dbHandler +File fileName
+onCreat() +importDatabase() +menuAmbildata() +MenuKlasifikasi()
+setDatabase(DBHandler) +copyDatabaseIfExist(File) +SimpanNode() +SimpanData() +getDataStopword() +getDataTweet() +getDataKeyword() +getTotalKeyword() +setKlasifikasiData() +updateKategori()
login
Algo C4.5 +List Data +SQLHelper sqlHelper +int jumlahKategori +double entropyTotal +double Gain +HitungEntropy() +HitungGain() +BuatTabelGain() +UrutkanGain() +SimanNode() +KlasifikasiSesuaiNode()
klasifikasi
+String username +String Password +String SessonID
+SQLHelper sqiHelper +Lis data wee
+onCreat() +authentifikasiData() +SimpanSession() +TampilkanMenu()
+onCrea() +amilkanData() +prosesAlgoC4.5() +setKlasifikasiData() +TampilkanHasil()
Gambar 3.6 Class diagram aplikasi Gambar 3.6 menjelaskan tentang berbagai class yang akan terdapat dalam aplikasi yang akan dibangun. Dapat dilihat terdapat tujuh buah class, yang pertama adalah Class Login yang berfungsi untuk mengauthentifikasi akun yang dipakai oleh user, dimana akun yang dipakai adalah akun twitter. Selanjutnya adalah class Menu Pilihan yang berisi tentang menu-menu yang tersedia di dalam
51
aplikasi ini, dan yang ketiga adalah Class Ambil Data yang berfungsi sebagai Class pengambilan data tweet dari twitter yang selanjutnya melalui tahap preprocessing. Pada class diagram diatas ada pula class Klasifikasi yang merupakan class inti dari aplikasi ini yang berfungsi untuk melakukan klasifikasi dari data tweet menggunakan algoritma C4.5. Lalu selanjutnya ada class SQL Helper sebagai class yang berfungsi untuk menghubungkan aplikasi dengan database, dan ada pula class Algoritma C4.5 yang berisi tentang tahapan perhitungan algoritma C45 hingga membuat pohon keputusan yang ada. Class Text processing adalah class yang berfungsi untuk memproses suatu data dengan tahapan-tahapan pemprosesan text seperti case folding, steaming dan lain-lain. 2.3.6 Sequence Diagram a. Sequence diagram untuk Login
Gambar 3.7 Sequence diagram Login Pada Gambar 3.7 dapat terlihat bahwa untuk masuk kedalam aplikasi (login) user berinteraksi dengan dua buah class yaitu class menu pilihan dan class 52
login. Pada class login terdapat satu method yaitu authetifikasiData() yang berfungsi untuk mendapat session ID dari twitter. Lalu pada class menu pilihan terdapat berbagai method salah satunya adalah importDB() yang akan import file database yang telah disediakan aplikasi b. Sequence diagram untuk ambil data
Gambar 3.8 Sequence diagram untuk ambil data. Pada Gambar 3.8 menjelaskan tentang bagaimana interaksi berbagai class saat melakukkan penambilan data dari twitter, dimana pada flownya terdapat 4 class yang digunakan yaitu menu pilihan yang menamplkan menu-menu aplikasi lalu class ambil data yang terdapat method ambilDatatTweet() yang diberikan parameter key sebagai key yang dicari. Lalu ada class Text Processing yang
53
terdapat berbagai method untuk mengolah text menjadi lebih bisa diproses. Lalu ada juga class SQL Helper yang adanya method simpanData() yang berfungsi untuk menyimpan data tweet yang dipilih ke database. c. Sequence Diagram Untuk Mengklasifikasi data
Gambar 3.9 Sequence diagram Klasifikasi Pada Gambar 3.9 dapat terlihat bahwa dalam sebuah proses pengklasifikasian data kita memerlukan 4 class yaitu menu pilihan, klasifikasi, Algoritma C4.5, dan SQL Helper. Seperti yang dijelaskan di sequence sebelumnya bahwa class menu pilihan hanya menampilkan menu yang bias dipilih, lalu SQL Helper adalah class yang menghubungkan ke dalam database baik menyimpan atau mengupdate data. Selanjtnya fokus tahap ini ada pada class Algoritma C4.5 yang memiliki berbagai method seperti hitung Entropy dan hitung Gain yang memang method inti perhitungan algoritma C4.5.
54
2.3.7 Perancangan Antarmuka a. Rancangan Antarmuka Tampilan Awal Tampilan halaman awal dapat dilihat pada Gambar 3.10.Pada tampilan ini user dapat mengklik button login.
Gambar 3.10 Mockup tampilan awal b. Rancangan Antarmuka Login Tampilan halaman login dapat dilihat pada Gambar 3.11 Pada tampilan login ini user dapat menginputkan e-mail dan password twitter yang sudah terdaftar.
55
Gambar 3.11 Mockup Login c. Rancangan Antarmuka Menu Tampilan halaman menu dapat dilihat pada Gambar 3.112. Pada tampilan menu menampilkan semua menu yang dapat di pilih pada aplikasi ini. Pertama menu ambil data, untuk mengambil data dari twitter.
Gambar 3.12 Mockup Tampilan Menu d. Rancangan antarmuka Ambil Data 56
Pada rancangan halaman ambil data dapat dilihat pada Gambar 3.13. Pada tampilan ambil data user menginputkan kata atau key yang ingin di cari lalu klik button search, ketika sudah mendapatkan data tweet klik button simpan data.
Gambar 3.13 Mockup Ambil Data
e. Rancangan antarmuka Klasifikasi Untuk rancagan antarmuka klasifikasi dapat dilihat pada Gambar 1.14. Pada halaman
klasifikasi
menampilkan
hasil
sudah
disimpan.
data
yang
57
f. Rancangan
Gambar 3.14. Mockup Klasifikasi
Antarmuka Hasil
Klasifikasi Tampilan untuk halaman hasil klasifikasi dapat dilihat pada Gambar 3.15 Pada halaman hasil klasifikasi menampilkan hasil data yang sudah yang sudah di klasifikasi sesuai dengan algoritma c.45 atau pohon keputusan yang telah terbentuk.
58
2.3.8 Analisis Preprocessing data Preprocessing dilakukan untuk menghindari kata yang kurang sempurna, gangguan pada data, dan data-data yang tidak konsisten. Berikut ini contoh tahapan text preprocessing untuk contoh tweet“@pitrazulfikar:kebangetan itu pemain, gawang udah kosong gak masuk, pemain BODOH !!!“. a. Menghapus URL URL (http://situs.com) dan email ([email protected]) dihapus dalam tahapan ini. Gambar 3.15. Mockup Hasil Klasifikasi Hasil : “@pitrazulfikar:kebangetan itu pemain, gawang udah kosong gak masuk, pemain BODOH !!!“. b. Menghapus Karakter Khusus Proses ini dilakukan dengan menghapus karakter khusus seperti hastag (#hastag), dan username (@username). Hasil :“kebangetan itu pemain, gawang udah kosong gak masuk, pemain BODOH !!!“. c. Menghapus Simbol Tahapan ini dilakukan untuk membuang simbol dan tanda baca dalam status. Hasil :“kebangetan itu pemain gawang udah kosong gak masuk pemain BODOH“. d. Tokenisasi
59
Tokenisasi yaitu tahap pemotongan string input berdasarkan kata yang menyusunnya. Hasil :“kebangetan“, “itu“, “pemain“, “gawang“, “udah“, “kosong“, “gak“, “masuk“, “pemain“, “BODOH“. e. Case Folding Proses case folding menyeragamkan bentuk huruf menjadi huruf besar atau huruf kecil. Hasil :“kebangetan“, “itu“, “pemain“, “gawang“, “udah“, “kosong“, “gak“, “masuk“, “pemain“, “bodoh“. f. Stemming Stemming adalah tahap mencari akar kata dengan menghilangkan imbuhan pada sebuah kata atau proses pemetaan dan penguraian berbagai bentuk (variants) dari suatu kata menjadi bentuk kata dasarnya. Hasil :“banget“, “itu“, “main“, “gawang“, “udah“, “kosong“, “gak“, “masuk“, “main“, “bodoh“. g. Membuang Stopword Stopword merupakan kata-kata yang tidak berpengaruh terhadap proses klasifikasi atau kosakata yang bukan merupakan ciri (kata unik) dari suatu dokumen. Misalnya “di”, “oleh”, “pada”, “sebuah”, “karena” dan lain sebagainya. Hasil :“banget“, “main“, “gawang“, “kosong“, “masuk“, “main“, “bodoh“. Setelah melewati
preprocessing maka tweet yang semula berisikan
teks“@pitrazulfikar: kebangetan itu pemain, gawang udah kosong gak masuk, 60
pemain BODOH !!!“. menjadi sekumpulan kata yaitu “banget“, “main“, “gawang“, “kosong“, “masuk“, “main“, “bodoh“. 2.3.9 Analisis Algoritma C4.5 Algoritma C4.5 merupakan salah satu algoritma yang digunakan untuk melakukan klasifikasi atau segmentasi atau pengelompokan dan bersifat prediktif. Dasar algoritma C4.5 adalah pembentukan pohon keputusan (decision tree). Cabang-cabang pohon keputusan merupakan pertanyaan klasifikasi dan daundaunnya merupakan kelas-kelas atau segmen-segmennya. Berikut ini adalah uraian langkah-langkah dalam algoritma C4.5 untuk menyelesaikan contoh kasus pengklasifikasian tweet sentiment. No
Tabel 3.5 Tabel Learning Dataset Tweet Tipe
1
Saya yakin mereka dapat meraih hasil yang maksimal
Sentimen Positif
2
Dengan belajar yang giat saya yakin akan Sentimen Positif juara kelas Tabel 3.5 Tabel Learning Dataset (Lanjutan)
No
Tweet
Tipe
3
Kejuaraan besok adalah target pencapaian di akhir sma ini
Sentimen Positif
4
Yakin pada diri sendiri menjadi kunci sukses
Sentimen Positif
5
Bukan mustahil untuk juara di olimpiade matematika itu
Sentimen Positif
6
Goglog tuh tukang ojeg jam segini belum datang juga
Sentimen Negatif
7
Tukang baso goblog, emang gue bego beli 10 ribu Cuma dapet 2
Sentimen Negatif
8
Emang susah kalo ngomong sama orang
Sentimen Negatif 61
budeg, bikin emosi bego
9
Dasar goblog udah tau hujan, malah bawa motor
Sentimen Negatif
10
Kurang ajar udah capek-capek gak dilihat Sentimen Negatif sama sekali
11
Berita tersebut langsung disiarkan televisi
Bukan Sentiment
12
Indonesia mengalami kenaikan tukar rupiah besok
Bukan Sentiment
13
Sejak kebijakan plastik belanja berbayar, penggunaan keresek plastic di BDG menurun 40%
Bukan Sentiment
14
Terimakasih udah anter aku keliling bandung, sampai ketemu lagi bulan depan
Bukan Sentiment
15
Malam ini ada aksi tim jaguar memberantas kejahatan begal di Depok
Bukan Sentiment
Tahapan pemrosesan data learning adalah tweet harus melewati tahapan text processing seperti penghilangan imbuhan, stopwords, case folding dan tahapan – tahapan lain. Berikut ini adalah hasil text processing untuk data learning diatas. Tabel 3.6 Hasil Text Processing No
Tweet
Tipe
1
raih hasil maksimal
Sentimen positif
2
ajar giat juara kelas
Sentimen positif
3
juara besok target capai sma
Sentimen positif
4
sendiri kunci sukses
Sentimen positif
5
mustahil juara olimpiade matematika
Sentimen positif
62
6
goblog tuh tukang ojeg jam segini
Sentimen Negatif
7
tukang baso goblog emang bego beli ribu dapet
Sentimen Negatif
8
emang susah ngomong orang budeg bikin Sentimen Negatif emosi bego
9
dasar goblog udah tau hujan motor
Sentimen Negatif
10
ajar udah capekcapek gak diliat
Sentimen Negatif
11
berita langsung siar televisi
Bukan Sentimen
12
indonesia alami naikan tukar rupiah besok
Bukan Sentimen
13
bijak plastik belanja bayar gunaan keresek plastik bdg turun
Bukan Sentimen
14
terima kasih udah anter keliling bandung ketemu
Bukan Sentimen
15
malam ada aksi tim jaguar antas jahat begal depok
Bukan Sentimen
Setelah data learning tersebut melewati tahapan text processing, selanjutnya kita akan membuat tabel entropy, dimana dalam tabel ini akan menjelaskan jumlah kasus dari setiap kata yang tedapat dalam data learning diatas. Tabel 3.7 Perhitungan Entropy Kata TOTAL Berita Langsung Siar Televise Indonesia
Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya
Jumlah kasus 15 1 14 1 14 1 14 1 14 1
Sentiment Sentimen Bukan positif negatif Sentimen 5 5 5 0 0 1 5 5 4 0 0 1 5 5 4 0 0 1 5 5 4 0 0 1 5 5 4 0 0 1
63
Alami Naikan Tukar Rupiah Besok Bijak Plastic Belanja Bayar Gunaan Keresek Bdg Turun Terima Kasih Udah Anter Keliling Bandung Ketemu Malam Aksi Tim
Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya
14 1 14 1 14 1 14 1 14 2 13 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1 14 3 12 1 14 1 14 1 14 1 14 1 14 2 13 1
5 0 5 0 5 0 5 0 5 1 4 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 1 4 0
5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 2 3 0 5 0 5 0 5 0 5 0 5 0 5 0
4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1
64
Jaguar Antas Begal Meraih Maksimal Ajar Giat Juara Kelas Tukang Jam Segini Baso Emang Bikin Hujan
Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tiadk Ya Tidak Ya Tiadk Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak Ya Tidak
14 1 14 1 14 1 14 1 14 1 14 2 13 1 14 3 12 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1 14
5 0 5 0 5 0 5 0 5 1 4 1 4 1 4 3 2 1 4 1 4 0 5 0 5 0 5 0 5 0 5 0 5
5 0 5 0 5 0 5 0 5 0 5 1 4 0 5 0 5 0 5 0 5 1 4 1 4 1 4 1 4 1 4 1 4
4 1 4 1 4 1 4 1 4 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5
Dari data yang tersedia diatas kita akan hitung nilai entropy dari masingmasing kata dengan rumus sebagai berikut:
Gambar 3.16 Rumus Menghitung Entropy Keterangan:
65
-
S adalah himpunan (dataset) kasus
-
K adalah banyaknya partisi S
-
adalah probabilitas yang didapat dari Sum (Ya) dibagi total kasus.
Contoh untuk perhitungan entropy total pada data learning
66
Selanjutnya kita contohkan perhitungan salah satu kata yang terdapat dalam tabel, yaitu kata berita, dimana menghasilkan
67
Gambar 3.17 Rumus Perhitungan Gain
Setelah mendapatkan semua hasil entropi, selanjutnya adalah perhitungan Gain sebagai berikut : Perhitungan salah satu gain dari kata yang terdapt dalam table
68
Tabel data yang memperlihatkan hasil perhitungan entropy dan gain Tabel 3.8 Perhitungan Gain pertama Kata TOTAL Ya Tidak Ya langsun g Tidak Ya Siar Tidak Ya televisi Tidak Ya indonesi a Tidak Ya Alami Tidak Ya naikan Tidak Ya Tukar Tidak Ya rupiah Tidak Ya Besok Tidak Ya Bijak Tidak Ya plastik Tidak Ya belanja Tidak Ya Bayar Tidak Ya gunaan Tidak Ya keresek Tidak Ya Bdg Tidak Ya Turun Tidak Ya terima Tidak Kasih Ya Berita
Jumlah Sentime Sentime kasus nt positif n negatif 15 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1 14 2 13 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1 14 1
5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 1 4 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0
5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0
Bukan Sentime n 5 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1
Entropy
Gain
0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 1 0,0852241 1,576621 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 1,577406 0 0,1127166 69
Udah Anter keliling bandun g ketemu malam Aksi Tim jaguar Antas Begal meraih maksim al Ajar Giat Juara Kelas tukang Jam
Tidak Ya Tidak Ya Tidak Ya Tidak ya tidak ya tidak ya tidak ya
14 3 12 1 14 1 14 1 14 1 14 1 14 2
5 0 5 0 5 0 5 0 5 0 5 0 5 1
5 2 3 0 5 0 5 0 5 0 5 0 5 0
4 1 4 1 4 1 4 1 4 1 4 1 4 1
tidak
13
4
5
4
ya tidak ya tidak ya tidak ya tidak ya tidak ya
1 14 1 14 1 14 1 14 1 14 1
0 5 0 5 0 5 0 5 0 5 1
0 5 0 5 0 5 0 5 0 5 0
1 4 1 4 1 4 1 4 1 4 0
tidak
14
4
5
5
ya
2
1
1
0
tiadk
13
4
4
5
ya
1
1
0
0
tidak
14
4
5
5
ya
3
3
0
0
tiadk
12
2
5
5
ya
1
1
0
0
tidak
14
4
5
5
ya
1
1
0
0
tidak
14
4
5
5
ya
1
0
1
0
tidak
14
5
4
5
1,577406 0,918295 1,554585 0 1,577406 0 1,577406 0 1,577406 0 1,577406 0 1,577406 1 1,576621 2 0 1,577406 0 1,577406 0 1,577406 0 1,577406 0 1,577406 0 1,577406 2 1 1,576621 2 0 1,577406 2 0 1,483355 7 0 1,577406 2 0 1,577406 2 0 1,577406 2
0,1576351 0,1127166 0,1127166 0,1127166 0,1127166 0,1127166 0,0852241 0,1127166 0,1127166 0,1127166 0,1127166 0,1127166 0,1127166 0,0852241 0,1127166 0,3982778 0,1127166 0,1127166 0,1127166
70
segini Baso emang Bikin Hujan
ya
1
0
1
0
tidak
14
5
4
5
ya
1
0
1
0
tidak
14
5
4
5
ya
1
0
1
0
tidak
14
5
4
5
ya
1
0
1
0
tidak
14
5
4
5
ya
1
0
1
0
tidak
14
5
4
5
0 1,577406 2 0 1,577406 2 0 1,577406 2 0 1,577406 2 0 1,577406 2
0,1127166 0,1127166 0,1127166 0,1127166 0,1127166
Dari keseluruhan data yang dihitung entropy dan gainnya, kita dapat melihat bahwa setiap kata memiliki nilai gain yang berbeda. Tahapan selanjutnya adalah mengambil gain yang tertinggi untuk dijadikan node di dalam pohon keputusan. Dilihat dari tabel diatas bahwa gain tertinggi adalah kata “JUARA” dengan nilai gain 0, 3982778 maka dibentuklah pohon keputusan sebagai berikut
Gambar 3.18 Pohon Keputusan
Pada pohon keputusan ini kata “JUARA” menjadi kata di node keputusan yang pertama, dan memiliki dua kemungkinan yaitu ‘YA’ atau “TIDAK”. Keputusan bila kata “JUARA” dalam kondisi “YA” atau terdapat dalam suatu
71
tweet maka tweet tersebut merupakan tweet sentimen karena dapat dilihat dari tabel bahwa jumlah kata ““JUARA”” saat kondisi “YA” memiliki jumlah sentimen positif sebanyak 3 sedangkan tipe lain bernilai 0. Lalu lihatlah kondisi “TIDAK” yang ternyata tidak bisa ditentukan keputusannya karena jumlah sentimen positif ada 2 tweet, sentimen negatif ada 5 tweet dan bukan sentimen ada 5 tweet sehingga harus dihitung kembali nilai entropy dan gainnya. Dapat dilihat dari diambilnya pohon keputusan yang pertama ternyata masih menghasilkan cabang yang masih belum jelas atau masih memiliki banyak kemungkinan dari berbagai tipe yang ada. Oleh karena itu kita akan melakukan perhitungan dari awal kembali namun kita akan fokuskan ke tweet yang hanya berkondisi “TIDAK” pada kata “JUARA”. Dengan mengikuti tahapan diatas seperti perhitungan entropy dan gain didapatlah tabel yang kedua untuk menentukan cabang pohon berikutnya Tabel 3.9 Perhitungan Gain kedua Kata TOTAL Berita langsun g Siar televisi indonesi a Alami
ya tida k ya tida k ya tida k ya tida k ya tida k ya
Jumlah Sentiment Sentime kasus positif n negatif 12 2 5 1 0 0
Bukan Sentimen 5 1
1.4833557 0
Entropy
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
Gain
0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34
72
naikan Tukar rupiah Besok Bijak plastik belanja Bayar gunaan keresek Bdg Turun terima Kasih Udah
tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
3
0
2
1
0,9182958
9
2
3
4
1,5304930
0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,10591 20
73
Anter keliling bandung ketemu malam Aksi Tim depok meraih Kunci sukses goblog Tuh tukang Ojeg Jam
ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
2
1
0
1
1
10
1
5
4
1,3609640
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
1
0
0
1
0
11
2
5
4
1,4949188
3
0
3
0
0
9
0
0
5
1,4355205
1
0
1
0
0
11
2
4
5
1,4949188
2
0
2
0
0
10
2
3
5
1,4854752
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0.18255 23 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,40671 53 0,11301 34 0,24545 96 0,11301 34
74
segini Baso emang Bego Beli Ribu Dapet Susah ngomom g Orang budek Bikin emosi Dasar
tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k ya tida k
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
2
0
2
0
0
10
2
3
5
1,4854752
2
0
2
0
0
10
2
3
5
1,4854752
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
1
0
1
0
0
11
2
4
5
1,4949188
0,11301 34 0,11301 34 0,11301 34 0,24545 96 0,24545 96 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34 0,11301 34
75
Selanjutnya kita akan mencari kembali nilai gain tertinggi untuk perhitungan kedua ini, dan ternyata gain tertinggi terletak pada nilai atau kata “GOBLOG” yang selanjutnya akan menjadi cabang setelah kata “JUARA” di perhitungan selanjutnya, dan pohon yang terbentuk akan menjadi seperti berikut:
Gambar 3.19 Pohon Keputusan Akhir
76
2.3.10 Flowchart Algoritma C4.5
Gambar 3.20 Flowchart Algoritma C4.5 Pada Gambar 3.20 dijelaskan bahwa flowchart algoritma C4.5 ini dimulai dari proses perhitungan entropy dan gain setelah proses perhitungan selesai lalu buat tabel perhitungan node, dari tabel itu ambil data dengan gain tertinggi untuk menentukan akar dan daun pada pohon keputusan tersebut, jika entropy dari faktor gain tertinggi nol maka proses menentukan pohon keputusan selesai tetapi apabila entropy tertinggi tidak bernilai nol maka buat pohon keputusan node adalah kategori dan menghapus kategori dari data yang akan diproses lalu kembali ke tahap dimana memulai proses perhitungan entropy dan gain.
77
2.3.11
Flowchart Perhitungan Entropy dan Gain
Gambar 3.21 Flowchart Perhitungan Entropy dan Gain Pada Gambar 3.21 dijelaskan bahwa flowchart perhitungan entropy dan gain ini dimulai dari mengambil sample data yang tersedia lalu seluruh sample telah dihitung nilai gainnya lalu menghitung entropy total setelah itu menghitung gain untuk seluruh kategori dan proses perhitungan entropy dan gain selesai tetapi apabila untuk seluruh sample belum dihitung nilai gainnya maka kelompokan sample berdasarkan faktor lalu menghitung kuantitas faktor yang telah dikelompokan setelah itu menghitung entropy faktor dari kategori apabila seluruh faktor belum dihitung entropynya maka kembali keproses menghitung kuantitas faktor tetapi apabila seluruh faktor telah dihitung entropynya lalu kembali ke proses awal yaitu mengambil sample data yang tersedia.
78
BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1
Construction Setelah melewati tahapan inception dan elaboration selanjutnya tahapan
construction. Pada tahap construction dilakukan implementasi yang merupakan tahap dimana perangkat lunak yang telah dirancang dan dibangun lalu diuji kelayakannya agar terwujudnya perangkat lunak yang telah dirancang. 4.1.1 Batasan Implementasi Batasan implementasi untuk aplikasi klasifikasi sentimen pada kicauan twitter secara garis besar hanya mengelompokan kata yang mengandung sentimen. 4.1.2 Implementasi Perangkat Lunak (Software) Perangkat lunak yang digunakan untuk pembuatan aplikasi klasifikasi sentimen pada kicauan twitter adalah sebagai berikut: a. Sistem Operasi Windows 7 sebagai sistem operasi. b. StarUML versi 5.0 sebagai perancangan aplikasi. c. Software Android Studio. d. SQLite Database Browser 2.0 b1 sebagai basis data. e. Balsamiq Mockups 3.0 sebagai pembuatan mockup. 4.1.3 Implementasi Perangkat Keras (Hardware) Perangkat lunak saja belum cukup untuk mengimplementasikan Aplikasi yang dibuat dengan software Android Studio dijalankan pada sebuah PC. Adapun perangkat keras yang digunakan adalah sebagai berikut:
79
a. Processor Intel(R) Pentium(R) CPU 2020M @ 2.40GHz b. RAM 2GB c. Hard Drive 450 GB d. Smartphone Android Versi 4.4.4 (Kitkat) 4.1.4 Implementasi Basis Data Tahap implementasi database pada aplikasi klasifikasi sentimen pada kicauan twitter digunakan SQLiteBrowser sebagai pengolahan database, karena database tersebut tidak memiliki proses server yang terpisah, ukurannya relatif kecil dan dapat membaca serta menulis langsung kedalam file biasa. Berikut ini adalah tabel yang digunakan pada aplikasi yang dibuat: a. Implementasi Tabel Buang Kata Adapun implementasi tabel buang kata sebagai berikut:
Gambar 4. 1 Implementasi Tabel buang kata Tabel buang_kata digunakan untuk proses Stemming pada proses feature selection, yang berisi dengan daftar kata-kata yang akan dibuang pada saat proses klasifikasi berlangsung. b. Implementasi Tabel Keyword Adapun implementasi tabel keyword sebagai berikut:
Gambar 4. 2 Implementasi Tabel keyword
80
Tabel keyword ini digunakan untuk penyimpanan data keyword semua kategori yang akan digunakan pada proses klasifikasi, karena pada proses pencarian akan memerlukan sebuah kata keyword untuk melakukan proses klasifikasi. c. Implementasi Tabel data Tabel ini digunakan untuk menyimpan data hasil dari pencarian, yang telah di preprossesing.. Adapun implementasi table data sebagai berikut:
Gambar 4. 3 Implementasi Tabel Data 4.1.5 Implementasi Antarmuka Implementasi antarmuka dibuat berdasarkan aplikasi klasifikasi sentimen pada kicauan twitter yang sudah dibangun, berikut adalah beberapa tampilan implementasi antarmuka: a. Halaman Awal Tampilan halaman awal dapat dilihat pada Gambar 4.4. Pada tampilan ini user dapat mengklik button login.
81
Gambar 4. 4 Halaman Awal b. Halaman Login Tampilan halaman login dapat dilihat pada Gambar 4.5. Pada tampilan login ini user dapat menginputkan email dan password twitter yang sudah terdaftar.
82
Gambar 4.5. Tampilan login c. Halaman Menu Tampilan halaman menu dapat dilihat pada Gambar 4.6. Pada tampilan menu menampilkan semua menu yang dapat di pilih pada aplikasi ini. Pertama menu ambil data, untuk mengambil data dari twitter.
Gambar 4.6 Halaman Menu d. Halaman Ambil Data Tampilan halaman ambil data dapat dilihat pada Gambar 4.7. Pada tampilan ambil data user menginputkan kata atau key yang ingin di cari lalu klik button search, ketika sudah mendapatkan data tweet klik button simpan data.
83
Gambar 4.7 Halaman Ambil Data
e. Halaman Klasifikasi Tampilan untuk halaman klasifikasi dapat dilihat pada Gambar 4.8. Pada halaman klasifikasi menampilkan hasil data yang sudah disimpan. Data ini sudah diproses.
Gambar 4.8 Halaman Klasifikasi 84
f. Halaman Hasil Klasifikasi Tampilan untuk halaman hasil klasifikasi dapat dilihat pada Gambar 4.9. Pada halaman hasil klasifikasi menampilkan hasil data yang sudah yang sudah di klasifikasi sesuai dengan algoritma c.45 atau pohon keputusan yang telah terbentuk.
Gambar 4. 9 Halaman Hasil Klasifikasi
85
4.2
Implementasi Tahap preprocessing
Gambar 4.10 Implementasi Tahapan preproccesing Pada source code yang ditampilkan diatas dapat dilihat bahwa class Text Processing ini memiliki beberapa bagian yang berfungsi melakukan tahap-tahap preprocessing sesuai flow chart yang dijelaskan di bab sebelumnya. Dapat dilihat
86
tahap-tahap tersbut berurutan dari penghilangan URL dan tag, lalu penhilangan tanda baca dan digit, lalu tahapan case folding atau menyeragamkan besar kecilnya huruf. Setelah itu terdapat tahapan steaming yang menghilangkan imbuhan dan juga tahapan stopword yang berfungsi menghilangkan kata-kata tidak penting yang tidak mempengaruhi hasil klasifikasi. 4.2.1 Implementasi Algoritma C4.5
Gambar 4.11 Tahapan Algoritma C4.5
87
Pada gambar atau screenshoot source code algoritma C4.5 diatas bias dilihat bahwa tahapan-tahapan algoritma C45 dari perhitungan entropy, perhitungan gain hingga pembuatan pohon keputusna telah dilakukan sesuai dengan flow chart algoritma C45 yang harus dilakukan. Hasil dari perhitungan algoritma C45 ini yang berupa pohon keputusan untuk pengklasifikasian langsung disimpan didalam database agar dapat dipakai untuk pengklasifikasian data twitter di tahapan selanjutnya.
Gambar 4.12 Implementasi Algoritma C4.5 Tampilan source code diatas ini menjelaskan tentang bagaimana tahapan sebuah pengklasifikasian data dimana pada tahap sebelumnya kita telah menyimpan suatu pohon keputusan yang didapatkan algoritma C4.5 ke dalam database. Pada tahap ini terlihat bahwa aplikasi membaca node yang telah dibentuk lalu mengklasifikasikan terhadp data twitter yang telah di preprocessing
88
sebelumnya sehingga kata yang dicocokkan akan lebih optimal. Pada tahap ini data twitter yang sbelumnya di inisialisasi sebagai tipe data non sentiment akan diupdate tipe kategorinya menjadi sentiment bila termasuk kedalam pohon keputusan.
4.3 Pengujian Black Box Pada tahap ini merupakan kelanjutan dari tahap implementasi yaitu melakukan pengujian terhadap aplikasi yang dibangun. Pengujian kali ini akan menggunakan black box yang berfokus pada persyaratan fungsional aplikasi. Pengujian black box berusaha menemukan kesalahan dalam kategori sebagai berikut: a. Fungsi-fungsi yang tidak benar atau hilang. b. Kesalahan interface. c. Kesalahan dalam struktur data atau database. d. Kesalahan kinerja. Berikut ini adalah hasil pengujian aplikasi berdasarkan spesifikasi yang didefinisikan pada proses analisis dan implementasi. Pengujian black box untuk aplikasi klasifikasi yang dilakukan berdasarkan usecase dapat dilihat padaTabel 4.1 berikut: Tabel 4.1 Pengujian Black Box No
Kode
Skenario
1
UCS01
Login
2
UCS02
Mengambil Data Tweet
Sukses Gagal Keterangan User masuk kedalam aplikasi dengan menginputkan username dan password account twitter. Data twitter dapat diambil dan disimpan ke dalam 89
3
UCS03
Menampilkan Klasifikasi
Hasil
database, dimana pencarian dapat disesuaikan dengan kata yang diinput. Data yang telah tersimpan di saat pengambilan data akan diklasifikasikan dengen algoritma C45 lalu ditampilkan hasilnya
4.3.1 Pengujian Hasil Klasifikasi Pengujian
ini
dilakukan
untuk
mendapatkan
hasil
keakuratan
pengklasifikasian aplikasi dan membandingkannya dengan hasil klasifikasi dari pengklasifikasian secara pembacaan manual. Tabel 4.2 Hasil Klasifikasi Hasil Klasifikasi Aplikasi NO 1 2 3 4 5 6 7 8 9 10 11 12
Isi
Kategori Sentimen Tawuran Tidak
Syukuran Wisuda di Kafe Malah Berakhir https://t.co/WkChRovN6s Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/p3gqc3h3rI Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/XpHXDhyAtO Ehh bodoh kalo tulisan mah smua juga bias bikin... mana fakta gambarnya punya gak ??? makanya sekolah yg bener jgn tawuran trs @DelSatrio Ya iya kl jalan rame2 takut tawuran. https://t.co/MdIG50S7Q5 bangga... adduh sekolah dulu yah makin ketaker otak lu begonya gak nahan Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/NbB8qctrGY Siswa Terlibat Tawuran, Polsek Gapura Sumenep Lakukan ... - Portal Madura (Siarana https://t.co/5czrThxxYh #Sumenep Tawuran itu yg sopan, lempar bunga misalnya Tribun: Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/8pLKtlV6Ek #NewsToday #Ponorogo Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/81CtAnl8AF #TuitIndonesia Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan #Indonesia
Tidak Tidak Ya Tidak Ya Tidak Tidak Tidak Tidak Tidak Tidak
90
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#Tuit //itu member grup apa mau tawuran Masa gara gara tim sepak bola sekolah kalah trus tawuran satu lawan satu trus dia kalah, eh dibunuh dihanyutin di sungai anjer..... RT @netmediatama: Aksi penangkapan pelaku tawuran antar warga oleh Tim Jaguar, malam ini di @86netmedia pukul 21.30 wib. #siap86 https://t @yeojaetc @_jsomii @strwbrly @SISTAR199O @jastindb @krystcly @redyeuringa papa dah bias tawuran : )) .nga @AldinoDwibnyakkriminal, tawuran, tonjok tonjokan, pembunuhan dikarenakan banyaknya orang yng gak bandarokok. Alias rokoknjaluk. RT @persispedia: Karna Suporter Tak Melulu Soal Tawuran, Tapi Juga Bisa Berkarya ! SURAKARTA LETS UNITE! https://t.co/fTGNFV2602 RT @CatatanPelajarJ: Generasi 90/2000 mreka trjebak dlm pusaran tawuran pelajar! Hari ini di era yg brbeda, spertiny jawabanny pun sama! Htae Siswa Terlibat Tawuran, Polsek Gapura Sumenep Lakukan ... - Portal Madura (Siarana https://t.co/xy4DMYj24a #Sumenep TK disodomi, SD dipukulin guru, SMP-SMA tawuran, kuliah dianiaya senior sampe mati, indahnya belajar di Indonesia.. Ger itu yg dipake anak anak tawuran yak https://t.co/NtU5vkppsU Gua sih ga takut tawuran https://t.co/0Pwx3fKF9P Blm min soalnya tawuran mlulu RT @PES_ID: AFC Champions League kembali berlisensi di #PES2017 sob.https://t.co/OvVAhEJcfn Pasca Tawuran, Polisi Lakukan Pembinaan di SMAN Gapura Sumenep https://t.co/ObM9knF8rK lewat @SorotPublik Siswa Terlibat Tawuran, Polsek Gapura Sumenep Lakukan ... Portal Madura (Siarana https://t.co/M3X0DhilBK #Sumenep Arep tawuran😄 https://t.co/uESeuRRWz5 Kayak mau tawuran aja" https://t.co/iKa2L37nWr Cegah Tawuran Antar Kelompok Pemuda, Kapolsek Kedewan Bojonegoro Beri Imbauan Khusus - https://t.co/2ckXbFSFTx https://t.co/iVllZkanxi Di path dong, ada tawuran antar cewek di komennya salah satu pihak cewek, rebutan cowok. Bangke abis.
Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak
Hasil Klasifikasian Manual No 1 2 3
Isi Syukuran Wisuda di Kafe Malah Berakhir Tawuran https://t.co/WkChRovN6s Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/p3gqc3h3rI Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti
Kategori Sentimen Tidak Tidak Tidak
91
4
Pemalsuan Umur Diterima Kekejaksaan https://t.co/XpHXDhyAtO Ehh bodoh kalo tulisan mah smua juga bias bikin... mana fakta gambarnya punya gak ??? makanya sekolah yg bener jgn tawuran trs @DelSatrio
Ya
92
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Ya iya kl jalan rame2 takut tawuran. https://t.co/MdIG50S7Q5 bangga... adduh sekolah dulu yah makin ketaker otak lu begonya gak nahan Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/NbB8qctrGY Siswa Terlibat Tawuran, Polsek Gapura Sumenep Lakukan ... Portal Madura (Siaran… https://t.co/5czrThxxYh #Sumenep Tawuran itu yg sopan, lempar bunga misalnya Tribun: Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/8pLKtlV6Ek #NewsToday #Ponorogo Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan https://t.co/81CtAnl8AF #TuitIndonesia Terdakwa Pelaku Tawuran Bebas: Tersangka dan Barang Bukti Pemalsuan Umur Diterima Kekejaksaan #Indonesia #Tuit //itu member grup apa mau tawuran Masa gara gara tim sepak bola sekolah kalah trus tawuran satu lawan satu trus dia kalah, eh dibunuh dihanyutin di sungai anjer..... RT @netmediatama: Aksi penangkapan pelaku tawuran antar warga oleh Tim Jaguar, malam ini di @86netmedia pukul 21.30 wib. #siap86 https:// @yeojaetc @_jsomii @strwbrly @SISTAR199O @jastindb @krystcly @redyeuringa papa dah bias tawuran : )) .nga
Tidak Ya
@AldinoDwibnyakkriminal, tawuran, tonjok tonjokan, pembunuhan dikarenakan banyaknya orang yng gak bandarokok. Alias rokoknjaluk. RT @persispedia: Karna Suporter Tak Melulu Soal Tawuran, Tapi Juga Bisa Berkarya ! SURAKARTA LETS UNITE! https://t.co/fTGNFV2602 RT @CatatanPelajarJ: Generasi 90/2000 mreka trjebak dlm pusaran tawuran pelajar! Hari ini di era yg brbeda, spertiny jawabanny pun sama! Htae Siswa Terlibat Tawuran, Polsek Gapura Sumenep Lakukan ... Portal Madura (Siaranae https://t.co/xy4DMYj24a #Sumenep TK disodomi, SD dipukulin guru, SMP-SMA tawuran, kuliah dianiaya senior sampe mati, indahnya belajar di Indonesia.. Ger itu yg dipake anak anak tawuran yak https://t.co/NtU5vkppsU Gua sih ga takut tawuran https://t.co/0Pwx3fKF9P Blm min soalnya tawuran mlulu RT @PES_ID: AFC Champions League kembali berlisensi di #PES2017 sob.https://t.co/OvVAhEJcfn Pasca Tawuran, Polisi Lakukan Pembinaan di SMAN Gapura Sumenep https://t.co/ObM9knF8rK lewat @SorotPublik Siswa Terlibat Tawuran, Polsek Gapura Sumenep Lakukan ... Portal Madura (Siaranae https://t.co/M3X0DhilBK #Sumenep Arep tawuran😄 https://t.co/uESeuRRWz5 Kayak mau tawuran aja" https://t.co/iKa2L37nWr Cegah Tawuran Antar Kelompok Pemuda, Kapolsek Kedewan Bojonegoro Beri Imbauan Khusus - https://t.co/2ckXbFSFTx https://t.co/iVllZkanxi Di path dong, ada tawuran antar cewek di komennya salah satu pihak cewek, rebutan cowok. Bangke abis.
Tidak
Tidak Tidak Tidak Tidak Tidak Tidak Tidak Ya Tidak Tidak
Tidak Tidak Tidak Ya Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak 93
Ya
Tabel diatas merupakan data yang didapatkan dari hasil pengklasifikasian data twitter yang telah didapatkan dari suatu pencarian berdasarkan key “tawuran”, dari 30 data diatas dapat dilihat klasifikasi aplikasi menunjukan bahwa adanya tweet sentiment berjumlah 2 tweet. Penilaian data twitter klasifikasi secara manual menghasilkan total data 5 yang terklasifikasi sebagai tweet sentiment. Dengan didapatnya dua perbedaan hasil ini, maka selanjutnya kita dapat menentukan seberapa akuratnya aplikasi ini dalam menentukan klasifikasi data dengan menggunakan rumus sebagai berikut.
Dengan diperolehnya angka akurasi ini, aplikasi pengklasifikasian data sentiment dengan menggunakan algoritma c4.5 ini dinilai cukup membantu dan dapat memudahkan user dalam pengklasifikasian data tweet. BAB V PENUTUP 5.1
Kesimpulan Dari pembuatan aplikasi klasifikasi sentimen pada kicauan Twitter
menggunakan algoritma C4.5 ini dapat disimpulkan bahwa:
94
a.
Dengan adanya aplikasi ini membuktikan bahwa pengklasifikasian data tweet dapat menggunakan algoritma c4.5 sebagai penentu pohon keputusan klasifikasi.
b.
Dalam adanya hasil pengujian akurasi aplikasi ini dianggap mampu membantu user dalam mengelompokan data menjadi berbagai kategori (sentiment).
c.
Algoritma c4.5 dinilai kurang cocok dalam cara pengklasifikasian data twitter dikarenakan proses algoritma c4.5 harus memiliki berbagai faktor untuk mendapatkan hasil yang tepat, namun pada pengelompokan data twitter ini hanya di pengaruhi dari faktor pendekatan kata atau keyword
5.2
Saran
a.
Untuk menyempurnakan proses klasifikasi sebaiknya algoritma c4.5 dilanjutkan dengan algoritma pengklasifikasian yang lain yang lebih cocok untuk data seperti twitter, salah satu contohnya adalah algoritma KNN.
b.
Data twitter sebagai data pengujian seharusnya dapat difilter berdasarkan 1 kategori tertentu. Contohnya data difilter berdasarkan bahasa Indonesia sehingga hasil teks prosessing yang di dapatkan dapat maksimal.
95