Optimasi Akurasi Analisis Sentimen Pada Posting Twitter Menggunakan Metode Naive Bayes dan Stemming

OPTIMASI AKURASI ANALISIS SENTIMEN PADA
POSTING TWITTER MENGGUNAKAN METODE NAIVE
BAYES DAN STEMMING
SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ZAQISYAH
10107346

PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
2014

DAFTAR ISI
ABSTRAK........................................................................................................... i
ABSTRACT......................................................................................................... ii
KATA PENGANTAR ....................................................................................... iii
DAFTAR ISI ...................................................................................................... v

DAFTAR GAMBAR ....................................................................................... viii
DAFTAR TABEL ............................................................................................. ix
DAFTAR SIMBOL ........................................................................................... xi
DAFTAR LAMPIRAN .................................................................................... xv
BAB 1 PENDAHULUAN................................................................................... 1
1.1

Latar Belakang ....................................................................................... 1

1.2

Rumusan Masalah .................................................................................. 2

1.3

Maksud dan tujuan ................................................................................. 2

1.4

Batasan masalah ..................................................................................... 2


1.5

Metodologi penelitian............................................................................. 3

1.6

Sistematika penulisan ............................................................................. 4

BAB 2 TINJAUAN PUSTAKA ....................................................................... 5
2.1

Analisis sentimen ................................................................................... 5

2.2

Review Literatur ..................................................................................... 5

2.3


Dokumen Pelatihan ................................................................................ 6

2.4

Preprocessing text .................................................................................. 6

2.4.1

Lexical Analysis of The Text ................................................................... 7

2.4.1.1 Case folding ........................................................................................... 7
2.4.1.2 Tokenizing .............................................................................................. 7
2.4.2

Stemming ............................................................................................... 8

2.4.3

Penghapusan Stopwords ....................................................................... 12


2.5

Klasifikasi Dokumen ............................................................................ 12

2.6

Naive Bayes.......................................................................................... 12

2.7

Evaluasi ............................................................................................... 15

2.7.1

Accuracy and Error Rate...................................................................... 15

2.8

Konsep Dasar Pemrograman Objek ...................................................... 16


BAB 3 ANALISIS MASALAH DAN PERANCANGAN ............................. 21
3.1

State of the Art ..................................................................................... 21

v

3.2

Analisis Masalah .................................................................................. 21

3.3

Arsitektur Sistem.................................................................................. 21

3.4

Analisis Data Masukan ......................................................................... 23

3.5


Praproses dokumen .............................................................................. 24

3.5.1

Dokumen input..................................................................................... 24

3.5.2

Case folding ......................................................................................... 24

3.5.3

Tokenizing ............................................................................................ 26

3.5.4

Stemming ............................................................................................. 28

3.5.5


Penghapusan Stopwords ....................................................................... 31

3.6

Analisis Algoritma ............................................................................... 34

3.7

Evaluasi Akurasi .................................................................................. 39

3.8

Analisa kebutuhan non fungsionalitas................................................... 39

3.8.1

Analisa Kebutuhan Perangkat Lunak .................................................... 40

3.8.2


Analisa kebutuhan perangkat keras....................................................... 40

3.9

Analisis kebutuhan fungsional .............................................................. 40

3.9.1

Use Case .............................................................................................. 40

3.9.1.1 Definisi Use Case ................................................................................. 42
3.9.1.2 Skenario Use Case ............................................................................... 42
3.9.2

Class diagram ...................................................................................... 45

3.9.3

Activity Diagram .................................................................................. 46


3.9.4

Sequence Diagram ............................................................................... 47

3.9.5

Perancangan Antarmuka Perangkat Lunak............................................ 52

BAB 4 IMPLEMENTASI DAN PENGUJIAN ............................................. 53
4.1

Implementasi Sistem ............................................................................ 53

4.1.1

Implementasi Perangkat Keras ............................................................. 53

4.1.2


Implementasi Perangkat Lunak............................................................. 53

4.2

Implementasi kelas pada sistem ............................................................ 53

4.2.1

Implementasi Kelas BayesFrame Tokenizing ........................................ 53

4.2.2

Implementasi BayesFrame Case Folding .............................................. 54

4.2.3

Implementasi Kelas BayesFrame potongan kode stemming .................. 54

4.2.4


Implementasi Kelas BayesFrame potongan kode Stopwords ................. 54

4.2.5

Implementasi kelas BayesClassifier ...................................................... 55

4.3

Implementasi Sistem ............................................................................ 56

4.3.1

Persiapan data pelatihan ....................................................................... 56

vi

4.3.2

Praproses Case folding ......................................................................... 57

4.3.3

Praproses Tokenizing ............................................................................ 58

4.3.4

Implementasi Praproses Stemming........................................................ 61

4.3.5

Implementasi Praproses Stopwords....................................................... 63

4.3.6

Implementasi Data uji .......................................................................... 66

4.3.7

Implementasi Klasifikasi Naive Bayes .................................................. 67

4.4

Pengujian Sistem .................................................................................. 67

4.4.1

Skenario Pengujian Proporsi Dokumen ................................................ 68

4.4.2

Pengujian Alpha ................................................................................... 69

4.4.2.1 Skenario Pengujian Aplikasi................................................................. 69
4.4.2.2 Kasus dan Hasil Pengujian Black Box................................................... 70
4.4.2.3 Kesimpulan pengujian Alpha................................................................ 73
BAB 5 Kesimpulan dan Saran ....................................................................... 75
5.1

Kesimpulan .......................................................................................... 75

5.2

Saran .................................................................................................. 75

DAFTAR PUSTAKA ....................................................................................... 77

vii

DAFTAR PUSTAKA
[1]

Domingos Pedro. On the Optimality of the Simple Bayesian Classifier
under Zero One Loss. California: Department of Information and
Computer Science University of California Irvine, 2011

[2]

Rozi Fahrur Imam, dkk. Implementasi Opinion Mining (Analisis Sentimen)
untuk Ekstraksi Data Opini Publik pada Perguruan Tinggi. Electrical
Power Electronic Comunication Control Information Seminar, Vol. 6(No
1), 2012.

[3]

Samodra Joko, dkk. Klasifikasi Dokumen teks berbahasa indonesia
dengan Menggunakan Naive Bayes. Seminar Nasional Electrical,
Informatics and it’s Educations. 2009.

[4]

Wibisono Yudi. Klasifikasi Berita Berbahasa Indonesia menggunakan
Naïve Bayes Classifier. FPMIPA UPI, 2013

[5]

Hamzah,

Amir.

Klasifikasi

Teks

dengan

Naive

Bayes

untuk

Pengelompokkan Teks Berita dan Abstract Akademis. Prosiding Seminar
Nasional Aplikasi Sains & Teknologi (SNAST) Periode III. 2012.
Prosiding Seminar Nasional Aplikasi Sains & Teknologi (SNAST) Periode
III. 2012
[6]

Baeza Yates, dkk. Modern Information Retrieval. New york: AddisionWesley, 1999

[7]

Mitchell M. Tom : Machine Learning, Mc-Graw-Hill, 1997

[8]

Khodra, Leylia Masayu, dkk. Clustering Berita Berbahasa Indonesia,
Bandung: KK Informatika Sekolah Teknik Elektro dan Informatika ITB,
2005

[9]

Adriani Mirna, Nazief Bobby. Approach to Stemming Algorithm for
Bahasa Indonesia. Depok: Internal Publication. Fakultas Komputer
Universitas Indonesia. 1996.

77

[10]

Devi Nirmala, dkk. Sentiment Analysis and Classification Based On
Textual Reviews. Information Communication and Embedded Systems.
2013

[11]

Levitin Anany. Introduction The Design and Analysis of Algorithms.
Addison-Wesley, 2011

[12]

B.sakur, Stendy. PHP5 Pemrograman berorientasi objek Konsep &
Implementasi. Yogyakarta: Andi. 2010

[13]

Widodo, dkk. MenggunakanUML. Informatika. 2011

78

KATA PENGANTAR
Assalamu’alaikum Wr. Wb.,
Alhamdulillahirabbil ‘alamin, segala puji dan syukur penulis panjatkan ke
hadirat sang Maha Pintar Allah SWT, karena dengan izin-Nya dan setitik ilmu
pengetahuan yang dipinjamkan kepada mahluk-Nya, penulis dapat menyelesaikan
laporan tugas akhir ini.
Laporan tugas akhir/skripsi dengan judul “OPTIMASI AKURASI
ANALISIS SENTIMEN PADA POSTING TWITTER MENGGUNAKAN
METODE NAIVE BAYES DAN STEMMING” ini disusun guna memenuhi salah
satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi
Teknik Informatika, Universitas Komputer Indonesia. Selama menulis laporan
tugas akhir ini, penulis telah mendapatkan banyak sekali bimbingan dan bantuan
dari berbagai pihak yang telah dengan segenap hati dan keikhlasan yang penuh
membantu dan membimbing penulis dalam menyelesaikan laporan ini. Dengan
kesadaran hati, penulis ucapkan terima kasih kepada :
1.

Ayahanda dan Ibunda, dukungan lahir maupun batin, beserta do’anya
senantiasa mengiri setiap perjalanan hidupku.

2.

Dr. Ir. Eddy Soeryanto Soegoto, M.Sc., selaku Rektor Universitas Komputer
Indonesia.

3.

Dekan Prof. Dr. H. Denny Kurniadie, Ir., M.Sc., selaku Dekan Fakultas
Teknik dan Ilmu Komputer Universitas Komputer Indonesia

4.

Pak Alif Finandhita, S.Kom. sebagai dosen pembimbing terima kasih telah
banyak meluangkan waktu untuk memberikan bimbingan, saran dan
nasehatnya selama penyusunan skripsi ini.

5.

Ibu Ednawati Rainarli, S.Si., M.Si. sebagai penguji yang telah banyak
memberikan saran, arahan dan bimbingan kepada penulis.

iii

6.

Pak Adam Mukharil Bachtiar, S.Kom., M.T. sebagai penguji ketiga yang
telah memberikan saran saat sidang skripsi

7.

Bapak dan Ibu dosen serta seluruh staf pegawai jurusan Teknik Informatika,
UNIKOM Bandung yang telah banyak membantu penulis.

8.

Sahabat-sahabatku. Terima kasih telah menemani dalam suka dan duka
kepada penulis serta semangat yang diberikan selama perjalanan
penyelesaian skripsi ini.

9.

Teman-teman di jurusan teknik Informatika UNIKOM angkatan 2007 dan
2009, yang telah sama-sama melakukan perkuliahan dan skripsi di
UNIKOM, semoga kita selalu menjadi orang yang sukses.

10.

Semua pihak yang turut memberikan dukungan dalam penulisan skripsi ini
yang tidak bisa disebutkan satu persatu.
Penulis sadar bahwa dalam penulisan skripsi ini masih terdapat banyak

kekurangan baik dari segi teknik penyajian penulisan, maupun materi penulisan
mengingat keterbatasan ilmu yang dimiliki penulis. Oleh karena itu, penulis
sangat mengharapkan segala bentuk saran dan kritik dari semua pihak demi
penyempurnaan skripsi ini. Akhir kata, semoga Allah SWT senantiasa
melimpahkan karunia-Nya dan membalas segala amal budi serta kebaikan pihakpihak yang telah membantu penulis dalam penyusunan laporan ini dan semoga
tulisan ini dapat memberikan manfaat bagi pihak-pihak yang membutuhkan.

Bandung, Agustus 2013

Penulis

iv

BAB 1
PENDAHULUAN
1.1

Latar Belakang
Analisis sentimen dilakukan untuk melihat pendapat atau kecenderungan

opini terhadap sebuah masalah atau objek oleh seseorang, apakah cenderung
berpandangan atau beropini negatif atau positif. Salah satu contoh penggunaan
analisis sentimen dalam dunia nyata adalah identifikasi opini publik terhadap
kandidat

capres.

Akibatnya

timbul

kebutuhan

untuk

mengatur

dan

mengelompokkan opini berdasarkan sentimennya agar seseorang dapat mencari
dan menilai kualitas kandidat capres dari opini publik, akan tetapi jika
pengelompokkan berita dilakukan secara manual memakan waktu yang lama dan
mahal maka dari itu diperlukan klasifikasi dokumen.
Klasifikasi

dokumen

secara

otomatis

sekiranya

diperlukan

untuk

mengurangi biaya dan mempercepat pengaturan informasi. Salah satu metode
yang dapat digunakan dalam pengklasifikasian yaitu Naive Bayes. Naive Bayes
merupakan metode klasifikasi dengan tingkat keakuratan tinggi dan penghitungan
yang sederhana. Metode ini mengasumsikan kemunculan suatu kata tidak
mempengaruhi kemunculan kata yang lain. Walaupun asumsi ini melanggar
aturan disetiap bahasa, asumsi ini tidak berpengaruh besar terhadap tingkat
keakuratan metode ini [1].
Pada metode Naive Bayes yang menjadi masalah adalah keberadaan kata
berperan penting pada proses klasifikasi. Salah satu faktor yang mempengaruhi
keberadaan kata yaitu stemming. Dengan stemming bentuk kata baku yang
beragam akan menjadi seragam (kata dasar). Namun faktanya pada posting twitter
ditemukan banyak kata-kata yang tidak baku seperti kata “tidak” yang mempunyai
variasi “tdk”, “gak”, “ngga”, “kagak”, “ga”, “nda”, “gag” yang tidak dapat
ditangani oleh praproses Stopwords. Keberadaan kata yang tidak baku akan
mempengaruhi akurasi hasil perhitungan Naive Bayes. Oleh karena itu diperlukan
modifikasi stemming untuk menangani kata yang tidak baku.

1

2

Berdasarkan masalah di atas maka dibutuhkan optimasi preprocessing text
yaitu stemming dalam analisis sentimen pada posting twitter.
1.2

Rumusan Masalah
Bagaimana penerapan preprocessing teks yaitu stemming sebelum

melakukan klasifikasi pada metode Naïve Bayes dilakukan untuk menghilangkan
variasi kata yang tidak baku dan menggantinya dengan kata yang baku.
1.3

Maksud dan tujuan
Berdasarkan masalah yang diteliti maka maksud dari penelitian tugas akhir

ini adalah mengoptimasi analisis sentimen pada posting twitter menggunakan
metode Naive Bayes.
Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah untuk
mengetahui pengaruh, performansi yang dihasilkan dengan melihat persentase
akurasi dalam implementasi metode Naive bayes pada sentimen analisis dengan
melakukan stemming.
1.4

Batasan masalah
Penelitian yang dilakukan untuk implementasikan Naive Bayes maka

memiliki batasan masalah sebagai berikut :
1.

Studi kasus yang digunakan kandidat Capres 2014 yaitu Jokowi dan
Prabowo.

2.

Klasifikasi sentimen yang digunakan 3 kategori positif, negatif dan non
opini.

3.

Informasi yang didapatkan adalah jumlah sentimen dari masing-masing
kelas, akurasi dan kecepatan proses.

4.

Tweets yang digunakan hanya berbahasa indonesia.

5.

Metode Stemming menggunakan Algoritma Nazief dan Adriani

6.

Evaluasi kinerja menggunakan Accuracy and Error rate

7.

Variasi kata tidak baku yang ada pada kamus sama dengan variasi kata tidak
baku pada data uji dan data pelatihan

3

1.5

Metodologi penelitian
Metodologi penelitian yang digunakan pada penelitian ini yaitu metodologi

penelitian untuk mengumpulkan dasar dan data penelitian yaitu berupa ekstraksi
informasi dari tweets. Metodologi yang digunakan untuk mengumpulkan dasar
dan data penelitian, yaitu :
1.

Studi masalah dan solusi
Melakukan eksplorasi terhadap masalah yang akan dilakukan observasi dan
menentukan solusi yang mungkin. Menentukan hipotesa yang mungkin
dihasilkan dari solusi yang diambil terhadap masalah yang ada.Sehingga
masalah tersebut dapat diselesaikan dan mendapatkan detail hasil eksplorasi
dengan melakukan eksperimen dari penerapan solusi tersebut terhadap
masalah yang diambil dan mendapatkan hasil secara kuantitatif dari efisiensi
solusi hingga efektifitas yang dihasilkan dari penerapan solusi tersebut.

2.

Pengumpulan data
Pengumpulan data yang akan digunakan dalam penelitian ini adalah dengan
mengambil tweets masyarakat mengenai salah satu capres 2014 secara
random dari twitter.

3.

Learning Modeling
Membangun learning modeling yaitu model probabilistik yang dihasilkan
dari data pelatihan sebagai hipotesis awal.

4.

Eksperiment
Merupakan tahap eksplorasi terhadap objek penelitian yang berupa teks,
dengan melakukan processing terhadap teks tersebut dan menerapakan
metode learning yang akan diuji coba. Eksplorasi dilakukan dengan
membangun perangkat lunak yang mengimplementasikan metoda dibuat.
Mengambil hasil dari uji coba tersebut dan melakukan analisis terhadap
hasil uji tersebut. Dengan melakukan implementasi program yang dibangun
untuk menerapkan teori yang ada pada penelitian ini.

4

1.6

Sistematika penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran

umum tentang permasalahan dan pemecahannya. Sistematika penulisan tugas
akhir ini adalah sebagai berikut :
BAB 1 PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, identifikasi masalah, maksud dan
tujuan, batasan masalah dan metode penelitian yang dipergunakan dalam
penelitian

mengimplementasikan analisis

sentimen pada posting twitter

menggunakan metode Naive Bayes.
BAB II TINJAUAN PUSTAKA
Menguraikan tinjauan terhadap berbagai literatur pendukung yang digunakan
untuk mengoptimasi analisis sentimen pada posting twitter menggunakan Metode
Naive Bayes dan Stemming.
BAB III ANALISIS METODE
Pada bagian ini dijelaskan secara rinci mengenai tahapan pengerjaan dengan
menggunakan metode yang digunakan penulis dalam mengerjakan penelitian
sesuai dengan pendekata analisis orientasi berbasis objek, yaitu dengan analisis
kebutuhan fungsionalitas atau Use case, Class diagram, Sequence Diagram.
Selain itu terdapat juga perancangan untuk sistem yang akan dibangun sesuai
dengan hasil analisis dan antarmuka untuk sistem yang akan dibangun.
BAB IV PENGUJIAN
Pada bagian dilakukan pengujian terhadap prototipe dari program dengan
menggunakan data uji yang belum diketahui kategorinya agar diketahui apakah
sudah optimal akurasi yang diteliti.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang diperoleh dari tujuan dan permasalahan yang
telah terselesaikan.

BAB 2
TINJAUAN PUSTAKA
2.1

Analisis sentimen
Analisis sentimen atau opinion mining merupakan proses memahami,

mengekstrak dan mengolah data tekstual secara otomatis untuk mendapatkan
informasi sentimen yang terkandung dalam suatu kalimat opini. Analisis sentimen
dilakukan untuk melihat pendapat atau kecenderungan opini terhadap sebuah
masalah atau objek oleh seseorang, apakah cenderung berpandangan atau beropini
negatif atau positif. Salah satu contoh penggunaan analisis sentimen dalam dunia
nyata adalah identifikasi kecenderungan pasar dan opini pasar terhadap suatu
objek barang. Besarnya pengaruh dan manfaat dari analisis sentimen
menyebabkan penelitian semakin berkembang pesat[2].
Salah satu metode dari text mining yang bisa digunakan untuk
menyelesaikan masalah opinion mining adalah Naïve Bayes (NB). Naïve Bayes
bisa digunakan untuk mengklasifikasikan opini ke dalam opini positif dan negatif.
Naïve Bayes bisa berfungsi dengan baik sebagai metode pengklasifikasi teks.
Tahapan yang dilakukan analisis sentimen yaitu mengumpulkan tweets
positif, negatif dan netral lalu memisahkan menjadi tiga kategori yaitu positif,
negatif dan netral tahap selanjutnya mencari kata kunci yang terkait dengan
sekumpulan tweet positif, negatif dan netral. Kata kunci ini terutama untuk
menggambarkan aspek apa yang mendapat opini.
2.2

Review Literatur
Samodra Joko et al [3] Melakukan Klasifikasi untuk teks berbahasa

indonesia menggunakan data dari situs www.tempointeraktif.com dengan jumlah
dokumen sebanyak 2400 yang dibagi menjadi 4 kategori. Pada tahap awal dengan
melakukan preprocessing dan file HTML diedit secara manual untuk diambil
teksnya saja lalu dokumen dipisahkan kedalam 4 kategori. Pengujian yang
dilakukan menggunakan pendekatan stopwords dan tanpa stopwords. Hasil yang
5

6

didapat

menunjukkan penghilangan kata-kata yang tidak penting tidak

berpengaruh besar terhadap hasil klasifikasi.
Yudi Wibisono [4] dalam Klasifikasi Berita Berbahasa Indonesia
menggunakan Naïve Bayes telah melakukan klasifikasi pada 582 dokumen
berbahasa Indonesia menggunakan metode NB. Hal yang menarik adalah akurasi
tidak menunjukkan peningkatan yang signifikan walaupun dokumen contoh telah
meningkat banyak dari 70% menjadi 90% serta akurasi masih relative tinggi
walaupun dokumen contoh secara ekstrim dikurangi hanya 58 dokumen (10%).
Amir Hamzah [5] melakukan pengelompokkan teks berita dan abstrak
akademis. Pada setiap koleksi dokumen diformat dalam bentuk
untuk membedakan dokumen yang satu dengan dokumen yang lain, tag
..

untuk

identifikasi

nomor

dokumen

dan

tag

.. untuk identifikasi dari nomor kategori dokumen.
2.3

Dokumen Pelatihan
Satu set pelatihan adalah seperangkat dokumen yang digunakan dalam

berbagai bidang ilmu informasi untuk menemukan hubungan yang berpotensi
prediktif. Set pelatihan yang digunakan dalam kecerdasan buatan, pembelajaran
mesin, pemrograman genetik, sistem cerdas, dan statistik. Dalam semua bidang
tersebut, satu set pelatihan memiliki banyak peran yang sama dan sering
digunakan dalam hubungannya dengan satu set [7].
2.4

Preprocessing text
Data uji diproses terlebih dahulu sebelum digunakan dalam program. Proses

ini disebut preprocessing text. preprocessing text bertujuan untuk mengurangi
volume kosakata, menyeragamkan kata dan menghilangkan noise. preprocessing
text meliputi lexical analysis of the text yang terdiri dari case folding dan
tokenizing kemudian dilanjutkan dengan penghapusan stopwords dan stemming
menggunakan algoritma Adriani dan Nazief

7

2.4.1 Lexical Analysis of The Text
Lexical analysis merupakan proses mengubah kumpulan karakter menjadi
kumpulan kata [6]. Tujuan utama dari fase ini adalah mengidentifikasi kata-kata
pada dokumen. Fase ini terdiri dari dua langkah yaitu case folding yaitu
penyeragaman bentuk huruf serta penghilangan tanda baca dan parsing yang
bertujuan untuk memecah kalimat menjadi kata-kata yang independen.
2.4.1.1 Case folding
Dokumen mengandung beragam variasi dari bentuk huruf sampai tanda
baca. Variasi huruf harus diseragamkan (menjadi huruf besar saja atau huruf kecil
saja) dan tanda baca harus dihilangkan untuk menghilangkan noise pada saat
informasi. Hal ini dapat dilakukan dengan case folding. Case folding adalah
proses mengubah huruf dalam dokumen menjadi huruf kecil [8]. Hanya huruf 'a'
sampai dengan 'z' yang diterima. Karakter selain huruf dihilangkan dan dianggap
sebagai delimiter.
Karakter-karakter simbol yang akan dihapus atau dianggap sebagai pemisah
kata, dapat dilihat di tabel 2.1 dibawah ini.
Tabel 2.1 Karakter Simbol
Karakter Simbol
^

,

:

@

(

;

%

)

|

$

-

]

#

<

}



>

{

~

+

\

&

=

/

.

!



2.4.1.2 Tokenizing
Dalam tahap ini dilakukan pemecahan atau pemotongan dokumen menurut
tiap-tiap kata yang menyusun dokumen tersebut setelah mengalami proses

8

filtering. Hasil pemotongan (tokenizing) terhadap kata-kata tunggal tersebut
dijadikan kumpulan token dan membentuknya menjadi sebuah daftar atau list[6].
2.4.2 Stemming
Stemming berfungsi mengubah kata menjadi kata dasar. Pada umumnya kata
dalam dokumen memiliki variasi kombinasi imbuhan kata yang beragam. Variasi
imbuhan dapat berupa prefix (awalan), suffix (akhiran), infix (sisipan) dan confix
(kombinasi antara awalan dan akhiran). Dengan menggunakan stemming dapat
mengurangi variasi kata yang sebenarnya memiliki kata dasar yang sama. Salah
satu algoritma stemming yaitu Algoritma Nazief dan Adriani.
Algoritma stemming Nazief dan Adriani (1996) dikembangkan berdasarkan
aturan morfologi Bahasa Indonesia yang mengelompokkan imbuhan menjadi
awalan (prefix), sisipan (infix), akhiran (suffix) dan gabungan awalan-akhiran
(confixes). Algoritma ini menggunakan kamus kata dasar dan mendukung
recoding, yakni penyusunan kembali kata-kata yang mengalami proses stemming
berlebih.
Algoritma stemming Nazief dan Adriani menggunakan morfologi imbuhan
sebagai berikut :
1.

Inflection suffixes merupakan kumpulan akhiran (suffixes) yang tidak
merubah kata dasar. Misalnya kata ‘duduk’+’-lah’-> ’duduklah’. Inflection
suffixes terbagi menjadi :
a. Particles (P) termasuk ‘-lah’ dan ‘-kah’. Contoh : pergilah, pernahkah.
b. Possesive pronouns (PP) termasuk ‘-ku’,’-mu’ dan ‘nya’. Contoh : diriku,
dirimu, dirinya.

2. Derivation suffixes (DS) merupakan kumpulan akhiran (suffixes) yang
langsung menempel pada kata dasar. Misalnya kata dasar ‘lapor’ ditambah
derivation suffix ‘-kan’ menjadi ‘laporkan’. Setelah itu ditambah inflection
suffix ‘-lah’ menjadi ‘laporkanlah’.
3. Derivation prefixes (DP) merupakan himpunan awalan (prefixes) yang
menempel langsung pada kata dasar maupun terhadap kata yang telah

9

mempunyai sampai dua derivation prefixes. Misalnya derivation prefixes
‘mem-’ dan ‘per-’ + ‘-perindahkannya’->’memperindahkannya.
Dibawah ini adalah urutan pemakaian imbuhan sebagai inflections dan
derivations:
[DP+[DP+[DP+]]] kata dasar [[+DS][+PP][+P]]
Kurung siku menandakan bahwa imbuhan bersifat optional [14]. Pada penelitian
ini, algoritma yang digunakan untuk stemming bahasa Indonesia adalah algoritma
Adriani dan Nazief. Algoritma dimulai dengan pembacaan tiap kata dari file input
sehingga input berupa sebuah kata. Algoritma ini menggunakan kamus berisi
kata-kata dasar sebagai pedoman pengecekan jika proses stemming telah
mencapai kata dasar. Selain itu, pengecekan juga dilakukan pada panjang kata.
Jika panjang kata kurang dari dua karakter, maka proses stemming tidak
dilanjutkan. Setiap kata yang akan di-stemming akan menjalankan langkahlangkah sebagai berikut :
1.

Kata yang belum di-stemming dicari di kamus kata dasar. Jika ditemukan,
maka kata tersebut dianggap sebagai kata dasar. Algoritma mengembalikan
kata tersebut dan berhenti.

2.

Inflection suffixes (‘-lah’,’-ku’,’-kah’,’-mu’ atau ‘-nya’) dihapus. Awalnya
penghapusan dilakukan pada akhiran particles (‘-lah’ atau ‘-kah’) kemudian
disusul dengan penghapusan akhiran possessive pronoun (‘-ku’,’-mu’ atau ‘nya’).

3.

Derivation suffixes (‘-i’ atau ‘-an’) dihapus. Jika sukses, langkah 4
dijalankan. Jika langkah 4 tidak sukses
a. Jika ‘-an’ dihapus dan huruf terakhir dari kata tersebut ‘-k’, maka ‘-k’ juga
dihapus dan langkah 4 kembali dijalankan. Jika gagal, maka langkah 3b
dijalankan.
b. Hapus akhiran (‘-i’,‘-an’ atau ‘-kan’) kemudian simpan.

4.

Derivation previx dihapus. Proses ini memiliki beberapa langkah yaitu :
a. Jika akhiran dihapus pada langkah 3, maka cek kombinasi awalan akhiran
berdasarkan Tabel 2.1. Jika ada yang cocok, maka algoritma
mengembalikan kata tersebut dan berhenti.

10

b. Jika awalan sekarang sama dengan awalan sebelumnya, maka algoritma
mengembalikan kata tersebut dan berhenti.
c. Jika

tiga

awalan

telah

dihapus

sebelumnya,

maka

algoritma

mengembalikan kata tersebut dan berhenti.
d. Jenis awalan ditentukan dengan langkah berikut.
i.

Jika awalan merupakan ‘di-‘,’ke-‘ atau ‘se-‘, maka jenis awalan tetap
‘di-‘,’ke-‘ atau ‘se-‘.

ii.

Jika awalan adalah ‘te-’,’be-‘,’me-‘ atau ‘pe-‘, maka diperlukan
proses tambahan untuk mengekstrak karakter yang berawalan ‘te-‘
berdasarkan Tabel 2.2.
menghapus ‘te-‘

Misalnya,

kata ‘terlambat’,

menghasilkan ‘rlambat’.

setelah

Ekstraksi pertama

dilakukan menurut aturan ‘Set 1’ dan hal yang serupa terjadi pada
lima baris pertama. Setelah itu, terdapat karakter ‘-l-‘ (Set 2), hal
yang serupa terjadi pada baris tiga sampai lima. Sehingga kata
menjadi ‘ambat’ sesuai dengan ‘Set 3’ dan buang kemungkinan baris
tiga dan empat. Hasilnya ditunjukan pada kolom terakhir bahwa
akhiran dari kata ‘terlambat’ berjenis awalan ‘ter-‘.
iii.

Jika dua karakter pertama tidak sama dengan ‘di-‘,’ke-‘,’se- ‘,’te-‘,
‘be-‘,’me-‘ atau ‘pe-‘, maka algoritma mengembalikan kata tersebut
dan berhenti.

e. Jika jenis awalan ‘none’ atau tidak ada, maka algoritma mengembalikan
kata tersebut dan berhenti. Jika awalan tidak ‘none’, maka jenis awalan
ditemukan pada Tabel 2.3. Awalan yang ditemukan akan dihapus.
Jika kata dasar tidak ditemukan pada kamus, langkah 4 secara rekursif
dijalankan untuk penghapusan lebih lanjut. Jika kata dasar ditemukan pada kamus,
maka algoritma mengembalikan kata tersebut dan berhenti.
5. Setelah semua langkah dijalankan dan gagal, algoritma mengembalikan
kata awal [9].

11

Tabel 2.2 Kombinasi awalan dan akhiran yang tidak diperbolehkan
Prefiks

Disallowed Suffixes

be-

-i

di-

-an

ke-

-i, -kan

me-

-an

se-

-i, -kan

te-

-an

Pada Tabel 2.1 terdapat satu pengecualian, kata dasar ‘tahu’ diperbolehkan
untuk kombinasi awalan ‘ke-‘ dan akhiran ‘i-’.
Tabel 2.3 Penentuan tipe awalan untuk kata dengan awalan ‘te-‘.
Following characters

Prefix type

Set 1

Set 2

Set 3

Set 4

‘-r’

‘-r’

-

-

None

‘-r’

vowel

-

-

ter-luluh

‘-r’

Not (‘-r’ or vowel)

‘-er-’

vowel

Ter

‘-r’

Not (‘-r’ or vowel)

‘-er-’

Not vowel

None

‘-r’

Not (‘-r’ or vowel)

Not ‘-er-‘

-

Ter

Not (vowel or ‘-r’)

‘-er-’

vowel

-

None

Not (vowel or ‘-r’)

‘-er-’

Not vowel

-

Te

Keterangan : Jika awalan ‘te-‘ tidak sesuai dengan salah satu dari aturan
pada tabel, maka dikembalikan ke ‘none’. Aturan yang sama berlaku untuk ‘be-‘,
‘me-‘ dan ‘pe-‘.
Tabel 2.4 Penentuan awalan dari jenis awalan
Prefix type

Prefix to be removed

di

di-

ke

ke-

se

se-

te

te-

ter

ter-

12

ter-luluh

ter-

2.4.3 Penghapusan Stopwords
Kata yang terlalu sering muncul pada setiap dokumen tidak terlalu baik
digunakan sebagai kata kunci. Faktanya, kata yang muncul sampai 80% pada
setiap dokumen tidak berguna untuk pengambilan informasi [6]. Kata-kata yang
sering muncul tersebut dikenal sebagai stopwords. Stopwords adalah kata-kata
yang sering muncul dan tidak memiliki arti. Daftar kata stopword yaitu kumpulan
seluruh kata-kata yang sering muncul dan tidak memiliki arti yang disimpan
dalam bank kata khusus stopword yang terdiri dari 810 stopword bahasa indonesia
Contoh dari stopwords untuk bahasa indonesia yaitu adalah, adanya, akhirnya,
bahkan, bagaimanapun. Dengan dibuangnya stopwords, ukuran kosakata menjadi
berkurang sehingga hanya kata-kata penting yang terdapat dalam dokumen dan
diharapkan akan menjadi kata-kata yang memiliki bobot yang tinggi.
2.5

Klasifikasi Dokumen
Klasifikasi merupakan proses mengidentifikasi objek ke dalam kelas, grup

atau kategori berdasarkan prosedur, karakteristik dan definisinya [3]. Salah satu
bentuk klasifikasi yang diterapkan dalam penelitian ini adalah klasifikasi Tweets.
Pada penelitian ini, setiap tweets dipetakan tepat satu ke kategori yang
paling sesuai dengan isinya. Klasifikasi dokumen terbagi menjadi dua salah
satunya yaitu supervised document classification yaitu klasifikasi yang melibatkan
mekanisme external (seperti human feedback) guna menyediakan informasi
klasifikasi yang benar. Klasifikasi tipe ini biasanya menggunakan dokumen
pembelajaran. Salah satu contoh supervised document classification adalah Naive
Bayes yang akan diulas pada penelitian ini.
2.6

Naive Bayes
Naive Bayes tergolong supervised classification document. Metode ini

memiliki tingkat keakuratan tinggi dengan penghitungan yang sederhana [7].
Metode ini mengasumsikan kemunculan suatu kata tidak mempengaruhi
kemunculan kata yang lain. Walaupun asumsi ini melanggar aturan disetiap

13

bahasa, asumsi ini tidak berpengaruh besar terhadap tingkat keakuratan metode ini
[1].
Teorema Bayes berawal dari persamaan 2.1, yaitu:
(2.1)
Di mana P(A|B) artinya peluang A(Kata) pada data uji jika diketahui keadaan
B(Kelas) positif, negatif dan netral. Kemudian dari persamaan 2.1 didapatkan
persamaan 2.2
(2.2)
Sehingga didapatkan teorema Bayes seperti persamaan yang ditunjukkan pada
persamaan 2.3
(2.3)
Algoritma pembelajaran bayes menghitung probabilitas eksplisit untuk
menggambarkan hipotesa yang dicari. Sistem dilatih menggunakan data latih
lengkap berupa pasangan nilai-nilai atribut dan nilai target kemudian sistem akan
diberikan sebuah data baru dalam bentuk dan sistem diberi tugas
untuk menebak nilai fungsi target dari data tersebut [7].
Naive Bayes memberi nilai target kepada data baru menggunakan nilai Vmap,
yaitu nilai kemungkinan tertinggi dari seluruh anggota himpunan set domain V
yang ditunjukkan pada persamaan 2.4.
Vmap =
a = kata dalam dokumen
Vj = Kategori ke j
j = 1, 2, 3
V1 = Kategori Positif
V2 = Kategori Negatif

(2.4)

14

V3 = Kategori Netral
Teorema Bayes kemudian digunakan untuk menulis ulang persamaan 2.4
menjadi persamaan 2.5
(2.5)
Karena P(a1,a2,a3,....,an) nilainya konstan untuk semua Vj sehingga
persamaan 2.5 dapat ditulis dengan persamaan 2.6.
Vmap =

P(a1,a2,a3.....an |Vj) P(Vj)

(2.6)

Tingkat kesulitan menghitung P(a1,a2,a3,....an|Vj) P(Vj) menjadi tinggi karena
jumlah kata P(a1,a2,a3,....an|Vj) P(Vj) bisa menjadi sangat besar. Ini disebabkan
jumlah kata tersebut sama dengan jumlah kombinasi posisi kata dikali dengan
jumlah kategori. Metode klasifikasi Naive Bayes menyederhanakan hal ini dengan
bekerja

dengan

asumsi

bahwa

atribut-atribut

yang

digunakan

bersifat

conditionally independent antara satu dan yang lainnya, dengan kata lain dalam
setiap kategori, setiap kata independent satu sama lain. Sehingga menjadi
persamaan 2.7.

(2.7)

Subtitusi persamaan 2.7 dengan persamaan 2.6 menjadi persamaan 2.8.

(2.8)
VMap adalah nilai probabilitas hasil perhitungan Naive Bayes. Untuk nilai
fungsi target yang bersangkutan. Frekuensi kemunculan kata menjadi dasar
perhitungan nilai dari P(Vj) dan P(a1|vj). Himpunan set dari nilai-nilai probabilitas

15

ini berkorespondensi dengan hipotesa yang ingin dipelajari. Hipotesa kemudian
digunakan untuk mengklasifikasikan data-data baru. Pada pengklasifikasikan teks,
perhitungan persamaan 2.7 dapat didefinisikan :
(2.9)
(2.10)
Keterangan :
1. Docsj : Kumpulan dokumen yang memiliki kategori vj.
2. |D|

: Jumlah dokumen yang digunakan dalam pelatihan (kumpulan

data latih).
3. n

: jumlah total kata yang terdapat di dalam kata tekstual yang

memiliki nilai fungsi target yang sesuai.
4. nk

: Jumlah kemunculan kata wk pada semua data tekstual yang

memilliki nilai fungsi target yang sesuai.
5. |kata| : Jumlah kata yang berbeda yang muncul dalam seluruh data
tekstual yang digunakan.
2.7

Evaluasi
Hasil klasifikasi teks dengan menggunakan metode Naive Bayes akan

dievaluasi keakuratannya menggunakan pendekatan Accuracy and Error rate.
2.7.1 Accuracy and Error Rate
Untuk mengevaluasi kinerja klasifikasi teks, Accuracy and Error rate secara
luas digunakan. Definisi akurasi dan kesalahan tingkat untuk masing-masing
kategori adalah sebagai berikut [10]:
(2.11)
(2.12)
TP
= True Positive, jumlah data uji yang benar diklasifikasi ke kategori yang
benar

16

TN
= True Negative, jumlah data uji yang benar klasifikasikan ke kategori
yang salah
FP
= False Positive, jumlah data uji yang salah diklasifikasikan ke kategori
yang benar
FN
= False Negative, jumlah data uji yang salah diklasifikasikan ke kategori
yang salah
Mirip dengan penyaringan spam, klasifikasi yang salah dari dokumen ke
kategori memiliki konsekuensi berat. Kedua langkah sederhana cukup intuitif dan
menyatakan nilai persentase untuk hasil kategorisasi baik benar dan salah.
Namun, dalam situasi di mana TN lebih besar dari TP untuk beberapa kategori,
mereka bisa menyesatkan. Dalam hal ini, akurasi yang tinggi dapat diperoleh,
sebagai dokumen yang umumnya tidak relevan dengan kategori tertentu. Namun,
dua kesalahan set FB dan FN dapat dibandingkan dengan set yang relevan TP.
2.8

Konsep Dasar Pemrograman Objek
Pemrograman berorientasi objek berarti sebuah teknik pemrograman yang

dalam proses pengembangannya menggunakan terminologi objek, di mana setiap
objek memiliki atribut beserta dengan fungsi yang dapat saling berinteraksi satu
dengan yang lain. Contohnya objek makhluk hidup – baik manusia ataupun
binatang maka akan mengenalinya dari bentuk, ukuran, beratnya kemudian dari
perilakunya dapat dilihat bahwa makhluk hidup dapat melihat, makan, berjalan,
berlari dan selain itu terdapat fungsi lainnya seperti fungsi peredaran darah yang
berhubungan dengan fungsi pernapasan atau fungsi pencernaan.
Ciri-ciri inilah yang menjadi ide dasar bagaimana mengembangkan sebuah
perangkat lunak yang kompleks dengan menggunakan model objek tersebut.
Dengan demikian, proses pengembangan perangkat lunak akan lebih mudah
karena hanya akan menyesuaikan model pemrograman dengan objek yang kita
buat. PBO memiliki tujuan untuk memberikan pemahaman sistem kepada user
atau client. Hal ini karena user/client dapat lebih mudah memahami alur
pemrograman dengan kasus yang dihadapi, hal ini berbeda dengan pemrograman
terstruktur karena lebih berorientasi kepada programmer untuk menyelesaikan
sebuah kasus.

17

Pengertian UML ( Unified Modeling Language)
UML singkatan dari Unified Modeling Language yang berarti bahasa
pemodelan standar. Ketika akan membuat model menggunakan konsep UML ada
aturan-aturan yang harus diikuti. Bagaimana elemen pada model-model yang
dibuat berhubungan satu dengan lainnya dan harus mengikuti standar yang ada.
UML bukan hanya sekedar diagram, tetapi juga menceritakan konteksnya [14].
UML adalah himpunan struktur danteknik untuk pemodelan desain program
berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk
mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung
pengembangan sistem tersebut UML mulai diperkenalkan oleh Object
Management Group, sebuah organisasi yang telah mengembangkan model,
teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai
banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat
(tool) desain berorientasi objek dari IBM.
UML diaplikasikan untuk maksud tertentu, biasanya antara lain untuk :
1. Merancang perangkat Lunak
2. Sarana Komunikasi antara perangkat lunak dengan proses bisnis
3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang
diperlukan sistem.
4. Mendokumentasi sistem yang ada, proses-proses dan organisasinya.
Beberapa literature menyebutkan bahwa UML menyediakan Sembilan jenis
diagram, yang lain menyebutkan sepuluh karena ada beberapa diagram yang
digabung, misalnya diagram komunikasi, diagram urutan dan diagram perwaktuan
digabung menjadi diagram interaksi. Namun demikian model-model itu dapat
dikelompokkan menjadi 10 macam diagram untuk memodelkan aplikasi
berorientasi objek, yaitu :
1. Diagram Kelas. Bersifat statis. Diagram ini memperlihatkan himpunan kelaskelas,

antarmuka-antarmuka,

kolaborasi-kolaborasi,

serta

relasi-relasi.

Diagram ini umum dijumpai pada pemodelan sistem berorientasi objek.
Meskipun bersifat statis, sering pula diagram kelas memuat kelas-kelas aktif.

18

2. Diagram

Paket

(Package

Diagram).

Bersifat

statis.

Diagram

ini

memperlihatkan kumpulan kelas-kelas, merupakan bagian dari diagram
komponen.
3. Diagram Use-Case. Bersifat statis. Diagram ini memperlihatkan himpunan
use-case dan aktor-aktor (suatu jenis khusus dari kelas). Diagram ini terutama
sangat penting untuk mengordinasikan dan memodelkan perilaku suatu sistem
yang dibutuhkan serta diharapkan pengguna.
4. Diagram interaksi dan sequence (urutan). Bersifat dinamis. Diagram urutan
adalah diagram interaksi yang menekankan pada pengiriman pesan dalam
suatu waktu tertentu.
5. Diagram Komunikasi (Communication Diagram). Bersifat dinamis. Diagram
sebagai pengganti diagramkolaborasi UML 1.4 yang menekankan organisasi
struktural dari objek-objek yang menerima serta mengirim pesan.
6. Diagram Statechart (Statechart Diagram). Bersifat dinamis. Diagram status
memperlihatkan keadaan-keadaan pada sistem, memuat status (state), transisi,
kejadian serta aktifitas. Diagram ini terutama penting untuk memperlihatkan
sifat dinamis dari antarmuka (interface), kelas, kolaborasi dan terutama
penting pada pemodelan sistem-sistem yang reaktif.
7. Diagram Aktivitas (Activity Diagram). Bersifat dinamis. Diagram aktivitas
adalah tipe khusus dari diagram status yang memperlihatkan aliran dari suatu
aktivitas ke aktivitas lainnya dalam suatu sistem. Diagram ini terutama
penting dalam pemodelan fungsi-fungsi suatu sistem dan memberi tekanan
pada aliran kendali antar objek.
8. Diagram komponen (Component Diagram). Bersifat statis. Diagram
komponen

ini

sistem/perangkat

memperlihatkan
lunak

pada

organisasi

serta

komponen-komponen

kebergantungan
yang

telah

ada

sebelumnya. Diagram ini berhubungan dengan diagram kelas dimana
komponen secara tipikal dipetakan kedalam satu atau lebih kelas-kelas,
antaramuka-antarmuka serta kolaborasi-kolaborasi.
Diagram Deployment (Deployment Diagram). Bersifat statis. Diagram ini
memperlihatkan konfigurasi saat aplikasi dijalankan (run-time). Memuat simpul-

19

simpul beserta komponen-komponen yang ada di dalamnya. Diagram deployment
berhubungan erat dengan diagram komponen dimana diagram ini memuat satu
atau lebih komponen-komponen. Diagram ini sangat berguna saat aplikasi kita
berlaku sebagai aplikasi yang dijalankan pada banyak mesin (distributed
computing)

BAB 3
ANALISIS MASALAH DAN PERANCANGAN
3.1

State of the Art
Pada penelitian sebelumnya sudah ada yang menggunakan metode

Stemming untuk preprocessing text dalam mengolah data pelatihan dan data uji
untuk kasus kata yang baku seperti pada tabel 3.1
Tabel 3.1 Analisis penelitian sebelumnya
Penelitian
Fitur

Stemming

Klasifikasi Dokumen Teks
berbahasa Indonesia dengan
menggunakan Naive Bayes

Bahasa
Indonesia

Dokumen





Spam Filtering with Naive
Bayesian Classication





Bayesian
Learning
Automatic
Arabic
Categorization





for
Text

Dari penelitian yang sudah simpulkan pada tabel 3.1 maka akan dibuat
penelitian optimasi akurasi untuk metode Naive Bayes dengan penambahan
tahapan Nazief dan Adriani stemmer pada preprocessing text untuk menangani
keberagaman bahasa sehari-hari(kata tidak baku) pada bahasa indonesia.
3.2

Analisis Masalah
Beragamnya penggunaan kata dalam bahasa Indonesia seperti kata baku

yang berimbuhan (peninggalan, mendukung) dan kata yang tidak baku (tdk, ga,
ngga, brp, knp) pada posting twitter menjadi faktor yang mempengaruhi akurasi
dalam klasifikasi dokumen. Maka diperlukan optimasi stemming untuk menangani
kata-kata yang tidak baku
3.3

Arsitektur Sistem
Gambar 3.1 memperlihatkan arsitektur sistem yang akan dikembangkan.

Sistem ini menerima masukan berupa data teks dari posting twitter untuk

21

22

dilakukan tahap pembelajaran dan tahap klasifikasi. Data teks dari posting twitter
ini akan di praproses terlebih dulu sebelum diproses lebih lanjut.

Gambar 3.1 Arsitektur Sistem Klasifikasi Posting Twitter
Text mining mempunyai definisi sebagai menambang data berupa teks
dimana sumber data biasanya didapat dari suatu dokumen dengan tujuan mencari
kata-kata yang dapat mewakili isi dari dokumen sehingga dapat dilakukan analisa
keterhubungan antar dokumen. Secara umum sistem ini dibagi menjadi beberapa
tahapan proses, pada gambar 3.1 blok diagram proses kerja pada text mining
klasifikasi objek wisata sebagai berikut.
1. Optimasi analisis sentimen ini memiliki dua tahap yaitu tahap pembelajaran
dan tahap klasifikasi.
2. Tahap pembelajaran harus dijalankan terlebih dahulu dengan melalui praproses yaitu case folding, tokenizing, stemming dan stopwords untuk
menghasilkan dokumen pembelajaran sebagai pedoman untuk setiap kategori
yaitu positif negatif dan netral.

23

3. Tahap pembelajaran memiliki modul yang hampir sama dengan tahap
klasifikasi. Bedanya hanya pada tahap pembelajaran tidak menjalankan
modul klasifikasi, tetapi hanya menghasilkan dokumen yang mengandung
kata-kata untuk mengkarakteristik suatu kategori
4. Setelah memiliki data pembelajaran, maka tahap klasifikasi baru dapat
dijalankan.
5. Tahap klasifikasi dapat dispesifikasi mulai dari sistem menerima input berupa
teks dokumen posting twitter sampai menampilkan hasil klasifikasi yaitu
positif, negatif dan netral.
6. Modul praproses dokumen dimulai dengan melakukan pembacaan kalimat
dari teks dokumen posting twitter.
7. Kalimat yang sudah dibaca akan menjalani proses case folding dan tokenizing
sehingga berbentuk kata yang independent.
8. Kata yang mempunyai imbuhan, variasi dan kata yang tidak baku akan masuk
ke tahapan stemming dengan bantuan kamus kata dasar bahasa Indonesia.
Kata yang cocok dengan daftar stopwords dihilangkan.
9. Selanjutnya modul Klasifikasi melakukan penghitungan berdasarkan metode
Naive Bayes untuk menentukan kategori yang akan dipetakan ke dokumen
input dan menampilkan hasil klasifikasi, kecepatan dan akurasinya.
3.4

Analisis Data Masukan
Data masukan berupa tweets diambil dari seluruh timeline pengguna twitter.

Ada beberapa tweets mengenai salah satu kandidat capres 2014 yang ada pada
timeline, untuk penelitian ini data diambil secara random sehingga komposisi
tweet yang mengandung selain teks dan angka dihapus dengan tahapan
preprocessing teks. Contoh tweet dari pengguna twitter mengenai salah satu
kandidat capres 2014 :
“Bagaimanapun jg dukung ==> jokowi jd presiden agar INDONESIA
hebat \(´▽`)/”

24

3.5

Praproses dokumen
Tahap praproses dokumen merupakan tahap yang seharusnya dilakukan

sebelum metode klasifikasi. Tujuan dari tahap ini adalah menghilangkan noise,
menyeragamkan bentuk kata dan mengurangi volume kosakata. Tahap ini
meliputi case folding, tokenizing, penghapusan stopword dan stemming. Berikut
penerapan pada tahap praproses dokumen pada sistem klasifikasi :
3.5.1 Dokumen input
Contoh tweet yang akan memasuki tahap document preprocessing dapat
dilihat di bawah ini
“Bagaimanapun jg dukung ==> jokowi jd presiden agar INDONESIA hebat
\(´▽`)/”

3.5.2 Case folding
Pada tahap ini dilakukan pengubah huruf dalam dokumen menjadi huruf
kecil. Hanya huruf ‘a’ sampai dengan ‘z’ yang diterima. Karakter selain huruf
dihilangkan dan dianggap sebagai delimiter. Contoh hasil case folding terlihat
pada gambar 3.2 :

25

Gambar 3.2 Flowchart tahapan case folding
Pada tahapan ini, ada beberapa aturan proses agar hasil case folding dapat
sesuai dengan yang diharapkan. Adapun aturan-aturan tersebut dapat dilihat pada
tabel 3.2 :

26

Tabel 3.2 Aturan tahapan case folding
Kondisi

Aksi

Inputan data latih memiliki huruf kapital Maka akan mengubah semua inputan
[A…..Z].
tersebut menjadi huruf kecil [a……z]
semua.
Inputan data latih memiliki karakter
simbol

Maka akan menghapus karakter simbol
tersebut dari inputan

Inputan data latih memiliki huruf kecil

Tidak ada aksi
Tidak ada aksi

Inputan data latih memiliki spasi

Berikut ini adalah contoh tahapan case folding yang akan di ilustrasikan pada
tabel 3.3 :

Tabel 3.3 Ilustrasi tahapan Case folding
Contoh Data
Data Uji

Input

Bagaimanapun jg
dukung  jokowi
jd presiden agar
INDONESIA hebat
\(´▽`)/

Tahapan Case Folding

Output

bagaimanapun jg
dukung jokowi jd
presiden agar
indonesia hebat

3.5.3 Tokenizing
Tokenizing merupakan proses pemotongan string input berdasarkan tiap kata
yang menyusunya serta membedakan karakter-karakter tertentu yang dapat
diperlakukan sebagai pemisah kata atau bukan. Tahapan ini dilakukan setelah
inputan data uji melewati tahap Case Folding. Proses tokenizing ini mempunyai
alur yang digambarkan pada gambar 3.3 sebagai berikut

27

Gambar 3.3 Flowchart Tahapan Parsing
Pada tahapan ini dilakukan pemecahan deskripsi dari data latih menjadi babbab, paragrap, kalimat, dan menjadi kata-kata dengan memotong string dari
penyusunnya. Ada beberapa aturan proses agar hasilnya sesuai dengan yang
diinginkan. Adapun aturan-aturan tersebut pada ta