BAB IV ANALISIS, PERANCANGAN, DAN IMPLEMENTASI PERANGKAT LUNAK Pada bab ini akan dibahas berbagai hal yang terkait analisis dan perancangan perangkat lunak web mining yang diusulkan sebagai solusi permasalahan. Bahasan mencakup analisis metodologi pengembangan yang akan digunakan, analisis perangkat lunak, serta perancangan perangkat lunak.
IV.1 Analisis Metodologi Pengembangan Dikarenakan besarnya kemungkinan prototipe aplikasi ini akan disempurnakan dan dikembangkan di kemudian akhir untuk keperluan akademik, maka metodologi yang digunakan harus mendukung pengembangan yang berbasis objek. Hal ini penting mengingat pengembangan yang berbasis objek bersifat moduler sehingga akan memudahkan proses enhancement di kemudian hari. Oleh karena itu, metodologi yang akan digunakan adalah metodologi Rational Unified Process (RUP) yang mendukung pengembangan berbasis objek dengan pemodelan UML. Seluruh bab ini akan berisi dokumentasi analisis berorientasi object-oriented dengan menggunakan metodologi RUP terhadap perangkat lunak yang dikembangkan. Analisis meliputi pendefinisian deskripsi fungsional dan non-fungsional, pendefinisian diagram use case, pendefinisian skenario untuk setiap use case, pendefinisian class diagram, serta pendefinisian sequence diagram.
IV-1
IV-2
IV.2 Analisis Perangkat Lunak IV.2.1 Deskripsi Umum
Perangkat lunak web mining yang dikembangkan mencakup preprocessing data dan pemrosesan hasil preprocessing serta visualisasinya. Oleh karena itu, prototipe perangkat lunak yang dikembangkan harus mencakup kedua fungsi utama tersebut. Prototipe perangkat lunak akan menerima masukan berupa data content email seperti yang telah dijelaskan pada bagian III.3.2, melakukan preprocessing terhadap data mentah tersebut, menerapkan teknik BN terhadap data siap pakai hasil preprocessing serta melakukan visualisasi hasil pemrosesan tersebut. Seperti telah dijelaskan pada bagian III.3.3, pada Tugas Akhir ini, pemrosesan data dan visualisasinya akan ditangani oleh modul perangkat lunak yang telah dihasilkan dalam tugas akhir sebelumnya. Sementara untuk bagian preprocessing akan ditangani oleh sebuah modul tambahan yang akan dikembangkan untuk keperluan ini.
IV.2.2 Fitur Utama Perangkat Lunak
Pada bagian ini akan dideskripsikan seluruh fitur utama yang dibutuhkan perangkat lunak yang dikembangkan dalam bentuk deskripsi fungsional dan deskripsi non-fungsional.
IV.2.2.1 Deskripsi fungsional
Berikut akan didefinisikan seluruh daftar kebutuhan fungsional pada perangkat lunak yang dikembangkan.
IV-3
Tabel 6. Daftar kebutuhan fungsional Kode Case BN-F-01
Use
Nama Kebutuhan Read E-mail
BN-F-02
Filter Term
BN-F-03
Write DBFile
BN-F-04
Write ARFFFile
BN-F-05
Write TXTFile
BN-F-06 BN-F-07
Process DBFile Build BN Structure
Deskripsi Membaca content e-mail dari seluruh dokumen e-mail yang diberikan Menyaring kata-kata pada content e-mail yang dianggap stopwords. Menuliskan output preprocessing ke dalam sebuah file basis data dengan format Microsoft Access Menuliskan output preprocessing ke dalam sebuah file teks dengan format ARFF Menuliskan output preprocessing ke dalam sebuah file teks dengan format .txt Memroses file database yang telah dihasilkan Membangun struktur BN berdasarkan hasil pemrosesan file database yang diberikan
IV.2.2.2 Deskripsi non-fungsional
Berikut akan didefinisikan seluruh daftar kebutuhan non-fungsional pada perangkat lunak yang dikembangkan.
Tabel 7. Daftar kebutuhan fungsional No BN-N-01 BN-N-02
Nama Kebutuhan User Friendly Activity Logging
Deskripsi Menyediakan interface yang user-friendly Mencatat aktivitas sistem
IV.2.3 Model Use Case
Pada bagian ini akan dibangun pemodelan usecase berdasarkan kebutuhan fungsional dan kebutuhan non-fungsional yang telah didefinisikan sebelumnya.
IV-4
IV.2.3.1 Diagram Use Case
Diagram use case untuk perangkat lunak yang dikembangkan berdasarkan kebutuhan fungsional dan non-fungsional yang telah didefinisikan sebelumnya diperlihatkan pada gambar 15.
Gambar 15. Diagram Use Case
IV.2.3.2 Definisi Aktor
Pada tabel 8, dapat dilihat seluruh definisi aktor yang terlibat dalam perangkat lunak yang dikembangkan untuk melakukan preprocessing.
Tabel 8. Definisi Aktor Kode BN-A-01
Aktor User
Deskripsi Merupakan klien yang akan mengakses perangkat lunak
IV.2.3.3 Definisi Use Case
Pada Tabel 9, dapat dilihat seluruh definisi use case yang terdapat pada perangkat lunak yang dikembangkan untuk kebutuhan preprocessing.
IV-5
Tabel 9. Definisi Use Case Kode
Use Case
Deskripsi
BN-U-01
Preprocessing
Menerima file teks berisi data e-mail, mengolahnya, dan menuliskan file output dalam direktori output.
BN-U-02
Membangun Struktur BN
Membangun struktur BN berdasarkan data masukan yang diberikan
Cakupan Fitur BN-F-01 BN-F-02 BN-F-03 BN-F-04 BN-F-05 BN-N-01 BN-N-02 BN-F-06 BN-F-07
IV.2.3.4 Skenario Use Case Preprocessing
Nama Use Case
: BN-US-1 Preprocessing
Pengguna
: Aktor User
Prekondisi
: File input telah tersedia pada direktori input
Postkondisi
: File output telah tertulis pada direktori output
Aksi Aktor Skenario Normal (BN-SN-01-01) 1. User memasukkan data input yang diperlukan : a. Path direktori input b. Tipe file output c. Partisi d. Jumlah maksimal kata Kemudian klik tombol “preprocessing”
Reaksi Sistem
2. Sistem membaca seluruh file yang terdapat pada direktori input yang dipilih dan melakukan pemrosesan untuk seluruh kata yg ditemukan berdasarkan jumlah partisi & maksimal kata yang ditentukan. 3. Sistem menuliskan hasil pemrosesan dalam sebuah file output dengan tipe file yang telah ditentukan user 4. User membuka file output pada Program TPDA Skenario Alternatif (BN-SA-01-01): Data masukan tidak lengkap 1. User memasukkan data input namun tidak lengkap. Kemudian mengklik tombol “preprocessing” 2.
Sistem memeriksa kelengkapan data input dan kemudian memberikan pesan bahwa data input tidak lengkap.
IV-6
IV.2.3.5 Skenario Use Case Membangun Struktur BN
Nama Use Case
: BN-US-2 Membangun Struktur BN
Pengguna
: Aktor User
Prekondisi
: Program TPDA telah siap dijalankan, File output telah tersedia
Postkondisi
: Program TPDA menampilkan struktur BN yang
dihasilkan Aksi Aktor Skenario Normal (BN-SN-02-01) 1. User membuka file output pada Program TPDA dan menjalankan algoritma pembangunan struktur BN
Reaksi Sistem
2. Sistem menjalankan algoritma pembangunan struktur BN dan menvisualisasikan hasilnya dalam bentuk struktur BN.
IV.3 Analisis Use Case Membangun Struktur BN Untuk membangun menjalankan use case ini akan digunakan sebuah perangkat lunak yang telah dikembangkan pada Laboratorium Basis Data ITB yang bernama Program TPDA. Berikut merupakan analisis yang dilakukan terhadap Program TPDA.
IV.3.1 Deskripsi Umum Perangkat Lunak Program TPDA
Perangkat lunak yang akan digunakan merupakan perangkat lunak pengkonstruksi struktur BN bernama Program TPDA. Program TPDA mengimplementasikan Algoritma TPDA, yaitu algoritma pengkonstruksi struktur BN dengan pendekatan analisis dependensi. Sebagai input, Program TPDA menerima dua bentuk file masukan yaitu dengan format .mdb dan .csv. Perangkat lunak dapat menampilkan
IV-7
hasil setiap tahapan konstruksi ke layar. Untuk penjelasan lebih lanjut mengenai algoritma pendukung Program TPDA dapat dilihat pada lampiran E. Tampilan dari program TPDA dapat dilihat pada Gambar 16.
Gambar 16. Tampilan Program TPDA
IV.3.2 Batasan Umum Perangkat Lunak
Batasan perangkat lunak yang mencakup lingkup pekerjaan, representasi masukan dan format arsip log yang dihasilkan, yaitu : 1. Program TPDA hanya bisa menerima data masukan berupa file .mdb atau file .csv 2. Bayesian network yang dihasillkan belum menampilkan CPT
IV-8
IV.4 Analisis Use Case Preprocessing Modul yang dikembangkan untuk melakukan preprocessing akan diberi nama Ageha. Ageha bertanggung jawab untuk menjalankan kebutuhan pada use case preprocessing.
IV.4.1 Deskripsi Umum
Ageha memiliki fungsi utama melakukan preprocessing terhadap dokumen email. Masukan dari Ageha adalah sebuah dokumen teks. Sedangkan keluaran Ageha berbentuk dokumen dalam format yang telah terstruktur (dapat berupa file teks atau file Microsoft Access).
IV.4.2 Realisasi Use Case Tahap Analisis AGEHA IV.4.2.1 Diagram Kelas Analisis
Pada bagian ini akan digambarkan diagram kelas analisis. Diagram kelas analisis secara umum dapat dilihat pada Gambar 17.
Gambar 17. Diagram kelas analisis
IV-9
Deksripsi detil daftar tanggung jawab dan atribut untuk setiap kelas analisis tersebut dapat dilihat pada Tabel 10. Tabel 10. Daftar Tanggung Jawab dan Atribut Setiap Kelas Analisis Nama Kelas Boundary Preprocessor
Indexer
Filter Document
DBCreator
Termnode
Daftar Tanggung-Jawab 1. Menampilkan interface perangkat lunak yang user-friendly 1. Mengolah data masukan user yang diterima 2. Menjalankan metode pada indexer sesuai dengan tipe file output yang diinginkan user 1. Membangun pohon kata berdasarkan seluruh kata pada e-mail 2. Memerintahkan filter terhadap setiap kata yang diterima 3. Memotong kata sejumlah yang diberikan sebagai masukan oleh user 4. Memanggil fungsi menuliskan file output sesuai dengan tipe file output yang diinginkan user 1. Melakukan filter terhadap setiap kata 1. Menuliskan data output dalam bentuk file teks 2. Menuliskan header file teks yang dibutuhkan 1. Menuliskan data output dalam bentuk file basis data 2. Menuliskan header file basis data yang dibutuhkan 1. Mendefinisikan sebuah kata 2. Mendefinisikan frekuensi kemunculan kata pada seluruh dokumen
Daftar Atribut - preprocessor -indexer
IV-10
IV.4.2.2 Diagram Sekuens Analisis
Gambar 18. Sequence diagram analisis
IV-11
IV.5 Perancangan Perangkat Lunak Dikarenakan untuk modul pembangun struktur BN akan menggunakan perangkat lunak Program TPDA, maka pada bagian perancangan ini akan lebih difokuskan kepada perancangan AGEHA. Berikut adalah diagram kelas serta diagram sekuens tahap perancangan dari AGEHA. Untuk perancangan antarmuka dari AGEHA dapat dilihat pada Lampiran F.
IV.5.1 Class diagram perancangan
Pada bagian ini akan digambarkan diagram kelas perancangan. Diagram kelas perancangan secara umum dapat dilihat pada Gambar 19.
Gambar 19. Diagram kelas perancangan
Deksripsi detil daftar tanggung jawab dan atribut untuk setiap kelas perancangan tersebut dapat dilihat pada Tabel 11.
IV-12
Tabel 11. Daftar Tanggung Jawab dan Atribut Setiap Kelas Perancangan Nama Kelas Boundary Preprocessor
Indexer
Filter Document
DBCreator
Termnode
Daftar Tanggung-Jawab 2. Menampilkan interface perangkat lunak yang user-friendly 3. Mengolah data masukan user yang diterima 4. Menjalankan metode pada indexer sesuai dengan tipe file output yang diinginkan user 5. Membangun pohon kata berdasarkan seluruh kata pada e-mail 6. Memerintahkan filter terhadap setiap kata yang diterima 7. Memotong kata sejumlah yang diberikan sebagai masukan oleh user 8. Memanggil fungsi menuliskan file output sesuai dengan tipe file output yang diinginkan user 2. Melakukan filter terhadap setiap kata 3. Menuliskan data output dalam bentuk file teks 4. Menuliskan header file teks yang dibutuhkan 3. Menuliskan data output dalam bentuk file basis data 4. Menuliskan header file basis data yang dibutuhkan 3. Mendefinisikan sebuah kata 4. Mendefinisikan frekuensi kemunculan kata pada seluruh dokumen
Daftar Atribut - preprocessor -indexer
IV-13
IV.5.2 Sequence diagram perancangan
Gambar 20. Sequence diagram perancangan
IV-14
IV.6 Implementasi Perangkat Lunak IV.6.1 Batasan Perangkat Lunak
Perangkat lunak yang dikembangkan untuk melakukan preprocessing memiliki batasan sebagai berikut : 1. Data masukan yang dapat diolah berbentuk content e-mail dengan format dokumen .txt 2. Data keluaran yang dapat diperoleh adalah dalam bentuk file teks yang dapat diproses oleh Weka dan file database dalam format .mdb yang dapat diproses oleh Program TPDA
IV.6.2 Lingkungan Pengembangan
Spesifikasi lingkungan perangkat lunak yang digunakan dalam implementasi yaitu: 1. Sistem operasi Microsoft Windows XP Professional 2. Microsoft Visual Studio.NET 2005 dalam bahasa C# 3. DBMS Mirosoft Access 2002
IV.6.3 Lingkungan Perangkat Keras
Perangkat lunak Program TPDA dikembangkan dalam sebuah PC standalone. Spesifikasi PC yang digunakan adalah sebagai berikut: 1. Processor Pentium III 533 MHz
IV-15
2. Memori SDRAM 256 MB 3. Harddisk IDE 40.0GB 4. Monitor SVGA 15” Sementara perangkat masukan yang digunakan berupa mouse dan keyboard.
IV.6.4 Input Data
Seperti telah dijelaskan pada bagian III.3.2, data yang tersedia untuk digunakan oleh Program TPDA berbentuk kumpulan file teks dalam format .txt yang telah terkategorisasi menjadi 20 direktori. Masing-masing file teks tersebut berisi sebuah content e-mail. Contoh content dokumen e-mail yang diterima dapat dilihat pada lampiran A. Karena format data awal tidak mungkin dimasukkan secara langsung ke dalam Program TPDA, maka masing-masing file harus diubah ke dalam bentuk yang dapat diolah oleh Program TPDA. Oleh karena itu, data harus di-preprocessing terlebih dahulu agar sesuai dengan karakteristik Program TPDA.
IV.6.5 Output Data
Karena Program TPDA menerima masukan dalam bentuk basis data yang memiliki minimal satu tabel basis data, output dari perangkat lunak yang dikembangkan untuk melakukan preprocessing tersebut haruslah sebuah file basis data dengan minimal satu tabel basis data. Kata-kata pada content e-mail akan direpresentasikan sebagai atribut, sedangkan direktori akan direpresentasikan sebagai kelas. Secara umum, ada dua puluh kelas yang mungkin, seperti dapat dilihat pada Tabel 4.
BAB V PENGUJIAN PERANGKAT LUNAK Pada bagian ini akan didefinisikan tujuan, lingkungan, data pengujian, dan skenario pengujian dan kriteria keberhasilan dari skenario pengujian yang diberikan.
V.1 Tujuan Pengujian Terdapat beberapa hal yang menjadi tujuan pelaksanaan pengujian terhadap prototipe perangkat lunak web mining yang dibangun, yaitu : 1. Memeriksa kesesuaian hasil implementasi perangkat lunak dengan spesifikasi kebutuhannya 2. Memeriksa dan membandingkan akurasi graf yang dihasilkan oleh prototipe yang dibangun dengan graf pada perangkat lunak yang telah ada 3. Memeriksa apakah BN cocok diterapkan pada kasus web mining yang digunakan
V.2 Lingkungan Pengujian Pengujian prototipe perangkat lunak dilakukan pada lingkungan yang sama dengan lingkungan implementasi. Keterangan rinci mengenai lingkungan implementasi dapat dilihat pada subbab V.1.
V.3 Data Pengujian Data awal yang dimiliki berupa file arsip yang berisi 19,998 buah file e-mail mentah (raw) dalam bahasa Inggris. E-mail-e-mail ini berasal dari arsip kelompok diskusi (discussion group) / berita (newsgroup) – sejenis milis yang membahas
V-1
V-2
topik-topik tertentu (misalnya talk.politics.guns yang membahas tentang masalah senjata api, umumnya di Amerika Serikat), atau melayani kepentingan tertentu (misalnya, misc.forsale yang berfungsi sebagai bursa informasi jual beli). File-file e-mail mentah ini dinamai dengan sebuah nomor identifikasi urut tanpa ekstensi file, dan diorganisasi menurut topik yang dibahas oleh kelompok diskusi tersebut ke dalam direktori-direktori yang bersesuaian, di mana terdapat 20 direktori untuk 20 kelompok diskusi. Informasi detail mengenai klasifikasi direktori tersebut dapat dilihat pada subbab III.3. Contoh content dokumen e-mail yang diterima dapat dilihat pada lampiran A.
V.4 Skenario Pengujian Pengujian yang dilaksanakan pada tugas akhir ini terdiri dari dua bagian sebagai berikut: 1. Pengujian fungsionalitas perangkat lunak Sesuai dengan tujuan pengujian yang pertama, pengujian ini ditujukan untuk memeriksa kesesuaian hasil implementasi perangkat lunak dengan spesifikasi kebutuhan yang telah disebutkan pada subbab IV.3. 2. Pengujian tingkat akurasi a. Tujuan Memeriksa tingkat akurasi dari struktur BN yang dihasilkan oleh perangkat lunak dengan struktur BN yang dihasilkan dari perangkat lunak yang sudah ada.
b. Skenario Dilakukan lima kali eksperimen dengan kumpulan dataset yang berbedabeda (diambil secara acak dari kumpulan data yang dimiliki). Kriteria akurasi adalah kesesuaian pola kata yang ada pada dataset dengan struktur BN yang dihasilkan.
V-3
V.5 Hasil Pengujian Hasil pengujian fungsionalitas perangkat lunak dapat dilihat secara lengkap pada Lampiran H. Hasil AGEHA dapat dilihat pada Lampiran G, sedangkan hasil Program TPDA dapat dilihat pada Lampiran I.
Evaluasi Tingkat Akurasi Pengujian dilakukan dengan menggunakan lima buah dataset hasil preprocessing AGEHA yang masing-masing terdiri dari 5000 buah dokumen. Masing-masing dataset kemudian diujicobakan kepada Program TPDA yang hasilnya dapat dilihat pada lampiran I. Pada hasil pengujian seluruh dataset tersebut, akan diambil satu pola yang paling sering muncul, yaitu hubungan antara variabel ”first”, ”people” dan ”time”. Hubungan diantara ketiga variabel ini berbentuk hubungan divergen seperti pada Gambar 21.
time first
people
Gambar 21. Sequence diagram perancangan
Dari hubungan ini dapat dilihat, bahwa jika pada sebuah dokumen ditemukan adanya kata “first” maka hal ini akan meningkatkan keperccayaan akan kemunculan kata ”people” pada dokumen yang sama. Disini dapat dilihat bahwa informasi dapat mengalir pada seluruh anak “time”. Namun jika diketahui pada dokumen tersebut ternyata tidak mengandung kata “time”, maka kemunculan “first” pada dokumen tersebut tidak akan mempengaruhi kepercayaan akan kemunculan kata “people”. Disini “first” dan “people” menjadi d-seperated saat diberikan “time”.
V-4
Untuk menguji akurasi dari hasil graf ini, akan diambil sampel 2069 buah dokumen email. Setiap dokumen akan diperiksa apakah sesuai dengan pola diatas. Hasil pengujian menunjukkan bahwa dari 2069 dokumen tersebut, 47 buah dokumen diantara nya mengandung kata “first”. Dengan demikian, pada awalnya, dapat dianggap bahwa pada 97 buah dokumen tersebut juga mengandung kata “people”. Dari 97 dokumen tersebut, hasil pengujian menunjukkan bahwa 57 buah dokumen ternyata juga mengandung kata “people” dan “time”. Lebih lanjut, 18 buah dokumen ternyata tidak mengandung kata “time” tapi mengandung kata “people”. 21 dokumen lainnya tidak mengandung kata “time” dan “people”. Hal ini sesuai dengan hasil analisis yang telah dilakukan pada hasil Program TPDA. Sedangkan sisanya, sejumlah 14 buah dokumen, tidak sesuai dengan hasil analisis. Dengan demikian dapat dilihat tingkat akurasi dari hasil prototipe aplikasi web mining yang dikembangkan adalah seperti pada persamaan dibawah. %accuration =
∑ dokumenbenar × 100% ∑ dokumen
sehingga :
%accuration =
86 × 100% 97
%accuration = 88,7%
Jadi, hasil tingkat akurasinya adalah 88,7%.
V.6 Kesimpulan Hasil Pengujian Beberapa kesimpulan yang didapatkan dari hasil pengujian adalah sebagai berikut: 1. Perangkat lunak berhasil mengimplementasikan seluruh fungsionalitas sesuai spesifikasi kebutuhannya. 2. Akurasi prototipe perangkat lunak yang dihasilkan cukup baik yaitu sebesar 88,7