Anda di halaman 1dari 136

TEXT MINING UNTUK KLASIFIKASI KONTEN ABSTRAK JURNAL

BAHASA INGGRIS MENGGUNAKAN METODE REDUKSI DIMENSI DAN


NAIVE BAYES

TEXT MINING FOR CLASSIFICATION OF CONTENT ABSTRACT


JOURNAL ENGLISH USING DIMENSIONAL REDUCTION METHOD AND
NAIVE BAYES

SYUKRIYANTO LATIF

SEKOLAH PASCASARJANA
UNIVERSITAS HASANUDDIN
MAKASSAR
2018
Text Mining Untuk Klasifikasi Konten Abstrak Jurnal Bahasa Inggris
Menggunakan metode Reduksi Dimensi dan Naive Bayes

Tesis

Sebagai Salah Satu Syarat untuk Mencapai Gelar Magister

Program Studi

Teknik Elektro

Disusun dan diajukan oleh

SYUKRIYANTO LATIF

P2700214028

Kepada

SEKOLAH PASCASARJANA

UNIVERSITAS HASANUDDIN

MAKASSAR

2018
PERNYATAAN KEASLIAN TESIS

Yang bertanda tangan di bawah ini :

Nama : Syukriyanto Latif

Nomor Mahasiswa : P2700214028

Program Studi : Teknik Elektro

Konsentrasi : Teknik Informatika

Menyatakan dengan sebenarnya bahwa tesis yang saya tulis ini


benar-benar merupakan hasil karya saya sendiri, bukan merupakan
pengambilalian tulisan atau pemikiran orang lain. Apabila di kemudian hari
terbukti atau dapat dibuktikan bahwa sebagian atau keseluruhan tesis ini
hasil karya orang lain, saya, bersedia menerima sanksi atas perbuatan
tersebut.

Makassar, 21 Januari 2018

Yang Menyatakan

Syukriyanto Latif
ii

KATA PENGANTAR

Puji syukur dipanjatkan kehadirat Allah SWT. atas berkah dan rahmat-

Nya sehingga tesis penelitian ini dengan judul “Text Mining untuk Klasifikasi

konten abstrak jurnal Bahasa Inggris menggunakan Metode Reduksi Dimensi

Dan Naive bayes ” dapat terselesaikan.

Pada penyusunan kali ini penulis menyajikan beberapa hal yang

menyangkut judul yang telah kami angkat dan telah melalui proses pencarian

dari berbagai sumber baik jurnal penelitian, buku maupun dari situs-situs di

internet, selain dari penelitian sebelumnya. Untuk itu melalui kesempatan ini

kami ingin mengucapkan terima kasih kepada seluruh pihak yang telah

membantu dalam penyusunan ini.

Pertama-tama penulis berterima kasih kepada Bapak Dr. Indrabayu,

ST. M.Bus.Sys. MT dan Dr. Eng. Intan Sari Areni, ST., MT. Selaku dosen

pembimbing yang senantiasa memberikan masukan, motivasi dan

pengarahan sehingga penulisan tesis ini dapat terselesaikan.

Kepada seluruh keluarga terutama kepada orang tua (ABD. Latif

Sabang dan Hj. Siti Muliati), dan seluruh saudara yang telah banyak

mendukung dan bersabar dalam perjalanan studi penulis. Dan juga untuk

rekan-rekan seperjuangan di AIMP Research Group Unhas penulis

mengucapkan terima kasih atas dukungan moril dan kerja sama yang tidak
iii

pernah luntur sehingga semangat untuk menyelesaikan tesis ini senantiasa

terjaga.

Walaupun dalam penyusunannya, kami telah berusaha secara

maksimal, namun jika masih ada kekurangan baik dari segi pengetikan

maupun dari segi isi kami mohon maaf dan mohon petunjuk berupa kritik dan

saran, demi penysunan selanjutnya agar lebih baik lagi.

Akhir kata saya selaku penulis mengucapkan terima kasih.

Makassar, 21 Januari 2018

Penulis
iv

ABSTRAK

SYUKRIYANTO LATIF. Text Mining Untuk Klasifikasi Konten Abstrak Jurnal


Bahasa Inggris Menggunakan Metode Reduksi Dimensi dan Naive Bayes
(dibimbing oleh Indrabayu dan Intan Sari Areni).
Penelitian ini bertujuan untuk mengklasifikasikan konten abstrak
berdasarkan pemakaian jumlah kata terbanyak dalam sebuah konten abstrak
jurnal bahasa inggris.
Penelitian ini menggunakan sistem teknologi text mining yang
mengekstraksi data yang berupa teks untuk mencari informasi dari
sekumpulan dokumen. Konten abstrak sebanyak 150 data yang didownload
di www.computer.org. Pengelompokan data terdiri atas tiga kategori yaitu
Data Mining (DM), Intelligent Transport System (ITS) dan Multimedia (MM).
Sistem yang dibangun menggunakan algoritma naive bayes untuk
mengklasifikasi abstrak jurnal dan proses feature selection menggunakan
term weighting untuk memberikan bobot pada setiap kata. Teknik reduksi
dimensi untuk mengurangi dimensi jumlah kata yang jarang muncul pada
setiap dokumen berdasarkan parameter ujicoba reduksi dimensi 10%-90%
dari 7452 kata. Unjuk kerja sistem klasifikasi diuji dengan menggunakan
Confusion Matrix berdasarkan uji coba perbandingan data latih dan data uji.
Hasil penelitian menunjukkan bahwa hasil klasifikasi terbaik diperoleh
saat uji coba data latih 75% dan data uji 25% dari total data. Tingkat akurasi
untuk kategori DM, ITS dan MM adalah 100%, 96%, 90% secara berturut-
turut dengan parameter reduksi dimensi 30% dan nilai learning rate antara
0,1-0,5.

Kata kunci : text mining, feature selection, akurasi, reduksi dimensi, naive
bayes

ABSTRACT
v

ABSTRACT

SYUKRIYANTO LATIF. The Text Mining for Clarification of English Journal


Abstract Contents Using Dimension Reduction Method and Naive Bayes
(supervised by Indrabayu and Intan Sari Areni).
The research aimed at to clarifying the abstract contents based on the
utilization of the highest number of words in an English journal abstract
content.
The system used the text mining technology which extracted the data
in the forms of the texts to search information from a set of documents. The
number of the abstract content data used was 150 data which werw
downloaded in www.computer.org. The grouping comprised three categories
such as: Data Mining (DM), Intelligent Transport System (ITS) and
Multimedia (MM) The system was developed using Naive Bayes algorithm to
clarify the journal abstracts, and the Feature Selection process used the
Term Weighting to give the weight on every word, the Dimension Reduction
technique to reduce the dimension of number words which rarely appeared in
every document.
The research result indicates thet there are the dimension reduction
experiment parameters of 10% - 90% of 7,452 words. The clarification
system performance is tested using in the Confusion Matrix based on the
experiment of the comparison between the trained data and tested data. The
best clarification result is obtained when the experiment of the trained data of
75% and tested data of 25% from the data total. The accuracy levels for the
categories of DM, ITS and MM are 100%, 96%, 90% consecutively with the
dimension reduction parameter of 30% and the value of the learning rate
between 0.1 and 0.5.

Key words: Text Mining, feature selection, accuracy, dimension reduction,


Naive Bayes
vi

DAFTAR ISI

HALAMAN SAMPUL
HALAMAN PENGESAHAN
PERNYATAAN KEASLIAN TESIS
KATA PENGANTAR .................................................................................. ii
ABSTRAK INDONESIA ............................................................................ iv
ABSTRAK INGGRIS .................................................................................. v
DAFTAR ISI .............................................................................................. vi
DAFTAR GAMBAR ................................................................................. viii
DAFTAR TABEL ....................................................................................... ix
DAFTAR LAMPIRAN ................................................................................ xI
BAB I .........................................................................................................1
PENDAHULUAN........................................................................................1
A. LATAR BELAKANG ..........................................................................1
B. RUMUSAN MASALAH ......................................................................4
C. TUJUAN PENELITIAN ......................................................................5
D. MANFAAT PENELITIAN ...................................................................5
E. BATASAN MASALAH .......................................................................5
F. SISTEMATIKA PENULISAN .............................................................6
BAB II TINJAUAN PUSTAKA ....................................................................9
A. LANDASAN TEORI ...........................................................................9
B. PENELITIAN TERKAIT ...................................................................27
C. STATE OF THE ART ......................................................................30
D. KERANGKA PIKIR ..........................................................................32
BAB III METODE PENELITIAN................................................................33
A. TAHAPAN PENELITIAN..................................................................33
B. WAKTU DAN LOKASI PENELITIAN ...............................................35
C. JENIS PENELITIAN ........................................................................35
vii

D. SUMBER DATA ..............................................................................35


E. PERANCANGAN SISTEM ..............................................................38
F. INSTRUMENTASI PENELITIAN .....................................................69
G. PENGUJIAN AKURASI SISTEM .....................................................70
BAB IV HASIL DAN PEMBAHASAN....................................................................72
BAB V KESIMPULAN DAN SARAN ........................................................84
DAFTAR PUSTAKA.................................................................................86
viii

DAFTAR GAMBAR

Gambar 1. Proses text mining (Even, 2002).. ............................................. 9


Gambar 2. Flowcart Porter Stemmer (jones-Willet,1997).. ........................ 13
Gambar 3. Ilustrasi proses reduksi dimensi(Fajar R.2015) ....................... 21
Gambar 4. Dua probabilitas distribusi (Harrington, 2012) .......................... 22
Gambar 5. Klasifikasi Naive Bayes Classifier (Harrington, 2012) ............... 23
Gambar 6. Tahapan proses klasifikasi dokumen dengan algoritma Naive
Bayes Classifier (Hamzah, 2012) ............................................ 26
Gambar 7. Kerangka Pikir Penelitian ........................................................ 32
Gambar 8. Tahapan Penelitian ................................................................. 33
Gambar 9. Antar muka sistem sebagian data latih pada tiap kategori....... 36
Gambar 10. Antar muka sistem sebagian data uji pada sistem .................. 38
Gambar 11. Desain Sistem ......................................................................... 38
Gambar 12. Sampel isi konten abstrak ...................................................... 39
Gambar 13. Flowchart proses case folding ................................................ 40
Gambar 14. Implementasi tahapan tokenizing. .......................................... 41
Gambar 15. Flowchart proses Stopword (Filtering) .................................... 42
Gambar 16. Implementasi tahapan Stopword(filtering). ............................. 43
Gambar 17. Implementasi tahapan Porter Stemmer .................................. 44
Gambar 18. Implementasi tahapan hasil TW(Term Weighting) .................. 47
Gambar 19. Diagram Alir Klasifikasi dengan NBC ..................................... 68
Gambar 20. Perbandingan akurasi sistem untuk data training dan
testing yang bervariasi.............................................................82
ix

DAFTAR TABEL

Tabel 1. Remove Plural Suffixation ....................................................... 14


Tabel 2. Remove Verbal Inflexion ......................................................... 14
Tabel 3. Continued for -ed and -ing Rules ............................................ 15
Tabel 4 y and i ..................................................................................... 15
Tabel 5 Peel One Suffix Off for Multiple Suffixes ................................. 16
Tabel 6 Step 3 ..................................................................................... 17
Tabel 7 Delete Last Suffix .................................................................... 17
Tabel 8 Remove e ............................................................................... 18
Tabel 9. Reduction................................................................................ 18
Tabel 10. State Of The Art. ..................................................................... 30
Tabel 11. Reduksi Dimensi dari Parameter 30% ..................................... 49
Tabel 12. Probabilitas Dokumen Latih .................................................... 55
Tabel 13. Probabilitas kata pada kategori Data Mining ........................... 57
Tabel 14. Probabilitas kata pada kategori Intelligent Transport System .. 59
Tabel 15. Probabilitas kata pada kategori Multimedia ............................. 62
Tabel 16. Probabilitas kata dan nilai maksimal pada sampel data uji 1 .. 65
Tabel 17. Skenario ujicoba ..................................................................... 69
Tabel 18 Model Confusion Matrix .......................................................... 70
Tabel 19 Hasil Reduksi Dimensi ............................................................ 72
Tabel 20 Hasil uji coba 1 dengan parameter reduksi dimensi 10% ........ 73
Tabel 21 Hasil uji coba 2 dengan parameter reduksi dimensi 20% ........ 74
Tabel 22 Hasil uji coba 3 dengan parameter reduksi dimensi 30% ........ 75
Tabel 23 Hasil uji coba 4 dengan parameter reduksi dimensi 40% ........ 75
Tabel 24 Hasil uji coba 4 dengan parameter reduksi dimensi 50% ........ 76
Tabel 25 Hasil uji coba 6 dengan parameter reduksi dimensi 60% ........ 77
Tabel 26 Hasil uji coba 7 dengan parameter reduksi dimensi 70% ........ 78
Tabel 27 Hasil uji coba 8 dengan parameter reduksi dimensi 80% ........ 78
Tabel 28 Hasil uji coba 9 dengan parameter reduksi dimensi 90% ........ 79
x

Tabel 29 Hasil akurasi skenario reduksi dimensi ................................... 80


Tabel 30 Rincian akurasi pengenalan reduksi dimensi 30%...................80
Tabel 31 Hasil uji coba tanpa menggunakan reduksi dimensi ........ .........81
Tabel 32 Rincian akurasi pengenalan tanpa menggunakan reduksi
dimensi.....................................................................................82
Tabel 33 Rincian akurasi 75-25 dan learning rate 0,1-0,5.......................83
xi

DAFTAR LAMPIRAN

Lampiran 1 Sample Data PDF Konten Abstrak Bahasa Inggris..............88


Lampiran 2 Implementasi Antar Muka Tampilan beranda.......................89
Lampiran 3 Implementasi Antar Muka Tampilan Data Latih....................89
Lampiran 4 Implementasi Antar Muka Tampilan Data Uji........................90
Lampiran 5 Implementasi Antar Muka Tampilan Preprocessing.............90
Lampiran 6 Implementasi Antar Muka Tampilan Term weighting............91
Lampiran 7 Implementasi Antar Muka Tampilan Pemodelan
Probabilitas Dokumen Awal Pada Data Latih........................91
Lampiran 8 Implementasi Antar Muka hasil term weighting data latih..... 92
Lampiran 9 Implementasi Antar Muka Hasil Probabilitas Kata Pada
Kategori Data Latih Data Mining............................................92
Lampiran 10 Implementasi Antar Muka Hasil Probabilitas Kata Pada

Kategori Data Latih Intelligent Transport System............93

Lampiran 11 Implementasi Antar Muka Hasil Probabilitas Kata Pada


Kategori Data Latih Multimedia .............................................93
Lampiran 12 Implementasi Antar Muka Hasil Klasifikasi Naive Bayes.......93
Lampiran 13 Tabel pemberian nilai Probabilitas kata data uji pada

kategori Data mining............................................................94

Lampiran 14 Tabel pemberian nilai Probabilitas kata data uji pada


Intelligent Transport System.................................................96
Lampiran 15 Tabel pemberian nilai Probabilitas kata pada kategori
Multimedia..............................................................................98
Lampiran 16 Source Program proses Pengambilan Kata Pada dokumen
Pdf ........................................................................................101

Lampiran 17 Source Program proses Preprocessing................................106


Lampiran 18 Source Program proses Feature Selection ..........................119
Lampiran 19 Source Program Proses Klasifikasi ......................................121
BAB I

PENDAHULUAN

A. LATAR BELAKANG

Perkembangan teknologi informasi saat ini mengakibatkan adanya

peningkatan data volume informasi yang berbentuk teks dalam jumlah

besar sehingga kondisi ini telah menimbulkan kesulitan manusia dalam

mengelola informasi. Banyaknya informasi teks tidak terstruktur dalam

dokumen artikel dan jurnal ilmiah yang mendorong munculnya disiplin ilmu

dalam analisis text mining.

Text mining merupakan suatu proses mencari informasi dimana

seorang user berinteraksi dengan sekumpulan dokumen. Namun

kebanyakan dokumen tidak diklasifikasi atau dikelompokan sesuai dengan

kelompoknya sehingga dokumen-dokumen yang berhubungan sulit untuk

ditemukan, seperti pada dokumen abstrak jurnal.

Abstrak jurnal merupakan bentuk mini dari sebuah tulisan ilmiah,

dimana perlu diketahui abstrak mengandung hal-hal penting dari tulisan

ilmiah, namun banyaknya variasi data dokumen abstrak jurnal yang tidak

terstruktur terkadang dapat menyita waktu lama dalam bagaimana

mengetahui kategori abstrak tersebut jika dibaca satu per satu. Sehingga

hal ini memacu perlunya proses text mining dengan mengklasifikasikan

konten abstrak jurnal agar sesuai dengan kelasnya.


2

Amir Hamzah tahun 2012 menerapkan sistem text mining dalam

pengelompokan text berita dan abstrak akademis, sistem ini

menggunakan metode klasifikasi yaitu metode NBC (Naive Bayes

Classifier) dengan tingkat akurasi yang dihasilkan mencapai 91% untuk

text berita dan 85% untuk abstrak akademis.

Berbeda pada penelitian C. Ramasubramanian dan R. Ramya ditahun

2013, dengan mengevaluasi efektifitas proses pada preprocessing

khususnya pada proses stemming, mengatakan bahwa dengan

menggunakan algoritma Porter Stemmer dapat meminimaliskan jumlah

kata dalam proses pengubahan kata ke kata dasar sebelum melakukan

proses klasifikasi. Terbukti dalam uji coba yang dilakukan dengan 2

perbandingan menggunakan stop removal tanpa proses stemming porter

dan dengan menggunakan stop removal + porter stemmer menunjukan

perubahan yang signifikan dari jumlah kata 500 -275. Pada penelitian

selanjutnya pada tahun 2014 oleh Cristian Moral, Angelica de Antonio,

Ricardo Imbert dan Jaime Ramirez. Dalam penelitiannya telah melakukan

beberapa survey pada 4 algoritma stemmer yaitu Paice/Husk,

Lovins,Porter dan S. Removal untuk memastikan algoritma mana yang

baik dalam proses stemming bahasa Inggris, Lovins dan Porter menjadi

rujukan terbaik algoritma. Pemilihan salah satu algoritma dilihat dari

kebutuhan sistem dan jumlah data yang digunakan, karena akan

mempengaruhi hasil pada tahap selanjutnya.


3

Penelitian klasifikasi berikut Ashis Kumar Mandal dan Rikta Sen pada

tahun 2014, menerapkan 4 algoritma DT (Decision Tree), KNN (K-Nearest

Neighbour), NBC (Naive Bayes Classifier) dan SVM (Support Vector

Machine) dalam mengklasifikasi dokumen web. Tingkat akurasi yang

didapat mencapai metode DT 80,65%, KNN 74,24%, NB 85,22% dan

SVM 89,14%, penelitian G. Keerthika dan D. Saravana Priya pada tahun

2015 menerapkan metode NBC dengan menggabung 2 pemilihan fitur

kata GR (Gain Ratio) dan IG (information Gain) gabungan 2 metode ini

mampu menghasilkan akurasi sebesar 92%. Dio Ariadi dan Kartika tahun

2015 juga membandingkan 2 metode klasifikasi yaitu metode NBC dan

SVM dengan Confix Stipping Stemmer. Metode NBC menunjukan akurasi

sebesar 82,2% sedangkan metode SVM mencapai akurasi 88,1%.

Penelitian ini hanya berfokus pada proses klasifikasi dan tingkat akurasi

yang didapatkan.

Pada tahun 2015 Amalia Anjani, Djumardi dan Renny menerapkan

Algoritma NBC (Naive Bayes Classifier) dengan Confix Stripping Stemmer

sebagai klasifikasi artikel berita bahasa indonesia. Berdasarkan hasil

validasi menggunakan 10 Cross validation. NBC mencapai akurasi terbaik

sebesar 86,97%. Fajar R Hariri, Ema Utami dan Armadyah Amborowati

pada tahun 2015 melakukan penelitian menggunakan metode Learning

Vector Quantization sebagai klasifikasi dokumen abstrak tesis bahasa

indonesia, hasil akurasi yang didapatkan 90% dengan menerapkan

reduksi dimensi 20% pada tahap feature selection. I Gusti A


4

Socrates,Afrizal dan Akbar pada tahun 2016 melakukan penelitian

menggunakan metode NBC dengan menerapkan pemilihan fitur

pembobotan Gain Ratio dalam mengklasifikasi teks bahasa indonesia,

tingkat akurasi NBC mencapai 91%.

Dari beberapa penelitian terkait dapat disimpulkan bahwa perlunya

sistem klasifikasi, dilihat dari banyaknya dokumen dan beragam variasi

data yang tidak terstruktur sehingga perlu dikelompokan, diklasifikasi dan

penggunaan metode-metode yang tepat untuk meningkatkan akurasi

klasifikasinya. Oleh karena itu penulis mengusulkan sistem text mining

untuk klasifikasi konten abstrak jurnal dengan bahasa inggris

menggunakan, Term weighting dan reduksi dimensi pada tahap feature

selection lalu Naive Bayes Classifier sebagai metode klasifikasi, sehingga

mendapatkan hasil validasi dengan confusion matrix yang lebih optimal.

B. RUMUSAN MASALAH

Rumusan masalah dari penelitian Text Mining Untuk Klasifikasi

Konten Abstrak Jurnal ini adalah:

1. Bagaimana pengaruh jumlah kata pada proses klasifikasi dengan

menggunakan teknik reduksi dimensi?

2. Bagaimana kinerja sistem dalam memperoleh tingkat akurasi yang

optimal ?
5

C. TUJUAN PENELITIAN

Tujuan yang akan dicapai pada penelitian Text Mining Untuk

Klasifikasi Konten Abstrak Jurnal ini adalah:

1. Untuk mengetahui pengaruh jumlah kata pada proses klasifikasi

dengan menggunakan teknik reduksi dimensi.

2. Untuk mengetahui kinerja sistem klasifikasi dalam memperoleh

tingkat akurasi yang optimal menggunakan metode Naive Bayes

Classifier dengan perhitungan confusion matrix.

D. MANFAAT PENELITIAN

Adapun manfaat yang dapat diperoleh dari penelitian ini adalah

1. Masyarakat, penelitian ini bermanfaat untuk membantu dalam

memudahkan pencarian topik judul, referensi jurnal dan penelitian

yang akan dilakukan pada tugas akhir.

2. Bagi peneliti, berguna untuk menambah pengetahuan dan

kemampuan/skil mengenai proses text mining pada klasifikasi

konten abstrak jurnal.

3. Bagi institusi pendidikan Magister Jurusan Teknik Elektro bidang

informatika, dapat digunakan sebagai referensi ilmiah dalam

penelitian.

E. BATASAN MASALAH

Adapun batasan masalah penelitian ini yaitu :

1. Data konten Abstrak yang diteliti didownload dari

www.computer.org
6

2. Sistem klasifikasi konten abstrak jurnal yang dibangun hanya

mengambil konten abstrak jurnal berbahasa Inggris.

3. Sistem klasifikasi yang dirancang hanya mengklasifikasi konten

abstrak.

4. Metode yang digunakan untuk klasifikasi konten abstrak

menggunakan Naive Bayes.

F. SISTEMATIKA PENULISAN

Adapun sistematika penulisan pada peneltian pembuatan sistem

Text Mining Untuk Klasifikasi Konten Abstrak Jurnal Bahasa Inggris

Menggunakan Metode Reduksi Dimensi dan Naive Bayes adalah :

Bab I Pendahuluan

Bab I berisi penjelasan tentang latar belakang masalah, rumusan

masalah, tujuan penelitian, manfaat penelitian, batasan masalah

penelitian serta sistematika penulisan.

Bab II Landasan Teori dan Kerangka Pemikiran

Bab II berisi penjelasan tentang landasan teori yang digunakan

dalam penelitian dan kerangka pemikiran. Diuraikan pula tentang tinjauan

pustaka yang merupakan penjelasan tentang hasil-hasil penelitian lainnya

yang berkaitan dengan penelitian yang dilakukan. Landasan teori

merupakan suatu penjelasan tentang sumber acuan terbaru dari pustaka

primer seperti buku, artikel, jurnal, prosiding dan tulisan asli lainnya untuk

mengetahui perkembangan penelitian yang relevan dengan judul atau


7

tema penelitian yang dilakukan dan juga sebagai arahan dalam

memecahkan masalah yang diteliti. Dalam bab ini juga diurakan tentang

kerangka pemikiran yang merupakan penjelasan tentang kerangka

berpikir untuk memecahkan masalah yang sedang diteliti, termasuk

menguraikan objek penelitian.

Bab III Metodologi Penelitian

Bab III ini merupakan penjelasan tentang metode penelitian,

penentuan masalah, penentuan computing approach, juga penjelasan

bagaimana pengembangan dan penerapan sistem dengan computing

approach pada obyek penelitian, diuraikan pula cara evaluasi dan proses

validasi hasil penerapan, metode pengumpulan data, metode analisis

data, metode pengukuran penelitian, penerapan computing approach

pada masalah penelitian, penembangan software, analisa kebutuhan,

konstruksi sistem dan pengujian sistem.

Bab IV Hasil dan pembahasan

Pada bab IV ini menjelaskan tentang hasil dan pembahasan

penelitian serta implikasi dari penelitian yang dilakukan. Hasil merupakan

suatu penjelasan tentang data kuantitatif yang dikumpulkan sesuai

dengan metodologi yang telah ditetapkan. Pembahasan merupakan suatu

penjelasan tentang pengolahan data dan interpretasinya, baik dalam

bentuk deskriptif ataupun penarikan inferensinya. Implikasi penelitian

merupakan suatu penjelasan tentang tindak lanjut penelitian yang terkait

dengan aspek sistem, maupun aspek penelitian lanjutan.


8

Bab V Kesimpulan dan Saran

Pada bab V ini berisi ringkasan temuan, rangkuman kesimpulan dan

saran. Kesimpulan merupakan pernyataan secara general atau spesifik

yang berisi hal-hal penting dan menjadi temuan penelitian yang

bersumber pada hasil dan pembahasan. Saran merupakan pernyataan

atau rekomendasi peneliti yang berisi hal-hal penting sebagaimana yang

telah disampaikan.
BAB II

TINJAUAN PUSTAKA

A. LANDASAN TEORI

1. Text Mining

Text mining adalah sebuah proses pengetahuan intensif dimana

pengguna berinteraksi dan bekerja dengan sekumpulan dokumen dengan

menggunakan beberapa alat analisis. Text mining mencoba untuk

mengekstrak informasi yang berguna dari sumber data melalui identifikasi

dan eksplorasi dari suatu pola menarik. Sumber data berupa sekumpulan

dokumen dan pola menarik yang tidak ditemukan dalam bentuk database

record, tetapi dalam data teks yang tidak terstruktur (Feldman,R ,

2007).Proses text mining diperlihatkan pada Gambar 1.

Gambar 1.Proses text mining(Even, 2002).


10

Beberapa tahapan proses pokok dalam text mining yaitu

pemrosesan awal text(text preprocessing), transformasi teks (text

transformation) /(FeatureGeneration), pemilihan fitur (feature selection),

dan penemuan pola text/data mining (pattern discovery) (Even, 2002).

a. Text

Tahap pertama adalah permasalahan yang dihadapi pada text

mining sama dengan permasalahan yang terdapat pada data mining,

yaitu jumlah data yang besar, dimensi yang tinggi, data dan struktur

yang terus berubah, dan data noise.Perbedaan di antara keduanya

adalah pada data yang digunakan. Pada data mining, data yang

digunakan adalah structured data, sedangkan pada text mining,data

yang digunakan text mining pada umumnya adalah unstructured data,

atau minimal semi structured. Hal ini menyebabkan adanya tantangan

tambahan pada text mining yaitu struktur text yang complex dan tidak

lengkap, arti yang tidak jelas dan tidak standar, dan bahasa yang

berbeda ditambah translasi yang tidak akurat.

b. Text Preprocessing

Tahap ini melakukan analisis semantik (kebenaran arti) dan

sintaktik (kebenaran susunan) terhadap teks. Tujuan dari pemrosesan

awal adalah untuk mempersiapkan teks menjadi data yang akan

mengalami pengolahan lebih lanjut.(Feldman, R, 2007. Operasi yang

dapat dilakukan pada tahap ini adalah case folding dan tokenizing.
11

c. Text Transformation (Feature Generation)

Transformasi teks atau pembentukan atribut mengacu pada

proses untuk mendapatkan representasi dokumen yang diharapkan.

Pendekatan representasi dokumen yang lazim bag of words.

Transformasi teks sekaligus juga melakukan pengubahan kata-kata ke

bentuk dasarnya dan pengurangan dimensi kata di dalam dokumen.

d. Feature Selection

Pemilihan fitur (kata) merupakan tahap lanjut dari pengurangan

dimensi pada proses transformasi teks.

e. Pattern Discovery

Text/ Data mining /Pattern discovery merupakan tahap penting

untuk menemukan pola atau pengetahuan (knowledge) dari

keseluruhan teks. Tindakan yang lazim dilakukan pada tahap ini

adalah operasi text mining, dan biasanya menggunakan teknik-teknik

data mining. Dalam penemuan pola ini, proses text mining

dikombinasikan dengan proses-proses data mining ( Even, 2002).

f. Interpretation / evaluation

Interpretation /evaluation hasil dari proses mining akan

diinterpretasikan kedalam bentuk tertentu untuk kemudian dilakukan

proses evaluasi. Masukan awal dari proses text mining adalah suatu

data teks dan menghasilkan keluaran berupa pola sebagai hasil

interpretasi atau evaluasi. Apabila hasil keluaran dari penemuan pola

belum sesuai untuk aplikasi, dilanjutkan evaluasi dengan melakukan


12

iterasi ke satu atau beberapa tahap sebelumnya. Sebaliknya, hasil

interpretasi merupakan tahap akhir dari proses text mining dan akan

disajikan ke pengguna dalam bentukvisual (Tan, 1999).

2. Stemming

Menurut Peter Willet (1997) stemming adalah proses untuk

menggabungkan atau memecahkan setiap varian-varian suatu kata

menjadi kata dasar. Stem (akar kata) adalah bagian dari kata yang tersisa

setelah dihilangkan imbuhannya (awalan dan akhiran), contohnya kata

connect adalah stem dari connected, connecting, connection, dan

connections. Metode stemming memerlukan input berupa term yang

terdapat dalam dokumen. Sedangkan outputnya berupa stem.

2.1. Porter Stemmer

merupakan algoritma penghilangan akhiran morphological dan

infleksional yang umum dari bahasa Inggris. Algoritma ini terdiri dari

himpunan kondisi atau action rules.

Kondisi dikelompokkan menjadi tiga kelas, yakni :

1. Kondisi pada stem

Ukuran (measure), dinotasikan dengan m, dari sebuah stem

berdasarkan pada urutan vokal-konsonan.

m = 0, contoh : TR, EE, TREE, Y, BY

m = 1, contoh : TROUBLE, OATS, TREES, IVY

m = 2, contoh : TROUBLES, PRIVATE, OATEN

*<X> berarti stem berakhir dengan huruf x


13

*v* berarti stem mengandung sebuah vokal *d berarti stem diakhiri dengan

konsonan dobel

*o berarti stem diakhiri dengan konsonan – vokal – konsonan, berurutan, di

mana konsonan akhir bukan w, x, atau y.

2. Kondisi pada suffix (akhiran)

3. Kondisi pada rule

rule-rule dibagi menjadi step-step. Rule-rule dalam sebuah step diuji

secara berurutan, dan hanya 1 rule dari suatu step yang diterapkan.

Gambar 2. Menunjukan flowcart Porter Stemmer (jones-Willet,1997)

Gambar 2. flowcart Porter Stemmer (jones-Willet,1997)

Step (langkah-langkah) tahapan pada algoritma Porter Stemmer :

Step 1a : remove plural suffixation, yaitu menghapus/ mengganti

akhiran pada kata yang berbentuk jamak, berupa akhiran sses


14

menjadi ss, ies menjadi i, ss (tidak diganti), dan akhiran s hingga

didapatkan stem.

Tabel 1. Remove Plural Suffixation

Conditions Suffix Replacement Examples


NULL sses ss caresses – caress
ponies – poni
NULL ies i
teis – tie
NULL ss ss caress – caress
NULL s NULL cats – cat

Step 1b : remove verbal inflection, yaitu menghapus/ mengganti

akhiran pada kata yang mengalami modulasi lisan/ pengucapan,

berupa akhiran eed (jika terdapat paling kurang sebuah huruf

vokal-konsonan berurutan) menjadi ee, serta akhiran ed dan ing

(tidak diganti) untuk kata yang hanya memiliki sebuah huruf vokal,

dan dihapus untuk yang memiliki lebih dari satu huruf vokal

Tabel 2. Remove Verbal Inflexion

Conditions Suffix Replacement Examples


feed – feed
(m > 0) eed ee
agreed – agree
Plastered – plaster
(*v*) ed NULL
bled – - bled
Motoring – motor
(*v*) ing NULL
Sing – sing

Step 1b1 : continued for -ed and -ing rules, berupa tahap lanjutan

untuk rule akhiran ed dan ing. Hasil stemming pada akhiran ed

dan ing pada step sebelumnya akan di-stemming lagi yaitu

dengan menghapus kata yang berakhiran at (diganti menjadi ate),

bl menjadi ble, iz menjadi ize, untuk kata yang diakhiri dengan


15

dobel huruf konsonan dan tidak berakhir dengan huruf l, s, atau z

akan diganti menjadi kata yang berakhir satu huruf konsonan saja,

jika kata berakhir dengan huruf l, s, atau z maka tidak diganti, dan

untuk kata yang diakhiri dengan huruf konsonan–vokal–konsonan

berurutan, di mana konsonan akhir bukan w, x, atau y dan hanya

terdapat satu urutan huruf vokal-konsonan di dalamnya maka

ditambahkan e.

Tabel 3. Continued for -ed and -ing Rules

Conditions Suffix Replacement Examples


Conflat(ed) –
NULL at ate
conflate
NULL bl ble troubl(ing) – trouble
NULL iz ize siz(ed) – size
hopp(ing) – hop
tann(ed) – tan
(*d and not (*<L>
NULL single latter fall(ing) – fail
or *<s> or *<z>))
hiss(ing) – hiss
fizz(ed) – fizz
fail(ing) – fail
(m=1 and *o) NULL e
fil(ing) – file

Step 1c : y and i, jika kata mengandung sebuah huruf vokal dan

berakhiran y akan diganti dengan i

Tabel 4. y and i

Conditions Suffix Replacement Examples


happy – happi
(*v*) y i
sky – sky

Step 2 : peel one suffix off for multiple suffixes, dengan kata

tersebut memiliki paling kurang sebuah huruf vokal-konsonan


16

berurutan, yaitu kata berakhiran ational atau ation atau ator

(menjadi ate), tional (menjadi tion), enci (menjadi ence), anci

(menjadi ance), izer atau ization (menjadi ize), iviti atau iveness

(menjadi ive), ality atau alism atau alli (menjadi al), biliti (menjadi

ble), abli (menjadi able), ently (menjadi ent), eli (menjadi e), ousli

dan ousness (menjadi ous), fulness (menjadi ful)

Tabel 5. Peel One Suffix Off for Multiple Suffixes

Conditions Suffix Replacement Examples


(m > 0) ational ate relational – relate
Conditional – condition
(m > 0) tional tion
rational – rational
(m > 0) enci ence valenci – valence
(m > 0) anci ance hesitanci – hesitance
(m > 0) izer ize digitizer – digitize
(m > 0) abli able Conformabli – conformable
(m > 0) alli al radicalli – radical
(m > 0) ently ent differently – different
(m > 0) eli e vileli – vile
(m > 0) ousli ous analogousli – analogous
(m > 0) ization ize vietnamization – vietnamize
(m > 0) ation ate predication – predicate
(m > 0) ator ate operator – operate
(m > 0) alism al feudalism – feudal
(m > 0) iveness ive decisiveness – decisive
(m > 0) fulness ful hopefulness – hopefull
(m > 0) ousness ous callousness – callous
(m > 0) aliti al formaliti – formal
(m > 0) iviti ive sensitivii –sensitive
(m > 0) biliti ble sensibiliti – sensible

Step 3 : dengan kata tersebut memiliki paling kurang sebuah huruf

vokal-konsonan berurutan, kata berakhiran ative atau ful atau


17

ness akan dihapus, kata berakhiran icate atau iciti atau ical

(menjadi ic), alize (menjadi al)

Tabel 6. Step 3

Conditions Suffix Replacement Examples


(m > 0) icate ic Triplicate – triplic
(m > 0) ative NULL formative – form
(m > 0) alize al Formalize – formal
(m > 0) icii ic electriciti – electric
(m > 0) ical ic electrical – electric
(m > 0) ful NULL hopeful – hope
(m > 0) ness NULL goodness – good

Step 4 : delete last suffix, dengan kata tersebut memiliki paling kurang

dua huruf vocal-konsonan berurutan, kata berakhiran al, ance,

ence, er, ic, able, ible, ant, ement, ment, ent, ion, ou, ism, ate, iti,

ous, ive, dan ize akan dihapus

Tabel 7. Delete Last Suffix

Conditions Suffix Replacement Examples


(m > 1) al NULL revival – reviv
(m > 1) ence NULL allowance – allow
(m > 1) ence NULL inference – infer
(m > 1) er NULL airliner – airlin
(m > 1) ic NULL gyroscopic – gyroscop
(m > 1) able NULL adjustable – adjust
(m > 1) ible NULL defensible –defens
(m > 1) ant NULL irritant – irrit
(m > 1) ement NULL replacement – replac
(m > 1) ment NULL adjustmen – adjust
(m > 1) ent NULL dependent – depend
(m > 1) ion NULL adoption – adopt
(m > 1) ou NULL homologou – homolog
(m > 1) ism NULL communism – commun
(m > 1) ate NULL acivate – activ
18

(m > 1) iti NULL angulariti – angular


(m > 1) ous NULL homologous – homolog
(m > 1) ive NULL effecitive – effect
(m > 1) ize NULL bowdlerize – bowdler

Step 5a : remove e, menghapus akhiran e jika kata tersebut paling

kurang memiliki dua huruf vocal-konsonan yang berurutan atau

memiliki sebuah huruf vocal-konsonan berurutan dan tidak diakhiri

dengan huruf konsonan–vokal–konsonan berurutan, di mana

konsonan akhir bukan w, x, atau y

Tabel 8. Remove e

Conditions Suffix Replacement Examples


probate – probat
(m > 1) e NULL
rate –rate
( m=1and *d and*<L> ) e NULL cease – ceas

Step 5b : reduction, jika kata hanya memiliki sebuah huruf vokal-

konsonan berurutan dan tidak berakhir dengan dobel huruf

konsonan dan huruf l maka diganti dengan akhiran satu huruf

konsonan saja

Tabel 9. Reduction

Conditions Suffix Replacement Examples


controll – control
( m=1and *d and*<L> ) NULL single letter
roll – roll
19

3. Pembobotan kata (Term Weighting )

Sistem Temu Kembali Informasi berhadapan dengan pencarian

informasi yang sesuai dengan query pengguna dari koleksi dokumen.

Koleksi dokumen tersebut terdiri dari dokumen-dokumen yang beragam

panjangnya dengan kandungan term yang berbeda pula. Hal yag perlu

diperhatikan dalam pencarian informasi dari koleksi dokumen yang

heterogen adalah pembobotan term. Term dapat berupa kata, frase

atau unit hasil indexing lainnya dalam suatu dokumen yang dapat

digunakan untuk mengetahui konteks dari dokumen tersebut. Karena

setiap kata memiliki tingkat kepentingan yang berbeda dalam dokumen,

maka untuk setiap kata tersebut diberikan sebuah indikator, yaitu term

weight.

Term weighting atau pembobotan term sangat dipengaruhi oleh

hal-hal berikut ini (Mandala, 2002):

2.1. TF(Term Frequency)

faktor yang menentukan bobot term pada suatu dokumen

berdasarkan jumlah kemunculannya dalam dokumen tersebut. Nilai

jumlah kemunculan suatu kata (term frequency) diperhitungkan dalam

pemberian bobot terhadap suatu kata. Semakin besar jumlah

kemunculan suatu term dalam dokumen, semakin besar pula

bobotnya dalam dokumen atau akan memberikan nilai kesesuian yang

semakin besar.
20

2.2. IDF(Inverse Document Frequency)

factor pengurangan dominansi term yang sering muncul di

berbagai dokumen. Hal ini diperlukan karena term yang banyak

muncul di berbagai dokumen, dapat dianggap sebagai term umum

(common term) sehingga tidak penting nilainya. Sebaliknya faktor

jarang kemunculan kata (term scarcity) dalam koleksi dokumen harus

diperhatikan dalam pemberian bobot. Pembobotan akan

memperhitungkan faktor kebalikan frekuensi dokumen yang

mengandung suatu kata (inverse document frequency).

4. Teknik Reduksi Dimensi Berdasarkan Karakteristik data

Proses reduksi dimensi dilakukan untuk mengecilkan dimensi

data sehingga waktu komputasi dibutuhkan lebih sedikit. Namun

proses reduksi dimensi harus memperhatikan karakteristik data,

karena dimensi yang hilang bisa jadi juga menghilangkan karakteristik

data (Yang,1997). Oleh karena itu dalam penelitian ini dipilih reduksi

dimensi dengan menghilangkan sparse part. Kata yang memiliki

frekuensi yang kebanyakan bernilai nol akan dihilangkan, karena term

tersebut merepresentasikan kata yang sangat jarang dijumpai dalam

data atau dengan kata lain kata boleh diabaikan.

Besarnya pengurangan dimensi term sesuai dengan parameter

yang ditentukan. Karena ditakutkan proses ini akan menghilangkan

karakteristik data, maka dibuat parameter nilai yang berfungsi untuk

membatasi reduksi dimensi. Sehingga meskipun dalam suatu term


21

kebanyakan nilainya nol, term tersebut tidak akan dihilangkan jika ada

salah satu dari nilai frekuensinya melebihi parameter yang telah

ditentukan. Data TF yang sudah masuk dalam database memiliki nilai

yang berbeda-beda. Term yang memilik TF yang kebanyankan

bernilai nol dapat diabaikan, dengan catatan tidak ada nilai TF yang

melebihi parameter yang sudah ditentukan. Dengan kata lain proses

reduksi dimensi adalah dengan cara menghilangkan fitur atau term

yang yang frekuensinya semua/kebanyakan bernilai 0. Jika ada

beberapa yang tidak bernilai 0 maka TF tersebut nilainya harus

melebihi parameter tertentu. Hal ini dimaksudkan agar data tidak

kehilangan karekteristiknya. Sehingga proses dapat berjalan dengan

baik (Toyota, T,2012). Berikut memperlihatkan ilustrasi perameter

persentase dengan reduksi dimensi pada Gambar 3.

Gambar 3. Ilustrasi proses reduksi dimensi(Fajar R.2015)

Dalam Gambar 3. Ditunjukan misal parameter adalah 40%. Maka

reduksi dimensi dilakukan dengan menghilangkan kolom yang nilainya


22

bukan 0 kurang dari 40% data yang ada. Kolom ke 5-9 akan

dihilangkan karena kolom tersebut tidak memenuhi syarat.

5. Naive Bayes Classifier

Bayesian Classifier adalah pengklasifikasian statistik yang dapat

digunakan untuk memprediksi probabilitas keanggotaan suatu class.

Bayesian Classifier didasarkan pada teorema bayes yang memiliki

kemampuan klasifikasi serupa dengan decision tree dan neural

network. Bayesian Classifier terbukti memiliki akurasi dan kecepatan

yang tinggi saat diaplikasikan ke dalam database dengan data yang

besar (Mitchell, 1997).

Naïve Bayes Classifier menggunakan teori probabilitas sebagai

dasar teori, metode ini adalah metode yang dipergunakan untuk

proses klasifikasi teks.Terdapat 2 tahap pada proses klasifikasi teks.

Tahap pertama adalah pelatihan terhadap himpunan artikel contoh

(training example). Contoh dari asumsi bahwa klasifikasi memiliki

dataset dengan dua kelas data, data ini ditunjukkan pada Gambar 4.

Gambar 4. Dua probabilitas distribusi (Harrington, 2012)


23

Sedangkan tahap kedua adalah proses klasifikasi dokumen yang

belum dikategorikan. Gambar 5 menunjukkan proses klasifikasi

dokumen dengan naïvebayes classifier.

Gambar 5. Klasifikasi Naive Bayes Classifie r(Harrington, 2012)

Selanjutnya yaitu melakukan klasifikasi dokumen dengan mencari

nilai maksimum dari:

(1)

Konsep dasar yang digunakan oleh Naive Bayes adalah Teorema

Bayes, dengan perhitungan nilai probabilitas bersyarat :

(2)
24

Yaitu, peluang kejadian A sebagai B ditentukan dari peluang B saat A,

peluang A, peluang A, dan peluang B. Pada saat pengaplikasiannya nanti

rumus ini berubah menjadi :

(3)

Dengan menerapkan teorema bayes persamaan (1) maka dapat

ditulis:

(4)

Karena nilai ) konstan, sehingga untuk semua vj

besarnya sama maka nilainya dapat diabaikan, menjadi persamaan:

(5)

Nilai ditentukan pada saat pelatihan, yang nilainya didekati

dengan persamaan :

(6)

Dimana:

: probabilitas setiap dokumen terhadap sekumpulan dokumen.

: banyaknya dokumen yang memiliki kategori j dalam pelatihan.


25

: banyaknya dokumen dalam contoh yang digunakan saat

pelatihan.

Untuk nilai ditentukandengan persamaan :

(7)

Dimana :

: Probabilitas kemunculan kata wk pada suatu dokumen

dengan kategori .

: frekuensi munculnya kata wk dalam dokumen yang berkategori

Sedangkan n : banyaknya seluruh kata dalam dokumen berkategori .

: banyaknya kata dalam contoh pelatihan.

Pada persamaan (7) terdapat suatu penambahan 1 pada pembilang, hal

ini dilakukan untuk mengantisipasi jika terdapat suatu kata pada dokumen

uji yang tidak ada pada setiap dokumen data pelatihan.

Selanjutnya, pembelajaran algoritma Naive Bayes Classifier dapat dilihat

pada Gambar 6. sebagai berikut.


26

Pembelajaran ( Learning )

1. Bentuk kosakata pada setiap dokumen


data pelatihan.
Dokumen data latihan 2. Untuk setiap kategori vj : Model Probabilitas. NBC
a. Tentukan (himpunan dok.
Dalam kategori vj)
b. Hitung probabilitas pada setiap
kategori
c. Hitung untuk setiap kata
wk dalam kosakata pada kategori

Klasifikasi (Classify)

1. Hitung untuk
Testing data / data uji setiap kategori vj. kategori dokumen

2. Tentukan kategori dengan nilai

Maksimalnya sebagai hasil


kategorisasi.

Gambar 6. Tahapan proses klasifikasi dokumen dengan algoritma

Naive Bayes Classifier (Hamzah, 2012)


27

B. PENELITIAN TERKAIT

Beberapa penelitian terkait text miningini telah dilakukan dari tahun

ke tahun dengan beberapa metode dan algoritma klasifikasi sebagai

berikut.

1. Amir Hamzah pada tahun 2012 dengan judul “klasifikasi text

dengan naive bayes classifier(NBC) untuk pengelompokan text

berita dan abstrak akademis ”. Penelitian ini menerapkan fitur kata

pada kata unik yang di cacah menjadi beberapa bagian

berdasarkan frekuensi dengan minimal dokumen yang memuat

kata tersebut sebagai dasar pemilihan kata. Hasil penelitian

menunjukkan hasil klasifikasi dokumen berita 91% dan abstrak

akademis 82%.

2. C. Ramasubramanian dkk pada tahun 2013 dengan judul “Effective

Pre-Precessing Activities in Text Mining using Improved Porter’s

Stemming Algorithm” dalam penelitian ini tidak melakukan

klasifikasi namun mengevaluasi efektifitas proses pada

preprocessing khususnya pada proses stemming, dengan

menggunakan algoritma Porter Stemmer dapat meminimaliskan

jumlah kata dalam proses pengubahan kata ke kata dasar. 2

perbandingan yang dilakukan menggunakan Stop Removal Tanpa

Porter dan Stop Removal + Porter hasil yang didapat mampu

mengurangi jumlah kata dari 500-275 kata.


28

3. Cristian Moral dkk tahun 2014 dengan judul “A survey Of Stemming

Algorithm In Information Retrieval” dalam penelitian ini juga tidak

melakukan proses klasifikasi namun melakukan survey

penggunaan dari beberapa penelitian sebelumnya tentang

algoritma stemming terdiri dari Paice/Husk, Lovins, Porter, dan “S”

Removal. Hasil evaluasi menyatakan penggunaan algoritma Lovins

dan Porter yang baik dalam proses stemmingnya dilihat dri

keakuratan sistem bekerja. Dan rata-rata penelitian yang

menggunakan bahasa inggris dalam dokumen/text pasti salah satu

algoritma ini diterapkan sebagai tahap preprocessing.

4. Ashis Kumar Mandal dkk tahun 2014. Judul “Supervised Learning

Methods For Bangla Web Document Categorization” pada

penelitian ini penulis melakukan perbandingan hasil kategori dari uji

coba beberapa metode yaitu DT(Decission Tree), KNN (K-Nearest

Neighbour), NBC(Naive Bayesian Classification) dan SVM(Support

Vector Machine)Akurasi terbaik pada SVM 98,14%, selanjutnya

NBC 85,22%, DT 80,65% dan KNN 74,24%.

5. G. Keerthika dkk tahun 2015. Judul “Feature Subset Evaluation and

Classification using Naive Bayes Classifier” pada penelitian ini

menggunakan metode Naive Bayes Classifier dalam proses

klasifikasinya dan menggabungkan 2 algoritma pemilihan fitur

Information Gain dan Gain Ratio sehingga hasil akurasi yang

didapatkan sebesar 91%.


29

6. Dio Ariadi dkk pada tahun 2015, dengan judul “Klasifikasi Berita

Indonesia Menggunakan Metode Naive Bayesian Classification dan

Support Vector Machine dengan ConfixStripping Stemmer” dalam

penelitian ini penulis melakukan perbandingan akurasi klasifikasi

menggunakan Naive Bayes dan Support Vector Machine, juga

menerapkan algoritma Confix Stripping Stemmer sebagai tahap

ekstraksi fiturnya. Akrurasi NBC 82,2% sedangkan SVM 88,1%.

7. Amalia dkk pada tahun 2015 dengan judul “Klasifikasi Artikel Berita

Bahasa Indonesia Berbasis Naive Bayes Classifier menggunakan

Confix-Stripping Stemmer”. Penelitian ini menggunakan NBC

sebagai proses klasifikasinya dan menerapkan algoritma Confix

Stripping Stemmer dalam proses preprocessingnya hasil akurasi

terbaik didapat dari 10 uji coba dari Cross Validation sebesar

86,97%

8. Fajar R Hariri dkk pada tahun 2015 dengan judul “Learning Vector

Quantization untuk Klasifikasi Abstrak Tesis” Dalam penelitian

sistem klasifikasi LVQ ini menerapkan pemilihan feature selection

dengan reduksi dimensi, rata – rata akurasi yang didapat 90% dari

hasil learning rate 0,1-0,5.

9. I Gusti A dkk pada tahun 2016 dengan judul “Optimasi naive bayes

dengan pemilihan fitur dan pembobotan gain ratio”. Dalam

penelitian sistem klasifikasi naive bayes ini menerapkan metode


30

pemilihan feature optimasi pembobotan dengan gain ratio. Akurasi

yang didapatkan 91% dari 2 kali uji coba.

C. STATE OF THE ART

Pada Tabel 10. diperlihatkan state of the art dari beberapa penelitian

terkait yang membahas tentang klasifikasi text mining telah dilakukan dari

4 tahun terakhir.

Tabel 10. Stae Of The Art

Alg. Ekstraksi
Judul Preproce Tinjauan Data/ Hasil
Peneliti Tahun Fitur/
Penelitian ssing Akurasi
Klasifikasi

Klasifikasi Teks Klasifikasi text bahasa


Dengan Naive Prosiding Seminar indonesia/text berita 91%
stopword
Bayes Classifier Nasional Aplikasi Fitur kata di dilakuka5 kali filter kata
removal,
Amir Hamzah (NBC)Untuk Sains & Teknologi cacah/Naive dengan DF, astrak
Term
Pengelompokan (SNAST) Periode III bayes akademis 82% dilakuka
Frequency,
Teks Berita Dan ISSN:1979-911X 5 kali filter kata dengan
Abstrak Akademis DF,
International Journal
Effective Pre-
of Advanced
Processing Menunjukan dengan
Research in
C.Ramasubram Activities in Text Stop menggunakan Algoritma
Computer and Porter’s
anian dan R. Mining using removal, Porter Stemmer mampu
Communication Stemming
Ramya Improved Porter’s stemming menguragi jumlah kata
EngineeringVol. 2,
Research yang sudah dilakukan

Stemming dari 500-275 kata


Issue 12, December
Algorithm
2013
Survey memberikan
Escuela Técnica
referensi dalam
Superior de
penggunaan text bahasa
Ingenieros
inggris hanya lovins dan
Cristian Moral, A survey of Informáticos,
porter yang baik dalam
Angélica de stemming Universidad Paice/Husk,
proses stemmingnya
Antonio, algorithms in Politécnica de - Lovins,Porter,S
dilihat dri keakuratan
Ricardo Imbert information Madrid, Removal
sistem bekerja namun
dan Jaime retrieval SpainInformation
jumlah data mnjadi
ResearchVOL. 19
pertimbangan untuk
NO. 1, MARCH,
memilih salah satu
2014
algoritma ini.
Decision Tree(C
International Journal
Supervised Case 4.5), K-Nearest Klasifikasi web dokumen
of Artificial
Ashis Kumar Learning Method folding, Neighbour menggunakan metode
Intelligence &
Mandal Dan For Bangla Web tokenizing,F (KNN), Naïve DT 80,65%, KNN
Applications (IJAIA),
Rikta Sen Document iltering,stem Bayes (NB), and 74,24%, NB 85,22% dan
Vol. 5, No. 5,
Categorization ming Support Vector SVM 89,14%
September 2014
Machine (SVM)
Journal of Network
Communications and
Feature Subset Case
Emerging Gain Ratio dan Hasil akurasi klasifikasi
G. Keerthika Evaluation and folding,
Technologies Information dari penggabungan 2
dan D. Saravana Classification using tokenizing,F
(JNCET) Gain/ Naive metode pemilihan fitur
Priya Naive Bayes iltering,stem
www.jncet.org Bayes Classifier 91%
Classifier ming
Volume 1, Issue 1,
March (2015)
31

Tabel 10. ( Lanjutan )

Alg. Ekstraksi
Judul Preproce Tinjauan Data/ Hasil
Peneliti Tahun Fitur/
Penelitian ssing Akurasi
Klasifikasi

Klasifikasi Berita
Indonesia
Menggunakan
JURNAL SAINS DAN Case Confix-striping KlasifikasiNBC dengan
Metode Naive
Dio Ariadi dan SENI ITS Vol. 4, folding, stemmer dan TF menerapkan Confix-
Bayesian
Kartika No.2, (2015) 2337- tokenizing,F IDF/ naive bayes striping stemmertext
Classification dan
Fithriasari 3520 (2301-928X iltering, dn support bahasa indonesia / NBC
Support Vector
Print) 2015 stemming Vector machine 82,2% dan SVM 88,1%
Machine dengan
Confix Stripping
Stemmer
Research yang sudah dilakukan

Klasifikasi
ArtikelBerita
Klasifikasi NBC
Amalia Anjani Berbahasa
Case dengan menerapkan
A. Arif Indonesia 2015 Confix-striping
folding, Confix-striping
Djunaidy, BerbasisNaive digili.its.ac.id./ITS- stemmer,
tokenizing, stemmer text bahasa
Renny P. Bayes Classifier Undergraduate - Naive Bayes
Filtering, indonesia / Validasi 10
Kusumaward MenggunakanC 384495210100106 Classifier
stemming cross-validation , NBC
ani onfix-
86.97%.
StrippingStemm
er

Klasifikasit LVQ
Fajar Learning Vector Stop Reduksi
Citec Jurnal ISSN: dengan menerapkan
Rohman Quantization word(Filter dimensi,
2354-5771, APRIL teknik reduksi dimensi
H,Ema utami, untuk Klasifikasi ing),stem learning vector
2015 pada bahasa
Armadyah A Abstrak Tesis ming quantization
indonesia.LVQ 90%

I Gusti. A. Optimasi Naive


Klasifikasit NBC
Socrates, Bayes dengan LONTAR
Case Gain ratio/ dengan menerapkan
Afrizal L. Pemilihan Fitur KOMPUTER VOL.
folding, naive bayes Pemilihan Fitur text
Akbar, dan M. dan 7, NO.1, APRIL
tokenizing, weighted bahasa
Sonhaji Pembobotan 2016
indonesia.NBC 91%
Akbar Gain Ratio
Text Mining
Untuk Klasifikasi Klasifikasi naive bayes
Posisi Research

Case
Konten Abstrak TW(Term Classifier dengan 9
folding,
Jurnal Bahasa Weighting)RD( kali uji coba pada
tokenizing,
Syukriyanto Inggris Reduksi reduksi dimensi
2017 Filtering,St
Latif Menggunakan Dimensi), / program dan
emming(P
metode Reduksi Naive Bayes menggunakan
orter
dimensi dan Classifier Confusion Matrix
stemmer)
Naive Bayes dengan hasil 95,33%
Classifier
32

D. KERANGKA PIKIR

Problem

Klasifikasi Konten Abstrak saat ini memiliki kekurangan :

 Fitur Kata : Banyaknya jumlah kata dalam suatu dokumen yang tidak
muncul pada dokumen lain.
 Klasifikasi : kesulitan dalam mengambil satu keputusan kategori manakah
konten abstrak tersebut dengan cara manual

Solution

Sistem text mining klasifikasi konten abstrak jurnal bahasa inggris


Seleksi fitur kata : Term Weighting dan Teknik Reduksi Dimensi
Klasifikasi Konten Abstrak: Naive Bayes

Analisis pengaruh Jumlah kata dan waktu


komputasi pada proses klasifikasi

Target Implementation

Klasifikasi konten abstrak yang akurat dan waktu komputasi lebih


cepat

Measurement

Akurasi hasil Klasifikasi konten abstrak Jurnal


menggunakan Cofusion Matrix

Result

Sistem Komputerisasi dengan Seleksi fitur Menggunakan


term weighting dan teknik reduksi dimensi dapat
mengurangi jumlah kata, waktu komputasi lebih cepat,
meningkatkan akurasi klasifikasi dan mengetahui kategori
konten abstrak dengan akurat

Gambar 7. Kerangka Pikir Penelitian


BAB III

METODE PENELITIAN

A. TAHAPAN PENELITIAN

Tahapan penelitian ini diperlihatkan pada Gambar 8 berikut.

Studi literatur mengenai penelitian text mining


dan algoritma yang digunakan untuk klasifikasi

Pengambilan Data

Perncangan sistem dan implementasi metode


untuk klasifikasi text mining konten abstrak
jurnal

Uji coba system, validasi dan


implementasi program

Analisis dan
pembuatan laporan

Gambar 8. Tahapan Penelitian

Berdasarkan tahapan penelitian pada Gambar 8. Dijelaskan secara

lebih rinci sebagai berikut:

1. Studi literatur mengenai penelitian text mining dan algoritma yang

digunakan pada klasifikasi. Studi literatur merupakan tahap awal pada

penelitian ini dengan mencari sejumlah referensi dari jurnal nasional

maupun internasional, buku, artikel, dan laporan penelitian terkait text

mining beserta algoritma klasifikasi yang digunakan. Pencarian studi


34

2. literatur terkait algoritma yang digunakan, yaitu preprocessing,feature

selection dan klasifikasi.

3. Pengambilan data. Data yang digunakan merupakan data konten

abstrak jurnal berekstensi file PDF(Portable Document Format), yang

di download dari internet pada halaman www.computer.org sebanyak

150 Konten Abstrak, dan akan digunakan untuk data latih dan data uji.

4. Perancangan sistem dan implementasi metode untuk klasifikasi text

mining konten abstrak jurnal. Pada tahap ini akan dilakukan

preprocessing, melakukan proses transformasi dari kata menjadi

angka/ nilai vector dan proses feature selection sebagai pemilihan fitur

kata dan memberikan bobot nilai pada tiap kata kemudian dilakukan

proses klasifikasi. Metode Naive Bayes yang digunakan pada sistem

klasifikasi. Selanjutnya dilakukan perancangan sistem menggunakan

software PHP Designer 8.0.

5. Uji coba sistem dan analisa. Pada tahapan ini, sistem yang sudah

dirancang selanjutnya diuji untuk melihat. Selain itu dilakukan juga

proses analisa terhadap parameter-parameter yang ada.

6. Pembuatan laporan. Tahapan akhir yang dilakukan adalah melakukan

penulisan laporan secara menyeluruh sebagai bahan publikasi dan

laporan akhir magister.


35

B. WAKTU DAN LOKASI PENELITIAN

1. Waktu

Waktu Penelitian akan dilaksanakan selama 8 bulan dimulai pada

bulan Maret 2016 sampai Oktober 2017.

2. Lokasi

Penelitian dilakukan di Lab. Kecerdasan Buatan Program Studi

Teknik Informatika Departemen Informatika Fakultas Teknik

Universitas Hasanuddin.

C. JENIS PENELITIAN

Jenis penelitian ini merupakan penelitian eksperimental yang bersifat

analisis sehingga dari ruang lingkup masalah dapat dilakukan dengan

metode studi pustaka (library research), metode pengumpulan data (field

research) dan perancangan sistem serta analisis.

D. SUMBER DATA

Hal pertama yang dilakukan adalah pengambilan data file PDF berupa

konten abstrak jurnal bahasa inggris yang didownload dari internet pada

www.computer.org. Data yang digunakan pada sistem ini terdiri atas 2 jenis

data yaitu :

1. Data Latih

Data latih adalah data yang telah melalui proses latih pada sistem

untuk membentuk model pola dan telah diketahui kategorinya. Data

yang digunakan sebanyak 150 sampel konten abstrak jurnal bahasa


36

inggris yang terdiri dari 50 konten abstrak jurnal berkategori Data

mining, 50 konten abstrak jurnal berkategori Intelligent transport

system, dan 50 konten abstrak jurnal berkategori Multimedia. Gambar

9. (a),(b) dan (c) memperlihatkan antar muka sistem dari sebagian

data latih pada tiap kategori yang digunakan pada sistem.

(a)

(b)
37

(c)

Gambar 9. (a),(b) dan (c) antar muka sistem sebagian data latih pada tiap

kategori

2. Data Uji

Data Uji merupakan data konten abstrak jurnal yang diinput dan

disimpan pada database kemudian akan dipangggil kembali untuk

selanjutnya menuju ke proses pengujian/prediksi sistem dengan data

yang telah dimodelkan pada proses latih untuk mengetahui

keakuratan model pola dalam menentukan jenis kelas pada tahap

klasifikasi. Data yang digunakan untuk data uji adalah konten abstrak

jurnal bahasa inggris yang belum diketahui kelas/kategorinya. Pada

Gambar 10. memperlihatkan antar muka sebagian data uji yang

digunakan pada sistem.


38

Gambar 10. Antar muka sistem sebagian data uji pada sistem.

E. PERANCANGAN SISTEM

Berdasarkan sistem text mining yang akan dibuat dalam kedua

proses ini sama-sama melalui tahapan preprocessing, proses pelatihan

akan menyimpan hasil pemodelan pada database yang nantinya akan

digunakan pada proses pengujian seperti yang telah dirancang pada

Gambar 11.

Training Process

Input konten Preproces Feature Pemodelan


abstrak jurnal sing Selection NBC
Database

Testing Process
Input konten Preproces Feature Pengujian NBC
abstrak jurnal sing Selection

Hasil

Gambar 11. Desain sistem


39

Penelitian ini terbagi atas 2 tahapan yaitu tahap pelatihan dan tahap

pengujian. Data masukan sistem yang akan diolah mengunakan format

dokumen PDF. Jumlah konten abstrak yang digunakan seluruhnya

berjumlah 150 file. Pada lampiran memperlihatkan Inputan data latih dan

data uji yang digunakan pada penelitian ini. Sampel isi file konten abstrak

jurnal yang menjadi data masukan pada sistem diperlihatkan pada Gambar

12.

Gambar 12. Sampel isi konten abstrak


40

1. Tahap Preprocessing

Tahap ini dilakukan setelah proses pengambilan data. Data

konten abstrak jurnal kemudian dilakukan 2 tahap seperti text

preprocessing dan feature selection. Dalam text preprocessing ada

beberapa tahap yang dilakukan seperti case folding, tokenizing, filtering

dan stemming, dan document matrix merupakan tahap dari feature

selection. Dapat dilihat sebagai berikut:

A. Text Preprocessing.

a) Case Folding

Mengubah semua huruf dalam dokumen menjadi huruf

kecil.Hanya huruf ‘a’ sampai dengan ‘z’ yang diterima. Karakter

selain huruf dihilangkan dan dianggap delimiter. Berikut Flowchart

proses case folding ditujukan pada Gambar 13.

Gambar 13. Flowchart proses case folding


41

Proses merubah semua huruf menjadi huruf kecil pada

source code berikut.


$casefolding = strtolower($pisahkata[0]);

b) Tokenizing / parsing

Tahap pemotongan string input berdasarkan tiap kata yang

menyusun. tahap ini dapat dilihat pada Gambar 14.

Gambar 14. Implementasi tahapan tokenizing.

Proses pemotongan string berdasarkan tiap kata seperti

pada source code berikut.


$tokenizingSubstring= preg_replace('/[^a-zA-Z0-9 ]/','',$casefolding);

c) Filtering

Tahap mengambil kata - kata penting dari hasil tokenizing.

Bisa menggunakan algoritma stoplist (membuang kata yang kurang

penting) atau wordlist (menyimpan kata penting). Stoplist /

Stopword adalah kata - kata yang tidak deskriptif yang dapat


42

dibuang dalam pendekatan bag-of-words. Flowchart menggunakan

Stopword dapat dilihat pada Gambar 15.

Gambar 15. Flowchart proses Stopword (Filtering)

Sehingga implementasi tahapan stopword pada program

dapat dilihat pada Gambar 16.

Gambar 16. Implementasi tahapan Stopword(filtering).


43

Proses pengambilan kata – kata penting seperti pada source

code berikut.

<?php

function hapusStopWords($input){

// Stop words

$commonWords = array('a','able','about','above','abroad','1 ','2 ','3


','according','accordingly','across','actually','adj','after','afterwards','again','a
gainst','ago','ahead','ain\'t','all','allow','allows','almost','alone','along','along
side','already','also','although','always',am','amid','amidst','among','amongs
t','an','and','another','any','anybody','anyhow','anyone','anything','anyway',
'anyways','anywhere','apart','appear','appreciate','appropriate','are','aren,
't','around','as','a\'s','aside','ask','asking','associated','at','available','away','a
wfully','b','back','backward','backwards','be','became','because','become','b
ecomes','becoming','been','before','beforehand','begin','behind','being','bel
ieve','below','beside','besides','best','better','between','beyond','both','brie
f','but','by','c','came','can','cannot','cant','can\'t','caption','cause','causes','c
ertain','certainly','changes','clearly','c\'mon','co','co.','com','come','comes',

'concerning','consequently','consider','considering','contain','containing','cn
tains','corresponding','could','couldn\'t','course','c\'s','currently','d','dare','d
aren\'t','definitely','described','despite','did','didn\'t','different','directly','do
','does','doesn\'t','doing','done','don\'t','down','downwards','during','e','eac
h','edu','eg','eight','eighty','either','else','elsewhere','end','ending','enough',
'entirely','especially','et','etc','even','ever','evermore',‘every','everybody','e
veryone','everything','everywhere','ex','exactly','example','except','f','fairly',
'far','farther','few','fewer','fifth','first','five','followed','following','follows','f
or','forever','former','formerly','forth','forward','found','four','from','further
','furthermore','g','get','gets','getting','given','gives','go','goes','going','gone',
'got','gotten','greetings','h','had','hadn\'t','half','happens','hardly','has','has
n\'t','have','haven\'t','having','he','he\'d','he\'ll','hello','help','hence','her','h
ere','hereafter','hereby','herein','here\'s','hereupon','hers','herself','he\'s','h
i','him','himself',

return preg_replace('/\b('.implode('|',$commonWords).')\b/','-',$input);

?>
44

d) Stemming

Tahap mencari root kata dari tiap kata hasil filtering. Pada

tahap ini dilakukan proses pengembalian berbagai bentukan kata

ke dalam suatu representasi yang sama. Tahap ini menggunakan

algoritma Porter’s Stemmer untuk teks berbahasa inggris.

Implementasi proses porter stemmer pada program ditujukan pada

gambar 17.

Gambar 17. Implementasi tahapan Porter Stemmer

Proses mencari root kata /sufiks Porter Stemmer seperti pada

source code berikut.

private static function step1ab($word)


{
// Part a
if (substr($word, -1) == 's') {

self::replace($word, 'sses', 'ss')


OR self::replace($word, 'logies', 'logy')
OR self::replace($word, 'ties', 'ty')
OR self::replace($word, 'ates', 'ate')
45

OR self::replace($word, 'tes', 'tes')


OR self::replace($word, 'ies', 'i')
OR self::replace($word, 'ss', 'ss')
OR self::replace($word, 'dos', 'dos')
OR self::replace($word, 'gps', 'gps')
OR self::replace($word, 'tatus', 'tatus')
OR self::replace($word, 'i', '')
OR self::replace($word, 's', '')
OR self::replace($word, 'ls', 'l')
OR self::replace($word, 'ness', '')
OR self::replace($word, 'ess', '');

// Part b
if (substr($word, -2, 1) != 'e' OR !self::replace($word, 'eed',
'ee', 0)) { // First rule
$v = self::$regex_vowel;

// ing and ed
if ( preg_match("#$v+#", substr($word, 0, -4)) &&
self::replace($word, 'ging', 'ge')
OR preg_match("#$v+#", substr($word, 0, -4)) &&
self::replace($word, 'ting', 't')
OR preg_match("#$v+#", substr($word, 0, -3)) &&
self::replace($word, 'ing', 'ing')
OR preg_match("#$v+#", substr($word, 0, -2)) &&
self::replace($word, 'ed', 'ed')) { // Note use of && and OR, for
precedence reasons
// If one of above two test successful
if ( !self::replace($word, 'at', 'ate')
AND !self::replace($word, 'bl', 'ble')
AND !self::replace($word, 'iz', '')) {

// Double consonant ending


if ( self::doubleConsonant($word)
AND substr($word, -2) != 'll'
AND substr($word, -2) != 'ss'
AND substr($word, -2) != 'zz') {

$word = substr($word, 0, -1);

} else if (self::m($word) == 1 AND self::cvc($word)) {


$word .= 'e';
}
}
}
}

return $word;

* Step 2
*
* @param string $word Word to stem
*/
46

.
case 'g':
self::replace($word, 'logi', 'log', 0);
break;

case 'l':
self::replace($word, 'entli', 'ent', 0)
OR self::replace($word, 'ousli', 'ous', 0)
OR self::replace($word, 'alli', 'al', 0)
OR self::replace($word, 'bli', 'ble', 0)
OR self::replace($word, 'eli', 'e', 0);
break;

case 'o':
self::replace($word, 'ization', 'ize', 0)
OR self::replace($word, 'ication', 'ication',0)
OR self::replace($word, 'lation', 'lation',0)
OR self::replace($word, 'ation', 'ate', 0)
OR self::replace($word, 'ator', 'ate', 0);
break;

case 's':
self::replace($word, 'iveness', 'ive', 0)
OR self::replace($word, 'fulness', 'ful', 0)
OR self::replace($word, 'ousness', 'ous', 0)
OR self::replace($word, 'alism', 'al', 0);
break;

case 't':
self::replace($word, 'biliti', 'ble', 0)
OR self::replace($word, 'aliti', 'al', 0)
OR self::replace($word, 'iviti', 'ive', 0);
break;
}

return $word;
}

Hasil porter stemmer kemudian akan disimpan pada database. Dan

akan dipanggil dalam sistem pada proses selanjutnya


47

B. Feature Selection

e) TW(Term Weighting)

Tahap pemberian bobot kata yang muncul pada setiap konten.

Tahap ini dapat dilihat pada implementasi program pada Gambar

18.

Gambar 18. Implementasi tahapan hasil TW(Term Weighting)

Proses pemberian bobot kata dapat dilihat pada source code

berikut.

<?php
$no=1;
$N = mysql_num_rows(mysql_query("SELECT * FROM
dokumen"));
$row = mysql_query("SELECT * FROM tfidf ORDER BY
File_Id
<td style='width:20px;'>$no</td>
<td>$dok[File_Judul]</td>
<td>$r[Kata]</td>
<td style='text-align:center;'>$idf</td>
</tr>";
$no++;
?>
DESC");
while($r = mysql_fetch_array($row)){
$dok = mysql_fetch_array(mysql_query("SELECT
* FROM dokumen WHERE File_Id='$r[File_Id]'"));
$df = mysql_fetch_array(mysql_query("SELECT tf,
48

sum(tf) AS
jml FROM tfidf WHERE Kata='$r[Kata]'"));
$idf = round(log10($N/$df['jml']),3)+1;
echo "
<tr class='gradeX'>
<td style='width:20px;'>$no</td>
<td>$dok[File_Judul]</td>
<td>$r[Kata]</td>
<td style='text-align:center;'>$idf</td>
</tr>";
$no++;
?>

Hasil TW(Term Weighting) dengan pemberian bobot nilai pada

Intelligence
tiap kata akan dihitung Transport
probabilitasnya untuk mendapat nilai
Data Mining System Multimedia
Term TF Term
probabilitas pada tiap kategori. TF Term TF
accuracy 15 ability 7 access 11
f) achieve
Reduksi Dimensi
7 agent 11 achieve 10
active 4 algorithm 23 adapt 5
Tahap reduksi 11
acupoint
dimensianalysis
dilakukan untuk9 mengecilkan
address
dimensi data
7
addition 5 application 20 algorithm 7
sehingga waktu komputasi dibutuhkan lebih sedikit. Menggunakan
algorithm 20 architecture 10 application 23
amount
150 data 9 abstrak
konten areadengan 75247kata. Dari
approach 17
7524 kata yang
analysi 19 artificial 7 architecture 17
ada, ada
application beberapa
16 kata yang hanya8 muncul
average disatu atau dua
bandwidth 7
applied 9 background 8 based 17
konten
approach abstrak12 saja, based
sehingga kata 27
tersebut dapat dihiraukan.
called 7
approache 11 behavior 7 capturing 9
Berikut Tabel 11 menunjukan term dan jumlah term dengan
article 9 called 8 challenge 8
automat
reduksi dimensi9 menggunakan
center 10 30%.
parameter code 11
based 27 column 11 cognit 8
biolog 10 concentrate 10 communication 8
biomed 10 congestion 7 computer 8
cancer 9 context 10 content 20
challenge 8 control 20 control 11
character 21 controller 7 data 43
class 11 data 33 design 8
classification 14 deep 7 designed 8
clustering 13 delay 6 develop 11
common 7 demand 9 device 22
complex 6 describe 8 document 7
composed 5 design 24 domain 10
computate 5 detection 8 due 10
concept 7 develop 17 environ 12
condition 6 developed 11 event 10
content 10 device 9 experi 15
context 7 digital 9 experimental 10
create 6 dynamic 13 human 7
49

Tabel 11. Reduksi Dimensi dari Parameter 30%

Intelligence Transport
Data Mining Multimedia
System
Term TF Term TF Term TF

accuracy 15 ability 7 access 11


achieve 7 agent 11 achieve 10
active 4 algorithm 23 adapt 5
acupoint 11 analysis 9 address 7
addition 5 application 20 algorithm 7
algorithm 20 architecture 10 application 23
amount 9 area 7 approach 17
analysi 19 artificial 7 architecture 17
application 16 average 8 bandwidth 7
applied 9 background 8 based 17
approach 12 based 27 called 7
approache 11 behavior 7 capturing 9
article 9 called 8 challenge 8
automat 9 center 10 code 11
based 27 column 11 cognit 8
biolog 10 concentrate 10 communication 8
biomed 10 congestion 7 computer 8
cancer 9 context 10 content 20
challenge 8 control 20 control 11
character 21 controller 7 data 43
class 11 data 33 design 8
classification 14 deep 7 designed 8
clustering 13 delay 6 develop 11
common 7 demand 9 device 22
complex 6 describe 8 document 7
composed 5 design 24 domain 10
computate 5 detection 8 due 10
concept 7 develop 17 environ 12
condition 6 developed 11 event 10
content 10 device 9 experi 15
context 7 digital 9 experimental 10
create 6 dynamic 13 human 7
cyber 6 effect 8 image 18
data 31 energy 19 import 7
database 11 environ 20 improve 8
dataset 13 evaluate 11 informate 30
describe 14 experi 17 interface 11
50

detection 10 experimental 10 internet 11


develop 10 fault 15 introduce 8
difficult 7 flow 9 knowledge 9
document 21 framework 19 learning 12
domain 8 furniture 10 manag 8
effect 13 home 12 mep 10
embedding 8 identify 6 metadata 8
engine 7 image 10 method 17
entity 7 impact 7 mobile 21
evaluate 10 implementate 11 model 17
exist 7 improve 9 multimedia 103
experimental 9 increase 10 multiple 11
extracted 12 informate 29 network 35
extraction 12 integrate 7 object 11
factor 10 intelligence 42 operate 9
feature 39 key 7 optim 8
field 11 learning 11 order 10
form 8 light 9 packet 10
human 15 method 16 paper 29
image 21 mobile 10 platform 9
import 11 model 17 present 14
informate 32 module 20 presented 7
knowledge 10 network 38 process 11
labeling 12 neural 7 processing 13
language 13 node 13 production 6
level 9 object 12 professional 7
line 12 operate 8 propose 13
local 9 optim 15 proposed 33
locate 7 paper 34 protocol 7
method 56 perform 16 prototype 6
mining 43 power 9 provide 10
model 37 present 20 provider 6
natural 8 problem 15 quality 20
network 8 processing 8 realtime 8
new 12 propose 10 research 10
number 10 proposed 16 resource 7
ocr 9 protocol 18 result 22
opinion 11 provide 10 retrieval 8
order 9 quality 9 scheme 7
paper 37 rate 13 service 17
pattern 16 recommendate 7 session 7
51

perform 12 reduce 8 set 10


prediction 8 requir 9 show 14
present 13 required 8 solution 15
problem 11 research 12 source 13
process 16 result 24 support 14
processed 4 risk 9 system 32
processing 8 robot 7 task 7
propose 12 safety 9 teaching 7
proposed 20 security 10 technique 9
rate 8 sensor 17 technology 12
recognition 18 service 23 text 10
report 8 show 18 tradition 9
representate 11 showed 7 traffic 8
research 16 simulation 17 type 9
review 10 smart 7 user 40
scene 7 solution 12 video 23
security 8 spectrum 8 web 22
segmentate 9 strategy 10 wireless 13
selection 13 student 8 work 9
semantic 7 study 12
sentiment 12 system 100
show 17 technique 12
set 11 technology 11
source 8 test 7
step 10 time 18
stock 9 tracking 8
structure 13 traffic 18
study 22 transport 30
system 17 transportate 12
task 12 user 27
technique 15 vehicle 9
text 126 video 9
tool 13 virtual 8
vector 10 water 8
visual 11 wireless 13
vulnerability 10 work 11
web 16
word 25
52

Tabel 11 memperlihatkan hasil implementasi reduksi dimensi,

menghasilkan 327 kata yang sering muncul dalam seluruh kategori

berdasarkan parameter 30%.

Proses reduksi dimensi dengan parameter 30% dapat dilihat pada

source code berikut.

<?php

/**
* Flattens a multi demensional array into a one dimensional
* to be compatible with hidden html fields.
. *
* @param array $array
* Array in the form:
* array(
* 'a' => term_DM(
* 'b' => '30%'
* )
* )
*@param array $array
* Array in the form:
* array(
* 'a' => term_ITS(
* 'b' => '30%'
* )
* )
* @param array $array
* Array in the form:
* array(
* 'a' => term_MM(
* 'b' => '30%'
* )
* )
*/
function flatten_array($array) {
// Continue until $array is a one-dimensional array.
$continue = TRUE;
while ($continue) {
$continue = FALSE;
/
foreach ($array as $key => $value) {
if (is_array($value)) {
$continue = TRUE
foreach ($value as $term_key => $term_value) {
$array[$key . '[' . $term_key . ']'] = $term_value;
}
unset($array[$key]);
}
}
}

return $array;
}

?>
53

2. Pemodelan Naive Bayes Classifier

Sistem dapat menghilangkan pembagi, karena nilainya konstan

untuk setiap kelas, dan hanya perlu meranking dari pada menghitung

probabilitas persisnya. Sistem juga dapat menggunakan asumsi

independen untuk menyatakan P(kategori | kata) sebagai perkalian

(product) dari P(kata | kategori) untuk semua kata dalam kalimat

tersebut. Sehingga kita mengestimasi P(kata | kategori) sebagai

count(this kata in class) + 1 / count(all kata in class) + count( all kata

)Tahapan lanjutan setelah mendapatkan nilai matriks dari tiap kata

selanjutnya dilakukan proses klasifikasi untuk menentukan model

atau fungsi yang membedakan konsep atau kelas data, dengan

tujuan untuk memperkirakan kelas yang tidak tersedia pada objek,

kembali pada aturan bayes P(X│Y)= maka akan dibuat

sebuah asumsi tentang bagaimana cara menghitung probabilitas dari

kemunculan dokumen yang setara dengan dokumen lain dari

probabilitas kemunculan tiap kata didalamnya. Hal ini menyebabkan

tidak ada hubungan antara kata yang satu dengan kata yang lain.

Asumsi independen ini tidak sepenuhnya benar, banyak kata-kata

lebih sering muncul bersama dari pada muncul secara individual, tapi

hal ini menyederhanakan proses klasifikasi.


54

Rumus dasar klasifikasi naive bayes sebagai berikut:

P( │ )= (8)

P( │ ) adalah probabilitas kemunculan kategori dengan kata

” konstan” untuk semua kategori sehingga hanya terbentuk

P( │ )x yang perlu dimaksimumkan

adalah probabilitas Wk

adalah kategori yang tersedia ( C1,C2,...Ci )

adalah probabilitas kemunculan kategori Ci

adalah probabilitas kemunculan kata Wk

P( │ ) adalah probabilitas kemunculan kata Wk pada ketegori Ci

Sehingga persamaan untuk menyelesaikan permasalahan ini

sebagai berikut:

P(kata│kategori)= (9)

Kata adalah kemunculan tiap kata pada suatu kategori

Kategori adalah kategori pada suatu kelas

Dalam pengklasifikasian terdapat 2 proses yang dilakukan yaitu:

1. Proses training

Pada proses ini dilakukan training set yang sudah diketahui label-

labelnya untuk membangun model. Pada proses ini menggunakan

probabilias jumlah kata yang telah di stemming pada stiap data

latih yang digunakan.


55

Rumus yang digunakan sebagai berikut.

P( ) (10)

P( ) adalah jumlah konten abstrak yang memiliki kategori

│D│ adalah jumlah seluruh training konten abstrak.

Berikut menunjukan perhitungan probabilitas dokumen pada tabel

12.

Tabel. 12 Probabilitas Dokumen Latih

No Ci fd(ci) |D| P(ci) = fd(ci) / |D|


1 Data Mining 50 150 0,333333333
Intelligent
2 Transport 50 150 0,333333333
System
3 Multimedia 50 150 0,333333333

P( │ ) (11)

adalah nilai kemunculan kata pada tiap kategori

adalah jumlah keseluruhan kata pada kategori

adalah jumlah keseluruhan kata.

Sehingga persamaanya sebagai berikut:

P(kategori) (12)

P( │ )

(13)

Ringkasan proses pelatihan Naive Bayes Classifier sebagai

berikut:
56

1) Jumlah semua konten abstrak dalam kategori ─ Jumlah seluruh

data training konten abstrak

2) Untuk setiap kelas kategori lakukan :

a. Jumlah konten abstrak pada kategori ─ Jumlah kata yang

berada pada kategori

b. Hitung P(Kategori) dengan persamaan (12)

c. Untuk setiap Kata pada kategori semua kata lakukan :

 Hitung P(Kata│kategori) dengan persamaan (13)

Berikut perhitungan probabilitas kata pada kategori Data Mining

ditunjukan pada tabel 13.

Tabel 13. Probabilitas kata pada kategori Data Mining

data mining
wk nk+1 n P(wk/ci)=(nk+1)/n+│vocabulary│
accuracy 15 116 0,003249567
achieve 7 116 0,001516464
active 4 116 0,000866551
acupoint 11 116 0,002383016
addition 5 116 0,001083189
algorithm 20 116 0,004332756
amount 9 116 0,00194974
analysi 19 116 0,004116118
application 16 116 0,003466205
applied 9 116 0,00194974
approach 12 116 0,002599653
approache 11 116 0,002383016
article 9 116 0,00194974
automat 9 116 0,00194974
based 27 116 0,00584922
biolog 10 116 0,002166378
biomed 10 116 0,002166378
cancer 9 116 0,00194974
challenge 8 116 0,001733102
57

character 21 116 0,004549393


class 11 116 0,002383016
classification 14 116 0,003032929
clustering 13 116 0,002816291
common 7 116 0,001516464
complex 6 116 0,001299827
composed 5 116 0,001083189
computate 5 116 0,001083189
concept 7 116 0,001516464
condition 6 116 0,001299827
content 10 116 0,002166378
context 7 116 0,001516464
create 6 116 0,001299827
cyber 6 116 0,001299827
data 31 116 0,006715771
database 11 116 0,002383016
dataset 13 116 0,002816291
describe 14 116 0,003032929
detection 10 116 0,002166378
develop 10 116 0,002166378
difficult 7 116 0,001516464
document 21 116 0,004549393
domain 8 116 0,001733102
effect 13 116 0,002816291
embedding 8 116 0,001733102
engine 7 116 0,001516464
entity 7 116 0,001516464
evaluate 10 116 0,002166378
exist 7 116 0,001516464
experimental 9 116 0,00194974
extracted 12 116 0,002599653
extraction 12 116 0,002599653
factor 10 116 0,002166378
feature 39 116 0,008448873
field 11 116 0,002383016
form 8 116 0,001733102
human 15 116 0,003249567
image 21 116 0,004549393
import 11 116 0,002383016
informate 32 116 0,006932409
knowledge 10 116 0,002166378
58

labeling 12 116 0,002599653


language 13 116 0,002816291
level 9 116 0,00194974
line 12 116 0,002599653
local 9 116 0,00194974
locate 7 116 0,001516464
method 56 116 0,012131716
mining 43 116 0,009315425
model 37 116 0,008015598
natural 8 116 0,001733102
network 8 116 0,001733102
new 12 116 0,002599653
number 10 116 0,002166378
ocr 9 116 0,00194974
opinion 11 116 0,002383016
order 9 116 0,00194974
paper 37 116 0,008015598
pattern 16 116 0,003466205
perform 12 116 0,002599653
prediction 8 116 0,001733102
present 13 116 0,002816291
problem 11 116 0,002383016
process 16 116 0,003466205
processed 4 116 0,000866551
processing 8 116 0,001733102
propose 12 116 0,002599653
proposed 20 116 0,004332756
rate 8 116 0,001733102
recognition 18 116 0,00389948
report 8 116 0,001733102
representate 11 116 0,002383016
research 16 116 0,003466205
review 10 116 0,002166378
scene 7 116 0,001516464
security 8 116 0,001733102
segmentate 9 116 0,00194974
selection 13 116 0,002816291
semantic 7 116 0,001516464
sentiment 12 116 0,002599653
show 17 116 0,003682842
set 11 116 0,002383016
59

source 8 116 0,001733102


step 10 116 0,002166378
stock 9 116 0,00194974
structure 13 116 0,002816291
study 22 116 0,004766031
system 17 116 0,003682842
task 12 116 0,002599653
technique 15 116 0,003249567
text 126 116 0,02729636
tool 13 116 0,002816291
vector 10 116 0,002166378
visual 11 116 0,002383016
vulnerability 10 116 0,002166378
web 16 116 0,003466205
word 25 116 0,005415945

Berikut perhitungan probabilitas kata pada kategori Intelligent

Transport System ditunjukan pada tabel 14.

Tabel 14. Probabilitas kata pada kategori Intelligent

Transport System

Intelligence transport system


Wk nk+1 n P(wk/ci)=(nk+1)/n+│vocabulary│
Ability 7 114 0,001517122
Agent 11 114 0,002384049
Algorithm 23 114 0,004984829
Analysis 9 114 0,001950585
Application 20 114 0,004334634
Architecture 10 114 0,002167317
Area 7 114 0,001517122
Artificial 7 114 0,001517122
Average 8 114 0,001733853
Background 8 114 0,001733853
Based 27 114 0,005851756
Behavior 7 114 0,001517122
Called 8 114 0,001733853
Center 10 114 0,002167317
Column 11 114 0,002384049
60

Concentrate 10 114 0,002167317


Congestion 7 114 0,001517122
Context 10 114 0,002167317
Control 20 114 0,004334634
Controller 7 114 0,001517122
Data 33 114 0,007152146
Deep 7 114 0,001517122
Delay 6 114 0,00130039
Demand 9 114 0,001950585
Describe 8 114 0,001733853
Design 24 114 0,00520156
Detection 8 114 0,001733853
Develop 17 114 0,003684439
Developed 11 114 0,002384049
Device 9 114 0,001950585
Digital 9 114 0,001950585
Dynamic 13 114 0,002817512
Effect 8 114 0,001733853
Energy 19 114 0,004117902
Environ 20 114 0,004334634
Evaluate 11 114 0,002384049
Experi 17 114 0,003684439
Experimental 10 114 0,002167317
Fault 15 114 0,003250975
Flow 9 114 0,001950585
Framework 19 114 0,004117902
Furniture 10 114 0,002167317
Home 12 114 0,00260078
Identify 6 114 0,00130039
Image 10 114 0,002167317
Impact 7 114 0,001517122
Implementate 11 114 0,002384049
Improve 9 114 0,001950585
Increase 10 114 0,002167317
Informate 29 114 0,006285219
Integrate 7 114 0,001517122
Intelligence 42 114 0,009102731
Key 7 114 0,001517122
Learning 11 114 0,002384049
Light 9 114 0,001950585
Method 16 114 0,003467707
61

Mobile 10 114 0,002167317


Model 17 114 0,003684439
Module 20 114 0,004334634
Network 38 114 0,008235804
Neural 7 114 0,001517122
Node 13 114 0,002817512
Object 12 114 0,00260078
Operate 8 114 0,001733853
Optim 15 114 0,003250975
Paper 34 114 0,007368877
Perform 16 114 0,003467707
Power 9 114 0,001950585
Present 20 114 0,004334634
Problem 15 114 0,003250975
Processing 8 114 0,001733853
Propose 10 114 0,002167317
Proposed 16 114 0,003467707
Protocol 18 114 0,00390117
Provide 10 114 0,002167317
Quality 9 114 0,001950585
Rate 13 114 0,002817512
Recommendate 7 114 0,001517122
Reduce 8 114 0,001733853
Requir 9 114 0,001950585
Required 8 114 0,001733853
Research 12 114 0,00260078
Result 24 114 0,00520156
Risk 9 114 0,001950585
Robot 7 114 0,001517122
Safety 9 114 0,001950585
Security 10 114 0,002167317
Sensor 17 114 0,003684439
Service 23 114 0,004984829
Show 18 114 0,00390117
Showed 7 114 0,001517122
Simulation 17 114 0,003684439
Smart 7 114 0,001517122
Solution 12 114 0,00260078
Spectrum 8 114 0,001733853
Strategy 10 114 0,002167317
Student 8 114 0,001733853
62

Study 12 114 0,00260078


System 100 114 0,021673169
Technique 12 114 0,00260078
Technology 11 114 0,002384049
Test 7 114 0,001517122
Time 18 114 0,00390117
Tracking 8 114 0,001733853
Traffic 18 114 0,00390117
Transport 30 114 0,006501951
Transportate 12 114 0,00260078
User 27 114 0,005851756
Vehicle 9 114 0,001950585
Video 9 114 0,001950585
Virtual 8 114 0,001733853
Water 8 114 0,001733853
Wireless 13 114 0,002817512
Work 11 0,002384049

Berikut perhitungan probabilitas kata pada kategori Multimedia

ditunjukan pada tabel 15.

Tabel 15. Probabilitas kata pada kategori Multimedia

Multimedia
Wk nk+1 n P(wk/ci)=(nk+1)/n+│vocabulary│
Access 11 97 0,002392865
Achieve 10 97 0,002175332
Adapt 5 97 0,001087666
Address 7 97 0,001522732
Algorithm 7 97 0,001522732
Application 23 97 0,005003263
Approach 17 97 0,003698064
Architecture 17 97 0,003698064
Bandwidth 7 97 0,001522732
Based 17 97 0,003698064
Called 7 97 0,001522732
Capturing 9 97 0,001957799
Challenge 8 97 0,001740265
Code 11 97 0,002392865
Cognit 8 97 0,001740265
63

Communication 8 97 0,001740265
Computer 8 97 0,001740265
Content 20 97 0,004350663
Control 11 97 0,002392865
Data 43 97 0,009353926
Design 8 97 0,001740265
Designed 8 97 0,001740265
Develop 11 97 0,002392865
Device 22 97 0,00478573
Document 7 97 0,001522732
Domain 10 97 0,002175332
Due 10 97 0,002175332
Environ 12 97 0,002610398
Event 10 97 0,002175332
Experi 15 97 0,003262998
Experimental 10 97 0,002175332
Human 7 97 0,001522732
Image 18 97 0,003915597
Import 7 97 0,001522732
Improve 8 97 0,001740265
Informate 30 97 0,006525995
Interface 11 97 0,002392865
Internet 11 97 0,002392865
Introduce 8 97 0,001740265
Knowledge 9 97 0,001957799
Learning 12 97 0,002610398
Manag 8 97 0,001740265
Mep 10 97 0,002175332
Metadata 8 97 0,001740265
Method 17 97 0,003698064
Mobile 21 97 0,004568197
Model 17 97 0,003698064
Multimedia 103 97 0,022405917
Multiple 11 97 0,002392865
Network 35 97 0,007613661
Object 11 97 0,002392865
Operate 9 97 0,001957799
Optim 8 97 0,001740265
Order 10 97 0,002175332
Packet 10 97 0,002175332
Paper 29 97 0,006308462
64

Platform 9 97 0,001957799
Present 14 97 0,003045464
Presented 7 97 0,001522732
Process 11 97 0,002392865
Processing 13 97 0,002827931
Production 6 97 0,001305199
Professional 7 97 0,001522732
Propose 13 97 0,002827931
Proposed 33 97 0,007178595
Protocol 7 97 0,001522732
Prototype 6 97 0,001305199
Provide 10 97 0,002175332
Provider 6 97 0,001305199
Quality 20 97 0,004350663
Realtime 8 97 0,001740265
Research 10 97 0,002175332
Resource 7 97 0,001522732
Result 22 97 0,00478573
Retrieval 8 97 0,001740265
Scheme 7 97 0,001522732
Service 17 97 0,003698064
Session 7 97 0,001522732
Set 10 97 0,002175332
Show 14 97 0,003045464
Solution 15 97 0,003262998
Source 13 97 0,002827931
Support 14 97 0,003045464
System 32 97 0,006961062
Task 7 97 0,001522732
Teaching 7 97 0,001522732
Technique 9 97 0,001957799
Technology 12 97 0,002610398
Text 10 97 0,002175332
Tradition 9 97 0,001957799
Traffic 8 97 0,001740265
Type 9 97 0,001957799
User 40 97 0,008701327
Video 23 97 0,005003263
Web 22 97 0,00478573
Wireless 13 97 0,002827931
Work 9 97 0,001957799
65

2. Proses testing

Proses ini untuk mengetahui keakuratan model yang

dibangun pada proses training, umumnya digunakan data yang

disebut test set untuk memprediksi label.

Ringkasan proses testing Naive Bayes Classifier sebagai berikut:

1) Hasilkan probabilitas untuk masing- masing kelas sesuai

dengan persamaan (9) dengan menggunakan P(kategori) dan

P(kata│kategori) yang telah diperoleh dari pelatihan.

2) Nilai probabilitas kelas maksimum adalah kategori kelas terpilih

sebagai hasil klasifikasi dengan persamaan (5) pada bab 2.

Berikut perhitungan probabilitas nilai maksimal pada sampel data uji

1 ditunjukan pada tabel 16

Tabel 16. Probabilitas kata dan nilai maksimal pada sampel data uji 1

sampel data uji


No 1 Data Mining ITS Multimedia

1 data 0,006715771 0,007152146 0,009353926


2 semantic 0,001516464 0,000222222 0,000217533
3 multimedia 0,000216638 0,000222222 0,022405917
4 iarm 0,000216638 0,000222222 0,000217533
5 concept 0,001516464 0,000222222 0,000217533
6 develop 0,002166378 0,003684439 0,002392865
7 reranking 0,000216638 0,000222222 0,000217533
8 correlation 0,000216638 0,000222222 0,000217533
9 text 0,02729636 0,000222222 0,002175332
10 effect 0,002816291 0,001733853 0,000217533
11 rule 0,000216638 0,000222222 0,000217533
12 mining 0,009315425 0,000222222 0,000217533
13 posit 0,000216638 0,000222222 0,000217533
14 approach 0,002599653 0,000222222 0,003698064
15 reveal 0,000216638 0,000222222 0,000217533
66

16 introduced 0,000216638 0,000222222 0,001740265


17 associate 0,000216638 0,000222222 0,000217533
18 paper 0,008015598 0,007368877 0,006308462
19 explored 0,000216638 0,000222222 0,000217533
20 studied 0,000216638 0,000222222 0,000217533
21 interconcept 0,000216638 0,000222222 0,000217533
22 enhance 0,000216638 0,000222222 0,000217533
23 hidden 0,000216638 0,000222222 0,000217533
24 perform 0,002599653 0,003467707 0,000217533
25 neg 0,000216638 0,000222222 0,000217533
26 indirect 0,000216638 0,000222222 0,000217533
27 multiple 0,000216638 0,000222222 0,002392865
28 benchmark 0,000216638 0,000222222 0,000217533
29 trecvid 0,000216638 0,000222222 0,000217533
30 result 0,000216638 0,00520156 0,00478573
31 classification 0,003032929 0,000222222 0,000217533
32 dataset 0,002816291 0,000222222 0,000217533
33 show 0,003682842 0,00390117 0,003045464
34 process 0,003466205 0,000222222 0,002392865
35 factor 0,002166378 0,000222222 0,000217533
36 proposed 0,004332756 0,003467707 0,007178595
37 optimal 0,000216638 0,000222222 0,000217533
38 achieve 0,001516464 0,000222222 0,002175332
39 analysi 0,004116118 0,000222222 0,000217533
40 correspond 0,000216638 0,000222222 0,000217533
41 modality 0,000216638 0,000222222 0,000217533
42 mca 0,000216638 0,000222222 0,000217533
43 normal 0,000216638 0,000222222 0,000217533
44 perform 0,002599653 0,003467707 0,000217533
45 integrate 0,000216638 0,001517122 0,000217533
46 score 0,000216638 0,000222222 0,000217533
47 evaluated 0,002166378 0,000222222 0,000217533
48 order 0,00194974 0,000222222 0,002175332
49 approach 0,002599653 0,000222222 0,003698064
50 attention 0,000216638 0,000222222 0,000217533
51 research 0,003466205 0,00260078 0,002175332
52 draw 0,000216638 0,000222222 0,000217533
53 efficiently 0,000216638 0,000222222 0,000217533
54 retrieve 0,000216638 0,000222222 0,000217533
55 keywordbased 0,000216638 0,000222222 0,000217533
56 inadequacy 0,000216638 0,000222222 0,000217533
57 manage 0,000216638 0,000222222 0,001740265
58 trend 0,000216638 0,000222222 0,000217533
59 unstopp 0,000216638 0,000222222 0,000217533
60 massive 0,000216638 0,000222222 0,000217533
61 propagate 0,000216638 0,000222222 0,000217533
67

62 lead 0,000216638 0,000222222 0,000217533


63 amount 0,00194974 0,000222222 0,000217533
64 form 0,001733102 0,000222222 0,000217533
65 video 0,000216638 0,001950585 0,005003263
66 audio 0,000216638 0,000222222 0,000217533
67 image 0,004549393 0,002167317 0,003915597
68 search 0,000216638 0,000222222 0,000217533
69 retrieval 0,000216638 0,000222222 0,001740265
70 growing 0,000216638 0,000222222 0,000217533
71 rapidly 0,000216638 0,000222222 0,000217533
72 highlevel 0,000216638 0,000222222 0,000217533
73 topic 0,000216638 0,000222222 0,000217533
74 regard 0,000216638 0,000222222 0,000217533
75 representate 0,002383016 0,000222222 0,000217533
76 identify 0,000216638 0,00130039 0,000217533
77 technolog 0,000216638 0,002384049 0,002610398
78 detection 0,002166378 0,001733853 0,000217533
79 specifically 0,000216638 0,000222222 0,000217533
80 incomplete 0,000216638 0,000222222 0,000217533
81 nonexist 0,000216638 0,000222222 0,000217533
82 due 0,000216638 0,000222222 0,002175332
83 annotate 0,000216638 0,000222222 0,000217533
84 called 0,000216638 0,001733853 0,001522732
85 framework 0,000216638 0,004117902 0,000217533
86 manag 0,000216638 0,000222222 0,001740265
87 contentbased 0,000216638 0,000222222 0,004350663
88 derived 0,000216638 0,000222222 0,000217533
0,461582900 0,083860501 0,116815314
Nilai probabilitas max

Dapat dilihat pada tabel 16 bahwa nilai probabilitas maximal pada

perhitungan tiap kategori terdapat pada kategori DM dengan nilai

0,461582900, maka sampel data uji 1 terpilih sebagai kategori dari Data

Mining. Untuk melihat perincian proses klasifikasi pada lampiran 13


68

Tahapan klasifikasi konten abstrak jurnal dengan NBC ditunjukan

dalam diagram alir pada Gambar 19

Mulai

DataMulai
Konten
Abstrak jurnal

Preprocessing
(Data
case Konten
folding)
Abstrak jurnal
(Tokenizing)
(Filtering)
(Stemming)

Feature Selection
( Term Weighting)
(Reduksi dimensi)

Preprocessing
( case folding)
(Tokenizing)
Klasifikasi NBC
(Filtering) >
P(Yes│kategori)
(Stemming) ?
P(NO│Kategori)
Ya Feature Selection Tidak
( Term Weighting)
(Reduksi dimensi)
Klasifikasi NBC
Kelas YES jika P(Yes│kategori) > Kelas NO jika
Klasfikasi benar P(NO│Kategori) ? Klasifikasi salah

Kelas YES jika Kelas NO jika


Klasfikasi benar Klasifikasi salah
Pengukuran
performasi

selesai

Pengukuran
selesai
Gambar 19. Diagram Alir Klasifikasi dengan NBC
performasi

Untuk menganalisis data dari konten abstrak yang diperoleh akan dilakukan

percobaan dengan beberapa skenario ujicoba yang dijelaskan pada Tabel

17.
69

Tabel 17. Skenario ujicoba

No Jumlah Jumlah keterangan


data data
latih testing
1 100% 100% Keseluruhan data akan menjadi data learning
dan juga data testing.
2 75% 25% 75% data akan digunakan sebagai data
learning, dan 25% dijadikan data testing .
3 50% 50% 50% data akan digunakan sebagai data
learning, dan 50% dijadikan data testing
4 25% 75% 25% data akan digunakan sebagai data
learning, dan 75% dijadikan data testing

Selain itu juga akan dilakukan analisis dengan reduksi dimensi yang

berbeda-beda. Dengan proses reduksi dimensi, jumlah data latih dan data

testing yang berbeda-beda diharapkan bisa diketahui hasil akurasi dari

metode NBC dalam mengklasifikasikan konten abstrak.

F. INSTRUMENTASI PENELITIAN

Instrumen yang digunakan pada penelitian ini adalah:

1. Software:

a. Windows 7.

b. Aplikasi Pemrograman PHP Designer 8.

c. XAMP 1.8.3

2. Hardware:.

a. Laptop Toshiba RAM 4GB, Prosesor Core i3-32170, monitor

14”
70

G. PENGUJIAN AKURASI SISTEM

Setelah dilakukan perancangan sistem dengan metode yang digunakan

pada tahap preprocessing,feature selection dan klasifikasi, dilanjutkan

dengan pengujian data pada sistem yang telah dirancang.

Evaluasi tingkat akurasi sistem merupakan tahapan dalam penelitian

dengan tujuan untuk mengetahui pengaruh metode yang digunakan

terhadap sistem dan memperoleh parameter terbaik/optimal. Pada

penelitian ini metode validasi yang digunakan adalah Confusion matrix yang

memberikan keputusan berdasarkan hasil dari training dan tesing.

Confusion matrix memberikan penilaian performansi klasifikasi berdasarkan

data dengan benar atau salah. Jika dataset hanya terdiri dari dua kelas

maka kelas yang satu dianggap sebagai positif dan yang lainnya negatif

seperti yang ditunjukkan pada Tabel 18. Proses validasi dilakukan

berdasarkan nilai probabilitas kemunculan kata dalam tiap kategori pada

data latih.

Tabel 18. Model Confusion Matrix

Prediction Class

Classified Classified Negative


positive + -

Actual
True positives(TP) False negatives(FN)
Class posiive +
Actual Actual False
True negatives(TN)
Negative - positives(FP)
71

Nilai akurasi diperoleh dari seberapa banyak keseluruhan dokumen

diklasifikasikan dengan benar dibagi dengan jumlah data uji, Semakin tinggi

nilai akurasi yang dihasilkan maka semakin bagus dan akurat model

tersebut dalam melakukan klasifikasi dan semakin mengurangi jumlah

kesalahan (error) dalam klasifikasi. Tingkat accuracy rate pada model

confusion matrix dihitung berdasarkan persamaan (11) berikut. TP dan TN

memberikan Informasi ketika classifier benar, sedangkan FP dan FN

memberitahu ketika claasifier salah.

(14)

Keterangan:

TP(True Positive) : jumlah data benar yang terdeteksi benar.

TN (True Negative) : jumlah data salah yang terdeteksi salah.

FP ( False Positif) : jumlah data benar yang terdeteksi salah.

FN ( False Negative ) : jumlah data salah yang terdeteksi bena


BAB IV

HASIL DAN PEMBAHASAN

Hasil dari perancangan sistem yang dimulai dengan proses preprocessing

dengan melalui proses casefolding, tokenizing, filtering dan stemming

dilanjutkan tahap feature selection dengan pemberian bobot Term

Weighting dan menerapkan teknik Reduksi Dimensi pada setiap kategori

konten abstrak, selanjutnya dilakukan tahap klasifikasi menggunakan

metode Naive Bayes Classifier dengan menggunakan perhitungan

probabilias jumlah kata pada data latih. Sehingga pada proses klasifikasi

dihasilkan nilai probabilitas label/kelas yang digunakan untuk

pengkategorian abstrak jurnal, penentuan probabilitas jumlah kata dengan

parameter persentase reduksi dimensi merupakan hal penting dalam

perancangan sistem.

A. Hasil proses reduksi dimensi pada jumlah kata

Hasil jumlah kata yang dihasilkan setelah dilakukan proses reduksi dimensi

ditunjukan pada Tabel 19.


73

Tabel 19. Hasil Reduksi Dimensi

Nilai Reduksi Dimensi Jumlah kata


10% 609
20% 462
30% 327
40% 201
50% 108
60% 88
70% 69
80% 57
90% 39

Nilai % diatas berarti kata yang diambil adalah kata yang muncul dilebih

dari berapa % konten abstrak. Semakin sedikit parameter, maka akan

sedikit kata yang dihasilkan.

B. Hasil akurasi skenario Reduksi Dimensi berdasarkan Parameter

Persentase 10-90

Setelah dilakukan proses reduksi dimensi, selanjutnya dilakukan

proses pelatihan menggunakan naive bayes classifier. Dari nilai bobot

yang dihasilkan kemudian dihitung probabilitas maksimal dari data uji.

Dengan 100% data yang digunakan sebagai data latih dan data uji juga

dengan skenario reduksi dimensi yang berbeda, menghasilkan hasil akurasi

parameter reduksi dimensi 10% di tunjukan pada conflusion matrix Tabel

20. Berikut:
74

Tabel 20. Hasil uji coba 1 dengan parameter reduksi dimensi 10%

Uji coba 1 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
10%
Class DM 32 10 5
Aktual ITS 8 35 1
MM 10 5 44

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan

confusion matrix Tabel 20 pada uji coba 1 dengan reduksi dimensi 10%.

Tabel 21. Menunjukkan hasil confusion matrix pada uji coba 2 dengan reduksi

dimensi 20%.

Tabel 21. Hasil uji coba 2 dengan parameter reduksi dimensi 20%

Uji coba 2 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
20%
Class DM 40 3 5
Aktual ITS 2 39 2
MM 8 8 43
75

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan

confusion matrix Tabel 21 pada uji coba 2 dengan reduksi dimensi 20%.

Tabel 22. menunjukkan hasil confusion matrix pada uji coba 3 dengan reduksi

dimensi 30%.

Tabel 22. Hasil uji coba 3 dengan parameter reduksi dimensi 30%

Uji coba 3 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
30%
Class DM 45 1 7
Aktual ITS 1 46 3
MM 4 3 40

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan

confusion matrix Tabel 22 pada uji coba 3 dengan reduksi dimensi 30%.
76

Tabel 23. menunjukkan hasil confusion matrix pada uji coba 4 dengan reduksi

dimensi 40%.

Tabel 23. Hasil uji coba 4 dengan parameter reduksi dimensi 40%

Uji coba 4 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
40%
Class DM 33 3 10
Aktual ITS 4 39 4
MM 13 8 36

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan confusion

matrix Tabel 23 pada uji coba 4 dengan reduksi dimensi 40%.

Tabel 24. menunjukkan hasil confusion matrix pada uji coba 5 dengan reduksi

dimensi 50%.

Tabel 24.. Hasil uji coba 5 dengan parameter reduksi dimensi 50%

Uji coba 5 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
50%
Class DM 29 5 19
Aktual ITS 10 30 6
MM 11 15 25
77

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan

confusion matrix Tabel 24 pada uji coba 5 dengan reduksi dimensi 50%.

Tabel 25 menunjukkan hasil confusion matrix pada uji coba 6 dengan

reduksi dimensi 60%.

Tabel 25. Hasil uji coba 6 dengan parameter reduksi dimensi 60%

Uji coba 6 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
60%
Class DM 25 11 17
Aktual ITS 7 21 8
MM 18 18 25

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan

confusion matrix Tabel 25 pada uji coba 6 dengan reduksi dimensi 60%.
78

Tabel 26 menunjukkan hasil confusion matrix pada uji coba 7 dengan reduksi

dimensi 70%.

Tabel 26. Hasil uji coba 7 dengan parameter reduksi dimensi 70%

Uji coba 7 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
70%
Class DM 24 8 15
Aktual ITS 5 26 14
MM 21 16 21

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan

confusion matrix Tabel 26 pada uji coba 7 dengan reduksi dimensi 70%.

Tabel 27 menunjukkan hasil confusion matrix pada uji coba 8 dengan reduksi

dimensi 80%.

Tabel 27. Hasil uji coba 8 dengan parameter reduksi dimensi 80%

Uji coba 8 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
80%
Class DM 20 12 15
Aktual ITS 12 22 6
MM 18 16 29
79

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan confusion

matrix Tabel 27 pada uji coba 8 dengan reduksi dimensi 80%.

Tabel 28 menunjukkan hasil confusion matrix pada uji coba 9 dengan reduksi

dimensi 90%.

Tabel 28. Hasil uji coba 9 dengan parameter reduksi dimensi 90%

Uji coba 9 dengan Prediksi Class


Reduksi dimensi
DM ITS MM
90%
Class DM 15 10 12
Aktual ITS 14 25 7
MM 21 15 31

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan

confusion matrix Tabel 28. pada uji coba 9 dengan reduksi dimensi 90%.
80

Dari hasil beberapa uji coba parameter reduksi dimensi yang telah

dilakukan menunjukkan bahwa dengan menggunakan reduksi dimensi pada

parameter 30% mencapai akurasi tertinggi dengan 87.33%, sedangkan

pada reduksi dimensi 60%-90% hanya menghasilkan akurasi 47.33%.

Tabel 29 menunjukkan hasil akurasi sekenario reduksi dimensi dari

beberapa uji coba.

Tabel 29. Hasil akurasi skenario reduksi dimensi

Nilai Reduksi Dimensi Akurasi (%)


10% 74
20% 81.33
30% 87.33
40% 72
50% 56
60% 47.33
70% 47.33
80% 47.33
90% 47.33

Berikut rincian pengenalan untuk masing – masing kategori ditunjukan pada

Tabel 30.

Tabel 30. Rincian akurasi pengenalan reduksi dimensi 30%

Kategori Jumlah Jumlah Akurasi


konten berhasil
abstrak dikenali
DM 50 45 90%
ITS 50 46 92%
MM 50 40 80%
81

Selain itu dilakukan juga uji coba tanpa menggunakan reduksi dimensi pada

jumlah data latih dan data uji yang sama

Tabel 31. Hasil uji coba tanpa menggunakan reduksi dimensi

Uji coba tanpa Prediksi Class


Reduksi dimensi DM ITS MM
Class DM 40 2 9
Aktual ITS 8 38 6
MM 2 10 35

Berikut ini merupakan perhitungan nilai akurasi klasifikasi dengan

confusion matrix Tabel 31. pada uji coba tanpa menggunakan reduksi

dimensi.

Pada Tabel 31. diketahui nilai akurasi adalah 75,33% didapat pada saat

sistem tidak menggunakan reduksi dimensi. Berikut rincian pengenalan

untuk masing-masing kategori ditunjukan pada Tabel 32.


82

Tabel 32. Rincian akurasi pengenalan tanpa menggunakan reduksi dimensi

Kategori Jumlah Jumlah Akurasi


konten berhasil
abstrak dikenali
DM 50 40 80%
ITS 50 38 76%
MM 50 35 70%

C. Hasil akurasi skenario jumlah data training

Klasifikasi text mining yang melibatkan peran metode NB sebagai

klasifikator memberikan hasil pada skenario jumlah data latih. Maka

dilakukan skenario uji coba dengan mengubah data learning dan testing

sehingga mendapatkan nilai akurasi yang bervariasi. Ditunjukkan pada

Gambar 20.

Gambar 20. Perbandingan akurasi sistem untuk data training dan

testing yang bervariasi

Pada Gambar 20. diketahui nilai akurasi terbaik adalah 95,33%, dengan

skenario 75% data latih - 25% data testing dan nilai Learning rate antara
83

0,1-0,5. Dengan rincian pengenalan untuk masing-masing kategori

ditunjukan pada Tabel 33.

Tabel 33. Rincian akurasi 75-25 dan learning rate 0,1-0,5

Kategori Jumlah Jumlah Akurasi


konten berhasil
abstrak dikenali
DM 50 50 100%
ITS 50 48 96%
MM 50 45 90%

Dari Tabel 33 diketahui metode NB paling baik dalam

mengklasifikasikan abstrak jurnal untuk kategori DM akurasinya 100%, ITS

dengan akurasi 96% dan Multimedia 90%.

D. Analisis dan pembahasan

Berdasarkan beberapa skenario uji coba dengan variasi nilai reduksi

dimensi, jumlah data learning dan uji coba menghasilkan akurasi yang

berbeda pula. Dalam penelitian ini, nilai reduksi dimensi sebesar 30%

menghasilkan akurasi yang lebih baik hingga mencapai 87,33%, dibanding

tanpa menggunakan reduksi dimensi yang hanya mendapatkan akurasi

75,33%. Hasil terbaik diperoleh dengan reduksi dimensi 30% menggunakan

75% data learning dan 25% data testing. Metode NB berhasil mengenali

95,33% konten abstrak dengan menggunakan learning rate antara 0,1-0,5,

dapat mengenali 100% pada kategori DM, 96% untuk kategori ITS dan 90%

pada kategori MM.


BAB V

SIMPULAN DAN SARAN

Berdasarkan penelitian yang telah dilakukan pada Text mining untuk

klasifikasi konten abstrak jurnal bahasa inggris menggunakan metode

Reduksi Dimensi dan Naive Bayes dapat di simpulkan hal- hal seperti

berikut.

1. Dengan diterapkan beberapa proses pada preprocessing seperti,

Case folding,tokenizing,filtering, dan Stemming juga proses feature

selection Term Weighting dalam pemberian bobot pada tiap kata

dan teknik reduksi dimensi untuk mengurangi dimensi jumlah kata

dapat membantu perhitungan probabilitas kata dan kecepatan pada

proses klasifikasi.

2. Jumlah kata yang dihasilkan dari teknik reduksi dimensi sangat

mempengaruhi hasil akurasi pada proses klasifikasi, dari jumlah

awal 4500 kata mampu di kurangi hingga 327 kata.

Metode klasifikasi dengan NB dan juga menerapkan Term Weighting

dan teknik reduksi dimensi pada Proses feature selection telah

diterapkan pada sistem Text Mining untuk Klasifikasi konten Abstrak

jurnal Menggunakan metode reduksi dimensi dan Naive Bayes

dengan menggunakan perhitungan confusion matrix pada teknik

reduksi dimensi 30%, menggunakan 75% data learning dan 25%

data testing, metode NB berhasil mengenali 95,33% konten


85

abstrak, hasil terbaik menggunakan learning rate antara 0,1-0,5,

dapat mengenali 100% pada kategori DM, 96% untuk kategori ITS

dan 90% untuk kategori MM. Saran untuk pengembangan penelitian

sistem text mining untuk klasifikasi abstrak jurnal yaitu:

1. Perlu modifikasi pada proses stemming Porter bahasa inggris

dalam mengubah tiap kata menjadi kata dasar, masih banyak

kata yang tidak terstemming sehingga banyak kata yang

memiliki arti sama namun dibedakan dalam sistem.

2. Perlunya pengembangan sistem, tidak hanya 3 kategori saja

yang disediakan namun dengan lebih banyak kategori.

3. Sistem text mining dapat dikembangkan dengan sistem real

time (online) dalam input data dan proses klasifikasinya.


86

DAFTAR PUSTAKA

Amalia Anjani A. Arif Djunaidy, Renny P. Kusumawardani, 2015.Klasifikasi


Artikel Berita Berbahasa Indonesia BerbasisNaive Bayes Classifier
Menggunakan Confix-Stripping Stemmer, digilib.its.ac.id/.../ITS-
Undergraduate-38449-5210100106
Amir Hamzah, 2012,. Klasifikasi Text Dengan Naive Bayes Classifier (NBC)
Untuk pengelompokan Text Berita Dan Abstrak Akademis, Prosiding
Seminar Nasional Aplikasi Sains & Teknologi (SNAST) Periode III
Yogyakarta, ISSN:1979-911X
Ashis Kumar Manda lDan Rikta Sen, 2014.Supervised Learning Method For
Bangla Web Document Categorization,International Journal of
Artificial Intelligence & Applications (IJAIA), Vol. 5, No. 5, September

C. Ramasubramanian dan R. Ramya, 2013. Effective


Pre-Processing Activities in Text Miningusing Improved Porter’s
Stemming Algorithm,International Journal of Advanced Research in
Computer and Communication Engineering, Vol. 2, Issue 12,

Cristian Moral, Angélica de Antonio, Ricardo Imbert dan Jaime Ramírez,


2014. A survey of stemming algorithms in information retrieval,
Escuela Técnica Superior de Ingenieros Informáticos, Universidad
Politécnica de Madrid, Spain. Information Research VOL. 19 NO. 1,
MARCH

Dio Ariadi dan Kartika Fithriasari, 2015.Klasifikasi Berita Indonesia


Menggunakan Metode Naive Bayesian Classification dan Support
Vector Machine dengan Confix Stripping Stemmer,JURNAL SAINS
DAN SENI ITS Vol. 4, No.2, (2015) 2337-3520 (2301-928X Print)
2015

Even, Yair and Zohar. Introduction to Text Mining.National Center for


Supercomputing Applications University of Illinois.2002

Feldman, R. & Sanger, J. (2007). The Text Mining Handbook. New York:
Cambridge University Press
G. Keerthika dan D. Saravana Priya, 2015. Feature Subset Evaluation and
Classification usingNaive Bayes Classifier, Journal of Network
87

Communications and Emerging Technologies


(JNCET)www.jncet.orgVolume 1, Issue 1, March (2015)

Han, J. & Kamber, M. (2001). Data Mining: Concepts and Techniques.


San Francisco: Morgan Kaufmann

Harrington , Peter. Machine Learning In Action. Manning.2012

Hamzah, Amir. Klasifikasi Teks dengan Naïve bayes Classifier (NBC)


UntukPengelompokkan Teks Berita Dan Abstract Akademis.2012.
Fakultas Teknologi Industri Jurusan Teknik Informatika. Institut Sains
Dan Teknologi AKPRIND.

I Gusti. A. Socrates, Afrizal L. Akbar, dan M. Sonhaji Akbar, 2016.


OptimasiNaive Bayes dengan Pemilihan Fitur dan Pembobotan Gain
Ratio,LONTAR KOMPUTER VOL. 7, NO.1, APRIL 2016

Mitchell, Tom A. Machine Learning. McGraw-Hill.1997

Mandala, Rila dan Setiawan, Hendra. 2002. Peningkatan Performansi


Sistem Temu-Kembali Informasi dengan Perluasan Query Secara
Otomatis, Bandung : Departemen Teknik Informatika Institut
Teknologi Bandung..
Sparck Jones, Karen, and Peter Willet, (1997), “Readings in Information
Retrieval”, San Francisco: Morgan Kaufmann, ISBN 1-55860-454-4.

Tan, Ah-Hwee, 1999, Text Mining: The state of the art and the challenges,
Kent Ridge Digital Labs 21 Heng Mui Keng Terrace Singapore
119613.

Toyota, T., Nobuhara, H., 2012, Visualization of the Internet News Based
on Efficient Self-Organizing Map Using Restricted Region Search
and Dimensionality Reduction, Journal of Advanced Computational
Intelligence and Intelligent Informatics, Vol 16, No 2, hal 219-226.

Yang, Y., Pedersen, J. O., 1997, A Comparative Study on Feature Selection


in Text Categorization, Proceedings of the Fourteenth International
Conference on Machine Learning (ICML'97), Nashville, Tennessee,
USA, 8-12 Juli 1997.
LAMPIRAN

Lampiran 1 : Sample Data PDF Konten Abstrak Bahasa Inggris


89

Lampiran 2 : Implementasi Antar Muka Tampilan beranda

Lampiran 3 : Implementasi Antar Muka Tampilan Data Latih


90

Lampiran 4 : Implementasi Antar Muka Tampilan Data Uji

Lampiran 5 : Implementasi Antar Muka Tampilan Preprocessing


91

Lampiran 6 : Implementasi Antar Muka Tampilan Term weighting

Lampiran 7 : Implementasi Antar Muka Tampilan Pemodelan Probabilitas


Dokumen Awal Pada Data Latih.
92

Lampiran 8 : Implementasi Antar Muka hasil term weighting data latih

Lampiran 9 : Implementasi Antar Muka Hasil Probabilitas Kata Pada Kategori


Data Latih Data Mining
93

Lampiran 10 : Implementasi Antar Muka Hasil Probabilitas Kata Pada


Kategori Data Latih Intelligent Transport System

Lampiran 11 : Implementasi Antar Muka Hasil Probabilitas Kata Pada


Kategori Data Latih Multimedia

Lampiran 12 : Implementasi Antar Muka Hasil Klasifikasi Naive Bayes


94

Lampiran 13 : Tabel pemberian nilai Probabilitas kata data uji pada kategori
Data mining

Data Mining
No sampel data uji 1
P(C1,C2...Cn│Wk)
1 data 0,006715771
2 semantic 0,001516464
3 multimedia 0,000216638
4 iarm 0,000216638
5 concept 0,001516464
6 develop 0,002166378
7 reranking 0,000216638
8 correlation 0,000216638
9 text 0,02729636
10 effect 0,002816291
11 rule 0,000216638
12 mining 0,009315425
13 posit 0,000216638
14 approach 0,002599653
15 reveal 0,000216638
16 introduced 0,000216638
17 associate 0,000216638
18 paper 0,008015598
19 explored 0,000216638
20 studied 0,000216638
21 interconcept 0,000216638
22 enhance 0,000216638
23 hidden 0,000216638
24 perform 0,002599653
25 neg 0,000216638
26 indirect 0,000216638
27 multiple 0,000216638
28 benchmark 0,000216638
29 trecvid 0,000216638
30 result 0,000216638
31 classification 0,003032929
32 dataset 0,002816291
33 show 0,003682842
34 process 0,003466205
35 factor 0,002166378
95

ITS
No sampel data uji 1
P(C1,C2...Cn│Wk)
36 optimal 0,000216638
37 achieve 0,001516464
38 analysi 0,004116118
39 correspond 0,000216638
40 modality 0,000216638
41 mca 0,000216638
42 normal 0,000216638
43 perform 0,002599653
44 integrate 0,000216638
45 score 0,000216638
46 evaluated 0,002166378
47 order 0,00194974
48 approach 0,002599653
49 attention 0,000216638
50 research 0,003466205
51 draw 0,000216638
52 efficiently 0,000216638
53 retrieve 0,000216638
54 keywordbased 0,000216638
55 inadequacy 0,000216638
56 manage 0,000216638
57 trend 0,000216638
58 unstopp 0,000216638
59 massive 0,000216638
60 propagate 0,000216638
61 lead 0,000216638
62 amount 0,00194974
63 form 0,001733102
64 video 0,000216638
65 audio 0,000216638
66 image 0,004549393
67 search 0,000216638
68 retrieval 0,000216638
69 growing 0,000216638
70 rapidly 0,000216638
71 highlevel 0,000216638
72 topic 0,000216638
73 regard 0,000216638
74 representate 0,002383016
96

ITS
No sampel data uji 1
P(C1,C2...Cn│Wk)
75 technolog 0,000216638
76 detection 0,002166378
77 specifically 0,000216638
78 incomplete 0,000216638
79 nonexist 0,000216638
80 due 0,000216638
81 annotate 0,000216638
82 called 0,000216638
83 framework 0,000216638
84 manag 0,000216638
85 contentbased 0,000216638
86 derived 0,000216638
Nilai probabilitas max P(C1,C2│wk)P(wk) 0,461582900

Lampiran 14 : Tabel pemberian nilai Probabilitas kata data uji pada Intelligent
Transport System

ITS
No sampel data uji 1
P(C1,C2...Cn│Wk)
1 data 0,007152146
2 semantic 0,000222222
3 multimedia 0,000222222
4 iarm 0,000222222
5 concept 0,000222222
6 develop 0,003684439
7 reranking 0,000222222
8 correlation 0,000222222
9 text 0,000222222
10 effect 0,001733853
11 rule 0,000222222
12 mining 0,000222222
13 posit 0,000222222
14 approach 0,000222222
15 reveal 0,000222222
16 introduced 0,000222222
17 associate 0,000222222
18 paper 0,007368877
19 explored 0,000222222
97

ITS
No sampel data uji 1
P(C1,C2...Cn│Wk)
20 interconcept 0,000222222
21 perform 0,003467707
22 neg 0,000222222
23 indirect 0,000222222
24 multiple 0,000222222
25 benchmark 0,000222222
26 trecvid 0,000222222
27 result 0,00520156
28 classification 0,000222222
29 dataset 0,000222222
30 show 0,00390117
31 process 0,000222222
32 factor 0,000222222
33 proposed 0,003467707
34 optimal 0,000222222
35 achieve 0,000222222
36 analysi 0,000222222
37 correspond 0,000222222
38 modality 0,000222222
39 mca 0,000222222
40 normal 0,000222222
41 perform 0,003467707
42 integrate 0,001517122
43 score 0,000222222
44 evaluated 0,000222222
45 order 0,000222222
46 approach 0,000222222
47 attention 0,000222222
48 research 0,00260078
49 draw 0,000222222
50 efficiently 0,000222222
51 retrieve 0,000222222
52 keywordbased 0,000222222
53 inadequacy 0,000222222
54 manage 0,000222222
55 trend 0,000222222
56 unstopp 0,000222222
57 massive 0,000222222
58 propagate 0,000222222
98

ITS
No sampel data uji 1
P(C1,C2...Cn│Wk)
59 form 0,000222222
60 video 0,001950585
61 audio 0,000222222
62 image 0,002167317
63 search 0,000222222
64 retrieval 0,000222222
65 growing 0,000222222
66 rapidly 0,000222222
67 highlevel 0,000222222
68 topic 0,000222222
69 regard 0,000222222
70 representate 0,000222222
71 identify 0,00130039
72 technolog 0,002384049
73 detection 0,001733853
74 specifically 0,000222222
75 incomplete 0,000222222
76 nonexist 0,000222222
77 due 0,000222222
78 annotate 0,000222222
79 called 0,001733853
80 framework 0,004117902
81 manag 0,000222222
82 contentbased 0,000222222
83 derived 0,000222222
Nilai probabilitas max P(C1,C2│wk)P(wk) 0,083860501
99

Lampiran 15 : Tabel pemberian nilai Probabilitas kata pada kategori


Intelligent Transport System

Multimedia
No sampel data uji 1
P(C1,C2...Cn│Wk)
1 data 0,009353926
2 semantic 0,000217533
3 multimedia 0,022405917
4 iarm 0,000217533
5 concept 0,000217533
6 develop 0,002392865
7 reranking 0,000217533
8 correlation 0,000217533
9 text 0,002175332
10 effect 0,000217533
11 rule 0,000217533
12 mining 0,000217533
13 posit 0,000217533
14 approach 0,003698064
15 reveal 0,000217533
16 introduced 0,001740265
17 associate 0,000217533
18 paper 0,006308462
19 explored 0,000217533
20 studied 0,000217533
21 interconcept 0,000217533
22 enhance 0,000217533
23 hidden 0,000217533
24 perform 0,000217533
25 neg 0,000217533
26 indirect 0,000217533
27 multiple 0,002392865
28 benchmark 0,000217533
29 trecvid 0,000217533
30 result 0,00478573
31 classification 0,000217533
32 dataset 0,000217533
33 show 0,003045464
34 process 0,002392865
36 proposed 0,007178595
100

ITS
No sampel data uji 1
P(C1,C2...Cn│Wk)
37 achieve 0,002175332
38 analysi 0,000217533
39 correspond 0,000217533
40 modality 0,000217533
41 mca 0,000217533
42 normal 0,000217533
43 perform 0,000217533
44 integrate 0,000217533
45 score 0,000217533
46 evaluated 0,000217533
47 order 0,002175332
48 approach 0,003698064
49 attention 0,000217533
50 research 0,002175332
51 draw 0,000217533
52 efficiently 0,000217533
53 retrieve 0,000217533
54 keywordbased 0,000217533
55 inadequacy 0,000217533
56 manage 0,001740265
57 trend 0,000217533
58 unstopp 0,000217533
59 massive 0,000217533
60 propagate 0,000217533
61 lead 0,000217533
62 amount 0,000217533
63 form 0,000217533
64 video 0,005003263
65 audio 0,000217533
66 image 0,003915597
67 search 0,000217533
68 retrieval 0,001740265
69 growing 0,000217533
70 rapidly 0,000217533
71 highlevel 0,000217533
72 topic 0,000217533
73 regard 0,000217533
76 identify 0,000217533
77 technolog 0,002610398
101

ITS
No sampel data uji 1
P(C1,C2...Cn│Wk)
78 specifically 0,000217533
79 incomplete 0,000217533
80 nonexist 0,000217533
81 due 0,002175332
82 annotate 0,000217533
83 called 0,001522732
84 framework 0,000217533
85 manag 0,001740265
86 contentbased 0,004350663
87 derived 0,000217533
Nilai probabilitas max P(C1,C2│wk)P(wk) 0,116815314

Lampiran 16 : Source Program proses Pengambilan Kata Pada dokumen Pdf

function decodeAsciiHex($input) {
$output = "";

$isOdd = true;
$isComment = false;

for($i = 0, $codeHigh = -1; $i < strlen($input) && $input[$i] != '>'; $i++) {


$c = $input[$i];

if($isComment) {
if ($c == '\r' || $c == '\n')
$isComment = false;
continue;
}

switch($c) {
case '\0': case '\t': case '\r': case '\f': case '\n': case ' ': break;
case '%':
$isComment = true;
break;

default:
$code = hexdec($c);
if($code === 0 && $c != '0')
return "";
102

if($isOdd)
$codeHigh = $code;
else
$output .= chr($codeHigh * 16 + $code);

$isOdd = !$isOdd;
break;
}
}

if($input[$i] != '>')
return "";

if($isOdd)
$output .= chr($codeHigh * 16);

return $output;
}
function decodeAscii85($input) {
$output = "";

$isComment = false;
$ords = array();

for($i = 0, $state = 0; $i < strlen($input) && $input[$i] != '~'; $i++) {


$c = $input[$i];

if($isComment) {
if ($c == '\r' || $c == '\n')
$isComment = false;
continue;
}

if ($c == '\0' || $c == '\t' || $c == '\r' || $c == '\f' || $c == '\n' || $c == ' ')


continue;
if ($c == '%') {
$isComment = true;
continue;
}
if ($c == 'z' && $state === 0) {
$output .= str_repeat(chr(0), 4);
continue;
}
if ($c < '!' || $c > 'u')
return "";

$code = ord($input[$i]) & 0xff;


103

$ords[$state++] = $code - ord('!');

if ($state == 5) {
$state = 0;
for ($sum = 0, $j = 0; $j < 5; $j++)
$sum = $sum * 85 + $ords[$j];
for ($j = 3; $j >= 0; $j--)
$output .= chr($sum >> ($j * 8));
}
}
if ($state === 1)
return "";
elseif ($state > 1) {
for ($i = 0, $sum = 0; $i < $state; $i++)
$sum += ($ords[$i] + ($i == $state - 1)) * pow(85, 4 - $i);
for ($i = 0; $i < $state - 1; $i++)
$ouput .= chr($sum >> ((3 - $i) * 8));
}

return $output;
}
function decodeFlate($input) {
return @gzuncompress($input);
}

function getObjectOptions($object) {
$options = array();
if (preg_match("#<<(.*)>>#ismU", $object, $options)) {
$options = explode("/", $options[1]);
@array_shift($options);

$o = array();
for ($j = 0; $j < @count($options); $j++) {
$options[$j] = preg_replace("#\s+#", " ", trim($options[$j]));
if (strpos($options[$j], " ") !== false) {
$parts = explode(" ", $options[$j]);
$o[$parts[0]] = $parts[1];
} else
$o[$options[$j]] = true;
}
$options = $o;
unset($o);
}

return $options;
}
function getDecodedStream($stream, $options) {
104

$data = "";
if (empty($options["Filter"]))
$data = $stream;
else {
$length = !empty($options["Length"]) ? $options["Length"] : strlen($stream);
$_stream = substr($stream, 0, $length);

foreach ($options as $key => $value) {


if ($key == "ASCIIHexDecode")
$_stream = decodeAsciiHex($_stream);
if ($key == "ASCII85Decode")
$_stream = decodeAscii85($_stream);
if ($key == "FlateDecode")
$_stream = decodeFlate($_stream);
}
$data = $_stream;
}
return $data;
}
function getDirtyTexts(&$texts, $textContainers) {
for ($j = 0; $j < count($textContainers); $j++) {
if (preg_match_all("#\[(.*)\]\s*TJ#ismU", $textContainers[$j], $parts))
$texts = array_merge($texts, @$parts[1]);
elseif(preg_match_all("#Td\s*(\(.*\))\s*Tj#ismU", $textContainers[$j], $parts))
$texts = array_merge($texts, @$parts[1]);
}
}
function getCharTransformations(&$transformations, $stream) {
preg_match_all("#([0-9]+)\s+beginbfchar(.*)endbfchar#ismU", $stream, $chars,
PREG_SET_ORDER);
preg_match_all("#([0-9]+)\s+beginbfrange(.*)endbfrange#ismU", $stream, $ranges,
PREG_SET_ORDER);

for ($j = 0; $j < count($chars); $j++) {


$count = $chars[$j][1];
$current = explode("\n", trim($chars[$j][2]));
for ($k = 0; $k < $count && $k < count($current); $k++) {
if (preg_match("#<([0-9a-f]{2,4})>\s+<([0-9a-f]{4,512})>#is", trim($current[$k]),
$map))
$transformations[str_pad($map[1], 4, "0")] = $map[2];
}
}
for ($j = 0; $j < count($ranges); $j++) {
$count = $ranges[$j][1];
$current = explode("\n", trim($ranges[$j][2]));
for ($k = 0; $k < $count && $k < count($current); $k++) {
105

if (preg_match("#<([0-9a-f]{4})>\s+<([0-9a-f]{4})>\s+<([0-9a-f]{4})>#is",
trim($current[$k]), $map)) {
$from = hexdec($map[1]);
$to = hexdec($map[2]);
$_from = hexdec($map[3]);

for ($m = $from, $n = 0; $m <= $to; $m++, $n++)


$transformations[sprintf("%04X", $m)] = sprintf("%04X", $_from + $n);
} elseif (preg_match("#<([0-9a-f]{4})>\s+<([0-9a-f]{4})>\s+\[(.*)\]#ismU",
trim($current[$k]), $map)) {
$from = hexdec($map[1]);
$to = hexdec($map[2]);
$parts = preg_split("#\s+#", trim($map[3]));

for ($m = $from, $n = 0; $m <= $to && $n < count($parts); $m++, $n++)
$transformations[sprintf("%04X", $m)] = sprintf("%04X", hexdec($parts[$n]));
}
}
}
}
function getTextUsingTransformations($texts, $transformations) {
$document = "";
for ($i = 0; $i < count($texts); $i++) {
$isHex = false;
$isPlain = false;

$hex = "";
$plain = "";
for ($j = 0; $j < strlen($texts[$i]); $j++) {
$c = $texts[$i][$j];
switch($c) {
case "<":
$hex = "";
$isHex = true;
break;
case ">":
$hexs = str_split($hex, 4);
for ($k = 0; $k < count($hexs); $k++) {
$chex = str_pad($hexs[$k], 4, "0");
if (isset($transformations[$chex]))
$chex = $transformations[$chex];
$document .= html_entity_decode("&#x".$chex.";");
}
$isHex = false;
break;
case "(":
$plain = "";
106

$isPlain = true;
break;
case ")":
$document .= $plain;
$isPlain = false;
break;
case "\\":
$c2 = $texts[$i][$j + 1];
if (in_array($c2, array("\\", "(", ")"))) $plain .= $c2;
elseif ($c2 == "n") $plain .= '\n';
elseif ($c2 == "r") $plain .= '\r';
elseif ($c2 == "t") $plain .= '\t';
elseif ($c2 == "b") $plain .= '\b';
elseif ($c2 == "f") $plain .= '\f';
elseif ($c2 >= '0' && $c2 <= '9') {
$oct = preg_replace("#[^0-9]#", "", substr($texts[$i], $j + 1, 3));
$j += strlen($oct) - 1;
$plain .= html_entity_decode("&#".octdec($oct).";");
}
$j++;
break;

default:
if ($isHex)
$hex .= $c;
if ($isPlain)
$plain .= $c;
break;
}
}
$document .= "\n";
}

return $document;
}

function pdf2text($filename) {
$infile = @file_get_contents($filename, FILE_BINARY);
if (empty($infile))
return "";

$transformations = array();
$texts = array();

preg_match_all("#obj(.*)endobj#ismU", $infile, $objects);


$objects = @$objects[1];
107

for ($i = 0; $i < count($objects); $i++) {


$currentObject = $objects[$i];

if (preg_match("#stream(.*)endstream#ismU", $currentObject, $stream)) {


$stream = ltrim($stream[1]);

$options = getObjectOptions($currentObject);
if (!(empty($options["Length1"]) && empty($options["Type"]) &&
empty($options["Subtype"])))
continue;

$data = getDecodedStream($stream, $options);


if (strlen($data)) {
if (preg_match_all("#BT(.*)ET#ismU", $data, $textContainers)) {
$textContainers = @$textContainers[1];
getDirtyTexts($texts, $textContainers);
} else
getCharTransformations($transformations, $data);
}
}
}

return getTextUsingTransformations($texts, $transformations);


}

?>

Lampiran 17 : Source Program proses Preprocessing

Fungsi Casefolding

$casefolding = strtolower($pisahkata[0]);

Fungsi Tokenizing

$tokenizingSubstring= preg_replace('/[^a-zA-Z0-9 ]/','',$casefolding);


$hpsword = hapusStopWords($tokenizingSubstring);
$line = preg_replace('/^\s*/','', $hpsword);
$line = preg_replace('/\s*$/','', $hpsword);

$nnn = preg_split("/[\s,.:]+/", $line);


foreach($nnn as $tok)
108

Fungsi Stopword

function hapusStopWords($input){

// EEEEEEK Stop words


$commonWords = array('a','able','about','above','abroad','1 ','2 ','3 ','4','5','6','7 ','8
','9','0','hirher','ict','ip','ims','largescale','according','accordingly','across','actually','
adj','after','afterwards','again','against','ago','ahead','ain\'t','all','allow','allows','al
most','alone','along','alongside','already','also','although','always','am','amid','ami
dst','among','amongst','an','and','another','any','anybody','anyhow','anyone','anyt
hing','anyway','anyways','anywhere','apart','appear','appreciate','appropriate','are'
,'aren\'t','around','as','a\'s','aside','ask','asking','associated','at','available','away','a
wfully','b','back','backward','backwards','be','became','because','become','become
s','becoming','been','before','beforehand','begin','behind','being','believe','below','
beside','besides','best','better','between','beyond','both','brief','but','by','c','came',
'can','cannot','cant','can\'t','caption','cause','causes','certain','certainly','changes','
clearly','c\'mon','co','co.','com','come','comes','concerning','consequently','conside
r','considering','contain','containing','contains','corresponding','could','couldn\'t','c
ourse','c\'s','currently','d','dare','daren\'t','definitely','described','despite','did','did
n\'t','different','directly','do','does','doesn\'t','doing','done','don\'t','down','downw
ards','during','e','each','edu','eg','eight','eighty','either','else','elsewhere','end','end
ing','enough','entirely','especially','et','etc','even','ever','evermore','every','everybo
dy','everyone','everything','everywhere','ex','exactly','example','except','f','fairly','f
ar','farther','few','fewer','fifth','first','five','followed','following','follows','for','forev
er','former','formerly','forth','forward','found','four','from','further','furthermore','
g','get','gets','getting','given','gives','go','goes','going','gone','got','gotten','greeting
s','h','had','hadn\'t','half','happens','hardly','has','hasn\'t','have','haven\'t','having','
he','he\'d','he\'ll','hello','help','hence','her','here','hereafter','hereby','herein','here
\'s','hereupon','hers','herself','he\'s','hi','him','himself','his','hither','hopefully','how
','howbeit','however','hundred','i','i\'d','ie','if','ignored','i\'ll','i\'m','immediate','in','i
nasmuch','inc','inc.','indeed','indicate','indicated','indicates','inner','inside','insofar'
,'instead','into','inward','is','isn\'t','it','it\'d','it\'ll','its','it\'s','itself','i\'ve','j','just','k','
keep','keeps','kept','know','known','knows','l','last','lately','later','latter','latterly','l
east','less','lest','let','let\'s','like','liked','likely','likewise','little','look','looking','looks
','low','lower','ltd','m','made','mainly','make','makes','many','may','maybe','mayn\'
t','me','mean','meantime','meanwhile','merely','might','mightn\'t','mine','minus','
miss','more','moreover','most','mostly','mr','mrs','much','must','mustn\'t','my','my
self','n','name','namely','nd','near','nearly','necessary','need','needn\'t','needs','nei
ther','never','neverf','neverless','nevertheless','new','next','nine','ninety','no','nobo
dy','non','none','nonetheless','noone','no-
one','nor','normally','not','nothing','notwithstanding','novel','now','nowhere','o','o
109

bviously','of','off','often','oh','ok','okay','old','on','once','one','ones','one\'s','only','
onto','opposite','or','other','others','otherwise','ought','oughtn\'t','our','ours','ours
elves','out','outside','over','overall','own','p','particular','particularly','past','per','pe
rhaps','placed','please','plus','possible','presumably','probably','provided','provides
','q','que','quite','qv','r','rather','rd','re','really','reasonably','recent','recently','regar
ding','regardless','regards','relatively','respectively','right','round','s','said','same','s
aw','say','saying','says','second','secondly','see','seeing','seem','seemed','seeming','
seems','seen','self','selves','sensible','sent','serious','seriously','seven','several','sha
ll','shan\'t','she','she\'d','she\'ll','she\'s','should','shouldn\'t','since','six','so','some','
somebody','someday','somehow','someone','something','sometime','sometimes','
somewhat','somewhere','soon','sorry','specified','specify','specifying','still','sub','su
ch','sup','sure','t','take','taken','taking','tell','tends','th','than','thank','thanks','thanx
','that','that\'ll','thats','that\'s','that\'ve','the','their','theirs','them','themselves','th
en','thence','there','thereafter','thereby','there\'d','therefore','therein','there\'ll','t
here\'re','theres','there\'s','thereupon','there\'ve','these','they','they\'d','they\'ll','t
hey\'re','they\'ve','thing','things','think','third','thirty','this','thorough','thoroughly',
'those','though','three','through','throughout','thru','thus','till','to','together','too','
took','toward','towards','tried','tries','truly','try','trying','t\'s','twice','two','u','un','u
nder','underneath','undoing','unfortunately','unless','unlike','unlikely','until','unto',
'up','upon','upwards','us','use','used','useful','uses','using','usually','v','value','vario
us','versus','very','via','viz','vs','w','want','wants','was','wasn\'t','way','we','we\'d','
welcome','well','we\'ll','went','were','we\'re','weren\'t','we\'ve','what','whatever','
what\'ll','what\'s','what\'ve','when','whence','whenever','where','whereafter','wh
ereas','whereby','wherein','where\'s','whereupon','wherever','whether','which','w
hichever','while','whilst','whither','who','who\'d','whoever','whole','who\'ll','whom
','whomever','who\'s','whose','why','will','willing','wish','with','within','without','w
onder','won\'t','would','wouldn\'t','x','y','yes','yet','you','you\'d','you\'ll','your','you
\'re','yours','yourself','yourselves','you\'ve','z','zero');

return preg_replace('/\b('.implode('|',$commonWords).')\b/','-
',$input);
}

Fungsi Stemming

class PorterStemmer
{

private static $regex_consonant =


'(?:[bcdfghjklmnpqrstvwxz]|(?<=[aeiou])y|^y)';

private static $regex_vowel = '(?:[aeiou]|(?<![aeiou])y)';


110

public static function Stem($word)


{
if (strlen($word) <= 2) {
return $word;
}

$word = self::step1ab($word);
$word = self::step1c($word);
$word = self::step2($word);
$word = self::step3($word);
$word = self::step4($word);
$word = self::step5($word);

return $word;
}

/**
* Step 1
*/
private static function step1ab($word)
{
// Part a
if (substr($word, -1) == 's') {

self::replace($word, 'sses', 'ss')


OR self::replace($word, 'logies', 'logy')
OR self::replace($word, 'ties', 'ty')
OR self::replace($word, 'ates', 'ate')
OR self::replace($word, 'tes', 'tes')
OR self::replace($word, 'ies', 'i')
OR self::replace($word, 'ss', 'ss')
OR self::replace($word, 'dos', 'dos')
OR self::replace($word, 'gps', 'gps')
OR self::replace($word, 'tatus', 'tatus')
OR self::replace($word, 'i', '')
OR self::replace($word, 's', '')
OR self::replace($word, 'ls', 'l')
OR self::replace($word, 'ness', '')
OR self::replace($word, 'ess', '');

}
111

// Part b
if (substr($word, -2, 1) != 'e' OR !self::replace($word, 'eed', 'ee', 0)) { // First
rule
$v = self::$regex_vowel;

// ing and ed
if ( preg_match("#$v+#", substr($word, 0, -4)) && self::replace($word,
'ging', 'ge')
OR preg_match("#$v+#", substr($word, 0, -4)) && self::replace($word,
'ting', 't')
OR preg_match("#$v+#", substr($word, 0, -3)) && self::replace($word,
'ing', 'ing')
OR preg_match("#$v+#", substr($word, 0, -2)) && self::replace($word,
'ed', 'ed')) { // Note use of && and OR, for precedence reasons

// If one of above two test successful


if ( !self::replace($word, 'at', 'ate')
AND !self::replace($word, 'bl', 'ble')
AND !self::replace($word, 'iz', '')) {

// Double consonant ending


if ( self::doubleConsonant($word)
AND substr($word, -2) != 'll'
AND substr($word, -2) != 'ss'
AND substr($word, -2) != 'zz') {

$word = substr($word, 0, -1);

} else if (self::m($word) == 1 AND self::cvc($word)) {


$word .= 'e';
}
}
}
}

return $word;
}
112

/**
* Step 1c
*
* @param string $word Word to stem
*/
private static function step1c($word)
{
$v = self::$regex_vowel;

if (substr($word, -1) == 'y' && preg_match("#$v+#", substr($word, 0, -1))) {


self::replace($word, 'y', 'y');
}

return $word;
}

/**
* Step 2
*
* @param string $word Word to stem
*/
private static function step2($word)
{
switch (substr($word, -2, 1)) {
case 'a':
self::replace($word, 'ational', 'ate', 0)
OR self::replace($word, 'ical', 'e', 0)
OR self::replace($word, 'tional', 'tion', 0);
break;

case 'c':
self::replace($word, 'enci', 'ence', 0)
OR self::replace($word, 'anci', 'ance', 0);
break;

case 'e':
self::replace($word, 'izer', 'ize', 0)
OR self::replace($word, 'izet', '', 0)
OR self::replace($word, 'iz', '', 0)
OR self::replace($word, 'set', '', 0);
break;
113

case 'g':
self::replace($word, 'logi', 'log', 0);
break;

case 'l':
self::replace($word, 'entli', 'ent', 0)
OR self::replace($word, 'ousli', 'ous', 0)
OR self::replace($word, 'alli', 'al', 0)
OR self::replace($word, 'bli', 'ble', 0)
OR self::replace($word, 'eli', 'e', 0);
break;

case 'o':
self::replace($word, 'ization', 'ize', 0)
OR self::replace($word, 'ication', 'ication',0)
OR self::replace($word, 'lation', 'lation',0)
OR self::replace($word, 'ation', 'ate', 0)
OR self::replace($word, 'ator', 'ate', 0);
break;

case 's':
self::replace($word, 'iveness', 'ive', 0)
OR self::replace($word, 'fulness', 'ful', 0)
OR self::replace($word, 'ousness', 'ous', 0)
OR self::replace($word, 'alism', 'al', 0);
break;

case 't':
self::replace($word, 'biliti', 'ble', 0)
OR self::replace($word, 'aliti', 'al', 0)
OR self::replace($word, 'iviti', 'ive', 0);
break;
}

return $word;
}

/**
* Step 3
*
* @param string $word String to stem
114

*/
private static function step3($word)
{
switch (substr($word, -2, 1)) {
case 'a':
self::replace($word, 'ical', 'ic', 0);
break;

case 's':
self::replace($word, 'ness', '', 0);
break;

case 't':
self::replace($word, 'icate', 'ic', 0)
OR self::replace($word, 'iciti', 'ic', 0);
break;

case 'u':
self::replace($word, 'ful', '', 0);
break;

case 'v':
self::replace($word, 'ative', 'e', 0);
break;

case 'z':
self::replace($word, 'alize', 'al', 0);
break;
}

return $word;
}

/**
* Step 4
*
* @param string $word Word to stem
*/
private static function step4($word)
{
switch (substr($word, -2, 1)) {
case 'a':
115

self::replace($word, 'al', 'al', 1);


break;

case 'c':
self::replace($word, 'ance', '', 1)
OR self::replace($word, 'gence', 'gent', 1)
OR self::replace($word, 'ence', '', 1);
break;

case 'e':
if (substr($word, -3) == 'hes'){
self::replace($word, 'es', '', 1);
}else{
self::replace($word, 'er', 'er', 1);
}
break;

case 'i':
self::replace($word, 'ic', 'ic', 1);
break;

case 'l':
self::replace($word, 'able', '', 1)
OR self::replace($word, 'ible', '', 1);
break;

case 'n':
self::replace($word, 'ant', '', 1)
OR self::replace($word, 'ement', '', 1)
OR self::replace($word, 'ments', 'ment', 1)
OR self::replace($word, 'ent', 'ent', 1);
break;

case 'o':
if (substr($word, -4) == 'tion' OR substr($word, -4) == 'sion') {
self::replace($word, 'ion', 'e', 1);
} else {
self::replace($word, 'ou', '', 1);
}
break;

case 's':
self::replace($word, 'ism', '', 1);
116

break;

case 't':
self::replace($word, 'modate', 'moda', 1)
OR self::replace($word, 'uate', 'uate', 1)
//OR self::replace($word, 'ate', '', 1)
OR self::replace($word, 'iti', '', 1);
break;

case 'u':
self::replace($word, 'ous', '', 1);
break;

case 'v':
self::replace($word, 'ive', '', 1);
break;

case 'z':
self::replace($word, 'ize', '', 1);
break;
}

return $word;
}

/**
* Step 5
*
* @param string $word Word to stem
*/
private static function step5($word)
{
// Part a
if (substr($word, -1) == 'e') {
if (self::m(substr($word, 0, -1)) > 1) {
self::replace($word, 'e', 'e');

} else if (self::m(substr($word, 0, -1)) == 1) {

if (!self::cvc(substr($word, 0, -1))) {
self::replace($word, 'e', 'e');
}
117

}
}

// Part b
if (self::m($word) > 1 AND self::doubleConsonant($word) AND
substr($word, -1) == 'l') {
$word = substr($word, 0, -1);
}

return $word;
}

/**
* Replaces the first string with the second, at the end of the string. If third
* arg is given, then the preceding string must match that m count at least.
*
* @param string $str String to check
* @param string $check Ending to check for
* @param string $repl Replacement string
* @param int $m Optional minimum number of m() to meet
* @return bool Whether the $check string was at the end
* of the $str string. True does not necessarily mean
* that it was replaced.
*/
private static function replace(&$str, $check, $repl, $m = null)
{
$len = 0 - strlen($check);

if (substr($str, $len) == $check) {


$substr = substr($str, 0, $len);
if (is_null($m) OR self::m($substr) > $m) {
$str = $substr . $repl;
}

return true;
}

return false;
}

/**
* What, you mean it's not obvious from the name?
118

*
* m() measures the number of consonant sequences in $str. if c is
* a consonant sequence and v a vowel sequence, and <..> indicates arbitrary
* presence,
*
* <c><v> gives 0
* <c>vc<v> gives 1
* <c>vcvc<v> gives 2
* <c>vcvcvc<v> gives 3
*
* @param string $str The string to return the m count for
* @return int The m count
*/
private static function m($str)
{
$c = self::$regex_consonant;
$v = self::$regex_vowel;

$str = preg_replace("#^$c+#", '', $str);


$str = preg_replace("#$v+$#", '', $str);

preg_match_all("#($v+$c+)#", $str, $matches);

return count($matches[1]);
}

/**
* Returns true/false as to whether the given string contains two
* of the same consonant next to each other at the end of the string.
*
* @param string $str String to check
* @return bool Result
*/
private static function doubleConsonant($str)
{
$c = self::$regex_consonant;

return preg_match("#$c{2}$#", $str, $matches) AND $matches[0]{0} ==


$matches[0]{1};
}

/**
119

* Checks for ending CVC sequence where second C is not W, X or Y


*
* @param string $str String to check
* @return bool Result
*/
private static function cvc($str)
{
$c = self::$regex_consonant;
$v = self::$regex_vowel;

return preg_match("#($c$v$c)$#", $str, $matches)


AND strlen($matches[1]) == 3
AND $matches[1]{2} != 'w'
AND $matches[1]{2} != 'x'
AND $matches[1]{2} != 'y';
}
}

Lampiran 18 : Source Program Proses Feature Selection

Fungsi Term Document

$no=1;
$row = mysql_query("SELECT * FROM term_training WHERE
training_id='$data'");
while($r = mysql_fetch_array($row)){
//$idf = round(log10($N/$df['jml']),4);
//$w = $r['tf']*$idf;
echo "
<tr class='gradeX'>
<td style='width:20px;'>$no</td>
<td>$r[Kata]</td>
<td style='text-align:center;'>$r[tf]</td>
</tr>";
$no++;}

?>

$no=1;
$N = mysql_num_rows(mysql_query("SELECT * FROM dokumen"));
120

$row = mysql_query("SELECT * FROM tfidf ORDER BY File_Id DESC");


while($r = mysql_fetch_array($row)){
$dok = mysql_fetch_array(mysql_query("SELECT * FROM dokumen
WHERE File_Id='$r[File_Id]'"));
$df = mysql_fetch_array(mysql_query("SELECT tf, sum(tf) AS jml FROM
tfidf WHERE Kata='$r[Kata]'"));
$idf = round(log10($N/$df['jml']),3)+1;
$w = $r['tf']*$idf;

Fungsi Reduksi Dimensi

/**
* Flattens a multi demensional array into a one dimensional
* to be compatible with hidden html fields.
*
* @param array $array
* Array in the form:
* array(
* 'a' => term_DM(
* 'b' => '30%'
* )
* )
*@param array $array
* Array in the form:
* array(
* 'a' => term_ITS(
* 'b' => '30%'
* )
* )
* @param array $array
* Array in the form:
* array(
* 'a' => term_MM(
* 'b' => '30%'
* )
* )
*/
function flatten_array($array) {
// Continue until $array is a one-dimensional array.
$continue = TRUE;
while ($continue) {
$continue = FALSE;
121

/
foreach ($array as $key => $value) {
if (is_array($value)) {
$continue = TRUE
foreach ($value as $term_key => $term_value) {
$array[$key . '[' . $term_key . ']'] = $term_value;
}
unset($array[$key]);
}
}
}

Lampiran 19 : Source Program Proses Klasifikasi

Fungsi Naive Bayes

include"../config/koneksi.php";
$uji=implode(',',$_POST['datauji']);
$latih =implode(',',$_POST['datalatih']);

$pecahUji = explode(",",$uji);
$pecahLatih = explode(",",$latih);

$probUji = count($_POST['datauji']);
$probLatih = count($_POST['datalatih']);

for($u=0;$u < $probUji;$u++){


mysql_query("update dokumen set pakai='Y' where File_Id='$pecahUji[$u]'");
}
for($l=0;$l < $probLatih;$l++){
mysql_query("update training set pakai='Y' where
training_id='$pecahLatih[$l]'");
}
header("location:../index.php?act=proses");

<?php
$nu = 1;
$uji = mysql_query("select * from dokumen where
pakai='Y'");
while($uj = mysql_fetch_array($uji)){
echo"<p>$nu. $uj[File_Judul]</p>";
$nu++;}
122

?>
$nh = 1;
$sdfsf = array();
$hasiluji = mysql_query("select * from dokumen where pakai='Y'");
while($hu = mysql_fetch_array($hasiluji)){
//$rows = mysql_fetch_row(mysql_query("SELECT Kata FROM
tfidf WHERE File_Id='$hu[File_Id]'"));
$terms =array();
$terms2=array();
$hitProbKat = mysql_query("select
*,sum(vocabulary.voca_nilai) As pci from tfidf,vocabulary WHERE
vocabulary.voca_kata=tfidf.Kata AND tfidf.File_Id='$hu[File_Id]' GROUP BY
vocabulary.voca_label");
//SELECT Kata,voca_nilai,voca_label FROM tfidf,vocabulary
WHERE vocabulary.voca_kata=tfidf.Kata AND tfidf.File_Id='$hu[File_Id]'
while($hp = mysql_fetch_array($hitProbKat)){
$pci = round($hp['pci'],4);
$terms[] = "$pci=>$hp[voca_label]<br/>";
$terms2[] = "$pci=>$hp[voca_label]";
}
$dtrain = implode('',$terms);
echo"
<tr>
<td style='text-align:center;'>$nh</td>
<td>$hu[File_Judul]</td>
<td style='text-align:center;'>$dtrain</td>
<td style='text-align:center;'>";
$max = max($terms2);
$pecah = explode("=>",$max);
$sdfsf[] = $pecah['1'];
echo "<strong>$pecah[1]</strong>";
echo"</td>
</tr>

Anda mungkin juga menyukai