Gambar 3.6. Activity diagram penerimaan pesan
3.3. Flowchart Sistem
Flowchart merupakan bagan yang menunjukkan arus pekerjaan dari sistem secara keseluruhan, menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem
serta menunjukkan apa yang dikerjakan di dalam sistem. Flowchart dari sistem yang dibangun dapat di lihat pada Gambar 3.7 dan Gambar 3.8.
Universitas Sumatera Utara
Gambar 3.7. Flowchart pengiriman pesan
Universitas Sumatera Utara
Gambar 3.8. Flowchart penerimaan pesan
Universitas Sumatera Utara
3.3.1. Flowchart pembangkitan kunci internal
Sebelum kunci digunakan untuk proses enkripsi maupun dekripsi, kunci eksternal perlu terlebih dahulu dicari kunci internalnya. Flowchart pembangkitan kunci internal
dapat di lihat pada Gambar 3.9.
Gambar 3.9. Flowchart pembangkitan kunci intenal
Universitas Sumatera Utara
3.3.2. Flowchart Enkripsi Pesan menggunakan Vernam Cipher
Flowchart enkripsi pesan menggunakan Vernam Cipher dapat dilihat pada Gambar 3.10.
Gambar 3.10. Flowchart enkripsi pesan menggunakan Vernam Cipher
Universitas Sumatera Utara
3.3.3. Flowchart Dekripsi Pesan menggunakan Vernam Cipher
Flowchart dekripsi pesan menggunakan Vernam Cipher dapat di lihat pada Gambar 3.11.
Gambar 3.11. Flowchart dekripsi pesan menggunakan Vernam Cipher
Universitas Sumatera Utara
3.3.4. Flowchart Enkripsi pesan menggunakan DES
Flowchart proses enkripsi pesan menggunakan DES dapat dilihat pada Gambar 3.12.
Gambar 3.12. Flowchart enkripsi pesan menggunakan DES
Universitas Sumatera Utara
3.3.5. Flowchart Dekripsi pesan menggunakan DES
Dekripsi DES memiliki proses dan alur yang sama dengan enkripsi, hanya saja pada proses dekripsi kunci internal ke-16 K
16
diubah menjadi kunci yang pertama K
1
, kunci ke-15 K
15
menjadi kunci ke-2 K
2
, dan seterusnya. Flowchart proses dekripsi pesan dapat dilihat pada Gambar 3.13.
Gambar 3.13. Flowchart dekripsi pesan menggunakan DES
Universitas Sumatera Utara
3.4. Pseudocode Sistem
Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya. Pseudocode ditulis berbasiskan bahasa pemrograman tertentu, sehingga lebih tepat
digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Berikut adalah pseudocode dari program yang dibangun.
3.4.1. Pseudocode enkripsi pesan menggunakan Vernam
public String encryptTextString str{
int txtcode[];
int keycode[];
int chipercode[];
char chiperchar[];
for int
i = ; i
str .length; i++ {
txtcode[i] = turnToNumber str
.charAti; keycode[i] = turnToNumber
key .charAti;
chipercode[i] = txtcode[i] + keycode[i] 95
; chiperchar[i] = turnToCharchipercode[i];
} chipertext
= new
Stringchiperchar; return
chipertext ;
}
3.4.2. Pseudocode dekripsi pesan menggunakan Vernam
public String decryptTextString str{
int dechipercode[];
int chipercode[];
int keycode[];
char dechiperchar[];
for int
i = ; i str.length; i++ {
chipercode[i] = turnToNumberstr.charAti; keycode[i] = turnToNumber
key .charAti;
dechipercode[i] = chipercode[i] - keycode[i] 95
; if
dechipercode[i] {
dechipercode[i]=dechipercode[i]+ 95
95 ;
} dechiperchar[i] = turnToChardechipercode[i];
}
dechipertext =
new Stringdechiperchar;
return dechipertext
; }
Universitas Sumatera Utara
3.4.3. Pseudocode enrkispi pesan menggunakan DES
public String encryptDESString str{
byte [] keyBytes =
key .getBytes;
SecretKeySpec key = new
SecretKeySpeckeyBytes, DES
; Cipher desCipher;
desCipher = Cipher.getInstance DESECBNoPadding
; desCipher.initCipher.
ENCRYPT_MODE , key;
byte [] text = str.getBytes;
byte [] textEncrypted = desCipher.doFinaltext;
String strEn = new
StringBase64.encodetextEncrypted, ;
System. out
.println Text Encryted :
+ strEn; return
strEn; }
3.4.4. Pseudocode dekripsi pesan menggunakan DES
public String decryptDESString str{
byte [] keyBytes =
key .getBytes;
SecretKeySpec key = new
SecretKeySpeckeyBytes, DES
; Cipher desCipher;
desCipher = Cipher.getInstance DESECBNoPadding
; desCipher.initCipher.
DECRYPT_MODE , key;
String textDecrypted = new
StringdesCipher.doFinalBase64.decodestr, ;
return textDecrypted;
}
3.4.5. Pseudocode server
public void start { System.out.printlnSecure chat server started on port
+ PORT_NUMBER + ; try {
ServerSocket s = new ServerSocketPORT_NUMBER; for ;; {
Socket incoming = s.accept; new ClientHandlerincoming.start;
} } catch Exception e {
e.printStackTrace; }
System.out.printlnSecure chat server stopped.; }
3.5. Perancangan Antarmuka Interface
Universitas Sumatera Utara
Perancangan antarmuka merupakan perancangan yang menguraikan form-form yang ada di dalam aplikasi. Sistem yang dibangun terdiri dari form login, form chatroom,
dan form input kunci. Untuk server tidak memiliki GUI sehingga hanya berupa program saja.
3.5.1. Form Login Form Login merupakan tampilan awal ketika user ingin menggunakan aplikasi. User
diminta memasukkan nama pengguna dan IP server terlebih dahulu sebelum memasuki
chatroom. Gambar
3.14 menunjukkan
tampilan sementara dari form login.
Gambar 3.14. Rancangan tampilan Form Login
Masuk Chatroom Masukkan nama
Masukkan IP Server
Universitas Sumatera Utara
3.5.2. Form Chatroom Form Chatroom merupakan form yang digunakan untuk proses chatting. Form ini
juga menjadi tempat untuk proses enkripsi dan dekripsi pesan chatting. Gambar 3.15 menunjukkan tampilan sementara form chatroom.
Gambar 3.15. Rancangan tampilan Form Chatroom
Keterangan : 1.
Sebelum dapat mengirimkan pesan, pengguna harus terlebih dahulu menginputkan kunci kriptografi pada menu setting.
2. Pada saat pengguna menekan tombol send, maka proses enkripsi akan otomatis
dilakukan dengan menggunakan kunci yang telah di setting. Textbox input
pesan plaintext
Send
Tampilan pesan chatting Plaintextciphertext
Setting Key Toggle
Universitas Sumatera Utara
3. Pesan chiphertext dari server akan otomatis di dekripsi oleh aplikasi sebelum
pesan di tampilkan pada client. 4.
Apabila pengirim dan penerima memiliki kunci kriptografi yang sama maka penerima akan menerima pesan dalam bentuk plaintext, dan apabila pengirim dan
penerima memiliki kunci yang berbeda maka penerima akan menerima pesan dalam bentuk ciphertext.
3.5.3. Form Setting
Form Setting merupakan form preferensi yang digunakan untuk menginput dan menyimpan kunci kriptografi yang digunakan. Gambar 3.16 menunjukkan tampilan
sementara form setting.
Gambar 3.16. Rancangan tampilan Form Setting
3.5.4. Perancangan Server
Silahkan input kunci anda di pilihan ini
Universitas Sumatera Utara
Pada penelitian ini server tidak memiliki GUI khusus sehingga hanya berupa program saja. Program cukup dijalankan di aplikasi java seperti jcreator. Server bertugas
untuk menerima dan meneruskan pesan dari client yang telah terhubung.
Universitas Sumatera Utara
BAB IV IMPLEMENTASI DAN PERANCANGAN