87 APLIKASI MOBILE UNTUK KOMPRESI SEND MESSAGE SERVICE (SMS) BERBASIS
JAVA MIDLET Oleh:
Intan Yuniar Purbasari dan M. Farid Ramadhan email :intan@staffs.upnjatim.ac.id
SUMMARY
We propose a solution to minimize text message sending (SMS) cost using an SMS compression application. This application could increase the number of maximum 160 characters in a regular one SMS sending. We use Huffman and Half-Byte algorithms to compress and decompress message. Huffman and Half-Byte algorithms are two of compression algorithms suitable for text. Java technology is used to implement the system because of its portability among various handphones that support J2ME.
This application enabled user to type and send up to 22% more characters than the regular 160 characters with a cost of one SMS only (depends on cellular operators used).
Keywords : j2me, kompresi sms, midlet, Huffman, Half-Byte RINGKASAN
Aplikasi kompresi SMS dalam penelitian ini merupakan salah satu solusi yang ditawarkan untuk menekan biaya SMS. Dengan menggunakan aplikasi ini, jumlah karakter yang dapat dikirimkan dalam 1 (satu) sms dapat lebih dari 160 karakter (yang merupakan batas maksimal jumlah karakter dalam 1 (satu) pengiriman SMS normal. Proses kompres dan dekompres SMS menggunakan kombinasi algoritma Huffman dan Half-Byte yang dapat diterapkan untuk kompresi teks. Implementasi dari desain sistem menggunakan teknologi berbasis Java dan diterapkan pada berbagai macam merk handphone.
Hasil kompresi dari aplikasi memungkinkan pengguna dapat mengirimkan karakter pesan hingga 22% lebih banyak dari batas maksimal dengan biaya satu kali pengiriman, tergantung dari operator seluler yang digunakan.
Kata kunci : j2me, SMS Compression, midlet, Huffman, Half-Byte
PENDAHULUAN
Handphone (HP) saat ini bukan lagi suatu media yang asing bagi masyarakat, selain digunakan untuk berkomunikasi suara, salah satu layanan HP yang digemari oleh masyarakat adalah Short Message Service (SMS). Namun menurut Misdiyono (2007), tarif selular di Indonesia sangat mahal. Biaya pembangunan satu buah jaringan wireless saat ini sudah kurang dari 100 Dolar AS, sedangkan biaya produksi SMS yang sebenarnya hanya Rp. 74 per SMS. Jika dibandingkan dengan tariff SMS Rp. 250-300 yang diberlakukan operator, hal ini berarti terjadi peningkatan 300-400% dari biaya produksi, seharusnya sangat memungkinkan tarif SMS hanya 1/3 dari yang berlaku saat ini. Selain itu, operator seluler juga membatasi jumlah karakter yang dapat dikirimkan maksimal hanya 160 karakter, apabila pelanggan mengirimkan pesan SMS dengan kelebihan hanya beberapa karakter saja dari batas yang telah ditentukan, maka biaya yang dibebankan kepada pelanggan terhitung dua kali pengiriman.
Oleh karena itu, dipandang perlu untuk membuat suatu penelitian dan pembuatan aplikasi kompresi kata untuk meningkatkan jumlah karakter SMS yang dapat dikirim, sehingga masyarakat dapat mengirim SMS dengan karakter yang lebih banyak dan hanya dibebankan satu kali biaya pengiriman. Dalam penelitian ini dibuat sebuah aplikasi kompresi SMS yang ditujukan pada HP berbasis Java, dimana sekarang ini hampir semua tipe HP terbaru sudah mendukung teknologi ini.
Berdasarkan latar belakang yang telah diuraikan sebelumnya, terdapat beberapa permasalahan yang akan diangkat dalam penelitian ini, antara lain: 1) Bagaimana cara merancang aplikasi kompresi SMS berorientasi objek yang dapat memenuhi semua kebutuhan pengguna, 2) Bagaimana cara mengkompres dan dekompres karakter SMS, 3) Bagaimana cara mengirimkan SMS terkompresi pada jaringan GSM dan cara menerima SMS terkompresi jika aplikasi penerima tidak running, 4) Bagaimana cara menyimpan pesan masuk dan pesan keluar serta konfigurasi aplikasi yang telah diatur pengguna pada HP, 5) Bagaimana membuat keluaran antarmuka aplikasi yang tetap responsif saat berinteraksi dengan pengguna.
88 BAHAN DAN METODE
Analisa
Aplikasi kompresi SMS ini dikembangkan dengan teknik mengkompresi huruf-huruf pada SMS dengan algoritma Half-Byte. Setiap urutan huruf/karakter pada SMS akan dikonversi ke kode Heksadesimal dan Biner (8 bit atau 1 byte) untuk mengecek apakah memiliki 4 bit nilai biner awalan yang sama. Batas minimum jumlah urutan huruf/karakter yang diterima adalah 5 huruf/karakter berturut-turut agar kompresi dapat dilakukan. Jika ada setidaknya 5 karakter berturut-turut memiliki 4 bit nilai biner awalan yang sama, maka pada nilai biner kelompok karakter tersebut akan diberi penanda awal dan akhir yang menyatakan bagian yang akan dikompresi.
Proses dekompres dilakukan dengan cara membaca karakter demi karakter deretan bit string biner untuk mencari penanda awal dan akhir bagian yang dikompresi. Jika ditemukan, maka bagian tersebut akan didekompresi sesuai dengan aturan algoritma. Namun jika tidak ditemukan, maka bit-bit tersebut akan langsung dikonversi kembali ke huruf/karakter semula.
Perancangan Sistem Deskripsi Umum Sistem
Gambar 5. Arsitektur Sistem Kompresi SMS Deskripsi dari arsitektur sistem tersebut adalah sebagai berikut :
Pengguna atau pengirim akan mengirimkan SMS kepada penerima melalui HP yang telah ter-install aplikasi. Pengguna menjalankan aplikasi terlebih dahulu dan memilih menu tulis pesan baru, setelah itu pengirim
mengetikkan pesan SMS yang secara otomatis pesan tersebut dikompresi oleh aplikasi dengan menampilkan perbandingan rasio hasil kompresinya, ketika menentukan no penerima bisa langsung mengetik sendiri atau membaca dari phone book, setelah pengguna selesai mengetikkan pesan maka pengguna dapat menekan tombol kirim (proses kompresi dilakukan pada HP pengirim)
Pesan dikirimkan ke SMSC melalui jaringan GSM dengan melewati beberapa BTS terlebih dulu. (pesan tidak langsung dikirimkan dari HP pengirim ke HP penerima, melainkan melalui SMSC terlebih dulu)
Pada BTS terakhir (BTS yang paling dekat dengan SMSC) pesan tersebut dikirimkan ke SMSC melalui jaringan kabel.
Pada SMSC ini pesan yang telah terkompresi disimpan sementara guna kebutuhan informasi seperti delivery report, status pending atau failed.
Pesan dikirimkan berdasarkan no penerima dari SMSC ke HP penerima melalui BTS terdekat pada jaringan kabel.
Kemudian diteruskan oleh BTS satu kepada BTS lain sampai pada BTS yang melayani jaringan HP penerima. Pesan dikirimkan kepada HP penerima melalui jaringan GSM.
HP ter-install aplikasi 1 9 1 8 7 6 1 5 4 3 2
HP ter-install aplikasi Penerima
Pengirim
BTS BTS
89 Jika aplikasi pada HP penerima dalam keadaan tidak running, maka AMS yang mengetahui adanya SMS masuk pada port tertentu secara otomatis akan menghidupkan aplikasi serta menyimpannya dalam pesan masuk, lalu menampilkan alert kepada pengguna bahwa terdapat pesan masuk.
Pengguna yang menyetujui pesan masuk untuk dibaca maka secara otomatis sistem melakukan proses dekompres pada pesan tersebut dan menampilkan hasil kepada pengguna. Setelah membaca pesan, pengguna dapat melakukan reply pada menu yang telah disediakan yang mana prosesnya pengirimannya sama seperti pada HP pengirim.
Perancangan Proses Latar
Untuk menghindari terjadinya deadlock pada sistem, akan dibuat rancangan proses yang berjalan pada proses latar sehingga interaksi pengguna terhadap proses muka tetap responsif. Masing masing proses latar ini dikerjakan pada object yang berbeda sehingga satu sama lain tidak berhubungan dalam pertukaran data. Deskripsi dari proses-proses latar tersebut adalah sebagai berikut:
Proses Kompres, yaitu menangkap pesan bertipe string, mengkompres pesan jika ditemukan deretan karakter yang memiliki 4 bit biner awalan yang sama dan menambahkan 4 bit versi pada awal string, mengubah deretan biner menjadi bertipe byte dan mengembalikan hasilnya.
Proses Dekompres, yaitu menangkap pesan bertipe byte, mengubah ke pesan menjadi deretan biner, membaca bit demi bit biner untuk mengetahui bagian yang perlu didekompres, dan memberikan hasil berupa String. Proses menerima SMS, yaitu mendengarkan port-sms tertentu, mengambil tanggal pesan dikirim,
melemparkan isi pesan masuk pada proses dekompres, menyimpan pesan ke inbox.
Proses mengirim SMS, yaitu validasi no tujuan penerima, melemparkan ke proses dekompres, mengirimkan hasil pesan dan menyimpannya ke outbox.
Proses mengecek jumlah karakter yang diketikkan, yaitu menghitung jumlah karakter yang sedang diketikkan, jika karakter yang diketikkan melebihi batas maksimal byte pengiriman akan ditampilkan alert kepada pengguna untuk mengurangi beberapa karakter.
Proses menghitung rasio hasil kompresi, ketika pengguna selesai mengetik karakter, proses ini running untuk menghitung rasio kompresi dan hasilnya ditampilkan ke pengguna.
HASIL DAN PEMBAHASAN
Hasil dari penelitian ini baru diuji coba dengan menggunakan emulator HP bawaan J2ME Wireless Toolkit 2.2, namun demikian hasil yang didapat tidak akan jauh berbeda jika diimplementasikan pada perangkat yang sebenarnya.
Skenario utama yang digunakan untuk menguji aplikasi ini adalah Ujicoba Menulis Pesan. Uji coba pesan dimulai dengan memilih menu Write New, kemudian akan ditampilkan Form untuk menulis pesan, pengguna dapat menuliskan berbagai macam masukkan karakter, ketika pengguna mengetikkan pesan, aplikasi bekerja di latar menghitung banyak karakter sekaligus kompresi dilakukan, ketika kompresi melebihi batas maka akan ditampilkan message kepada pengguna tentang status banyaknya pesan yang akan dikirim.
90
(a) (b) (c)
Gambar 6. Tampilan Ujicoba Pengetikan Pesan SMS yang lebih dari 160 karakter. Jumlah karakter yang diketikkan dan
jumlah SMS yang akan dikirim ditampilkan di kiri atas (a) Pengguna menulis SMS hingga 194 karakter (b) Program menampilkan alert bahwa pesan yang akan dikirim akan menghasilkan 2 SMS (c) Pengguna mengurangi jumlah karakter yang diketikkan menjadi 186 karakter
Dari ujicoba di atas, tampak bahwa pengguna dapat mengetikkan SMS hingga 186 karakter (26 karakter lebih banyak daripada batas maksimal 160 karakter dalam satu kali pengiriman SMS normal) dan masih terhitung satu SMS. Dengan munculnya peringatan/alert saat pengguna mengetikkan SMS, maka pengguna dapat mengurangi jumlah karakter sehingga pesan yang terkirim hanya satu SMS saja. Dalam satu SMS tersebut, aplikasi ini juga mampu menampung jumlah karakter lebih banyak dari batas maksimal sehingga pengguna masih tetap dapat mengirim pesan yang lebih panjang. Berdasarkan ujicoba di atas, aplikasi dapat mengirim pesan dengan jumlah karakter 16.25% lebih banyak.
Dari beberapa ujicoba yang telah dilakukan, berikut hasil yang menyatakan jumlah karakter yang dapat ditampung dalam satu SMS dan prosentase peningkatan jumlah karakter:
Tabel 1. Jumlah Karakter yang dapat ditampung dan Prosentase peningkatannya
Skenario berikutnya yang digunakan untuk mengujicoba aplikasi adalah dengan mengirimkan pesan yang sudah terkompresi ke HP lain yang sudah terinstall aplikasi yang sama. Pada ujicoba ini, HP pengirim menggunakan nomor +5550000 dan HP Penerima menggunakan nomor +5550001.
No Jumlah Karakter Prosentase Peningkatan Karakter
1 197 23,125% 2 186 16,25% 3 193 20,625% 4 199 24,375% 5 204 27,5% Rata-rata 22,375%
91 Gambar 7. Ujicoba Pengiriman SMS Terkompresi
Gambar di atas menunjukkan simulasi pengiriman teks SMS yang berisi “Testing Kirim Pesan Terkompresi” dari Nomor +5550000 ke nomor +5550001.
92 Gambar 8 menunjukkan simulasi layar HP Penerima (nomor +5550001) yang menerima sms kiriman terkompresi dari HP Pengirim (nomor +5550000). Pesan dapat dibaca dengan baik karena HP Penerima membuka SMS dari aplikasi yang sama dengan aplikasi yang terinstal pada HP Pengirim.
KESIMPULAN
Berdasarkan ujicoba yang telah dilakukan, maka dapat dapat diambil beberapa kesimpulan sebagai berikut: 1. Aplikasi kompresi dapat meningkatkan kapasitas daya tampung karakter SMS hingga ± 22 % lebih banyak
dalam setiap pengiriman dengan biaya tetap, sehingga pengguna dapat menikmati fasilitas pengetikan karakter yang lebih banyak dibanding dengan aplikasi pengiriman sms bawaan HP.
2. Dengan menggunakan algoritma Kompresi dan Dekompresi yang sama, yaitu kombinasi antara algoritma Huffman dan Half-Byte, setiap masukan pesan yang telah dikompres, hasil dari dekompresnya sama persis dengan masukkan, sehingga setiap SMS yang dikirimkan akan diterima dan isinya akan terbaca apa adanya oleh aplikasi pada handphone penerima.
3. Dengan memanfaatkan class-class dari paket WMA dan Push Registry pada J2ME, SMS terkompresi dapat dikirimkan melalui jaringan GSM dan diterima dengan baik meskipun aplikasi pada handphone penerima tidak running.
4. Dengan memanfaatkan class RMS pada J2ME, pesan masuk atau pesan keluar pada handphone dapat disimpan, diubah, maupun dihapus, selain itu jugadapat menyimpan konfigurasi aplikasi yang telah diatur oleh pengguna. 5. Dengan menerapkan pemrograman multithread, aplikasi tetap responsif saat berinteraksi dengan pengguna
meskipun terdapat proses lain yang sedang berjalan. DAFTAR PUSTAKA
Avestro, Joyce. 2007. Pengenalan Pemrograman Java. JENI. Jakarta.
Ortiz, Enrique. 2003. The MIDP 2.0 Push Registry, diakses online 30-10-2007 dari http://developers.sun.com/mobility/midp/articles/pushreg/
Linawati. 2004. Perbandingan Kinerja Algoritma Kompresi. UKPB. Bandung
Misdiyono, Legiman. 2007. Tarif Operator Selular Tidak Rasional. Pulsa Indomedia Pratama. Jakarta
Raharjo, Budi & Heryanto, Imam. 2007. Tuntunan Pemrograman Java untuk Handphone. Informatika. Bandung
Rinaldi, Munir. 2005. Strategi Algoritmik. ITB. Bandung
Suprasetiawan, Eko Budhi. 2002. Pemrograman Multithreading, diakses online 2-11-2007 dari http://ikc.depsos.go.id/berseri/eko-java/thread.php.
Toha, Dudung. 2005. Memberdayakan Pesan Singkat SMS, diakses online 2-10-2007 dari http://www.dudung.net/index.php?naon=depan&action=detail&id=803&cat=1
VLSM. 2003. Ilustrasi Thread dengan java dan linux, diakses online 2-11-2007 dari http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/2003/43/Sisop/c36.html
Herry Sujaini, Yessi Mulyani. Algoritma Run-Length, Half-Byte, & Huffman untuk Pemampatan File, diakses online 2-8-2009 dari http://kambing.ui.ac.id/bebas/v11/ref-ind-1/network/buku-algoritma-run-length-half-byte-untuk-pemampatan-file-06-.rtf
Yunianto. 2006. Membangun Aplikasi SMS Gateway di Linux. Andi. Yogyakarta.
Zakaria, Teddy Marcus & Widiadhi, Josef. 2006 Aplikasi SMS untuk berbagai keperluan. Informatika. Bandung.