Upload
lamxuyen
View
223
Download
0
Embed Size (px)
Citation preview
BAB 3
ANALISIS DAN PERANCANGAN PROGRAM
Perancangan program aplikasi yang dibuat dalam skripsi ini menggunakan aturan
linear sequential (waterfall). Metode ini terdiri dari empat tahapan yaitu analisis,
perancangan, pembuatan, dan implementasi. Tahap analisis, perancangan, dan
pembuatan akan dibahas dalam Bab 3 ini, sedangkan tahap implementasi akan
dilanjutkan di Bab 4.
3.1 Analisis Masalah
Perkembangan teknologi digital yang semakin pesat, terutama pada internet,
memudahkan siapapun untuk mendapatkan atau bertukar informasi dengan mudah dan
cepat dalam berbagai bentuk tanpa batas ruang dan waktu. Ancaman akan keamanan
informasi menjadi hal sangat penting, karena ancaman ini akan berakibat pada data atau
pesan rahasia yang dikomunikasikan.
Dengan pertumbuhan ilmu pengetahuan di bidang informatika, teknik-teknik
pengamanan informasi pada jaman dahulu dapat diterapkan pada pengamanan data atau
pesan rahasia melalui jaringan internet. Salah satunya adalah cryptography, yaitu ilmu
dan seni untuk menjaga keamanan data atau pesan rahasia yang dikirim dari suatu
tempat ke tempat yang lain. Cara kerja cryptography adalah mengacaukan data atau
pesan rahasia sehingga data atau pesan rahasia tersebut tidak dapat dimengerti. Namun,
cryptography tetap dapat dipecahkan walaupun membutuhkan waktu.
Kemudian berkembanglah steganography, yang merupakan kelanjutan dari
cryptography. Berbeda dengan cryptography, steganography lebih mengurangi
51
kecurigaan karena data atau pesan rahasia disembunyikan ke dalam suatu media
sehingga tidak ada pihak yang mengetahui keberadaan data atau pesan rahasia tersebut.
3.2 Usulan Pemecahan Masalah
Melihat masalah keamanan data atau pesan rahasia tersebut, maka hal yang dapat
dilakukan adalah merancang suatu program aplikasi yang dapat menyisipkan data atau
pesan rahasia tersebut ke dalam suatu media yang dapat diakses setiap orang dengan
teknik steganography. Cryptography dan steganography sama-sama memiliki
kelemahan. Maka steganography dan cryptography akan digunakan secara bersamaan
untuk menghasilkan perlindungan yang lebih baik terhadap sebuah pesan. Telah banyak
studi tentang steganography pada media citra (image) dan suara (audio) dengan berbagai
metode. Media lain yang dapat digunakan untuk menyisipkan data atau pesan rahasia
adalah digital video.
Ada beberapa metode untuk menerapkan steganography, yaitu disisipkan pada
domain spasial dan disisipkan pada domain frekuensi. Domain spasial adalah ruang di
mana data ditampilkan dalam piksel-piksel dan penyisipan dilakukan dengan sedikit
mengubah nilai piksel-piksel tertentu. Contoh metode penyisipan pada domain spasial
adalah Least Significant Bit (LSB), Singular Value Decomposition (SVD), dan Minimax
Eigenvalue Decomposition (MED). Domain frekuensi adalah mentransformasi data
menjadi frekuensi kemudian penyisipan data dilakukan dengan sedikit mengubah nilai
koefisien tertentu yang dipilih. Contoh metode penyisipan pada domain frekuensi adalah
Discrete Cosine Transform (DCT), Discrete Wavelet Transform (DWT), dan Discrete
Fourier Transform (DFT).
52
Steganography pada domain spasial memiliki kelebihan yaitu menghasilkan
imperceptibility yang baik sehingga kualitas media penampung tidak jauh berubah dari
kualitas media asli, namun juga memiliki kekurangan yaitu tidak tahan terhadap
serangan berupa cropping dan compression. Steganography pada domain frekuensi
memiliki kelebihan yaitu menghasilkan robustness yang baik sehingga media
penampung tahan terhadap serangan-serangan, namun juga memiliki kekurangan yaitu
membutuhkan perhitungan matematis yang rumit. Oleh karena kriteria utama suatu
steganography adalah keamanan, imperceptibility, dan robustness; maka program
aplikasi yang dirancang akan menggabungkan metode domain spasial dengan domain
frekuensi.
Metode domain spasial yang paling sering digunakan adalah LSB karena
kemudahan dan kecepatan implementasinya. LSB memodifikasi bit-bit LSB pada setiap
byte warna pada sebuah piksel frame video dengan digantikan oleh bit-bit LSB pesan.
Namun, metode membutuhkan tempat penyimpanan yang relatif besar dan dapat secara
drastis mengubah unsur pokok warna dari piksel sehingga menunjukkan perbedaan yang
nyata dari cover file menjadi stego file dan stego file yang dihasilkan tidak dapat
dikompresi dengan format lossy compression sebab dapat menghilangkan pesan.
Metode domain frekuensi yang paling sering digunakan adalah DCT karena
tahan terhadap serangan seperti compression. DCT merepresentasi banyak data point
yang merupakan penjumlahan dari fungsi kosinus yang berosilasi pada frekuensi yang
berbeda-beda dan mengubah sedikit image dari beberapa frame video sehingga
perubahan yang terjadi tidak dirasakan. Namun, metode ini kurang baik digunakan pada
data yang bersifat periodik dan smooth, juga membutuhkan waktu yang lama jika image
dari digital video yang digunakan memiliki resolusi bidang yang luas.
53
Metode yang digunakan adalah metode SVD dan DWT. Metode DWT
menyediakan feature yang penting seperti rekonstruksi yang sempurna, directional
selectivity yang baik, dan shift invariance yang dapat meningkatkan ketahanan. Metode
DWT telah diuji dalam beberapa serangan, seperti lossy compression, additive noise,
rotation, scaling, cropping, dan joint attack yang melibatkan kombinasi dari distorsi
sebelumnya sehingga menjamin robustness yang baik. Sedangkan metode SVD dapat
menyisipkan pesan atau data rahasia pada nilai-nilai singular dengan pertimbangan
bahwa nilai singular tidak akan mengalami perubahan yang signifikan jika terjadi sedikit
gangguan pada video sehingga menjamin imperceptibility yang baik. Skema ini
melakukan penyisipan nilai-nilai singular SVD pesan ke dalam nilai-nilai singular SVD
tiap subband (koefisien-koefisien) DWT dari frame video.
Untuk pengacakan informasi (enkripsi) dengan cryptography, digunakan
algoritma Data Encryption Standard (DES).
Format file yang paling sesuai untuk steganography adalah yang memiliki
tingkat redundancy yang tinggi. Redundancy adalah jumlah bit berlebih dari sebuah
objek yang menghasilkan akurasi jauh lebih besar dari yang dibutuhkan untuk
merepresentasi objek. Oleh sebab itu, video yang paling sesuai adalah video tidak
terkompresi bitmap 24-bit. Maka video yang dipilih adalah file yang berformat AVI,
karena merupakan file uncompressed video, sehingga dapat memuat jumlah data atau
pesan rahasia yang cukup besar dan hasil video yang telah disisipkan tidak akan terlalu
berpengaruh pada kualitasnya.
54
3.3 Prosedur Penyisipan dan Pengekstraksi Pesan
Dalam merancang program aplikasi ini, terdapat dua algoritma utama yaitu
algoritma penyisipan data atau pesan rahasia dan algoritma pengekstraksi data atau
pesan rahasia. Algoritma penyisipan berfungsi untuk menyisipkan data atau pesan
rahasia ke dalam video, sedangkan algoritma pengekstraksi berfungsi untuk mengambil
data atau pesan rahasia yang telah disisipkan pada video.
3.3.1 Transformasi Ruang Warna
Citra berwarna yang akan disisipkan bekerja pada ruang warna RGB. Ruang
warna ini membagi komponen warnanya menjadi tiga kanal terpisah, yaitu kanal merah
(red) R, kanal hijau (green) G, dan kanal biru (blue) B. Kombinasi dari ketiga kanal ini
membentuk sebuah warna tertentu dan dapat diubah menjadi satu koefisien luminance
yaitu Y(intensitas warna keseluruhan pada citra) yang berupa bentuk hitam/putih dari
citra dan dua koefisien chrominance yaitu Cb (kombinasi warna biru/kuning) dan Cr
(kombinasi warna merah/hijau). Penyisipan pesan rahasia dilakukan pada nilai warna
luminance, karena indera penglihatan manusia lebih peka terhadap intensitas
dibandingkan terhadap warna. Pada warna berpengaruh pada terang-gelap citra,
sehingga stego-image yang dihasilkan akan terlihat lebih alami. Untuk itu perlu
dilakukan transformasi citra dari ruang warna RGB ke ruang warna YCbCr. Rumus
transformasi ruang warna RGB menjadi YCbCr adalah:
55
Komponen luminance dibagi menjadi blok-blok 64x64 dan komponen chrominance
dibagi menjadi blok-blok 32x32.
Gambar 3.1 Dekomposisi Sub-band Luminance (Y) dan Chrominance (Cb, Cr)
Dan ketika pesan telah disisipkan dan citra akan dikembalikan dari ruang warna YCbCr
menjadi ruang warna RGB, rumus transformasinya adalah:
3.3.2 Algoritma Penyisipan Pesan
Berikut ini adalah urutan algoritma penyisipan pesan.
1. Bagi video menjadi scene-scene video VSi.
2. Ubah frame video F dari format matriks warna RGB menjadi YCbCr.
3. Hitung 2D-DWT pada matriks Y (luminance) tiap frame F. Operasi ini
menghasilkan tujuh sub-band DWT (LL2, HL2, LH2, HH2, HL1, LH1, HH1).
Setiap sub-band adalah matriks dari koefisien DWT.
56
Gambar 3.2 Dekomposisi Frame Sub-band 2D-DWT
4. Gunakan operator SVD pada sub-band LL2. Operator SVD mendekomposisi
matriks koefisien sub-band menjadi tiga matriks independen:
LL2 = ULL2 SLL2 VLL2
Gambar 3.3 Operasi SVD
5. Samakan ukuran data atau pesan rahasia dengan ukuran sub-band LL2 yang akan
disisipkan.
6. Penyisipan dilakukan dengan cara menyubstitusi matriks singulir kiri dan kanan
(matriks U dan V) data atau pesan rahasia pada matriks U dan V sub-band LL2.
7. Lakukan inverse SVD pada matriks LL2 yang telah dimodifikasi sehingga
mendapatkan matriks koefisien LL2'.
8. Lakukan inverse DWT pada matriks koefisien LL2'. Operasi ini menghasilkan
frame video F'.
9. Ubah frame video F' dari matriks warna YCbCr menjadi RGB.
10. Rekonstruksi frame menjadi scene video VSi'.
57
11. Rekonstruksi scene menjadi stego-video.
Untuk lebih jelasnya, algoritma penyisipan pesan dapat dilihat pada gambar:
Gambar 3.4 Algoritma Penyisipan Pesan
3.3.3 Algoritma Pengekstraksi Pesan
Berikut ini adalah urutan algoritma pengekstraksi pesan.
1. Bagi stego-video menjadi scene-scene video VSi'.
2. Ubah frame video F' dari matriks warna RGB menjadi YCbCr.
3. Hitung 2D-DWT dari frame F'. Operasi ini menghasilkan tujuh sub-band DWT
(sLL2, sHL2 , sLH2, sHH2, sHL1, sLH1 ,sHH1)
4. Gunakan operator SVD pada sub-band sLL2. Operator SVD mendekomposisi
matriks koefisien sub-band menjadi tiga matriks independen:
sLL2 = UsLL2 SsLL2 VsLL2
58
5. Ekstraksi dilakukan dengan cara mengambil 2b kolom pertama dan 2b baris
pertama dari matriks U dan V.
6. Rekonstruksi pesan membutuhkan matriks diagonal S yang memuat nilai-nilai
singular data atau pesan rahasia serta password.
Untuk lebih jelasnya, algoritma pengekstraksi pesan dapat dilihat pada gambar:
Gambar 3.5 Algoritma Pengekstraksi Pesan
3.4 Perancangan Program Aplikasi
3.4.1 Perincian Syarat
1. Program dibuat menggunakan program Text Pad 4.7.2 : 32-bit Edition.
2. Metode steganography yang digunakan adalah Singular Value Decomposition
(SVD) dan Discrete Wavelet Transform (DWT).
3. Metode cryptography yang digunakan adalah Data Encryption Standard (DES).
4. Media file berformat uncompressed AVI (.avi).
5. Data yang disisipkan berupa teks, image, audio, video, dan lainnya.
59
3.4.2 Bentuk Program
Arsitektur perancangan aplikasi dari sebuah program terdiri dari dua konsep
sebagai berikut.
A. Procedural Programming
Procedural programming, disebut juga imperative programming adalah
pemrograman sederhana dengan menerapkan urutan-urutan langkah. Procedural
programming memanggil function atau procedure, dikenal sebagai routines. Setiap
procedure harus mengandung sederetan langkah-langkah algoritma, yang kemudian
procedure-procedure tersebut dipanggil dari program kapan saja.
B. Object Oriented Programming
Object Oriented Programming (OOP) adalah pemrograman yang menggunakan
class dan object serta interaksinya untuk mendesain aplikasi dan program komputer.
OOP bersifat reusable sehingga untuk modul-modul yang mempunyai kemiripan pada
fungsi, programmer tidak perlu membuat program berulang-ulang. Pada perancangan
program aplikasi yang rumit lebih baik menerapkan OOP.
OOP terdiri dari tiga bagian konsep yang membuat OOP menjadi konsep
pemrograman yang handal dan dapat diimplementasikan dalam segala situasi. Tiga
bagian konsep-konsep dasar OOP adalah sebagai berikut.
1. Encapsulation
Encapsulation adalah konsep yang merangkap seluruh atribute dan
method pada suatu bagian menjadi sebuah class. Tujuan encapsulation adalah
60
untuk memudahkan konsep pemrograman, menyembunyikan informasi rahasia,
dan memungkinkan pembuatan objek-objek yang bersifat sama.
2. Inheritance
Inheritance adalah konsep penurunan sifat pada OOP. Tujuan inheritance
adalah untuk memudahkan pemrograman dan menjaga hubungan antar class,
sehingga programmer dan user dapat mengerti dengan mudah aliran program
dari yang sederhana hingga berkembang menjadi rumit.
3. Polymorphism
Polymorphism adalah konsep perubahan bentuk sifat objek ketika
program sedang berjalan. Polymorphism pada dasarnya adalah sebuah abstract
class yang mempunyai virtual method yang diturunkan menjadi beberapa class
yang harus mengimplementasikan virtual method tersebut. Tujuan polymorphism
adalah untuk memantapkan arsitektur pemrograman dengan memperjelas arah
hubungan antar class dan method-method dari class.
3.4.3 Hirarki Menu
Hirarki menu pada program aplikasi ini dapat dilihat pada gambar berikut.
Gambar 3.6 Hirarki Menu
61
3.4.4 Use Case Diagram
Gambar 3.7 Use Case Diagram Video Steganography
62
3.4.5 Class Diagram
Gambar 3.8 Class Diagram Video Steganography
63
3.4.6 Sequence Diagram
Gambar 3.9 Sequence Diagram Video Steganography
64
3.4.7 Statechart Diagram
Gambar 3.10 Statechart Diagram Embedding
Gambar 3.11 Statechart Diagram Extracting
3.4.8 State Transition Diagram
State Transition Diagram (STD) menggambarkan sebuah sistem yang real-time
dan sistem yang on-line. STD merupakan suatu keadaan yang menggambarkan suatu
keadaan pada waktu tertentu. Perubahan keadaan dapat terjadi karena suatu kejadian dan
sebagai akibat dari kejadian tersebut maka akan muncul suatu aksi yang menyebabkan
keadaan berubah. STD membantu dalam memberikan gambaran secara keseluruhan dari
program. STD untuk program aplikasi ini dapat dilihat pada gambar-gambar berikut.
65
Gambar 3.12 State Transition Diagram Menu Utama
Gambar 3.13 State Transition Diagram Layar Embed
66
Gambar 3.14 State Transition Diagram Layar Extract
3.5 Perancangan Layar
Rancangan layar yang digunakan memiliki empat menu, yaitu menu Embed,
menu Extract, menu Help, dan menu About. Menu-menu tersebut memiliki fungsi
sebagai berikut.
1. Menu Embed, digunakan untuk memilih video dan data yang akan disisipkan,
memasukkan password, kemudian dilakukan proses embedding.
2. Menu Extract, digunakan untuk memilih stego-video, memasukkan password,
dan melalukan proses extracting, sehingga mendapatkan data yang disisipkan.
67
3. Menu Help, digunakan untuk memberikan tutorial manual cara pemakaian
program aplikasi.
4. Menu About, digunakan untuk memberikan informasi tentang program aplikasi
dan pembuatnya.
3.5.1 Rancangan Layar Menu Embed
Dalam menu Embed, terdapat fasilitas untuk memilih digital video serta tempat
menampung video hasil proses, memilih data yang akan disisipkan, dan memasukkan
password untuk keamanan rahasia. Tombol ‘Embed’ untuk menjalankan proses
embedding, tombol ‘Cancel’ untuk membatalkan data yang dimasukkan, dan tombol
‘Exit’ untuk keluar dari program aplikasi.
Gambar 3.15 Rancangan Layar Menu Embed
68
3.5.2 Rancangan Layar Menu Extract
Dalam menu Extract, terdapat fasilitas untuk memilih stego-video, memilih
tempat menampung data hasil proses, dan memasukkan password untuk membuka pesan
rahasia yang disisipkan. Tombol ‘Extract’ untuk menjalankan proses extracting, tombol
‘Cancel’ untuk membatalkan data yang dimasukkan, dan tombol ‘Exit’ untuk keluar dari
program aplikasi.
Gambar 3.16 Rancangan Layar Menu Extract
3.5.3 Rancangan Layar Menu Help
Pada menu Help, terdapat User Manual yang bertujuan untuk membantu user
agar mengetahui fungsi-fungsi dari tiap menu dan cara pemakaian program aplikasi.
69
Gambar 3.17 Rancangan Layar Menu Help
3.5.4 Rancangan Layar Menu About
Pada menu About, terdapat perincian informasi mengenai judul program aplikasi,
perancang program aplikasi, tahun pembuatan program aplikasi, serta orang-oramg yang
berperan dalam perancangan program aplikasi ini.
70
Gambar 3.18 Rancangan Layar Menu About