PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
IDENTIFIKASI MAKNA KATA “SABAR” DALAM KARYA SASTRA MENGGUNAKAN SUPPORT VECTOR MACHINE (SVM) KERNEL POLINOMIAL
SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh: Jonathan Widyo Wicaksono 125314098
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
IDENTIFICATION OF THE WORD “PATIENT” IN LITERATUR WORK USING POLYNOMIAL KERNEL SUPPORT VECTOR MACHINE (SVM) A THESIS
Presented as Partial Fullfillment of Requirements to Obtain Sarjana Komputer Degree in Informatics Engineering Study Program
By : Jonathan Widyo Wicaksono 125314098
INFORMATICS ENGINEERING STUDY PROGRAM INFORMATICS ENGINEERING DEPARTMENT FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2017
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSETUJUAN SKRIPSI IDENTIFIKASI MAKNA KATA “SABAR” DALAM KARYA SASTRA MENGGUNAKAN SUPPORT VECTOR MACHINE (SVM) KERNEL POLINOMIAL
Oleh : Jonathan Widyo Wicaksono NIM : 125314098
Telah disetujui oleh :
Dosen Pembimbing 1,
Dosen Pembimbing 2,
Sri Hartati Wijono M.Kom.
Dr. B. B. Dwijatmoko, M.A.
Tanggal : _______________
Tanggal : ______________
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PENGESAHAN SKRIPSI IDENTIFIKASI MAKNA KATA “SABAR” DALAM KARYA SASTRA MENGGUNAKAN SUPPORT VECTOR MACHINE (SVM) KERNEL POLINOMIAL
Oleh : Jonathan Widyo Wicaksono NIM : 125314098
Telah dipertahankan di depan Panitia Penguji Pada tanggal …………………………. dan dinyatakan memenuhi syarat.
Susunan Panitia Penguji
Nama lengkap
Tanda Tangan
Ketua
: Puspaningtyas Sanjoyo Adi, S.T., M.T. ……………….
Sekretaris
: Alb. Agung Hadhiatma , M.T.
……………….
Anggota 1
: Sri Hartati Wijono M.Kom.
……………….
Anggota 2
: Dr. B. B. Dwijatmoko, M.A.
……………….
Yogyakarta, ………………………………. Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan,
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
MOTO “Semua Akan Selesai Pada Waktunya Hanya perlu Bersabar dan Terus Berjuang” “Kalau Sudah Basah Lebih Baik Basah-basahan Sekalian Untuk Mendapatkan Hasil Terbaik”
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, terkecuali yang sudah tertulis di dalam kutipan daftar pustaka, sebagaimana layaknya sebuah karya ilmiah.
Yogyakarta, ……………………………. Penulis
Jonathan Widyo Wicakson
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Jonathan Widyo Wicaksono NIM
: 125314098
Demi mengembangkan ilmu pengetahuan, saya memberikan kepada Perpusatakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul : IDENTIFIKASI MAKNA KATA “SABAR” DALAM KARYA SASTRA MENGGUNAKAN SUPPORT VECTOR MACHINE (SVM) KERNEL POLINOMIAL
Beserta perangkat yang diperlukan (bila ada). Dengan demikian, saya memberikan kepada Universitas Sanata Dharma hak untuk menyimpan, mengalihkan kedalam bentuk
media
lain,
mengelolanya
dalam
bentuk
pangkalan
data,
mendistribusikannya secara terbatas dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu izin dari saya maupun memberi royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya.
Yang menyatakan,
Jonathan Widyo Wicaksono
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK
Kesabaran merupakan nilai hidup yang dijunjung tinggi bangsa Indonesia. Menurut Subandi (2011), kesabaran merupakan ajaran yang dijunjung oleh kelima agama besar di Indonesia ( Islam, Kristen, Katholik, Hindu, dan Budha). Lebih lanjut disebutkan oleh Subandi bahwa dalam Al Qur’an terdapat 44 ayat yang menggunakan kata sabar dan 14 ayat yang menggunakan kata kesabaran. Penelusuran dalam Alkitab (Bible) Bahasa Indonesia menunjukan 70 ayat yang mengandung kata sabar, kesabaran, dan kata lain dengan lema sabar. Subandi (2011) juga menyebutkan bahwa kesabaran merupakan bentuk pengendalian diri yang sangat penting dalam agama Budha dan Hindu. Penelitian untuk mengidentifikasi makna sabar telah dilakukan oleh Dr. Benedictus Bherman Dwijatmoko, M.A
yang menhasilkan klasifikasi atau
pengelompokan makna kata sabar kedalam 6 enam kategori atau kelompok, yaitu giliran, keadaan, komunikasi, sifat, pekerjan, dan urutan tindakan. Dalam skripsi ini identifikasi makna kata sabar dilakukan dengan menggunkan algoritma Support Vector Machine (SVM) dengan kernel Polinomial, yang hasilnya dibandingkan dengan hasil penelitian terdahulu oleh ahli untuk mendapatkan akurasi dari algoritma Support Vector Machine (SVM) dalam mengklasifikasikan makna kata sabar. Hasil akurasi yang didapat adalah 100% menggunakan data tranning 108 data dan test 108 data. 51.51% menggunakan data sebanyak 108 data yang di akurasikan menggunakan k-fold 5.
Kata Kunci : SVM, kernel Polinomial,
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT Patience is a ‘value of life’ which is upheld by Indonesian. According to Subandi (2011), kesabaran “patience”is a teachings upheld by five major religions in Indonesia (Moeslem, Christianity, Catholic, Hinduism, and Buddhism). Furthermore, Subandi said there is 44 verses in Al-Quran using the word kesabaran “patience” and 14 verses using the word kesabaran “patience”. In the holy bible, there is 70 verses using the word kesabaran “patience”, sabar “patient”, etc. Subandi also said that kesabaran “patience” is an important ‘self-control’ in hinduism and buddhism. A research to find the true meaning of kesabaran “patience” has been done by Dwijatmoko (2016), resulting in kesabaran “patience” classification in 6 categories,
they
are
giliran
“turn”,
keadaan
“situation”,
komunikasi
“communication”, sifat “character”, Pekerjaan “working”, and urutan tindakan “action sequence”. In this thesis, identification of true meaning of sabar is done by Support Vector Machine (SVM) algorithm with Polynomial kernel, the results are compared to the old results done by expert to find an accurate result of Support Vector Machine (SVM) algorithm. The accuration result is 100% using 108 data train and 108 data test. 51.51% using 108 data which are accurated with 5 fold cross validation. Keywords : SVM, kernel Polinomial
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR Puji dan syukur kepada Tuhan Yang Maha Esa atas segala berkat dan karunia-Nya, sehingga penulis dapat menyelesaikan tugas akhir yang berjudul “Identifikasi Makna Kata “Sabar” Dalam Karya Sastra Menggunkan Support Vector Machine (SVM) kernel Polinomial “. Tugas akhir ini merupakan salah satu mata kuliah wajib dan sebagai syarat akademik untuk memperoleh gelar sarjana komputer Program Studi Teknik Informatika Universitas Sanata Dharma Yogyakarta. Penulis menyadari bahwa selama proses penelitian dan penyusunan laporan tugas akhir ini, banyak pihak yang telah membantu penulis, sehingga pada kesempatan ini penulis ingin mengucapkan terimakasih antara lain kepada : 1.
Tuhan Yang Maha Esa, yang telah memberikan pertolongan dan kekuatan dalam proses pembuatan tugas akhir.
2.
Ibu Sri Hartati Wijono M.Kom. dan Dr. B.B. Dwijatmoko, M.A selaku dosen pembimbing tugas akhir, atas kesabarannya dan nasehat dalam membimbing penulis, meluangkan waktunya, memberi dukungan, motivasi, serta saran yang sangat membantu penulis.
3.
Sudi Mungkasi, Ph.D. selaku Dekan Fakultas Sains dan Teknologi, atas bimbingan, kritik dan saran yang telah diberikan kepada penulis.
4.
Dr. Anastasia Rita Widiarti, M.Kom. selaku Ketua Program Studi Teknik Informatika, atas bimbingan, kritik dan saran yang telah diberikan kepada penulis.
5.
Teman seperjuangan PEMEROLEHAN INFORMASI (Giri, Anjar, Xave).
6.
Orang tua yang selalu memberi semangat Pudjono dan Ni Putu , serta kakak Elisabeth Lucia F. .
7.
Teman begadang garap skripsi Eric.
8.
Teman main DOTA (Bagus, Abed, Ricky, Alan, Ino, Koko, Mas Rio, Eric, Nikopil) .
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9. Teman-teman TI JARKOM 2012 yang memberi tempat untuk mengerjakan Skripsi. 10. Teman – teman Teknik Informatika semua angkatan dan khususnya TI angkatan 2012 yang selalu memberikan motivasi dan bantuan hingga penulis menyelesaikan tugas akhir ini.
Penulis menyadari bahwa masih banyak kekurangan dalam penyusunan tugas akhir ini. Saran dan kritik sangat diharapkan untuk perbaikan yang akan datang. Yogyakarta …………………………
Jonathan Widyo Wicaksono
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI IDENTIFIKASI MAKNA KATA “SABAR” DALAM KARYA SASTRA MENGGUNAKAN SUPPORT VECTOR MACHINE (SVM) KERNEL POLINOMIAL ....................................................................................................... i IDENTIFICATION OF THE WORD “PATIENT” IN LITERATUR WORK USING POLYNOMIAL KERNEL SUPPORT VECTOR MACHINE (SVM) ................................................................................................................................. ii HALAMAN PERSETUJUAN ............................................................................ iii HALAMAN PENGESAHAN .............................................................................. iv MOTO .................................................................................................................... v PERNYATAAN KEASLIAN .............................................................................. vi ABSTRAK .......................................................................................................... viii ABSTRACT .......................................................................................................... ix KATA PENGANTAR ........................................................................................... x DAFTAR ISI ........................................................................................................ xii DAFTAR TABLE ............................................................................................... xv DAFTAR GAMBAR .......................................................................................... xvi BAB I ...................................................................................................................... 1 PENDAHULUAN .................................................................................................. 1 1.1.
Latar Belakang ....................................................................................... 1
1.2.
Rumusan Masalah .................................................................................. 2
1.3.
Tujuan ..................................................................................................... 2
1.4.
Batasan Masalah..................................................................................... 2
BAB II .................................................................................................................... 5 LANDASAN TEORI............................................................................................. 5 2.1
Sabar ........................................................................................................ 5
2.2
Information Retrieval ............................................................................ 5
2.3
Text Prepocessing ................................................................................... 5
2.2.1
Tokenizing........................................................................................ 6
2.2.2
Filtering ............................................................................................ 7
2.2.3
Stemming ......................................................................................... 8
2.2.4
Pembobotan Kata .......................................................................... 12
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4
Support Vector Machine (SVM) ......................................................... 17
2.4.1 2.5
Multi Class SVM ........................................................................... 20
Evaluasi Pengujian Sistem ................................................................... 23
BAB III ................................................................................................................. 25 ANALISIS DAN DESAIN .................................................................................. 25 3.1
Diskripsi sistem ..................................................................................... 25
3.2
Data ........................................................................................................ 26
3.3
Penyimpanan Data ............................................................................... 27
3.4
Pemetaan Data ...................................................................................... 28
3.2.1
Tokenizing...................................................................................... 28
3.2.2
Stopword Filtering ....................................................................... 28
3.2.3
Stemming ....................................................................................... 29
3.2.4
Computation of TF-IDF Feature ................................................. 29
3.5
Mengunakan sistem .............................................................................. 30
3.6
Struktur data ........................................................................................ 31
3.7
Desain Logikal (Logical Design) ......................................................... 31
3.4.1
DFD level 0 ..................................................................................... 31
3.4.2
Desain Proses PI (Pemerolehan Informasi) ................................ 32
3.4.3
Desain Proses SVM kernel Polinomial ........................................ 33
BAB IV ................................................................................................................. 34 IMPLEMENTASI SISTEM ............................................................................... 34 4.1
Kebutuhan Perancangan Sistem ......................................................... 34
4.1.1
Hardware ....................................................................................... 34
4.1.2
Software ......................................................................................... 34
4.2
Implementasi Prepocessing Kalimat .................................................. 34
4.2.1 Class Master ...................................................................................... 34 4.2.2 Class Kelas ........................................................................................ 36 4.2.3 Class Dokumen .................................................................................. 37 4.2.4 Class Stopword................................................................................. 40 4.2.5 Class Mencari Bobot ........................................................................ 42 4.3
Sistem Yang Digunakan Dari WEKA ................................................ 45
4.3.1
Proses Input Atribut ..................................................................... 47
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.3.2
Proses Input Bobot ........................................................................ 48
4.3.3
Mengunkan WEKA ...................................................................... 49
BAB V................................................................................................................... 50 ANALISIS HASIL .............................................................................................. 50 5.1
Skema Pengujian .................................................................................. 50
5.2
Hasil Pengujian ..................................................................................... 51
5.2.1
Pengujian 1 .................................................................................... 52
5.2.2
Pengujian 2 .................................................................................... 52
5.3.
Analisa Hasil ......................................................................................... 53
BAB VI ................................................................................................................. 55 KESIMPULAN DAN SARAN ........................................................................... 55 6.1
Kesimpulan ........................................................................................... 55
6.2
Saran ...................................................................................................... 55
DAFTAR PUSTAKA .......................................................................................... 55
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABLE
Table 2.1 Contoh hasil Tokenizing ....................................................................... 6 Tabel 2.2 Daftar Stop Word ................................................................................. 7 Tabel 2.3 Input dari hasil Tokenizing .................................................................. 7 Tabel 2.4 Hasil Output Filtering .......................................................................... 8 Tabel 2. 5 Recoding ............................................................................................... 9 Tabel 2. 6 Kombinasi Awalan Akhiran yang Tidak Diijinkan ....................... 11 Tabel 2. 7 Contoh Input Proses Term Frequency (tf) / 𝒕𝒇𝒕, 𝒅 ........................ 13 Tabel 2. 8 Hasil Proses Term Frequency (tf) / 𝒕𝒇𝒕, 𝒅 ....................................... 13 Tabel 2. 9 Contoh Input Proses Document Freuency (df) .............................. 14 Tabel 2. 10 Hasil Output Proses Document Freuency(df) ............................... 14 Tabel 2. 11 Input Proses Menghitung Invers Document Frecuency (idf) ...... 15 Tabel 2. 12 Output Proses Invers Document Frecueny (idf) ........................... 16 Tabel 2. 13 Input Proses Mencari Nilai weight (w) .......................................... 16 Tabel 2. 14 Hasil Output Proses Weight (w) .................................................... 17 Tabel 2. 15 Fungsi kernel ................................................................................... 19 Tabel 2. 16 Contoh 4 Class SVM biner dengan metode One-agains-all ........ 20 Tabel 2. 17 Contoh 4 SVM biner dengan metode One-against-one ............... 21 Tabel 2. 18 Contoh 6 SVM biner dengan metode DAGSVM .......................... 23 Tabel 3. 1 Tabel hasil dari TF-IDF dengan data sebenarnya
29
Tabel 3. 2 Nilai w tiap term
29
Table 5. 1 Data pengujin sebanyak 108 data
51
Table 5. 2 Data pengujin sebanyak 36 data
51
Table 5. 3 Hasil semua akurasi
53
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Gambar 2. 1 Hyperplane melalui dua kelas linearly ....................................... 18 Gambar 2. 2 Contoh Klasifikasi dengan metode One-against-all ................. 21 Gambar 2. 3 Contoh klasifikasi dengan metode One-against-one ................. 22 Gambar 2. 4 Contoh 6 SVM biner dengan metode DAGSVM ....................... 23 Gambar 3. 1 Skema Diskripsi Proses Klasifikasi SVM kernel Polinomial
26
Gambar 3. 2 Struktur Data
31
Gambar 3. 3 DFD Level 0
31
Gambar 3. 4 Diagram Alir Proses Pemerolehan Informasi
32
Gambar 3. 5 Diagram Alir Mengunkan sistem
33
Grafik 5. 1 Perbandingan hasil uji akurasi
54
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN
1.1.
Latar Belakang Kata “sabar” banyak diungkit dalam kehidupan berbangsa di Indonesia dan diajarkan oleh kelima agama besar di Indonesia (Islam, Katolik, Kristen, Hindu, Budha) menurut Subandi (2011). Subandi (2011) menyebutkan bahwa dalam Al Qur’an terdapat 44 ayat yang mengandung kata “sabar” dan 14 ayatt yang menggunakan kata “kesabaran”. Penelusuran dalam Alkitab (Bible) Bahasa Indonesia menunjukan 70 ayat yang mengandung kata “sabar” dan kata “kesabaran”. Kata “sabar” dalam ajaran Budha dan Hindu berguna dalam pengendalian diri, Subandi (2011) . Sehingga B.B. Dwijatmoko melakukan penelitian untuk mengetahui atri dari kata “kesabaran” atau kata “sabar” dalam karya sastra Indonesia, dan hasil dari penelitian yang dilakukan mendapatkan hasil dimana kata “sabar” terbagi menjadi 6(enam) konsep yaitu : penerimaan kondisi yang harus dihadapi, penantian giliran, penerimaan urutan kegiatan, kesediaan menunggu dalam pembicaraan, sifat sabar, dan ketekunan dalam melakukan Pekerjaan. Data yang digunakan dalam penelitian oleh B.B Dwijatmoko berasal dari situs www.corci.org. Sebanyak 108 karya sastra. Distribusi data meliputi karya sastra mengandung kata “sabar” (81), kata “bersabar” (13), kata “kesabaran” (12), kata “penyabar” (1), dan kata “menyabarkan” (1). Data yang ada diatas disimpulan bahwa kata “sabar” memiliki 6 (enam) konsep dengan memakai pendekatan analisis wacana dan analisis wacana kritis (Fairclough, 1995 dan Wodak dan Meyer, 2001). Diatas dapat didapatkan bahwa mengatagorikan kata “sabar” kedalam 6 (enam) kondisi menggunkan metode yang manual atau menggunakan analisis pendekatan. Melihat dari itu terlalu lama waktu yang
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
digunakan dalam menganalisis karya sastra Indonesia memerlukan waktu yang lama namun tepat sesuai dengan pendekatan manusia, dan sistem ini dibuat untuk membantu menguji apakah menggunkan metode klasifikasi SVM (Support Vector Machine) bisa mendapatkan ketepatan/ akurasi yang sama dengan yang menggunakan pendekatan analisis wacana dan analisis wacana kritis (Fairclough, 1995 dan Wodak dan Meyer, 2001).
1.2.
Rumusan Masalah Berdasarkan latar belakang diatas, maka rumusan masalah yang akan diselesaikan, yaitu : 1. Seberapa akurat klasifikasi SVM (Support Vector Machines) dalam mengklasifikasikan kata “sabar” dalam Karya Sastra. 2. Apakah SVM (Support Vector Machines) mampu untuk mengklasifikasikan sebuah kata.
1.3.
Tujuan Tujuan dari penelitian ini adalah mengetahui akurasi dari SVM (Support Vector Machines) dalam mengkalsifikasi kata “sabar” dalam sebuah karya satra.
1.4.
Batasan Masalah Dalam sistem pengukur akurasi menggunakan metode SVM (Support Vector Machine), dilakukan beberapa batasan, sebagai berikut : a. Sistem yang akan dibangun Menggunakan metode SVM (Support Vector Machine) dengan kernel Polinimial di bantu dengan libary dari WEKA. b. Data karya sastra yang akan diklasifikasi hanya yang mengandung kata “sabar”. c. Input sistem berupa karya sastra yang mengandung kata “sabar”. d. Output dari sistem adalah sebuah nilai akurasi dari metode SVM (Support Vector Machine).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
1.5.
Metode Penelitian Metode penelitian yang digunakan dalam proses kalsifikasi Sastra Indonesi menggunakan metode SVM Kernel Polinomial : 1. Studi Literatur Studi literatur tahapan dimana mencari dasar dari metode yang digunakan seperti SVM Kernel Polinomial yang bersumber dari buku, jurnal, dan website. 2. Pengumpulan Data Pengumpulan data tahapan mengumpulkan bahan test dan bahan traning untuk dimasukan kedalam sistem untuk di uji kebenarnya. 3. Perancangan Sistem Perancangan sistem adalah tahapan yang dibuat untuk menunjukan alur atau sebuah cerita dimana sistem yang akan dibuat bisa berjalan dan menghasilkan sebuah hasil yang dinginkan. 4. Pembuatan Sistem Pembuatan sistem tahapan yang menjadikan sebuah rancangan yang sudah dibuat menjadi sebuah sistem yang dapat digunakan. 5. Implementasi Sistem Implementasi sistem dengan cara menggunakan data yang sudah dicari. Data yang digunakan untuk implementasi sistem berupa data teks sumber dari corci.org. 6. Evaluasi Evaluasi merupakan tahapan menganalisa hasil dari implementasi sistem yang sudah dibuat. Hasil dari analisa yang didapat dibuat kesimpulan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
1.6.
Sistematika Penulisan Sistematika penulisan tugas akhir ini adalah sebagai berikut : BAB I. Pendahuluan Bab ini berisi latar belakang, rumusan masalah, tujuan, batasan masalah, dan sistematika penulisan. BAB II. Landasan Teori Bab ini berisi penjelasan tentang prinsip dan konsep dasar yang diperlukan untuk memecahkan masalah yang dibahas pada Bab BAB III. Metodologi Penelitian Bab ini berisi tentang metodologi penelitian yang akan dilakukan selama penelitian, terdiri dari : Tahap definisi ruang lingkup, analisis masalah, analisis kebutuhan, desain logikal, desain fisik dan integrasi dan tahap pembuatan sistem dan pengujian. BAB IV. Analisis dan Perancangan Sistem Bab ini akan menjelaskan deskripsi umum sistem, data, use case, desain database, desain proses, serta desain Graphical User Interface yang akan digunakan. BAB V. Implementasi Sistem Bab ini akan menjelaskan tentang implementasi sistem berdasarkan rancangan pada BAB IV. BAB VI. Pengujian dan Analisis Hasil Bab ini berisi pengujian terhadap sistem yang dibuat dan dilanjutkan dengan menganalisis hasil pengujian yang meliputi kelebihan dan kekurangan sistem yang dibuat. BAB VII. Kesimpulan Bab ini akan menjelaskan kesimpulan umum yang diperoleh dari pembuatan sistem serta rancangan pengembangan sistem ke depan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI
Pada Bab II akan dijelaskan mengenai landasan teori yang digunakan untuk mendukung penelitian yang dilakukan penulis. Dalam Bab ini akan dijelaskan pengertian serta metode-metode yang digunakan oleh penulis.
2.1
Sabar Kata “sabar” yang diteliti oleh B.B. Dwijatmoko dikarena sebagai sebuah gagasan yang penting sebagai untuk mempersatukan sebuah agama dan juga sebagai pengendali akan diri sendiri. Sabar yang teliti memiliki 6 konsep yaitu : 1. Penerimaan keadaan 2. Penantian giliran 3. Penerimaan urutan tindakan 4. Kesediaan menunggu dalam pembicaraan 5. Sifat sabar 6. Ketekunan dalam Pekerjaan
2.2
Information Retrieval Sebuah proses untuk medapatkan sebuah informasi yang tepat dan sesuai yang akan di lakukan proses selanjutnya dalam proses Pemerolehan informasi (Mooers, 1951, hal. 25).
2.3
Text Prepocessing Merupakan tahapan dalam mengelola sebuah data yang diinputkan kedalam program. Pada tahap text processing terdapat beberapa langkah, yaitu tokenizing, stopword filtering, stemming , computation of TF-IDF feature.
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
2.2.1 Tokenizing Proses yang dilakukan kepada sebuah kalimat yang masuk diubah kedalam bentuk kata-perkata dan juga menghilangkan tanda baca pada kalimat. Input : Langkah untuk mengklasifikasi karya sastra menggunakan SVM : tekt Prepocesing , klasifikasi SVM. Output : Table 2.1 Contoh hasil Tokenizing
Langkah untuk mengklasifikasi karya sastra menggunakan SVM tekt Prepocesing klasifikasi SVM
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
2.2.2 Filtering Proses setelah tahap tokenizing dilakukan memerikasa kata yang seharusnya dihilangkan untuk efisiensi proses klasifikasi karena kata tersebut tidak banyak berpengaruh. Dafttar kata yang seharusnya dihilangkan disimpan dalam stopword list. Daftar Stop Word : Tabel 2.2 Daftar Stop Word
yang
pernah
sudah
antara
mampu
setiap
tetapi
dan
tentang
untuk
bisa
ada
di
dari
melakukannya
seperti
setelah
mendapatkan
lakukan
jadi
semua
punya
memang
karena
hampir
telah
baik
Of
juga
mr
lain
mrs
am
…, dan lain-lain
Input : Tabel 2.3 Input dari hasil Tokenizing
Langkah untuk mengklasifikasi karya sastra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
menggunakan SVM tekt Prepocesing klasifikasi SVM Output : Tabel 2.4 Hasil Output Filtering
Langkah mengklasifikasi karya sastra menggunakan SVM tekt Prepocesing klasifikasi SVM
2.2.3 Stemming Proses mengubah data yang sudah didapat dari tahap Filtering diubah menjadi bentuk kata dasarnya seperti dalam kamus besar bahasa indonesia. Proses ini menggunakan algoritma stemming Nazief and Adriani’s dari Universitas Indonesia (1998). Berikut ini urutan algoritman stemming
Nazief and
Adriani’s : Cari kata yang sama antara data set dengan kamus jika sama diamsusikan bahwa kata tersebut adalah root word. Maka algoritma berhenti. Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”) dibuang. Jika berupa particles (“-lah”, “-kah”, “-tah” atau “-pun”)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
maka langkah ini diulangi lagi untuk menghapus Possesive Pronouns (“-ku”, “-mu”, atau “-nya”), jika ada. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah “-k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut ke langkah 4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi ke langkah 4a, jika tidak pergi ke langkah 4b. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika ditemukan maka algoritma berhenti, jika tidak pergi ke langkah 4b. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti. Melakukan Recoding dapat dilihat pada tabel 2.5 Tabel 2. 5 Recoding
Aturan Format Kata 1
berV…
Pemenggalan ber-V... | be-rV... ber-CAP... dimana C!=‟r‟ &
2
berCAP…
P!=‟er‟
3
berCAerV...
ber-CaerV... dimana C!=‟r‟
4
belajar
bel-ajar be-C1erC2...
dimana
5
beC1erC2...
C1!={‟r‟|‟l‟}
6
terV...
ter-V... | te-rV...
7
terCerV...
ter-CerV... dimana C!=‟r‟
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
ter-CP... dimana C!=‟r‟ dan 8
terCP...
P!=‟er‟
9
teC1erC2...
te-C1erC2... dimana C1!=‟r‟
10
me{l|r|w|y}V...
me-{l|r|w|y}V...
11
mem{b|f|v}...
mem-{b|f|v}...
12
mempe...
mem-pe...
13
mem{rV|V}...
me-m{rV|V}... |me-p{rV|V}…
14
men{c|d|j|z}...
men-{c|d|j|z}...
15
menV...
me-nV... | me-tV
16
meng{g|h|q|k}... meng-{g|h|q|k}...
17
mengV...
meng-V... | meng-kV...
18
menyV...
meny-sV...
19
mempV...
mem-pV... dengan V!=‟e‟
20
pe{w|y}V...
pe-{w|y}V...
21
perV...
per-V... | pe-rV... per-CAP... dimana C!=‟r‟ dan
22
perCAP
P!=‟er‟
23
perCAerV...
per-CAerV... dimana C!=‟r‟
24
pem{b|f|V}...
pem-{b|f|V}...
25
pem{rV|V}...
pe-m{rV|V}... | pe-p{rV|V}…
26
pen{c|d|j|z}...
pen-{c|d|j|z}...
27
penV...
pe-nV... | pe-tV...
28
peng{g|h|q}...
peng-{g|h|q}...
29
pengV...
peng-V... | peng-kV...
30
penyV...
peny-sV... pe-lV... kecuali “pelajar” yang
31
pelV...
menghasilkan “ajar” per-erV...
32
peCerV...
C!={r|w|y|l|m|n}
dimana
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
pe-CP...
dimana
33
peCP...
C!={r|w|y|l|m|n} dan P!=‟er‟
34
terC1erC2...
ter-C1erC2... dimana C1!=‟r‟ pe-C1erC2...
35
peC1erC2...
dimana
C1!={r|w|y|l|m|n}
a) Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai. Tipe awalan ditentukan melalui langkah-langkah berikut: 1.
Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-turut adalah “di-”, “ke-”, atau “se-”.
2.
Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya.
3.
Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti.
4.
Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan “none” maka awalan dapat dilihat pada Tabel 2.6. Hapus awalan jika ditemukan.
Tabel 2. 6 Kombinasi Awalan Akhiran yang Tidak Diijinkan
Awalan
Akhiran yang tidak diijinkan
Be-
-i
di-
-an
Ke-
-i ,-kan
Me-
-an
Se-
-i , -kan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
2.2.4 Pembobotan Kata Dalam
menentukan
bobot
suatu
kata
tidak
hanya
berdasarkan frekuensi kemunculan kata di satu dokumen, tetapi juga memperhatikan frekuensi terbesar pada suatu kata yang dimiliki oleh dokumen yang bersangkutan. Hal ini untuk menentukan posisi relatif bobot dari kata dibanding dengan kata-kata lain di dokumen yang sama. Didalam memberikan bobot pada sebuah kata menggunakan teknik yang paling sering digunakan adalah TF/IDF (term frequency (tf), dan inverse dokumen frequency (idf)). Term Frequency (tf) adalah jumlah kemunculan suatu kata dalam sebuah dokumen dan Inverse document frequency (idf) adalah inverse document frequency dari suatu kata keseluruhan dokumen yang terkait. Rumus pembobotan (2.1) Salton (1989) adalah sebagai berikut: 𝑁 𝑤(𝑡, 𝑑) = 𝑡𝑓𝑡,𝑑 ∗ 𝑖𝑑𝑓𝑡 = 𝑡𝑓(𝑡, 𝑑) ∗ 𝑙𝑜𝑔2( ) 𝑛𝑡
(2. 1)
Dimana : 𝑤(𝑡, 𝑑) = bobot dari term(t)/kata dalam dokumen (d) 𝑡𝑓(𝑡,𝑑) =frekuensi kemunculan term(t)/kata dalam dokumen (d) 𝑖𝑑𝑓𝑡 = inverse document frequency dari kata t 𝑁 = jumlah seluruh dokumen terkait 𝑛𝑡= jumlah dokumen yang mengandung term (t) atau kata
Berikut ini tahapan pencarian data untuk setiap rumus diatas : Menghitung Term Frequency (tf) atau 𝒕𝒇(𝒕,𝒅) Ini mencari seberapa sering muncul kata yang sama dalam satu dokumen. Setiap kata yang muncul diberi nilai 1 dan bila ketemu kata yang sama lagi di tambah 1 lagi pada kata tersebut. Input :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
Tabel 2. 7 Contoh Input Proses Term Frequency (tf) / 𝑡𝑓𝑡,𝑑
D1
D2
Langkah
Karya
klasifikasi
Satra
Karya
Indonesia
Sastra
Klasifikasi
Guna
Enam
SVM
Kategori
Teks
Guna
Prepocesing
Metode
klasifikasi
SVM
SVM Output : Tabel 2. 8 Hasil Proses Term Frequency (tf) / 𝑡𝑓𝑡,𝑑
Term (t)
D1
D2
Langkah
1
0
klasifikasi
1
1
Karya
1
1
Sastra
1
1
Guna
1
1
SVM
2
1
Teks
1
0
Prepocesing
1
0
klasifikasi
1
1
Indonesia
0
1
metode
0
1
Enam
0
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
Menghitung document frequency (df) Merupakan banyaknya dokumen dimana suatu term(t) muncul. Sehingga apabila term (t) muncul lebih dari satu kali dalam satu dokumen tetap dihitung satu term(t) yang dimiliki oleh dokumen tersebut dan total dari document frequency (df) terbesar adalah banyanya total doumen apabila semua doumen memiliki term(t) yang sama dan jumlah terkecil dari document frequency (df) adalah 1 tidak bisa nol karena setiap doumen memiliki term(t) sendiri Input : Tabel 2. 9 Contoh Input Proses Document Freuency (df)
Term (t)
D1
D2
Langkah
1
0
klasifikasi
1
1
Karya
1
1
Sastra
1
1
Guna
1
1
SVM
2
1
Teks
1
0
Prepocesing
1
0
klasifikasi
1
1
Indonesia
0
1
metode
0
1
Enam
0
1
Output : Tabel 2. 10 Hasil Output Proses Document Freuency(df)
Term (t)
df
Langkah
1
klasifikasi
2
Karya
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
Sastra
2
Guna
2
SVM
2
Teks
1
Prepocesing
1
klasifikasi
2
Indonesia
1
metode
1
Enam
1
Menghitung invers document frequency (idf) / 𝒊𝒅𝒇𝒕 Sebagai proses untuk mencari nilai invers dari hasil document frequency (df). Input : Tabel 2. 11 Input Proses Menghitung Invers Document Frecuency (idf)
Term (t)
df
Langkah
1
klasifikasi
2
Karya
2
Sastra
2
Guna
2
SVM
2
Teks
1
Prepocesing
1
klasifikasi
2
Indonesia
1
metode
1
Enam
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
Output : Tabel 2. 12 Output Proses Invers Document Frecueny (idf)
Term (t)
df
idf
Langkah
1
0.30103
klasifikasi
2
0
Karya
2
0
Sastra
2
0
Guna
2
0
SVM
2
0
Teks
1
0.30103
Prepocesing
1
0.30103
klasifikasi
2
0
Indonesia
1
0.30103
metode
1
0.30103
Enam
1
0.30103
Menghitung weight (w) untuk menentukan bobot tiap term(t) dari setiap dokumen yang ada Ini melihat rumus dari (2.1) yang dimana sudah di pisahkan untuk setiap bagiannya sehingga yang dibutuhkan adalah hasil dari 𝑖𝑑𝑓𝑡 dan nilai dari tiap term setiap dokumen yang dikalikan. Input : Tabel 2. 13 Input Proses Mencari Nilai weight (w)
Term (t)
D1 D2
idf
Langkah
1
0
0.30103
klasifikasi
1
1
0
Karya
1
1
0
Sastra
1
1
0
Guna
1
1
0
SVM
2
1
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
Teks
1
0
0.30103
Prepocesing
1
0
0.30103
klasifikasi
1
1
0
Indonesia
0
1
0.30103
Metode
0
1
0.30103
Enam
0
1
0.30103
Output : Tabel 2. 14 Hasil Output Proses Weight (w)
Term (t)
2.4
D1 D2
idf
D1 (w)
D2 (w)
Langkah
1
0
0.30103 0.30103 0
klasifikasi
1
1
0
0
0
Karya
1
1
0
0
0
Sastra
1
1
0
0
0
Guna
1
1
0
0
0
SVM
2
1
0
0
0
Teks
1
0
0.30103 0.30103 0
Prepocesing
1
0
0.30103 0.30103 0
klasifikasi
1
1
0
Indonesia
0
1
0.30103 0
0.30103
Metode
0
1
0.30103 0
0.30103
Enam
0
1
0.30103 0
0.30103
0
0
Support Vector Machine (SVM) Klasifikasi merupakan fungsi lain yang terdapat pada data mining setelah clustering. Klasifikasi adalah proses menentukan model yang berguna untuk mendeskripsikan kelas tertentu, agar suatu objek dapat ditentukan kelasnya sesuai lebel (Han, Jiawei dan Micheline Kamber. 2006). Langkah yang pertama dalam mengklasifikasikan data adalah pengklasifikasian dari data training yang telah dibuat dari baris-baris data yang ada dalam database dan kelas label yang terkait. Setiap baris data disebut juga sebagai atribut kelas label. Atribut kelas label merupakan nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
diskrit dan tidak terurut. Karena setiap baris data training sudah memiliki kelas label, proses ini juga dikenal dengan supervised learning. Langkah selanjutnya yaitu menggunakan model dari data training untuk menghitung akurasi yang dibandingkan dengan data tes. Data tes diperoleh dari barisbaris data yang dipilih secara acak. Akurasi merupakan presentase data tes yang diklasifikasikan secara benar menggunakan pengklasifikasi atau model dari data training. Support Vector Machine (SVM) pertama kali diperkenalkan oleh Vapni pada tahun 1992 SVM adalah metode pembelajaran data yang berusaha menemukan hyperplane terbaik antar kelas pada input space. Konsep dasar dan SVM adalah linear classfier, akan tetapi dikembangkan agar dapat bekerja pada permasalahan non-linear. Klasifikasi dalam SVM dapat melibatkan fungsi kemel tertentu agar dapat bekerja pada data dengan dimensi yang lebih banya. Hyperplane pemisah terbaik antar kelas adalah sebuah garis pemisah antar kedua kelas (lihat gambar 2.1). Hyperplane pemisah terbaik dapat dicari dengan mengukur margin atau Jarak hypmplane dengan pola terdekat dari masing-masing kelas dan mencari titik pemisahnya (Nupobo, dkk 2003). Data pada titik maksimal tersebutlah yang disebut sebagai support vector. Diketahui bahwa titik-titk maksimal tersebut membuat garis pemisah hyperplane yang lebih sempurna untuk memisahkan data.
Gambar 2. 1 Hyperplane melalui dua kelas linearly
Input data dapat berupa linear dan non linear. Jika input data berupa linear maka pemisahan hyperplane dapat diberikan dalam persamaan :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
f(X) =w.x+b
(2. 2)
dimana w adalah n-dimensi bobot vektor dan b adalah pengali skala atau nilai bias. Persamaan ini menemukan maksimum margin untuk memisahkan kelas dari kelas positif dari kelas negatif. 𝑥𝑖. 𝑤 + 𝑏 ≥ +1 𝑢𝑛𝑡𝑢𝑘 𝑦𝑖 = +1
(2. 3)
𝑥𝑖. 𝑤 + 𝑏 ≥ −1 𝑢𝑛𝑡𝑢𝑘 𝑦𝑖 = −1
(2. 4)
Pemillihan Parameter pada Support vector Machine Untuk mendapatkan tingkat kinerja yang tinggi, beberapa parameter dari algoritma SVM harus diperbaiki (Maimon 2010), termasuk: 1. Pemilihan Fungsi Kernel Tabel 2. 15 Fungsi kernel
Kernel
Definisi Kernel
Linear Quadratic
𝐾(𝑥, 𝑦) = 𝑥. 𝑦 𝐾(𝑥, 𝑦) = (𝑥. 𝑦)2
RBF
𝐾 (𝑥, 𝑦) = 𝑒 Polynomial Sigmoid (tangen hiperbolik)
−(
||𝑥−𝑦|| 2𝜎2
2
)
𝐾(𝑥, 𝑦) = (𝑥. 𝑦 + 𝑐)𝑑 𝐾(𝑥, 𝑦) = tanh(𝜎(𝑥. 𝑦) + 𝑐)
2. Kinerja SVM tergantung pada pilihan fungsi kernel, besaran parameter kernel dan penentuan parameter C. Fungsi kernel yang berbeda memperoleh tingkat keberhasilan yang berbeda untuk berbagai jenis data aplikasi. Ketika nilai penentuan parameter C yang dipilih terlalu besar atau terlalu kecil, generalisasi SVM mungkin berkurang. Jika parameter kernel dan penentuan parameter yang tepat dipilih, kinerja SVM akan optimal. 3. Parameter Kernel(s) . 4. Parameter regularisasi (C, ν, ε) untuk tradeoff antara kompleksitas model dan akurasi mode.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
2.4.1 Multi Class SVM Mengklasifikasikan lebih dari dua kelas atau multi class SVM yaitu
dengan
menggabungkan
beberapa
SVM
biner
atau
menggabungkan semua data yang terdiri dari beberapa kelas kedalam
sebuah
bentuk
permasalahan
optimasi.
Dengan
penggabungan kedua dimana menggabungkan beberapa kelas sekaligus mengalami optimasi yang lebih rumut. Berikut ini adalah metode umum digunakan untuk mengimplementasikan multi class SVM (Krisantus 2007) : 1. Metode ”One-Against-All” Dengan metode ini, dibangun k buah model SVM biner (k adalah jumlah kelas). Setiap model klasifikasi ke-i dilatih dengan menggunakan keseluruhan data, untuk mencari solusi permasalahan (2.5). Contohnya, terdapat permasalahan klasifikasi dengan 4 buah kelas. Untuk pelatihan digunakan 4 buah SVM biner seperti pada
tabel
2.15
dan
penggunannya
dalam
mengklasifikasi data baru dapat dilihat pada 5.
(2. 5)
Tabel 2. 16 Contoh 4 Class SVM biner dengan metode One-agains-all
y=1
y=-1
hipotesis
Kelas 1 Bukan kelas 1
f 1 (x) = (w1 )x + b1
Kelas 2 Bukan kelas 2
f 2 (x) = (w2 )x + b2
Kelas 3 Bukan kelas 3
f 3 (x) = (w3 )x + b3
Kelas 4 Bukan kelas 4
f 4 (x) = (w4 )x + b4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
Gambar 2. 2 Contoh Klasifikasi dengan metode One-against-all
2. Metode ”One-Against-One” Membangun
𝑘(𝑘−1) 2
buah model klasifikasi biner (
adalah jumlah kelas). Setiap model klasifikasi dilatih pada data dari dua kelas. Untuk solusi kelas ke –i dan kelas ke-j (2.6)
(2. 6)
Selesai pengujian untuk menetukan data tes masuk kelas mana dilakukan pengujian dengan metode voting Tabel 2. 17 Contoh 4 SVM biner dengan metode One-against-one
y=1
y=-1
hipotesis
Kelas 1 Kelas 2 f 12 (x) = (w12 )x + b12 Kelas 1 Kelas 3 f 13 (x) = (w13 )x + b13 Kelas 1 Kelas 4 f 14 (x) = (w14 )x + b14 Kelas 2 Kelas 3 f 23 (x) = (w23 )x + b23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
Kelas 2 Kelas 4 f 24 (x) = (w24 )x + b24 Kelas 3 Kelas 4 f 34 (x) = (w34 )x + b34
Gambar 2. 3 Contoh klasifikasi dengan metode One-against-one
Jika data ke- i dimasukkan kedalam fungsi hasil pelatihan 𝑓 12 (x) = (𝑤 12 )x + b12 dan hasilnya kelas i maka suara untuk kelas i ditambahkan satu ini bila kelas ke i lebih banyak dari kelas lainnya. Jika kelas ke i ada dua yang sama besar atau sama maka akan kelas lebih kecil adalah kelas milik data ke i tersebut. Dapat dilihat pada gambar 2.3 .
3. Metode DAGSVM (Directed Acyclic Graph Support Vector Machine) Pelatihan dengan menggunakan metode ini sama dengan
metode
membangun
𝑘(𝑘−1) 2
one-against-one,
yaitu
dengan
buah model klasifikasi SVM biner.
Akan tetapi, pada saat pengujian digunakan binary directed acyclic graph. Setiap node merupakan model SVM biner dari kelas ke-i dan kelas ke-j. Pada saat memprediksi kelas data pengujian, maka hipotesis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
dievaluasi mulai dari simpul akar, kemudian bergerak ke kiri atau ke kanan tergantung nilai output dari hipotesi. Tabel 2. 18 Contoh 6 SVM biner dengan metode DAGSVM
y=1
y=-1
hipotesis
Bukan
Bukan
f 12 (x) = (w12 )x +
Kelas 2
Kelas 1
b12
Bukan
Bukan
f 13 (x) = (w13 )x +
Kelas 3
Kelas 1
b13
Bukan
Bukan
f 14 (x) = (w14 )x +
Kelas 4
Kelas 1
b14
Bukan
Bukan
f 23 (x) = (w23 )x +
Kelas 3
Kelas 2
b23
Bukan
Bukan
f 24 (x) = (w24 )x +
Kelas 4
Kelas 2
b24
Bukan
Bukan
f 34 (x) = (w34 )x +
Kelas 4
Kelas 3
b34
Gambar 2. 4 Contoh 6 SVM biner dengan metode DAGSVM
2.5
Evaluasi Pengujian Sistem Precision dan recall baik digunakan dalam mengevaluasi hasil dari suatu algoritma pengenalan pola. Precision adalah suatu ukuran keakuratan pola sedangkan recall adalah suatu ukuran kelengkapan (Dr. Kekre. HB, dkk,
2011)
Precision pada dasarnya adalah sebuah ukuran dari
pemerolehan dokumen yang relevan pada suatu pencarian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
Recall seperti yang disebutkan sebelumnya adalah ukuran suatu kelengkapan. Recall pada dasamya adalah probabilitas dari dokumen relevan yang dikembalikan dari suatu query. Pada binary classification, recall dapat juga disebut sensitivitas. Rumus perhitungan dari precision dan recall dapat dilihat sebagai berikut: 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑟𝑒𝑐𝑎𝑙𝑙 =
|{𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛} ∩ {𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑑𝑖𝑝𝑒𝑟𝑜𝑙𝑒ℎ}| {𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑑𝑖𝑝𝑒𝑟𝑜𝑙𝑒ℎ}
|{𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛} ∩ {𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑑𝑖𝑝𝑒𝑟𝑜𝑙𝑒ℎ}| {𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛}
(2. 7)
(2. 8)
Dalam konteks klasifikasi, beberapa istilah seperti true positif (tp), false positif (fp, true negatif (tn) dan false negatif (fn) sering digunakan untuk membandingkan klasifikasi dari suatu objek dengan kelas yang sesungguhnya. perhitungan Precision dan recall bisasanya mengacu pada true positif dengan rumus perhitungan sebagai berikut : 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑟𝑒𝑐𝑎𝑙𝑙 = 𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =
𝑡𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 𝑡𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 + 𝑓𝑎𝑙𝑠𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒
𝑡𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 𝑡𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 + 𝑓𝑎𝑙𝑠𝑒 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒
𝑡𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 𝑡𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 + 𝑡𝑟𝑢𝑒 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒 + 𝑓𝑎𝑙𝑠𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑓 + 𝑓𝑎𝑙𝑠𝑒 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒
(2. 9)
(2. 10)
(2. 11)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III ANALISIS DAN DESAIN
Bab ini berisi analisis dan rancangan sistem yang digunakan dalam penelitian ini meliputi diskripsi sistem, data, penyimpanan data, struktur data, dari sistem.
3.1
Diskripsi sistem Sistem yang dibangun merupakan sebuah sistem pemerolehan informasi, yang mempunyai fungsi untuk melakukan identifikasi makna kata sabar pada sebuah Karya Sastra Indonesia. Proses idenfikasi atau klasifikasi menggunakan metode Support Vector Machine (SVM) kenel Polinomial. Data yang digunakan berupa data yang berformat .txt, data tersebut dibagi menjadi dua bagian sebagai data test dan data trening. Kegunaan data traning sebagai sebuah data yang akan digunakan sebagai pembanding yang benar dimana pembandingnya adalah data test. Data traning merupakan data yang yang akan diklasifikasikan atau diproses dengan metode SVM kernel Polinomial. Sedang data test akan dibandingkan atau akan diuji dengan hasil dari data traning apakah data test tersebut dapat terklasifikasi dengan tepat atau tidak. Hasil akhirnya adalah berupa akurasi, hasil akurasi adalah perbandingan antara hasil data test yang sudah dianalisa dangan sistem dengan hasil data test sesuai dengan sumber. Dalam artian singkat apabila hasil dari sistem yang menguji data test dapat sama dengan hasil sumber makas sistem atau metode yang klasifikasi SVM kernel polinomial berhasil. Semua data yang akan diproses dengan sistem akan dilakukan preprocessing dimana tahapan ini untuk memberikan bobot untuk setiap kata yang akan diproses. Tahapannya adalah tokenisasi (pemenggalan kata dan penghapusan tanda baca), case folding (mengubah kata kedalam huruf kecil), stopword (penghapusan kata-kata yang tidak penting), stemming
25
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
(pengembalian kata ke bentuk dasar), dan menghitung tf (jumlah kemunculan kata yang sama dalam sebuah dokumen). Proses ini perlu dilakukan dikarena SVM menggunakan data yang memiliki nilai sedang kata tidak memiliki nilai sehingga pengganti nilai menggunakan bobot ini sama gunanya sebagai data yang memiliki nilai.
Gambar 3. 1 Skema Diskripsi Proses Klasifikasi SVM kernel Polinomial
Penghitungan akurasi melalui tahapan yang telah disediakan oleh library WEKA. Metode yang digunakan dari WEKA menggunkan input data yang telah diproses terdahulu oleh system. 3.2
Data Dalam penelitian ini, sistem mengklasifikasikan makna kata sabar dalam karya sastra yang didefinisikan menggunakan metode SVM. Data diambil dari web corci.org sebagai data acuan dan data pendukung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
penelitian ini. Data yang dipakai sebanyak 108 dokumen. Data ini dibagi menjadi data tranning dan data testing. Semua data disimpan dalam format .txt .
3.3
Penyimpanan Data Media penyimpanan data yang digunakan berbentuk .txt , data yang disimpan hanya data yang akan dilakukan pengujian sedang proses hasil pengujian menggunakan arraylist tidak di simpan menggunakan .txt karena data hasil akan berbeda terus menerus setiap pengujia di ganti data uji. Data yang disimpan selain data uji .txt menyimpan kamus kata dasar dan juga stoplist. 3.3.1 Daftar media penyimpanan dalam .txt : 3.3.1.1 kata_dasar :
Untuk menyimpan kata dasar dalam proses Stemming .
3.3.1.2 stopwordID :
Digunakan dalam proses stopword ini berisi daftar dari apa saja kata yang tidak diijinkan keluar.
3.3.1.3 Bobot.txt
:
Menyimpan hasil dari bobot tiap term dan nama dokumen.
3.3.1.4 Term.txt
:
Menyimpan nama atribut yang dimiliki semua term yang ada.
3.3.2 Daftar media penyimpanan dalam arraylist : 3.3.2.1 ArrayList
: Menyimpan data atribut 3.3.2.2 ArrayList: Menyimpan data hasil proses akurasi SVM menggunkan WEKA 3.3.2.3 List<String> cls
: Menyimpan
data
yang digunakan
kategori
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
3.4
Pemetaan Data Dalam proses pemetaan data ini merupakan proses yang dilakukan agar data siap diproses menggunakan sistem yang dibuat. Data akan diproses memalalui tahapan sebagai berikut ini : 3.2.1
Tokenizing Sebuah proses untuk memberi tanda atau sekaligus menghilahkan tanda baca dalam sebuah artikel atau kalimat yang akan diproses. Data sebelum proses : “Hanya masalahnya sampai sekarang dia baru bisa memahami seorang perempuan saja namanya wanita yang sabar setiap bijaksana dan penuh kasih sayang.” Data sesudah proses :
3.2.2
hanya
masalahnya
sampai
sekarang
dia
baru
bisa
memahami
perempuan
saja
namanya
wanita
yang
sabar
setia
bijaksana
penuh
kasih
sayang
Stopword Filtering Adalah
proses
memerikasa
kata
yang
seharusnya
dihilangkan untuk efisiensi proses klasifikasi karena kata tersebut tidak banyak berpengaruh. Dafttar kata yang seharusnya dihilangkan disimpan dalam stopword list. Kata yang dapat dihilangkan misalnya adalah kata sambung yaitu : dan, yang, untuk , dsb hanya
masalahnya
sampai
sekarang baru
bisa
memahami perempuan
nama
wanita
setia
bijaksana
kasih
sayang
penuh
sabar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
3.2.3
Stemming Proses mengubah data yang sudah didapat dari token diubah menjadi bentuk kata dasarnya seperti dalam kamus besar bahasa indonesia
3.2.4
hanya
masalah
sampai
sekarang
nama
paham
perempuan wanita
bijaksana
penuh
kasih
baru
bisa
sabar
setia
sayang
Computation of TF-IDF Feature Tabel 3. 1 Tabel hasil dari TF-IDF dengan data sebenarnya data
tf
baru
1
bijaksana
1
bisa
1
hanya
1
kasih
1
masalah
1
nama
1
paham
1
penuh
1
perempuan
1
sabar
1
sampai
1
sayang
1
sekarang
1
setia
1
wanita
1 Tabel 3. 2 Nilai w tiap term
Term
tf 1
DF
2 3
IDF
4
W 1
2
3
4
akan
2
1 0.60206
0
0 1.20412
0
akhir
2
1 0.60206
0
0 1.20412
0
antara
1
1 0.60206
0
0 0.60206
0
1 0.60206
0
asih
1
0.60206
0
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
atap
1
bantal
1
baru
1 1
begini benar
1
1 0.60206
0
1 0.60206
0
0.60206
0
0
0 0.60206
0
1 0.60206 0.60206
0
0
0
1 0.60206
0
0
0 0.60206
1 0.60206
0
0 0.60206
0
berpintu
1
1 0.60206
0
0.60206
0
0
bersih
1
1 0.60206
0
0.60206
0
0
biasa
2
1 0.60206
0
0 1.20412
0
bicara
1
1 0.60206
0
0 0.60206
0
1 0.60206 0.60206
0
0
0
2 0.30103 0.30103
0 1.20412
0
bijaksana bisa
1
cinta
4 1
dengan
3.5
1
1
1 0.60206
0
1 0.60206
0
0.60206
0
0
0 0.60206
0
Mengunakan sistem Dalam sistem yang dibuat oleh penulis menggunkan libary dari WEKA, di istem yang dibuat mengubah data input yang bisasanya digunakan oleh WEKA mengunakan format .csv menjadi format .txt. Dalam sistem yang dibuat data masukan akan dibuat menjadi dua .txt, yang satu berfungsi sebagai inisia term atau daftar kata unik sedang yang kedua sebagai informasi dari bobot tiap term di setiap dokumen yang ada. Langkah pertama dalam membuat data inputan yaitu menggunakan proses preprosesing untuk mendapatkan term yang akan dimasukan kedalam .txt yang pertama yang digunakan dalam inisial term , selanjutnya sistem akan memproses nilai bobot atau w dari semua term yang didapat dari semua dokumen. Setelah itu dilakukan proses sistem untuk menghitung akurasi yang sudah tersedia didalam libary WEKA. Penyesuai inputan kedalam proses ini mengunkan format yang sudah disesuaikan sehingga bisa diproses dengan sistem libary dari WEKA.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
3.6
Struktur data Struktur data dalam sistem akan memisahkan data yang termasuk treaning dan testing.
Gambar 3. 2 Struktur Data
3.7
Desain Logikal (Logical Design) 3.4.1 DFD level 0
Gambar 3. 3 DFD Level 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
3.4.2 Desain Proses PI (Pemerolehan Informasi)
Gambar 3. 4 Diagram Alir Proses Pemerolehan Informasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
3.4.3 Desain Proses SVM kernel Polinomial
Gambar 3. 5 Diagram Alir Mengunkan sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
BAB IV IMPLEMENTASI SISTEM
4.1
Kebutuhan Perancangan Sistem Kebutuhan dalam
mengimplementasikan sistem pendukung
pengambilan keputusan pemilihan penerima beasiswa ini adalah : 4.1.1
Hardware
1.
Procesor : Intel Core i3-4210U 1.7Ghz
2.
Memori : 4 GB
3.
Graphic Card : Nvidia GeForce 610M 2GB
4.
Storage : 500GB
4.1.2
Software 1. IDE Netbeans 7.4 Sebagai IDE (Integrated Development Environment) untuk membuat atau mengembangkan perangkat lunak (software).
4.2
Implementasi Prepocessing Kalimat Proses ini berfungsi untuk membantu proses dalam membaca dokumen dan juga sekaligus memproses dokumen menjadi data yang siap di klasifikasikan. 4.2.1 Class Master Berfungsi sebagai fungsi untuk menyimpan dokumen yang sudah diproses dalam proses kata dasar dan pembatasan kata yang tidak diperlukan. public class Master { List classes; List documents; String stem, stopword; Set<String> terms; Dokumen testDoc; public Dokumen getTestDoc() { return testDoc; } public void setTestDoc(Dokumen testDoc) { this.testDoc = testDoc; d : documents) { d.setFileKamusStemWord(stem); } } public String getStopword() {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
} public String getStem() { return stem; } public void setStem(String stem) { this.stem = stem; for (Dokumen d : documents) { d.setFileKamusStemWord(stem); } } public String getStopword() { return stopword; } public void setStopword(String stopword) { this.stopword = stopword; for (Dokumen d : documents) { d.setFileKamusStopWord(stopword); } } public void preprocess() { terms = new HashSet<>(); for (Dokumen d : documents) { d.Preprocessing(); terms.addAll(d.daftarKata); } Map<String, Integer> tf = new HashMap<>(); for (final String term : terms) { int freq = tf.containsKey(term) ? tf.get(term) : 0; for (Dokumen doc : documents) { freq += Collections2.filter(doc.daftarKata, new Predicate<String>() { @Override public boolean apply(String input) { return term.equals(input); } }).size(); } tf.put(term, freq); } double f = 0; for (Integer freq : tf.values()) { f += freq.doubleValue(); } } public Master(String path) { File[] files = new File(path).listFiles(); documents = new ArrayList<>(files.length); classes = new ArrayList<>(files.length); for (File file : files) { if (file.isDirectory()) { Kelas kelas = new Kelas(); kelas.setNama(file.getName());
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
File[] files = new File(path).listFiles(); documents = new ArrayList<>(files.length); classes = new ArrayList<>(files.length); for (File file : files) { if (file.isDirectory()) { Kelas kelas = new Kelas(); kelas.setNama(file.getName()); classes.add(kelas); File[] files2 = file.listFiles(); for (File file1 : files2) { Dokumen doc = new Dokumen(file1); kelas.addDokumen(doc); documents.add(doc); } } else { documents.add(new Dokumen(file)); } } } public Kelas getKelas(Dokumen d) { for (Kelas kelas : classes) { if (kelas.getDaftarDokumen().contains(d)) { return kelas; } } return null; } } List Code 4. 1 Class Master
4.2.2 Class Kelas Memberi nama dalam setiap dokumen yang diambil sesuai dengan label. public class Kelas { private String nama; private List daftarDokumen; public Kelas() { daftarDokumen = new ArrayList<>(); } public void setNama(String name) { nama = name; } public List getDaftarDokumen() { return daftarDokumen; } public void addDokumen(Dokumen dokumen) { daftarDokumen.add(dokumen); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
public void addDokumen(Dokumen dokumen) { daftarDokumen.add(dokumen); } public String getNama() { return nama; } } List Code 4. 2 Class Kelas
4.2.3 Class Dokumen public class Dokumen { List<String> kamusStopWord; Set<String> kamusKataDasar; String filename; List<String> daftarKata; private boolean tokenized, removedStopWords, stemmed; private String fileKamusStopWord, fileKamusStemWord; public String getFileKamusStopWord() { return fileKamusStopWord; } public void setFileKamusStopWord(String fileKamusStopWord) { this.fileKamusStopWord = fileKamusStopWord; } public String getFileKamusStemWord() { return fileKamusStemWord; } public void setFileKamusStemWord(String fileKamusStemWord) { this.fileKamusStemWord = fileKamusStemWord; } public Iterator<String> iterator() { return daftarKata.iterator(); } public int size() { return daftarKata.size(); } public Dokumen(File file) { this(file.getPath()); } public Dokumen(String path) { daftarKata = new ArrayList<>(); filename = path; } public void Tokenize() { if (tokenized) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
public Dokumen(String path) { daftarKata = new ArrayList<>(); filename = path; } public void Tokenize() { if (tokenized) { return; } try { FileInputStream fis = new FileInputStream(filename); Scanner s = new Scanner(fis); if (daftarKata == null) { daftarKata = new ArrayList<>(); } else { daftarKata.clear(); } while (s.hasNext()) { String text = s.next(); String kata = text.replaceAll("[^a-zA-Z&&[^\\-]]", ""); //token.nextToken(); daftarKata.add(kata); } tokenized = true; } catch (FileNotFoundException ex) { tokenized = false; Logger.getLogger(Dokumen.class.getName()).log(Level.SEVERE, null, ex); } } public void bacakamus(String path) { try { FileInputStream fis = new FileInputStream(path); Scanner s = new Scanner(fis); kamusKataDasar = new HashSet<>(); while (s.hasNext()) { kamusKataDasar.add(s.next()); } } catch (FileNotFoundException ex) { Logger.getLogger(Tampilstopword.class.getName()).log(Level.SEVERE, null, ex); } } public void bacakamusstopword(String filename) { try { FileInputStream FIS = new FileInputStream(filename); Scanner sc = new Scanner(FIS); kamusStopWord = new ArrayList<>(); while (sc.hasNext()) { kamusStopWord.add(sc.next()); } } catch (FileNotFoundException ex) { Logger.getLogger(Tampilstopword.class.getName()).log(Level.SEVERE,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
kamusStopWord = new ArrayList<>(); while (sc.hasNext()) { kamusStopWord.add(sc.next()); } } catch (FileNotFoundException ex) { Logger.getLogger(Tampilstopword.class.getName()).log(Level.SEVERE, null, ex); } } public void hapusstopword() { if (removedStopWords) { return; } if (kamusStopWord == null) { throw new IllegalStateException("Kamus stopword belum ada"); } if (!tokenized) { throw new IllegalStateException("Dokumen belum di-tokenize"); } Iterator<String> i = daftarKata.iterator(); while (i.hasNext()) { String token = i.next(); if (kamusStopWord.contains(token)) { i.remove(); } } removedStopWords = true; } public void stem() { if (stemmed) { return; } if (kamusKataDasar == null || kamusKataDasar.isEmpty()) { throw new IllegalStateException("Kamus kata dasar belum ada"); } if (!removedStopWords) { throw new IllegalStateException("Stopwords belum dibuang"); } Lemmatizer stemmer = new DefaultLemmatizer(kamusKataDasar); for (int i = 0; i < daftarKata.size(); i++) { String kata = daftarKata.get(i); daftarKata.set(i, stemmer.lemmatize(kata)); } stemmed = true; } public void Preprocessing() { Tokenize(); bacakamusstopword(fileKamusStopWord); hapusstopword(); bacakamus(fileKamusStemWord); stem(); } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
bacakamusstopword(fileKamusStopWord); hapusstopword(); bacakamus(fileKamusStemWord); stem(); } } List Code 4. 3 Class Dokumen
4.2.4 Class Stopword Berfungsi untuk memanggil kamus stopword bila belum tersedia sekaligus memproses dalam tahapan stopword. public class Tampilstopword { public static void main(String[] args) { JFileChooser path = new JFileChooser(); FileFilter filter = (new FileNameExtensionFilter("Text files (*.txt)", "txt")); path.addChoosableFileFilter(filter); path.setFileFilter(filter); int result = path.showOpenDialog(null); if (result == JFileChooser.APPROVE_OPTION) { File file = path.getSelectedFile(); Dokumen dok = new Dokumen(file); result = path.showOpenDialog(null); if (result == JFileChooser.APPROVE_OPTION) { dok.setFileKamusStopWord(path.getSelectedFile().getPath()); result = path.showOpenDialog(null); if (result == JFileChooser.APPROVE_OPTION) { dok.setFileKamusStemWord(path.getSelectedFile().getPath()); dok.Preprocessing(); System.out.println(dok.daftarKata); } } } } public static List<String> Tokenize(String Teks) { StringTokenizer token = new StringTokenizer(Teks.toString().toLowerCase(), " .,()?!_+:;/*&^%$#@!~[]{}=()"); return Collections.list((Enumeration) token); } public static List<String> bacakamusstopword(String filename) { try { FileInputStream FIS = new FileInputStream(filename); Scanner sc = new Scanner(FIS); List<String> hasil = new ArrayList<>(); while (sc.hasNext()) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
try { FileInputStream FIS = new FileInputStream(filename); Scanner sc = new Scanner(FIS); List<String> hasil = new ArrayList<>(); while (sc.hasNext()) { hasil.add(sc.next()); } return hasil; } catch (FileNotFoundException ex) { Logger.getLogger(Tampilstopword.class.getName()).log(Level.SEV ERE, null, ex); return null; } } public static List<String> hapusstopword(List<String> hasiltoken, List<String> stopwords) { List<String> hasilstopword = new ArrayList<>(hasiltoken); Iterator<String> i = hasilstopword.iterator(); while (i.hasNext()) { String token = i.next(); if (stopwords.contains(token)) { i.remove(); } } return hasilstopword; } public static Set<String> bacakamus() { JFileChooser path = new JFileChooser(); int result = path.showOpenDialog(null); if (result == JFileChooser.APPROVE_OPTION) { File filename = path.getSelectedFile(); FileInputStream fis = null; try { fis = new FileInputStream(filename); } catch (FileNotFoundException ex) { Logger.getLogger(Tampilstopword.class.getName()).log(Level.SEV ERE, null, ex); } Scanner s = new Scanner(fis); Set<String> hasil = new HashSet<>(); while (s.hasNext()) { hasil.add(s.next()); } return hasil; } return null; } public static List<String> stem(Dokumen Dokumen, Set<String>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
} return hasil; } return null; } public static List<String> stem(Dokumen Dokumen, Set<String> kamus) { Lemmatizer stemmer = new DefaultLemmatizer(kamus); List<String> hasil = new ArrayList<>(Dokumen.size()); for (String kata : Dokumen.daftarKata) { hasil.add(stemmer.lemmatize(kata)); } return hasil; } } List Code 4. 4 Class Tampil stopword
4.2.5 Class Mencari Bobot Pemprosesan sebuah sistem untuk menentukan bobot di setiap term yang didapat. public class Mencari_bobot { public static double dotproduct(double[] i, double[] j) { if (i.length != j.length) { throw new IllegalArgumentException(); } double hasil = 0; for (int k = 0; k < i.length; k++) { hasil += i[k] * j[k]; } return hasil; } static class TermDocumentPair { public String term; public Dokumen doc; TermDocumentPair(String term, Dokumen doc) { this.term = term; this.doc = doc; } } private Set<String> allTerms; private Map tableTF; private Map<String, Integer> tableDF; private Master master; private Dokumen docTest; public Dokumen getDocTest() { return docTest; } public void setDocTest(Dokumen docTest) { this.docTest = docTest;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
private Dokumen docTest; public Dokumen getDocTest() { return docTest; } public void setDocTest(Dokumen docTest) { this.docTest = docTest; } public Mencari_bobot(Master m) { master = m; allTerms = m.terms; int size = allTerms.size() * m.documents.size(); tableTF = new HashMap<>(size); tableDF = new HashMap<>(size); docTest = m.getTestDoc(); } public int getTermFrequency(String term, Dokumen doc) { TermDocumentPair key = new TermDocumentPair(term, doc); if (tableTF.containsKey(key)) { return tableTF.get(key); } else { int count = 0; for (String kata : doc.daftarKata) { if (kata.equals(term)) { count++; } } tableTF.put(key, count); return count; } } public int getDocumentFrequency(String term) { if (tableDF.containsKey(term)) { return tableDF.get(term); } else { int c = 0; for (Dokumen d : master.documents) { if (d.daftarKata.contains(term)) { c++; } } tableDF.put(term, c); return c; } } //idf private double idf1(String term) { return Math.log(master.documents.size() / getDocumentFrequency(term)); } private double idf2(String term) { return 1d / (double) getDocumentFrequency(term);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
private double idf1(String term) { return Math.log(master.documents.size() / getDocumentFrequency(term)); } private double idf2(String term) { return 1d / (double) getDocumentFrequency(term); } private double idf3(String term) { return Math.log(1000 / getDocumentFrequency(term)); } public double getInverseDocumentFrequency(String term, int metode) { switch (metode) { case 1: return idf1(term); case 2: return idf2(term); case 3: return idf3(term); default: throw new IllegalArgumentException(); } } //bobot public double getWeight(String term, Dokumen doc) { return getTermFrequency(term, doc) * getInverseDocumentFrequency(term,1); } public double getInnerProduct(String term, Dokumen doc) { return getWeight(term, doc) * getWeight(term, docTest); } List Code 4. 5 Class Mencari Bobot W
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
Untuk memanggil semua sistem yang sudah dibuat sehingga dokumen dapat diproses dengan semestinya. public void Preprocessing() { Tokenize(); bacakamusstopword(fileKamusStopWord); hapusstopword(); bacakamus(fileKamusStemWord); stem(); } } List Code 4. 6 Documen
4.3
Sistem Yang Digunakan Dari WEKA Bagian ini berfungsi untuk memproses bagian dari pengklasifikasian mengunakan SVM ini mengandung sistem untuk output dimana semua sistem memanggil dari library WEKA yang sudah tersedia dari proses looping hingga proses membandingkan dengan sendirinya dipangil di dalam proses. public double SVMOutput(int index, Instance inst) throws Exception { double result = 0; // Is the machine linear? if (m_KernelIsLinear) { // Is weight vector stored in sparse format? if (m_sparseWeights == null) { int n1 = inst.numValues(); for (int p = 0; p < n1; p++) { if (inst.index(p) != m_classIndex) { result += m_weights[inst.index(p)] * inst.valueSparse(p); } } } else { int n1 = inst.numValues(); int n2 = m_sparseWeights.length; for (int p1 = 0, p2 = 0; p1 < n1 && p2 < n2; ) { int ind1 = inst.index(p1); int ind2 = m_sparseIndices[p2]; if (ind1 == ind2) { if (ind1 != m_classIndex) { result += inst.valueSparse(p1) * m_sparseWeights[p2]; } p1++; p2++; } else if (ind1 > ind2) { p2++; } else {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
} p1++; p2++; } else if (ind1 > ind2) { p2++; } else { p1++; } } } } else { for (int i = m_supportVectors.getNext(-1); i != -1; i = m_supportVectors.getNext(i)) { result += m_class[i] * m_alpha[i] * m_kernel.eval(index, i, inst); } } result -= m_b; return result; } List Code 4. 7 Fungsi dari WEKA
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
Implementasi Klasifikasi 4.3.1 Proses Input Atribut Proses ini sangan penting karena mengunkan sistem dari WEKA maka program menyesuaikan dengan format yang digunakan oleh WEKA dalam proses pengklasifikasian. Bila proses ini dilewatkan maka sistem WEKA tidak bisa digunakan dan akan error dalam pemanggilan WEKA. ArrayList attrs = new ArrayList<>(); List<String> cls = Arrays.asList("Keadaan", "Komunikasi", "Pekerjaan", "Sifat", "Urutan Giliran", "Urutan Tindakan"); //<editor-fold desc="create attributes"> try { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\skripsi\\term_6.txt"))); String it = ""; while ((it = br.readLine()) != null) { Attribute attr; if (Objects.equals(it, "KELAS")) { attr = new Attribute(it, cls); } else if (Objects.equals(it, "NAMA")) { attr = new Attribute(it, (List<String>) null); } else { attr = new Attribute(it); } attrs.add(attr); } br.close(); } catch (IOException e) { e.printStackTrace(); }
List Code 4. 8 Create attributes
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
4.3.2 Proses Input Bobot Menginput bobot berfungsi untuk memberi nilai dalam setiap term yang digunakan dalam proses WEKA berupa nilai dari tiap bobot yang digunakan ditiap term dalam dokumen. try { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\skripsi\\bobot_6.txt"))); String it = ""; while ((it = br.readLine()) != null) { String[] vals = it.split(";"); String nama = vals[0]; Instance inst = new DenseInstance(instances.numAttributes()); inst.setDataset(instances); inst.setValue(instances.attribute("NAMA"), nama); for (String i : cls) { if (nama.contains(i)) { inst.setValue(instances.attribute("KELAS"), i); break; } } for (int i = 1; i < vals.length - 2; i++) { inst.setValue(i + 1, Double.parseDouble(vals[i])); } instances.add(inst); } br.close(); } catch (IOException e) { e.printStackTrace(); } List Code 4. 9 Create instances
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
4.3.3 Mengunkan WEKA Berisi perintah untuk memanggil metode yang dimiliki oleh libary dari WEKA ini memanggil sekaligus proses yang sudah dibuat untuk input data yang sudah disiapkan oleh proses yang dibuat penulis. try { ArrayList preds = new EvaluationUtils().getCVPredictions(smo, instCopy, 5); ArrayList preds3 = new EvaluationUtils().getTrainTestPredictions(smo, instCopy, instCopy); ConfusionMatrix cm = new ConfusionMatrix(cls.toArray(new String[0])); ConfusionMatrix cm3 = new ConfusionMatrix(cls.toArray(new String[0])); cm.addPredictions(preds); cm3.addPredictions(preds3); System.out.println(""); System.out.println("Hasil Akurasi : "); System.out.println("- cross-validation : " + cm.correct() * 100d / preds.size()); System.out.println("- use training set : " + cm3.correct() * 100d / preds3.size()); System.out.println(); } catch (Exception ex) { Logger.getLogger(SVM_WEKA.class.getName()).log(Level.SEVERE, null, ex); } List Code 4. 10 Menghitung akurasi mengunklan library WEKA
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V ANALISIS HASIL
5.1
Skema Pengujian Pengujian dilakukan dengan menggunakan metode k-fold cross validation. Dimana data training akan dibagi ke dalam sejumlah k fold. Setiap fold akan diisi dengan data training tiap kategori secara merata. Setiap fold akan diperlakukan sebagai data testing dan data training secara bergantian sesuai dengan dengan tahapan penghitungan akurasi, dimana banyaknya tahapan penghitungan akurasi sama dengan jumlah fold. Setelah semua tahapan proses penghitungan akurasi dilakukan, maka seluruh data training yang diuji akan terklasifikasi, kemudian dihitung persentase data yang terklasifikasi dengan tepat (sesuai dengan kategori awal). Dalam pengujian ini akan dilakukan sebanyak 2 kali yaitu yang pertama 5 fold cross validation untuk dokumen yang mengandung enam kategori dengan jumlah data sebanyak 108 data, kedua menggunakan 5 fold cross validation untuk dokumen yang mengandung 6 kategori dengan jumlah data 36 data. Setiap pengujian disertakan dengan pengujian dimana data test merupakan data traning. Berikut ini rincian data yang akan dilakukan pengujian : 1. Pengujian 1 Diuji dengan metode akurasi cross-falidation. 5 fold cross validation untuk. Jumlah data yang dipakai 108 data ,berikut data yang diuji :
50
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
Table 5. 1 Data pengujin sebanyak 108 data
Kelas/Kategori
Jumlah Data
Keadaan
33
Komunikasi
15
Pekerjaan
6
Sifat
12
Urutan giliran
22
Urutan tindakan
20
2. Pengujian 2 Diuji dengan metode akurasi cross-falidation. 5 fold cross validation untuk. Jumlah data yang dipakai 36 data ,berikut data yang diuji : Table 5. 2 Data pengujin sebanyak 36 data
5.2
Kelas/Kategori
Jumlah Data
Keadaan
6
Komunikasi
6
Pekerjaan
6
Sifat
6
Urutan giliran
6
Urutan tindakan
6
Hasil Pengujian Hasil pengujian ini merupakan perbandingan antara data yang sudah diklasifikasikan oleh B.B Dwijatmoko dengan data yang diklasifikasi menggunakan sistem. Hasil pengujian yang dilakukan dengan sistem sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
5.2.1
Pengujian 1
Gambar 5. 1 Hasil pengujian dengan 5 fold cross validation untuk 108 data
5.2.2
Pengujian 2
Gambar 5. 2 Hasil pengujian dengan 5 fold cross validation untuk 36 data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
5.3. Analisa Hasil Berdasarkan pada pengujian sebelumnya menggunakan jumlah data yang diujikan berbeda sebagai berikut : Table 5. 3 Hasil semua akurasi Pengujian
keterangan
Pengujian dengan 5 fold cross 1
validation untuk 108 data Pengujian dengan 5 fold cross
2
validation untuk 36 data
akurasi
51.51%
29.16%
Melihat dari tabel diatas penulis menyimpulkan bahwa data yang dianalisa menggunakan k-fold dengan data yang lebih banyak memiliki hasil yang lebih tinggi akurasinya, dibandingkan dengan jumlah data yang lebih sedikit. Data yang lebih banyak memiliki ciri atau kekhasan kalimat sehingga lebih bisa membagi atau mengklasifikasikan dokumen/data dengan lebih tepat dibandingkan dengan data yang lebih sedikit. Dari perbedaan diatas bisa di ibaratkan bahwa data yang banyak akan dapat menyimpulkan atau bisa lebih mebandingkan data yang satu dengan yang lainnya ketika ada data baru masuk akan dengan mudah mendapat kategori yang tepat. Sistem ini hanya membantu mengkelompokan data diwal namun tidak bisa percaya begitu saja dengan sistem. Pengguna sistem perlu melakukan pengecekan manual untuk membuktikan apa data atau dokumen tersebut termasuk dari kategori yang sudah ditetapkan oleh sistem. Pengujian satu dengan 108 data , memiliki akurasi tinggi data dikategori keadaan memiliki data yang lebih banyak dari pada data yang lain sehingga bisa membentuk pembanding dengan kategori lainya dengan jelas sehingga data lebih banyak masuk kedalam kategori keadaan sejumlah besar data sesuai dengan kategori keadaan ini yang membuat akurasi tinggi. Dari hasil sistem dibagian confusion matrix bisa dilihat bahwa kategori memiliki data yang banyak namun yang sesuai hanya 31 data dan 2 data dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
kategori keadaan masuk kedalam kategori komunikasi, sedang data yang seharusnya masuk ke kategori lain malah masuk kedalam kategori keadaan ini dikarenakan banyak data di kategori keadaan yang memiliki kemiripan pada data di kategori lain yang hanya memiliki data sedikit yang susah membentuk kekhasan atau batas yang jelas.
AKURASI 60,00% 50,00% 40,00% 30,00% 20,00% 10,00%
0,00% Pengujian dengan 5 fold cross validation Pengujian dengan 5 fold cross validation untuk 108 data untuk 36 data
Grafik 5. 1 Perbandingan hasil uji akurasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V1 KESIMPULAN DAN SARAN
6.1
Kesimpulan Dari hasil pengujian dilakukan dengan menggunakan kernel polinomial dengan data tranning sebanyak 108 dan data test sebanyak 108, metode Support vector Machine mampu untuk mengklasifikasikan makna kata “ sabar “ dengan tepat . Sedang pengujian dengan 5 fold cross validation untuk memiliki perbedaan hasil antara data sebanyak 108 dengan 36 data dikarenakan : 1. Data yang tidak sesuai dengan menggunakan metode SVM dikarenakan kata sebuah data yang tidak memiliki nilai sendiri. 2. Terlalu jauhnya hasil nilai dari proses perhitungan yang menyebabkan adanya selisih yang jauh sehingga menyebabkan kesalahan dalam penentuan kelas. 3. Jumlah data pada tiap kategori menetukan akurasi dan juga menetukan pembagian kategori yang lebih tepat. 4. Semakin banyak data yang berada di dalam satu kategori akan semakin baik dalam mengklasifikasikan data yang lain.
6.2
Saran Saran yang diberikan penulis untuk perbaikan sistem adalah : 1. Data dalam bentuk dokumen yang tidak memiliki bobot di perhalus dalam pembobotan atau dalam proses Preposeesing. 2. Mencari data lebih banyak lebih baik dan sama banyak disetiap dokumen yang memiliki hubungan atau memliki ciri yang sama.
55
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Daftar Pustaka
Alkitab (Bible) Bahasa Indonesia. Google Play Store. Diunduh pada tanggal 31 Oktober 2016. Dr. Kekre, H.B., Mishra, Dhirendra., dan Kariwala, Anirudh. 2011. A Survey of CBRI Techniques and Saematics. International Jounal of Engineering Science and Technology. Vil:3(5). Halaman : 4515. Dwijatmoko, B.B. (2016) “IDEOLOGI KESABARAN DALAM KARYA SASTRA INDONESIA” dalam Buku Kumpulan Makalah. Halaman : 103106. Fairclough, N. 1995. Critical Discourse Analysis: The Critical Study of Language. New York: Longman Group Limited. Hasibuan, Zainal A dan Andri Yofi, Penerapan Berbagai Teknik Temu-Kembali Informasi Berbasis Hiperteks, Makalah, Fakultas Ilmu Komputer, Universitas Indonesia, 1998. Hsu, Chih-Wei, Chih-Jen Lin. A Comparison of Methods for Multi-class Support Vector Machine. IEEE Transactions on Neural Networks, 13(2):415425.2002. http://central.maven.org/maven2/nz/ac/waikato/cms/weka/weka-table/3.8.0/wekastable-3.8.0-sources.jar di akses (24/01/2017 waktu 12.49 ). http://nlp.stanford.edu/IR-book/html/htmledition/tokenization-1.html
di
akses
(10/01/20016 waktu 12.49 ). http://www.scribd.com/doc/242024953/KLASIFIKASI-DOKUMEN-TEKSMENGGUNAKAN-SVM-DTA-pdf#scribd di akses (10/01/2016 waktu 12.49 ). http://www.stat.nctu.edu.tw/misg/WekaInC.ppt . Diakses (Jan 27 04:06:13 2017) Krisantus Sembiring. 2007."Teknik Support vector Machine untuk Pendeteksian Intrusi pada Jaringan". ITB. Mooers, C. N. (1951). Zatocoding applied to mechanical organization of knowledge. American Documentation, 2, 20-32.
56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
O. Maimon, Data Mining And Knowledge Discovery Handbook. New York Dordrecht Heidelberg London: Springer, 2010. Salton, Gerard. 1989. Automatic Text Processing: The Transformation, Analysis, and Retrieval of Information by Computer. AddisonWesley. 46, 194, 530. Subandi. 2011. Sabar: Sebuah Konsep Psikologi. Jurnal Psikologi. Vol. 38(2), hal. 215 – 227. Wodak, R. dan Meyer, M. 2001. Methods of Critical Discourse Analysis. London: SAGE Publication.