BAB V IMPLEMENTASI DAN PENGUJIAN Pada bab V ini akan dibahas mengenai implementasi hasil dari analisis dan perancangan perangkat lunak yang telah dilakukan pada bab-bab sebelumnya pada tugas akhir ini dan juga akan dijelaskan dan hasil yang didapatkan dari pengujian perangkat lunak yang telah dibangun.
5.1 Lingkungan Implementasi Implementasi yang dilakukan menggunakan sebuah perangkat komputer untuk membangun perangkat lunak dan sebuah telepon selular yang digunakan melakukan uji coba perangkat lunak yang telah dibangun. Perangkat komputer yang digunakan untuk melakukan implementasi memiliki spesifikasi sebagai berikut: 1. Prosessor Intel Core Duo 1.8 GHz 2. RAM 1 GB 3. Hard Disk 80 GB 4. Perangkat masukkan keyboard dan tetikus 5. Perangkat keluaran monitor Adapun perangkat lunak yang digunakan dalam melakukan implementasi adalah sebagai berikut: 1. Sistem operasi Windows XP Service Pack 2 2. Netbeans IDE 6.0.1 3. Mobility pack for Netbeans IDE 4. Sun Java Wireless Toll Kit 2.5.2 Perangkat lunak dibangun dengan menggunakan bahasa pemrograman java dengan menggunakan teknologi J2ME. Hasil implementasi diujikan pada telepon selular Nokia 9300i.
V-1
5.2 Batasan Implementasi Pada tugas akhir ini, perangkat lunak yang dibangun memiliki batasan sebagai berikut: 1. Perangkat lunak tidak dapat melakukan akses ke memory di dalam kartu SIM. 2. Perangkat lunak yang dibangun dapat dijalankan pada telepon selular yang dapat mendukung aplikasi berbasis java dengan spesifikasi MIDP 2.0 dan CLDC 1.1 menggunakan kartu GSM.
5.3 Implementasi Kelas Kelas-kelas yang telah dirancang diimplementasikan dengan menggunakan bahasa pemrograman java. 5.3.1 Deskripsi Kelas Pada Tabel V-1 dapat dilihat daftar implementasi kelas-kelas yang ada pada perangkat lunak beserta keterangannya.
Tabel V-1 Tabel Implementasi Kelas
Nama Kelas
Nama File
Keterangan
Interface
Interface.java
Kelas ini merupakan turunan dari javax.microedition.midlet dan mengimplementasikan kelas abstract CommandListener yang terdapat pada package javax.microedition.lcdui dan juga mengimplementasikan kelas javax.wireless.messaging.MessageListener
SMSReceive
SMSReceive.java
Kelas ini mengimplementasikan kelas interface java.lang.Runnable
SMSSender
SMSSender.java
Kelas ini mengimplementasikan kelas interface java.lang.Runnable
SMSStore
SMSStore.java
Kelas ini menangani penanganan pesan. Data pesan disimpan dalam bentuk RecordStore dari package javax.microedition.rms.RecordStore V-2
Nama Kelas
Nama File
Keterangan
ECB
ECB.java
Fungsi random yang digunakan untuk mengisi padding menggunakan fungsi random dari kelas java.util.Random
RC6
RC6.java
5.3.2 Operasi dan Atribut 1. Kelas Interface Daftar hasil implementasi operasi dari kelas Interface dapat dilihat pada Tabel IV-1.
Tabel V-2 Daftar Implementasi Operasi Kelas Interface
Visibility
Nama Operasi
Implementasi
(private, public) SendAndSave
Public
public SendAndSave()
2. Kelas ECB Daftar implementasi operasi dari kelas ECB dapat dilihat pada Tabel IV-2 dan daftar implementasi atribut kelas ECB dapat dilihat pada Tabel IV-3.
Tabel V-3 Daftar Implementasi Operasi Kelas ECB
Visibility
Nama Operasi
Implementasi
(private, public) enkripECB
Public
public enkripECB()
DekripECB
Public
public DekripECB()
Tabel V-4 Daftar Implementasi Atribut Kelas ECB
plain
Visibility (private, public) Private
private byte[] plain
blocksize
Private
private int blocksize =
Nama Atribut
Implementasi
16
algo
Private
private RC6 algo
V-3
jumlahblock
Visibility (private, public) Private
private int jumlahblock
cipher
Private
private byte[] cipher
pad
Private
private int pad
Nama Atribut
Implementasi
3. Kelas SMSSender Daftar implementasi operasi dari kelas ECB dapat dilihat pada Tabel IV-4 dan daftar implementasi atribut kelas ECB dapat dilihat pada Tabel IV-5.
Tabel V-5 Daftar Implementasi Operasi Kelas SMSSender
Nama Operasi
Visibility
Implementasi
(private, public) run
Public
public void run()
Tabel V-6 Daftar Implementasi Atribut Kelas SMSSender
Nama Atribut inter
Visibility (private, public) private
Implementasi private Interface inter
4. Kelas SMSReceive Daftar implementasi operasi dari kelas ECB dapat dilihat pada Tabel IV-6 dan daftar implementasi atribut kelas ECB dapat dilihat pada Tabel IV-7.
Tabel V-7 Daftar Implementasi Operasi Kelas SMSReceive
Nama Operasi
Visibility
Implementasi
(private, public) AmbilNomor
Public
public String AmbilNomor(String S)
run
Public
public void run()
Tabel V-8 Daftar Implementasi Atribut Kelas SMSReceive
Nama Atribut smsPort
Visibility (private, public) Private
Implementasi private String smsPort
V-4
Nama Atribut Smsconn
Visibility (private, public) Private
Implementasi private MessageConnection smsconn
msg
Private
private Message msg
senderAddress
Private
private String senderAddress
buf
Private
private StringBuffer buf
inter
Private
private Interface inter
5. Kelas SMSStore Daftar implementasi operasi dari kelas ECB dapat dilihat pada Tabel IV-8 dan daftar implementasi atribut kelas ECB dapat dilihat pada Tabel IV-9.
Tabel V-9 Daftar Implementasi Operasi Kelas SMSStore
Nama Operasi
Visibility
Keterangan
(private, public) DeleteAllInbox
Public
public void DeleteAllInbox()
DeleteAllOutbox
Public
public void DeleteAllOutbox()
SaveInbox
Public
public void SaveOutbox(byte[] pesan, byte[] date, byte[] address)
SaveOutbox
Public
public void SaveOutbox(byte[] pesan, byte[] date, byte[] address)
Tabel V-10 Daftar Implementasi Atribut Kelas SMSStore
Nama Atribut inbox
Visibility (private, public) Private
implementasi private static RecordStore inbox
inboxdate
Private
private static
V-5
Nama Atribut
Visibility (private, public)
implementasi RecordStore inboxdate
outbox
Private
private static RecordStore outbox
outboxdate
Private
private static RecordStore outboxdate
sender
Private
private static RecordStore sender
receiver
Private
private static RecordStore receiver
6. Kelas RC6 Daftar implementasi operasi dari kelas ECB dapat dilihat pada Tabel IV-10 dan daftar implementasi atribut kelas ECB dapat dilihat pada Tabel IV-11.
Tabel V-11 Daftar Implementasi Operasi Kelas RC6
Nama Operasi
Visibility
Implementasi
(private, public) Decryption
Private
private void Decryption()
Dekrip
Public
public void Dekrip(byte[] in, int inOff, byte[] out)
Encryption
Private
private void Encryption()
Enkrip
Public
public void Enkrip(byte[] in,int inOff,byte[] out)
F
Private
private int F(int x)
initreg
Private
private void initreg(byte[] src, int srcOff)
regToCipher
Private
private void regToCipher(byte[] dst,int dstOff)
regToPlain
Private
private void regToPlain(byte[]
V-6
Visibility
Nama Operasi
Implementasi
(private, public) out,int inOff)
rotateLeft
Private
private int rotateLeft(int x, int y)
rotateRight
Private
private int rotateRight(int x, int y)
setKey
Public
public void setKey(byte[] key)
swap
Private
private void swap(int A, int B, int C, int D)
Tabel V-12 Daftar Implementasi Atribut Kelas RC6
Nama Atribut w
Visibility (private, public) Private
Implementasi private static final int w = 32
U
Private
private static final int u = 4
R
Private
private static int r
S
Private
private int S[]
A
Private
private int A
B
Private
private int B
C
Private
private int C
D
Private
private int D
LGW
Private
private static final int LGW = 5
5.4 Implementasi Modul Pada Tabel V-2 dapat dilihat daftar hasil implementasi modul-modul yang telah dirancang.
V-7
Tabel V-13 Tabel Implementasi Modul
Nama Modul
Nama File yang Terlibat
Modul Enkripsi Pesan
-
ECB.java
-
RC6.java
-
ECB.java
-
RC6.java
Modul Pengirim Pesan
-
SMSSender.java
Modul Penerima Pesan
-
Interface.java
-
SMSReceive.java
-
SMSStore.java
Modul Dekripsi Pesan
Modul Penyimpanan Pesan
5.5 Implementasi Antar Muka Subbab ini berisi gambar-gambar hasil implementasi antar muka dari perangkat lunak yang telah dibangun. Gambar hasil implementasi tersebut merupakan gambar dari emulator.
Gambar V-1 Implementasi Antar Muka Menu Utama
V-8
Gambar V-2 Implementasi Antar Muka Layar Pembangunan Pesan
Gambar V-3 Implementasi Antar Muka Layar Laporan Hasil Enkripsi
V-9
Gambar V-4 Implementasi Antar Muka Layar Penerima Pesan
Gambar V-5 Implementasi Antar Muka Layar Laporan Hasil Dekripsi
V-10
Gambar V-6 Implementasi Antar Muka Daftar Inbox
Gambar V-7 Implementasi Antar Muka Daftar Outbox
5.6 Pengujian Pengujian yang dilakukan dibagi menjadi tiga bagian yaitu pengujian performansi perangkat lunak, pengujian enkripsi dan dekripsi, dan pengujian pengiriman dan penerimaan pesan.
V-11
5.6.1 Pengujian Performansi Perangkat lunak Pengujian performansi perangkat lunak dilakukan dengan melakukan pengujian terhadap algroritma enkripsi yang diimplementasikan oleh perangkat lunak. Pengujian ini dilakukan pada telepon selular Nokia 9300i yang memiliki memory internal 80 MB dan memory card 128 MB. Pengujian ini dilakukan untuk mengetahui apakah perangkat lunak yang telah dibangun dapat berjalan dengan baik atau tidak jika dijalankan pada telepon selular. Untuk pengujian ini kunci yang digunakan adalah “kunci”. Tata cara pengujian ini adalah dengan mengirimkan pesan ke nomor sendiri, pengiriman pesan dimulai dengan menyalakan aplikasi sedangkan penerimaan pesan dilakukan ketika aplikasi sudah berjalan dan menunggu psan untuk datang. Hasil pengujian performansi dapat dilihat pada Tabel V-14. Tabel V-14 Tabel Pengujian Performansi
Jumlah rotasi
Plainteks
Waktu Enkripsi
Waktu Dekripsi
20
tes
469 milidetik
438 milidetik
20
ini contoh pesan
594 milidetik
141 milidetik
937 milidetik
254 milidetik
940 milidetik
422 milidetik
yang
lebih
dari
1 blok
20
pesan
ini
cukup
panjang digunakan
untuk
pengujian
pesan
panjangnya
lebih
dari
1
atau tes
message melakukan
pesan
yang
lumayan panjang
100
pesan
ini
cukup
panjang digunakan
untuk
pengujian
pesan
panjangnya
lebih
dari atau tes
1
message melakukan
pesan
yang
lumayan panjang
V-12
Jumlah rotasi
Plainteks
Waktu Enkripsi
Waktu Dekripsi
100
tes
516 milidetik
203 milidetik
100
ini contoh pesan
625 milidetik
245 milidetik
562 milidetik
188 milidetik
1110 milidetik
531 milidetik
yang
lebih
dari
1 blok
500
tes
500
pesan
ini
cukup
panjang digunakan
untuk
pengujian
pesan
panjangnya
lebih
dari atau tes
1
message melakukan
pesan
yang
lumayan panjang
5.6.2 Pengujian Kunci Pada bagian ini akan diberikan hasil pengujian kemanan aplikasi yang menguji hasil yang dihasilkan dari proses enkripsi dan dekripsi dengan kasus-kasus tertentu. Kasuskasus yang akan diujikan adalah sebagai berikut: 1. Menguji kebenaran enkripsi dan dekripsi 2. Menguji pemakaian kunci Hasil pengujian kasus-kasus tersebut dapat dilihat pada Tabel V-15.
Tabel V-15 Tabel Pengujian Keamanan Aplikasi
Plainteks
Kunci
cipherteks
pengirim tes
Kunci
Dekripsi
penerima Berhasil
31 33 98 04 37 d8 3f f1 82 6e 8c 44 5c c3 6f 09 1f 43
tes
31 33 c8 df 89 d3 c4
tes
gagal
96 ac ea 90 39 12 96 e8 ae 0d 76
V-13
Plainteks
Kunci
cipherteks
pengirim
Kunci
Dekripsi
penerima kunci
berhasil
30 37 02 d7 c6 89 a4
kunci
gagal
tes pesan
6b ae 3c 3d 59 62 13
salah
panjang
44 e2 10 98 a9 d6 ac
yang lebih
eb 9f 5e a8 31 3a e3
besar dari
2b ba 4a 23 0f 9a 0b
1 pesan
a5 a7 cc 98 65 5a 2b
jadi kata
e0 39 39 9b 02 e2 10
kata
98 ab b0 b1 65 99 5e
diulang-
9e 30 e2 9c a3 c4 32
ulang terus
e2 0b 94 4e f9 bb aa
biar
98 72 a6 28 37 d5 71
panjang
6c 3d 23 0f 9a 39 2e
pesan lebih
88 d7 a4 70 5a 29 6c
dari 1
f1 03 35 41 23 0f 9d
ini untuk
kunci
30 37 02 d7 c6 89 a4
tes pesan
6b ae 3c 3d 59 62 13
panjang
44 e2 10 98 a9 d6 ac
yang lebih
eb 9f 5e a8 31 3a e3
besar dari
2b ba 4a 23 0f 9a 0b
1 pesan
a5 a7 cc 98 65 5a 2b
jadi kata
e0 39 39 9b 02 e2 10
kata
98 ab b0 b1 65 99 5e
diulang-
9e 30 e2 9c a3 c4 32
ulang terus
e2 0b 94 4e f9 bb aa
biar
98 72 a6 28 37 d5 71
panjang
6c 3d 23 0f 9a 39 2e
pesan lebih
88 d7 a4 70 5a 29 6c
dari 1
f1 03 35 41 23 0f 9d
pesan atau
90 53 b5 c5 9f 62 ad
menggunakan
28 94 66 39 0e 33 2b
konkatinasi
09 53 eb e5 58 fa 4f 2e 5a 37 6e a9 6f 32 f1 22 15 94 12 4f 87 7c 9d 64 a1 3c 88 f0 16 0a 3f e2 0b a2 48 de a7 6b 98 6b 9b 3a 58 72 d8 26 0a fb d9 6b
ini untuk
kunci
V-14
Plainteks
Kunci
cipherteks
pengirim
Kunci
Dekripsi
penerima
pesan atau
90 53 b5 c5 9f 62 ad
menggunakan
28 94 66 39 0e 33 2b
konkatinasi
09 53 eb e5 58 fa 4f 2e 5a 37 6e a9 6f 32 f1 22 15 94 12 4f 87 7c 9d 64 a1 3c 88 f0 16 0a 3f e2 0b a2 c4 47 4b b4 98 6b 9b 3a ff 81 7e 50 39 2a 09 9b
tes kunci
kunci ini
31 35 2a 95 3e fe d3
kunci
panjang
lumayan
5c a0 99 66 82 07 ec
ini
panjang
06 32 e9 31 73 f4 a8
lumayan
untuk dites
5b 3b bb 05 0a 72 27
panjang
jadi dipake
04 47 6b 9b 5b 97
untuk
aja
berhasil
dites jadi dipake aja
tes kunci
kunci ini
31 35 2a 95 3e fe d3
kunci
panjang
lumayan
5c a0 99 66 82 07 ec
ini
panjang
06 32 e9 31 56 55 5f
salah
untuk dites
f0 3c bc 06 0b 25 03
jadi dipake
87 5b 6c 9c 5c 98
Gagal
aja
5.6.3 Pengujian Penerimaan Pesan Pengujian pengiriman pesan ini bertujuan untuk melakukan pengecekan terhadap pesan yang dikirimkan. Tata cara dari pengujian ini adalah melakukan pengiriman terhadap telepon selular yang tidak terinstalasi perangkat lunak yang telah dibangun. Hasil pengujian pengiriman pesan tersebut dapat dilihat pada Tabel V-16
V-15
Tabel V-16 Tabel Pengujian Penerimaan Pesan
Pesan yang dikrim
Pesan yang diterima
Jenis Telepon Selular
(dalam heksadesimal)
(yang terbaca)
Penerima
31 33 cb 16 53 28 59
13ËS(YÏÁgõ˙e`ûn
Nokia 3650
(00^080)13???aT??F
Haier D1600 CDMA
16½²4+i9»Í`@^
Nokia 9210
Tidak dapat dibaca
Nokia E90
Tidak dapat diterima
Samsung SGH-U600
Tidak dapat dibaca
Nokia 3250
cf c1 67 d5 b0 65 60 fb 8e 6e 8c 31 33 eb 14 03 cb eb 61 54 fa 81 46 00 30 8d 21 01 1f 31 36 bd b2 34 13 2b af 93 39 9d bb 95 99 cd 60 40 5e 31 33 4a 10 40 64 6f e5 d7 7d 73 96 59 7f 11 a5 84 a2 31 33 d9 7f 40 80 28 9e 90 36 a2 51 9e 7c ca f2 d2 f0 31 33 4a a1 a3 a7 3b b1 a3 49 7d 7e 5d f5 dd 70 50 5e
Pada Tabel V-16, yang dimaksud dengan pesan tidak dapat dibaca adalah aplikasi standar telepon selular yang menerima pesan tidak mampu menampilkan isi pesan yang bersifat binary. Yang dimaksud dengan tidak dapat menerima bukan berarti telepon selular tersebut tidak dapat menerima pesan terenkripsi, melainkan aplikasi standar telepon selular tersebut tidak mampu menangani penerimaan pesan berbentuk binary.
5.7 Analisis Hasil Pengujian Berdasarkan hasil pengujian yang dilakukan, hasil dari pengujian fitur enkripsi dan dekripsi perangkat lunak pada lingkungan telepon selular berjalan dengan cukup cepat seperti terlihat pada Tabel V-14 dan pesan yang diterima dapat didekripsi dengan baik jika masukkan kunci dari pengguna benar seperti terlihat pada Tabel V-15. Oleh karena itu, dapat disimpulkan bahwa perangkat lunak yang telah dibangun dapat berjalan dengan baik pada lingkungan telepon selular.
V-16
Pada Tabel V-14 dapat terlihat bahwa waktu enkripsi cenderung lebih besar dibandingkan waktu dekripsi, hal tersebut disebabkan karena metode pengujian yang dilakukan untuk enkripsi dilakukan dimulai dari menjalankan aplikasi yang belum berjalan sebelumnya sedangkan proses dekripsi dilakukan ketika aplikasi sudah berjalan. Proses inisialisasi aplikasi java yang dilakukan ketika mulai menjalankan aplikasi menggunakan memory sehingga proses enkripsi memakan waktu yang lebih besar. Pada Tabel V-14 juga terlihat bahwa semakin besar jumlah rotasi yang digunakan maka waktu yang diperlukan untuk melakukan enkripsi dan dekripsi semakin besar, sehingga dapat disimpulkan jumlah rotasi yang besar dapat meningkatkan keamanan, namun waktu yang dibutuhkan untuk enkripsi dan dekripsi akan semakin besar. Pesan terenkripsi yang dikirimkan melalui perangkat lunak yang telah dibangun dapat disampaikan ke tujuan dengan baik. Pesan yang dikirimkan oleh perangkat lunak yang telah dibangun, yang ditujukan pada telepon selular yang tidak memiliki perangkat lunak yang sama akan menuju aplikasi telepon selular standar. Pada Tabel V-16 dapat dilihat bahwa hasil pesan yang diterima aplikasi telepon selular standar tersebut beragam, beberapa telepon selular tidak dapat membuka pesan tersebut atau bahkan tidak dapat menerima pesan tersebut dan beberapa telepon selular memaksa telepon selular tersebut untuk menampilkan pesan tersebut dengan format yang berbeda-beda. Melalui hasil pengujian yang dilakukan pada telepon selular, dapat terlihat bahwa perangkat lunak berjalan dengan baik dan jika nomor tujuan menggunakan perangkat lunak yang sama, pesan dapat disampaikan dengan baik, dapat diketahui bahwa implementasi algoritma RC6 untuk komunikasi melalui media SMS dapat direalisasikan dengan baik.
V-17