PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SISTEM KLASIFIKASI SURAT MASUK MENGGUNAKAN MULTINOMIAL NAIVE BAYES STUDI KASUS : FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer (S.Kom.) Program Studi Teknik Informatika
Oleh: Fran Sandy Herlin Hanopo NIM : 075314045
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA 2013
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
CLASSIFICATION SYSTEM FOR ARCHIVE LATTERS USING MULTINOMIAL NAIVE BAYES STUDY CASE : FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
A THESIS Presented as Partial Fulfillment of the Requirements to Obtain Sarjana Komputer Degree (S.Kom.) In Department of Informatics Engineering
By: Fran Sandy Herlin Hanopo NIM : 075314045
DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY 2013
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa atas berkat dan penyertaan yang diberikan-Nya dalam berbagai wujud yang kadang tidak disadari sehingga penulis dapat menyelesaikan penelitian yang berjudul “Sistem Klasifikasi Surat Masuk Menggunakan Multinomial Naive Bayes”. Penulis juga berterima kasih kepada pihak – pihak yang telah berjasa membantu menyelesaikan penelitian ini. Kepada Ibu Sri Hartati Wijono, S.Si., M.Kom. atas bimbingannya berupa pengarahan dan solusi dalam melaksanakan penelitian ini hingga selesai. Kepada Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. dan Bapak Drs. Johanes Eka Priyatma, M.Sc., Ph.D. sebagai dosen penguji atas kerjasama dan apresiasinya memberikan penilaian yang baik atas usaha penulis. Kepada Bapak Zaerilus Tukija yang telah berbaik hati bersedia menjadi narasumber untuk informasi dan data yang digunakan dalam penelitian ini. Kepada pihak sekretariat fakultas sains dan teknologi, dan juga Bapak Bele yang telah membantu mempersiapkan ujian tugas akhir. Kepada para programer yang berkontribusi di internet atas pengetahuan telah yang mereka bagi dengan cuma – cuma. Kepada teman – teman yang telah memberikan dukungan dan bantuan yang sangat berarti. Dan akhirnya kepada keluarga yang tak pernah lelah untuk terus memberikan dukungan sehingga penulis dapat melakukan penelitian ini dengan sebaik mungkin. Penulis menyadari bahwa hasil dari penelitian ini jauh dari kata sempurna, namun penulis berharap semoga kerja yang telah penulis lakukan ini dapat berguna bagi pihak yang membutuhkan dan dapat menjadi jalan bagi penelitian lain yang lebih baik.
Penulis
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK
Penelitian ini bertujuan untuk membangun sebuah sistem pengelolaan surat masuk yang dikelola oleh sekretariat Fakultas Sains dan Teknologi Informatika Universitas Sanata Dharma. Sistem yang dibangun memiliki fungsi klasifikasi dan pencarian surat. Data yang digunakan dalam penelitian adalah arsip (surat) fisik. Surat – surat tersebut akan diproses menjadi arsip digital untuk kemudian dapat diolah oleh sistem yang akan dibangun. Arsip digital yang dimaksudkan adalah berupa file PDF dan teks. Fungsi klasifikasi yang dimiliki sistem mengelompokkan surat ke dalam delapan kategori. Kedelapan kategori tersebut, yaitu Administrasi Umum, Akademik, Kemahasiswaan, Kepegawaian, Keuangan, Perlengkapan, Yayasan, dan Lain – lain. Proses klasifikasi surat pada sistem menggunakan algoritma Multinomial Naive Bayes. Melalui pengujian menggunakan 3-fold cross validation terhadap 278 data didapat persentase rata – rata benar sebesar 79% dan salah sebesar 20%. Kemudian pada pengujian menggunakan 5-fold terhadap data yang sama didapat persentase rata – rata benar sebesar 83% dan salah sebesar 16%. Kesalahan klasifikasi yang terjadi dapat disebabkan oleh penentuan kelas terhadap data training yang mungkin mengalami kesalahan. Hal ini dikarenakan penentuan kelas tersebut tidak dilakukan oleh pakar. Fungsi pencarian pada sistem memanfaatkan library Apache Lucene. Selain mencari surat, fungsi pencarian juga dapat menampilkan surat yang berhasil ditemukan. Fungsi pencarian memiliki filter kategori surat yang dapat dipilih oleh user.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
This research aims to build a management system of archive letters, which are managed by the secretariat of Science and Technology Faculty of Sanata Dharma University. The system has functions to classify and search the letter. The data that will be used in this research are physical archives (letters). These letters will be made into digital archives for which can be processed by the system. The digital archives will be in the form of PDF and text file. The classification function of the system will classify letters into eight categories. Those eight categories are Administrasi Umum, Akademik, Kemahasiswaan, Kepegawaian, Keuangan, Perlengkapan, Yayasan, dan Lain – lain. The process of these letters classification is using Multinomial Naive Bayes algorithm. The average percentage results based on the validation using 3-fold cross validation to 278 data are 79% of correct classification and 20% of wrong classification. Then, based on the validation using 5-fold cross validation to same data, the average percentage results are 83% of correct classification and 16% of wrong classification. Those false classifications could be caused by uncorrectly classified training data. The classification of training data was not performed by expert. The search function in the system is using the Apache Lucene library. Beside to search the letters, the search function also could open the found letters. This search function has letter categories filter that can be choosed by the user.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI HALAMAN PERSETUJUAN...........................................................................................iii HALAMAN PENGESAHAN.............................................................................................iv HALAMAN KEASLIAN KARYA.....................................................................................v HALAMAN PERSETUJUAN PUBLIKASI....................................................................vi KATA PENGANTAR ....................................................................................................... vii ABSTRAK ......................................................................................................................... viii ABSTRACT ........................................................................................................................ ix DAFTAR ISI ........................................................................................................................ x DAFTAR TABEL .............................................................................................................. xii DAFTAR GAMBAR ........................................................................................................ xiv BAB 1 PENDAHULUAN .................................................................................................... 1 1.1.
Latar Belakang ........................................................................................................ 1
1.2.
Rumusan Masalah ................................................................................................... 2
1.3.
Batasan Masalah ..................................................................................................... 3
1.4.
Tujuan Penelitian .................................................................................................... 3
1.5.
Metodologi Penelitian ............................................................................................. 3
1.6.
Sistematika Penulisan ............................................................................................. 5
BAB 2 LANDASAN TEORI ............................................................................................... 7 1.1.
Pemerolehan Informasi ........................................................................................... 7
1.2.
Indexing .................................................................................................................. 9
1.3.
Porter Stemmer ..................................................................................................... 10
1.3.1.
Tentang Porter Stemmer ................................................................................ 10
1.3.2.
Porter Stemmer untuk Bahasa Indonesia ....................................................... 11
1.4.
Klasifikasi Teks .................................................................................................... 14
1.5.
Naive Bayes .......................................................................................................... 15
1.5.1.
Multinomial Naive Bayes atau Multinomial NB ........................................... 16
1.6. Evaluasi Sistem Pemerolehan Informasi (menggunakan K-fold Cross-Validation dan Precision) .................................................................................................................. 18 1.6.1.
K-fold Cross-Validation ................................................................................ 18
1.6.2.
Precision ........................................................................................................ 19
1.7.
Pencarian file menggunakan Apache Lucene 4.1.0 .............................................. 20 x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xi 1.8.
Penerapan Multinomial Naive Bayes Pada Klasifikasi Teks ................................ 21
1.8.1.
Pemrosesan Data Training ............................................................................. 22
1.8.2.
Pemrosesan Data Testing............................................................................... 34
1.8.3.
Hitung Precision ............................................................................................ 38
BAB 3 PERANCANGAN SISTEM.................................................................................. 39 3.1.
Gambaran Umum Sistem ...................................................................................... 39
3.2.
Analisis Masalah ................................................................................................... 41
3.3.
Analisis Kebutuhan Sistem ................................................................................... 42
3.4.
Desain Logikal ...................................................................................................... 43
3.4.1.
Desain Penyimpanan Data ............................................................................. 43
3.4.2.
Diagram Dekomposisi ................................................................................... 44
3.4.3.
Diagram Arus Data (DAD)............................................................................ 44
3.5.
Desain Fisikal........................................................................................................ 51
3.5.1.
Desain Antarmuka ......................................................................................... 51
3.5.2.
Algoritma Proses Klasifikasi ......................................................................... 53
BAB 4 IMPLEMENTASI ................................................................................................. 56 4.1.
Antarmuka Menu Utama / Pencarian Surat....................................................... 56
4.2.
Antarmuka Simpan Surat .................................................................................. 60
4.3.
Antarmuka Training .......................................................................................... 64
BAB 5 PENGUJIAN .......................................................................................................... 73 5.1.
Pengujian............................................................................................................... 73
5.1.1.
Pengujian Penerapan Algoritma .................................................................... 73
5.1.2.
Pengujian Akurasi Sistem .............................................................................. 76
5.2.
Analisis Pengujian ................................................................................................ 78
BAB 6 KESIMPULAN DAN SARAN ............................................................................. 80 6.1.
Kesimpulan ........................................................................................................... 80
6.2.
Saran ..................................................................................................................... 81
DAFTAR PUSTAKA ........................................................................................................ 82 LAMPIRAN A ................................................................................................................... 83
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
Tabel 2.1 Aturan 1. Aturan untuk inflectional particles.................................................... 12 Tabel 2.2 Aturan 2. Aturan untuk inflectional possessive pronouns. ................................ 12 Tabel 2.3 Aturan 3. Aturan untuk first order of derivational prefixes. ............................. 13 Tabel 2.4 Aturan 4. Aturan untuk second order of derivational prefixes. ........................ 13 Tabel 2.5 Aturan 5. Aturan untuk derivational suffixes. ................................................... 14 Tabel 2.6 Contoh suku kata dalam Bahasa Indonesia. ...................................................... 14 Tabel 2.7 Daftar surat beserta kelasnya. ............................................................................ 21 Tabel 2.8 Contoh hasil tokenization. ................................................................................. 26 Tabel 2.9 Contoh hasil penghilangan stop word pada Tabel 2.8. ...................................... 26 Tabel 2.10 Contoh hasil proses normalisasi terhadap Tabel 2.9. ...................................... 27 Tabel 2.11 Contoh hasil stemming dari Tabel 2.10. .......................................................... 27 Tabel 2.12 Daftar term berserta frekuensi kemunculannya. .............................................. 28 Tabel 2.13 Hasil sorting secara ascending. ....................................................................... 29 Tabel 2.14 Hasil grouping berdasarkan term yang sama. ................................................. 30 Tabel 2.15 Hasil perhitungan prior probabilities untuk tiap kelas.................................... 31 Tabel 2.16 Contoh penghitungan conditional probabilities............................................... 31 Tabel 2.17 Model. .............................................................................................................. 32 Tabel 2.18 Contoh hasil sorting & grouping dari data testing (surat4). ............................. 35 Tabel 2.19 Hasil proses matching antara model dan data testing. .................................... 35
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xiii Tabel 2.20 Hasil matching beserta dengan nilai conditional probabilities-nya. ............... 36 Tabel 2.21 Hasil perkalian nilai conditional probabilities dengan term frequency-nya. .. 37 Tabel 3.1 Deskripsi Use Case. ........................................................................................... 42
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
Gambar 2.1 Proses pemerolehan informasi menurut (Davies & Goker, 2009). .................. 7 Gambar 2.2 Proses dasar dari Porter stemmer untuk Bahasa Indonesia (Tala, 2003). ...... 12 Gambar 2.3 Contoh proses dari three-fold cross-validation. ............................................ 19 Gambar 3.1 Diagram Blok untuk proses klasifikasi. ......................................................... 40 Gambar 3.2 Diagram Use Case. ........................................................................................ 42 Gambar 3.3 Diagram Dekomposisi. .................................................................................. 44 Gambar 3.4 Diagram Konteks. .......................................................................................... 44 Gambar 3.5 Diagram Arus Data Level 1. .......................................................................... 45 Gambar 3.6 Diagram Arus Data Level 2 Proses 1. ........................................................... 46 Gambar 3.7 Diagram Arus Data Level 2 Proses 2. ........................................................... 46 Gambar 3.8 Diagram Arus Data Level 3 Proses 1.1. ........................................................ 47 Gambar 3.9 Diagram Arus Data Level 3 Proses 1.2. ........................................................ 48 Gambar 3.10 Diagram Arus Data Level 3 Proses 2.1. ...................................................... 49 Gambar 3.11 Diagram Arus Data Level 3 Proses 2.2. ...................................................... 50 Gambar 3.12 Antarmuka Menu Utama / Menu Pencarian Surat. ...................................... 51 Gambar 3.13 Antarmuka Menu Simpan Surat. ................................................................. 52 Gambar 4.1 Antarmuka untuk menu utama juga pencarian. ............................................. 56 Gambar 4.2 Antarmuka untuk penyimpanan surat. ........................................................... 60 Gambar 4.3 Antarmuka untuk proses training. ................................................................. 65 Gambar 5.1 Output Hasil Training Pada Pengujian Penerapan Algoritma. ...................... 74 Gambar 5.2 Output Hasil Testing Pada Pengujian Penerapan Algoritma. ........................ 74 Gambar 5.3 Output Hasil Penyesuaian Pecahan Pada Proses Training. ........................... 75
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xv Gambar 5.4 Output Hasil Penyesuaian Pecahan Pada Proses Testing. ............................. 75 Gambar 5.5 3-fold cross validation. .................................................................................. 76 Gambar 5.6 5-fold cross validation. .................................................................................. 77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 1 PENDAHULUAN
1.1.
Latar Belakang
Setiap fakultas di Universitas Sanata Dharma memiliki tanggung jawab untuk mengelola semua surat yang mereka miliki. Pengelolaannya dilaksanakan oleh pihak sekretariat dari masing – masing fakultas. Surat – surat yang dikelola tersebut dikategorikan ke dalam tiga kategori, yaitu surat masuk, surat keluar dan surat keputusan. Surat – surat tersebut kemudian akan disimpan sebagai arsip dan digunakan kembali saat dibutuhkan. Hingga saat tulisan ini dibuat, pengelolaan surat keluar, surat masuk, dan surat keputusan tersebut masih dilakukan secara manual. Hal ini dikarenakan pihak fakultas tidak memiliki sistem yang mendukung pengelolaan yang terkomputerisasi. Sistem yang berjalan secara manual memiliki kelemahan pada alokasi ruang dan waktu yang tidak efisien. Penyimpanan arsip yang besar secara fisik membutuhkan media simpan dengan kapasitas yang besar pula. Seiring dengan bertambahnya arsip yang dikelola maka akan semakin banyak ruang yang dibutuhkan. Melakukan backup terhadap arsip fisik juga sulit untuk dilaksanakan karena besarnya biaya dan tenaga dalam pelaksanaannya. Pencarian suatu arsip fisik pada penyimpanan yang besar kadang juga memerlukan waktu yang lama. Adanya sistem yang secara khusus ditujukan untuk mengelola surat diharapkan dapat mempermudah proses pengelompokkan dan pencarian surat – surat tersebut oleh sekretariat dan pejabat fakultas. Fokus utama dalam penelitian ini adalah sistem informasi untuk pengelolaan surat masuk dan surat keputusan. Kedua kategori surat tersebut akan dibagi menjadi beberapa subkategori untuk menghasilkan klasifikasi yang lebih spesifik. Misal pengelompokan berdasarkan perihal surat, tanggal surat, maupun informasi penting lain yang terkandung di dalam surat. Pengelompokan yang lebih spesifik juga diharapkan dapat mempercepat proses pencarian sebuah surat. Untuk mendukung proses klasifikasi yang terkomputerisasi, akan dibuat arsip digital dari setiap surat melalui proses scanning dan konversi. Konversi berfungsi 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
untuk mengubah hasil scanning yang dapat berupa PDF atau file gambar menjadi file teks. File teks dibutuhkan untuk mengekstrak informasi di dalam surat. Informasi tersebut kemudian digunakan dalam menghasilkan klasifikasi dan melakukan pencarian surat. PDF dari hasil scanning akan berguna sebagai view untuk menampilkan isi surat. Sistem yang hendak dibangun akan menerapkan teknik klasifikasi teks menggunakan algoritma Multinomial Naïve Bayes. Klasifikasi teks adalah proses mengelompokkan dokumen ke dalam kategori-kategori atau kelas-kelas yang berbeda (Joachims, 1997). Beberapa penggunaan teknik klasifikasi teks misalnya untuk menyaring e-mail, memprediksi keinginan user, dan pengorganisasian konten / isi web (Schneider, 2004). Algoritma Multinomial Naïve Bayes adalah pengembangan dari algoritma Naïve Bayes yang memiliki keunggulan dalam memproses teks. Naive Bayes (Witten & Frank, 2005) yaitu salah satu teknik klasifikasi yang banyak digunakan untuk klasifikasi teks karena metode ini sangat cepat dan cukup akurat.
1.2.
Rumusan Masalah
1. Bagaimana membangun sebuah sistem yang dapat mengelompokkan surat masuk dan surat keputusan ke dalam kategori – kategori tertentu secara otomatis, kemudian menyimpan file surat tersebut dan metadatanya ke dalam database. 2. Melakukan pencarian file surat yang telah tersimpan di database dengan memanfaatkan metadata dari file surat maupun berdasarkan kategori surat untuk mempercepat proses pencarian surat. 3. Menerapkan metode Naive Bayes dengan multinomial model dalam proses klasifikasi teks (surat).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
1.3.
Batasan Masalah
Batasan dari sistem pemerolehan informasi surat masuk dan surat keputusan yang hendak dibangun adalah sebagai berikut : 1. Tipe surat yang dikelola adalah surat masuk. 2. Bentuk surat yang diproses adalah hasil scan yang kemudian dikonversi menjadi file text (*.txt). 3. User dari sistem adalah sekretariat dan pejabat fakultas. 4. Proses - proses utama yang dimiliki sistem: a. Mengelompokkan surat masuk dan surat keputusan yang dimiliki sekretariat ke dalam kategori – kategori tertentu yang kemudian disimpan ke dalam database. b. Mencari surat yang telah disimpan di dalam database berdasarkan suatu kategori tertentu atau berdasarkan kata kunci dari user.
1.4.
Tujuan Penelitian
Tujuan dari penelitian ini adalah membangun sebuah sistem yang dapat membantu pihak sekretariat dan pejabat fakultas dalam mengelola surat masuk yang telah digitalisasi (berbentuk file digital).
1.5.
Metodologi Penelitian
Langkah-langkah dari metodologi penelitian yang digunakan dalam penelitian ini adalah sebagai berikut:
1. Studi Pustaka Studi pustaka dilakukan untuk mempelajari dan memahami lebih lanjut tentang surat, pemrosesan dan klasifikasi teks, algoritma Multinomial Naïve Bayes dan teknik penerapan dari semua ilmu tersebut untuk mencapai tujuan akhir dari penelitian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
2. Observasi Observasi bertujuan untuk
mengetahui segala sesuatu mengenai sistem
pengelolaan surat yang sedang berjalan di Fakultas Sains dan Teknologi. Seperti untuk mengetahui bagaimana cara kerjanya, siapa yang bertugas mengelola dan bertanggung jawab, dan apa saja yang benar – benar dibutuhkan untuk memaksimalkan pengelolaan surat tersebut.
3. Analisis dan Perancangan Sistem Melakukan analisis terhadap masalah dan kebutuhan sistem yang akan dibangun. Kemudian dilakukan perancangan umum sistem sesuai dengan kebutuhan user. Metode yang akan digunakan dalam merancang sistem pengklasifikasian surat ini adalah metode FAST (Framework for the Application of Sistem Thinking) yang meliputi : a. Fase Definisi Ruang Lingkup (Scope Definition Phase) Pada fase ini akan dilakukan analisis terhadap batasan – batasan sistem, yaitu menentukan kebutuhan – kebutuhan yang dapat ditangani oleh sistem. Fase ini juga akan menganalisis siapa saja yang akan menjadi user dari sistem. b. Fase Analisis Masalah (Problem Analysis Phase) Mempelajari sistem yang telah ada dan sedang berjalan untuk menemukan masalah – masalah dan solusi dari sistem yang sedang berjalan tersebut. c. Fase Analisis Kebutuhan (Requirements Analysis Phase) Mendefinisikan kemampuan yang akan disediakan sistem kepada usernya. Mengalisis kebutuhan user atau yang diharapkan user dari sistem yang baru. d. Fase Desain Logikal (Logical Design Phase) Menerjemahkan kebutuhan user dari fase sebelumnya ke dalam sebuah model atau diagram yang meliputi desain basis data (Entity Relationship Model), diagram arus data (DAD), diagram konteks, dan diagram dekomposisi dari sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
e. Fase Desain Fisikal (Physical Design Phase) Menerjemahkan Desain Logikal yang menggambarkan kebutuhan pengguna ke dalam sebuah model yang menggambarkan implementasi teknis dari sistem yang akan dibuat. f. Fase pembangunan dan pengujian (Construction & Testing Phase) Membangun dan menguji sistem yang telah dirancang melalui fase – fase terdahulu dalam memenuhi kebutuhan pengguna. Membuat dokumetasi dari sistem yang berguna untuk membantu user memahami sistem baru.
4. Pembuatan Sistem Pembuatan sistem akan berdasarkan hasil analisis dan perancangan sistem yang telah dilakukan pada tahap sebelumnya.
5. Implementasi dan pengujian Sistem yang telah dibuat kemudian dijalankan dan dilakukan uji coba untuk mengetahui kinerja sistem secara khusus yang meliputi keakuratan klasifikasi dan keberhasilan melakukan pencarian. Kinerja sistem secara umum meliputi berjalan atau tidaknya setiap fungsi dan keberhasilan setiap fungsi tersebut menjalankan tugasnya.
6. Evaluasi Menganalisis hasil implementasi dan pengujian untuk kemudian disimpulkan sejauh mana sistem telah mengakomodasi kebutuhan user secara keseluruhan.
1.6.
Sistematika Penulisan
BAB I PENDAHULUAN Berisi gambaran umum tentang penelitian yang dilakukan. Bab ini berisi latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, metodologi penelitian, dan sistematika penulisan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
BAB II LANDASAN TEORI Berisi dasar teori yang berkaitan dengan penelitian yang dilakukan, yaitu metode klasifikasi Naive Bayes, klasifikasi teks, dan pemerolehan informasi.
BAB III PERANCANGAN Berisi perancangan sistem dari penelitian yang dilakukan.
BAB IV IMPLEMENTASI Berisi penjelasan tentang implementasi hasil perancangan yang telah dibuat ke dalam bentuk program.
BAB V PENGUJIAN DAN ANALISIS Berisi pengujian terhadap hasil implementasi dan analisis dari hasil pengujian.
BAB VI KESIMPULAN DAN SARAN Berisi kesimpulan dan saran yang didapat dari hasil penelitian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 2 LANDASAN TEORI
1.1.
Pemerolehan Informasi
Pemerolehan informasi (Manning, Raghavan, & Schutze, 2008) adalah menemukan bahan (umumnya dokumen) dari sebuah sifat yang tidak terstruktur (umumnya teks) untuk memenuhi kebutuhan informasi dari dalam koleksi yang besar (biasanya disimpan dalam komputer). Menurut (Davies & Goker, 2009), terdapat tiga proses utama yang harus didukung oleh sebuah sistem pemerolehan informasi, yaitu indexing, query formulation, dan matching.
Information need
Documents
Query formulation
Indexing
Query
Indexed documents
Matching
Feedback
Retrieved documents
Gambar 2.1 Proses pemerolehan informasi menurut (Davies & Goker, 2009).
Pada Gambar 2.1, kotak persegi mewakili data dan kotak yang melingkar mewakili proses.
7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
1. Indexing Proses indexing menghasilkan representasi dari dokumen. Proses ini tidak melibatkan user secara langsung. Proses indexing dapat memasukkan keseluruhan isi dokumen ke dalam sistem. Namun yang lebih sering dilakukan adalah menyimpan sebuah dokumen hanya per bagian, misalnya, hanya judul dan ringkasan, ditambah dengan lokasi sebenarnya dari dokumen yang disimpan. Tahap – tahap dalam proses indexing akan dibahas pada sub bab 2.2.
2. Query formulation Query formulation adalah proses merepresentasikan informasi yang dibutuhkan oleh user. Hasil dari proses representasi tersebut adalah query. Dalam arti yang lebih luas, query formulation dapat berarti sebuah hubungan timbal balik antara komputer dan user, yang tidak hanya menghasilkan query yang sesuai, namun memungkinkan untuk memperoleh hasil yang dapat memandu user untuk lebih memahami informasi yang mereka butuhkan. Hal ini dinyatakan pada proses feedback pada Gambar 2.1.
3. Matching Matching adalah proses membandingkan query dengan indexed document yang diperoleh melalui dua proses di atas. Proses ini bertujuan untuk menemukan dokumen yang cocok dengan keinginan user. Proses matching biasanya menghasilkan daftar peringkat (ranking) dokumen. Daftar dokumen tersebut nantinya akan digunakan oleh user untuk mencari informasi yang mereka inginkan. Peringkat pencarian juga diharapkan akan meletakkan dokumen yang relevan di posisi puncak pada daftar peringkat, sehingga meminimalkan waktu yang dibutuhkan user dalam mencari dokumen yang tepat. Untuk penelitian ini, maka proses matching yang diharapkan adalah membandingkan antara surat yang akan dikategorikan dengan model (hasil training menggunakan Multinomial Naive Bayes) untuk mendapatkan kategori yang sesuai untuk surat yang akan dikategorikan tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
1.2.
Indexing
Tahap – tahap dalam membangun sebuah index (Manning, Raghavan, & Schutze, 2008) adalah sebagai berikut:
1. Tokenization Tokenization adalah proses memotong rangkaian kata yang terdapat dalam sebuah dokumen menjadi potongan – potongan kata yang berdiri sendiri, yang disebut token, dan dalam waktu bersamaan juga menghilangkan karakter – karakter tertentu, seperti tanda baca.
Input: Friends, Romans, Countrymen, lend me yours ears; Output:
Friends
Romans
Countrymen
lend
me
yours
ears
2. Normalzation Normalization adalah proses menyamakan ejaan sebuah kata yang mewakili makna yang sama. Misalnya, e-mail, E-mail, Email, dan email; keempat kata tersebut mewakili makna yang sama namun memiliki penulisan yang berbeda. Dalam melakukan proses normalisasi dapat digunakan salah satu kata sebagai acuan, misalnya dipilih kata email sebagai acuan, maka penulisan kata e-mail, Email, dan Email akan diubah menjadi email.
3. Stop words removal Stop words removal adalah proses menghilangkan stop words dari kumpulan kata yang didapat dari hasil tokenization. Stop words adalah beberapa kata yang sangat umum yang kurang membantu / kurang berpengaruh dalam proses klasifikasi. Penghilang stopword diharapkan dapat mengefisienkan dan meningkatkan akurasi proses klasifikasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
Contoh stop words: dan
atau
lagi
ada
akan
agar
akhir
bahkan
baik
begini
dahulu
cukup
guna
entah
ingat
hampir
hanya
itu
jadi
jangan
hendak
4. Stemming Stemming adalah proses menghilangkan imbuhan, seperti awalan, sisipan, dan akhiran, pada sebuah kata untuk mendapatkan kata dasarnya. Dalam penelitian ini, algoritma stemming yang akan digunakan adalah algoritma Porter.
5. Membangun index melalui proses sorting dan grouping. Tahap utama dalam membangun sebuah index adalah mengurutkan (sorting) hasil stemming sehingga daftar term tersebut terurut berdasarkan abjad. Term yang sama kemudian dikelompokkan (grouping) menjadi satu dan dihitung frekuensi kemunculannya di tiap – tiap dokumen.
1.3.
Porter Stemmer
1.3.1. Tentang Porter Stemmer Porter stemmer atau Porter stemming (Porter, 2006) adalah sebuah algoritma untuk menghapus akhiran infleksional dan morfologi yang umum dari kata dalam Bahasa Inggris. Kegunaan utama dari algoritma ini adalah sebagai bagian dari proses normalisasi term yang biasa dilakukan pada saat membangun sebuah sistem Pemerolehan Informasi. Menurut (Tala, 2003), algoritma ini berdasarkan pada ide bahwa akhiran dalam Bahasa Inggris umumnya tersusun atas kombinasi akhiran yang kecil dan sederhana. Proses pemotongan dilakukan dalam lima tahap terurut, yang mensimulasikan proses inflectional dan derivational dari sebuah kata. Pada setiap tahapan, sebuah akhiran dihilangkan melalui aturan penggantian (substitution). Aturan penggantian (substitution) diterapkan pada saat satu set kondisi yang ada pada sebuah aturan terpenuhi. Salah satu contoh dari kondisi tersebut adalah panjang minimal (jumlah dari rangkaian vokal-konsonan) dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
kata dasar yang dihasilkan. Panjang minimal ini disebut measure. Contoh kondisi lain yaitu apakah sebuah kata dasar diakhiri dengan huruf mati atau apakah mengandung huruf hidup. Saat semua kondisi dari sebuah aturan terpenuhi, maka aturan tersebut dijalankan, yang menyebabkan penghilangan akhiran; dan kemudian proses dilanjutkan pada tahap berikutnya. Bila kondisi dari sebuah aturan pada suatu tahap tidak terpenuhi, maka kondisi dari aturan berikutnya akan diuji, hingga aturan tersebut dijalankan atau hingga aturan pada tahap tersebut habis.
1.3.2. Porter Stemmer untuk Bahasa Indonesia Porter Stemmer diadaptasi untuk bahasa Indonesia didasarkan atas pertimbangan bahwa ide utama dari algoritma ini sesuai dengan struktur morfologis dari kata dalam Bahasa Indonesia (Tala, 2003). Struktur morfologis dari kata dalam Bahasa Indonesia terdiri dari sebuah kombinasi dari struktur inflectional dan derivational yang kecil dan sederhana, dimana masing – masing tersusun atas akhiran dan/atau awalan yang sederhana dan kecil. Tahap – tahap terurut dalam Porter Stemmer, yang mensimulasikan proses inflectional dan derivational dari kata dalam Bahasa Inggris juga cocok dengan struktur inflectional dan derivational dari Bahasa Indonesia. Karena Bahasa Inggris dan Bahasa Indonesia adalah dua bahasa yang berbeda, maka aturan – aturan pada tiap tahap dalam Porter Stemmer untuk Bahasa Indonesia mendapat beberapa perubahan untuk menyesuaikan dengan struktur Bahasa Indonesia, seperti aturan untuk penghilangan awalan, konfiks, dan juga penyesuaian ejaan pada kasus dimana karakter pertama pada sebuah kata dasar mengalami perubahan pada saat mendapat penambahan awalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
Word Remove Particle Remove Possessive Remove 1st Order Prefix
fail
a rule is fired
Remove 2nd Order Prefix
Remove Suffix
Remove Suffix
Remove 2nd Order Prefix
a rule is fired
Stem
fail
Gambar 2.2 Proses dasar dari Porter stemmer untuk Bahasa Indonesia (Tala, 2003).
Tabel 2.1 Aturan 1. Aturan untuk inflectional particles.
Akhiran
Replacement
Measure
Additional
Condition
Condition
Contoh
-kah
NULL
2
NULL
bukukah buku
-lah
NULL
2
NULL
adalah ada
-pun
NULL
2
NULL
bukupun buku
Tabel 2.2 Aturan 2. Aturan untuk inflectional possessive pronouns.
Akhiran
Replacement
Measure
Additional
Condition
Condition
Contoh
-ku
NULL
2
NULL
bukuku buku
-mu
NULL
2
NULL
bukumu buku
-nya
NULL
2
NULL
bukunya buku
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
Tabel 2.3 Aturan 3. Aturan untuk first order of derivational prefixes.
Awalan
Replacement
Measure
Additional
Condition
Condition
Contoh
meng-
NULL
2
NULL
mengukur ukur
meny-
s
2
V…*
menyapu sapu
men-
t
2
V…
menduga duga menuduh tuduh
mem-
p
2
V…
memilah pilah
me-
NULL
2
NULL
merusak rusak
peng-
NULL
2
NULL
pengukur ukur
peny-
s
2
V…
penyapu sapu
pen-
NULL
2
NULL
penduga duga
pem-
p
2
V…
pemilah pilah
pem-
NULL
2
NULL
pembaca baca
di-
NULL
2
NULL
diukur ukur
ter-
NULL
2
NULL
tersapu sapu
ke-
NULL
2
NULL
kekasih kasih
* kata hasil pemotongan diawali dengan huruf hidup (vokal).
Tabel 2.4 Aturan 4. Aturan untuk second order of derivational prefixes.
Awalan
Replacement
Measure
Additional
Condition
Condition
Contoh
ber-
NULL
2
NULL
berlari lari
bel-
NULL
2
ajar
belajar ajar
be-
NULL
2
K* er
bekerja kerja
per-
NULL
2
NULL
perjelas jelas
pel-
NULL
2
ajar
pelajar ajar
pe-
NULL
2
NULL
pekerja kerja
* kata hasil pemotongan diawali dengan huruf mati (konsonan).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
Tabel 2.5 Aturan 5. Aturan untuk derivational suffixes.
Akhiran Replacement
Measure
Additional Condition
Contoh
Condition -kan
NULL
-an
2
NULL
-i
2
NULL
2
awalan ∉ {ke, peng}
tarikkan tarik
awalan ∉ {di, meng, ter}
makanan makan
V|K…𝑐𝑐1 𝑐𝑐1 , 𝑐𝑐1 ≠ 𝑠𝑠, 𝑐𝑐2 ≠ 𝑖𝑖,
tandai tanda
ambilkan ambil (per)janjian janji
dan awalan ∉ {ber, ke, peng}
(men)dapati dapat
Tabel 2.6 Contoh suku kata dalam Bahasa Indonesia.
Measure
Contoh
Suku Kata
0
kh, ng, ny
kh, ng, ny
1
ma, af, nya, nga
ma, af, nya, nga
2
maaf, kami, rumpun, kompleks
ma-af, ka-mi, rum-pun, kom-pleks
3
mengapa, menggunung, tandai
mang-a-pa, meng-gu-nung, tan-da-i
1.4.
Klasifikasi Teks
Klasifikasi
teks
menurut
(Davies
&
Goker,
2009)
adalah
proses
mengklasifikasikan atau memberi label pada dokumen dalam beberapa cara, untuk membuat dokumen – dokumen tersebut lebih mudah dikelola. Klasifikasi teks sering digunakan pada kumpulan teks yang lebih sedikit, seperti email perseorangan, atau katalog perpustakaan. Kompleksitasnya terdapat pada kategori dan label yang digunakan, misalnya sering ada semantik, sesuai dengan aspekaspek tersembunyi dari dokumen, dan hingga kesepakatan sosial bersama di antara para pengguna dokumen. Perbedaan utama antara klasifikasi teks dan jenis – jenis lain dari pemerolehan informasi adalah bahwa klasifikasi teks melibatkan sebuah keputusan kualitatif. Dokumen tidak hanya diberi peringkat, beberapa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
diberi label dan beberapa tidak. Ini dilakukan karena suatu alasan, khususnya untuk menyaring atau mengarahkan dokumen sesuai dengan kapan dan bagaimana dokumen tersebut mungkin dibutuhkan. Klasifikasi teks adalah bagian dari konteks penggunaan yang lebih luas yang berbeda dari beberapa area dari pemerolehan informasi. Poin – poin utama yang dapat diringkas adalah sebagai berikut:
1. Klasifikasi teks dimaksudkan untuk membuat sekumpulan dokumen lebih mudah dikelola dalam beberapa cara. 2. Pengelolaan yang efektif dari dokumen bergantung dari tujuan yang dimaksudkan dari pengelolaan tersebut, baik dari pengirim dan penerima. 3. Tujuan yang dimaksudkan dari sebuah dokumen tercermin dalam struktur dan susunan dokumen tersebut, serta dalam penggunaan bahasanya.
Beberapa pendekatan dan contoh metode yang digunakan dalam proses klasifikasi teks, yaitu: •
Defining features. Contoh: ID3 dan COBWEB.
•
Spatial boundaries. Contoh: support vector machines (SVM).
•
Prototypes. Contoh: Rocchio’s relevance feedback.
•
Probabilistic models. Contoh: Bayes’ rule.
•
Exemplar models. Contoh: k-nearest neighbour algorithm (kNN).
•
Hidden dependency models. Contoh: neural networks.
1.5.
Naive Bayes
Pengklasifikasi
Bayesian
(Tan,
Steinbach,
&
Kumar,
2006),
adalah
pengklasifikasi yang didasarkan pada teorema Bayes. Sebuah studi yang membandingkan algoritma klasifikasi telah menemukan sebuah pengklasifikasi Bayesian sederhana yang dikenal dengan pengklasifikasi naive Bayesian (naive Bayesian classifier) yang secara performa sebanding dengan pohon keputusan dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
pengklasifikasi jaringan saraf (neural network) tertentu. Pengklasifikasi Bayesian juga menunjukkan akurasi dan kecepatan yang tinggi saat diterapkan pada basisdata yang besar. Pengklasifikasi naive Bayesian mengasumsikan bahwa pengaruh dari nilai atribut pada kelas tertentu tidak bergantung pada nilai atribut lainnya. Asumsi ini disebut
class
conditional
independence.
Asumsi
ini
dibuat
untuk
menyederhanakan perhitungan yang rumit dan, dalam arti ini, dianggap “naive”.
1.5.1. Multinomial Naive Bayes atau Multinomial NB Menurut (Manning, Raghavan, & Schutze, 2008), probabilitas sebuah dokumen d berada di kelas c dihitung dengan:
𝑃𝑃(𝑐𝑐 |𝑑𝑑 ) ∝ 𝑃𝑃(𝑐𝑐) � 𝑃𝑃(𝑡𝑡𝑘𝑘 |𝑐𝑐) 1≤𝑘𝑘≤𝑛𝑛 𝑑𝑑
(1)
•
𝑃𝑃(𝑡𝑡𝑘𝑘 |𝑐𝑐), adalah conditional probability dari term 𝑡𝑡𝑘𝑘 yang terdapat dalam sebuah dokumen dari kelas c. 𝑃𝑃(𝑡𝑡𝑘𝑘 |𝑐𝑐) diinterpretasikan sebagai ukuran dari
seberapa banyak petunjuk 𝑡𝑡𝑘𝑘 membantu dalam menentukan bahwa c adalah kelas yang tepat.
•
𝑃𝑃(𝑐𝑐), adalah prior probability dari sebuah dokumen yang terdapat dalam kelas
c. Bila term dari sebuah dokumen tidak memberikan petunjuk yang jelas untuk satu kelas dibandingkan dengan kelas lainnya, maka dipilih satu kelas yang memiliki prior probability yang tertinggi. •
〈𝑡𝑡1 , 𝑡𝑡2 , … , 𝑡𝑡𝑛𝑛 𝑑𝑑 〉, adalah kumpulan token dalam dokumen d yang merupakan bagian dari vocabulary yang digunakan untuk mengklasifikasi dan 𝑛𝑛𝑑𝑑 adalah
jumlah token tersebut di dalam dokumen d. Contoh, 〈𝑡𝑡1 , 𝑡𝑡2 , … , 𝑡𝑡𝑛𝑛 𝑑𝑑 〉 untuk
dokumen dengan satu kalimat Beijing and Taipei join the WTO, menjadi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
〈Beijing, Taipei, join, WTO〉, dengan 𝑛𝑛𝑑𝑑 = 4, jika term and dan the dianggap sebagai stop words.
Untuk memperkirakan prior probability 𝑃𝑃�(𝑐𝑐) digunakan persamaan sebagai berikut:
𝑃𝑃(𝑐𝑐) =
(2)
• •
𝑁𝑁𝑐𝑐 𝑁𝑁
𝑁𝑁𝑐𝑐 = jumlah dari dokumen training dalam kelas c.
N = jumlah keseluruhan dokumen training dari seluruh kelas.
Untuk memperkirakan conditional probability 𝑃𝑃�(𝑡𝑡|𝑐𝑐) persamaan yang digunakan,
yaitu:
𝑃𝑃(𝑡𝑡𝑘𝑘 |𝑐𝑐 ) =
𝑇𝑇𝑐𝑐𝑐𝑐
∑𝑡𝑡 ′ ∈ 𝑉𝑉 𝑇𝑇𝑐𝑐𝑐𝑐 ′
(3)
•
Tct = jumlah kemunculan term t dalam sebuah dokumen training dari kelas c.
•
∑𝑡𝑡′ ∈𝑉𝑉 𝑇𝑇𝑐𝑐𝑐𝑐′ ′ = jumlah total dari keseluruhan term yang terdapat dalam sebuah dokumen training dari kelas c.
Masalah dari proses perkiraan nilai conditional probabilities pada persamaan (5) adalah terdapat nilai nol dari sebuah kombinasi (term|class) yang tidak terdapat dalam data training. Berdasarkan contoh di atas, bila term WTO dalam data training hanya terdapat dalam dokumen China, maka perkiraan untuk kelas – kelas lainnya, misalnya UK, akan bernilai nol (0):
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
𝑃𝑃(WTO|𝑈𝑈𝑈𝑈 ) = 0 Untuk menghilangkan nilai nol, digunakan add-one atau Laplace smoothing. Proses ini menambahkan nilai satu (1) pada setiap nilai Tct dari perhitungan conditional probabilities. Sehingga persamaan untuk conditional probabilities menjadi:
𝑃𝑃(𝑡𝑡𝑘𝑘 |𝑐𝑐 ) =
𝑇𝑇𝑐𝑐𝑐𝑐 + 1 (∑𝑡𝑡 ′ ∈ 𝑉𝑉 𝑇𝑇𝑐𝑐𝑡𝑡 ′ ) + 𝐵𝐵′ (4)
•
1.6.
B’ = jumlah keseluruhan term unik dari seluruh kelas.
Evaluasi Sistem Pemerolehan Informasi (menggunakan Kfold Cross-Validation dan Precision)
1.6.1. K-fold Cross-Validation Cross-validation adalah sebuah metode statistik untuk mengevaluasi dan membandingkan algoritma learning dengan cara membagi data menjadi dua bagian. Bagian pertama digunakan untuk men-training sebuah model dan bagian yang lain digunakan untuk memvalidasi (testing) model. Bentuk dasar dari crossvalidation adalah k-fold cross-validation. Dalam k-fold cross-validation, pertamatama sebuah data dibagi ke dalam k bagian (fold) yang sama besar (atau hampir sama). Kemudian dilakukan pengulangan sebanyak k untuk proses training dan validasi (testing), dimana dalam setiap pengulangan diambil sebuah fold untuk dilakukan validasi (testing), sementara sisanya, fold k-1 digunakan untuk training. Dalam penelitian ini, pembagian k-fold dilakukan untuk setiap kumpulan data yang tersimpan dalam masing – masing kelas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
Gambar 2.3 Contoh proses dari three-fold cross-validation.
Dalam setiap pengulangan, akan diukur performa dari masing-masing model yang terbentuk. Hal ini berfungsi untuk menentukan model mana yang terbaik / paling efektif untuk diaplikasikan ke dalam sistem. Untuk mengukur performa sebuah model, akan digunakan perhitungan precision untuk mengetahui tingkat akurasinya.
1.6.2. Precision Untuk menilai keefektifan dari sebuah sistem pemerolehan informasi (kualitas dari hasil klasifikasi), perlu dilakukan perhitungan untuk mengetahui precision dan recall dari hasil klasifikasi sistem tersebut. Dalam penelitian ini, yang akan dihitung hanyalah precision, karena yang hendak dicari tahu adalah tingkat akurasi dari sebuah model.
Precision adalah rasio dari jumlah dokumen relevan yang diperoleh dibagi oleh jumlah dari dokumen yang diperoleh.
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 (𝑃𝑃) =
𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 𝑜𝑜𝑜𝑜 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 = 𝑃𝑃(𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟|𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟) 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 𝑜𝑜𝑜𝑜 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
Sehingga:
𝑃𝑃 =
𝑡𝑡𝑡𝑡 (𝑡𝑡𝑡𝑡 + 𝑓𝑓𝑓𝑓) (5)
tp (true positives)
: hasil prediksi tepat, kedua kategori cocok.
fp (false positives)
: hasil prediksi mengatakan kedua kategori cocok, tapi
ternyata salah.
1.7.
Pencarian file menggunakan Apache Lucene 4.1.0
Apache Lucene adalah library mesin pencari teks yang berkinerja tinggi, kaya fitur yang ditulis sepenuhnya menggunakan Java. Ini adalah sebuah teknologi yang cocok untuk hampir semua aplikasi yang membutuhkan pencarian penuh terhadap file teks, khususnya lintas platform (Apache Foundation). Secara garis besar Lucene memiliki dua proses utama, yaitu indexing dan searching. Proses indexing akan memotong kalimat menjadi kata yang berdiri sendiri, kemudian memilah antara kata dan tanda baca, mengubah semua huruf menjadi huruf kecil, dan menghilangkan stopword. Di dalam proses indexing terdapat proses scoring yang merupakan inti dari proses indexing dan juga Lucene. Proses scoring menentukan performa dari Lucene dalam melakukan pencarian. Proses ini memberikan bobot pada setiap kata dalam dokumen, sehingga memungkinkan untuk menemukan kemiripan antara keyword dan dokumen yang dicari. Lucene memberikan kemampuan kepada user untuk menentukan bagaimana sebuah dokumen akan diindeks. Bagaimana sebuah dokumen diindeks akan mempengaruhi proses scoring. Proses searching dalam Lucene akan melalui proses yang sama dengan indexing. Namun data yang diproses berupa keyword. Hasil pencarian adalah daftar dokumen yang diurutkan berdasarkan score dari proses scoring.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
1.8.
Penerapan Multinomial Naive Bayes Pada Klasifikasi Teks
Diketahui terdapat empat file surat: surat1 , surat2 , surat3 , dan surat4 . Surat1 , surat2 , dan surat3 akan menjadi data training yang digunakan untuk membangun model, sedangkan surat4 akan menjadi data testing untuk menguji model yang
dibangun. Keempat surat tersebut akan dikategorikan ke dalam tiga kategori,
yaitu surat pengunduran diri, surat lamaran kerja, dan surat kuasa. Kategori untuk ketiga data training telah diketahui terlebih dahulu, yaitu surat pengunduran diri untuk 𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬 𝟏𝟏 , surat lamaran kerja untuk 𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬 𝟐𝟐 , dan surat kuasa untuk 𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬𝐬 𝟑𝟑 .
Tabel 2.7 Daftar surat beserta kelasnya.
surat
kelas
𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠1
surat pengunduran diri
𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠3
surat kuasa
𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠2
surat lamaran kerja
𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠4
???
Keseluruhan tahap yang akan dilalui dalam melakukan klasifikasi yaitu: I. Pemrosesan data training: 1. Indexing data training (Indexing, hal.9): a. Tokenization. b. Normalization. c. Stopword removal (menggunakan stop words dari (Tala, 2003)). d. Stemming (Porter Stemmer untuk Bahasa Indonesia, hal.11). e. Sorting and grouping. 2. Training: a. Hitung Prior Probabilities (( 2, hal.17). b. Hitung Conditional Probabilities (( 3, hal.17). c. Laplace Smoothing (( 4, hal.18).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
II. Pemrosesan data testing: 3. Indexing data testing (Indexing, hal.9): a. Tokenization. b. Stopword removal (menggunakan stop words dari (Tala, 2003)). c. Normalization. d. Stemming (Porter Stemmer untuk Bahasa Indonesia, hal.11). e. Sorting and grouping. 4. Testing: a. Matching. b. Kalikan nilai Conditional Probabilities. c. Hitung probabilitas. III. Mengukur keberhasilan klasifikasi: 5. K-fold Cross Validation (K-fold Cross-Validation, hal.18). 6. Precision (Precision, hal.19)
1.8.1. Pemrosesan Data Training Data training yang akan digunakan dalam membangun model adalah sebagai berikut: Surat1 (masuk ke dalam kategori surat pengunduran diri): Surabaya 29 Maret 2011
Kepada Yth. HRD Manager PT. Mitra Sejati Jl. Raya Semangka No. 20 Surabaya
Dengan hormat, Melalui surat ini saya Gunawan Soeprapto mengajukan permohonan mengundurkan diri sebagai karyawan PT. Mitra Sejati terhitung tanggal 29 Maret 2011.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
Saya menghaturkan terima kasih atas kesempatan yang telah diberikan untuk belajar dan bekerja di PT. Mitra Sejati sebagai suatu perusahaan besar di bidang percetakan sebagai Kepala Gudang selama kurang lebih 3 tahun. Tak lupa saya mohon maaf kepada jajaran manajemen PT. Mitra Sejati apabila terdapat hal-hal yang tidak baik yang telah saya lakukan selama bekerja di PT. Mitra Sejati. Saya berharap dan berdo'a agar PT. Mitra Sejati dapat terus berkembang dan selalu mendapatkan yang terbaik.
Hormat saya, Gunawan Soeprapto Email :
[email protected] Mobile phone : 081111222878 Surat2 (masuk ke dalam kategori surat lamaran kerja):
Cibinong, 10 Juni 2011
Hal: Lamaran Pekerjaan
Kepada Yth., Manajer Sumber Daya Manusia PT. Hand's Parmantindo Jl. Raya Bumi Sentosa No. 5 Cibinong Dengan hormat, Bpk. Bambang Satrio, seorang asisten editor di PT. Hand's Parmantindo, menginformasikan kepada saya tentang rencana pengembangan Departemen Finansial PT. Hand's Parmantindo. Sehubungan dengan hal tersebut, perkenankan saya mengajukan diri (melamar kerja) untuk bergabung dalam rencana pengembangan PT. Hand's Parmantindo. Mengenai diri saya, dapat saya jelaskan sebagai berikut : Nama Tempat & Tanggal Lahir Pendidikan Akhir Alamat Cibinong 16913 Telepon / HP / E-mail
[email protected] Status Perkawinan
: Florentina Putri : Probolinggo, 5 Agustus 1979 : Sarjana Akuntansi Universitas Pancasila - Jakarta : Perum Bojong Depok Baru 1, Blok ZT No. 3, : 021-87903802 / 08179854203 / : Menikah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
Saat ini saya bekerja di PT. Flamboyan Bumi Singo, sebagai staf akuntasi dan perpajakan, dengan fokus utama pekerjaan di bidang finance dan perpajakan. Sebagai bahan pertimbangan, saya lampirkan : 1. 2. 3. 4.
Daftar riwayat hidup. Fotocopy ijazah S-1. Fotocopy setifikat kursus / pelatihan. Pas foto terbaru.
Besar harapan saya untuk diberi kesempatan wawancara, dan dapat menjelaskan lebih mendalam mengenai diri saya. Seperti yang tersirat di resume (riwayat hidup), saya mempunyai latar belakang pendidikan, pengalaman, potensi dan seorang pekerja keras. Demikian saya sampaikan. Terima kasih atas perhatian Bapak. Hormat saya, Florentina Putri Surat3 (masuk ke dalam ketegori surat kuasa): Yang bertanda tangan di bawah ini
Nama : Joko Susanto Jenis Kelamin : Pria Tempat Tanggal Lahir : Medan, 21 Juni 1973 Alamat : Cipondoh Makmur Blok E. IV/01 RT 07/05 Kel. Cipondoh Makmur. Kec. Cipondoh No. KTP : 32.75.02.1002.08617 Memberikan kuasa kepada Nama : EKO HERLAMBANG Alamat : Puri Dewata Indah Blok. Ag. No. 27 RT. 03/02 Cipondoh Tangerang. No. KTP : 367.105.13.00.02 Untuk pengambilan : Satu Unit : BPKB Mobil Honda Genio Nopol : B. 2628 YH Warna : Abu-abu Metalik No. Mesin : G168-ID- 602036 No. Rangka : MHDSY416VJ-102036.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
Demikianlah Surat Kuasa ini saya buat untuk dipergunakan sebagaimana mestinya. Tanggal, 26 Oktober 2010
Yang Diberi Kuasa Kuasa
Yang Memberikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
1.8.1.1. Indexing data training a. Tokenization: Tabel 2.8 Contoh hasil tokenization.
Surat pengunduran diri Surabaya Melalui Kepada Yth bekerja Manager surat Mitra Sejati terima
terms Surat lamaran kerja Cibinong Alamat staf Lamaran Pekerjaan Blok Terima Manajer diberi saya
Surat kuasa Alamat bertanda tangan Untuk sebagaimana kuasa Puri Surat KTP Indah
b. Normalization:
Tabel 2.9 Contoh hasil penghilangan stop word pada Tabel 2.8.
Surat pengunduran diri surabaya melalui kepada yth bekerja manajer surat mitra sejati terima
terms Surat lamaran kerja cibinong alamat staf lamaran pekerjaan blok terima manajer diberi saya
Surat kuasa alamat bertanda tangan untuk sebagaimana kuasa puri surat ktp indah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27 c. Stop word removal:
Tabel 2.10 Contoh hasil proses normalisasi terhadap Tabel 2.9.
Surat pengunduran diri surabaya yth bekerja manajer surat mitra sejati terima
terms Surat lamaran kerja cibinong alamat staf lamaran pekerjaan blok terima manajer
Surat kuasa alamat bertanda tangan indah ktp kuasa puri surat
d. Stemming: Tabel 2.11 Contoh hasil stemming dari Tabel 2.10.
Surat pengunduran diri surabaya yth kerja manajer surat mitra jati ima
terms Surat lamaran kerja cibinong alamat staf lamar kerja blok ima manajer
Surat kuasa alamat tanda tangan indah ktp kuasa puri surat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28 e. Membangun index melalui proses sorting dan grouping term:
Kumpulan term pada Tabel 2.11 kemudian disusun ke dalam satu kolom dan dihitung frekuensi kemunculannya pada masing – masing surat.
Tabel 2.12 Daftar term berserta frekuensi kemunculannya.
terms surabaya yth kerja manajer surat mitra jati ima cibinong alamat staf lamar kerja blok ima manajer alamat tanda tangan indah ktp kuasa puri surat
𝑡𝑡𝑡𝑡𝑖𝑖 (term frequency) Surat Surat lamaran Surat kuasa pengunduran kerja diri 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29 Term pada Tabel 2.12 kemudian diurutkan secara alfabet:
Tabel 2.13 Hasil sorting secara ascending.
terms alamat alamat blok cibinong indah kerja kerja ktp kuasa lamar manajer manajer mitra puri jati staf surabaya surat surat tanda tangan ima ima yth
𝑡𝑡𝑡𝑡𝑖𝑖 (term frequency) Surat Surat lamaran Surat kuasa pengunduran kerja diri 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1
1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30 Melalui hasil sorting pada Tabel 2.13, terlihat bahwa beberapa term yang sama muncul lebih dari satu kali. Term – term yang sama tersebut kemudian digabung menjadi satu.
Tabel 2.14 Hasil grouping berdasarkan term yang sama.
terms alamat blok cibinong indah kerja ktp kuasa lamar manajer mitra puri jati staf surabaya surat tanda tangan ima yth
𝑡𝑡𝑡𝑡𝑖𝑖 (term frequency) Surat Surat lamaran Surat kuasa pengunduran kerja diri 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1
1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0
1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
1.8.1.2. Training
a. Hitung prior probabilities: Contoh perhitungan prior probabilities terhadap kelas surat pengunduran diri:
𝑃𝑃�(𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑) =
1 3
Nilai 1 adalah jumlah dokumen training dalam kelas surat pengunduran diri. Nilai 3 adalah jumlah keseluruhan dokumen training dari seluruh kelas.
Tabel 2.15 Hasil perhitungan prior probabilities untuk tiap kelas.
atribut kelas surat pengunduran diri surat lamaran kerja surat kuasa
P(class) 1/3 1/3 1/3
b. Hitung conditional probabilities:
Contoh perhitungan conditional probabilities untuk term ‘alamat’ pada kelas surat lamaran kerja:
𝑃𝑃�(𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 | surat lamaran kerja) =
1
122
Tabel 2.16 Contoh penghitungan conditional probabilities.
terms alamat blok cibinong ima indah jati kerja ktp kuasa
Surat pengunduran diri 0 / 68 0 / 68 0 / 68 1 / 68 0 / 68 6 / 68 0 / 68 0 / 68 0 / 68
Surat lamaran kerja 1 / 122 1 / 122 3 / 122 1 / 122 0 / 122 0 / 122 4 / 122 0 / 122 0 / 122
Surat kuasa 2 / 65 2 / 65 0 / 65 0 / 65 1 / 65 0 / 65 0 / 65 2 / 65 4 / 65
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32 0 / 68 1 / 68 6 / 68 0 / 68 0 / 68 2 / 68 1 / 68 0 / 68 0 / 68 1 / 68
lamar manajer mitra puri staf surabaya surat tanda tangan yth
2 / 122 1 / 122 0 / 122 0 / 122 1 / 122 0 / 122 0 / 122 0 / 122 0 / 122 1 / 122
0 / 65 0 / 65 0 / 65 1 / 65 0 / 65 0 / 65 1 / 65 1 / 65 1 / 65 0 / 65
c. Laplace smoothing:
Laplace smoothing digunakan untuk menghilangkan nilai nol (term tanpa bobot) pada term dari Tabel 2.16. Laplace smoothing merupakan tahap akhir dari proses training menggunakan algoritma Multinomial Naive Bayes. Hasil yang didapat dari proses ini akan menjadi Model untuk melakukan klasifikasi. Contoh perhitungan conditional probabilities untuk term ‘alamat’ pada kelas surat lamaran kerja:
𝑃𝑃�(𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 | surat lamaran kerja) =
1+1
122 + 255
= 0.005305
Nilai 255 adalah jumlah term di dalam Tabel 2.16.
Tabel 2.17 Model.
terms alamat blok cibinong ima indah jati kerja ktp kuasa lamar manajer
Surat pengunduran diri 0.003096 0.003096 0.003096 0.006192 0.003096 0.021672 0.003096 0.003096 0.003096 0.003096 0.006192
Surat lamaran kerja 0.005305 0.005305 0.01061 0.005305 0.002653 0.002653 0.013263 0.002653 0.002653 0.007958 0.005305
Surat kuasa 0.009375 0.009375 0.003125 0.003125 0.00625 0.003125 0.003125 0.009375 0.015625 0.003125 0.003125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33 mitra puri staf surabaya surat tanda tangan yth
0.021672 0.003096 0.003096 0.009288 0.006192 0.003096 0.003096 0.006192
0.002653 0.002653 0.005305 0.002653 0.002653 0.002653 0.002653 0.005305
0.003125 0.00625 0.003125 0.003125 0.00625 0.00625 0.00625 0.003125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
1.8.2. Pemrosesan Data Testing Data Testing: Surat4 Yang bertanda tangan dibawah ini : Nama : Bambang Suprapto Umur : 37 No. KTP / SIM : 243.115.25.98.78 Alamat : Perumahan Cemara Indah Blok C No. 30 Pekerjaan : Wiraswasta Untuk selanjutnya disebut sebagai Pemberi Kuasa Dengan ini menerangkan dan memberi kuasa kepada : Nama Umur No. KTP / SIM Alamat Pekerjaan
: Anton Herlambang : 32 : 872.308.61.90.83 : Puri Cendrawasih Blok Cb No. 33 : Manager Keuangan
Untuk selanjutnya disebut sebagai Penerima Kuasa -------------------------------------------------KUASA KHUSUS---------------------------------------Untuk menghadap kepada Notaris di Bandung guna menyelesaikan pembuatan akta notaris pembentukan Asosiasi Staf Akademik Seluruh Indonesia (ASASI). Penerima kuasa dapat melakukan tindakan-tindakan lainnya yang penting dan berguna untuk kepentingan pembuatan akta notaris ASASI dan melakukan hal-hal yang selayaknya dilakukan oleh seorang penerima kuasa sesuai dengan peraturan perundang-undangan. Surat kuasa ini diberikan dengan hak substitusi baik sebagian maupun seluruhnya. Bandung, 01 Oktober 2005
Penerima Kuasa
Pemberi Kuasa
1.8.2.1. Indexing data testing Indexing terhadap data testing memiliki proses yang sama dengan indexing pada data training. Nilai term frequency tersebut akan digunakan untuk memangkatkan nilai conditional probabilities dari model.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35 Karena memiliki proses yang sama dengan indexing terhadap data training, maka proses indexing pada data testing tidak akan dijelaskan secara mendetil. Urutan proses indexing pada data testing adalah sebagai berikut: a. Tokenization b. Normalization c. Stop word removal (menggunakan stop list yang dilampirkan pada halaman ) d. Stemming (menggunakan Porter stemmer) e. Sorting & grouping
Tabel 2.18 Contoh hasil sorting & grouping dari data testing (surat4).
terms akademik akta alamat anton asas ...
tfi (term frequency) surat4 1 2 2 1 2 ...
1.8.2.2. Testing a. Matching: Proses matching adalah proses untuk menemukan term yang sama – sama muncul pada model (Tabel 2.17) maupun pada data testing (Tabel 2.18).
Tabel 2.19 merupakan hasil matching menggunakan data utuh. Yaitu hasil penghitungan
menyeluruh terhadap data yang diproses. Tabel 2.19 Hasil proses matching antara model dan data testing.
Terms alamat blok herlambang indah kerja ktp kuasa manajer
tf 2 2 1 1 2 2 8 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36 nama nomor puri staf surat tanda tangan
2 4 1 1 1 1 1
Hasil matching tersebut kemudian digabungkan dengan nilai conditional probabilitiesnya.
Tabel 2.20 Hasil matching beserta dengan nilai conditional probabilities-nya.
Terms alamat blok herlambang indah kerja ktp kuasa manajer nama nomor puri staf surat tanda tangan
tf (term frequency) 2 2 1 1 2 2 8 1 2 4 1 1 1 1 1
surat pengunduran diri surat1 0.003096 0.003096 0.003096 0.003096 0.003096 0.003096 0.003096 0.006192 0.003096 0.006192 0.003096 0.003096 0.006192 0.003096 0.003096
surat lamaran kerja surat2 0.005305 0.005305 0.002653 0.002653 0.013263 0.002653 0.002653 0.005305 0.005305 0.007958 0.002653 0.005305 0.002653 0.002653 0.002653
surat kuasa
surat3 0.009375 0.009375 0.00625 0.00625 0.003125 0.009375 0.015625 0.003125 0.009375 0.01875 0.00625 0.003125 0.00625 0.00625 0.00625
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37 b. Hitung probabilitas: Untuk memudahkan kalkulasi pada bagian ∏1≤𝑘𝑘≤𝑛𝑛 𝑑𝑑 𝑃𝑃(𝑡𝑡𝑘𝑘 |𝑐𝑐), maka persamaan tersebut akan dihitung terlebih dahulu dalam bentuk tabel seperti di bawah.
Untuk sebuah term yang kemunculannya lebih dari satu kali, pangkatkan nilai conditional probabilities-nya pada Tabel 2.20 dengan term frequency masing - masing. Kemudian jumlahkan nilainya untuk masing-masing kelas.
Contoh, term ‘alamat’ memiliki term frequency sebanyak 2 kali. Pangkatkan nilainya untuk menyederhanakan penghitungan. 𝑃𝑃(𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎|surat lamaran kerja) = 0.0053052 = 2.8143E − 05 Tabel 2.21 Hasil perkalian nilai conditional probabilities dengan term frequency-nya.
surat pengunduran diri surat1
Terms alamat blok herlambang indah kerja ktp kuasa manager nama no puri staf surat tanda tangan Total
surat lamaran kerja surat2
surat kuasa surat3
9.58522E-06 9.58522E-06 0.003096 0.003096 9.58522E-06 9.58522E-06 8.44127E-21 0.006192 9.58522E-06 1.47002E-09 0.003096 0.003096 0.006192 0.003096 0.003096
2.8143E-05 2.8143E-05 0.002653 0.002653 0.00017591 7.0384E-06 2.4541E-21 0.005305 2.8143E-05 4.0107E-09 0.002653 0.005305 0.002653 0.002653 0.002653
8.78906E-05 8.78906E-05 0.00625 0.00625 9.76563E-06 8.78906E-05 3.55271E-15 0.003125 8.78906E-05 1.23596E-07 0.00625 0.003125 0.00625 0.00625 0.00625
3.39007E-74
2.6655E-72
1.48941E-61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38 Dapatkan nilai probabilitas dari surat4 terhadap seluruh kelas dengan cara mengalikan nilai prior probabilities dengan total nilai conditional probabilities (Tabel 2.21) untuk masing – masing kelas.
Probabilitas dari surat4 terhadap kelas surat pengunduran diri: P(surat pengunduran diri|surat4) = 1/3 * 3.39007E-74 = 1.12991E-74
Probabilitas dari surat4 terhadap kelas surat lamaran kerja: P(surat lamaran kerja|surat4) = 1/3 * 2.6655E-72 = 8.8841E-73
Probabilitas dari surat4 terhadap kelas surat kuasa: P(surat kuasa|surat4) = 1/3 * 1.48941E-61 = 4.96422E-62
Dari hasil perhitungan probabilitas di atas diketahui bahwa probabilitas surat4 terhadap kelas surat kuasa memiliki nilai yang paling tinggi, yaitu 4.96422E-62. Sehingga 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠4
masuk ke dalam kelas surat kuasa.
1.8.3. Hitung Precision Jumlah data testing
:1
Jumlah klasifikasi yang tepat
:1
𝑃𝑃 =
1 =1 1
Maka, nilai Precision dari hasil percobaan di atas adalah 100%.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 3 PERANCANGAN SISTEM
3.1.
Gambaran Umum Sistem
Secara umum, sistem yang akan dibangun dalam penelitian ini adalah sebuah sistem dengan fungsi utama untuk melakukan klasifikasi surat. Surat yang akan diklasifikasi adalah surat masuk dan surat keputusan pada Fakultas Sains dan Teknologi, Universitas Sanata Dharma. Dalam melakukan proses klasifikasi, sistem ini akan menggunakan algoritma Multinomial Naïve Bayes sebagai metodenya. User dari sistem ini adalah pihak sekretariat dan pejabat fakultas yang bersangkutan. Dalam praktiknya, surat-surat yang akan diklasifikasi akan di-scan terlebih dahulu untuk menjadikannya sebagai arsip digital. Hasil scan tersebut kemudian dikonversi menjadi file teks. File teks inilah yang nantinya akan diproses oleh sistem melalui proses indexing, pembobotan, training, hingga testing. Proses-proses tersebut dapat dilihat pada Gambar 3.1.
39
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
Data training
Hitung Prior Probabilities
Tentukan kategori
Hitung Conditional Probabilities
Data testing
Tokenizing
Normalization Tokenizing
Laplace Smoothing
Stop word removal
Normalization Training Stemming Stopword removal Sorting & Grouping
Model Stemming
Indexing Sorting & Grouping
index
index Matching
Indexing Pangkatkan Nilai Conditional Probabilities
Modeling
Hitung Probabilitas Tiap Kelas
Hasil Klasifikasi Testing Classification
Gambar 3.1 Diagram Blok untuk proses klasifikasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
Pada Gambar 3.1, proses indexing pada tahap modeling menghasilkan inverted index yang adalah kumpulan term yang telah terseleksi beserta dengan term frequency dari masing – masing term. Inverted index inilah yang kemudian akan diolah melalui proses training dari algoritma Multinomial Naïve Bayes untuk mendapatkan model yang digunakan dalam klasifikasi. Pada tahap testing / klasifikasi, surat yang akan diklasifikasi akan melalui proses indexing namun tanpa diketahui kategorinya. Setelah melalui proses indexing tersebut, maka akan dihasilkan pula sebuah inverted index untuk proses testing. Dari inverted index tersebut kemudian dilakukan proses matching untuk mendapatkan daftar term yang sama-sama muncul pada inverted index dan model. Hasil proses matching kemudian digunakan untuk menjalankan proses klasifikasi dari Multinomial Naïve Bayes.
3.2.
Analisis Masalah
Sistem pengarsipan surat yang dimiliki pihak fakultas saat ini sebagian besar masih dijalankan secara manual. Meskipun beberapa surat telah memiliki softcopy, namun terbatas untuk beberapa surat tertentu. Sistem yang secara khusus mengelolanya juga belum tersedia. Sehingga softcopy tersebut tetap harus dicari secara manual. Masalah dari pengelolaan manual tersebut adalah kecepatan dalam menemukan kembali sebuah surat dan kebutuhan ruang penyimpanan. Seiring dengan peningkatan jumlah arsip yang terus berlangsung, masalah – masalah tersebut akan semakin membebani. Solusi untuk meningkatkan efektifitas dan efisiensi dalam pengelolaan arsip – arsip tersebut adalah sistem yang terkomputerisasi. Arsip – arsip digital dapat disimpan dalam penyimpanan digital yang lebih ringkas. Hasil penyimpanan tersebut juga dapat dicari dengan lebih cepat oleh komputer.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
3.3.
Analisis Kebutuhan Sistem
Dalam fase ini, kebutuhan sistem akan dideskripsikan dalam bentuk diagram use case.
Diagram Use Case Diagram use case dari sistem pengklasifikasian surat ini dapat dilihat pada Gambar 3.2.
Mengklasifikasikan surat
Mencari surat Sekretariat / Pejabat fakultas
<<extend>>
Menampilkan surat
Gambar 3.2 Diagram Use Case.
Tabel 3.1 Deskripsi Use Case.
No 1.
2.
3.
Use Case
Deskripsi
Mengklasifikasikan Sistem mengklasifikasikan surat ke dalam 8 surat kategori dengan algoritma Multinomial Niave Bayes menggunakan model yang telah dibangun melalui proses training. Mencari surat Sistem melakukan pencarian surat menggunakan library Apache Lucene terhadap surat – surat yang telah diklasifikasi. Menampilkan surat Sistem menampilkan file surat hasil pencarian menggunakan aplikasi pdf reader.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
3.4.
Desain Logikal
3.4.1. Desain Penyimpanan Data Media penyimpanan data yang dikelola oleh sistem adalah berupa file plain text yang disimpan dengan ekstensi .txt. Setiap satu file mewakili satu surat. File – file tersebut kemudian disimpan dalam folder yang mewakili masing – masing kategori. Penjabaran folder dan file yang digunakan oleh sistem: 1. data_storage Menyimpan file hasil klasifikasi yang dilakukan oleh user melalui sistem. 2. model Menyimpan file hasil training yang kemudian menjadi model untuk melakukan klasifikasi. 3. preprocessed_file Menyimpan file hasil preprocessing yang merupakan tahap awal dari proses training. 4. search_index Menyimpan index yang dihasilkan oleh Apache Lucene untuk proses searching. 5. stopwords.txt File yang berisi stopwords. 6. synonym.txt File yang berisi kumpulan sinonim dari berbagai kata.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
3.4.2. Diagram Dekomposisi
Sistem Klasifikasi Surat Masuk Fakultas Sains dan Teknologi
1
2
Simpan Surat
Cari Surat
1.1
2.1
Ambil Surat
Cari
1.2
2.2
Simpan
Reset
1.3 Reset
Gambar 3.3 Diagram Dekomposisi.
3.4.3. Diagram Arus Data (DAD) 3.4.3.1. Diagram Konteks
kata kunci pencarian, file surat User
hasil pencarian, info hasil klasifikasi
Sistem Klasifikasi Surat Masuk Fakultas Sains dan Teknologi
Gambar 3.4 Diagram Konteks.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
3.4.3.2. Level 1
Data Training
Stopword
file surat
file surat
stoplist
1 Mengklasifikasi kan surat
Model
model
file surat
User
Keywords, file surat
hasil pencarian
2 Mencari surat menggunakan Apache Lucene
Koleksi Surat
file surat index hasil indexing
Gambar 3.5 Diagram Arus Data Level 1.
Lucene_index
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
3.4.3.3. Level 2 Proses 1
Data training
file surat
1.1
stopwords
Stopwords
Training
User
file surat
1.2
model
Model
Testing
file surat
Koleksi Surat
Gambar 3.6 Diagram Arus Data Level 2 Proses 1.
3.4.3.4. Level 2 Proses 2
file surat
2.1
hasil indexing
Lucene_index
Indexing
Keywords User
Hasil pencarian, file surat
index 2.2 Searching
file surat
Gambar 3.7 Diagram Arus Data Level 2 Proses 2.
Koleksi Surat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
3.4.3.5. Level 3 Proses 1.1
file surat Data training
1.1.8 Hitung prior probabilities
Prior probabilities
1.1.1 Tokenizing
Model
file surat Conditional probabilities kumpulan token 1.1.7 Laplace smoothing
1.1.2 Normalization
kumpulan token tanpa stopword
1.1.3 Stopwords removal
stoplist
Stopword
kumpulan token yang terurut & dikelompokan
kumpulan token ternormalisasi
1.1.4 Stemming
1.1.6 Hitung nilai conditional probabillities
kumpulan token dalam bentuk kata dasar
Gambar 3.8 Diagram Arus Data Level 3 Proses 1.1.
1.1.5 Sorting & Grouping
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
3.4.3.6. Level 3 Proses 1.2
1.1.1 Tokenizing
User
Koleksi Surat
file surat
file surat
kumpulan token 1.1.2 Normalization
Prior probabilities Model
kumpulan token tanpa stopword
1.1.3 Stopwords removal
Conditional probabilities
stoplist
Stopword
kumpulan token yang terurut & dikelompokan
kumpulan token ternormalisasi
1.1.4 Stemming
1.1.6 Hitung probabilitas file surat
kumpulan token dalam bentuk kata dasar
Gambar 3.9 Diagram Arus Data Level 3 Proses 1.2.
1.1.5 Sorting & Grouping
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
3.4.3.7. Level 3 Proses 2.1
User
file surat 2.1.1 Tokenizing
kumpulan token 2.1.2 Normalization
kumpulan token tanpa stopword 2.1.3 Stopwords removal
Lucene_index
kumpulan token ternormalisasi 2.1.4 Stemming
index
2.1.5
kumpulan token dalam bentuk kata dasar
Scoring
Gambar 3.10 Diagram Arus Data Level 3 Proses 2.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
3.4.3.8. Level 3 Proses 2.2
file surat
Koleksi Surat
User
keywords 2.2.1 Tokenizing
kumpulan token
Hasil pencarian
2.2.2 Normalization
kumpulan token tanpa stopword 2.2.6 2.2.3 Stopwords removal
Scoring
kumpulan token ternormalisasi 2.2.4 Stemming
file surat yang sesuai dengan keywords user 2.2.5
kumpulan token dalam bentuk kata dasar
index
Matching
Gambar 3.11 Diagram Arus Data Level 3 Proses 2.2.
Lucene_index
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
3.5.
Desain Fisikal
3.5.1. Desain Antarmuka 3.5.1.1. Menu Utama / Menu Pencarian Surat
SISTEM MANAJEMEN SURAT Cari
Pencarian Surat
Filter pencarian berdasarkan Simpan Surat
Tabel hasil
Gambar 3.12 Antarmuka Menu Utama / Menu Pencarian Surat.
Reset
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
3.5.1.2. Menu Simpan Surat
SISTEM MANAJEMEN SURAT Ambil Surat
Kategorikan Surat
Simpan
Pencarian Surat
Simpan Surat
Tabel daftar surat yang akan
Gambar 3.13 Antarmuka Menu Simpan Surat.
Reset
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
3.5.2. Algoritma Proses Klasifikasi Algoritma yang akan dijabarkan dalam sub bab ini adalah algoritma yang berhubungan dengan proses klasifikasi. Sedangkan proses pencarian tidak ikut dijelaskan karena bukan merupakan bahasan utama dalam penelitian.
3.5.2.1 Preprocessing untuk proses training input: file surat yang terbagi dalam 8 folder yang mewakili masing – masing kelas, stopword, synonym loop: semua folder n...i dari data training { loop: semua file surat dari folder n { read: satu per satu file surat dari folder n loop - tokenization: setiap term j...k dalam file surat { normalization: term j check_stopwords: term j stemming: term j count: jumlah kemunculan term j } } }
3.5.2.2 Preprocessing untuk proses testing input: file surat, stopword, synonym read: file surat loop - tokenization: setiap term j...k dalam file surat { normalization: term j check_stopwords: term j stemming: term j } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
3.5.2.3 Hitung Prior Probabilities input: file surat yang terbagi dalam 8 folder yang mewakili masing – masing kelas loop: semua folder n...i dari data training { loop: semua file surat dari folder n { count: file surat yang ada dalam folder n } count: file surat yang ada dalam semua folder } calculate: nilai prior probabilities dari tiap – tiap kelas (folder)
3.5.2.4 Hitung Conditional Probabilities input: hasil preprocessing, jumlah term dalam keseluruhan kelas, jumlah term unik dari keseluruhan kelas loop: semua folder n...i dari hasil preprocessing { read: satu per satu file hasil preprocessing dari folder n calculate: nilai conditional probabilities dari masing – masing kelas }
3.5.2.5 Training execute: preprocessing method execute: prior probabilities method execute: conditional probabilities method
3.5.2.6 Matching input: indeks term hasil preprocessing data testing, indeks term dari model loop – read: indeks term data testing{ tt = term data testing loop: indeks term dari model{ tm = term dari model compare: tt with: tm store: match term, term frequency } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
3.5.2.7 Testing get: prior probabilities, conditional probabilities, hasil proses matching loop: indeks matching{ m = term frequency dalam indeks hasil matching loop: conditional prob{ c = term frequency dalam conditional prob{ calculate: n = c m } } calculate: n * prior probabilities return: probabilitas data testing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 4 IMPLEMENTASI Pada sub bab ini akan dijabarkan hasil implementasi berupa antarmuka (interface) beserta dengan method – method utama yang digunakannya.
4.1.
Antarmuka Menu Utama / Pencarian Surat
Gambar 4.1 Antarmuka untuk menu utama juga pencarian.
1. Method: createIndex(String filesToIndex) Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_41); File dir = new File(filesToIndex); FileInputStream fis = null; FieldType type1 = new FieldType(); type1.setIndexed(true); type1.setTokenized(true);
56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
type1.setStored(true); type1.setStoreTermVectors(true); type1.setStoreTermVectorOffsets(true); type1.setStoreTermVectorPositions(true); if (dir.isDirectory()) { for (final File folder : dir.listFiles()) { String classname = folder.getName(); File index_dir = new File("C:/Users/Fran/Documents/KULIAH/Skripsi/De2n/Program/Sy stem/se arch_index/" + classname.toLowerCase()); IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_41, analyzer); Directory directory = FSDirectory.open(index_dir); IndexWriter indexWriter = new IndexWriter(directory, conf); File[] files = folder.listFiles(); for (File file : files) { if (file.toString().endsWith("txt")) { fis = new FileInputStream(file); Document doc = new Document(); String fileContent = readFile(file); if (fileContent != null) { String path = file.getPath(); doc.add(new StringField("path", path, Field.Store.YES)); BufferedReader reader = new BufferedReader(new InputStreamReader(fis, "UTF-8")); doc.add(new Field("contents", fileContent, type1)); if (!index_dir.exists()) { indexWriter.addDocument(doc); } else { indexWriter.updateDocument(new Term("path", file.getPath()), doc); } } } } fis.close(); indexWriter.close(); } }
Deskripsi: meng-index file surat (file text) menggunakan library Lucene 4.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
2. Method: searchIndex(String searchString, String[] kategori) System.out.println("Searching for '" + searchString + "'"); String index_path; if (kategori != null) { for (int i = 0; i < kategori.length; i++) { String kelas = kategori[i]; index_path = "C:/Users/Fran/Documents/KULIAH/Skripsi/De2n/Program/System/ search_ index/" + kelas; File dir = new File(index_path); if (dir.isDirectory()) { HashMap<String, String> hasilPencarian = new HashMap<>(); Directory directory = FSDirectory.open(dir); IndexReader reader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(reader); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_41); QueryParser parser = new QueryParser(Version.LUCENE_41, "contents", analyzer); Query query = parser.parse(searchString); ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs; Highlighter highlighter = new Highlighter(new QueryScorer(query)); jumlah_hits = jumlah_hits + hits.length; for (int j = 0; j < hits.length; j++) { String highlight = ""; String t = ""; Document doc = searcher.doc(hits[j].doc); String content = doc.get("contents"); String path = doc.get("path"); TokenStream tokenStream = TokenSources.getAnyTokenStream(searcher.getIndexReader(), hits[j].doc, "contents", analyzer); TextFragment[] frag = highlighter.getBestTextFragments(tokenStream, content, false, 10); for (int p = 0; p < frag.length; p++) { if ((frag[p] != null) && (frag[p].getScore() > 0)) { t = frag[p].toString(); highlight = highlight + t; } } } reader.close();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
directory.close(); pencarian.put(kelas, hasilPencarian); } } } else { index_path = "C:/Users/Fran/Documents/KULIAH/Skripsi/De2n/Program/System/ search_ index"; File dir = new File(index_path); if (dir.isDirectory()) { for (final File folder : dir.listFiles()) { HashMap<String, String> hasilPencarian = new HashMap<>(); String classname = folder.getName(); Directory directory = FSDirectory.open(folder); IndexReader reader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(reader); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_41); QueryParser parser = new QueryParser(Version.LUCENE_41, "contents", analyzer); Query query = parser.parse(searchString); ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs; Highlighter highlighter = new Highlighter(new QueryScorer(query)); jumlah_hits = jumlah_hits + hits.length; for (int j = 0; j < hits.length; j++) { String highlight = ""; String t = ""; Document doc = searcher.doc(hits[j].doc); String content = doc.get("contents"); String path = doc.get("path"); TokenStream tokenStream = TokenSources.getAnyTokenStream(searcher.getIndexReader(), hits[j].doc, "contents", analyzer); TextFragment[] frag = highlighter.getBestTextFragments(tokenStream, content, false, 10); for (int p = 0; p < frag.length; p++) { if ((frag[p] != null) && (frag[p].getScore() > 0)) { t = frag[p].toString(); highlight = highlight + t; } } hasilPencarian.put(path, highlight); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
reader.close(); directory.close(); pencarian.put(classname, hasilPencarian); } } } return pencarian;
Deskripsi: Melakukan pencarian file surat berdasarkan kata kunci yang diberikan user. Pencarian dilakukan melalui index yang telah dibangun pada proses sebelumnya. Hasil dari pencarian adalah pertama, potongan isi surat yang mengandung kata kunci dan kedua, lokasi surat.
4.2.
Antarmuka Simpan Surat
Gambar 4.2 Antarmuka untuk penyimpanan surat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61
1. Method: getPrior (String prior) File file = new File(prior); String[] temp; try { FileInputStream fstream = new FileInputStream(file); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; while ((strLine = br.readLine()) != null) { temp = strLine.split("="); priorProb.put(temp[0], Double.valueOf(temp[1])); } br.close(); in.close(); fstream.close(); } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi untuk mengambil data prior probabilities.
2. Method: getCond (String cond) File file = new File(cond); String classname; String[] temp; try { for (final File fileEntry : file.listFiles()) { HashMap<String, Double> condValue = new HashMap<>(); classname = fileEntry.getName(); classname = classname.substring(0, (classname.length() 4)); FileInputStream fstream = new FileInputStream(fileEntry.getAbsolutePath()); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; while ((strLine = br.readLine()) != null) { temp = strLine.split("="); condValue.put(temp[0], Double.valueOf(temp[1])); } condProb.put(classname, condValue);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
br.close(); in.close(); fstream.close(); } } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi untuk mengambil data conditional probabilities.
3. Method: getVocab (String vocab) File file = new File(vocab); try { FileInputStream fstream = new FileInputStream(file); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; while ((strLine = br.readLine()) != null) { vocabulary.add(strLine); } } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi untuk mengambil data vocabulary (daftar term / kata unik dari seluruh kelas).
4. Method: preproTestingFile(String testingFile) File file = new File(testingFile); Integer freq; try { FileInputStream fstream = new FileInputStream(file); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; String term, syn; boolean check; while ((strLine = br.readLine()) != null) { Scanner sc = new Scanner(strLine); while (sc.hasNext()) { check = false; Iterator iter = prepro.stopWords.iterator(); term = sc.next().toLowerCase(); term = term.replaceAll("[^a-z 0-9]", "");
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63
if (term.length() <= 1) { continue; } syn = this.prepro.synonym.get(term); if (syn != null) { term = syn; } if (!prepro.stopWords.contains(term)) { term = porter.stemming(term); freq = testing.get(term); testing.put(term, (freq == null) ? 1 : freq + 1); } } sc.close(); } br.close(); in.close(); fstream.close(); } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi sebagai proses preprocessing untuk data testing. Perbedaannya dengan preprocessing untuk data training adalah inputnya. Data untuk proses testing adalah file tunggal, sedangkan untuk training berupa file kolektif yang terbagi dalam beberapa folder.
5. Method: Matching() String termInVocab; String termInTest; int freq; for (Map.Entry<String, Integer> entry : testing.entrySet()) { termInTest = entry.getKey(); freq = entry.getValue(); Iterator iter = vocabulary.iterator(); while (iter.hasNext()) { if (iter.next().equals(termInTest)) { match.put(termInTest, freq); } } }
Deskripsi: Berfungsi untuk menemukan term yang sama – sama muncul dalam data training (model) dan testing. 6. Method: getProbability()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64
double prob, value, priorScore; String term; Integer freq; double sum; double highestScore = 0; HashMap<String, Double> countCond = new HashMap<>(); for (String classname : condProb.keySet()) { sum = 1; prob = 0; HashMap<String, Double> temp = new HashMap<>(); temp = condProb.get(classname); for (Map.Entry<String, Integer> entry : match.entrySet()) { term = entry.getKey(); freq = entry.getValue(); for (Map.Entry<String, Double> condEntry : temp.entrySet()) { if (term.equals(condEntry.getKey())) { value = Math.pow(condEntry.getValue(), freq); sum = sum * value; break; } } } priorScore = priorProb.get(classname); prob = priorScore * sum; System.out.println(classname + " = " + prob); if (prob > highestScore) { highestScore = prob; highestProb = classname; } } return highestProb;
Deskripsi: Berfungsi untuk menghitung probabilitas data testing terhadap data training (model). Probabilitas tertinggi terhadap sebuah kelas akan menjadi hasil dari klasifikasi. Method ini menerapakan persamaan no. 3 hal. 15.
4.3.
Antarmuka Training
Antarmuka ini bukan milik user. Antarmuka ini dibutuhkan untuk menghasilkan model yang digunakan dalam proses klasifikasi. Karena model dalam sistem ini bersifat statis, maka proses training pada dasarnya hanya akan dilakukan sekali. Namun bila ternyata dibutuhkan perubahan pada model, maka proses training dapat dilakukan kembali.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
Gambar 4.3 Antarmuka untuk proses training.
1. Method: Process (String fileSyn, String fileStopWords, String input, String preprocessedOutput, String totalTermInClassOutput) Double freq; int termCount; double totalClass = 0; int totalTermInClass; String classname; Porter porter = new Porter(); Porter_English english = new Porter_English(); File folder = new File(input); loadSyn(fileSyn); loadStopWords(fileStopWords); try { for (final File folderEntry : folder.listFiles()) { if (folderEntry.isDirectory()) { termCount = 0; totalTermInClass = 0; classname = folderEntry.getName(); totalClass++; HashMap<String, HashMap<>();
Double>
termFreqInClass
=
new
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
HashMap<String, Double> countFreq = new HashMap<>(); for (final File fileEntry : folderEntry.listFiles()) { if (fileEntry.toString().endsWith("txt")) { termCount = 0; FileInputStream fstream = new FileInputStream(fileEntry.getAbsolutePath()); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; String term, syn; while ((strLine = br.readLine()) != null) { Scanner sc = new Scanner(strLine); while (sc.hasNext()) { term = sc.next().toLowerCase(); term = term.replaceAll("[^a-z 0-9]", ""); if (term.length() <= 1) { continue; } syn = synonym.get(term); if (syn != null) { term = syn; } if (!stopWords.contains(term)) { term = porter.stemming(term); freq = countFreq.get(term); countFreq.put(term, (freq == null) ? 1 : freq + 1.0); } termCount++; } sc.close(); } br.close(); in.close(); fstream.close(); } totalTermInClass = totalTermInClass + termCount; } termNumber.put(classname, totalTermInClass); double tf; String FileOutput = preprocessedOutput + classname + ".txt"; PrintWriter pw = new PrintWriter(FileOutput); for (Map.Entry<String, Double> entry : countFreq.entrySet()) { pw.println(entry.getKey() + "=" + entry.getValue()); termFreqInClass.put(entry.getKey(), entry.getValue()); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67
pw.close(); } } PrintWriter print = new PrintWriter(totalTermInClassOutput); for (Map.Entry<String, Integer> entry : termNumber.entrySet()) { String kategori = entry.getKey(); int n = entry.getValue(); print.println(kategori + "=" + n); } print.close(); } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi untuk memproses setiap kata dalam file surat sehingga menghasilkan kata yang efektif untuk proses klasifikasi. Setiap file surat akan melalui beberapa proses, yaitu tokenization untuk memotong kalimat menjadi kata per kata; normalization untuk menghilangkan tanda baca dan mengubah ke dalam huruf kecil; stop word removal untuk menghilangkan kata – kata yang tidak berguna untuk proses klasifikasi, seperti kata sambung; stemming untuk menghilangkan imbuhan, sehingga diperoleh kata dasar. Selain proses – proses tersebut, jumlah kemunculan kata dan dokumen yang mengandung kata tersebut juga dihitung. Hal tersebut berfungsi untuk proses pembobotan menggunakan teknik tf-idf. Hasil dari semua proses tersebut kemudian akan ditulis ke dalam file teks. File teks tersebut nantinya akan digunakan dalam proses training.
2. Method: loadStopwords (String fileStopWords) try { FileInputStream fstream = new FileInputStream(fileStopWords); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; int cc = 0; while ((strLine = br.readLine()) != null) { if (strLine.equals("")) { continue; } cc++; stopWords.add(strLine); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68
br.close(); in.close(); fstream.close(); } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi untuk me-load file yang berisi stop word ke dalam arraylist. Data tersebut kemudian akan digunakan dalam method Process.
3. Method: loadSyn (String fileSyn) try { FileInputStream fstream = new FileInputStream(fileSyn); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; int cc = 0; String[] w; while ((strLine = br.readLine()) != null) { if (strLine.equals("")) { continue; } cc++; w = strLine.split("="); synonym.put(w[0], w[1]); } br.close(); in.close(); fstream.close(); } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi untuk me-load file yang berisi kata dan sinonimnya ke dalam hash map. Data tersebut kemudian akan digunakan dalam method Process.
4. Method: getTermNumber (String termFile) String[] w; File file = new File(termFile); try { FileInputStream fstream = new FileInputStream(file); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69
while ((strLine = br.readLine()) != null) { w = strLine.split("="); totalTermInClass.put(w[0], Integer.parseInt(w[1])); } br.close(); in.close(); fstream.close(); } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi untuk menghitung jumlah kata yang terdapat dalam setiap kelas. Input dari method ini adalah file hasil proses preprocessing yang menghitung jumlah kata dalam satu folder.
5. Method: countUniqueTerm (String preproFile, String output) File folder = new File(preproFile); String fileoutput = output; String[] word; try { PrintWriter pw = new PrintWriter(fileoutput); for (final File fileEntry : folder.listFiles()) { FileInputStream fstream = new FileInputStream(fileEntry.getAbsolutePath()); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; while ((strLine = br.readLine()) != null) { word = strLine.split("="); if (!vocabulary.contains(word[0])) { vocabulary.add(word[0]); pw.println(word[0]); } } br.close(); in.close(); fstream.close(); } pw.close(); } catch (Exception e) { System.out.println(e); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70
Deskripsi: Input dari method ini adalah file hasil preprocessing. Method ini berfungsi untuk mengumpulkan kata – kata unik yang terdapat dalam setiap kelas. Kumpulan kata – kata unik tersebut kemudian disimpan dalam file teks.
6. Method: getPriorProb (String preproFile, String output) double prior; double docInClass = 0; double totalDoc = 0; String classname; File folder = new File(preproFile); String FileOutput = output; HashMap<String, Double> priorProb = new HashMap<>(); try { PrintWriter pw = new PrintWriter(FileOutput); for (final File folderEntry : folder.listFiles()) { if (folderEntry.isDirectory()) { classname = folderEntry.getName(); for (final File fileEntry : folderEntry.listFiles()) { if (fileEntry.toString().endsWith(".txt")) { docInClass++; } } totalDoc = totalDoc + docInClass; priorProb.put(classname, docInClass); docInClass = 0; } } for (Map.Entry<String, Double> entry : priorProb.entrySet()) { prior = entry.getValue() / totalDoc; pw.println(entry.getKey() + "=" + prior); } pw.close(); } catch (FileNotFoundException ex) { Logger.getLogger(MultinomialNB_Training.class.getName()).log(Level .SEVERE, null, ex); }
Deskripsi: Berfungsi untuk menghitung nilai prior probabilities dari setiap kelas. Method ini memproses file hasil proses preprocessing. Method ini menerapkan persamaan no. 4 hal. 16. Hasil dari proses ini kemudian ditulis dalam file teks.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71
7. Method: getConditionalProb (String preproFile, String input2, String vocabOutput, String condOutput) this.countUniqueTerm(preproFile, vocabOutput); this.getTermNumber(jumlahTerm); File file = new File(preproFile); String classname; Object term; double condProb = 0; double termNumberInClass = 0; String[] word; HashMap<String, Double> temp = new HashMap<>(); try { for (final File fileEntry : file.listFiles()) { FileInputStream fstream = new FileInputStream(fileEntry.getAbsolutePath()); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; classname = fileEntry.getName(); classname = classname.substring(0, (classname.length() 4)); String fileoutput = condOutput + classname + ".txt"; PrintWriter pw = new PrintWriter(fileoutput); while ((strLine = br.readLine()) != null) { word = strLine.split("="); temp.put(word[0], Double.valueOf(word[1])); } termNumberInClass = totalTermInClass.get(classname); Iterator iter = vocabulary.iterator(); double vocabSize = vocabulary.size(); while (iter.hasNext()) { term = iter.next(); if (temp.containsKey(term)) { condProb = ((temp.get(term) + 1) / (termNumberInClass + vocabSize)) * 10000; pw.println(term + "=" + condProb); condProb = 0; } else { condProb = (1 / (termNumberInClass + vocabSize)) * 10000; pw.println(term + "=" + condProb); condProb = 0; }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72
} temp.clear(); pw.close(); br.close(); in.close(); fstream.close(); } } catch (Exception e) { System.out.println(e); }
Deskripsi: Berfungsi untuk menghitung nilai conditional probabilities dari setiap kelas. Method ini menerapkan persamaan ( 4, hal. 18. Input dari method ini adalah file hasil proses preprocessing. Hasil dari proses ini kemudian ditulis ke dalam file teks. Bila nilai yang dihasilkan dari proses penghitungan probability terlalu kecil sehingga menampilkan nilai 0, maka pada proses training, kalikan nilai conditional probability dengan angka 10 atau 100 atau 1000 dan seterusnya hingga didapat nilai yang ideal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 5 PENGUJIAN
5.1.
Pengujian
Tahap pengujian terdiri dari dua bagian, yaitu pengujian keberhasilan penerapan algoritma dan pengujian akurasi sistem.
5.1.1. Pengujian Penerapan Algoritma Proses pengujian penerapan algoritma berfungsi untuk mengetahui apakah sistem yang dibangun telah menerapkan algoritma Multinomial Naive Bayes dengan tepat atau tidak. Data pengujian diambil dari buku Introduction to Information Retrieval (Manning, Raghavan, & Schutze, 2008).
Training: 𝑃𝑃�(Japan|𝑐𝑐̅) 𝑃𝑃�(Tokyo|𝑐𝑐̅) 𝑃𝑃�(Chinese|𝑐𝑐̅) 𝑃𝑃�(Macao|𝑐𝑐̅) 𝑃𝑃�(Shanghai|𝑐𝑐̅) 𝑃𝑃�(Beijing|𝑐𝑐̅)
𝑃𝑃�(Japan|𝑐𝑐) 𝑃𝑃�(Tokyo|𝑐𝑐) 𝑃𝑃�(Chinese|𝑐𝑐) 𝑃𝑃�(Macao|𝑐𝑐) 𝑃𝑃�(Shanghai|𝑐𝑐)
𝑃𝑃�(Beijing|𝑐𝑐)
= = = = = =
(1 + 1) / (3 + 6) = 2/9 = 0,2222 (1 + 1) / (3 + 6) = 2/9 = 0,2222 (1 + 1) / (3 + 6) = 2/9 = 0,2222 (0 + 1) / (3 + 6) = 1/9 = 0,1111 (0 + 1) / (3 + 6) = 1/9 = 0,1111 (0 + 1) / (3 + 6) = 1/9 = 0,1111
= = = = =
(0 + 1) / (8 + 6) = 1/14 = 0,0714 (0 + 1) / (8 + 6) = 1/14 = 0,0714 (5 + 1) / (8 + 6) = 6/14 = 0,4286 (1 + 1) / (8 + 6) = 2/14 = 0,1429 (1 + 1) / (8 + 6) = 2/14 = 0,1429
=
(1 + 1) / (8 + 6) = 2/14 = 0,1429 73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74
Testing: Hasil perhitungan test set di atas menggunakan Multinomial Naive Bayes:
Dari hasil perhitungan di atas diketahui bahwa kelas yes memiliki nilai probabilitas yang lebih tinggi terhadap data yang diberikan, yaitu 0,0003. Dibandingkan dengan kelas no yang memiliki nilai 0,0001. Sehingga dapat disimpulkan bahwa test set yang diuji masuk ke dalam kelas yes.
Perhitungan test set menggunakan sistem yang dibangun: Training:
Gambar 5.1 Output Hasil Training Pada Pengujian Penerapan Algoritma.
Testing:
Gambar 5.2 Output Hasil Testing Pada Pengujian Penerapan Algoritma.
Bila dibulatkan dengan mengambil empat angka dibelakang koma, maka menjadi: Yes = 0,0003 dan No = 0,0001.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75
Namun untuk menghindari perhitungan yang menghasilkan floating point yang terlalu besar, khususnya angka 0 dibelakang 0, (nol koma) yang terlalu banyak, maka nilai conditional probabilities dari proses training akan dikalikan dengan 10000.
Training:
Gambar 5.3 Output Hasil Penyesuaian Pecahan Pada Proses Training.
Testing:
Gambar 5.4 Output Hasil Penyesuaian Pecahan Pada Proses Testing.
Dilihat dari hasil yang diperoleh di atas diketahui bahwa tidak terjadi perubahan terhadap nilai yang dihasilkan. Perubahan yang terjadi hanya pergeseran posisi koma. Dengan demikian hasil klasifikasi tetap terjaga. Sehingga dapat disimpulkan bahwa penyesuaian dengan perkalian 10000 dapat diterapkan tanpa mempengaruhi ketepatan implementasi algoritma.
Dari hasil pengujian di atas, maka algoritma Multinomial Naive Bayes di dalam sistem yang dibangun telah terimplementasi dengan benar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76
5.1.2. Pengujian Akurasi Sistem Pengujian akurasi sistem dilakukan dengan menggunakan metode k-fold cross validation terhadap 278 data.
Detil hasil pengujian dapat dilihat pada Lampiran A, Hal. 83. 5.1.2.1. Pengujian cross validation menggunakan 3-fold
Gambar 5.5 3-fold cross validation.
Pada pengujian menggunakan 3-fold, jumlah data pada masing – masing fold adalah: Fold 1: training = 94, testing = 184; Fold 2: training = 94, testing = 184; Fold 3: training = 90, testing = 188.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77
5.1.2.2. Pengujian cross validation menggunakan 5-fold
Gambar 5.6 5-fold cross validation.
Pada pengujian menggunakan 5-fold, jumlah data pada masing – masing fold adalah: Fold 1: training = 59, testing = 219; Fold 2: training = 56, testing = 222; Fold 3: training = 56, testing = 222; Fold 4: training = 54, testing = 224; Fold 5: training = 53, testing = 225.
Dari dua hasil pengujian akurasi yang dilakukan menggunakan 3-fold dan 5-fold cross validation dapat diketahui bahwa sistem menghasilkan persentase rata – rata
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78
yang berbeda. Pada 3-fold, sistem menghasilkan persentase rata – rata benar sebesar 79% dan salah 20%. Sedangkan pada 5-fold, sistem menghasilkan nilai persentase rata – rata benar sebesar 83% dan salah 16%.
5.2.
Analisis Pengujian
Meski algoritma Multinomial Naive Bayes menunjukkan akurasi mencapai 83%, namun tetap memiliki kemungkinan kesalahan klasifikasi. Kesalahan klasifikasi sebesar 16% dapat menjadi masalah yang lebih besar menyesuaikan dengan jumlah data yang diklasifikasikannya. Semakin banyak data yang diproses, maka akan semakin banyak pula data yang salah diklasifikasikan. Kesalahan klasifikasi ini menyebabkan data yang salah masuk kategori tersebut akan lebih sulit ditemukan kembali khususnya dalam koleksi yang besar. Sehingga pada akhirnya harus dilakukan pencarian menyeluruh terhadap data yang tersimpan. Hal ini justru menghilangkan keuntungan yang hendak didapat dari proses klasifikasi tersebut. Melalui proses klasifikasi, diharapkan proses pencarian dapat menjadi lebih cepat dengan memperkecil ruang lingkup pencarian ke dalam kategori – kategori. Berdasarkan hasil pengujian diketahui bahwa jumlah data training yang dimiliki dapat mempengaruhi hasil klasifikasi. Pada pengujian menggunakan 3fold didapat persentase rata – rata benar sebesar 79% dan salah 20%. Perbandingan data testing dan training yang dimiliki adalah sebesar 1 : 2. Hal ini berarti akan semakin sedikit data training yang dimiliki. Sedangkan pada pengujian menggunakan 5-fold, diperoleh persentase benar sebesar 83% dan salah sebesar 16%. Pada 5-fold, perbandingan data testing dan training adalah 1 : 4. Artinya terdapat lebih banyak data training untuk setiap pengujian. Salah satu hal yang dapat dipertimbangkan sebagai penyebab kesalahan klasifikasi adalah penentuan kelas pada data training yang kemungkinan mengalami kesalahan. Penentuan kelas data training yang digunakan dalam penelitian ini tidak diperoleh melalui pakar yang kompeten, namun disusun oleh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79
peneliti. Dalam kasus ini, peneliti tidak memiliki pengetahuan yang baik dalam bidang pengarsipan. Dasar yang digunakan peneliti dalam mempersiapkan data training berasal dari panduan yang diperoleh dari buku manajemen pengarsipan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 6 KESIMPULAN DAN SARAN
6.1.
Kesimpulan
Kesimpulan yang dapat diambil dari pembangunan sistem klasifikasi surat masuk dengan lokasi studi kasus di sekretariat fakultas sains dan teknologi Universitas Sanata Dharma, adalah sebagai berikut:
1. Performa algoritma Multinomial Naive Bayes untuk klasifikasi file teks (dalam penelitian ini surat) adalah sebagai berikut: dengan pengujian menggunakan 5-fold cross validation, algoritma tersebut berhasil memperoleh akurasi rata – rata benar sebesar 83% dan salah 16%; sedangkan pada 3-fold cross validation berhasil mendapatkan akurasi rata – rata benar 79%, dan salah 20%. Hasil pengujian tersebut menunjukkan bahwa dalam penelitian ini perbedaan jumlah data training dapat mempengaruhi akurasi dari proses klasifikasi. 2. Fungsi pencarian yang dimiliki sistem memungkinkan user untuk menemukan kembali surat yang telah disimpan (diklasifikasi). User dapat mencari surat berdasarkan kata yang terkandung di dalamnya. Pencarian juga dapat dilakukan untuk kategori surat tertentu. Pencarian berdasarkan kategori akan mempersempit area pencarian sehingga diharapkan dapat mempercepat proses pencariannya. 3. Beberapa kendala yang dihadapi dan dirasa dapat mengurangi efektifitas sistem, yaitu: a. Kendala dalam hal mengubah arsip fisik menjadi arsip digital. Langkah – langkah yang diperlukan adalah: pertama, proses scanning arsip menjadi arsip digital berupa gambar. Kedua, konversi file gambar tersebut untuk menghasilkan file teks yang dapat diolah oleh sistem klasifikasi dan pencarian.
80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81
b. Klasifikasi awal secara manual terhadap data training dalam penelitian ini tidak dilakukan oleh pakar, namun oleh peneliti. Sehingga ada kemungkinan ketidaktepatan klasifikasi. c. Kemungkinan kesalahan dalam proses klasifikasi. Hal ini dapat mengurangi manfaat dari klasifikasi itu sendiri.
6.2.
Saran
Beberapa saran yang berguna untuk meningkatkan efektifitas sistem: 1. Tipe model yang dinamis, yaitu model yang dapat memperbaharui dirinya sendiri dari waktu ke waktu berdasarkan banyaknya data yang disimpan oleh user, dapat meningkatkan performa klasifikasi seiring dengan jumlah data yang semakin banyak tersimpan. 2. Penggabungan sistem klasifikasi yang otomatis dan manual. Hal ini dapat memberikan user kemampuan untuk memperbaiki kesalahan klasifikasi oleh sistem. Sehingga data yang dikelola akan menjadi semakin baik. 3. Menyertakan fungsi konversi gambar menjadi teks di dalam sistem yang dibangun. Sehingga semua fungsi yang dibutuhkan dapat diperoleh dalam satu sistem. 4. Tata kelola pengarsipan yang baik dan jelas. Hal ini dapat memudahkan perancangan sistem. 5. Persiapan data training sebaiknya dibantu oleh pakar yang kompeten. 6. Kualitas hasil scan harus bagus, rapi dan jelas. Untuk meningkatkan kualitas hasil konversi ke dalam teks.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
Apache Foundation. (n.d.). Retrieved 2012, from Apache Lucene Web site: http://lucene.apache.org/ Davies, J., & Goker, A. (2009). Information Retrieval: Searching in the 21st Century. A John Wiley and Sons, Ltd. Joachims, T. (1997). A Probabilistic Analysis of the Rocchio Algorithm with TFIDF for Text Categorization. International Conference on Machine Learning (ICML). Manning, C. D., Raghavan, P., & Schutze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. Porter, M. (2006, January). The Porter Stemming Algorithm. Retrieved February 25, 2011, from Tartarus: http://tartarus.org/~martin/PorterStemmer/ Schneider, K. M. (2004). A New Feature Selection Score for Multinomial Naive Bayes Text Classification Based on KL -Divergence. Proceedings of 42st Annual Meeting of the Association for Computational Linguistics (pp. 186189). Barcelona: Association for Computational Linguistics. Tala, F. Z. (2003). A Study of Stemming Effects on Information Retrieval in Bahasa Indonesia. M.Sc. Thesis, University of Amsterdam. Tan, P. N., Steinbach, M., & Kumar, V. (2006). Introduction to Data Mining. Pearson Education. Witten, I. H., & Frank, E. (2005). Data Mining: practical machine learning tools and techniques, 2nd edition. Morgan Kaufmann.
82
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN A
Hasil uji validasi menggunakan k-fold cross validation.
1. 5-fold cross validation a. Fold 1 Jumlah data testing: 59 Jumlah data training: 219 === Hasil Klasifikasi === Perlengkapan_1.txt = Perlengkapan Perlengkapan_6.txt = Akademik---Lain_lain_1.txt = Akademik---Lain_lain_14.txt = Lain_lain Lain_lain_19.txt = Keuangan---Lain_lain_23.txt = Lain_lain Lain_lain_28.txt = Lain_lain Lain_lain_32.txt = Lain_lain Lain_lain_4.txt = Lain_lain Lain_lain_9.txt = Akademik---Yayasan_1.txt = Kepegawaian---Yayasan_6.txt = Akademik---Administrasi_Umum_1.txt = Administrasi_Umum Akademik_1.txt = Akademik Akademik_14.txt = Akademik Akademik_19.txt = Akademik Akademik_23.txt = Akademik Akademik_28.txt = Akademik Akademik_32.txt = Akademik Akademik_37.txt = Akademik Akademik_41.txt = Akademik Akademik_46.txt = Akademik Akademik_50.txt = Akademik Akademik_55.txt = Akademik Akademik_6.txt = Akademik Akademik_64.txt = Akademik Akademik_69.txt = Akademik Akademik_73.txt = Akademik Akademik_78.txt = Akademik Akademik_82.txt = Akademik Akademik_87.txt = Akademik
83
Akademik_91.txt = Akademik Akademik_96.txt = Akademik Keuangan_1.txt = Keuangan Keuangan_14.txt = Keuangan Keuangan_5.txt = Keuangan Kepegawaian_1.txt = Perlengkapan---Kepegawaian_14.txt = Kepegawaian Kepegawaian_19.txt = Kepegawaian Kepegawaian_23.txt = Akademik---Kepegawaian_28.txt = Kepegawaian Kepegawaian_32.txt = Kepegawaian Kepegawaian_37.txt = Kepegawaian Kepegawaian_41.txt = Kepegawaian Kepegawaian_46.txt = Kepegawaian Kepegawaian_50.txt = Akademik---Kepegawaian_55.txt = Kepegawaian Kepegawaian_6.txt = Kepegawaian Kepegawaian_64.txt = Kepegawaian Kepegawaian_69.txt = Kepegawaian Kepegawaian_73.txt = Kepegawaian Kepegawaian_78.txt = Kepegawaian Kepegawaian_82.txt = Kepegawaian Kemahasiswaan_1.txt = Kemahasiswaan Kemahasiswaan_14.txt = Akademik---Kemahasiswaan_19.txt = Kemahasiswaan Kemahasiswaan_23.txt = Akademik---Kemahasiswaan_4.txt = Kemahasiswaan Kemahasiswaan_9.txt = Kemahasiswaan Benar: 48 Salah: 11 =================||=================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84
b. Fold 2 Jumlah data testing: 56 Jumlah data training: 222 === Hasil Klasifikasi === Perlengkapan_2.txt = Perlengkapan Lain_lain_10.txt = Akademik Lain_lain_15.txt = Lain_lain Lain_lain_2.txt = Akademik Lain_lain_24.txt = Lain_lain Lain_lain_29.txt = Lain_lain Lain_lain_33.txt = Lain_lain Lain_lain_5.txt = Lain_lain Yayasan_2.txt = Kepegawaian Yayasan_7.txt = Yayasan Administrasi_Umum_2.txt = Administrasi_Umum Akademik_10.txt = Akademik Akademik_15.txt = Akademik Akademik_2.txt = Akademik Akademik_24.txt = Akademik Akademik_29.txt = Akademik Akademik_33.txt = Akademik Akademik_38.txt = Akademik Akademik_42.txt = Akademik Akademik_47.txt = Akademik Akademik_51.txt = Akademik Akademik_56.txt = Akademik Akademik_60.txt = Akademik Akademik_65.txt = Akademik Akademik_7.txt = Akademik Akademik_74.txt = Akademik Akademik_79.txt = Akademik Akademik_83.txt = Akademik Akademik_88.txt = Akademik Akademik_92.txt = Akademik Akademik_97.txt = Akademik Keuangan_10.txt = Keuangan Keuangan_15.txt = Keuangan Keuangan_6.txt = Akademik Kepegawaian_10.txt = Kepegawaian Kepegawaian_15.txt = Kepegawaian Kepegawaian_2.txt = Kepegawaian Kepegawaian_24.txt = Akademik Kepegawaian_29.txt = Kepegawaian Kepegawaian_33.txt = Kepegawaian Kepegawaian_38.txt = Kepegawaian Kepegawaian_42.txt = Kepegawaian
Kepegawaian_47.txt = Kepegawaian Kepegawaian_51.txt = Akademik Kepegawaian_56.txt = Kepegawaian Kepegawaian_60.txt = Akademik Kepegawaian_65.txt = Kepegawaian Kepegawaian_7.txt = Kepegawaian Kepegawaian_74.txt = Kepegawaian Kepegawaian_79.txt = Kepegawaian Kepegawaian_83.txt = Kepegawaian Kemahasiswaan_10.txt = Akademik Kemahasiswaan_15.txt = Kemahasiswaan Kemahasiswaan_2.txt = Kemahasiswaan Kemahasiswaan_24.txt = Akademik Kemahasiswaan_5.txt = Kemahasiswaan Benar: 47 Salah: 9 =================||=================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 85
c. Fold 3 Jumlah data testing: 56 Jumlah data training: 222
Kepegawaian_43.txt = Kepegawaian Kepegawaian_48.txt = Kepegawaian Kepegawaian_52.txt = Kepegawaian Kepegawaian_57.txt = Kepegawaian Kepegawaian_61.txt = Kepegawaian Kepegawaian_66.txt = Kepegawaian Kepegawaian_70.txt = Lain_lain Kepegawaian_75.txt = Kepegawaian Kepegawaian_8.txt = Kepegawaian Kepegawaian_9.txt = Kepegawaian Kemahasiswaan_11.txt = Kemahasiswaan Kemahasiswaan_16.txt = Kemahasiswaan Kemahasiswaan_20.txt = Akademik Kemahasiswaan_25.txt = Akademik Kemahasiswaan_6.txt = Kemahasiswaan
=== Hasil Klasifikasi === Perlengkapan_3.txt = Akademik Lain_lain_11.txt = Lain_lain Lain_lain_16.txt = Akademik Lain_lain_20.txt = Akademik Lain_lain_25.txt = Lain_lain Lain_lain_3.txt = Lain_lain Lain_lain_34.txt = Lain_lain Lain_lain_6.txt = Lain_lain Yayasan_3.txt = Akademik Yayasan_8.txt = Akademik Administrasi_Umum_3.txt Kepegawaian Akademik_11.txt = Akademik Akademik_16.txt = Akademik Akademik_20.txt = Akademik Akademik_25.txt = Akademik Akademik_3.txt = Akademik Akademik_34.txt = Akademik Akademik_39.txt = Akademik Akademik_43.txt = Akademik Akademik_48.txt = Akademik Akademik_52.txt = Lain_lain Akademik_57.txt = Akademik Akademik_61.txt = Akademik Akademik_66.txt = Akademik Akademik_70.txt = Akademik Akademik_75.txt = Akademik Akademik_8.txt = Akademik Akademik_84.txt = Akademik Akademik_89.txt = Akademik Akademik_93.txt = Akademik Akademik_98.txt = Akademik Keuangan_11.txt = Keuangan Keuangan_2.txt = Keuangan Keuangan_7.txt = Keuangan Kepegawaian_11.txt = Kepegawaian Kepegawaian_16.txt = Kepegawaian Kepegawaian_20.txt = Kepegawaian Kepegawaian_25.txt = Kepegawaian Kepegawaian_3.txt = Kepegawaian Kepegawaian_34.txt = Kepegawaian Kepegawaian_39.txt = Kepegawaian
= Benar: 46 Salah: 10 =================||=================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 86
d. Fold 4 Jumlah data testing: 54 Jumlah data training: 224 === Hasil Klasifikasi === Perlengkapan_4.txt = Perlengkapan Lain_lain_12.txt = Lain_lain Lain_lain_17.txt = Lain_lain Lain_lain_21.txt = Lain_lain Lain_lain_26.txt = Akademik Lain_lain_30.txt = Lain_lain Lain_lain_35.txt = Lain_lain Lain_lain_7.txt = Lain_lain Yayasan_4.txt = Akademik Administrasi_Umum_4.txt = Administrasi_Umum Akademik_12.txt = Akademik Akademik_17.txt = Akademik Akademik_21.txt = Akademik Akademik_26.txt = Akademik Akademik_30.txt = Akademik Akademik_35.txt = Akademik Akademik_4.txt = Lain_lain Akademik_44.txt = Akademik Akademik_49.txt = Akademik Akademik_53.txt = Lain_lain Akademik_58.txt = Akademik Akademik_62.txt = Akademik Akademik_67.txt = Kepegawaian Akademik_71.txt = Akademik Akademik_76.txt = Akademik Akademik_80.txt = Akademik Akademik_85.txt = Akademik Akademik_9.txt = Akademik Akademik_94.txt = Akademik Akademik_99.txt = Akademik Keuangan_12.txt = Lain_lain Keuangan_3.txt = Keuangan Keuangan_8.txt = Keuangan Kepegawaian_12.txt = Kepegawaian Kepegawaian_17.txt = Kepegawaian Kepegawaian_21.txt = Kepegawaian Kepegawaian_26.txt = Kepegawaian Kepegawaian_30.txt = Kepegawaian Kepegawaian_35.txt = Kepegawaian Kepegawaian_4.txt = Kepegawaian Kepegawaian_44.txt = Kepegawaian Kepegawaian_49.txt = Kepegawaian
Kepegawaian_53.txt = Kepegawaian Kepegawaian_58.txt = Kepegawaian Kepegawaian_62.txt = Kepegawaian Kepegawaian_67.txt = Kepegawaian Kepegawaian_71.txt = Kepegawaian Kepegawaian_76.txt = Kepegawaian Kepegawaian_80.txt = Kepegawaian Kemahasiswaan_12.txt = Kemahasiswaan Kemahasiswaan_17.txt = Kemahasiswaan Kemahasiswaan_21.txt = Kemahasiswaan Kemahasiswaan_26.txt = Akademik Kemahasiswaan_7.txt = Akademik Benar: 46 Salah: 8 =================||=================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 87
e. Fold 5 Jumlah data testing: 53 Jumlah data training: 225 === Hasil Klasifikasi === Perlengkapan_5.txt = Perlengkapan Lain_lain_13.txt = Lain_lain Lain_lain_18.txt = Lain_lain Lain_lain_22.txt = Lain_lain Lain_lain_27.txt = Akademik Lain_lain_31.txt = Akademik Lain_lain_36.txt = Lain_lain Lain_lain_8.txt = Akademik Yayasan_5.txt = Yayasan Administrasi_Umum_5.txt = Administrasi_Umum Akademik_13.txt = Akademik Akademik_18.txt = Akademik Akademik_22.txt = Akademik Akademik_27.txt = Akademik Akademik_31.txt = Akademik Akademik_36.txt = Akademik Akademik_40.txt = Akademik Akademik_45.txt = Akademik Akademik_5.txt = Akademik Akademik_54.txt = Kepegawaian Akademik_59.txt = Akademik Akademik_63.txt = Akademik Akademik_68.txt = Akademik Akademik_72.txt = Akademik Akademik_77.txt = Akademik Akademik_81.txt = Akademik Akademik_86.txt = Akademik Akademik_90.txt = Akademik Akademik_95.txt = Akademik Keuangan_13.txt = Akademik Keuangan_4.txt = Keuangan Keuangan_9.txt = Kepegawaian Kepegawaian_13.txt = Kepegawaian Kepegawaian_18.txt = Kepegawaian Kepegawaian_22.txt = Kepegawaian Kepegawaian_27.txt = Kepegawaian Kepegawaian_31.txt = Kepegawaian Kepegawaian_36.txt = Kepegawaian Kepegawaian_40.txt = Kepegawaian Kepegawaian_45.txt = Kepegawaian Kepegawaian_5.txt = Kepegawaian Kepegawaian_54.txt = Kepegawaian
Kepegawaian_59.txt = Kepegawaian Kepegawaian_63.txt = Kepegawaian Kepegawaian_68.txt = Kepegawaian Kepegawaian_72.txt = Kepegawaian Kepegawaian_77.txt = Kepegawaian Kepegawaian_81.txt = Kepegawaian Kemahasiswaan_13.txt = Kemahasiswaan Kemahasiswaan_18.txt = Kemahasiswaan Kemahasiswaan_22.txt = Akademik Kemahasiswaan_3.txt = Kemahasiswaan Kemahasiswaan_8.txt = Akademik Benar: 45 Salah: 8 =================||=================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 88
2. 3-fold cross validation a. Fold 1 Jumlah data testing: 94 Jumlah data training: 184 === Hasil Klasifikasi === Perlengkapan_1.txt = Perlengkapan Perlengkapan_4.txt = Perlengkapan Lain_lain_1.txt = Akademik Lain_lain_12.txt = Akademik Lain_lain_15.txt = Lain_lain Lain_lain_18.txt = Lain_lain Lain_lain_20.txt = Lain_lain Lain_lain_23.txt = Lain_lain Lain_lain_26.txt = Akademik Lain_lain_29.txt = Lain_lain Lain_lain_31.txt = Akademik Lain_lain_34.txt = Akademik Lain_lain_4.txt = Lain_lain Lain_lain_7.txt = Lain_lain Yayasan_1.txt = Kepegawaian Yayasan_4.txt = Akademik Yayasan_7.txt = Yayasan Administrasi_Umum_1.txt = Administrasi_Umum Administrasi_Umum_4.txt = Administrasi_Umum Akademik_1.txt = Akademik Akademik_12.txt = Akademik Akademik_15.txt = Akademik Akademik_18.txt = Akademik Akademik_20.txt = Akademik Akademik_23.txt = Akademik Akademik_26.txt = Akademik Akademik_29.txt = Akademik Akademik_31.txt = Akademik Akademik_34.txt = Akademik Akademik_37.txt = Akademik Akademik_4.txt = Lain_lain Akademik_42.txt = Akademik Akademik_45.txt = Akademik Akademik_48.txt = Akademik Akademik_50.txt = Akademik Akademik_53.txt = Lain_lain Akademik_56.txt = Akademik Akademik_59.txt = Akademik Akademik_61.txt = Akademik Akademik_64.txt = Akademik
Akademik_67.txt = Kepegawaian Akademik_7.txt = Akademik Akademik_72.txt = Akademik Akademik_75.txt = Akademik Akademik_78.txt = Akademik Akademik_80.txt = Akademik Akademik_83.txt = Akademik Akademik_86.txt = Akademik Akademik_89.txt = Akademik Akademik_91.txt = Akademik Akademik_94.txt = Akademik Akademik_97.txt = Akademik Keuangan_1.txt = Keuangan Keuangan_12.txt = Lain_lain Keuangan_15.txt = Akademik Keuangan_4.txt = Akademik Keuangan_7.txt = Keuangan Kepegawaian_1.txt = Perlengkapan Kepegawaian_12.txt = Kepegawaian Kepegawaian_15.txt = Kepegawaian Kepegawaian_18.txt = Kepegawaian Kepegawaian_20.txt = Kepegawaian Kepegawaian_23.txt = Akademik Kepegawaian_26.txt = Kepegawaian Kepegawaian_29.txt = Kepegawaian Kepegawaian_31.txt = Kepegawaian Kepegawaian_34.txt = Kepegawaian Kepegawaian_37.txt = Kepegawaian Kepegawaian_4.txt = Kepegawaian Kepegawaian_42.txt = Kepegawaian Kepegawaian_45.txt = Kepegawaian Kepegawaian_48.txt = Kepegawaian Kepegawaian_50.txt = Akademik Kepegawaian_53.txt = Kepegawaian Kepegawaian_56.txt = Kepegawaian Kepegawaian_59.txt = Kepegawaian Kepegawaian_61.txt = Kepegawaian Kepegawaian_64.txt = Kepegawaian Kepegawaian_67.txt = Kepegawaian Kepegawaian_7.txt = Kepegawaian Kepegawaian_72.txt = Kepegawaian Kepegawaian_75.txt = Kepegawaian Kepegawaian_78.txt = Kepegawaian Kepegawaian_80.txt = Kepegawaian Kepegawaian_83.txt = Kepegawaian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 89
Kemahasiswaan_1.txt = Akademik Kemahasiswaan_12.txt = Akademik Kemahasiswaan_15.txt = Kemahasiswaan Kemahasiswaan_18.txt = Kemahasiswaan Kemahasiswaan_20.txt = Lain_lain Kemahasiswaan_23.txt = Akademik Kemahasiswaan_26.txt = Akademik Kemahasiswaan_5.txt = Kemahasiswaan Kemahasiswaan_8.txt = Akademik Benar: 72 Salah: 22 =================||=================
b. Fold 2 Jumlah data testing: 94 Jumlah data training: 184 === Hasil Klasifikasi === Perlengkapan_2.txt = Perlengkapan Perlengkapan_5.txt = Perlengkapan Lain_lain_10.txt = Akademik Lain_lain_13.txt = Lain_lain Lain_lain_16.txt = Kemahasiswaan Lain_lain_19.txt = Keuangan Lain_lain_21.txt = Akademik Lain_lain_24.txt = Lain_lain Lain_lain_27.txt = Akademik Lain_lain_3.txt = Akademik Lain_lain_32.txt = Lain_lain Lain_lain_35.txt = Lain_lain Lain_lain_5.txt = Lain_lain Lain_lain_8.txt = Lain_lain Yayasan_2.txt = Kepegawaian Yayasan_5.txt = Yayasan Yayasan_8.txt = Akademik Administrasi_Umum_2.txt = Administrasi_Umum Administrasi_Umum_5.txt = Administrasi_Umum Akademik_10.txt = Akademik Akademik_13.txt = Akademik Akademik_16.txt = Akademik Akademik_19.txt = Akademik Akademik_21.txt = Akademik Akademik_24.txt = Akademik Akademik_27.txt = Akademik Akademik_3.txt = Akademik
Akademik_32.txt = Akademik Akademik_35.txt = Akademik Akademik_38.txt = Akademik Akademik_40.txt = Akademik Akademik_43.txt = Akademik Akademik_46.txt = Akademik Akademik_49.txt = Akademik Akademik_51.txt = Akademik Akademik_54.txt = Kepegawaian Akademik_57.txt = Akademik Akademik_6.txt = Akademik Akademik_62.txt = Akademik Akademik_65.txt = Akademik Akademik_68.txt = Akademik Akademik_70.txt = Akademik Akademik_73.txt = Akademik Akademik_76.txt = Akademik Akademik_79.txt = Akademik Akademik_81.txt = Akademik Akademik_84.txt = Akademik Akademik_87.txt = Akademik Akademik_9.txt = Akademik Akademik_92.txt = Akademik Akademik_95.txt = Akademik Akademik_98.txt = Akademik Keuangan_10.txt = Keuangan Keuangan_13.txt = Akademik Keuangan_2.txt = Keuangan Keuangan_5.txt = Keuangan Keuangan_8.txt = Keuangan Kepegawaian_10.txt = Kepegawaian Kepegawaian_13.txt = Kepegawaian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 90
Kepegawaian_16.txt = Kepegawaian Kepegawaian_19.txt = Kepegawaian Kepegawaian_21.txt = Kepegawaian Kepegawaian_24.txt = Akademik Kepegawaian_27.txt = Kepegawaian Kepegawaian_3.txt = Kepegawaian Kepegawaian_32.txt = Kepegawaian Kepegawaian_35.txt = Kepegawaian Kepegawaian_38.txt = Kepegawaian Kepegawaian_40.txt = Kepegawaian Kepegawaian_43.txt = Kepegawaian Kepegawaian_46.txt = Kepegawaian Kepegawaian_49.txt = Kepegawaian Kepegawaian_51.txt = Akademik Kepegawaian_54.txt = Kepegawaian Kepegawaian_57.txt = Kepegawaian Kepegawaian_6.txt = Kepegawaian Kepegawaian_62.txt = Kepegawaian Kepegawaian_65.txt = Kepegawaian Kepegawaian_68.txt = Kepegawaian Kepegawaian_70.txt = Akademik Kepegawaian_73.txt = Kepegawaian Kepegawaian_76.txt = Kepegawaian Kepegawaian_79.txt = Kepegawaian Kepegawaian_81.txt = Kepegawaian Kepegawaian_9.txt = Kepegawaian Kemahasiswaan_10.txt = Akademik Kemahasiswaan_13.txt = Kemahasiswaan Kemahasiswaan_16.txt = Kemahasiswaan Kemahasiswaan_19.txt = Kemahasiswaan Kemahasiswaan_21.txt = Kemahasiswaan Kemahasiswaan_24.txt = Akademik Kemahasiswaan_3.txt = Kemahasiswaan Kemahasiswaan_6.txt = Kemahasiswaan Kemahasiswaan_9.txt = Kemahasiswaan Benar: 79 Salah: 15 =================||=================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 91
c. Fold 3 Jumlah data testing: 90 Jumlah data training: 188 === Hasil Klasifikasi === Perlengkapan_3.txt = Akademik Perlengkapan_6.txt = Akademik Lain_lain_11.txt = Lain_lain Lain_lain_14.txt = Lain_lain Lain_lain_17.txt = Lain_lain Lain_lain_2.txt = Akademik Lain_lain_22.txt = Lain_lain Lain_lain_25.txt = Lain_lain Lain_lain_28.txt = Lain_lain Lain_lain_30.txt = Lain_lain Lain_lain_33.txt = Akademik Lain_lain_36.txt = Lain_lain Lain_lain_6.txt = Lain_lain Lain_lain_9.txt = Akademik Yayasan_3.txt = Akademik Yayasan_6.txt = Akademik Administrasi_Umum_3.txt Kepegawaian Akademik_11.txt = Akademik Akademik_14.txt = Akademik Akademik_17.txt = Akademik Akademik_2.txt = Akademik Akademik_22.txt = Akademik Akademik_25.txt = Akademik Akademik_28.txt = Akademik Akademik_30.txt = Akademik Akademik_33.txt = Akademik Akademik_36.txt = Akademik Akademik_39.txt = Akademik Akademik_41.txt = Akademik Akademik_44.txt = Akademik Akademik_47.txt = Akademik Akademik_5.txt = Akademik Akademik_52.txt = Lain_lain Akademik_55.txt = Akademik Akademik_58.txt = Akademik Akademik_60.txt = Akademik Akademik_63.txt = Akademik Akademik_66.txt = Akademik Akademik_69.txt = Akademik Akademik_71.txt = Akademik Akademik_74.txt = Akademik
=
Akademik_77.txt = Akademik Akademik_8.txt = Akademik Akademik_82.txt = Akademik Akademik_85.txt = Akademik Akademik_88.txt = Akademik Akademik_90.txt = Akademik Akademik_93.txt = Akademik Akademik_96.txt = Akademik Akademik_99.txt = Akademik Keuangan_11.txt = Keuangan Keuangan_14.txt = Akademik Keuangan_3.txt = Akademik Keuangan_6.txt = Akademik Keuangan_9.txt = Kepegawaian Kepegawaian_11.txt = Kepegawaian Kepegawaian_14.txt = Kepegawaian Kepegawaian_17.txt = Kepegawaian Kepegawaian_2.txt = Kepegawaian Kepegawaian_22.txt = Kepegawaian Kepegawaian_25.txt = Kepegawaian Kepegawaian_28.txt = Kepegawaian Kepegawaian_30.txt = Kepegawaian Kepegawaian_33.txt = Kepegawaian Kepegawaian_36.txt = Kepegawaian Kepegawaian_39.txt = Kepegawaian Kepegawaian_41.txt = Kepegawaian Kepegawaian_44.txt = Kepegawaian Kepegawaian_47.txt = Kepegawaian Kepegawaian_5.txt = Kepegawaian Kepegawaian_52.txt = Akademik Kepegawaian_55.txt = Kepegawaian Kepegawaian_58.txt = Kepegawaian Kepegawaian_60.txt = Akademik Kepegawaian_63.txt = Kepegawaian Kepegawaian_66.txt = Kepegawaian Kepegawaian_69.txt = Kepegawaian Kepegawaian_71.txt = Kepegawaian Kepegawaian_74.txt = Kepegawaian Kepegawaian_77.txt = Kepegawaian Kepegawaian_8.txt = Kepegawaian Kepegawaian_82.txt = Kepegawaian Kemahasiswaan_11.txt = Kemahasiswaan Kemahasiswaan_14.txt = Akademik Kemahasiswaan_17.txt = Kemahasiswaan Kemahasiswaan_2.txt = Kemahasiswaan Kemahasiswaan_22.txt = Akademik Kemahasiswaan_25.txt = Akademik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 92
Kemahasiswaan_4.txt = Kemahasiswaan Kemahasiswaan_7.txt = Akademik Benar: 71 Salah: 19 =================||=================