Pembangunan Aplikasi Pengiriman Pesan Teks Ber-markup via Short Message Service (SMS)
LAPORAN TUGAS AKHIR
Disusun Sebagai Syarat Kelulusan Tingkat Sarjana
oleh: Dewi Pramudi Ismi/ NIM. 13503014
PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2007
Lembar Pengesahan Program Studi Sarjana Teknik Informatika Pembangunan Aplikasi Pengiriman Pesan Teks Ber-markup via Short Message Service (SMS)
Tugas Akhir Program Studi Sarjana Teknik Informatika ITB
Oleh Dewi Pramudi Ismi / 135003014
Telah disetujui dan disahkan sebagai laporan Tugas Akhir di Bandung, pada tanggal 20 September 2007
Pembimbing
Riza Satria Perdana S.T.,M.T. NIP 132142232
ii
ABSTRAK Short Message Service (SMS) adalah adalah layanan dasar yang memungkinkan pengiriman pesan teks di antara pelanggan telekomunikasi seluler. Saat ini, pesan teks yang dikirim melalui SMS hanya berupa plaint text (teks sederhana). Pada Tugas Akhir ini, telah dibangun aplikasi pengiriman pesan teks ber-markup via SMS. Aplikasi tersebut berfungsi untuk melakukan penulisan pesan teks dengan variasi huruf (formatted text) serta pembacaan pesan teks dengan variasi huruf yang diterima. Untuk merepresentasikan variasi huruf, pada pesan teks ditambahkan markup yang memberi informasi bagaimana pesan teks ditampilkan oleh aplikasi penerima. Markup yang diimplementasi merupakan HTML yang disederhanakan. Pembangunan aplikasi dilakukan dengan Java 2 Micro Edition (J2ME). Dengan adanya penambahan markup pada pesan teks, ukuran pesan teks menjadi lebih besar daripada ukuran pesan teks biasa. Bertambahnya ukuran pesan teks dapat menyebabkan pertambahan biaya pengiriman pesan teks via SMS. Sebelum pengiriman pesan dilakukan, kompresi dilakukan pada pesan dengan jumlah karakter melebihi 160 karakter. Algoritma kompresi yang digunakan adalah Arithmetic Coding. Berdasarkan pengujian yang telah dilakukan, kompresi yang dilakukan dengan Arithmetic Coding menghasilkan penurunan ukuran data yang signifikan namun belum dapat mengurangi biaya SMS dengan optimal. Aplikasi pengiriman pesan teks ber-markup ini tidak dapat berjalan sempurna pada semua handset meskipun handset tersebut mendukung aplikasi Java. Setiap handset memiliki kemampuan dukungan yang berbeda-beda terhadap API Java. Acuan implementasi aplikasi pengiriman pesan teks ber-markup ini adalah handset Nokia 6630 White, sehingga aplikasi ini dapat berjalan baik pada handset tersebut. Pada handset lain selain Nokia 6630 White, beberapa fungsionalitas aplikasi ini harus dirubah sehingga menyebabkan aplikasi ini tidak praktis.
Kata kunci : Arithmetic Coding, handset, J2ME, markup, SMS
iii
KATA PENGANTAR Puji syukur ke hadirat Allah SWT, Rabb Semesta Alam. Hanya dengan bimbingan serta pertolonganNya penulis dapat dengan baik menyelesaikan Tugas Akhir yang berjudul “Pembangunan Aplikasi Pengiriman Pesan Teks Ber-markup via Short Message Service (SMS)”. Pada kesempatan ini penulis ingin mengucapkan terima kasih kepada: 1. Orang tua, kakak, saudara kembar, serta adik di Yogyakarta yang selalu mendoakan dan memberikan motivasi. 2. Bapak Riza Satria Perdana, S.T., M.T., atas bimbingan dan saran yang diberikan selama pengerjaan Tugas Akhir ini. 3. Ibu Yani Widyani, S.T., M.T., atas segala kritik dan saran yang diberikan selaku penguji seminar dan sidang Tugas Akhir. 4. Ibu Henny Yusnita Yubir, atas segala kritik dan saran yang diberikan selaku penguji prasidang dan sidang Tugas Akhir. 5. Bapak Rinaldi Munir dan Bapak Armein Z. Langi atas bimbingan dan saran-saran yang telah diberikan. 6. Semua staf Tata Usaha program studi teknik Informatika yang telah membantu selama pengerjaan Tugas Akhir ini. 7. Neni Adiningsih dan Ratna Mutia Suci, untuk semangat, dukungan, kebersamaannya. 8. Cynthia Kustanto, untuk motivasi yang telah diberikan. 9. Arie Minandar, Muhammad Ismail Faruqi, dan Fahris Mumtaza Ahsan, atas masukan-masukannya selama pelaksanaan Tugas Akhir. 10. Ivan Hamidi, Eko Gunocipto, Novi Setiani, Lafrania Taufik, Mia Kamayani, Nurshanti, Indra Sakti, Ilden, atas kebersamaanya di Muslim STEI. 11. Seluruh rekan-rekan IF2003 atas semangat, dukungan, dan kebersamaannya selama menjalani kuliah di Informatika. 12. Seluruh rekan-rekan asisten programming, atas segala dukungannya. 13. Seluruh sahabat di Keluarga Mahasiswa Islam (Gamais) ITB. 14. Ariane, Amel, Helda, Icha, Iis, Puput, Ratna, terima kasih atas kebersamaannya belajar, beribadah, dan berbagi motivasi.
iv
15. Wida, Umi, Alwin, Netty, Usi, dan Lia, terima kasih atas hari-hari yang menyenangkan dan penuh semangat di Baitul Izzah. 16. Arinto Murdopo, Taufiq Asyhari, Nugroho Andi Hastanto, Dessy Amiruddin, dan Trian Hendro atas masukan dan saran yang telah diberikan melalui messenger. 17. Desi, Ika, Rika, dan Okta, atas dukungan, doa, dan nasihat-nasihat yang sangat bermanfaat. We are still KRST. 18. Seluruh pihak yang telah membantu baik moral maupun materi selama pengerjaan Tugas Akhir ini.
Semoga Tugas Akhir ini dapat memberikan manfaat bagi semua pihak yang membutuhkannya. Penulis menyadari bahwa Tugas Akhir ini masih memiliki banyak kekurangan. Oleh karena itu, saran dan kritik dari pembaca sangat penulis harapkan.
Bandung, September 2007
Penulis
v
DAFTAR ISI Lembar Pengesahan Program Studi Sarjana Teknik Informatika....................................... ii ABSTRAK......................................................................................................................... iii DAFTAR ISI...................................................................................................................... vi DAFTAR GAMBAR ......................................................................................................... ix DAFTAR TABEL............................................................................................................... x DAFTAR KODE ............................................................................................................... xi BAB I PENDAHULUAN.................................................................................................I-1 1.1
Latar Belakang ..................................................................................................I-1
1.2
Rumusan Masalah.............................................................................................I-3
1.3
Tujuan ...............................................................................................................I-3
1.4
Batasan Masalah ...............................................................................................I-3
1.5
Metodologi........................................................................................................I-4
1.6
Sistematika Pembahasan...................................................................................I-4
BAB II TINJAUAN PUSTAKA .................................................................................... II-1 2.1
Format Teks Rich Text Format (RTF) ........................................................... II-1
2.1.1
Komponen File RTF ............................................................................... II-1
2.1.2
Struktur File RTF.................................................................................... II-2
2.2
Standard Generalized Markup Language (SGML)........................................ II-4
2.2.1
Markup Deskriptif.................................................................................. II-4
2.2.2
Konsep Document Type .......................................................................... II-4
2.2.3
Kebebasan Data (Data Independence).................................................... II-5
2.2.4
Struktur SGML ....................................................................................... II-5
2.3
Hyper Text Markup Language (HTML) ......................................................... II-6
2.4
Short Message Service (SMS) ........................................................................ II-7
2.4.1
Jaringan dan Arsitektur ........................................................................... II-8
2.4.2
Skenario Pengiriman SMS...................................................................... II-8
2.5
Kompresi Data ................................................................................................ II-9
2.5.1
Algoritma Shannon-Fano...................................................................... II-10
2.5.2
Algoritma Huffman............................................................................... II-11
2.5.3
Arithmetic Coding................................................................................. II-13
vi
2.6
Java 2 Micro Edition .................................................................................... II-16
2.6.1
Configuration dan Profile ..................................................................... II-16
2.6.2
MIDlet................................................................................................... II-17
2.6.3
Java Messaging..................................................................................... II-17
BAB III ANALISIS ....................................................................................................... III-1 3.1
Aplikasi Pengiriman Pesan Teks Ber-markup ............................................... III-1
3.2
Format Markup .............................................................................................. III-6
3.3
Variasi Huruf ................................................................................................. III-9
3.4
Kompresi Pesan Teks..................................................................................... III-9
BAB IV PERANCANGAN...........................................................................................IV-1 4.1
Subsistem Pengirim Pesan (Sender) ..............................................................IV-1
4.1.1
Kelas MessageEditor .............................................................................IV-1
4.1.2
Kelas MarkupCreator.............................................................................IV-2
4.1.3
Kelas MessageCompressor ....................................................................IV-2
4.1.4
Kelas DestNumberForm ........................................................................IV-2
4.1.5
Kelas MessageSender ............................................................................IV-3
4.2
Subsistem Penerima Pesan (Receiver) ...........................................................IV-3
4.2.1
Kelas MessageReceiver .........................................................................IV-3
4.2.2
Kelas MessageDecompressor ................................................................IV-3
4.2.3
Kelas MessageViewer............................................................................IV-3
4.3
Kelas-kelas List..............................................................................................IV-4
4.4
Kelas Messenger ............................................................................................IV-4
4.5
Kelas RecordStore .........................................................................................IV-4
4.6
Rancangan Antarmuka...................................................................................IV-5
4.6.1
Rancangan Antarmuka Aplikasi Pengirim (Sender)..............................IV-5
4.6.2
Rancangan Antarmuka Subsistem Penerima (Receiver)........................IV-7
BAB V IMPLEMENTASI DAN PENGUJIAN ............................................................. V-1 5.1
Lingkungan Pembangunan.............................................................................. V-1
5.2
Batasan Pembangunan .................................................................................... V-1
5.3
Implementasi Kelas......................................................................................... V-2
5.4
Implementasi Markup ..................................................................................... V-3
vii
5.5
Implementasi Arithmetic Coding .................................................................... V-3
5.6
Implementasi Pegiriman Pesan ....................................................................... V-6
5.7
Implementasi Penyimpanan Pesan.................................................................. V-6
5.8
Rencana Pengujian.......................................................................................... V-7
5.9
Butir Uji .......................................................................................................... V-7
5.10
Hasil Pengujian ............................................................................................... V-8
5.11
Analisis Hasil Pengujian ............................................................................... V-12
5.11.1
Analisis Hasil Pengujian pada Berbagai Seri Handset ......................... V-12
5.11.2
Analisis Hasil Pengujian Kompresi Arithmetic Coding........................ V-12
BAB VI KESIMPULAN DAN SARAN .......................................................................VI-1 6.1
Kesimpulan ....................................................................................................VI-1
6.2
Saran ..............................................................................................................VI-2
DAFTAR REFERENSI .................................................................................................... xii DAFTAR PUSTAKA ...................................................................................................... xiv LAMPIRAN A.................................................................................................................A-1
viii
DAFTAR GAMBAR Gambar I-1 Transmisi Pesan diantara dua SME [BOD05]...............................................I-2 Gambar II-1 Arsitektur dan Jaringan SMS [GUP06] ..................................................... II-8 Gambar II-2 Skenario Pengiriman SMS[IEC06]............................................................ II-9 Gambar II-3 Daftar Simbol dan Frekuensi Kemunculan [NEL96] .............................. II-11 Gambar II-4 Algoritma Shannon-Fano untuk Mendapatkan Kode [NEL96]............... II-11 Gambar II-5 Daftar Node Bebas dan Frekuensinya [NEL96] ...................................... II-12 Gambar II-6 Pohon Biner Algoritma Huffman Setelah Dua Langkah [NEL96].......... II-12 Gambar II-7 Pohon Biner Final yang Terbentuk [NEL96]........................................... II-12 Gambar II-8 Kode yang Dihasilkan dari Algoritma Huffman [NEL96] ...................... II-13 Gambar II-9 Karakter dan Peluang Kemunculan [NEL96] .......................................... II-13 Gambar II-10 Karakter, Peluang Kemunculan, dan Range Bilangan Real[NEL96] .... II-14 Gambar II-11 Range Setiap Karakter Berkisar 0.2 - 0.3 [NEL96] ............................... II-15 Gambar II-12 Arsitektur J2ME [SHA06] ..................................................................... II-16 Gambar II-13 Siklus Hidup MIDlet [TOP02]............................................................... II-17 Gambar III-1 Diagram Use Case Aplikasi Pengiriman Pesan Ber-markup via SMS.... III-2 Gambar III-2 Sequence Diagram Menulis Teks Pesan ................................................. III-3 Gambar III-3 Sequence Diagram Memasukkan Nomor Tujuan.................................... III-3 Gambar III-4 Sequence Diagram Pengiriman Pesan dengan Kompresi....................... III-4 Gambar III-5 Sequence Diagram Pengiriman Pesan Tanpa Kompresi ........................ III-4 Gambar III-6 Sequence Diagram Membuka Inbox ....................................................... III-4 Gambar III-7 Sequence Diagram Penerimaan Pesan dengan Dekompresi Pesan ......... III-5 Gambar III-8 Sequence Diagram Penerimaan Pesan tanpa Dekompresi ...................... III-5 Gambar III-9 Pesan Teks dengan Markup ..................................................................... III-6 Gambar IV-1 Diagram Kelas Perancangan....................................................................IV-5 Gambar IV-2 Rancangan Antarmuka Message Editor ..................................................IV-6 Gambar IV-3 Rancangan Form Input Nomor Tujuan....................................................IV-6 Gambar IV-4 Rancangan List Warna Huruf ..................................................................IV-7 Gambar IV-5 Rancangan Tampilan Pesan Diterima .....................................................IV-7 Gambar V-1 Implementasi Penggabungan Kelas-Kelas Kompresi................................ V-5 Gambar V-2 Penyimpanan Pesan pada RecordStore...................................................... V-7
ix
DAFTAR TABEL Tabel II-1 Character Set pada RTF[MIC04] .................................................................. II-3 Tabel II-2 Tag HTML dan kegunaannya [W3S07] ........................................................ II-7 Tabel III-1 Daftar Kelas Analisis Aplikasi Pengiriman Pesan Teks Ber-markup ......... III-5 Tabel III-2 Tag HTML................................................................................................... III-8 Tabel III-3 Tag Aplikasi Pengiriman Pesan Ber-markup ............................................. III-8 Tabel IV-1 Rancangan Kelas Aplikasi Pengirim Pesan ................................................IV-1 Tabel IV-2 Rancangan Kelas Aplikasi Penerima Pesan ................................................IV-3 Tabel IV-3 Tabel Kelas List ..........................................................................................IV-4 Tabel V-1 Implementasi Kelas ....................................................................................... V-2 Tabel V-2 Implementasi Markup.................................................................................... V-3 Tabel V-3 Kelas-kelas Implementasi Arithmetic Coding............................................... V-4 Tabel V-4 Tabel Butir Uji............................................................................................... V-7 Tabel V-5 Hasil Pengujian Kompresi ............................................................................. V-9 Tabel V-6 Hasil Pengujian Aplikasi pada Beberapa Handphone................................. V-10
x
DAFTAR KODE Kode II-1 Tag Dasar HTML ........................................................................................... II-6 Kode II-2 Algoritma Penghitungan Range [NEL96].................................................... II-14 Kode II-3 Proses Decoding pada Arithmetic Coding[NEL96] ..................................... II-15 Kode III-1 Kode RTF untuk Pesan ‘halo’...................................................................... III-7 Kode III-2 Kode HTML untuk Pesan ‘halo’.................................................................. III-7
xi