4
3. Metode dan Perancangan
Metode pengembangan sistem yang dipakai dalam penelitian ini adalah metode waterfall, dapat dilihat pada Gambar 2.
Gambar 2.
Metode Permodelan Waterfall [4]
Adapun tahap-tahap metode pengembangan dalam perancangan aplikasi antara lain :
1. Penentuan dan Analisis Spesifikasi; Pada tahap ini dilakukan
pengumpulan kebutuhan sistem secara lengkap. Setelah itu dilakukan analisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program
yang dibangun. Adapun beberapa hal yang diperlukan sebelum membangun sistem adalah : 1 Masukan berupa citra GIF non animated;
2 Sofware pemrograman untuk menyusun kode dalam sistem; 3 Software image manipulation
untuk melakukan pengujian terhadap media penampung; 4 Software pembanding gambar untuk melakukan
perbandingan antara citra asli dan citra stego. 2.
Desain sistem dan Perangkat lunak; Tahap ini terdiri dari proses desain sistem yang membagi kebutuhan-kebutuhan sistem perangkat lunak,
termasuk menghasilkan fungsi sistem perangkat lunak dalam bentuk transformasi ke dalam satu atau lebih program yang dapat dijalankan.
3. Implementasi dan Uji Coba Unit; Pada tahap ini desain perangkat lunak
diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman. Kemudian dilakukan pengujian terhadap unit program yang
telah dibuat. Uji unit termasuk pengujian bahwa setiap unit sesuai spesifikasi.
4. Intergrasi dan uji coba system; Pada Tahap ini, unit program diintegrasikan
dan diuji menjadi sistem yang lengkap untuk meyakinkan bahwa persyaratan perangkat lunak telah dipenuhi.
5. Operasi dan pemeliharaan; Ini adalah fase terpanjang dari proses
sebelumnya. Sistem digunakan dan dilakukan pemeliharaan termasuk perbaikan kesalahan yang tidak ditemukan pada langkah sebelumnya.
Analisis Kebutuhan Sistem
Analisis kebutuhan sistem merupakan proses identifikasi dan evaluasi permasalahan-permasalahan yang ada, sehingga nantinya sistem yang dibagun
sesuai dengan kriteria yang diharapkan. Tahapan analisis kebutuhan digunakan
5 untuk mengetahui kebutuhan sistem agar dapat bekerja dengan baik dan optimal,
sehingga tidak terjadi kesalahan perancangan dan kerusakan pada program. Aplikasi steganografi menggunakan metode Gifshuffle, dibuat untuk memenuhi
kebutuhan sebagai berikut: 1 Dapat melakukan embedding pesan terenkripsi pada citra berformat GIF; 2 Dapat melakukan ekstrak pesan terenkripsi yang
tersimpan dalam stego image. Berdasarkan kriteria kebutuhan sistem, maka masukan yang diperlukan oleh sistem adalah sebagai berikut : 1 File gambar
dengan format GIF sebagai media cover untuk embedding pesan; 2 Pesan rahasia yang berupa text dengan masukan segala karakter. Analisis keluaran
berfungsi untuk mengetahui keluaran yang dihasilkan oleh sistem yang dibangun. Sistem yang dibangun ini akan menghasilkan keluaran dalam bentuk : 1 File
stego
image yaitu file gambar cover yang di dalamnya terdapat file rahasia yang telah di-embedding; 2 Pesan rahasia berupa teks yang telah diekstrak.
Perancangan Sistem
Perancangan sistem meliputi perancangan algoritma yang digunakan dalam sistem. Dalam penelitian ini menggunakan algoritma Vigenere Cipher,
Sedangkan untuk steganografi menggunakan algoritma Gifshuffle. Algoritma steganografi digunakan untuk menambah tingkat keamanan algoritma kriptografi.
Pembuatan aplikasi dalam penelitian ini menggunakan kriptografi untuk mengenkripsi pesan. Algoritma kriptografi yang digunakan adalah algoritma
Vigenere Cipher dengan memanfaatkan Square Table Vigenere.
Penerapan enkripsi algoritma Vigenere
Contoh enkripsi dengan masukan plaintext “TEKNIKINFORMATIKA” dengan
kunci “UKSW”, maka : 1. Plaintext
= “TEKNIKINFORMATIKA” 2.
Kunci = “UKSW”
3.
Dilakukan enkripsi dengan kunci = UKSWUKSWUKSWU. Secara detil dapat dilihat pada Tabel 3.
Tabel 3 Perubahan Kunci Vigenere
T E
K N
I K
I N
F O
R M
A T
I K
A Plaintext
U K
S W
U K
S W
U K
S W
U K
S W
U Kunci
4. c„T‟ = „T‟ + „U‟ mod 26 = L
T = 51 dan U= 52 51+5296=7 „
c„E‟ = „E‟ + „K‟ mod 96 = p, dst
Perancangan Steganografi Dengan Algoritma Steganografi
Algoritma steganografi yang digunakan adalah algoritma Gifshuffle. Gifshufle
memanfaatkan palet warna dari citra Gif. Algoritma Gifshuffle memiliki dua proses utama, yaitu proses encoding dan proses decoding.
Contoh penyisipan pesan “T” ke dalam berkas GIF dengan jumlah warna
pada palet warna sebanyak 6 buah, adalah sebagai berikut:
6 1.
Pesan yang akan disisipkan adalah “T” yang diubah ke dalam bentuk biner dengan pengkodean ASCII menghasilkan bilangan biner : 1010100. Untuk
mendapatkan nilai M disisipkan angka 1 pada rangkaian biner maka :
2. Jumlah warna pada palet warna citra tersebut adalah 6, maka apabila menggunakan cara pada halaman 4 proses encoding dapat
dilakukan. Karena nilai m tidak lebih besar dengan n-1. 3.
Urutan warna pada palet warna citra tersebut secara “natural” dapat dilihat pada Gambar 3.
Gambar 3
Pengkonversian RGB ke Nilai Integer.
Pada Gambar 3 ditunjukk an nilai “natural” dari beberapa warna, nilai
tersebut didapat dari besar nilai RGB. Contoh pada warna A, nilai Red dalam heksadesimal adalah f7, dan dikonversikan ke dalam desimal menjadi 247,
nilai Green dalam heksadesimal adalah 47 dan dikonversikan ke dalam desimal menjadi 71, dan nilai Blue dalam heksa-desimal adalah 47 dan
dikonversikan ke dalam desimal menjadi 71. Berdasarkan nilai-nilai desimal
tersebut didapat nilai “natural” dengan rumus berikut : Sehingga didapat nilai integer yaitu 16205639.
Susunan palet warna setelah diurutkan berdasarkan besar nilai integer terkecil dapat dilihat pada Gambar 4.
Gambar 4 Susunan Palet Warna Diurutkan berdasarkan Besar Nilai Integer.
4. Iterasi variabel i mulai dari 1 sampai n : Warna indeks ke-
dipindahkan ke- .
a Untuk Maka, warna indeks ke-5 dipindahkan ke indeks ke-0 pada susunan palet warna
yang baru. b Untuk
Maka, warna indeks ke-4 dipindahkan ke indeks ke-0 pada susunan palet warna yang baru.
7
c Untuk Maka, warna indeks ke-3 dipindahkan ke indeks ke-2 pada susunan palet warna
yang baru. d Untuk
Maka, warna indeks ke-2 dipindahkan ke indeks ke-0 pada susunan palet warna yang baru.
e Untuk Maka, warna indeks ke-1 dipindahkan ke indeks ke-3 pada susunan palet warna
yang baru. f Untuk
Maka, warna indeks ke-0 dipindahkan ke indeks ke-1 pada susunan palet warna yang baru.
5. Pada tahap kelima, apabila ada beberapa warna yang menempati indeks yang sama, maka Setiap warna yang menempati indeks tersebut akan bergeser
sekali ke indeks berikutnya. Susunan palet warna yang baru sesuai aturan tersebut dapat dilihat pada Gambar 5.
Gambar 5 Susunan Palet Warna yang Baru Setelah Dilakukan Iterasi Terhadap Variabel i.
6. Urutan palet warna ini kemudian dimasukkan ke dalam berkas citra GIF untuk menghasilkan citra yang telah disisipi pesan.
Untuk skema decoding berupa pembalikan dari skema encoding. Inti dari proses decoding adalah untuk mencari nilai
. Setelah nilai diperoleh maka
pesan asli dapat mudah didapat. Adapun langkah-langkah untuk mengekstrak kembali pesan dari sebuah citra GIF menggunakan algoritma Gifshuflle adalah
sebagai berikut :
8 1. Masukkan nomor sesuai dengan posisi setiap warana pada palet warna citra
GIF yang telah disisipkan pesan. 2. Warna diurutkan berdasarkan konversi RGB ke nilai integer dengan rumus :
3. diberi nilai 0.
4. Iterasi variabel dari 0 sampai .
posisi warna ke- . Iterasi variabel dari
sampai .
Jika nilai posisi warna ke nilai posisi warna ke-i, maka posisi warna ke
dikurangkan 1. 5. Setelah nilai
diperoleh, maka nilai dikonversikan ke bilangan biner
untuk memperoleh pesan asli. Berdasarkan contoh pada proses encoding, maka pesan asli dapat diekstrak
dengan mengikuti langkah-langkah berikut: 1. Warna pada palet warna diberikan nomor sesuai dengan posisinya. Lebih
jelasnya dapat dilihat pada Gambar 6.
Gambar 6 Penomoran Posisi Palet Warna.
2. Nilai natural setiap warna dapat dilihat pada Gambar 7.
Gambar 7
Nilai Natural Setiap Warna
Kemudian diurutkan berdasarkan nilai integer terkecil, maka posisi palet warna baru terdapat pada Gambar 8.
Gambar 8 Urutan Palet Warna Baru Berdasarkan Nilai Integer Terkecil.
3. diberi nilai 0.
4. Iterasi variabel i dari 0 sampai 5. posisi ke-i.
Iterasi variabel j dari i+1 sampai 5. Jika nilai posisi warna ke
nilai posisi warna ke-i, maka posisi warna ke dikurangkan 1.
a Untuk
9
posisi ke-0
o Untuk Posisi ke-1 posisi ke-0
, ya maka posisi ke- o Untuk
Posisi ke-2 posisi ke-0 , tidak
o Untuk Posisi ke-3 posisi ke-0
, ya maka posisi ke- o Untuk
Posisi ke-4 posisi ke-0 , tidak
o Untuk Posisi ke-5 posisi ke-0
, ya maka posisi ke- 1
2 3
4 5
i Warna C
Warna E Warna D
Warna F Warna A
4 3
1 2
Posisi b Untuk
o Untuk Posisi
posisi , tidak
o Untuk Posisi
posisi , tidak
o Untuk Posisi
posisi , tidak
o Untuk Posisi
posisi , tidak
2 3
4 5
i Warna E
Warna D Warna F
Warna A 3
1 2
Posisi c Untuk
10
o Untuk Posisi
posisi , ya maka posisi ke-
o Untuk Posisi
posisi , ya maka posisi ke-
o Untuk Posisi
posisi , ya maka posisi ke-
3 4
5 I
Warna D Warna F
Warna A 2
1 Posisi
d Untuk
o Untuk Posisi
posisi , tidak
o Untuk Posisi
posisi , tidak
4 5
I Warna
F Warna
A 1
Posisi e Untuk
o Untuk Posisi
posisi , ya maka posisi ke
f Untuk
5. Angka 1 dalam rangkaian biner dihilangkan, maka :
11
T
Perancangan Proses
Perancangan proses menggunakan Unified Modeling Language UML. Langkah pertama yang dilakukan untuk memetakan fungsionalistas adalah dengan
menyusun use case diagram.
Encoder
f rom Actors
Decoder
f rom Actors
Pilih Gambar
Set Password Kripto Input passwordStego
Change passwordKripto Menulis pesan
Mendapat pesan SetPasswordStego
cekTabelViginere Input PasswordKripto
Change passwordStego
Gambar 9 Use Case Diagram
Sistem
Use case diagram sistem pada Gambar 9, terdiri dari dua aktor yaitu
Encoder dan Decoder. Kedua aktor tersebut memiliki hak untuk memilih gambar.
Untuk aktor Encoder sendiri memiliki hak untuk menulis pesan, menggunakan cekTabelVigenere, SetPasswordStego dan Set PasswordVigenere. Dalam kedua
SetPassword terdapat generalisasi ChangePassword. Sedangkan untuk aktor
Decoder sendiri berhak melakukan input passwordStego dan passwordKripto dan
terakhir Mendapat Pesan.
5. Pembahasan