17
Universitas Sumatera Utara
awal dilakukan kebalikan dari proses sebelumnya yaitu ciphertext didekripsi menggunakan algoritma Myszkowski transposition, kemudian hasilnya didekripsi
dengan menggunakan algoritma Vigenere cipher. Proses enkripsi menggunakan kunci yang sama dengan kunci dekripsi.
3.2. Pemodelan Sistem
Pemodelan modeling adalah proses merancang piranti lunak sebelum melakukan pengkodean. Dengan menggunakan model, diharapkan pengembangan piranti lunak
dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat Dharwiyanti Wahono, 2003.
3.2.1. Unified Modeling Language UML Unified modeling language adalah bahasa yang menjadi standar dalam industri untuk
visualisasi, merancang dan mendokumentasikan sistem piranti lunak Dharwiyanti Wahono, 2003. Model UML yang digunakan pada penelitian ini antara lain adalah
use case diagram, activity diagram serta sequence diagram.
3.2.1.1. Use case diagram Use case diagram merupakan penggambaran fungsionalitas yang diharapkan dari
sebuah sistem. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem Dharwiyanti Wahono, 2003. Adapun use case dari sistem yang
akan dibangun pada penelitian ini dapat dilihat pada Gambar 3.2.
Universitas Sumatera Utara
18
Universitas Sumatera Utara
Gambar 3.2 Use Case Diagram
Pada gambar 3.2, digambarkan hanya ada seorang aktor yaitu pengguna. Pengguna dapat menginput data, melakukan proses pengamanan dan pengungkapan.
Use case pengamanan dan pengungkapan membutuhkan pengecekan inputan agar dapat dijalankan. Untuk lebih jelasnya, use case pengamanan dapat dilihat pada Tabel
3.1.
Tabel 3.1 Deskripsi Use Case Pengamanan
Name Pengamanan
Actors Pengguna
Description Proses memasukkan pesan asli dan kunci, kemudian melakukan
enkripsi menggunakan algoritma Vigenere dan Myszkowski, lalu menampilkan hasilnya
Basic Flow Pengguna memasukkan pesan asli dan kunci, kemudian menekan
tombol enkripsi Alternate Flow
Pengguna memilih menu Pengungkapan Pre Condition
Pengguna telah membuka menu Pengamanan Post Condition
Pengguna mendapatkan pesan tersandi
Deskripsi use case pengungkapan ditunjukkan pada Tabel 3.2.
Universitas Sumatera Utara
19
Universitas Sumatera Utara
Tabel 3.2 Deskripsi Use Case Pengungkapan
Name Pengungkapan
Actors Pengguna
Description Proses memasukkan pesan tersandi dan kunci, kemudian
melakukan dekripsi dengan algoritma Vigenere dan Myszkowski, lalu menampilkan hasilnya
Basic Flow Pengguna memasukkan pesan tersandi dan kunci, kemudian
menekan tombol dekripsi Alternate Flow
Pengguna memilih menu Pengamanan Pre Condition
Pengguna telah memilih menu Pengungkapan Post Condition
Pengguna mendapatkan pesan asli
3.2.1.2. Activity diagram Activity diagram merupakan penggambaran berbagai alir aktivitas dalam sistem yang
sedang dirancang, bagaimana alir awal, decision yang mungkin terjadi dan berakhir. Diagram ini dapat dibagi menjadi beberapa object swimlane untuk menggambarkan
objek mana yang bertanggung jawab untuk aktivitas tertentu Dharwiyanti Wahono, 2003.
Gambar 3.3 menunjukkan activity diagram untuk proses pengamanan. Proses dimulai dari pengguna memilih menu pengamanan dan sistem akan menampilkan
halaman pengamanan. Kemudian pengguna memasukkan pesan asli plaintext, kunci pertama key1 dan kunci kedua key2, lalu menekan tombol enkripsi. Sistem
melakukan pengecekan inputan, bila cek gagal maka proses selesai dan bila cek sukses, sistem melakukan enkripsi plaintext menggunakan algoritma Vigenere cipher
dengan key1 untuk menghasilkan pesan tersandi pertama ciphertext1. Ciphertext1 selanjutnya dienkripsi menggunakan algoritma Myszkowski transposition dengan
key2 untuk menghasilkan pesan tersandi kedua ciphertext2, kemudian menampilkan hasilnya dan proses selesai.
Universitas Sumatera Utara
20
Universitas Sumatera Utara
Gambar 3.3 Activity Diagram Pengamanan
Gambar 3.4 menunjukkan activity diagram untuk proses pengungkapan. Proses dimulai dari pengguna memilih menu pengungkapan dan sistem menampilkan
halaman pengungkapan. Kemudian pengguna memasukkan ciphertext2, key1 dan key2, lalu menekan tombol dekripsi. Sistem melakukan pengecekan inputan, bila cek
gagal proses selesai dan bila cek sukses, sistem melakukan dekripsi ciphertext2 menggunakan algoritma Myszkowski transposition dengan key2 untuk menghasilkan
ciphertext1. Ciphertext1 selanjutnya didekripsi menggunakan algoritma Vigenere cipher dengan key1 untuk menghasilkan plaintext, kemudian menampilkan hasilnya
dan proses selesai.
Universitas Sumatera Utara
21
Universitas Sumatera Utara
Gambar 3.4 Activity Diagram Pengungkapan
3.2.1.3. Sequence diagram Sequence diagram merupakan penggambaran skenario atau langkah-langkah yang
dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Sequence diagram terdiri dari waktu pada vertikal dan objek-objek yang terkait pada
horizontal Dharwiyanti Wahono, 2003. Sequence diagram dari proses pengamanan dapat dilihat pada Gambar 3.5.
Universitas Sumatera Utara
22
Universitas Sumatera Utara
Gambar 3.5 Sequence Diagram Pengamanan
Pada Gambar 3.5 dapat dilihat bahwa pertama pengguna memasukkan plaintext, key1 dan key2 pada pengamanan. Kemudian plaintext dan key1 digunakan
untuk dienkripsi menjadi ciphertext1. Ciphertext1 dienkripsi lagi menggunakan key2 untuk mendapatkan ciphertext2. Setelah itu, ciphertext2 ditampilkan kepada
pengguna. Sequence diagram dari proses pengungkapan dapat dilihat pada Gambar 3.6.
Gambar 3.6 Sequence Diagram Pengungkapan
Universitas Sumatera Utara
23
Universitas Sumatera Utara
Pada Gambar 3.6 dapat dilihat bahwa pertama pengguna memasukkan ciphertext2, key1 dan key2 pada pengungkapan. Kemudian ciphertext2 dan key2
digunakan untuk didekripsi menjadi ciphertext1. Ciphertext1 didekripsi lagi menggunakan key1 untuk mendapatkan plaintext kembali. Setelah itu, plaintext
ditampilkan kepada pengguna.
3.2.2. Flowchart Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan
antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol dan garis penghubung. Flowchart berguna untuk memudahkan dalam melakukan pengecekan
bagian-bagian dalam analisis masalah Zarlis Handrizal, 2008.
3.2.2.1. Flowchart sistem Flowchart sistem yaitu bagan dengan simbol tertentu yang menggambarkan urutan
prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data Zarlis Handrizal, 2008. Flowchart dari sistem
yang akan dibangun dapat dilihat pada Gambar 3.7.
Universitas Sumatera Utara
24
Universitas Sumatera Utara
Gambar 3.7 Flowchart Sistem
Pada Gambar 3.7 sistem dimulai dengan menentukan pilihan halaman menu, yaitu menu pengamanan atau pengungkapan. Halaman pengamanan berfungsi untuk
mengenkripsi pesan asli menjadi pesan tersandi. Halaman pengungkapan berfungsi untuk mendekripsikan pesan tersandi kembali menjadi pesan asli.
3.2.2.2. Flowchart program pengamanan Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan
urutan proses dan hubungan antar proses secara mendetail di dalam suatu program Zarlis Handrizal, 2008. Flowchart program pengamanan dapat dilihat pada
Gambar 3.8.
Universitas Sumatera Utara
25
Universitas Sumatera Utara
Gambar 3.8 Flowchart Pengamanan
3.2.2.3. Flowchart program pengungkapan Flowchart program pengungkapan dapat dilihat pada Gambar 3.9.
Universitas Sumatera Utara
26
Universitas Sumatera Utara
Gambar 3.9 Flowchart Pengungkapan
3.2.3. Pseudocode Pseudocode adalah kode yang mirip dengan kode pemrogaman yang sebenarnya
seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram Zarlis Handrizal, 2008.
Pseudocode pada penelitian ini dibagi menjadi empat yaitu enkripsi Vigenere, enkripsi Myszkowski, dekripsi Myszkowski dan dekripsi Vigenere.
Universitas Sumatera Utara
27
Universitas Sumatera Utara
3.2.3.1. Pseudocode enkripsi Vigenere Pseudocode enkripsi Vigenere dapat dilihat pada Gambar 3.10.
Gambar 3.10 Pseudocode Enkripsi Vigenere
3.2.3.2. Pseudocode enkripsi Myszkowski Pseudocode enkripsi Myszkowski dapat dilihat pada Gambar 3.11.
Kamus : plaintext, key1, key, ciphertext1 : string
pesan, i, j, k : integer
Algoritma : Input plaintext
Input key1 For i=0; iplaintext.length; i++
j = i key1.length key += key1.charAtj
EndFor For i=0; iplaintext.length; i++
j = int plaintext.charAti k = {int} key.charAti
pesan = j-32 + k-32 95 pesan += 32
ciphertext += char pesan
EndFor return ciphertext1
Universitas Sumatera Utara
28
Universitas Sumatera Utara
Gambar 3.11 Pseudocode Enkripsi Myszkowski
3.2.3.3. Pseudocode dekripsi Myszkowski Pseudocode dekripsi Myszkowski dapat dilihat pada Gambar 3.12.
Kamus : ciphertext1, ciphertext2, key2 : string
bar, kol, tmp, kecil, i, j, k : integer matrix[bar,kol] : array of char
Algoritma : Input ciphertext1
Input key2 tmp = 0
kol = key2.length bar = ceilciphertext1.length kol
For i=0; ibar i++
For j=0; jkol; j++ If tmp ciphertext1.length
matrix[i,j] = ciphertext1.charAttmp tmp++
Else matrix[i][j] = null
EndIf EndFor
EndFor tmp = -1
While ciphertext2.length ciphertext1.length For i=0; ikol; i++
If int.parsekey2.chari tmp kecil = int.parsekey2.chari
break EndIf
EndFor For i=0; ikol; i++
If int.parsekey2.chari tmp int.parsekey2.chari kecil
kecil = int.parsekey2.chari EndIf
EndFor For i=0; ibar; i++
For j=0; jkol; j++ If int.parsekey2.charj == kecil
matrix[i][j] = null ciphertext2 += matrix[i,j]
EndIf EndFor
EndFor tmp = kecil
EndWhile return ciphertext2
Universitas Sumatera Utara
29
Universitas Sumatera Utara
Gambar 3.12 Pseudocode Dekripsi Myszkowski
3.2.3.4. Pseudocode dekripsi Vigenere Pseudocode dekripsi Vigenere dapat dilihat pada Gambar 3.13.
Kamus : ciphertext1, ciphertext2, key2 : string
bar, kol, tmp, kecil, i, j, k : integer matrix[bar,kol] : array of char
Algoritma : Input ciphertext2
Input key2 k = 0
tmp = -1 kol = key2.length
bar = ceilciphertext2.length kol While k ciphertext2.length
For i=0; ikol; i++ If int.parsekey2.chari tmp
kecil = int.parsekey2.chari break
EndIf EndFor
For i=0; ikol; i++ If int.parsekey2.chari tmp
int.parsekey2.chari kecil kecil = int.parsekey2.chari
EndIf EndFor
For i=0; ibar; i++ For j=0; jkol; j++
If int.parsekey2.charj == kecil If i==bar-1 j=kol-kolbar-ciphertext2.length
Else matrix[i,j] = ciphertext2.chark
k++ EndIf
EndIf EndFor
EndFor tmp = kecil
EndWhile For i=0; ibar i++
For j=0; jkol; j++ If ciphertext1.length ciphertext2.length
ciphertext1 += matrix[i,j] EndIf
EndFor EndFor
return ciphertext1
Universitas Sumatera Utara
30
Universitas Sumatera Utara
Gambar 3.13 Pseudocode Dekripsi Vigenere
3.3. Perancangan Antarmuka Interface