Aplikasi Pesan Teks Yang Terenkripsi Dengan J2ME Oleh: Ema Utami Abstraksi Teknologi komunikasi akhir-akhir ini berkembang sangat pesat, terutama teknologi mobile communication, disamping teknologi perangkat keras yang terus berkembang, teknologi aplikasi perangkat lunaknya juga berkembang secara drastis. Dan makin banyaknya ponsel yang mendukung java (J2ME) di pasar membuka peluang untuk memanfaatkan teknologi tersebut untuk mempermudah suatu pekerjaan. Teknologi ini menggunakan bahasa pemrograman Java yang merupakan bahasa tingkat tinggi yang berorientasi objek dan tidak seperti bahasa pemrograman pendahulunya, C++, Java sepenuhnya menerapkan konsep Object Oriented Programming (OOP) dalam setiap program aplikasinya. Perkembangan revolusiner tersebut memicu pemanfaatan mobile application dibidang pengiriman pesan yang terenkripsi yang bertujuan untuk pengamanan dalam pengiriman sebuah pesan teks yang ada di handphone. Dengan adanya pesan teks yang terenkripsi tidak perlu khawatir akan terbacanya pesan yang masuk ke dalam handphone kita. Dengan adanya aplikasi tersebut, maka lambat laun aplikasi pada handphone berbasis Java menggunakan J2ME akan menjadi trend baru bagi para pengembang aplikasi diseluruh dunia. Kata kunci: pesan teks, terenkripsi, J2ME Pendahuluan Teknologi Java merupakan sebuah teknologi yang berkembang sangat pesat akhir-akhir ini. Teknologi Java banyak di gemari dan digunakan di kalangan praktisi software dalam mengembangkan beragam tipe aplikasi, mulai dari aplikasi aplikasi desktop, applet, aplikasi web, dan aplikasi yang dapat di jalankan didalam perangkat perangkat kecil seperti telephon selular, pager, maupun PDA. Untuk memenuhi kebutuhan akan tipe tipe aplikasi tersebut, maka Java dikategorikan kedalam tiga buah edisi yaitu J2SE untuk keperluan pengembangan applet dan aplikasi-aplikasi desktop, J2EE untuk keperluan pengembangan aplikasi-aplikasi enterprise berbasis client/server, dan J2ME untuk keperluan pengembangan aplikasi-aplikasi yang dapat di jalankan di dalam perangkat kecil seperti mobile phone dan PDA. Selain perkembangan piranti mobile, aplikasi mobile juga mengalami perkembangan yang cukup signifikan, saat Sun Microsystem mengeluarkan Java edisi mobile. Secara de facto kini java edisi mobile menjadi salah satu standar fitur dalam piranti mobile. Berdasarkan latar belakang tersebut, maka penulis mencoba mengembangkan teknologi aplikasi mobile dengan membangun aplikasi pesan teks yang terenkripsi dengan J2ME. Dari penjelasan diatas, dapat diambil rumusan yang akan menjadi pembahasan penelitian yaitu. 1. Bagaimanakah merancang sebuah sistem aplikasi pesan teks yang terenkripsi? 2. Apa kelebihan dan kekurangan dari pesan teks yang terenkripsi dengan pesan teks yang tidak terenkripsi 3. Apakah jenis operator dan jenis handphone yang digunakan berpengaruh dalam proses enkrip dan deskrip. Penulis memberikan batasan-batasan masalah dalam merancang aplikasi pesan teks yang terenkripsi. Ruang lingkup terhadap masalah yang diambil untuk perancangan aplikasi ini adalah: 1. Aplikasi yang akan dibuat adalah sebuah aplikasi pesan teks yang terenkripsi pada hand phone 2. Bagaimana mengimplementasikan aplikasi tersebut dengan menggunakan handphone yang berbasis java 3. Aplikasi pesan teks yang terenkripsi hanya di gunakan oleh instansi pemerintahan, agar menjaga keamanan data pada pengiriman pesan. J2ME J2ME merupakan teknologi java yang digunakan untuk aplikasi mobile device yang memiliki memori terbatas. Komponen-komponen J2ME terdiri dari Java Virtual Machine (JVM) yang digunakan untuk menjalankan aplikasi Java pada emulator atau handheld device, Java API (Aplication Programming Interface) dan tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone, emulator Motorolla dari J2ME wireless toolkit. Dalam pengembangan aplikasi wireless dengan Java, J2ME dibagi menjadi dua buah bagian diantaranya ialah bagian configuration dan profile. 1. Lapisan Konfigurasi (Configuration Layer ) J2ME mempunyai dua konfigurasi yaitu Connected Limited Device Configuration (CLDC) dan Connected Device Configuration (CDC). 2. Lapisan Profil (Profile Layer) J2ME mempunyai beberapa profil antara lain: Mobile Information Device Profile (MIDP), Foundation Profile (FP), Personal Profile dan Personal Digital Assistance (PDA) Gambar 1: Lapisan Konvigurasi (Knudsen, 2003) Dilihat dari Gambar diatas maka J2ME mempunyai lapisan konfigurasi dan profile yang didukung oleh Java Virtual Machine (C-Virtual Machine dan K-Virtual Machine). Aplikasi yang berjalan pada sebuah perangkat yang mendukung MIDP disebut dengan MIDlet. Dengan kata lain MIDlet merupakan aplikasi dari MIDP (Mobile Information Device Profile). Gambar 2: Arsitektur Aplikasi MIDP (Knudsen, 2003) Lifecycle dari sebuah MIDlet ditangani oleh Application Management Software (AMS)1. AMS adalah sebuah lingkungan tempat siklus dari sebuah MIDlet, mampu untuk diciptakan, dijalankan, dihentikan maupun dihilangkan. AMS sering pula disebut dengan Java Application Manager (JAM). MIDlet memiliki beberapa state, yaitu Pause, Active dan Destroy. Ketika masing-masing state dipanggil, beberapa method yang bersesuaian dipanggil. Method- method tersebut merupakan bawaan dari J2ME. Untuk menjelaskan proses MIDlet dalam Java Aplication Manager (JAM) adalah sebagai berikut : Gambar 3: LifeCycle MIDlet (Knudsen, 2003) Requirement Analisis 1. Perangkat Keras Dalam pembuatan aplikasi pesan teks yang terenkripsi, spesifikasi perangkat keras yang di gunakan untuk pembuatan program pesan teks yang terenkripsi dengan menggunakan notebook, yang memiliki spesifikasi sebagai berikut : Tabel 1: Spesifikasi Notebook Yang Digunakan Perangkat Keras Spesifikasi Processor Intel(R) Core(TM)2 CPU T5500 1,66GHz Motherboard BenQ Joibook R55v SODIMM Samsung DDR2 2048 MB HDD Hitachi 100 GB Layar BenQ 15.4” UltraVivid Display Keyboard + Mouse Standard + Touchpad Optical Drive DVD-Super Multi DL Graphics NVIDIA GeForce Go7400 Printer Epson C79 Speaker Altek lansing 4100 Handphone yang digunakan untuk aplikasi ini adalah Sony Ericsson K800i. adapun spesifikasi lengkap dapat dilihat pada tabel dibawah ini : Tabel 2: Spesifikasi Sony Ericsson K800i Sony Ericsson K800i Spesifikasi Dimensi 105.0 x 47.0 x 22.0 mm Berat 115.0 gr Antena Internal Operating Band GSM(900, 1800, 1900) Jaringan 3G Layar 262.144 warna TFT Pesan SMS, EMS, MMS Kamera 3,2 mp Internal Memory 64 MB External Memory Card M2 Baterai Li-Pol Infra Red Ya Bluetooth v1,1 Sistem Operasi Tidak Ada Browser Wap v2x, xHTML Java MIDP v,2,0 Simcard 3 dengan modus jaringan GPRS (General Packet Radio Services), kecepatan transfer data 4050Kbps2. 2. Perangkat Lunak Perangkat lunak yang digunakan penulis dalam pembuatan aplikasi pencatatan pengiriman barang dan jasa ini adalah sebagai berikut: 1. windows vista XP sp2 2. WTK 2,5 3. jdk6 update 10 Aplikasi pesan teks yang terenkripsi adalah suatu aplikasi berbasis mobile yang di bangun untuk memenuhi kebutuhan para pengguna ponsel dalam menjaga keamanan data pada pesan teks yang tersimpan di dalam memory ponsel mereka, agar terhindar dari pembajakan oleh pihak yang tidak diinginkan. Aplikasi ini pada dasarnya hanya akan memanfaatkan fitur Record management System (RMS) yang terdapat pada ponsel, RMS ini akan kita manfaatkan untuk membuat database lokal dengan atributatributnya sehingga kita bisa melakukan penyimpanan file teks di dalam ponsel. RMS lebih dikenal dengan istilah memory pada ponsel. Setiap hasil pengolahan data yang dilakukan oleh aplikasi ini semua akan disimpan ke dalam memori ponsel sehingga kita tidak membutuhkan sebuah koneksi ke database luar yang tentunya akan memberatkan aplikasi, karena aplikasi akan membutuhkan waktu untuk merequest ke server dan menunggu respon dari server. Perancangan alpikasi smart balengku meliputi rancangan sistem yang akan dibangun (Use Case Diagram), rancangan objek (Class Diagram), rancangan integrasi antar objek (Sequence Diagram), rancangan arsitektur, dan rancangan tampilan (User Interface). Rancangan Sistem yang akan Dibangun (Use Case Diagram) Berikut ini adalah rancangan aplikasi Pesan teks yang terenkripsi yang akan dibangun, di sini dijelaskan siapa saja yang berperan ketika aplikasi pesan teks yang terenkripsi dijalankan dan apa saja yang dapat dilakukan. Gambar di bawah ini menjelaskan mengenai Business Logic dari aplikasi pesan teks yang terenkripsi. Gambar 4: Use case diagram Aplikasi Pesan teks yang terenkripsi didesain hanya untuk digunakan oleh seorang penguna dalam satu device, artinya dalam sebuah mobile device aplikasi ini hanya akan terisntal sebuah aplikasi saja dan tidak akan melibatkan aplikasi-aplikasi yang lain, Pengguna aplikasi Pesan Teks yang Terenkripsi hanya bisa melakukan beberapa tindakan, yaitu 1. Menjalankan Aplikasi (Start Aplication) Setelah aplikasi terinstal pada ponsel, pengguna bisa langsung menggunakan fitur-fitur yang telah tersedia pada aplikasi tanpa perlu melakukan registrasi atau sejenisnya. 2. Menjalankan Fitur Pesan Menjalankan aplikasi pesan teks yang terenkripsi hanya akan meliputi penggunaan fitur pesan dan bagaimana cara membuat pesan agar menjadi lebih aman agar tidak mudah di baca oleh orang yang tidak diinginkan. 3. Menyimpan pesan Pengguna yang menggunakan Pesan Teks Yang Terenkripsi ini bisa melakukan penyimpanan pesan ke dalam media kotak simpan. 4. Menghapus pesan Data pesan yang telah tersimpan kedalam memory akan terus tersimpan sampai ada sebuah method untuk menghapus pesan yang telah tersimpan kedalam memory, untuk itu aplikasi pesan teks yang terenkripsi juga menyediakan sebuah method untuk menghapus pesan untuk mencegah penumpukan data pada memory yang bisa menyebabkan media menjadi hang. Rancangan Objek (Class Diagram) Aplikasi Pesan Teks yang terenkripsi tersusun atas beberapa objek penyusun yang menjadi dasar untuk membangun aplikasi ini, objek-objek tersebut saling menghubungkan antara objek yang satu dengan objek-objek yang lain, tergantung dari fungsi-fungsi dan method yang menghubungkan. Berikut ini adalah rancangan objek yang menyusun aplikasi Pesan Teks yang terenkripsi: Gambar 5: class Diagram Rancangan Integrasi Antar Objek (Sequence Diagram) Pembuatan Sequence Diagram akan dikelompokkan berdasarkan pelaku yang berinteraksi dengan aplikasi pesan teks yang terenkripsi. Dari Sequence Diagaram ini alur serta method-method apa saja yang digunakan akan keliahatan, sehingga mempermudah progrmaing agar lebih terarah. Berikut lebih jelas mengenai gambar perancangannya: Gambar 6: Sequence Diagram Diagram State Proses enkripsi Diagram state proses enkripsi pada aplikasi pesan teks yang terenkripsi bertujuan untuk menunjukkan proses enkripsi data teks yang dienkripsi menjadi chiperteks, proses ini melibatkan beberapa komponen aplikasi yaitu dari mulai pengguna menjalankan aplikasi kemudian aplikasi akan menampilkan menu tulis pesan untuk mengirim pesan, dari menu tulis pesan pengguna bisa langsung melakukan enkrip untuk mengirim pesan secara otomatis. Start aplikasi Pilih Fitur Menu Tulis SMS Tulis Pesan Kirim Keluar Simpan Enkrip Gambar 7: Proses enkripsi Diagram State Proses Dekripsi Diagram state proses dekripsi pada aplikasi Pesan teks yang terenkripsi bertujuan untuk menunjukkan proses dekripsi data teks yang masuk pada database untuk di dekrip ulang menjadi data teks untuk di perlihatkan kepada pengguna, adapun beberapa komponen aplikasi yang dilibatkan mulai dari pengguna yang menjalankan aplikasi kemudian pengguna menekan tombol pilihan ke menu inbox untuk melihat pesan (telah terenkripsi menjadi teks) yang akan dipilih, setelah pengguna menekan tombol lihat maka aplikasi secara otomatis mendekrip kembali data teks yang ditampilkan pada menu inbox untuk ditampilkan kepada pengguna. Start aplikasi Pilih Fitur Inbox Pilih pesan Baca Pesan Keluar Hapus Deskrip Gambar 8: Proses dekripsi Perancangan Antar Muka Halaman utama pada pesan teks yang terenkripsi , memberikan 3 menu utama yang memiliki kegunaan tersendiri. Setiap menu yang di buat penulis sudah sangat mudah untuk mengetahui apa saja dari kegunaan menu tersebut. 1. Form login bertujuan untuk masuk ke aplikasi agar tidak mudah di baca oleh orang lain 2. Change password berisi tentang memasukkan password atau merubah password yang sudah ada 3. Menu About berisi tentang profile dari programer dan ucapan terima kasih kepada teman teman yang sudah membantu atas program yang penulis buat. Gambar 9: Halaman utama Implementasi Sistem Dalam analisa perancangan antara muka pesan teks yang terenkripsi yang telah dibuat, maka berikut tampilan program pesan teks yang telah diimplementsikan kedalam bahasa pemrograman. Pesan teks terdiri dari beberapa halaman, diharapkan user dapat dengan mudah menggunakannya dalam proses pengiriman dan penerimaan pesan teks yang masuk. Implementasi rancangan program ke dalam antar muka pesan teks yang terenkripsi : Gambar 10: halaman pembuka Ketika User memilih menu tulis sms,pesan masi dalam keadaa seperti aslinya dan ketika pesan sudah di kirim maka pesan yang terkirim sudah terenkripsi secara otomatis. Lamanya proses enkripsi dilakukan dari berapa besarnya kapasitas pesan yang akan di kirim. Gambar 11: proses pengiriman pesan Proses deskripsi terjadi ketika pesan yang masuk akan secara otomatis di deskripsi, dan baru dapat di baca isi pesan yang masuk. Apabila user mengirim pesan melalui aplikasi pesan teks yang terenkripsi, ke pengguna yang lain maka pesan yang masuk tidak dapat di baca, dalam artian file seperti error. Gambar 12: menu inbox Uji Coba Sistem Tujuan dilakukannya pengujian terhadap suatu perangkat lunak adalah untuk mengetahui kesesuaian aplikasi dengan rancangan sebelumnya. Pada pesan teks yang terenkripsi masukkan berupa pesan teks yang kemudian di enkripsi lalu di kirim ke pengguna lain yang sudah memiliki aplikasi pesan teks yang terenkripsi. Ada beberapa tujuan uji coba yang akan dilakukan terhadap Pesan teks yang terenkripsi untuk mengetahui ksesuaian terhadap rancangan, diantaranya : 1. Mengetahui optimasi dari suatu program 2. Mengetahui kemampuan aplikasi dalam mengenkripsi pesan teks 3. Mengetahui waktu yang dibutuhkan untuk mengenkripsi sebuah file. Untuk mengetahui apakah tujuan dari uji coba diatas telah tercapai atau tidak, maka penulis melakukan beberapa cara uji coba terhadap aplikasi. Adapun cara-cara tersebut antara lain : 1. Pengujian aplikasi 2. Pengujian enkripsi pada pesan teks yang terenkripsi 3. Pengujian dekripsi pada pesan teks yang masuk Pengujian aplikasi dilakukan dengan menggunakan simulasi dan implementasi dari pesan teks yang terenkripsi. Simulasi dilakukan untuk pengujian awal pesan teks sedangkan implementasi dilakukan untuk pengujian Pesan teks di dalam peralatan yang sesungguhnya. Data di bawah ini adalah data yang di-outputkan pada KToolbar pada saat emulator dijalankan untuk mengirimkan SMS. Gambar 13: Proses pengiriman sms biasa Gambar 14: Proses penerimaan sms biasa Dari proses diatas didapat bahwa informasi yang dikirimkan oleh pengirim sama dengan informasi yang diterima oleh penerima. Hal ini dikarenakan tidak adanya proses enkripsi / deskripsi dalam pengiriman maupun penerimaan. Berbeda apabila informasi yang dikirimkan melalui proses enkripsi oleh pengirim dan didekompresi oleh penerima, maka hasil informasi yang didapat akan berbeda. Gambar 15: Proses pengiriman sms enkripsi Gambar 16: Proses penerimaan sms enkripsi Dari hasil yang didapat diatas terlihat bahwa informasi yang diterima oleh penerima berupa bilangan heksadesimal. Dikarenakan kedua belah pihak tidak menggunakan program yang sama, maka informasi yang diterima berbeda dengan informasi yang dikirimkan. Hal ini terjadi karena tidak adanya proses dekompresi oleh penerima. Ketika proses pengiriman dengan enkripsi metode Huffman, maka pada toolkit terlihat sebagai berikut: Kirim ke: sms://+5550001:7575 SMS dari com.sun.midp.io.j2me.sms.BinaryObject@1a4cfaaa 10000010100001000101000011101000110001001011111010010100001110100110100000001000 01101101010111100010101001101101110100010111010101100000101001010110100011110111 10001100111011010001010111011001010001001000101100101001011010011010100111101010 11000001010010101101000111001100010010110101001010001110110110110110101110110110 01000111 Data tersebut adalah data yang dihasilkan oleh program setelah melalui proses perpindahan dari huruf kode standar ke alfanumerik biner. A 1 2 3 B 4 5 C D Gambar 17: Hasil sms yang diterima oleh penerima ketika analisa program Keterangan: 1: Jumlah karakter asli yang akan dikirim 2: Jumlah karakter hasil enkripsi yang akan dikirim 3: Prosentase karakter hasil enkripsi terhadap karakter asli 4: Menu perintah pengiriman pesan standar 5: Menu perintah pengiriman pesan terenkripsi A: Nomor handphone pengirim B: Lama yang dibutuhkan untuk dekompres pesan sms C: Sms sebelum didekompresi D: Sms setelah didekompresi Data hasil kompresi adalah data yang dikirimkan oleh pengirim dan diterima oleh penerima. Hasil simulasi lainnya : Tabel 3: Data Pesan SMS Hasil Simulasi Pengiriman dan Penerimaan SMS Pesan Asli Panjang Pesan Byte Pesan Kompresi Panjang Pesan Asli Terkirim Assalamu ‘alaikum. Hai apa kabar friends? Gimana kabarmu hari ini? 66 karakter 100000101000010001010000111 010001100010010111110100101 000011101001101000000010000 110110101011110001010100110 110111010001011101010110000 010100101011010001111011110 001100111011010001010111011 001010001001000101100101001 011010011010100111101010110 000010100101011010001110011 000100101101010010100011101 101101101101011101101100100 0111 41 karakter Data di bawah ini adalah data yang di-output-kan pada KToolbar pada saat emulator dijalankan untuk mengirimkan SMS. Gambar 18: Proses pengiriman sms biasa Gambar 19: Proses penerimaan sms biasa Dari proses diatas didapat bahwa informasi yang dikirimkan oleh pengirim sama dengan informasi yang diterima oleh penerima. Hal ini dikarenakan tidak adanya proses enkripsi / deskripsi dalam pengiriman maupun penerimaan. Berbeda apabila informasi yang dikirimkan melalui proses enkripsi oleh pengirim dan didekompresi oleh penerima, maka hasil informasi yang didapat akan berbeda. Gambar 20: Proses pengiriman sms enkripsi Gambar 21: Proses penerimaan sms enkripsi Dari hasil yang didapat diatas terlihat bahwa informasi yang diterima oleh penerima berupa bilangan heksadesimal. Dikarenakan kedua belah pihak tidak menggunakan program yang sama, maka informasi yang diterima berbeda dengan informasi yang dikirimkan. Hal ini terjadi karena tidak adanya proses dekompresi oleh penerima. Ketika proses pengiriman dengan enkripsi metode Huffman, maka pada toolkit terlihat sebagai berikut: Kirim ke: sms://+5550001:7575 SMS dari com.sun.midp.io.j2me.sms.BinaryObject@1a4cfaaa 10000010100001000101000011101000110001001011111010010100001110100110100000001000 01101101010111100010101001101101110100010111010101100000101001010110100011110111 10001100111011010001010111011001010001001000101100101001011010011010100111101010 11000001010010101101000111001100010010110101001010001110110110110110101110110110 01000111 Data tersebut adalah data yang dihasilkan oleh program setelah melalui proses perpindahan dari huruf kode standar ke alfanumerik biner. A 1 2 3 B 4 C 5 D Gambar 22: Hasil sms yang diterima oleh penerima ketika analisa program Keterangan: 1: Jumlah karakter asli yang akan dikirim 2: Jumlah karakter hasil enkripsi yang akan dikirim 3: Prosentase karakter hasil enkripsi terhadap karakter asli 4: Menu perintah pengiriman pesan standar 5: Menu perintah pengiriman pesan terenkripsi A: Nomor handphone pengirim B: Lama yang dibutuhkan untuk dekompres pesan sms C: Sms sebelum didekompresi D: Sms setelah didekompresi Data hasil kompresi adalah data yang dikirimkan oleh pengirim dan diterima oleh penerima. Hasil simulasi lainnya : Tabel 4: Data Pesan SMS Hasil Simulasi Pengiriman dan Penerimaan SMS Pesan Asli Panjang Pesan Byte Pesan Kompresi Panjang Pesan Asli Terkirim Assalamu ‘alaikum. Hai apa kabar friends? Gimana kabarmu hari ini? 66 karakter 100000101000010001010000111 010001100010010111110100101 000011101001101000000010000 110110101011110001010100110 110111010001011101010110000 010100101011010001111011110 001100111011010001010111011 001010001001000101100101001 011010011010100111101010110 000010100101011010001110011 000100101101010010100011101 101101101101011101101100100 0111 41 karakter Saran Untuk lebih menyempurnakan aplikasi ini, terdapat beberapa saran yang mungkin dapat dipergunakan antara lain : 1. Logika program dapat dikembangkan lagi untuk optimasi kerja sistem. Hal ini agar sistem mampu melakukan enkripsi/dekripsi terhadap lebih banyak tipe masukan data dan kapasitasnya. 2. Kunci pada sistem dapat menjadi sebuah pilihan saja bagi user (bukan masukan). Hal ini menjadi faktor pendukung tingkat kekuatan sistem. 3. Sistem enkripsi pesan teks dapat di kembangka lagi agar keamanan data semakin terjaga. 4. Sistem dapat dikembangkan menjadi lebih terstruktur dengan implementasi database terhadapnya. Sehingga user bisa menyimpan dan meload kembali pesan yang sudah di hapus Referensi Knudsen , Jonathan. 2003.Wireless Java Developing with J2ME, Second Edition: Apress.