BAB III ANALISIS DAN PERANCANGAN Bab ini akan membahas analisis dan perancangan perangkat lunak yang akan dikembangkan pada tugas akhir ini. Dalam bagian analisis akan diidentifikasi hal-hal yang diperlukan dalam pengembangan perangkat lunak meliputi deskripsi global, karakteristik aktor, spesifikasi kebutuhan perangkat lunak, dan pemodelan perangkat lunak. Sedangkan pada bagian perancangan akan membahas representasi aplikasi yang akan diimplementasikan berdasarkan pada kegiatan analisis.
3.1
Analisis
Subbab ini akan membahas deskripsi global perangkat lunak, spesifikasi kebutuhan perangkat lunak, dan batasan perangkat lunak.
3.1.1 Deskripsi Global Pada tugas akhir ini, akan dikembangkan sebuah infrastruktur komunikasi berbasis messaging yang dapat digunakan dalam sistem NoteBOX, yaitu fax gateway. Fax gateway berfungsi untuk menjembatani core server NoteBOX dengan jaringan GSM sehingga memungkinkan pengiriman pesan faksimili dari NoteBOX. Jaringan GSM sendiri akan langsung berhubungan dengan jaringan lainnya seperti PSTN, CDMA, atau ISDN, tergantung alamat tujuan pengiriman pesan faksimili. Pada antarmuka NoteBOX berbasis web, akan ditambahkan fitur opsional pengiriman pesan query ke nomor faksimili. Sebelumnya, pengiriman pesan ini sudah berjalan untuk pengiriman SMS dan e-mail.
Sebelum dokumen dikirimkan ke nomor tujuan, dokumen tersebut terlebih dahulu dikonversi sebagai dokumen image T.4 (raw fax file), kemudian disalurkan melalui output stream pada modem untuk diteruskan pada alamat tujuan akhir. Saat ini, format dokumen yang didukung gateway baru dokumen text (*.txt) dan portable document format (*.pdf). Java memiliki kemampuan dalam membaca dan memanipulasi dokumen text sehingga pengkonversian dokumen dari format text ke III-1
T.4 dapat dilakukan tanpa masalah. Untuk dokumen pdf, dibutuhkan library java untuk membaca format untuk kemudian dikonversi ke image T.4.
Fax gateway merupakan perangkat lunak yang digunakan untuk mengirimkan informasi ke penerima dalam bentuk pesan faksimili. Perangkat lunak ini nantinya dapat digunakan sebagai infrastruktur komunikasi berbasis SMS di mana dengan mengirimkan kata kunci tertentu, user dapat mengirim pesan faksimili ke mesin faksimili konvensional ataupun mesin faksimili sistem lainnya. Berita pengiriman pesan akan diterima sebagai report yang akan dikirim pada nomor telepon seluler user (SMS) dan atau e-mail. Berita tersebut berisi informasi apakah pesan faksimili berhasil dikirim atau gagal.
Perangkat lunak ini menggunakan perangkat keras khusus, yaitu modem GSM dan kartu GSM pasca bayar yang mendukung komunikasi data faksimili, sebagai media untuk mengirimkan pesan faksimili. Modem GSM yang digunakan adalah modem yang mendukung fax service kelas 2, baik berupa ponsel atau modem GSM biasa. Dalam riset kali ini, digunakan modem GSM iTegno 3000.
Aplikasi fax gateway dibangun dalam bahasa Java (versi SDK 1.6.0) seperti halnya core server yang juga mengadaptasi Java sebagai lingkungan pengembangan. Dengan demikian, NoteBOX dan gateway-nya dapat berjalan pada sistem operasi yang mendukung Java seperti Linux, Microsoft Windows, Macintosh, dan Solaris.
3.1.2 Karakteristik Aktor Subsistem fax gateway pada NoteBOX memiliki tiga aktor, yaitu: core server NoteBOX, user (pengirim SMS) dan outsider (penerima pesan faksimili). Dalam subsistem ini, NoteBOX berlaku sebagai pengirim pesan faksimili. User berlaku sebagai pihak yang me-request NoteBOX (melalui layanan SMS) untuk mengirimkan dokumen (yang terdapat pada server) sebagai pesan faksimili ke outsider.
III-2
3.1.3 Spesifikasi Kebutuhan Spesifikasi kebutuhan subsistem fax gateway untuk NoteBOX adalah sebagai berikut: 1. Mampu menerima
pesan dari NoteBOX. Pesan yang didapatkan akan
disimpan dan akan diteruskan ke sistem eksternal lain, dalam hal ini remote fax machine. 2. Aplikasi mampu mengirimkan pesan faksimili dari dokumen text (*.txt) dan portable document format (*.pdf). 3. Aplikasi mampu melakukan proses konversi dari T.4 image (raw fax) ke format TIFF, sehingga bisa ditampilkan melalui aplikasi image viewer yang mendukung format ini seperti Windows Picture and Fax Viewer, ACDSee, dan lain-lain. 4. Aplikasi mampu mengirimkan report kepada user tentang keberhasilan ataupun kegagalan dalam proses pengiriman pesan faksimili dari NoteBOX. Report dikirimkan melalui SMS dan/atau e-mail. 5. Aplikasi mampu menyimpan pesan faksimili yang dikirimkan ke dalam
storage sebagai dokumen digital (TIFF).
3.1.4 Pemodelan Perangkat Lunak Pemodelan perangkat lunak meliputi perancangan use case dan skenarionya, pemodelan interaksi elemen dengan diagram sekuen, serta perancangan kelas.
3.1.4.1 Pemodelan Kebutuhan Sistem Pemodelan kebutuhan subsistem fax gateway dibuat dalam bentuk diagram use case sederhana yang dapat dilihat pada gambar III-1. Pada gambar tersebut, seorang user mengirimkan SMS dengan format tertentu ke sistem NoteBOX. Pesan masuk kemudian diolah dan diteruskan ke gateway yang bersangkutan, dalam hal ini fax gateway. Gateway ini kemudian akan mengirimkan permintaan pengiriman dokumen sebagai pesan faksimili ke remote fax machine. Dengan bermodalkan perintah SMS, user dapat mengirimkan pesan faksimili ke sistem luar.
III-3
send SMS
user sends SMS requesting document faxing SMS received by NoteBOX
User
NoteBOX NoteBOX sending fax fax received by outsider
Outsider
send fax
Gambar III-1 Use Case Subsistem Fax Gateway
Pengiriman pesan faksimili bisa dipicu dari NoteBOX web interface seperti terlihat pada gambar III-2. User masuk ke halaman native client dengan terlebih dahulu melakukan verifikasi e-mail, lalu memilih penerusan hasil query search server melalui faksimili. Dengan demikian, hasil query yang dilakukan akan diteruskan sebagai pesan faksimili.
enter native client page
send query result to fax machine User login
Gambar III-2 Use Case Pengiriman Hasil Query Melalui Faksimili
III-4
3.1.4.2 Pemodelan Skenario Kejadian Subbab ini berisi penjelasan skenario kejadian dari diagram use case yang telah dibuat. Skenario login diperlihatkan pada tabel III-1. Login di sini adalah login pada halaman native client NoteBOX dengan melakukan verifikasi e-mail. Skenario kejadian selengkapnya dapat dilihat pada lampiran C.
Tabel III-1 Skenario Login Aktor Tujuan Pre-kondisi Post-kondisi
Administrator Melakukan verifikasi apakah alamat e-mail yang digunakan valid atau tidak Halaman native client terbuka [normal] Email valid dan user masuk ke home page [alternatif 1] Email tidak valid, user tetap berada di halaman login
Urutan aksi normal No Pelaku Aksi 1 User Mengirim memasukkan alamat email ke field yang ada 2 Sistem melakukan validasi email 3 Sistem menampilkan home page Urutan aksi alternatif 1 (gagal menyimpan pesan) 3 Sistem Menampilkan pesan kesalahan
3.1.4.3 Pemodelan Interaksi Elemen Pada subbab ini akan ditampilkan diagram sekuen yang menggambarkan model interaksi elemen-elemen dalam aplikasi. Diagram sekuen ini akan dibuat untuk use case yang diprioritaskan, antara lain: 1. Diagram sekuen untuk use case send fax, ditunjukkan pada gambar III-3. 2. Diagram sekuen untuk use case request fax sending, ditunjukkan pada gambar III-4. Diagram sekuen lebih lengkapnya dapat dilihat pada Lampiran D. Pada gambar III-3, pengiriman faksimili dilakukan oleh objek FaxGateway. Objek ini mengecek ketersediaan pesan pada core server secara terus-menerus. Jika terdapat pesan yang akan dikirimkan, sekuen dari nomor 4 sampai selesai akan dijalankan. Setelah pengiriman faksimili berhasil/tidak berhasil, akan dikirimkan report kepada user baik berupa SMS atau email atau kedua-duanya.
Pada gambar III-4, user mengirimkan SMS berisi kata kunci untuk me-request NoteBOX melakukan pengiriman dokumen sebagai pesan faksimili ke outsider. SMS tersebut akan diterima dan diolah oleh SMS gateway, dan isinya diteruskan ke core III-5
server. Core server selanjutnya akan meneruskan isi perintah SMS tersebut ke gateway yang bersangkutan. Selanjutnya pengiriman akan dilakukan oleh FaxGateway seperti pada sequence diagram pada gambar III-3.
Core Server
<
> : FaxGateway
<> : ModemConnector
<<entity>> : FaxProducer
<> : Codec
SMS Gateway
Email Gateway
Utility
: Outsider 1 : notify()
2 : getMessage() 4 : return message 3 : processMessage() 5 : openConnection() 6 : getModemCapabilities() 8 : createFax()
7 : return capabilities 9 : convertToT4()
12 : connectToOutsider() 11 : return T4 image 10 : return T4 image 13 : return connection accepted 14 : faxHandshake()
15 : return handshake accpeted 16 : sendFax()
17 : fax received, return hang up 18 : saveT4ToTiff()
19 : deleteT4Image()
20 : sendStatus() 21 : sendReport() 22 : sendReport()
Gambar III-3 Diagram Sekuen Sending Fax
III-6
SMS Gateway
Core Server
Fax Gateway
: User 1 : sendRequest() 2 : processSMS()
3 : passMessage() 4 : notify()
Gambar III-4 Diagram Sekuen Send Fax Request
3.1.4.4 Pemodelan Kelas Subbab ini berisi pembahasan tentang pemodelan kelas yang terdapat dalam sistem. Pemodelan kelas akan digambarkan dengan diagram kelas. Kelas-kelas yang terdapat dalam diagram kelas merupakan hasil identifikasi awal, sesuai dengan objek-objek yang terdapat dalam diagram sekuen. Hasil identifikasi kelas dapat dilihat pada tabel III-2. Diagram kelas analisis untuk fax gateway dapat dilihat pada gambar III-5.
FaxGateway TiffWriter
ModemConnector
FaxCodec
Utility
FaxProducer
Gambar III-5 Diagram Kelas Analisis Fax Gateway
III-7
Tabel III-2 Hasil Identifikasi Awal Kelas-kelas Penyusun Fax Gateway No Nama Kelas Tipe Kelas Deskripsi 1. FaxGateway Control Kelas ini berfungsi selalu mengecek ketersediaan pesan pada core server untuk dikirim. 2.
ModemConnector
Control
Kelas ini bertugas untuk melakukan komunikasi dengan modem GSM, mengirimkan AT Command dan mendengarkan respon yang diberikan oleh modem. Kelas inilah yang menangani komunikasi modem dengan remote fax machine dalam pengiriman pesan faksimili.
3.
FaxProducer
Entity
Kelas ini menghasilkan image dari dokumen *.pdf dan *.txt untuk di-fax-kan
4.
TiffWriter
Control
Kelas ini bertanggung jawab dalam mengkonversi data T.4 ke dalam format TIFF.
5.
FaxCodec
Control
Kelas ini berfungsi untuk mengubah dokumen berekstensi *.pdf, dan *.txt ke dalam format dokumen faksimili (T.4) sebelum dikirimkan.
6.
Utility
Control
Kelas ini berfungsi untuk mendapatkan kemampuan dari modem yang digunakan (kapabilitas).
3.2
Perancangan
Subbab ini akan menjelaskan perancangan yang didapatkan dari analisis meliputi perancangan arsitektural sistem, perancangan kelas, perancangan basis data, dan perancangan antarmuka.
3.2.1 Batasan Perancangan Batasan perancangan tugas akhir adalah sebagai berikut: 1. Fax gateway mampu melakukan pengiriman pesan faksimili dengan menggunakan modem GSM yang mendukung fax service kelas 2. Penerimaan tidak ditangani karena tidak sesuai dengan fungsi message passing pada NoteBOX. 2. Pengembangan prototipe fax gateway menggunakan bahasa pemrograman
Java SDK 1.6.0.
III-8
3.2.2 Perancangan Arsitektural Sistem Perancangan arsitektural sistem fax gateway ditunjukkan pada gambar III-6. Dapat dilihat bahwa fungsi utama fax gateway adalah menjembatani core server dengan jaringan eksternal. Dari gateway inilah core server dapat berhubungan dengan dunia luar, dalam hal ini jaringan GSM/PSTN/CDMA/ISDN, untuk melakukan komunikasi faksimili. Komunikasi dengan jaringan GSM/PSTN/CDMA/ISDN dimungkinkan dengan memanfaatkan modem GSM yang dapat mengakses jaringan-jaringan tersebut.
Core Server
Fax Gateway using GSM Modem
GSM/PSTN/CDMA/ISDN
Gambar III-6 Arsitektur Fax Gateway
3.2.3 Perancangan Rinci Struktur Kelas Berdasarkan diagram kelas analisis yang telah diperoleh pada subbab 3.1.4.4, selanjutnya akan dilakukan perancangan detil tentang kelas-kelas yang terdapat dalam sistem. Dari use case dan skenario kejadian tersebut di atas, diperoleh perancangan kelas yang ditunjukkan pada gambar III-7.
III-9
AcrobatFaxProducer
TextFaxProducer
Capabilities FaxProducer
CommTerminal
DBConnector
T4FaxEncoder
FaxModem
FaxGateway
TiffWriter
Gambar III-7 Diagram Kelas Perancangan Fax Gateway
Daftar kelas yang dihasilkan pada tahap perancangan dapat dilihat pada tabel III-3.
3.2.4 Perancangan Antarmuka Aplikasi fax gateway tidak mengimplementasikan antarmuka. Namun, pada opsi pengiriman query search server via faksimili pada halaman native client NoteBOX yang berbasis web, akan diimplementasikan fungsi-fungsi untuk pengiriman dokumen lewat jalur faksimili. Halaman login native client NoteBOX dapat dilihat pada gambar III-8. Fungsi yang akan diimplementasikan dilingkari dan diberi panah gambar III-9, halaman utama native client NoteBOX.
III-10
Tabel III-3 Deskripsi Hasil Perancangan Kelas Fax Gateway No Nama Kelas Kelas Analisis Terkait Deskripsi 1. FaxGateway FaxGateway Kelas ini berfungsi selalu mengecek ketersediaan pesan pada core server untuk dikirim. 2.
CommTerminal
ModemConnector
Kelas ini bertugas untuk melakukan komunikasi dengan modem GSM, mengirimkan AT Command dan mendengarkan respon yang diberikan oleh modem. Kelas ini pula yang bertugas mendengarkan event pada modem terutama adanya pesan masuk.
3.
FaxModem
ModemConnector
Kelas ini merupakan subclass dari CommTerminal yang dilengkapi dengan fungsi-fungsi yang dibutuhkan dalam komunikasi faksimili dalam hal pengiriman pesan faksimili.
4.
TiffWriter
TiffWriter
Kelas ini bertanggung jawab dalam menulis TIFF dari file T.4 ke dalam storage.
5.
T4FaxEncoder
FaxCodec
Kelas ini bertanggung jawab dalam mengkonversi file text dan portable document format menjadi raw fax T.4 sebelum dikirimkan ke remote fax machine.
6.
Capabilities
Utility
Kelas ini berfungsi untuk membaca properti yang diperlukan oleh fax gateway, yaitu properti modem.
7.
FaxProducer
FaxProducer
Kelas ini merupakan interface bagi kelaskelas yang akan dikonversi menjadi format T.4.
8.
PdfFaxProducer
FaxProducer
Kelas ini berfungsi dalam mengkonversi file tipe portable document format menjadi image T.4.
9.
TextFaxProducer
FaxProducer
Kelas ini berfungsi untuk mengubah file text ke dalam format dokumen faksimili (T.4) sebelum dikirimkan.
III-11
Gambar III-8 Halaman Login Native Client NoteBOX
Gambar III-9 Halaman Utama Native Client
III-12