Aplikasi Pesan Teks Yang Terenkripsi Dengan

advertisement
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.
Download