Sistem klasifikasi surat masuk menggunakan multinomial naive bayes.

(1)

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


(2)

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


(3)

(4)

(5)

(6)

(7)

vii

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.


(8)

viii

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.


(9)

ix

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.


(10)

x

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


(11)

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


(12)

xii

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


(13)

Tabel 2.21 Hasil perkalian nilai conditional probabilities dengan term frequency-nya. .. 37 Tabel 3.1 Deskripsi Use Case. ... 42


(14)

xiv

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


(15)

(16)

1

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


(17)

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).


(18)

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.


(19)

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.


(20)

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.


(21)

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


(22)

7

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.

Pada Gambar 2.1, kotak persegi mewakili data dan kotak yang melingkar mewakili proses.

Information need Documents

Query Indexed documents

Retrieved documents

Query formulation Indexing

Matching

Feedback


(23)

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.


(24)

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:

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, E-mail, 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.


(25)

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


(26)

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.


(27)

Tabel 2.1 Aturan 1. Aturan untuk inflectional particles. Akhiran Replacement Measure

Condition

Additional 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

Condition

Additional Condition

Contoh

-ku NULL 2 NULL bukuku  buku

-mu NULL 2 NULL bukumu  buku

-nya NULL 2 NULL bukunya  buku

fail a rule is fired

a rule is fired fail

Word

Remove Particle

Remove Possessive

Remove 1st Order Prefix

Remove 2nd Order Prefix Remove Suffix

Remove Suffix Remove 2nd Order Prefix

Stem


(28)

Tabel 2.3 Aturan 3. Aturan untuk first order of derivational prefixes. Awalan Replacement Measure

Condition

Additional 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

Condition

Additional 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


(29)

Tabel 2.5 Aturan 5. Aturan untuk derivational suffixes. Akhiran Replacement Measure

Condition

Additional Condition Contoh

-kan NULL 2 awalan ∉ {ke, peng} tarikkan  tarik ambilkan  ambil -an NULL 2 awalan ∉ {di, meng, ter} makanan  makan

(per)janjian  janji -i NULL 2 V|K…�11, �1 ≠ �, �2 ≠ �,

dan awalan ∉ {ber, ke, peng}

tandai  tanda (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 aspek-aspek 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


(30)

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


(31)

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


(32)

〈Beijing, Taipei, join, WTO〉, dengan � = 4, jika termand 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 termt 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):


(33)

(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 )

B’ = jumlah keseluruhan term unik dari seluruh kelas.

1.6.

Evaluasi Sistem Pemerolehan Informasi (menggunakan

K-fold 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 cross-validation adalah k-fold cross-validation. Dalam k-fold cross-validation, pertama-tama 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.


(34)

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.

��������� (�) = ������������������������������


(35)

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.


(36)

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

�����2 surat lamaran kerja

�����3 surat kuasa

�����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).


(37)

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.


(38)

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 : Goesoe20@yahoo.com 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 : Florentina Putri

Tempat & Tanggal Lahir : Probolinggo, 5 Agustus 1979

Pendidikan Akhir : Sarjana Akuntansi Universitas Pancasila - Jakarta Alamat : Perum Bojong Depok Baru 1, Blok ZT No. 3, Cibinong 16913

Telepon / HP / E-mail : 021-87903802 / 08179854203 / putri.flo@gmail.com


(39)

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. Daftar riwayat hidup. 2. Fotocopy ijazah S-1.

3. Fotocopy setifikat kursus / pelatihan. 4. 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


(40)

Demikianlah Surat Kuasa ini saya buat untuk dipergunakan sebagaimana mestinya.

Tanggal, 26 Oktober 2010

Yang Diberi Kuasa Yang Memberikan


(41)

a. Tokenization:

Tabel 2.8 Contoh hasil tokenization.

terms

Surat pengunduran diri

Surat lamaran kerja Surat kuasa

Surabaya Cibinong Alamat

Melalui Alamat bertanda

Kepada staf tangan

Yth Lamaran Untuk

bekerja Pekerjaan sebagaimana

Manager Blok kuasa

surat Terima Puri

Mitra Manajer Surat

Sejati diberi KTP

terima saya Indah

b. Normalization:

Tabel 2.9 Contoh hasil penghilangan stop word pada Tabel 2.8. terms

Surat pengunduran diri

Surat lamaran kerja Surat kuasa

surabaya cibinong alamat

melalui alamat bertanda

kepada staf tangan

yth lamaran untuk

bekerja pekerjaan sebagaimana

manajer blok kuasa

surat terima puri

mitra manajer surat

sejati diberi ktp


(42)

Tabel 2.10 Contoh hasil proses normalisasi terhadap Tabel 2.9. terms

Surat pengunduran diri

Surat lamaran kerja Surat kuasa

surabaya cibinong alamat

yth alamat bertanda

bekerja staf tangan

manajer lamaran indah

surat pekerjaan ktp

mitra blok kuasa

sejati terima puri

terima manajer surat

d. Stemming:

Tabel 2.11 Contoh hasil stemming dari Tabel 2.10. terms

Surat pengunduran diri

Surat lamaran kerja Surat kuasa

surabaya cibinong alamat

yth alamat tanda

kerja staf tangan

manajer lamar indah

surat kerja ktp

mitra blok kuasa

jati ima puri


(43)

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

��� (term frequency) Surat

pengunduran diri

Surat lamaran kerja

Surat kuasa

surabaya 1 0 0

yth 1 0 0

kerja 1 0 0

manajer 1 0 0

surat 1 0 0

mitra 1 0 0

jati 1 0 0

ima 1 0 0

cibinong 0 1 0

alamat 0 1 0

staf 0 1 0

lamar 0 1 0

kerja 0 1 0

blok 0 1 0

ima 0 1 0

manajer 0 1 0

alamat 0 0 1

tanda 0 0 1

tangan 0 0 1

indah 0 0 1

ktp 0 0 1

kuasa 0 0 1

puri 0 0 1


(44)

Tabel 2.13 Hasil sorting secara ascending.

terms

��� (term frequency) Surat

pengunduran diri

Surat lamaran kerja

Surat kuasa

alamat 0 1 0

alamat 0 0 1

blok 0 1 0

cibinong 0 1 0

indah 0 0 1

kerja 1 0 0

kerja 0 1 0

ktp 0 0 1

kuasa 0 0 1

lamar 0 1 0

manajer 1 0 0

manajer 0 1 0

mitra 1 0 0

puri 0 0 1

jati 1 0 0

staf 0 1 0

surabaya 1 0 0

surat 1 0 0

surat 0 0 1

tanda 0 0 1

tangan 0 0 1

ima 1 0 0

ima 0 1 0


(45)

satu.

Tabel 2.14 Hasil grouping berdasarkan term yang sama.

terms

��� (term frequency) Surat

pengunduran diri

Surat lamaran kerja

Surat kuasa

alamat 0 1 1

blok 0 1 0

cibinong 0 1 0

indah 0 0 1

kerja 1 1 0

ktp 0 0 1

kuasa 0 0 1

lamar 0 1 0

manajer 1 1 0

mitra 1 0 0

puri 0 0 1

jati 1 0 0

staf 0 1 0

surabaya 1 0 0

surat 1 0 1

tanda 0 0 1

tangan 0 0 1

ima 1 1 0


(46)

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.

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 Surat pengunduran

diri

Surat lamaran kerja

Surat kuasa

alamat 0 / 68 1 / 122 2 / 65

blok 0 / 68 1 / 122 2 / 65

cibinong 0 / 68 3 / 122 0 / 65

ima 1 / 68 1 / 122 0 / 65

indah 0 / 68 0 / 122 1 / 65

jati 6 / 68 0 / 122 0 / 65

kerja 0 / 68 4 / 122 0 / 65

ktp 0 / 68 0 / 122 2 / 65

kuasa 0 / 68 0 / 122 4 / 65

atribut kelas P(class)

surat pengunduran diri 1/3

surat lamaran kerja 1/3


(47)

mitra 6 / 68 0 / 122 0 / 65

puri 0 / 68 0 / 122 1 / 65

staf 0 / 68 1 / 122 0 / 65

surabaya 2 / 68 0 / 122 0 / 65

surat 1 / 68 0 / 122 1 / 65

tanda 0 / 68 0 / 122 1 / 65

tangan 0 / 68 0 / 122 1 / 65

yth 1 / 68 1 / 122 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 dalamTabel 2.16.

Tabel 2.17 Model. terms Surat pengunduran

diri

Surat lamaran kerja

Surat kuasa

alamat 0.003096 0.005305 0.009375

blok 0.003096 0.005305 0.009375

cibinong 0.003096 0.01061 0.003125

ima 0.006192 0.005305 0.003125

indah 0.003096 0.002653 0.00625

jati 0.021672 0.002653 0.003125

kerja 0.003096 0.013263 0.003125

ktp 0.003096 0.002653 0.009375

kuasa 0.003096 0.002653 0.015625

lamar 0.003096 0.007958 0.003125


(48)

staf 0.003096 0.005305 0.003125

surabaya 0.009288 0.002653 0.003125

surat 0.006192 0.002653 0.00625

tanda 0.003096 0.002653 0.00625

tangan 0.003096 0.002653 0.00625


(49)

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 : Anton Herlambang

Umur : 32

No. KTP / SIM : 872.308.61.90.83

Alamat : Puri Cendrawasih Blok Cb No. 33 Pekerjaan : 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.


(50)

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 tfi (term frequency)

surat4

akademik 1

akta 2

alamat 2

anton 1

asas 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 tf

alamat 2

blok 2

herlambang 1

indah 1

kerja 2

ktp 2

kuasa 8


(51)

Hasil matching tersebut kemudian digabungkan dengan nilai conditional probabilities -nya.

Tabel 2.20 Hasil matching beserta dengan nilai conditional probabilities-nya.

Terms

tf (term frequency)

surat pengunduran

diri

surat lamaran

kerja

surat kuasa

surat1 surat2 surat3

alamat 2 0.003096 0.005305 0.009375

blok 2 0.003096 0.005305 0.009375

herlambang 1 0.003096 0.002653 0.00625

indah 1 0.003096 0.002653 0.00625

kerja 2 0.003096 0.013263 0.003125

ktp 2 0.003096 0.002653 0.009375

kuasa 8 0.003096 0.002653 0.015625

manajer 1 0.006192 0.005305 0.003125

nama 2 0.003096 0.005305 0.009375

nomor 4 0.006192 0.007958 0.01875

puri 1 0.003096 0.002653 0.00625

staf 1 0.003096 0.005305 0.003125

surat 1 0.006192 0.002653 0.00625

tanda 1 0.003096 0.002653 0.00625

tangan 1 0.003096 0.002653 0.00625

puri 1

staf 1

surat 1

tanda 1


(52)

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.

Terms

surat pengunduran

diri

surat lamaran

kerja

surat kuasa

surat1 surat2 surat3

alamat 9.58522E-06 2.8143E-05 8.78906E-05

blok 9.58522E-06 2.8143E-05 8.78906E-05

herlambang 0.003096 0.002653 0.00625

indah 0.003096 0.002653 0.00625

kerja 9.58522E-06 0.00017591 9.76563E-06

ktp 9.58522E-06 7.0384E-06 8.78906E-05

kuasa 8.44127E-21 2.4541E-21 3.55271E-15

manager 0.006192 0.005305 0.003125

nama 9.58522E-06 2.8143E-05 8.78906E-05

no 1.47002E-09 4.0107E-09 1.23596E-07

puri 0.003096 0.002653 0.00625

staf 0.003096 0.005305 0.003125

surat 0.006192 0.002653 0.00625

tanda 0.003096 0.002653 0.00625

tangan 0.003096 0.002653 0.00625


(53)

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 suratkuasa memiliki nilai yang paling tinggi, yaitu 4.96422E-62. Sehingga �����

4

masuk ke dalam kelas suratkuasa.

1.8.3.

Hitung Precision

Jumlah data testing : 1 Jumlah klasifikasi yang tepat : 1

� =1 1= 1


(54)

39

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.


(55)

Gambar 3.1 Diagram Blok untuk proses klasifikasi. index Indexing Data testing Tokenizing Stop word removal Normalization Matching Pangkatkan Nilai Conditional Probabilities Hitung Probabilitas Tiap Kelas Testing index Data training Tokenizing Stopword removal Normalization Tentukan kategori Indexing Hitung Prior Probabilities Hitung Conditional Probabilities Laplace Smoothing Model Training Modeling Classification Stemming Sorting & Grouping Stemming Sorting & Grouping Hasil Klasifikasi


(56)

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.


(57)

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.

Tabel 3.1 Deskripsi Use Case.

No

Use Case

Deskripsi

1. Mengklasifikasikan surat

Sistem mengklasifikasikan surat ke dalam 8 kategori dengan algoritma Multinomial Niave Bayes menggunakan model yang telah dibangun melalui proses training.

2. Mencari surat Sistem melakukan pencarian surat menggunakan library Apache Lucene terhadap surat – surat yang telah diklasifikasi.

3. Menampilkan surat Sistem menampilkan file surat hasil pencarian menggunakan aplikasi pdf reader.

Sekretariat / Pejabat fakultas

<<extend>>

Mengklasifikasikan surat

Mencari surat

Menampilkan surat


(58)

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


(59)

3.4.2.

Diagram Dekomposisi

3.4.3.

Diagram Arus Data (DAD)

3.4.3.1. Diagram Konteks

Gambar 3.3 Diagram Dekomposisi.

Gambar 3.4 Diagram Konteks.

hasil pencarian, info hasil klasifikasi kata kunci pencarian, file surat

User

Sistem Klasifikasi Surat Masuk Fakultas Sains

dan Teknologi Sistem Klasifikasi Surat

Masuk Fakultas Sains dan Teknologi

2

Cari Surat

1

Simpan Surat

1.1

Ambil Surat

1.2

Simpan

1.3

Reset

2.1

Cari

2.2


(60)

3.4.3.2. Level 1

hasil indexing index file surat file surat

hasil pencarian

1 Mengklasifikasi

kan surat

2 Mencari surat menggunakan

Apache Lucene User

file surat

Koleksi Surat

stoplist

model file surat

Model Stopword

Data Training

Lucene_index

Keywords, file surat


(61)

3.4.3.3. Level 2 Proses 1

3.4.3.4. Level 2 Proses 2

file surat model stopwords file surat

file surat

User

1.1

Training

1.2

Testing

Model

Data training Stopwords

Koleksi Surat

file surat Hasil pencarian,

file surat

index hasil indexing file surat

Keywords

User

2.1

Indexing

2.2

Searching

Lucene_index

Koleksi Surat Gambar 3.6 Diagram Arus Data Level 2 Proses 1.


(62)

3.4.3.5. Level 3 Proses 1.1

Conditional probabilities file surat

Prior probabilities

kumpulan token yang terurut & dikelompokan kumpulan token

dalam bentuk kata dasar kumpulan token ternormalisasi kumpulan token tanpa stopword kumpulan token stoplist file surat 1.1.1 Tokenizing 1.1.2 Normalization 1.1.3 Stopwords removal 1.1.4 Stemming 1.1.5 Sorting & Grouping 1.1.7 Laplace smoothing Model Stopword Data training 1.1.6 Hitung nilai conditional probabillities 1.1.8 Hitung prior probabilities


(63)

3.4.3.6. Level 3 Proses 1.2

file surat

Conditional probabilities Prior probabilities

kumpulan token yang terurut & dikelompokan

kumpulan token dalam bentuk kata dasar kumpulan token ternormalisasi kumpulan token tanpa stopword kumpulan token stoplist file surat 1.1.1 Tokenizing 1.1.2 Normalization 1.1.3 Stopwords removal 1.1.4 Stemming 1.1.5 Sorting & Grouping Model Stopword 1.1.6 Hitung probabilitas file surat

User Koleksi

Surat


(64)

3.4.3.7. Level 3 Proses 2.1

index

kumpulan token dalam bentuk kata dasar

kumpulan token ternormalisasi

kumpulan token tanpa stopword kumpulan token file surat

2.1.1

Tokenizing

2.1.2

Normalization

2.1.3

Stopwords removal

2.1.4

Stemming 2.1.5

Scoring

User

Lucene_index


(65)

3.4.3.8. Level 3 Proses 2.2

file surat yang sesuai dengan keywordsuser Hasil pencarian file surat

Koleksi Surat

index kumpulan token

dalam bentuk kata dasar

kumpulan token ternormalisasi

kumpulan token tanpa stopword kumpulan token keywords

2.2.1

Tokenizing

2.2.2

Normalization

2.2.3

Stopwords removal

2.2.4

Stemming

2.2.6

Scoring

User

Lucene_index 2.2.5

Matching


(66)

3.5.

Desain Fisikal

3.5.1.

Desain Antarmuka

3.5.1.1. Menu Utama / Menu Pencarian Surat

SISTEM MANAJEMEN SURAT

Pencarian Surat

Simpan Surat

Cari Reset

Filter pencarian berdasarkan

Tabel hasil


(67)

3.5.1.2. Menu Simpan Surat

SISTEM MANAJEMEN SURAT

Pencarian Surat

Simpan Surat

Ambil Surat Simpan

Tabel daftar surat yang akan

Reset Kategorikan Surat


(68)

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.1Preprocessing 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.2Preprocessing 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 }


(69)

3.5.2.3Hitung 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.4Hitung 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.5Training

execute: preprocessing method

execute: prior probabilities method

execute: conditional probabilities method

3.5.2.6Matching

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 }


(70)

3.5.2.7Testing

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


(71)

56

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);


(72)

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(); } }


(1)

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


(2)

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


(3)

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


(4)

92

Kemahasiswaan_4.txt = Kemahasiswaan Kemahasiswaan_7.txt = Akademik

Benar: 71 Salah: 19


(5)

viii

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.


(6)

ix

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.