BAB V IMPLEMENTASI DAN PENGUJIAN Pada
Bab
ini
impelementasi
dipaparkan kelas,
lingkungan
implementasi
pembangunan,
markup,
batasan
implementasi
pembangunan,
Arithmetic
Coding,
implementasi pengiriman pesan, implementasi penyimpanan pesan, butir uji serta hasil pengujian.
5.1 Lingkungan Pembangunan Lingkungan implementasi perangkat lunak aplikasi pengiriman pesan teks ber-markup via short message service (SMS) adalah sebagai berikut: 1. Sistem Operasi
: Microsoft Windows XP Service Pack 2
2. Perangkat Lunak Utama
:
a. Java Development Kit (JDK) 1.5 b. J2ME Wireless Tool Kit (WTK) 2.2 c. Netbeans 5.5 3. Perangkat Keras Utama
:
Notebook HP Compaq Presario V3201TU dengan spesifikasi sebagai berikut: a. Processor Intel Core Duo CPU T2250 1,73GHz b. Memory DDR2 SDRAM 1GB c. Harddisk 80 GB 4. Perangkat Keras Pendukung
: Handphone Nokia 6630 White
5.2 Batasan Pembangunan Batasan implementasi aplikasi pengiriman pesan teks ber-markup via short message service (SMS) adalah sebagai berikut: 1. Pada aplikasi ini tidak terdapat fungsionalitas penyimpanan pesan selain inbox (misalnya sent message, draft). 2. Aplikasi ini tidak dapat berjalan pada handset dengan keypad bertipe Qwerty. 3. Aplikasi ini akan diimplementasi pada handset Nokia 6630 White. Handset Nokia 6630 White ini dijadikan acuan untuk implementasi aplikasi ini. V-1
V-2
5.3 Implementasi Kelas Implementasi kelas dilakukan sesuai dengan analisis dan perancangan yang telah dilakukan sebelumnya. Pada perancangan, aplikasi pengiriman pesan teks ber-markup dibagi menjadi dua subsistem yaitu subsistem pengiriman pesan dan subsistem penerimaan pesan. Subsistem pengiriman pesan tersusun dari komponen-komponen MessageEditor, MarkupCreator, MessageCompressor, dan MessageSender. Subsistem penerimaan
pesan
tersusun
atas
komponen-komponen
MessageReceiver,
MessageDecompressor, serta MessageViewer. Masing-masing komponen aplikasi pengiriman pesan teks ber-markup diimplementasi menjadi sebuah kelas (lihat Tabel V-1 Implementasi Kelas). Pada saat implementasi, terdapat beberapa kelas tambahan untuk mendukung implementasi kelas-kelas yang telah dirancang sebelumnya. Kelas-kelas tambahan tersebut merupakan kelas-kelas turunan dari kelas-kelas pada MIDP 2.0 yang dibuat untuk membuat aplikasi lebih modular. Tabel V-1 Implementasi Kelas 1 2
No
Nama Kelas Messenger MessageEditor
3
MarkupCreator
4 5 6 7 8
MessageSender MessageCompressor MessageReceiver MessageDecompressor MessageViewer
9 10
DestNumberForm MenuList
11 12 13 14 15
FaceList StyleList SizeList ColorList CharList
16 17 18
MessageList SmileyList ConfirmAlert
Deskripsi Kelas MIDlet aplikasi pengiriman pesan teks ber-markup Kelas yang berfungsi menyediakan tempat bagi pengguna menulis pesan teks dengan berbagai style yang mungkin Kelas yang membagkitkan tag-tag yang merepresentasikan style teks yang dimaksud oleh pengguna Kelas yang bertanggung jawab melakukan pengiriman pesan Kelas yang bertanggung jawab melakukan kompresi pesan Kelas yang bertanggung jawab melakukan penerimaan pesan Kelas yang bertanggung jawab melakukan dekompresi pesan Kelas yang bertanggung jawab membaca dan menampilkan pesan teks sebagaimana yang dikehendaki pengirim pesan Kelas Form untuk melakukan input nomor tujuan pesan Kelas List menu messaging yang terdiri dari write message dan inbox List bebagai tipe font yang didukung oleh aplikasi List bebagai style huruf yang didukung oleh aplikasi List bebagai ukuran huruf yang didukung oleh aplikasi List bebagai warna huruf yang didukung oleh aplikasi List berbagai karakter yang tidak dapat diakses langsung dari keypad List pesan yang masuk pada inbox aplikasi List smiley yang dapat ditambahkan pada pesan Kelas turunan dari kelas Alert yang bertanggung jawab
V-3 No 19
Nama Kelas EmptyForm
Deskripsi menampilkan report ketika pengiriman pesan Kelas Form yang bertanggung jawab menampilkan status tidak ada pesan masuk pada inbox aplikasi
5.4 Implementasi Markup Markup yang diimplementasi pada aplikasi pengiriman pesan teks ber-markup dapat dilihat pada Tabel V-2. Tabel V-2 Implementasi Markup No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 15 16 17 18 19
Markup
<sz=1> <sz=2> <sz=3> :p :) :( :D :{
Deskripsi Huruf cetak tebal Huruf diberi garis bawah Huruf cetak miring Huruf dengan font proporsional Huruf dengan font sistem Huruf dengan font monospace Huruf berwarna hitam Huruf berwarna merah Huruf berwarna hijau Huruf berwarna biru Huruf berwarna kuning Huruf berwarna merah muda Huruf berwarna ungu Huruf berwarna coklat Huruf berwarna orange Huruf berukuran kecil Huruf berukuran sedang (default) Huruf berukuran besar Smiley Smiley Smiley Smiley Smiley
5.5 Implementasi Arithmetic Coding Aplikasi pengiriman pesan teks ber-markup ini menggunakan program open source yaitu Compression via Arithmetic Coding in Java version 1.1(www.colloquial.com). Pada saat implementasi, tidak semua source dari program tersebut digunakan. Source yang digunakan disesuaikan dengan pengembangan aplikasi pengiriman pesan teks ber-markup sehingga dilakukan perubahan-perubahan pada kelas tertentu. Kelas-kelas yang
V-4 digunakan dalam implementasi Arithmetic Coding pada aplikasi pengiriman pesan teks ber-markup ini dapat dilihat pada Tabel V-3.
Tabel V-3 Kelas-kelas Implementasi Arithmetic Coding 1
No
Kelas ArithCodeModel
2
AdaptiveUnigramModel
3
ArithCodeInputStream
4
ArithCodeOutputStream
5 6 7 8
ArithCoder ArithDecoder ArithEncoder BitInput
9
BitOutput
10
ByteBuffer
11
ByteSet
12
Converter
Tanggung Jawab Interface untuk model statistik yang akan digunakan untuk melakukan encode dan decode Menyediakan model adaptif berdasarkan byte yang diobservasi pada input stream Input stream yang digunakan pada kompresi dan dekompresi Output stream yang digunakan pada kompresi dan dekompresi Kelas general yang digunakan untuk melakukan coding Kelas yang bertanggung jawab melakukan decoding Kelas yang bertanggung jawab melakukan encoding Kelas yang bertanggung jawab membaca input dari input stream berupa sebuah bit untuk setiap satuan waktu Kelas yang bertanggung jawab menulis output dari output stream berupa sebuah bit untuk setiap satuan waktu Kelas yang merupakan queue untuk menampung byte sementara Himpunan byte untuk melakukan operasi-operasi terhadap byte-byte tersebut Kelas yang bertanggung jawab mengubah byte menjadi integer dan sebaliknya
Perubahan kode program dilakukan pada beberapa kelas dari program open source tersebut. Perubahan kode program dilakukan karena hal-hal berikut: 1. Adanya fungsi atau metode yang tidak dibutuhkan dalam aplikasi pengiriman pesan teks ber-markup ini. 2. Kode program tidak didukung oleh MIDP 2.0 Penggabungan kelas-kelas kompresi dengan rancangan kelas aplikasi pengiriman pesan teks ber-markup dapat dilihat pada Gambar V-1.
V-5
AdaptiveUnigramModel MAX_COUNT NUM_BYTES EOF_INDEX TOTAL_INDEX
MessageCompressor modelIn compressMessage() copyStream()
interval() pointToSymbol() totalCount() escaped() exclude() increment() lowCount() highCount() rescale()
ArithCodeOutput Stream _model _encode _interval
MessageDecompressor modelOut decompressMessage() copyStream()
encode() close() flush() write()
ArithCodeModel EOF ESCAPE totalCount() pointToSymbol() interval() escaped() exclude() increment()
ArithEncoder _out _bitsToFollow close() flush() encode() bitPlusFollowTrue() bitPlusFollowFalse()
ArithCodeInputStream _model _decoder
BitOutput _nextByte _nextBitIndex _out
available() close() mark() markSupported() read() reset() skip() decodeNextByte()
close() flush() writeBit() writeBitTrue() writeBitFalse() reset()
ArithDecoder _in value endOfStream bufferedBits endOfStream() getCurrentSymbolCount() removeSymbolFromStream() close() bufferBit()
ArithCoder _low _high CODE_VALUE_BITS TOP_VALUE FIRST_QUARTER HALF THIRD_QUARTER
BitInput _in _nextByte _nextBitIndex _endOfStream available() close() endOfStream() readBit() readAhead()
Gambar V-1 Implementasi Penggabungan Kelas-Kelas Kompresi
V-6
5.6 Implementasi Pegiriman Pesan MIDP mendukung pengiriman pesan antar mobile phone dengan dua jenis yaitu pesan teks dan pesan biner. Pesan teks merupakan instansiasi dari kelas TextMessage pada paket javax.wireless.messaging. Sedangkan, pesan biner merupakan instansiasi dari kelas BinaryMessage pada paket yang sama. Pesan yang dikirim oleh aplikasi pengiriman pesan teks ber-markup via SMS ini dapat berupa TextMessage maupun BinaryMessage. TextMessage digunakan pada saat ukuran pesan teks yang akan dikirim tidak lebih dari 160 karakter sehingga tidak perlu dilakukan kompresi pada pesan tersebut (secara default akan membayar satu kali SMS). BinaryMessage digunakan pada saat pengiriman pesan hasil kompresi pesan yang panjang (lebih dari 160 karakter). Aplikasi ini akan mengirim pesan pada port 5000. Port ini berbeda dengan port default tempat masuknya pesan teks SMS biasa. Oleh karena itu, pesan teks yang dikirim dengan aplikasi ini tidak tersimpan dalam default inbox. Jika pada handset penerima tidak terdapat aplikasi ini, pesan yang dikirim pada handset tersebut tidak akan terbaca.
Pesan yang dikirim dengan aplikasi pengiriman pesan teks ber-markup ini dibatasi maksimal 480 karakter untuk sekali pengiriman. API Messaging dari MIDP 2.0 mendukung pengiriman pesan teks lebih dari 480 karakter, namun pada saat penerimaan pesan, aplikasi harus menggabungkan sendiri bagian-bagian pesan yang terpisah menjadi beberapa pesan. Jika pesan yang dikirim kurang dari atau sama dengan 480 karakter, API Messaging yang akan menggabungkan bagian-bagian pesan yang terpisah (menjadi 3 pesan) sehingga aplikasi tidak perlu menangani hal tersebut.
5.7 Implementasi Penyimpanan Pesan Aplikasi pengiriman pesan teks ber-markup via SMS ini memiliki fungsionalitas untuk melakukan penyimpanan pesan yang diterima (inbox). Pesan teks yang diterima disimpan ke dalam sebuah RecordStore. RecordStore merupakan mekanisme penyimpanan data persisten yang disediakan oleh MIDP. Pada aplikasi pengiriman pesan teks ber-markup ini, untuk setiap pesan yang diterima, pesan teks dan address pengirim pesan akan disimpan dalam RecordStore. Penyimpanan pesan teks dan address pengirim pesan secara detail ditunjukkan pada Gambar V-2.
V-7
Gambar V-2 Penyimpanan Pesan pada RecordStore
5.8 Rencana Pengujian Aplikasi pengiriman pesan teks ber-markup ini akan diuji pada handphone Nokia N6630 White sebagai handset utama yang digunakan pada pembangunan aplikasi tersebut. Pengujian yang dilakukan meliputi pengujian fungsionalitas aplikasi serta pengujian kompresi pesan teks dengan Arithmetic Coding. Berikutnya, pengujian akan dilakukan pada berbagai seri dan merek handphone yaitu Sony Ericsson K530i, Nokia N90, Nokia 5200, serta LG KG300.
5.9 Butir Uji Pengujian terhadap aplikasi pengiriman pesan teks ber-markup dilakukan dengan butirbutir uji pada Tabel V-4 Tabel Butir Uji berikut. Tabel V-4 Tabel Butir Uji No
Butir Uji
1 2
Aplikasi menampilkan menu utama Aplikasi menampilkan message editor dan menu-menu untuk variasi huruf
3
Aplikasi menampilkan list jenis huruf, list ukuran huruf, list warna huruf, serta list style huruf Message editor menampilkan huruf dengan jenis huruf, ukuran huruf, warna huruf, style huruf yang diinginkan pengguna Message editor menampilkan smiley Aplikasi menampilkan form untuk memasukkan alamat tujuan pengiriman pesan
4 5 6
V-8 No
Butir Uji
7 8 9 10 11 12
Aplikasi melakukan kompresi pesan Aplikasi melakukan pengiriman pesan teks Aplikasi menerima pesan teks yang ditujukan kepadanya Aplikasi melakukan dekompresi pesan Aplikasi menyimpan pesan dan alamat pengirim serta menampilkan inbox Aplikasi menampilkan pesan yang diterima sesuai dengan yang dikirim oleh pengirim Pengguna dapat melakukan forward pesan
13
5.10 Hasil Pengujian Hasil pengujian terhadap aplikasi pengiriman pesan teks ber-markup pada handphone Nokia 6630 White berdasarkan butir-butir uji di atas adalah sebagai berikut: 1. Aplikasi dapat menampilkan menu utama yang terdiri atas write message dan inbox. 2. Aplikasi dapat menampilkan message editor beserta menu-menu di dalamnya yaitu: •
Menu Next menuju halaman untuk memasukkan nomor tujuan pengiriman pesan
•
Menu Font Face menuju halaman daftar jenis huruf yang mungkin dipakai
•
Menu Font Color menuju halaman daftar warna huruf yang mungkin dipakai
•
Menu Font Size menuju halaman daftar ukuran huruf yang mungkin dipakai
•
Menu Font Style menuju halaman daftar style huruf yang mungkin dipakai
•
Menu Smiley menuju halaman daftar smiley yang dapat disisipkan
•
Menu Back untuk kembali ke menu utama
3. Message editor menampilkan huruf dengan ukuran, warna, style yang sesuai dengan yang dipilih pengguna. Style huruf dapat merupakan salah satu dari bold, italic, dan underlined atau gabungan dari ketiga style tersebut. Message editor hanya dapat menampilkan satu jenis huruf yaitu face system. 4. Message editor dapat menampilkan smiley yang dimasukkan pada pesan teks. 5. Aplikasi dapat menampilkan halaman form untuk memasukkan nomor tujuan.
V-9 6. Aplikasi dapat melakukan pengiriman pesan dengan berhasil. 7. Aplikasi dapat menerima pesan yang ditujukan kepadanya dengan berhasil. 8. Aplikasi dapat menyimpan pesan dan alamat pengirim pesan dengan menggunakan record store. Pengguna dapat melakukan pembacaan pesan dan penghapusan pesan yang tersimpan pada record store. 9. Aplikasi berhasil menampilkan pesan yang diterima seperti yang diharapkan pengirim. 10. Pengguna dapat melakukan forward pesan yang disimpan pada record store. 11. Pengujian terhadap performasi kompresi Arithmetic Coding dilakukan dengan melakukan beberapa kali kompresi string. Hasil yang didapatkan dari pengujian kompresi Arithmetic Coding tersebut dapat dilihat pada Tabel V-5. Tabel V-5 Hasil Pengujian Kompresi No 1
2.
3
4
5
6
String Meluasnya penggunaan SMS pada berbagai keperluan melahirkan kebutuhan modifikasi pada pesan teks yang dikirim untuk menambah keindahan atau tujuan tertentu. Modifikasi pada pesan teks tersebut dapat berupa pewarnaan huruf, format penulisan huruf, ukuran huruf, dan modifikasi lainnya. (283 karakter) Sebuah markup language harus mendefinisikan markup apa yang diizinkan, markup apa yang dibutuhkan, bagaimana markup dibedakan dengan teks biasa, dan apa makna setiap markup (155 karakter) Rich Text Format adalah sebuah metode untuk menyandikan teks dan gambar pada aplikasi atau data dan untuk melakukan transfer antar aplikasi (139 karakter)
Hasil (ukuran byte) 207 byte
Penurunan (%) 26,85
132 byte
14,84
110 byte
20,86
135 byte
17,18
143 byte
18,75
198 byte
25,84
V-10 No
7
8
String Hasil (ukuran byte) markup adalah variasi huruf standar pada format teks. Style huruf ini mencakup style huruf (huruf tebal, huruf miring, serta huruf garis bawah), jenis huruf, ukuran huruf, dan warna huruf. (267 karakter) Rancangan antarmuka berikut ini terbagi 344 bytes atas rancangan antarmuka subsistem pengirim pesan dan rancangan antarmuka subsistem penerima pesan. Rancangan antarmuka subsistem pengirim pesan meliputi rancangan antarmuka message editor serta antarmuka terkait dengan menu-menu yang terdapat pada message editor. Menu-menu yang terdapat dalam message editor meliputi menu untuk memasukkan nomor tujuan pesan dan menu untuk melakukan mengubah setting huruf. Rancangan antarmuka penerima pesan sebatas rancangan bagaimana pesan ditampilkan. (531 karakter) Markup yang diimplementasi diharapkan 442 byte dapat merepresentasikan style teks yang diinginkan pengirim pesan teks dengan notasi yang sesederhana mungkin. Dari studi perbandingan yang dilakukan terhadap format markup language, didapatkan format markup yang paling sederhana dan dapat merepresentasikan style teks yang diinginkan pengirim pesan teks adalah HTML. Namun demikian, jumlah karakter pada suatu tag HTML masih relatif banyak sehingga akan menyebabkan penambahan karakter yang cukup signifikan. Oleh karena itu, diperlukan penyusunan format markup baru yang akan diimplemetasi. Format markup yang baru ini diadaptasi dari HTML dengan penyederhanaan pada tagtag yang digunakan. (680 karakter)
Penurunan (%)
35,21
35,00
Disamping pengujian dilakukan pada handphone Nokia 6630 White, aplikasi pengiriman pesan teks ber-markup ini juga diujikan pada beberapa handphone lain seperti disebutkan pada Tabel V-6.
Tabel V-6 Hasil Pengujian Aplikasi pada Beberapa Handphone
V-11
No 1.
Seri Sony Ericsson K530i
2
Nokia N90
3.
LG KG300
4.
Nokia N5200
Hasil Pengujian 1. Pada message editor terdapat beberapa fitur yang tidak dapat berjalan yaitu fitur jenis huruf dan fitur style huruf. Aplikasi hanya dapat menampilkan satu jenis font face serta tidak dapat menampilkan huruf dalam style bold, italic, maupun underlined. 2. Aplikasi tidak dapat melakukan penerimaan pesan karena pesan selalu masuk pada default inbox meskipun dikirm oleh nomor pengirim dengan operator yang sama dengan penerima. 3. Aplikasi tidak berhasil melakukan pengiriman pesan. Pengiriman pesan melalui aplikasi pengiriman pesan teks ber-markup ini tidak berhasil dilakukan dengan handphone vendor Sonny Ericsson. 4. Susunan keypad tidak sama dengan susunan keypad pada Nokia 6630 sehingga ada beberapa keypad yang tidak sesuai. 1. Pada message editor semua fitur berjalan seperti seharusnya, kecuali fitur jenis huruf. Handset tidak mendukung berbagai tipe jenis font (monospace, font system, font proportional). Message editor hanya dapat menampilkan satu jenis huruf yaitu face system. 2. Pada saat pertama kali instalasi, record store tidak kosong. Kondisi seharusnya adalah kosong. 1. Pada message editor semua fitur berjalan seperti seharusnya. 2. Susunan keypad tidak sama dengan susunan keypad pada Nokia 6630 sehingga ada beberapa keypad yang tidak sesuai. 3. Aplikasi tidak dapat membuka record store. 1. Pada message editor semua fitur berjalan seperti seharusnya, kecuali fitur jenis huruf. Handset tidak mendukung berbagai tipe jenis font (monospace, font system, font proportional). Message editor hanya dapat menampilkan satu jenis huruf yaitu face system. 2. Aplikasi tidak dapat melakukan penerimaan pesan karena pesan selalu masuk pada default inbox meskipun dikirm oleh nomor pengirim dengan operator yang sama dengan penerima.
V-12
5.11 Analisis Hasil Pengujian Berikut ini dipaparkan analisis hasil pengujian aplikasi pengiriman pesan teks bermarkup yang telah dilakukan.
5.11.1
Analisis Hasil Pengujian pada Berbagai Seri Handset
Dari pengujian yang telah dilakukan, didapatkan bahwa aplikasi pengiriman pesan teks ber-markup ini hanya dapat berjalan dengan baik pada Nokia 6630 White. Semua fungsionalitas aplikasi pengiriman pesan teks ber-markup ini, kecuali jenis huruf, dapat berjalan pada handset Nokia 6630. Sedangkan pada handset lain yang telah diujikan (Sony Ericsson K530i, Nokia N90, LG KG300, serta Nokia N5200) terdapat beberapa fungsionalitas yang tidak berjalan (Lihat Tabel V-6). Fungsionalitas aplikasi tidak dapat berjalan disebabkan perbedaan dukungan terhadap API J2ME yang digunakan dalam aplikasi. Perbedaan dukungan tersebut terdapat pada: 1. Penyimpanan pesan (RecordStore) 2. Jenis, style, dan ukuran huruf 3. Pengiriman pesan pada port 5000 Oleh karena itu, agar dapat berjalan pada handset selain Nokia 6630 White, implementasi aplikasi pengiriman pesan teks ber-markup ini harus disesuaikan dengan dukungan handset terhadap API J2ME.
5.11.2
Analisis Hasil Pengujian Kompresi Arithmetic Coding
Dari pengujian yang dilakukan dengan mengkompresi berbagai string dengan panjang yang bervariasi (seperti terlihat pada Tabel V-5 ), dapat dilihat bahwa semakin panjang string yang dikompresi maka akan semakin efektif hasil kompresinya (persentase penurunan jumlah byte lebih besar). Kompresi Arithmetic Coding ternyata belum optimal untuk menurunkan biaya SMS. Sebagai contoh, pada pengujian kompresi nomor 1 (lihat Tabel V-5) panjang string yang dikompresi 283 karakter dan dihasilkan 207 byte. Jika string tersebut dikirim dengan SMS, maka tidak akan ada perubahan biaya pengiriman pesan yaitu seharga pengiriman 2 kali SMS.