BAB IV IMPLEMENTASI DAN PENGUJIAN Pada bab ini akan dijabarkan implementasi dan pengujian perangkat lunak berdasarkan hasil analisis dan perancangan di bab III. 4.1 Implementasi Bagian ini berisi penjelasan tentang lingkungan implementasi, batasan implementasi, tahapan implementasi, serta status implementasi perangkat lunak. 4.1.1 Lingkungan Implementasi Lingkungan implementasi meliputi lingkungan perangkat keras dan perangkat lunak. Lingkungan perangkat keras yang digunakan dalam aplikasi fax gateway adalah sebagai berikut: 1. Processor Intel Xeon 2.80 GHz (2 CPU). 2. RAM 1280 MB 3. Harddisk 40 GB 4. Monitor HP 7500 5. Modem GSM iTegno 3000 sebagai fax modem. Lingkungan perangkat keras yang digunakan tersebut bukan merupakan spesifikasi minimum yang diperlukan. Aplikasi dapat berjalan pada lingkungan perangkat lunak yang lebih kecil dengan syarat menggunakan modem GPRS/GSM yang mendukung AT Command untuk operasi faksimili. Spesifikasi lingkungan perangkat lunak yang digunakan dalam implementasi adalah sebagai berikut: 1. Windows XP Server Edition 2003 2. J2SDK, Standard Edition 1.6.0 untuk subsistem fax gateway. 3. Netbeans 5.0 dan Eclipse 3.1 sebagai IDE untuk editor aplikasi. IV-1 Adapun library yang dibutuhkan dalam pengembangan perangkat lunak adalah: 1. comm.jar, Java Communication API dari Sun yang digunakan untuk komunikasi dengan GSM Modem menggunakan serial port. 2. acrobat.jar, library java yang digunakan dalam membaca dan mengkonversi file portable document format menjadi format T.4. 3. ie-stubs.zip, library java yang dibutuhkan oleh acrobat.jar. 4. java1.2-stubs.zip, library java yang dibutuhkan untuk menjalankan acrobat.jar. 5. MRJToolkitStubs.zip, library java yang dibutuhkan untuk menjalankan library acrobat.jar. 6. netscape-stubs.zip, library java yang digunakan untuk menjalankan library acrobat.jar. 7. jdom.jar, library java yang digunakan untuk menjalankan acrobat.jar. 8. jai_core.jar, library java yang digunakan untuk menjalankan acrobat.jar. 9. jai_codec.jar, library java yang digunakan untuk menjalankan acrobat.jar. 4.1.2 Batasan Implementasi Implementasi perangkat lunak pada tugas akhir ini memiliki batasan sebagai berikut: 1. Perangkat lunak hanya bekerja untuk modem GSM yang mendukung komunikasi faksimili kelas 2. Kode untuk faksimili kelas 2.0 sudah diimplementasikan, tetapi belum diujicobakan. Aplikasi ini sama sekali tidak mendukung komunikasi dengan modem faksimili kelas 1 dikarenakan terlalu rumitnya proses komunikasi menggunakan perangkat keras tersebut. Tidak seperti halnya modem kelas 2 dan kelas 2.0, pengiriman frame HDLC pada modem kelas 1 dilakukan secara manual melalui method atau fungsi. Pada modem kelas 2 dan 2.0, pengiriman frame HDLC telah dibungkus dengan AT Command dan ditangani di segi perangkat kerasnya. 2. Aplikasi difokuskan untuk aktivitas pengiriman faksimili. 3. Aplikasi hanya mampu mengirimkan dokumen tipe text (txt) dan portable document format (pdf) sebagai pesan faksimili, mengingat kedua format ini bersifat public license dan sangat luas digunakan sehingga library untuk membaca kedua tipe dokumen tersedia secara gratisan di internet. Untuk dokumen Microsoft Office (doc, xls, dan ppt), belum tersedia library yang IV-2 bersifat public karena dokumen tipe tersebut bersifat komersial. Library yang ada pun untuk membaca tipe dokumen Microsoft Office tersebut juga bersifat komersial. Sampai saat ini, open source project yang menangani tipe dokumen Microsoft Office masih dalam pengembangan dan masih belum matang. 4.1.3 File Implementasi Subbab ini menjelaskan kode sumber implementasi kode java yang digunakan dalam membangun aplikasi fax gateway. Implementasi kode Java penyusun Fax Gateway dibungkus dalam sebuah package org.NoteBOX.gateway.fax yang terdiri dari file-file berikut: 1. FaxProducer.java, berfungsi sebagai interface untuk kelas-kelas yang akan mengimplementasikan pengkonversian format tertentu ke format image T.4. 2. PdfFaxProducer.java, berfungsi untuk melakukan encoding dari format portable file format (pdf) ke dalam bentuk java.awt.Image. Kelas ini menggunakan beberapa library untuk membaca file format pdf ini, antara lain: acrobat.jar, jai_core.jar, jai_codec.jar, jdom.jar, ie-stubs.zip, java1.2-stubs.zip, MRToolkitStubs.zip, dan netscape-stubs.zip. 3. TextFaxProducer.java, berfungsi untuk melakukan encoding dari format text (txt) ke dalam bentuk java.awt.image. Proses encoding tipe text ini tidak membutuhkan library tambahan. Keuntungan menggunakan kelas ini adalah, format jenis font dan ukurannya bisa disesuaikan/diubah secara on the fly. 4. T4FaxEncoder.java, berfungsi untuk mengkonversi tipe java.awt.Image pada kelas turunan FaxProducer.java menjadi format T.4 (raw fax). 5. TiffWriter.java, berfungsi untuk membungkus format file T.4 menjadi TIFF sehingga bisa dibuka dengan aplikasi image viewer biasa. 6. FaxStatusListener.java, berfungsi untuk melacak status pengiriman pesan faksimili. 7. Capabilities.java, berfungsi untuk mengakomodasi kemampuan yang dimiliki oleh modem GSM yang digunakan. 8. CommTerminal, merupakan kelas yang berfungsi dalam membuka koneksi dengan serial port pada modem. Kelas ini memiliki method untuk IV-3 mengirimkan AT Command dan memparsing respon yang diberikan. 9. FaxModem.java, merupakan kelas turunan langsung dari CommTerminal.java, yang khusus menangani pengiriman pesan faksimili ke remote fax machine. 10. FaxGateway.java, yaitu kelas yang mengimplementasikan interface gateway pada NoteBOX yang berfungsi dalam mendengarkan event dari core server. Kelas ini juga bertanggung jawab dalam mengecek dan menyampaikan pesan faksimili ke tujuan. 4.1.4 File Konfigurasi Sebelum menjalankan aplikasi fax gateway, diperlukan pengaturan konfigurasi aplikasi. Adapun file konfigurasi yang harus diperhatikan pada aplikasi ini, yaitu: 1. gateway.xml, berisi konfigurasi modem serta memuat PIN dari SIM Card yang digunakan. File ini juga berisi konfigurasi dari fax gateway. 4.2 Pengujian Subbab ini berisi penjelasan tentang pengujian yang dilakukan terhadap aplikasi yang dibangun. Pengujian dilakukan untuk memastikan apakah fax gateway telah terintegrasi dengan baik dalam lingkungan sistem NoteBOX. Pengujian juga dilakukan untuk memastikan apakah aplikasi sudah bekerja dengan baik sebagaimana mestinya. Pembahasan pada subbab ini meliputi lingkungan pengujian, rencana pengujian, dan hasil pengujian. 4.2.1 Lingkungan Pengujian Pengujian aplikasi dilakukan dengan menggunakan lingkungan sebagai berikut: 1. Processor Intel Xeon 2.80 GHz (2 CPU). 2. RAM 1280 MB 3. Harddisk 40 GB 4. Monitor HP 7500 5. Windows XP Server Edition 2003 IV-4 4.2.2 Skenario Pengujian Pengujian dilakukan terhadap fungsionalitas gateway dalam menyampaikan pesan faksimili ke tujuan akhir. Pengujian terhadap search query pada native client tidak dapat dilakukan karena search server belum dapat berjalan di lingkungan NoteBOX revisi. Tidak semua skenario pada tiap use case akan diuji, tetapi hanya kasus tertentu yang membutuhkan perhatian khusus, yaitu skenario request send fax melalui layanan SMS. Untuk melakukan pengujian di atas, perlu adanya integrasi antara core server NoteBOX dengan gateway, dalam hal ini SMS gateway, e-mail gateway, dan fax gateway. SMS gateway dibutuhkan untuk menerima request SMS, sedangkan fax gateway sendiri berfungsi untuk menyampaikan pesan faksimili ke tujuan akhir. Email gateway dibutuhkan dalam menyampaikan report pengiriman pesan faksimili (gagal atau sukses). Report juga bisa disampaikan melalui layanan SMS. Sesuai dengan konsep NoteBOX, yaitu pemanfaatan layanan murah meriah melalui SMS untuk meneruskan pesan, maka skenario pengujian dilakukan menggunakan layanan SMS. Ada beberapa kasus uji untuk menguji integrasi fax gateway yang masing-masing memiliki format pesan tertentu. Kasus-kasus uji tersebut adalah sebagai berikut: 1. Mengirim pesan SMS pengiriman dokumen text (txt), report ditujukan ke alamat e-mail. Tujuan: <no sms gateway>. Format pesan: fax:<alamat fax tujuan> doc:<file text> email:<alamat report email> sms:null. Alamat report e-mail di sini berupa xx@domain. 2. Mengirim pesan SMS pengiriman dokumen text (txt), report ditujukan ke alamat SMS. Tujuan: <no sms gateway>. Format pesan: fax:<alamat fax tujuan> doc:<file text> email:null sms:<alamat report SMS>. Alamat report SMS di sini berupa +62XXX. IV-5 3. Mengirim pesan SMS pengiriman dokumen text (txt), report ditujukan ke alamat SMS dan e-mail. Tujuan: <no sms gateway>. Format pesan: fax:<alamat fax tujuan> doc:<file text> email: <alamat report email> sms:<alamat report SMS>. Alamat report e-mail di sini berupa xx@domain. Alamat report SMS di sini berupa +62XXX. 4. Mengirim pesan SMS pengiriman dokumen portable document format (pdf), report ditujukan ke alamat e-mail. Tujuan: <no sms gateway>. Format pesan: fax:<alamat fax tujuan> doc:<file pdf> email:<alamat report email> sms:null. Alamat report e-mail di sini berupa xx@domain. 5. Mengirim pesan SMS pengiriman dokumen portable document format (pdf), report ditujukan ke alamat SMS. Tujuan: <no sms gateway>. Format pesan: fax:<alamat fax tujuan> doc:<file pdf> email:null sms:<alamat report SMS>. Alamat report SMS di sini berupa +62XXX. 6. Mengirim pesan SMS pengiriman dokumen portable document format (pdf), report ditujukan ke alamat SMS dan e-mail. Tujuan: <no sms gateway>. Format pesan: fax:<alamat fax tujuan> doc:<file pdf> email: <alamat report email> sms:<alamat report SMS>. Alamat report e-mail di sini berupa xx@domain. Alamat report SMS di sini berupa +62XXX. Karena pada saat pengujian terdapat masalah pada subsistem SMS gateway, maka pengujian dilakukan menggunakan SMTP client pada e-mail gateway. Begitu juga pengiriman report, hanya bisa diteruskan melalui layanan e-mail. IV-6 4.2.3 Hasil Pengujian Hasil pengujian fungsionalitas fax gateway ditunjukkan pada tabel IV-1. Pada tabel tersebut, masing-masing use case diuji pada skenario normal dan skenario alternatif. Skenario alternatif di sini yaitu skenario pengiriman pesan faksimili yang disengajakan gagal agar sistem mengirimkan report ketidakberhasilan pengiriman melalui layanan e-mail. Skenario alternatif ini dilakukan dengan mencabut kabel telepon nomor mesin faksimili tujuan atau dengan menggunakan saluran telepon tersebut untuk aktivitas lain sehingga sistem mendapatkan pesan LINE BUSY. Tabel IV-1 Hasil Pengujian No Use Case 1 Request file text sending, report to e-mail skenario normal skenario alternatif 1 2 Request file text sending, no report skenario normal skenario alternatif 1 3 Request file pdf sending, report to e-mail skenario normal skenario alternatif 1 4 Request file pdf sending, no report skenario normal skenario alternatif 1 Status Sukses Sukses Sukses Tidak diujicobakan Sukses Sukses Sukses Tidak diujicobakan 4.2.3 Evaluasi Hasil Pengujian Pada pengujian nomor 1 tabel IV-1, digunakan dokumen text sebagai sumber pesan faksimili ke nomor tujuan. Skenario normal berjalan lancar dan report keberhasilan pengiriman sukses terkirim pada alamat e-mail tujuan. Skenario alternatif kasus 1 dilakukan dengan mencabut kabel telepon nomor faksimili tujuan sehingga subsistem fax gateway tidak menerima respon sama sekali dari remote fax machine. Report yang dikirimkan pada e-mail tujuan berisi pesan timeout sending fax message. Kasus 2 pada tabel IV-1 mirip dengan kasus 1 tanpa adanya pengiriman report. Untuk kasus 3, digunakan dokumen portable document format. Pemrosesan dokumen pdf menjadi image T.4 lebih memakan waktu daripada dokumen text, sama halnya pada kasus pengkonversian dokumen ke format pdf. Pengiriman ke nomor tujuan dapat dilakukan dengan baik, dan report keberhasilan juga sukses terkirim. Pada skenario alternatif, remote fax machine digunakan untuk menghubungi nomor telepon IV-7 lain, sehingga subsistem fax gateway tidak bisa berkomunikasi dengan nomor tujuan. Pada report e-mail tertulis pesan kegagalan yang menyatakan bahwa nomor tujuan pengiriman pesan sedang digunakan LINE BUSY. Kasus terakhir pada tabel IV-1 sama halnya dengan kasus nomor 3 tanpa pengiriman report. IV-8