Flowchart Sistem ANALISIS DAN PERANCANGAN

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