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. SMSSender - inter : Interface + run () : void Interface
SMSStore
+ SendAndSave () : void
ECB -
plain blocksize algo jumlahblock pad
: byte[] : int : RC6 : int : int
= 16
-
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
+ enkripECB () : void + DekripECB () : void SMSReceive -
RC6 -
w u r S[] A B C D LGW
: int : int : int : int : int : int : int : int : int
= 32 =4
+ + + -
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)
smsPort smsconn msg senderAddress buf inter
: String : MessageConnection : Message : String : StringBuffer : Interface
+ AmbilNomor (String S) : String + run () : void
=5 : void : void : void : void : int : void : void : void : int : int : void : void
Gambar IV-1 Diagram Kelas Perancangan
IV-1
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-2
4.1.3 Operasi dan Atribut 1. Kelas Interface Daftar dan penjelasan operasi dari kelas Interface dapat dilihat pada Tabel IV1. Tabel IV-1 Daftar Operasi dari Kelas Interface
Nama Operasi
Visibility
Keterangan
(private, public) 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
Keterangan
(private, public) 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 plain blocksize
Visibility (private, public) Private Private
Tipe Array of byte Integer
IV-3
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
Visibility
Nama Operasi
Keterangan
(private, public) 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
Visibility (private, public) private
Nama Atribut inter
Tipe 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
Keterangan
(private, public) 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-4
Tabel IV-7 Daftar Atribut Kelas SMSReceive
Visibility (private, public) Private Private Private Private Private Private
Nama Atribut smsPort Smsconn msg senderAddress buf inter
Tipe String MessageConnection Message String StrinBuffer 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
Keterangan
(private, public) 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 inbox inboxdate outbox outboxdate
Visibility (private, public) Private Private Private Private
Tipe RecordStore RecordStore RecordStore RecordStore IV-5
Nama Atribut sender receiver
Visibility (private, public) Private Private
Tipe RecordStore 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
Keterangan
(private, public) 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-6
Nama Operasi
Visibility
Keterangan
(private, public) 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 w U R S A B C D LGW
Visibility (private, public) Private Private Private Private Private Private Private Private Private
Tipe Integer Integer Integer Integer Integer Integer Integer Integer Integer
IV-7
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-8
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-9
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 Jika pilihan ini dipilih, maka aplikasi akan tertutup. IV-10
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-11
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-12
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>
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.
IV-13