IV-1
BAB IV
PERANCANGAN
Pada bab IV akan dibahas rancangan lebih lanjut dari perancangan perangkat lunak yang akan dibangun. Perancangan tersebut akan meliputi pembahasan diagram kelas, perancangan modul dan perancangan antar muka.
4.1 Perancangan Kelas
4.1.1 Diagram Perancangan Kelas
Berdasarkan analisis kelas yang telah dilakukan pada subbab 3.2.4, maka dapat dilihat diagram kelas perancangan pada Gambar IV-1.
Interface + SendAndSave () : void SMSSender - inter : Interface + run () : void SMSReceive -smsPort smsconn msg senderAddress buf inter : String : MessageConnection : Message : String : StringBuffer : Interface + + AmbilNomor (String S) run () : String : void RC6 -w u r S[] A B C D LGW : int : int : int : int : int : int : int : int : int = 32 = 4 = 5 -+ -+ -+ -Decription ()
Dekrip (byte[] in, int inOff, byte[] out) Encryption ()
Enkrip (byte[] in, int inOff, byte[] out) F (int x)
initreg (byte[] src, int srcOff) regToCipher (byte[] dst, int dstOff) regToPlain (byte[] out, int inOff) rotateLeft (int x, int y) rotateRight (int x, int y) setKey (byte[] key)
swap (int A, int B, int C, int D)
: void : void : void : void : int : void : void : void : int : int : void : void ECB -plain blocksize algo jumlahblock pad : byte[] : int : RC6 : int : int = 16 + + enkripECB () DekripECB () : void : void SMSStore -inbox inboxdate outbox outboxdate sender receiver : RecordStore : RecordStore : RecordStore : RecordStore : RecordStore : RecordStore + + + + DeleteAllInbox () DeleteAllOutbox ()
SaveInbox (byte[] pesan, byte[] date, byte[] address) SaveOutbox (byte[] pesan, byte[] date, byte[] address)
: void : void : void : void
IV-2
4.1.2 Deskripsi Diagram Perancangan Kelas
Berikut adalah deskripsi dan penjelasan dari kelas-kelas yang muncul pada diagram perancangan kelas:
1. Kelas Interface
Kelas ini akan menjadi kelas midlet perangkat lunak yang akan dibangun. Kelas ini juga akan menjadi kelas yang menunggu datangnya SMS pada port yang digunakan oleh perangkat lunak untuk menerima SMS. Port yang digunakan untuk menunggu pesan adalah port 50000.
2. Kelas ECB
Isi dari kelas ini adalah mengimplementasikan mode ECB yang digunakan untuk melakukan enkripsi pada pesan yang akan dikirim.
3. Kelas SMSSender
Kelas ini akan menjadi kelas yang dapat dijalankan pada sebuah thread. Kelas ini akan melakukan pengiriman pesan. Pesan yang dikirim akan ditujukan pada aplikasi yang menempati port 50000.
4. Kelas SMSReceive
Kelas ini digunakan untuk memproses pesan yang datang pada port 50000. Pesan yang datang akan diproses sehingga informasi pesan tersebut dapat ditampilkan pada layar dan siap untuk didekripsi.
5. Kelas SMSStore
Kelas ini akan berfungsi untuk melakukan penyimpanan pesan. Pada sebuah pesan, informasi yang akan dipesan adalah informasi isi pesan, informasi pengirim atau penerima dan informasi waktu pesan dikirimkan atau diterima. Untuk pesan yang diterima, pesan yang disimpan adalah pesan yang telah didekripsi, oleh karena itu, apabila pengguna tidak melakukan dekripsi pesan maka pesan tidak akan disimpan. Sedangkan untuk pesan yang dikirim, pesan yang disimpan adalah pesan yang telah terenkripsi.
6. Kelas RC6
Kelas ini akan mengimplementasikan algoritma RC6 yang siap untuk diimplementasikan pada mode ECB.
IV-3
4.1.3 Operasi dan Atribut
1. Kelas Interface
Daftar dan penjelasan operasi dari kelas Interface dapat dilihat pada Tabel IV-1.
Tabel IV-1 Daftar Operasi dari Kelas Interface
Nama Operasi Visibility
(private, public)
Keterangan
SendAndSave Public Prosedur ini berfungsi untuk
menjalankan prosedur pengiriman pesan dan menyimpan pesan yang dikirim.
2. Kelas ECB
Daftar operasi dan penjelasan dari kelas ECB dapat dilihat pada Tabel IV-2 dan daftar atribut kelas ECB dapat dilihat pada Tabel IV-3.
Tabel IV-2 Daftar Operasi Kelas ECB
Nama Operasi Visibility
(private, public)
Keterangan
enkripECB Public Prosedur ini berfungsi untuk
melakukan enkripsi dengan mode ECB
DekripECB Public Prosedur ini berfungsi untuk
melakukan dekripsi dengan mode ECB
Tabel IV-3 Daftar Atribut Kelas ECB
Nama Atribut Visibility
(private, public)
Tipe
plain Private Array of byte
IV-4 3. Kelas SMSSender
Daftar operasi dan penjelasan dari kelas ECB dapat dilihat pada Tabel IV-4 dan daftar atribut kelas ECB dapat dilihat pada Tabel IV-5.
Tabel IV-4 Daftar Operasi Kelas SMSSender
Nama Operasi Visibility
(private, public)
Keterangan
run Public Prosedur ini akan dapat
dijalankan pada sebuah thread. Pada fungsi ini akan dilakukan proses pengiriman pesan.
Tabel IV-5 Daftar Atribut Kelas SMSSender
Nama Atribut Visibility
(private, public)
Tipe
inter private Interface
4. Kelas SMSReceive
Daftar operasi dan penjelasan dari kelas ECB dapat dilihat pada Tabel IV-6 dan daftar atribut kelas ECB dapat dilihat pada Tabel IV-7.
Tabel IV-6 Daftar Operasi Kelas SMSReceive
Nama Operasi Visibility
(private, public)
Keterangan
AmbilNomor Public Fungsi ini digunakan untuk
mengambil nomor pengirim dari data pesan yang didapat
run Public Prosedur ini dapat dijalankan
pada sebuah thread. Fungsi ini akan berjalan ketika pesan datang. fungsi ini akan berfungsi untuk memproses pesan yang datang.
IV-5 Tabel IV-7 Daftar Atribut Kelas SMSReceive
Nama Atribut Visibility
(private, public)
Tipe
smsPort Private String
Smsconn Private MessageConnection
msg Private Message
senderAddress Private String
buf Private StrinBuffer
inter Private Interface
5. Kelas SMSStore
Daftar operasi dan penjelasan dari kelas ECB dapat dilihat pada Tabel IV-8 dan daftar atribut kelas ECB dapat dilihat pada Tabel IV-9.
Tabel IV-8 Daftar Operasi Kelas SMSStore
Nama Operasi Visibility
(private, public)
Keterangan
DeleteAllInbox Public Prosedur ini berfungsi untuk
menghapus semua isi data pada inbox
DeleteAllOutbox Public Prosedur ini berfungsi untuk menghapus semua isi data pada outbox.
SaveInbox Public Prosedur ini berfungsi untuk
menyimpan informasi pesan pada inbox.
SaveOutbox Public Prosedur ini berfungsi untuk
menyimpan informasi pesan pada inbox
Tabel IV-9 Daftar Atribut Kelas SMSStore
Nama Atribut Visibility
(private, public)
Tipe
inbox Private RecordStore
inboxdate Private RecordStore
outbox Private RecordStore
IV-6
Nama Atribut Visibility
(private, public)
Tipe
sender Private RecordStore
receiver Private RecordStore
6. Kelas RC6
Daftar operasi dan penjelasan dari kelas ECB dapat dilihat pada Tabel IV-10 dan daftar atribut kelas ECB dapat dilihat pada Tabel IV-11.
Tabel IV-10 Daftar Operasi Kelas RC6
Nama Operasi Visibility
(private, public)
Keterangan
Decryption Private Prosedur ini berisi
implementasi fungsi dekripsi algoritma RC6.
Dekrip Public Prosedur berfungsi untuk
melakukan dekripsi suatu blok plainteks
Encryption Private Prosedur ini berisi
implementasi fungsi enkripsi algoritma RC6.
Enkrip Public Prosedur berfungsi untuk
melakukan enkripsi suatu blok plainteks
F Private Fungsi berisi fungsi
f(x) = (x*(2*+!))
initreg Private Prosedur ini berfungsi untuk
melakukan inisialisasi register A, B, C dan D
regToCipher Private Prosedur ini berfungsi untuk
mengubah hasil enkripsi yang masih berupa register-register menjadi cipherteks.
IV-7
Nama Operasi Visibility
(private, public)
Keterangan
regToPlain Private Prosedur ini berfungsi untuk
mengubah hasil dekripsi yang masih berupa register-register menjadi plainteks.
rotateLeft Private Fungsi untuk melakukan
rotasi sejumlah bit ke kiri.
rotateRight Private Fungsi ini berfungsi untuk
melakukan rotasi sejumlah bit ke kanan.
setKey Public Fungsi ini berfungsi untuk
membangun kunci internal.
swap Private Prosedur ini digunakan untuk
melakukan swapping antara register.
Tabel IV-11 Daftar Atribut Kelas RC6
Nama Atribut Visibility
(private, public) Tipe w Private Integer U Private Integer R Private Integer S Private Integer A Private Integer B Private Integer C Private Integer D Private Integer LGW Private Integer
IV-8
4.2 Pembagian Modul
Modul yang akan terdapat pada perangkat lunak akan dibagi menjadi 4 modul, yaitu:
1. Modul enkripsi pesan
Modul ini berisi fungsi-fungsi yang diperlukan untuk mengubah pesan yang dimasukkan oleh pengguna menjadi cipherteks. Pesan yang telah diubah menjadi cipherteks ini siap dikirimkan kepada penerima. Implementasi algoritma enkripsi RC6 diimplementasikan pada modul ini.
2. Modul penyimpanan pesan
Modul ini akan menangani proses penyimpanan pesan. Dari sisi pengirim, pesan yang disimpan merupakan pesan yang telah dikirimkan kepada penerima, yaitu berupa cipherteks, sedangkan dari sisi penerima, pesan yang disimpan adalah pesan yang telah diterima dan di dekripsi. Pesan yang disimpan oleh penerima tidak memperhitungkan pesan tersebut di dekripsi dengan menggunakan kunci yang tepat atau tidak.
3. Modul pengirim pesan
Fungsi-fungsi untuk melakukan pengiriman pesan dilakukan oleh modul ini. Modul pengiriman pesan ini akan mengirimkan pesan yang telah terenkripsi kepada telepon selular tujuan.
4. Modul dekripsi pesan
Dekripsi pesan ditangani oleh modul ini. Fungsi-fungsi pada modul ini akan berisi fungsi dekripsi algoritma RC6 dan fungsi-fungsi lain yang berguna untuk melakukan dekripsi.
5. Modul penerima pesan
Modul ini akan memiliki fungsi-fungsi yang berguna untuk menangkap pesan yang masuk dan memprosesnya sehingga pesan tersebut siap untuk didekripsi.
IV-9 Modul-modul tersebut akan berinteraksi satu sama lain sesuai dengan Gambar IV-2
Gambar IV-2 Interaksi Modul
4.3 Perancangan Antar Muka
Berikut akan dilakukan perancangan antar muka dari beberapa layar yang penting pada aplikasi yang akan dibangun. Antar muka yang akan dirancang meliputi:
1. antar muka menu utama
2. antar muka menu pembangunan pesan 3. antar muka laporan hasil enkripsi. 4. antar muka daftar pesan yang disimpan
Antar muka lainnya akan mengikuti rancangan antar muka ketiga antar muka utama tersebut. Antar muka yang dibangun akan ditujukan pada telepon selular dengan dua buah tombol navigasi.
4.3.1 Perancangan Antar Muka Menu Utama
Menu utama ini akan menjadi menu navigasi utama dari perangkat lunak yang akan dibangun. Gambar antar muka hasil perancangan untuk menu utama dapat dilihat pada Gambar IV-3.
IV-10 Gambar IV-3 Perancangan Antar Muka Menu Utama
Pada Gambar IV-3 dapat terlihat bahwa akan terdapat 6 buah pilihan yang dapat dipilih dari menu utama. Pilihan tersebut adalah:
1. Compose Message
Jika pilihan ini dipilih maka layar untuk membuat suatu pesan akan muncul dan pengguna akan dapat memulai untuk membangun pesan.
2. Inbox
Menu inbox akan menampilkan daftar dari pesan yang telah diterima yang telah didekripsi oleh pengguna.
3. Outbox
Pesan yang telah dikirimkan akan masuk ke Outbox. Untuk melihak daftar dari Outbox tersebut, menu ini haruslah dipilih.
4. Option
Pilihan ini berfungsi untuk menuju layar untuk melakukan perubahan jumlah rotasi dari algoritma RC6.
5. Help
Jika pengguna ingin melihat menu pertolongan, maka pilihan Help inilah yang seharusnya dipilih.
6. Exit
IV-11
4.3.2 Perancangan Antar Menu Pembangunan Pesan
Antar muka yang akan terlihat ketika pengguna membangun pesan yang akan dienkripsi yang kemudian akan dikirimkan dapat dilihat pada Gambar IV-4.
Gambar IV-4 Perancangan Antar Muka Menu Pembangunan Pesan
Pada layar antar muka pembangunan pesan akan terdapat dua buah teks field, yaitu
Phone Number dan Message. Field Phone Number merupakan isian yang digunakan
sebagai nomor tujuan pengiriman pesan dan field Message merupakan isi pesan yang akan dienkripsi. Dua buah tombol yang akan muncul adalah tombol back dan menu.
Tombol back akan berfungsi untuk kembali ke layar menu utama dan tombol menu akan menampilkan menu lain, yaitu menu yang terdiri dari tombol encrypt message dan tombol exit. Tombol encrypt message akan memunculkan sebuah field untuk memasukkan kunci enkripsi yang akan digunakan untuk melakukan enkripsi terhadap pesan yang ditulis oleh pengguna. Tombol exit akan berfungsi untuk keluar dari aplikasi.
IV-12
4.3.3 Perancangan Antar Muka Layar Laporan Hasil Enkripsi
Pada Gambar IV-5 dapat dilihat rancangan antar muka dari layar yang ditampilkan ketika aplikasi selesai melakukan enkripsi terhadap pesan yang telah dimasukkan oleh pengguna.
Gambar IV-5 Perancangan Layar Laporan Hasil Enkripsi
Pada layar laporan hasil enkripsi akan terdapat tiga buah field teks, yaitu:
1. Encrypted Message
Field akan berisi informasi dari pesan yang telah dienkripsi yang diubah menjadi bentuk String.
2. Hex Information
Untuk melengkapi informasi yang terdapat pada field Encrypted Message yang dimana informasi yang ditampilkannya tidak akan benar-benar akurat karena pada dasarnya layar monitor tidak dapat menampilkan bentuk binary. Pada field Hex Information, informasi cipher teks dalam bentuk heksadesimal akan ditampilkan.
3. Encription Time
Pada field ini akan ditampilkan waktu yang digunakan aplikasi dalam melakukan enkripsi pesan.
IV-13
4.3.4 Perancangan Antar Muka Daftar Isi Pesan yang Disimpan
Pada Gambar IV-6 dapat dilihat perancangan antar muka untuk menampilkan daftar inbox dan outbox.
Gambar IV-6 Perancangan Antar Muka Daftar Isi Pesan yang Disimpan
Jenis pesan pada pada Gambar IV-6 adalah merupakan judul daftar pesan apakah itu
inbox atau outbox. Menu untuk tombol disamping akan menampilkan perintah untuk
melihat detail pesan tersebut atau untuk membalas pesan tersebut untuk inbox. Tombol back akan berfungsi untuk kembali ke layar menu utama.
Daftar pesan diperlihatkan dengan format:
<nomor pengirim/penerima><tanggal pesan diterima/ dikirimkan>
Detil pesan sendiri akan ditampilkan pada suatu textbox Detil pesan yang akan ditampilkan terdiri dari informasi pengirim atau penerima, tanggal pesan dikirim atau diterima dan isi dari pesan.