IV KAJIAN IMPLEMENTASI Bab ini tidak menjelaskan implementasi sebagai proses konstruksi atau pengembangan aplikasi melalui pengkodean, tetapi menguraikan cara untuk mengembangkan aplikasi document classification mencakup tools yang dapat digunakan untuk mengkonstruksi aplikasi ini. Tools yang dimaksud adalah library-library yang bersifat open-source, yang berkaitan dengan aplikasi pengelompokkan dokumen. Aplikasi pengelompokkan dokumen merupakan bagian dari bidang penelitian tentang text mining. Text mining menggunakan teknik-teknik information retrieval, data mining, machine learning, dan knowledge management. Untuk mengembangkan aplikasi document classification, fungsi-fungsi dalam proses parsing dokumen, pra-pengolahan dokumen (tokenizing, stop word removal, stemming, weighting), clustering dan klasifikasi dokumen dapat diimplimentasikan menggunakan class-class dan method-method yang telah disediakan oleh open-source library dari bidang-bidang penelitian yang disebut diatas. IV.1 Open-Source Library Untuk Aplikasi Document Classification Library yang akan digunakan untuk mengembangkan aplikasi document classification disesuaikan dengan kebutuhan proses pengelompokkan dokumen adalah library untuk mengekstrak dokumen ke dalam bentuk tekstual dan library untuk melakukan pra-pengolahan dokumen dan pengelompokkan dokumen. Berikut ini adalah beberapa library dalam bahasa Java yang dapat digunakan untuk mengembangkan aplikasi document classification: Untuk mengekstrak dokumen ke dalam bentuk tekstual, beberapa library open source yang dapat digunakan antara lain adalah JTidy dan NekoHTML untuk dokumen HTML, PDFBox untuk dokumen PDF, dan POI dan TextMining untuk dokumen Word. Untuk melakukan pra-pengolahan dokumen dapat menggunakan library Lucene, dan pengelompokkan dokumen dapat menggunakan library WEKA. Library yang disebutkan diatas adalah library-library yang ditulis dalam bahasa Java. IV-1 1. JTidy. JTidy adalah open-source library yang ditulis oleh Andy Quick, untuk melakukan parsing dokumen HTML. Library JTidy dapat diperoleh pada http://jtidy.sourceforge.net/. 2. NekoHTML. NekoHTML adalah open-source library yang ditulis oleh Andy Clark, untuk melakukan parsing dokumen HTML. LIbrary HTML dapat diperoleh pada http://www.apache.org/~andyc/neko/doc/index.html. 3. PDFBox. PDFBox adalah open-source library yang ditulis oleh Ben Litchfield, untuk melakukan parsing dokumen PDF. Library PDFBox dapat diperoleh pada http://www.pdfbox.org/. 4. POI. POI merupakan bagian dari Jakarta Project yang dikembangkan dengan tujuan untuk menyediakan Java API untuk memanipulasi beragam format file berdasarkan format Microsoft OLE 2 Compound Document. POI dapat digunakan untuk mengekstrak dokumen MS.Word, MS. Excel, dan dokumen lain yang memiliki format OLE 2 Compound Document. Library POI dapat diperoleh pada http://jakarta.apache.org/poi. 5. TextMining. TextMining adalah open-source library yang ditulis oleh Ryan Ackley, untuk melakukan parsing dokumen MS.Word. Library TextMining dapat diperoleh pada http://textmining.org/. 6. WEKA (Waikato Environment for Knowledge Analysis). WEKA adalah open-source system untuk aplikasi data mining yang dibangun oleh University of Waikato New Zealand. WEKA berisi tools untuk menangani proses yang berkaitan dengan data mining seperti regression, classification, clustering, association rule mining, dan attribute selection [18]. Keterangan lengkap tentang WEKA dapat dibaca pada [18] dan pada situs WEKA: http://www.cs.waikato.ac.nz/ml/weka/. 7. Lucene. Lucene adalah open-source library untuk aplikasi information retrieval, ditulis oleh Doug Cutting dan terlisensi dibawah Apache Software Foundation. Lucene menyediakan fungsi-fungsi untuk indexing dan searching. Keterangan lengkap tentang Lucene dapat dibaca pada [19], dan library Lucene dapat diperoleh http://www.lucene.apache.org/java/docs/index.html. IV-2 pada situs IV.2 Class Untuk Implementasi Aplikasi Document Classification Arsitektur implementasi kelas-kelas potensial yang didefinisikan dari diagram use case pada aplikasi document classification menggunakan open-source library, yang disebutkan pada bagian IV.2, dijelaskan pada gambar IV.1. Tabel IV.1 memberikan penjelasan lebih detil tentang class-class yang dapat digunakan dari setiap open-source library yang disebutkan diatas. Gambar IV.1. Arsitektur Implementasi Kelas Pada gambar IV.1, ekstraksi teks menggunakan library JTidy untuk dokumen HTML, PDFBox untuk dokumen PDF, dan TextMining untuk dokumen Word. Untuk proses pra-pengolahan dokumen menggunakan beberapa class dari library Lucene, dan untuk proses pengelompokkan dokumen dapat menggunakan beberapa class dari library Weka. IV-3 Tabel IV.1. Class Yang Dapat Digunakan Untuk Implementasi Aplikasi Document Classification Kelas Pada Aplikasi Document Classification Package LoadDocument Class Dari Open Source Library Library Kelas LoadDocument Nama Class Lucene Deskripsi Class FileIndexer.java Kelas FileIndexer berfungsi untuk mengindeks FileHandler.java direktori yang menyimpan dokumen. Untuk membaca dokumen digunakan method getDocument dari FileHandler. DocParser HTMLParser JTidy JTidyHTMLHandler.java Lucene PDFParser PDFBox dokumen HTML ke dalam format teks PDFBoxPDFHandler.java Lucene WordParser FeatureExtractor Tokenizer Kelas pada library Lucene untuk mengekstrak Kelas pada library Lucene untuk mengekstrak dokumen PDF ke dalam format teks TextMining TextMiningWordDocHandl Kelas pada library Lucene untuk mengekstrak Lucene er.java dokumen Word ke dalam format teks Lucene WhitespaceAnalyzer.java Kelas pada library Lucene untuk membagi dokumen menjadi token-token kata Stopwords Lucene StopAnalyzer.java Kelas pada library Lucene untuk melakukan lowercasing dan menghilangkan stop words PorterStemmer Lucene PorterStemFilter.java Kelas pada library Lucene untuk melakukan PorterStemmer.java stemming dengan algoritma Porter IV-4 Kelas Pada Aplikasi Document Classification Package Weighting Class Dari Open Source Library Library Kelas CountTF Nama Class Lucene Explainer.java Deskripsi Class Kelas untuk menghitung tf dari term tertentu, menghitung idf, dan ID dokumen yang mengandung term yang dihitung. CountTFIDF Lucene Explainer.java Kelas untuk menghitung tf dari term tertentu, menghitung idf, dan ID dokumen yang mengandung term yang dihitung. DocumentClassifier DocClusterer Weka SimpleKMeans.java Kelas untuk meng-cluster dokumen dengan algoritma k-means DocClassifier ClassifierEstimator StructureClassifier StructureClassifier Weka Classifier.java Kelas Classifier pada library WEKA berfungsi Lucene Similarity.java untuk membangun classifier Weka Evaluation.java Kelas untuk mengevaluasi model yang dihasilkan EvaluationUtils.java dari fase learning pada algoritma klasifikasi BayesNet.java Kelas untuk mengklasifikasi objek dengan Weka algoritma Bayes Network. Kelas ini dapat digunakan untuk mengklasifikasi struktur dokumen IV-5 IV.3 Rencana Implementasi Rencana implementasi menjelaskan lingkungan implementasi aplikasi dan apa yang perlu dilakukan untuk mengembangkan atau mengimplementasi aplikasi document classification menggunakan model pengelompokkan dokumen yang dirancang pada tesis ini. IV.3.1 Lingkungan Implementasi Model pengelompokkan dokumen untuk aplikasi document classification yang dirancang dapat diimplementasi pada lingkungan perangkat lunak sebagai berikut: 1. Sistem Operasi Windows XP 2. Platform pengembangan Java, yaitu Java Development Kit versi 1.5 3. IDE NetBeans 6.0 4. MySQL sebagai Database Management System dengan menggunakan MySQL Connector/J untuk menghubungkan MySQL dengan aplikasi Java melalui JDBC driver. Lingkungan perangkat keras yang dapat digunakan untuk mengimplementasi model pengelompokkan dokumen adalah: 1. Processor Intel Pentium 4 1.70 GHz 2. RAM 1 GB IV.3.2 Implementasi Aplikasi Hal-hal yang perlu dilakukan untuk mengembangkan atau mengimplementasi aplikasi document classification menggunakan model pengelompokkan dokumen yang dirancang adalah sebagai berikut: 1. Melakukan kajian tentang library yang akan digunakan, khususnya library Lucene dan WEKA. 2. Membangun aplikasi document classification menggunakan class-class yang dijabarkan pada bagian IV.2. 3. Membangun antarmuka untuk aplikasi document classification. IV-6 4. Membangun basis data pengelompokkan dokumen. Pada bagian IV.2 telah dijabarkan class-class dari open-source library yang dapat digunakan untuk mengembangkan aplikasi document classification. Namun, ada beberapa fungsi-fungsi yang berkaitan dengan proses pengelompokkan dokumen dan struktur dokumen yang tidak tersedia pada library yang disebutkan diatas. Sehingga, perlu melakukan penambahan fungsi atau method yang disesuaikan dengan kebutuhan proses pada aplikasi document classification. 1. Pembobotan term. Kelas Explainer melakukan penghitungan tf dan idf dari term yang berasal dari query, dan menampilkan hasil penghitungan tf, idf, dan ID dokumen yang mengandung term yang dihitung. Method tambahan yang diperlukan: a. Method untuk membaca term yang disimpan pada tabel Term. b. Method untuk menyimpan term yang dibobotkan, hasil pembobotan term (tf) dan ID dokumen yang mengandung term yang dihitung, pada tabel TermWeight[A]...[Z]. 2. Clustering dokumen. Fungsi yang perlu ditambahkan berkaitan dengan proses clustering dokumen adalah method untuk menyimpan hasil clustering (ID dokumen dan nama cluster) ke dalam tabel DocCluster. 3. Klasifikasi dokumen. Kelas Similarity pada library Lucene merupakan kelas untuk mengukur kesamaan antara keyword pada query dengan dokumen. Untuk aplikasi document classification dengan menggunakan algoritma Centroid-based, kesamaan dihitung antara dokumen dengan centroid; sehingga, perlu dilakukan penambahan fungsi-fungsi sebagai berikut: a. Method untuk membaca data dokumen (ID dokumen dan nama cluster) dari tabel DocCluster. b. Method untuk membangun classifier yaitu untuk menghitung vektor centroid yang akan menjadi kelas-kelas klasifikasi. c. Method untuk mengukur kesamaan antara dokumen dengan vektor centroid. Proses mengukur kesamaan antara dokumen dengan centroid adalah proses yang iteratif. IV-7 d. Method untuk mengelompokkan dokumen ke dalam centroid yang paling sama atau memiliki nilai similarity yang paling tinggi. e. Method untuk menyimpan hasil pengelompokkan dokumen (ID dokumen dan nama class) ke dalam tabel DocClass. 4. Pengelompokkan elemen dokumen. Untuk mengelompokkan elemen dokumen, data tentang elemen-elemen dokumen seperti Title dan Author dapat diperoleh dari meta-data atau property dokumen. Tetapi, tidak semua dokumen memiliki meta-data yang lengkap. Pada dokumen dengan meta-data yang tidak lengkap, elemen dokumen dapat dibaca dari struktur logik pada konten/ isi dokumen. Untuk membaca struktur dari konten dokumen perlu dikembangkan sebuah pola atau algoritma yang dapat mengenali elemen dokumen sebagai struktur logik dokumen tersebut. IV-8