Nama Lengkap : Rahmat Setiawan
Tempat, Tanggal Lahir : Bandung, 20 November 1991
Alamat : Komp. Bumi Panyileukan Blok L8 no 23 RT 02 RW 11
Kec. Panyileukan Kel. Cipadung Kidul,
Cibiru, Bandung. 40164
Jenis Kelamin : Laki-laki
Tinggi Badan : 175
Berat Badan : 67
Email : Rahmatkid@yahoo.com
Agama : Islam
Status : Belum Kawin
Kewarganegaraan : Indonesia
PENDIDIKAN FORMAL
Tahun 1997 – 2003 : SDN Panyileukan 01, Bandung
Tahun 2003 – 2006 : SLTPN 18, Bandung
Tahun 2006 – 2009 : SMA Karya Pembangunan 2, Bandung
Tahun 2009 – 2013 : S1 Fakultas Teknik dan Ilmu Komputer
Jurusan Teknik Informatika
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
RAHMAT SETIAWAN
10109124
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
Puji dan syukur penulis panjatkan kehadirat Allah SWT, karena dengan
karunia dan hidayah-Nya, penulis dapat menyelesaikan tugas akhir ini yang
berjudul “Pembangunan Aplikasi Steganografi Pada Citra Digital
Menggunakan Metode Pixel Value Differencing dan Algoritma Rijndael
Untuk Keamanan Data”.
Penulis menyadari bahwa banyak kesulitan-kesulitan yang dihadapi pada
saat penyelesaian tugas akhir ini, namun berkat bantuan, bimbingan, dan
dukungan dari banyak pihak, tugas akhir ini dapat diselesaikan. Untuk itu penulis
ingin mengucapkan terima kasih yang sebesar-besarnya kepada:
1. Orang tua penulis yang selalu memberikan dukungan baik berupa doa dan
materil.
2. Bapak Iskandar Ikbal, S.T.,M.Kom. sebagai pembimbing dan penguji 2
yang telah mengorbankan waktu dan tenaganya untuk memberikan
masukan untuk tugas akhir ini.
3. Bapak Eko Budi Setiawan, S.Kom.,M.T. sebagai penguji 1 yang telah
memberikan kritik dan sarannya kepada penulis untuk menyelesaikan
tugas akhir ini.
4. Bapak Irawan Afrianto, S.T.,M.T. sebagai penguji 3 yang telah
memberikan kritik dan sarannya kepada penulis untuk menyelesaikan
iv
kritik, masukan dan dukungannya untuk penyelesaian tugas akhir ini.
Akhir kata, penulis memohon maaf jika masih terdapat kekurangan pada
penulisan tugas akhir ini. Semoga tugas akhir ini dapat bermanfaat bagi para
pembaca.
Wassalamualaikum Wr. Wb.
Bandung, Agustus 2013
v
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... xii
DAFTAR SIMBOL ... xv
DAFTAR LAMPIRAN ... xviii
BAB I PENDAHULUAN ... 1
I.1 Latar Belakang Masalah... 1
I.2 Perumusan Masalah ... 2
I.3 Maksud dan Tujuan ... 2
I.4 Batasan Masalah ... 3
I.5 Metodologi Penelitian ... 4
I.5.1 Metode Pengumpulan Data ... 4
I.5.2 Metode Pembangunan Perangkat Lunak... 4
I.6 Sistematika Penelitian ... 5
BAB II LANDASAN TEORI ... 7
II.1 Keamanan Informasi ... 7
II.2 Citra digital ... 8
II.3 Pengukuran Error Citra ... 10
II.4 Steganografi ... 10
II.5 Steganografi Pada Citra Digital ... 12
II.5.1 Transform Domain ... 13
II.5.2 Image Domain ... 13
II.6 Pixel Value Differencing (PVD) Steganografi ... 14
II.7 Kriptografi ... 15
II.7.1 Algoritma Kriptografi ... 17
vi
II.7.2.2 Sub Bytes ... 19
II.7.2.3 Shift Rows ... 20
II.7.2.4 Mix Columns ... 21
II.8 Unified Modelling Language (UML) ... 21
II.9 Teknologi Java ... 26
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 29
III.1 Analisis Sistem ... 29
III.1.1 Analisis Masalah ... 29
III.1.2 Analisis Algoritma ... 29
III.1.2.1 Analisis Algoritma Rijndael ... 31
III.1.2.1.1 Analisis Penjadwalan Kunci ... 31
III.1.2.1.2 Analisis Proses Enkripsi Algoritma Rijndael... 33
III.1.2.2 Analisis Metode Pixel Value Differencing (PVD) ... 35
III.1.2.2.1 Analisis Proses Penyisipan/Embedding ... 35
III.1.2.2.2 Analisis Proses Pengungkapan / Ekstraksi. ... 38
III.1.3 Analisis Kebutuhan non-Fungsional ... 40
III.1.3.1 Analisis Pengguna ... 40
III.1.3.2 Analisis Kebutuhan Perangkat Keras ... 40
III.1.3.3 Analisis Perangkat Lunak ... 41
III.1.4 Analisis Kebutuhan Fungsional ... 42
III.1.4.1 Use Case Diagram ... 42
III.1.4.2 Skenario Use Case ... 43
III.1.4.3 Activity Diagram ... 48
III.1.4.4 Sequence Diagram... 56
III.1.4.5 Class Diagram ... 62
III.2 Perancangan Sistem ... 63
III.2.1 Perancangan Arsitektur ... 63
vii
III.2.2 Perancangan Method ... 70
III.2.2.1 Perancangan Method Penyisipan ... 70
III.2.2.2 Perancangan Method Ekstraksi ... 72
III.2.3 Perancangan Pengujian PerformansiMetode Steganografi ... 73
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM ... 75
IV.1 Implementasi Sistem ... 75
IV.1.1 Implementasi Perangkat Keras... 75
IV.1.2 Implementasi Perangkat Lunak ... 75
IV.1.3 Implementasi Antarmuka ... 76
IV.2 Pengujian Sistem ... 78
IV.2.1 Rencana Pengujian ... 78
IV.2.2 Pengujian White Box ... 78
IV.2.2.1 Pengujian Enkripsi Rijndael ... 79
IV.2.2.2 Pengujian Dekripsi Rijndael ... 82
IV.2.2.3 Pengujian Key Schedule Rijndael ... 85
IV.2.3 Pengujian Black Box ... 88
IV.2.3.1 Pengujian Kapasitas... 88
IV.2.3.2 Pengujian Performansi... 91
IV.2.3.3 Pengujian Kualitas Citra ... 114
IV.2.3.4 Pengujian Ketahanan ... 119
IV.2.4 Kesimpulan Hasil Pengujian ... 122
BAB V KESIMPULAN DAN SARAN ... 123
V.1 Kesimpulan ... 123
V.2 Saran ... 123
xxii
[2] Kim, David, dan Michael G Solomon. 2012. Fundamentals of Information
Systems Security. Jones & Bartlett Learning, United State of America.
[3] Morkel, T., JHP. Eloff, dan MS. Olivier. An Overview of Image
Steganography. Information and Computer Security Architecture (ICSA)
Research Group, Department of Computer Science, University of Pretoria,
Pretoria.
[4] Munir, Rinaldi. 2004. Pengolahan Citra Digital. Informatika, Bandung.
[5] Munir, Rinaldi. 2006. Kriptografi. Informatika, Bandung.
[6] Salomon, David. 2007. Data Compression The Complete Reference 4th
Edition. Springer, London.
[7] Sommerville, Ian. 2011. Software Engineering 9th edition. Addison-Wesley
Publications.
[8] Surian, Didi. Algoritma Kriptografi Aes Rijndael. Jurnal Teknik Elektro TESLA Vol. 8 No. 2, 97 – 101, 2006.
[9] Widodo, Prabowo Pudjo. Herlawati. 2011. Menggunakan UML. Informatika
Bandung, Bandung.
[10]Wu, Hsien-Chu., Na-I Wu, Chwei-Shyong Tsai, dan Min-Shiang Hwang.
2004. An Image Steganographic Scheme Based on Pixel Value Differencing
and LSB Replacement Methods. Department of Management Information
1
Steganografi merupakan salah satu metode yang dapat digunakan untuk
mengamankan informasi. Steganografi berbeda dengan kriptografi atau metode
keamanan informasi lainnya, metode ini yaitu menyembunyikan informasi atau
pesan kedalam media lain seperti citra digital, teks, suara atau video sehingga
tidak menimbulkan kecurigaan orang lain. Steganografi membutuhkan dua
properti, yaitu informasi dan media penampung[4]. Media penampung yang
banyak digunakan untuk menyembunyikan informasi yaitu citra digital.
penyisipan informasi pada media citra digital dilakukan pada bit – bit pixel yang
terdapat pada citra. Penggunaan citra digital sebagai media penampung
mempunyai kelebihan karena indera penglihatan manusia memiliki keterbatasan
terhadap warna, sehingga dengan keterbatasan tersebut manusia sulit
membedakan citra digital yang asli dengan citra digital yang telah disisipi pesan
rahasia.
Steganografi mempunyai banyak metode yang dapat digunakan, namun
metode yang banyak digunakan saat ini masih mempunyai kekurangan dalam hal
kualitas, kapasitas, dan ketahanan[3]. Metode – metode yang digunakan dalam
pembuatan steganografi mempunyai kriteria – kriteria yaitu kapasitas media
penampung menyimpan informasi (payload capacity), kualitas media penampung
yang telah disisipi pesan (fidelity), ketahanan terhadap manipulasi (robustness)
dan tidak menimbulkan kecurigaan pada media penampung yang telah disisipi
pesan (Unsuspicious file)[2]. Kriteria – kriteria ini harus dipenuhi oleh metode
yang digunakan dalam pembuatan steganografi, agar media yang menampung
informasi tidak menimbulkan kecurigaan. Namun dari kriteria – kriteria tersebut,
steganografi tidak memastikan keamanan terhadap informasi yang tersembunyi
pada media penampung. Sehingga jika media penampung dapat diungkap oleh
orang yang tidak bertanggung jawab, maka informasi yang tersembunyi akan
Metode pixel value differencing (PVD) merupakan salah satu metode yang
dapat digunakan dalam pembuatan steganografi. Metode ini menawarkan
kapasitas penyimpanan pesan yang lebih besar, dengan kualitas citra yang lebih
baik dibandingkan dengan metode lain[10]. Untuk menambah tingkat keamanan
dari informasi yang akan disisipkan kedalam citra, steganografi dapat
dikombinasikan dengan enkripsi, sehingga informasi yang disisipkan tidak akan
mudah dibaca oleh orang yang tidak bertanggung jawab. Salah satu enkripsi yang
dapat digunakan yaitu algoritma rijndael yang merupakan algoritma yang
digunakan untuk standar kriptografi Advanced Encryption Standard (AES).
Berdasarkan uraian tersebut, maka pada tugas akhir ini akan dilakukan “PEMBANGUNAN APLIKASI STEGANOGRAFI PADA CITRA DIGITAL
MENGGUNAKAN METODE PIXEL VALUE DIFFERENCING (PVD) DAN
ALGORITMA RIJNDAEL UNTUK KEAMANAN DATA”.
I.2 Rumusan Masalah
Berdasarkan pada latar belakang yang telah diuraikan, perumusan masalah
yang didapat pada tugas akhir ini adalah bagaimana membangun aplikasi
steganografi menggunakan metode pixel value differencing (PVD) dan algoritma
rijndael pada citra digital.
I.3 Maksud dan Tujuan
Berdasarkan permasalahan yang telah diuraikan, maka maksud dari penulisan
tugas akhir ini adalah untuk membangun aplikasi steganografi pada citra digital
menggunakan metode pixel value differencing (PVD) dan algoritma rijndael
untuk keamanan data.
Tujuan yang akan dicapai dalam penelitian ini adalah :
1. Untuk mengimplementasikan penyembunyian pesan atau informasi
kedalam citra digital menggunakan metode pixel value differencing (PVD)
dan algoritma rijndael.
2. Untuk mengetahui performansi pada metode pixel value differencing
3. Untuk mengetahui besar pesan yang dapat disembunyikan kedalam citra
digital menggunakan metode pixel value differencing (PVD).
4. Untuk mengetahui kualitas citra yang telah disisipi pesan menggunakan
metode pixel value differencing (PVD).
5. Untuk mengetahui ketahanan pesan pada citra yang telah disisipi pesan.
I.4 Batasan Masalah
Batasan masalah yang ditentukan pada pembangunan aplikasi steganografi
menggunakan metode pixel value differencing (PVD) dan algoritma rijndael
untuk keamanan data ini adalah sebagai berikut :
1. Media penampung pesan hanya file citra berformat *.bmp, *.png, *.gif dan
*.jpg.
3. Dua pesan dapat disisipkan kedalam citra.
4. Menggunakan algoritma rijndael 128bit untuk enkripsi pesan yang akan
disisipkan kedalam citra.
5. Hal – hal yang akan diujikan pada aplikasi yang dibangun yaitu:
a. Besar pesan yang dapat disembunyikan kedalam citra.
b. Performansi pada metode pixel value differencing (PVD).
c. Kualitas citra yang telah disisipi pesan yang dinyatakan dalam PSNR.
d. Ketahanan pesan pada citra yang telah disisipi pesan (robustness).
6. Aplikasi yang dibangun berbasis desktop.
7. Perangkat lunak yang digunakan untuk pembangunan aplikasi yaitu :
a. Sistem operasi yang digunakan yaitu windows.
I.5 Metodologi Penelitian
Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini
menggunakan metode analisis deskriptif yang yang terdiri dari dua metode yaitu
metode pengumpulan data, dan metode pembangunan perangkat lunak.
I.5.1 Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah
menggunakan metode studi literatur. Studi literatur merupakan pengumpulan data
dengan cara mengumpulkan literatur, jurnal, paper dan bacaan – bacaan yang ada
kaitannya dengan judul penelitian. Data yang akan dikumpulkan dari literatur dan
pustaka yaitu mengenai steganografi pada citra digital, metode steganografi pixel
value differencing (PVD) dan algoritma kriptografi rijndael.
I.5.2 Metode Pembangunan Perangkat Lunak
Metode pembangunan perangkat lunak ini menggunakan metode waterfall
seperti pada gambar I.1 yang terdiri dari beberapa tahap, yaitu:
1. Requirement
Requirement merupakan tahapan analisis terhadap apa saja yang dibutuhkan
oleh sistem yang akan dibangun. Analisis yang dilakukan meliputi analisis
pengguna dan kebutuhan sistem.
2. Design
Design merupakan tahap melakukan perancangan terhadap keseluruhan sistem.
Perancangan yang dilakukan yaitu perancangan antarmuka dari sistem yang
dibangun.
3. Implementation
Implementation merupakan tahap merubah perancangan dan analisis yang
dilakukan sebelumnya kedalam kode pemrograman yang digunakan. Tahap ini
juga dilakukan unit testing untuk mengetahui apakah telah sesuai dengan
kebutuhan sistem.
4. Testing
Testing merupakan tahap dimana sistem yang telah dikodekan dilakukan
pengujian. Pengujian ini dilakukan untuk mengetahui apakah terdapat kesalahan
5. Maintenance
Maintenance merupakan tahap perawatan jika terjadi kesalahan pada sistem.
Perawatan yang dilakukan yaitu mengkoreksi jika terjadi kesalahan, menambah
fungsionalitas dan requirement sistem.
Gambar I.1 Metode Waterfall[7]
I.6 Sistematika Penulisan
Sistematika penulisan skripsi ini disusun untuk memberikan gambaran umum
tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah
sebagai berikut :
BAB I PENDAHULUAN
Bab ini menguraikan tentang latar belakang permasalahan, merumuskan
inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan penelitian,
yang kemudian diikuti dengan pembatasan masalah, serta sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini membahas berbagai konsep dasar dan teori-teori yang berkaitan
dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses
analisis permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang
telah pernah dilakukan sebelumnya termasuk sintesisnya.
BAB III ANALISIS MASALAH DAN PERANCANGAN SISTEM
Bab ini membahas mengenai sub-sub sistem yang diuraikan dari sistem
utama dengan tujuan untuk mengetahui cara kerja dan interaksi dari tiap sub
sistem dalam fungsinya untuk mencapai tujuan sistem. Didalamnya terdapat
proses penyisipan dan proses ekstraksi, selain itu terdapat juga kebutuhan
fungsional dan nonfungsional dari sistem, perancangan antarmuka untuk aplikasi
yang akan dibangun sesuai dengan hasil analisis yang telah dibuat.
BAB IV PENGUJIAN DAN IMPLEMENTASI SISTEM
Bab ini membahas tentang implementasi dari aplikasi yang dibangun.
Implementasi dilakukan berdasarkan analisis dan perancangan yang telah
dilakukan, kedalam bahasa pemrograman tertentu. Hasil dari implementasi,
kemudian dilakukan pengujian apakah aplikasi telah sesuai seperti yang
diharapkan.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan berdasarkan hasil penelitian yang telah
dilakukan dan masukan-masukan yang dapat digunakan untuk pengembangan
7
penelitian yang dilakukan pada tugas akhir. Teori-teori yang digunakan meliputi
keamanan informasi, citra digital, Pengukuran error pada citra, steganografi,
kriptografi, Unified Modelling Language (UML), dan teknologi java.
II.1 Keamanan Informasi
Keamanan informasi merupakan salah satu aspek yang penting dalam
berkomunikasi, namun keamanan seringkali dilupakan ketika melakukan
komunikasi. Informasi yang jatuh ke tangan yang salah dapat menimbulkan
masalah yang besar seperti penipuan, pencurian, pemerasan dan masih banyak
lagi masalah yang akan ditimbulkan.
Keamanan informasi mempunyai beberapa aspek yang harus dipenuhi,
agar informasi dapat terjamin keaslian dan keamanannya. Aspek-aspek umum
tersebut meliputi confidentiality, integrity, authentication, availability dan non
repudiation[2].
1. Confidentiality
Confidentiality atau kerahasiaan yaitu keamanan informasi harus dapat
menjamin kerahasiaan dari informasi. Salah satu cara yang dapat dilakukan yaitu
dengan membatasi hanya orang yang mempunyai hak saja yang dapat membaca
atau mengubah suatu informasi.
2. Integrity
Integrity berhubungan dengan keaslian informasi. Integrity yaitu menjamin
keutuhan dan keaslian informasi yang dikirimkan, agar informasi tidak dirusak
atau diubah oleh orang yang tidak berhak. Untuk menjaga integritas data, sistem
harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak
yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data
3. Authentication
Authentication yaitu usaha atau metode untuk mengetahui keaslian dari
informasi, dan memastikan bahwa informasi diterima oleh orang yang benar.
Untuk menjaga otentikasi terhadap informasi, dapat digunakan digital signature
untuk memastikan keaslian informasi.
4. Availability
Availability atau ketersediaan data yaitu keamanan informasi harus dapat
menjamin bahwa data atau informasi harus tersedia ketika akan digunakan. Untuk
menjamin ketersediaan data, sistem harus mempunyai cadangan data jika data
tersebut hilang.
5. Non Repudiation
Non repudiation yaitu menjamin bahwa seorang pengirim informasi tidak
dapat menyangkal keaslian dari informasi yang dikirimnya. Sehingga penerima
informasi dapat memastikan bahwa informasi yang diterima merupakan informasi
yang asli.
II.2 Citra digital
Citra secara harafiah, adalah gambar pada bidang dua dimensi (dwimatra).
Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus
(continue) dari intensitas cahaya pada bidang dwimatra. Sedangkan citra digital
adalah citra yang dapat diolah oleh komputer[4].
Sebuah citra digital dapat diwakili oleh sebuah matriks yang terdiri dari M
kolom dan N baris, dimana perpotongan antara kolom dan baris disebut pixel,
yaitu elemen terkecil dari sebuah citra. Sebuah citra digital dapat ditulis dalam
bentuk fungsi II.1 berikut.
, =
Beberapa contoh format umum, pada citra digital yaitu Bitmap (BMP), Joint
Photographic Group Experts (JPEG), Graphics Interchange Format (GIF), dan
Portable Network Graphics (PNG).
1. Bitmap(BMP)
Bitmap merupakan format baku citra pada sistem operasi windows dan IBM
OS/2. Citra berformat BMP merupakan citra yang tidak terkompresi, sehingga
pada umumnya citra berformat BMP mempunyai ukuran yang relatif lebih besar
dibandingkan dengan forman citra lainnya. Intensitas pixel dari citra berformat
BMP dipetakan ke sejumlah bit tertentu. Panjang setiap pixel pada bitmap yaitu 4
bit, 8 bit, sampai 24 bit yang merepresentasikan nilai intensitas pixel. Dengan
demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255[4].
2. Joint Photographic Group Experts (JPEG)
Joint Photographic Group Experts (JPEG) merupakan standar kompresi file
yang dikembangkan oleh Group Joint Photographic Experts menggunakan
kombinasi DCT dan pengkodean Huffman untuk mengkompresikan citra. Citra
JPEG merupakan citra terkompresi yang bersifat lossy, artinya citra tidak bisa
dikembalikan ke bentuk aslinya. Citra ini memiliki ukuran yang relatif lebih kecil
dibandingkan dengan citra berformat BMP karena telah terkompresi.
3. Graphics Interchange Format (GIF)
Graphics Interchange Format (GIF) merupakan format citra terkompresi.
Ukuran dari citra berformat GIF merupakan yang terkecil dari semua format citra
digital. Kombinasi warna yg tersedia sebanyak 256 warna. Citra jenis ini banyak
dugunakan untuk keperluan website, untuk membuat sebuah icon, logo dan
keperluan lainnya yang mengharuskan menggunakan citra dengan ukuran yang
kecil. Citra jenis ini juga dapat dibuat animasi.
4. Portable Network Graphics (PNG)
Portable Network Graphics (PNG) adalah salah satu format penyimpanan
citra yang menggunakan metode kompresi yang tidak menghilangkan bagian dari
citra tersebut (lossless compression). Citra berformat PNG merupakan salah satu
format yang baik untuk digunakan pengolahan citra, karena format ini selain tidak
II.3 Pengukuran Error Citra
Pengukuran error citra dilakukan untuk mengetahui tingkat kesamaan
antara citra asli dengan citra yang telah dimanipulasi. Pengukuran error dilakukan
dengan menghitung Mean Square Error (MSE) dan Peak Signal to Noise Ratio
(PSNR) dari citra.
Mean Square Error (MSE) adalah tingkat kesalahan pixel – pixel citra
hasil dari pemrosesan terhadap citra aslinya. Rumus untuk menghitung MSE pada
citra digital yaitu menggunakan persamaan II.2. Sedangkan Peak Signal to Noise
Ratio (PSNR) merupakan nilai (rasio) yang menunjukan tingkat toleransi noise
tertentu terhadap banyaknya noise pada suatu citra. Semakin tinggi nilai PSNR
dari suatu citra, maka semakin kecil tingkat kesalahan yang dimiliki citra tersebut.
Untuk menghitung nilai PSNR digunakan persamaan II.3.
� = 1
I’(x,y) adalah nilai pixel pada citra hasil kompresi. M, N adalah dimensi citra.
= 10 �10 255�2 ………....(II.3)
Semakin besar nilai PSNR dari citra, maka citra yang telah dimanipulasi
semakin mendekati citra aslinya, dengan kata lain semakin bagus kualitas citra
hasil manipulasi tersebut. Sebaliknya, semakin kecil nilai PSNR semakin
berkurang kualitas citra hasil manipulasi. Nilai PSNR pada umumnya berada pada
rentang 20 – 40 db[6].
II.4 Steganografi
Steganografi merupakan salah satu metode yang dapat digunakan untuk
mengamankan informasi. Steganografi berbeda dengan kriptografi atau metode
keamanan informasi lainnya, metode ini yaitu menyembunyikan informasi atau
pesan kedalam media lain seperti citra digital, teks, suara atau video sehingga
properti, yaitu informasi dan media penampung[4]. Media penampung yang dapan
digunakan yaitu citra digital, audio, teks, dan video.
Tujuan dari steganografi adalah menyembunyikan data/pesan pada suatu
media. Media penampung data/pesan yang akan disembunyikan dapat berupa
gambar digital, suara, video dan media lainnya. Jika pada media yang telah
disisipi pesan rahasia tersebut terlihat mencurigakan, maka tujuan dari
steganografi tersebut tidak tercapai.
Teknik steganografi sudah dikenal sejak jaman Yunani dan Romawi kuno.
Misalnya dengan mencukur kepala budak, lalu pesan rahasia ditulis pada kulit
kepalanya. Setelah rambut budak tersebut tumbuh, budak terebut dikirim untuk
menyampaikan pesan rahasia tersebut.
Steganografi mempunyai dua proses utama yaitu embed/penyisipan dan
ekstrak/pengungkapan terlihat pada gambar II.1. Proses penyisipan merupakan
proses menyisipkan hidden object atau informasi/pesan yang akan disisipkan, ke
dalam sebuah cover object atau media penampung, sehingga menghasilkan file
baru yang telah tersisipi pesan didalamnya yang disebut dengan stego file.
Sedangkan proses ekstrak merupakan proses pengembalian hidden object secara
utuh setelah disisipkan ke dalam cover object.
Ada beberapa criteria-kriteria yang harus dipenuhi dalam pembuatan steganografi. Kriteria – kriteria tersebut yaitu[3] :
1. Impercepbility, yaitu keberadaan pesan tidak dapat dipersepsi oleh indrawi.
Jika pesan disisipkan ke dalam sebuah citra, citra yang telah disisipi pesan
harus tidak dapat dibedakan dengan citra asli oleh mata. Begitu pula dengan
suara,telinga harus mendapati perbedaan antara suara asli dan suara yang telah
disisipi pesan.
2. Fidelity, yaitu mutu media penampung tidak berubah banyak akibat
penyisipan. Perubahan yang terjadi harus tidak dapat dipersepsi oleh indrawi.
3. Recovery, yaitu pesan yang disembunyikan harus dapat diungkap kembali.
Tujuan steganografi adalah menyembunyikan informasi, maka sewaktu-waktu
informasi yang disembunyikan harus dapat diambil kembali untuk dapat
digunakan lebih lanjut sesuai keperluan.
II.5 Steganografi Pada Citra Digital
Citra digital merupakan media penampung yang banyak digunakan dalam
steganografi. Penggunaan citra digital sebagai media penampung mempunyai
kelebihan karena indera penglihatan manusia memiliki keterbatasan terhadap
warna, sehingga dengan keterbatasan tersebut manusia sulit membedakan citra
digital yang asli dengan citra digital yang telah disisipi pesan rahasia.
Banyak metode yang dapat digunakan dalam pembuatan steganografi pada
citra digital seperti Least Significant Bits (LSB), Bit Plane Complexity
Segmentation (BPCS), Discrete Cosine Transform (DCT), Discrete Wavelet
Transform (DWT), Spread Spectrum dan metode-metode lainnya. Dari banyaknya
metode tersebut, metode steganografi pada citra digital dapat dibagi menjadi dua
bagian yaitu metode pada transform domain dan image domain seperti pada
Gambar II.2 Kategori Metode Steganografi Pada Citra Digital[3]
II.5.1 Transform Domain
Ranah transform memfokuskan penyisipan pesan ke dalam frekuensi dari
cover-object. Ranah ini memanfaatkan area cover-object yang cenderung tidak
akan mengalami pemrosesan digital[3]. Teknik-teknik yang dapat digunakan
untuk melakukan seteganografi pada citra digital diranah transform di antaranya
adalah sebagai berikut:
1. Discrete Cosine Transform
2. Fourier Transform
3. Wavelet Transform
II.5.2 Image Domain
Image Domain merupakan penyembunyian pesan pada citra digital pada
ranah spasial, ranah spasial ini juga dikenal sebagai teknik subtitusi. Teknik
subtitusi ini dilakukan sedemikian rupa sehingga media penampung yang
disisipkan pesan/informasi tidak dapat dipersepsi oleh indrawi perubahannya.
Metode steganografi yang beroperasi pada ranah spatial diantaranya yaitu least
significantbit (LSB), dynamics cell spreading (DCS), dan pixel value differencing
(PVD).
II.6 Pixel Value Differencing (PVD) Steganografi
Pixel Value Differencing merupakan salah satu metode yang dapat
digunakan dalam steganografi. Metode ini beroperasi pada ranah spasial dari citra.
Berdasarkan analisis terhadap sistem penglihatan manusia yang menyatakan
bahwa, mata manusia tidak sensitif terhadap perubahan pada pixel yang memiliki
kekontrasan tinggi melainkan sensitif terhadap perubahan pada pixel yang
memiliki kekontrasan rendah. Melalui sifat tersebut maka lebih banyak bit data
rahasia yang dapat disisipkan pada pixel yang memiliki nilai kekontrasan tinggi,
dan sedikit bit yang dapat disisipkan pada pixel dengan kekontrasan rendah. Hal
tersebut yang menjadi dasar pemikiran metode Pixel value differencing (PVD)
pada steganografi[10].
Proses penyisipan pada metode ini dilakukan dengan cara membandingkan
dua pixel yang bertetangga Pi dan Pi+1 dengan menggunakan persamaan II.4.
� = � − �+1 ………(II.4)
Hasil dari perbandingan tersebut digunakan untuk mengetahui berapa banyak bit
yang dapat disisipkan kedalam dua pixel yang dibandingkan. Metode ini
menggunakan skema Wu dan Tsai untuk mengetahui range dari perbandingan
pixel sebelumnya. Skema Wu dan Tsai yang digunakan yaitu R =
{[0,7],[8,15],[16,31],[32,63],[64,127],[128,255]}. Skema ini digunakan untuk
mengetahui terdapat di range mana selisih dari dua pixel tersebut, jika telah
diketahui dimana letak range nya, maka jumlah bit pesan yang disisipkan dapat
diketahui dengan persamaan II.5.
�= � 2 � ………..(II.5) Dimana : t : Jumlah bit yang dapat disisipkan.
wi : Nilai terkecil dari skema wu dan tsai, letak range selisih
perbandingan dua pixel.
Penyisipan pesan dapat dilakukan dengan mengambil sebanyak t bit dari
pesan yang akan disisipkan. Selanjutnya dihitung nilai difference value yang baru
untuk penyisipan kedalam citra menggunakan persamaan II.6.
��′ = � + �……….(II.6)
di : Nilai terkecil dari skema wu dan tsai, letak range selisih
perbandingan dua pixel.
Untuk menyisipkan pesan ada beberapa aturan yang harus dipenuhi yaitu :
1. Jika Pi≥ Pi+1dan d’i > di , maka ( � + /2 , �+1 − /2 )
2. Jika Pi < Pi+1dan d’i > di , maka ( � − /2 , �+1 + /2 )
3. Jika Pi≥ Pi+1 dan d’i≤ di , maka ( � − /2 , �+1 + /2 )
4. Jika Pi < Pi+1 dan d’i≤ di , maka ( � + /2 , �+1 − /2 ) Dimana m didapat dari selisih d’i dengan di menggunakan persamaan II.7.
= ��′ − �� ………..(II.7)
Proses-proses tersebut dilakukan terus hingga bit pesan tersisipi semuanya
kedalam citra.
Proses ekstraksi pesan dari citra stego menggunakan metode ini dimulai
dengan menghitung nilai difference value (di) antara dua pixel yang bertetangga.
Nilai difference value tersebut digunakan untuk mengetahui nilai continuous
ranges (R) yang sudah didefinisikan menggunakan skema wu dan tsai[10].
Berdasarkan informasi tersebut dapat diketahui ukuran data rahasia yang
disisipkan pada kedua pixel menggunakan persamaan II.5, sehingga pesan rahasia
yang telah disisipkan didapatkan kembali. Proses ekstraksi ini dilakukan sampai
semua data rahasia yang telah disisipkan didapatkan kembali.
II.7 Kriptografi
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas
data, otentikasi, dan autentifikasi data[2]. Kriptografi bukan satu-satunya cara
untuk menyediakan keamanan informasi, melainkan satu set teknik yang dapat
digunakan untuk mengamankan informasi.
Secara umum, kriptografi terdiri dari dua buah bagian utama yaitu bagian
enkripsi dan bagian dekripsi. Enkripsi adalah proses transformasi informasi
menjadi bentuk lain sehingga isi pesan yang sebenarnya tidak dapat dipahami, hal
ini dimaksudkan agar informasi tetap terlindung dari pihak yang tidak berhak
transformasi data terenkripsi ke data bentuk semula. Proses transformasi dari
plainteks menjadi cipherteks akan dikontrol oleh kunci. Peran kunci sangatlah
penting, kunci bersama-sama dengan algoritma matematisnya akan memproses
plainteks menjadi cipherteks dan sebaliknya.
Kriptografi tidak memenuhi semua aspek dari keamanan informasi.
Kriptografi hanya memenuhi empat aspek dalam keamanan informasi yang
merupakan tujuan dari kriptografi. Keempat aspek tersebut yaitu kerahasiaan
(confidentiality), integritas data (integrity), otentikasi data (authentication), dan
non-repudiation[5].
1. Kerahasiaan
Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari informasi
dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka
informasi yang telah disandi. Kriptografi memenuhi aspek kerahasiaan karena
informasi tidak dapat secara langsung diketahui.
2. Integritas data
Integritas data adalah layanan yang berhubungan dengan penjagaan dari
perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus
memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang
tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain
kedalam data yang sebenarnya.
3. Otentikasi
Otentikasi adalah layanan yang berhubungan dengan identifikasi/ pengenalan,
baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling
berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan
melalui jaringan harus diotentikasi keaslian, isi datanya, waktu pengiriman, dan
lain-lain. Untuk alasan ini aspek kriptografi biasanya dibagi menjadi dua kelas
utama yaitu otentikasi entitas dan otentikasi data asal.
4. Non-repudiation
Non-repudiation adalah layanan yang mencegah terjadinya penyangkalan
terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/
entitas lain dan kemudian berusaha menyangkal otorisasi tersebut diberikan.
Sebuah prosedur yang melibatkan pihak ketiga yang terpercaya diperlukan untuk
menyelesaikan sengketa tersebut.
II.7.1 Algoritma Kriptografi
Algoritma kriptografi yang handal adalah algoritma kriptografi yang
kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma itu sendiri.
Berdasarkan jenis kuncinya, algoritma kriptografi dibagi menjadi dua jenis yaitu
algoritma simetris dan algoritma asimetris.
II.7.1.1 Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana
kunci enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini
disebut juga sebagai single-key algorithm[5]. Ilustrasi penggunaan algoritma
kriptografi dengan kunci simetris dapat terlihat pada gambar II.3 berikut.
Gambar II.3 Ilustrasi Kriptografi Dengan Kunci Simetris
Algoritma simetris banyak digunakan karena lebih cepat dan lebih simpel,
namun penggunaan kunci simetris juga mempunyai kekurangan, karena jika kunci
dapat diketahui, maka informasi pun dapat diketahui. Beberapa algoritma
kriptografi yang termasuk pada algoritma simetris yaitu DES, AES, Rijndael,
Blowfish, dan IDEA.
II.7.1.2 Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma
dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi[5].
privat (private key). Kunci publik disebarkan secara umum sedangkan kunci
privat disimpan secara rahasia oleh pengguna. Ilustrasi penggunaan algoritma
kriptografi dengan kunci asimetris dapat terlihat pada gambar II.4 berikut.
Gambar II.4. Ilustrasi Kriptografi Dengan Kunci Asimetris.
Algoritma asimetris mempunyai keamanan yang lebih baik, karena jika
public key diketahui, informasi belum tentu dapat diketahui karena private key
kemungkinan berbeda. Namun akan menjadi sulit dan lama ketika
implementasinya. Beberapa algoritma kriptografi yang termasuk pada algoritma
asimetris yaitu Diffie – Hellman, RSA, ElGamal, dan DSA.
II.7.2 Algoritma Rijndael
Rijndael termasuk dalam jenis algoritma simetris dan cipher block.
Dengan demikian algoritma ini menggunakan kunci yang sama saat enkripsi dan
dekripsi serta masukan dan keluarannya berupa blok dengan jumlah bit tertentu.
Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan
digunakan, namun Rijndael mempunyai ukuran blok dan kunci yang tetap sebesar
128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah
proses yang harus dilalui untuk proses enkripsi dan dekripsi. Tabel II.3 adalah
perbandingan jumlah proses yang harus dilalui untuk masing-masing masukan.
Tabel II.1 Jumlah Proses Berdasarkan Ukuran Bit Blok dan Kunci
Ukuran blok dan kunci
Panjang Kunci (Nk) Dalam words
Ukuran Blok Data
(Nb) Dalam words Jumlah Proses (Nr)
128 bit 4 4 10
192 bit 6 4 12
Blok-blok data masukan dan kunci dioperasikan dalam bentuk array.
Setiap anggota array sebelum menghasilkan keluaran cipher text dinamakan
dengan state. Setiap state akan mengalami proses yang terdiri dari empat tahap
yaitu, Add Round Key, Sub Bytes, Shift Rows, dan Mix Columns. Kecuali pada
tahap Mix Columns, ketiga tahap lainnya akan diulang pada setiap proses
sedangkan tahap Mix Columns tidak akan dilakukan pada tahap terakhir[8].
II.7.2.1 Add Round Key
Proses Add Round Key yaitu proses menggabungkan subkey dengan state
menggunakan operasi XOR untuk setiap byte dari subkey dengan byte yang dari
state[8]. Untuk setiap tahap, subkey dibangkitkan dari kunci utama dengan
menggunakan proses key schedule. Proses Add Round Key dapat dilihat pada
Gambar II.5.
Gambar II.5 Proses Add Round Key Algoritma Rijndael
II.7.2.2 Sub Bytes
Proses Sub Bytes adalah proses substitusi dengan cara mengganti setiap
byte state dengan byte pada sebuah tabel yang dinamakan tabel S-Box yangdapat
Tabel II.2 S-Box
Sebuah tabel S-Box terdiri dari 16 baris dan 16 kolom dengan masing-masing
berukuran 1 byte. Proses Sub Bytes dapat dilihat pada Gambar II.6.
Gambar II.6 Proses Sub Bytes Algoritma Rijndael
II.7.2.3 Shift Rows
Proses Shift Rows adalah proses perputaran pada tiga baris terakhir dari
state dengan jumlah putaran yang berbeda-beda. Baris ke-1 akan diputar sebanyak
1 kali, baris ke-2 akan diputar sebanyak 2 kali, dan baris ke-3 akan diputar
sebanyak 3 kali, sedangkan baris ke-0 tidak akan diputar[8]. Proses Shift Rows
diperlihatkan pada Gambar II.7.
II.7.2.4 Mix Columns
Operasi Mix Columns adalah proses menggabungkan 4 bytes dari setiap
kolom dari tabel state dengan menggunakan transformasi linier[8]. Operasi Mix
Columns memperlakukan setiap kolom sebagai polinomial 4 suku dalam Galois
field dan kemudian dikalikan dengan c(x) modulo (x4+1), dimana
c(x)=3x3+x2+x+2. Kebalikkan dari polinomial ini adalah
c(x)=11x3+13x2+9x+14. Operasi Mix Columns juga dapat dipandang sebagai
perkalian matrix seperti terlihat pada gambar II.8.
Gambar II.8 Proses Mix Columns Algoritma Rijndael
II.8 Unified Modelling Language (UML)
Unified Modelling Language (UML) adalah sebuah bahasa pemodelan
standar yang memiliki sintaks dan semantic. Pemodelan ini sangat cocok
digunakan untuk merancang dan memodelkan sistem berorientasi objek[9].
Diagram pada UML dibagi menjadi dua bagian yaitu structural diagram
dan behavior diagram. Structural diagram digunakan untuk mendeskripsikan
relasi antar kelas. Tools yang digunakan pada bagian ini yaitu class diagram.
Sedangkan behavior diagram digunakan untuk mendeskripsikan interaksi antara
aktor dan sebuah use case (bagaimana seorang aktor menggunakan sistem). Tools
yang digunakan pada bagian ini yaitu Use case diagram, Sequence diagram,
1. Diagram Class
Diagram class digunakan untuk menggambarkan keadaan suatu sistem
dengan menjelaskan keterhubungan antara suatu class dengan class yang lain
yang terdapat pada sistem[9]. Sebuah class terdiri dari nama, atribut dan method.
Atribut dan method dari sebuah kelas mempunyai visibility, Ada tiga jenis
visibility yang digunakan yaitu private, public, dan protected. Setiap class pada
class diagram mempunyai hubungan dengan class lainnya, ada beberapa jenis
hubungan class, yaitu dependency, asosiasi, agregasi, komposisi dan generalisasi.
a. Dependency
Dependency merupakan hubungan terlemah antar class. Dependency
bermakna satu class menggunakan atau memiliki pengetahuan terhadap class lain,
namun hubungannya hanya sementara dan tidak ada batas waktu yang jelas.
b. Asosiasi
Asosiasi mempunyai hubungan yang lebih kuat dari hubungan dependency,
dimana suatu class tetap berhubungan dengan class lain seterusnya. Hubungan
asosiasi dibagi menjadi dua jenis yaitu directional dan bidirectional.
c. Agregasi
Agregasi merupakan bentuk hubungan yang mengimplikasikan kepemilikan
suatu class. Agregasi juga merupakan bentuk yang lebih kuat dari asosiasi.
Hubungan agregasi dinyatakan dengan simbol diamond pada pemilik kelas dan
garis utuh berpanah kekelas yang dimiliki.
d. Komposisi
Komposisi merupakan bentuk hubungan antar class yang paling kuat.
Komposisi digunakan untuk mengambil seluruh bagian dari class yang
berhubungan. Aturan dari komposisi yaitu hanya boleh ada satu komposisi dalam
satu waktu.
e. Generalisasi
Generalisasi merupakan bentuk hubungan antar class, dari class yang umum
dengan class yang lebih khusus. Contoh class hewan memiliki hubungan
generalisasi dengan class kucing, karena kucing merupakan class khusus dari
2. Diagram Use Case
Diagram use case digunakan untuk mendeskripsikan kejadian-kejadian
apa saja yang dapat dilakukan oleh user/aktor dan fungsionalitas-fungsionalitas
apa saja yang diharapkan dari sistem yang akan dibangun, tanpa mendeskripsikan
bagaimana sistem menyelesaikannya[9]. Sebuah use case menggambarkan suatu
urutan interaksi antara satu atau lebih aktor dan sistem. Dalam fase requirements,
model use case mengambarkan sistem sebagai sebuah kotak hitam dan interaksi
antara aktor dan sistem dalam suatu bentuk naratif, yang terdiri dari input user dan
respon-respon sistem.
Setiap use case menggambarkan perilaku sejumlah aspek sistem, tanpa
mengurangi struktur internalnya. Selama pembuatan model use case secara
pararel juga harus ditetapkan obyek-obyek yang terlibat dalam setiap use case.
Contoh use case diagram diperlihatkan pada gambar II.9.
Gambar II.9 Contoh Use Case Diagram
3. Diagram Sequence
Diagram sequence menggambarkan interaksi antar objek di dalam dan di
sekitar sistem yang menekankan pada pengiriman pesan dalam suatu waktu
tertentu[9]. Sequence diagram biasa digunakan untuk menggambarkan skenario
atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event
untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas
tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa
Gambar II.10 Contoh Sequence Diagram
4. Diagram Collaboration
Diagram collaboration menunjukan informasi yang sama seperti dalam
sequence diagram. Perbedaannya adalah dari cara mengelompokan objek
sequence berdasarkan urutan nomor dari pesan[9]. Contoh collaboration diagram
diperlihatkan pada gambar II.11.
Gambar II.11 Contoh Collaboration Diagram
5. Diagram Statechart
Diagram statechart menggambarkan keadaan-keadaan pada sistem,
memuat status (state), transisi, kejadian serta aktifitas[9]. Contoh Statechart
Gambar II.12 Contoh Statechart Diagram
6. Diagram Activity
Diagram activity menggambarkan berbagai alir aktivitas dalam sistem
yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang
mungkin terjadi, dan bagaimana mereka berakhir[9]. Activity diagram merupakan
state diagram khusus, di mana sebagian besar state adalah action dan sebagian
besar transisi di-trigger oleh selesainya state sebelumnya (internal processing).
Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah
sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan
proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Contoh
Activity diagram diperlihatkan pada gambar II.13.
II.9 Teknologi Java
Java adalah sebuah teknologi yang diperkenalkan oleh Sun Microsystems
pada pertengahan tahun 1990. Menurut definisi dari Sun, Java adalah nama untuk
sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada
komputer stand alone ataupun pada lingkungan jaringan. Java berdiri di atas
sebuah mesin interpreter yang diberi nama Java Virtual Machine (JVM). JVM
inilah yang akan membaca bytecode dalam file .class dari suatu program sebagai
representasi langsung program yang berisi bahasa mesin.
Oleh karena itu, bahasa Java disebut sebagai bahasa pemrograman yang
portable karena dapat dijalankan pada berbagai sistem operasi, asalkan pada
sistem operasi tersebut terdapat JVM. PlatformJava terdiri dari kumpulan library,
JVM, kelas-kelas loader yang dipaket dalam sebuah lingkungan rutin Java, dan
sebuah compiler, debuger, dan perangkat lain yang dipaket dalam Java
Development Kit (JDK)[1].
Java merupakan salah satu bahasa pemrograman yang menggunakan
paradigma pemrograman berbasis objek. Paradigma ini yaitu menggunakan objek
untuk membungkus atribut dan operasi yang mungkin pada objek tersebut. Java
mempunyai kelebihan dan kekurangan yaitu:
A. Kelebihan Java
Beberapa kelebihan dari java yaitu sebagai berikut:
1. Multiplatform
Kelebihan utama dari java ialah dapat dijalankan di beberapa platform/sistem
operasi komputer, sesuai dengan prinsip tulis sekali, jalankan dimana saja.
Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas
sistem operasi linux tetapi dijalankan dengan baik di atas Microsoft Windows.
2. OOP (Object Oriented Programming)
Java merupakan salah satu bahasan pemrograman berbasis objek secara
murni. Semua tipe data diturunkan dari kelas dasar yang disebut objek. Hal ini
sangat memudahkan pemrogram untuk mendesain, membuat,
mengembangkan, dan mengalokasi kesalahan sebuah program dengan basis
3. Library yang lengkap
Java terkenal dengan kelengkapan library/perpustakaan (kumpulan
program-program yang disertakan dalam pemrogram java) yang sangat memudahkan
dalam penggunaan oleh para pemrogram untuk membangun aplikasinya.
Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas java
yang besar yang terus menerus membuat perpustakaan-perpustakaan baru
untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
4. Bergaya C++
Java memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik
banyak pemrogram C++ untuk pindah ke java. Saat ini pengguna java sangat
banyak, sebagian besar adalah pemrogram C++ yang pindah ke java.
5. Pengumpulan sampah otomatis
Java memiliki fasilitas pengaturan penggunaan memori sehingga para
pemrogram tidak perlu melakukan pengaturan memori secara langsung
(seperti halnya dalam bahasa C++ yang dipakai secara luas) [1].
B. Kekurangan Java
Beberapa kekurangan Java antara lain :
1. Mudah didekompilasi
Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber.
Ini memungkinkan karena kode jadi java merupakan bytecode yang
menyimpan banyak atribut bahasa tingkat tinggi seperti nama-nama kelas,
metode dan tipe data.
2. Penggunaan memori yang banyak
Penggunaan memori untuk program berbasis java jauh lebih besar daripada
bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih
29
Analisis sistem merupakan suatu tahapan yang bertujuan untuk
mengetahui dan mengamati apa saja yang terlibat dalam suatu sistem.
Pembahasan yang ada pada analisis sistem ini yaitu analisis masalah, analisis
algoritma, analisis kebutuhan nonfungsional, dan analisis kebutuhan fungsional.
III.1.1 Analisis Masalah
Analisis masalah dilakukan untuk mengetahui masalah-masalah apa saja
yang terjadi dalam pembangunan aplikasi steganografi. Masalah yang terjadi
ketika pembangunan steganografi pada citra digital yaitu kapasitas citra yang
dapat disisipkan informasi kecil, kualitas citra digital yang telah disisipkan
informasi, dan keamanan informasi yang disisipkan kedalam citra tidak terjamin,
karena saat ini banyak aplikasi yang digunakan untuk menanalisis citra apakah
terdapat informasi yang disembunyikan dan letak dari informasi yang
disembunyikan. Jika letak dari informasi yang disisipkan pada citra diketahui,
maka informasi akan langsung dapat diketahui.
III.1.2 Analisis Algoritma
Analisis algoritma digunakan untuk mengetahui alur proses dari algoritma
yang digunakan untuk dapat diterapkan ke dalam aplikasi yang dibangun.
Pembangunan aplikasi ini menggunakan algoritma Rijndael untuk proses enkripsi
dan dekripsi dengan panjang kunci 128bit sebagai keamanan terhadap informasi
yang akan disisipkan. Sedangkan metode steganografi yang digunakan yaitu
metode Pixel Value Differencing (PVD) untuk proses penyisipan dan ekstraksi
informasi. Tahapan-tahapan yang dilakukan pada setiap prosesnya yaitu sebagai
1. Proses Penyisipan
a. Pengirim memilih file pesan yang akan disisipkan
b. Pengirim melakukan enkripsi terhadap pesan menggunakan algoritma
rijndael 128bit.
c. Pengirim memilih file citra yang akan digunakan sebagai media
penampung dari pesan.
d. Pengirim melakukan proses penyisipan menggunakan metode Pixel Value
Differencing (PVD).
2. Proses Ekstraksi
a. Penerima memilih file citra yang telah disisipkan pesan (stego object)
b. Penerima melakukan proses ekstraksi menggunakan metode Pixel Value
Differencing (PVD).
c. Penerima melakukan dekripsi terhadap pesan menggunakan algoritma
rijndael 128bit.
d. Penerima menyimpan pesan yang telah diekstraksi dari citra.
Tahapan-tahapan proses pada aplikasi steganografi secara umum dapat dilihat
pada gambar III.1.
III.1.2.1 Analisis Algoritma Rijndael
Algoritma rijndael merupakan algoritma kriptografi yang sifatnya simetris
dan cipher block. Dengan demikian algoritma ini mengunakan kunci yang sama
saat enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan
jumlah bit tertentu. Algoritma rijndael yang digunakaan pada aplikasi
steganografi yang dibangun menggunakan ukuran blok dan kunci 128bit.
Algoritma rijndael terdapat dua proses yaitu proses penjadwalan kunci dan
enkripsi.
III.1.2.1.1 Analisis Penjadwalan Kunci
Proses penjadwalan kunci merupakan proses dimana cipherkey di
jadwalkan untuk menghasilkan subkey-subkey yang digunakan untuk proses
enkripsi dan dekripsi pada algoritma rijndael. Contoh penjadwalan kunci pada
algoritma rijndael jika diketahui kunci yang akan digunakan untuk enkripsi
dengan panjang 16 byte yaitu:
Cipherkey = abcdefghijklmnop
Tahap awal ubah cipherkey kedalam bentuk hexadecimal menjadi sebagai berikut:
Cipherkey = 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70
Tahap selanjutnya melakukan operasi-operasi penjadwalan kunci.
Operasi-operasi yang dilakukan yaitu RotWord, SubByte, dan melakukan operasi XOR
untuk menghasilkan subkey. Operasi-operasi yang dilakukan yaitu sebagai
berikut:
1. Masukan cipherkey tersebut kedalam blok 16 byte menjadi.
�=
2. Melakukan operasi RotWord pada kolom terakhir dari ciphertext.
6
6
5. Melakukan operasi XOR untuk untuk kolom selanjutnya dengan kolom yang
baru.
6. Simpan kedalam subkey.
� �=
Subkey ini yang akan digunakan untuk proses enkripsi atau dekripsi pada
algoritma rijndael pada round ke-1 untuk round selanjutnya dilakukan
III.1.2.1.2 Analisis Proses Enkripsi Algoritma Rijndael
Proses enkripsi pada algoritma rijndael terdiri dari empat operasi yaitu
Add Round Key, Sub Bytes, Shift Rows, dan Mix Columns. Operasi-operasi ini
diulang terus-menerus hingga menghasilkan ciphertext. Jumlah perulangan yang
dilakukan tergantung pada ukuran blok dan kunci yang digunakan, dalam hal ini
ukuran blok dan kunci yang digunakan yaitu 128 bit, sehingga berdasarkan pada
tabel II.1, maka perulangan yang dilakukan sebanyak 10 kali. Contoh enkripsi
pada algoritma rijndael, jika diketahui kunci dan plaintext yang akan digunakan
untuk enkripsi dengan panjang 16 byte.
Cipherkey = abcdefghijklmnop
Plaintext = UNIKOM BANDUNG !
Tahap awal ubah cipherkey dan plaintext kedalam bentuk hexadecimal menjadi
sebagai berikut:
Cipherkey = 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70
Plaintext = 55 4e 49 4b 4f 4d 20 42 41 4e 44 55 4e 47 20 21
Masukan cipherkey dan plaintext ke dalam blok 16 byte sehingga menjadi
� =
dilakukan operasi-operasi enkripsi pada algoritma rijndael sebagai berikut:
1. Melakukan operasi AddRoundKey dengan melakukan operasi XOR pada
setiap kolom di state dengan kolom di ciphertext, sehingga menghasilkan state
baru seperti berikut.
� =
2. State yang telah dilakukan operasi AddRoundKey tersebut dilakukan
perulangan dengan urutan operasi pertama yaitu operasi SubByte. Operasi ini
yaitu melakukan subtitusi state dengan tabel s-box pada tabel II.2 sehingga
� =
baris terakhir dari state seperti berikut:
� =
4. Melakukan operasi MixColumns yaitu melakukan perkalian tiap kolom pada
state dengan matriks seperti berikut.
4
5. Melakukan AddRoundKey kembali dengan menggunakan SubKey hasil dari
penjadwalan kunci CipherKey.
Sehingga menghasilkan state baru yaitu
� =
Semua operasi tersebut diulang sebanyak 10 kali hingga mendapatkan
ciphertext. Untuk perulangan 1 sampai 9 dilakukan operasi SubByte, ShiftRow,
MixColumn, dan AddRoundKey. Sedangkan untuk perulangan terakhir hanya
Proses dekripsi menggunakan algoritma rijndael merupakan kebalikan dari
proses enkripsi. Operasi-operasi yang dilakukan yaitu InvSubByte, InvShiftRow,
InvMixColumn, dan AddRoundKey.
III.1.2.2 Analisis Metode Pixel Value Differencing (PVD)
Metode Pixel Value Differencing (PVD) merupakan salah satu metode
steganografi pada citra digital yang beroperasi pada ranah spasial. Konsep dari
metode ini yaitu dengan menyisipkan pesan kedalam dua pixel yang bertetangga,
dengan memanfaatkan perbedaan intensitas warna dari kedua pixel yang
bertetangga tersebut. Seperti halnya metode steganografi lainnya, pada metode ini
terdapat dua proses yaitu proses penyisipan/embedding dan pengungkapan/
ekstraksi.
III.1.2.2.1 Analisis Proses Penyisipan/Embedding
Proses penyisipan yaitu proses menyembunyikan informasi kedalam
media penampung, dalam hal ini media penampung berupa citra digital. Proses ini
akan menghasilkan citra yang telah disisipkan pesan (stego-object) yang
menyerupai dengan citra sebelum disisipkan pesan. Proses penyisipan pada
metode pixel value differencing terlihat pada gambar III.2.
Gambar III.2 Proses Penyisipan Pesan
Contoh proses penyisipan, jika diketahui pesan yang akan disisipkan
berupa file unikom.txt dengan isi pesan yaitu “UNIKOM BANDUNG !”. Tahap
awal yang dilakukan yaitu merubah isi pesan kedalam bentuk biner seperti pada
Gambar III.3 Perubahan Pesan Teks ke Bit
Tahap selanjutnya yaitu mengambil nilai pixel dari citra yang akan disisipkan
pesan. Jika diketahui citra yang digunakan yaitu lena.bmp dengan nilai pixel
seperti pada gambar III.4.
Gambar III.4 Nilai Pixel Dari Citra Cover
Maka tahap selanjutnya yaitu melakukan proses penyisipan menggunakan metode
pixel value differencing dengan tahapan-tahapan yaitu sebagai berikut:
1. Mengambil pixel yang bertetangga dari citra. Contoh pixel yang bertetangga
yaitu pixel(0,0) dengan pixel(0,1) seperti pada gambar III.5. Nilai dari pixel
yang bertetangga tersebut diambil untuk dilakukan penyisipan. Jika Pi dan Pi+1
merupakan pixel yang bertetangga, maka � = 100 dan �+1 = 126.
Gambar III.5 Pixel yang Bertetangga Dari Citra Cover
2. Menghitung nilai differencing value dari kedua pixel tersebut menggunakan
persamaan II.4 yaitu = |100−126|, sehingga didapat = 26.
3. Mencari letak continues range dari nilai difference value pada skema wu dan
tsai R = {[0,7],[8,15],[16,31],[32,63],[64,127],[128,255]}. Letak continues
range yang didapat dari = 26 yaitu [16, 31] dimana = 16, dan = 31.
4. Menghitung berapa banyak bit dari pesan yang dapat disisipkan kedalam
kedua pixel yang dibandingkan menggunakan persamaan II.5 yaitu =
2(31 – 16) sehingga didapat = 4, maka ambil bit dari pesan sebanyak t yaitu 0101.
5. Mengubah nilai bit sebanyak t kedalam nilai decimal. Bit informasi yang
disisipkan yaitu 0101, maka nilai decimal-nya yaitu 5 atau = 5.
6. Menghitung nilai differencing value yang baru menggunakan persamaan II.6, ′ = 16 + 5 sehingga didapat nilai differencing value yang baru yaitu ′=
21.
7. Melakukan penyisipan dengan mengubah nilai dari pixel yang dibandingkan
dengan nilai pixel yang baru sesuai dengan aturan – aturan yang ada, dimana
m = 5 didapat menggunakan persamaan II.7 yaitu = |21−26|. Aturan yang terpenuhi yaitu ′ < dan�′ < �′+1, maka �′ = 100 + 5/2
dan�′+1 = 126− 5/2 .
8. Menyimpan nilai pixel yang baru yaitu �′ = 102 dan �′+1 = 123 kedalam citra. Tahapan ini dilakukan sampai semua pesan tersisipi, sehingga menjadi
seperti pada gambar III.6.
III.1.2.2.2 Analisis Proses Pengungkapan / Ekstraksi.
Proses ekstraksi yaitu proses pengambilan informasi yang tersembunyi
pada citra digital. Proses ini akan menghasilkan file informasi yang
disembunyikan, dengan masukan berupa citra stego-object. Proses ekstraksi pada
metode pixel value differencing terlihat pada gambar III.7.
Gambar III.7 Proses Ekstraksi Pesan
Tahap awal pada proses ekstraksi pesan yaitu mengambil nilai pixel dari
citra yang telah disisipkan pesan. Jika diketahui citra yang digunakan yaitu
StegaLena.bmp dengan nilai pixel seperti pada gambar III.8.
Gambar III.8 Nilai Pixel Dari Citra Stego
Maka tahap selanjutnya yaitu melakukan proses ekstraksi menggunakan metode
pixel value differencing dengan tahapan-tahapan yaitu sebagai berikut:
1. Mengambil pixel yang bertetangga dari citra. Contoh pixel yang bertetangga
yaitu pixel(0,0) dengan pixel(0,1) seperti pada gambar III.9. Nilai dari pixel
yang bertetangga tersebut diambil untuk dilakukan penyisipan. Jika Pi dan Pi+1
Gambar III.9 Pixel yang Bertetangga Fari Citra Stego
2. Menghitung nilai differencing value dari kedua pixel tersebut menggunakan
persamaan II.4 yaitu = |102−123|, sehingga didapat = 21.
3. Mencari letak continues range dari nilai difference value pada skema wu dan
tsai R = {[0,7],[8,15],[16,31],[32,63],[64,127],[128,255]}. Letak continues
range yang didapat dari = 21 yaitu [16, 31] dimana = 16, dan = 31.
4. Menghitung berapa banyak bit dari informasi yang disisipkan kedalam kedua
pixel. Banyak bit tersebut dihitung menggunakan persamaan II.5 yaitu
= 2(31 – 16) sehingga didapat = 4, atau terdapat 4 bit pesan yang disisipkan pada kedua pixel.
5. Menghitung nilai b atau nilai decimal dari bit pesan yang disisipkan dengan
menggunakan persamaan II.6 yaitu = 21−16 sehingga didapat nilai = 5
atau nilai decimal dari bit pesan adalah 5.
6. Mengubah nilai b atau nilai decimal pesan kedalam bentuk bit sebanyak t,
maka didapat bit pesan 0101.
Tahapan-tahapan pada metode pixel value differencing tersebut diulang
hingga semua pesan yang terdapat di dalam citra terekstrak. Tahap selanjutnya
setelah semua pesan terekstrak yaitu merubah pesan dalam bentuk biner ke bentuk
semula. Jika pesan yang disisipkan berupa pesan teks, maka diubah kedalam
bentuk teks seperti pada gambar III.10.
Gambar III.10 Perubahan Pesan Bit ke Teks
III.1.3 Analisis Kebutuhan non-Fungsional
Analisis kebutuhan nonfungsional adalah sebuah langkah dimana seorang
pembangun aplikasi menganalisis sumber daya yang dibutuhkan untuk
menggunakan aplikasi yang akan dibangun. Analisis kebutuhan nonfungsional
yang dilakukan dibagi dalam tiga tahap, yaitu analisis pengguna (user), analisis
kebutuhan perangkat keras, dan analisis perangkat lunak.
III.1.3.1 Analisis Pengguna
Pengguna yang akan menggunakan aplikasi steganografi ini dibagi
menjadi dua bagian yaitu bagian pengirim dan penerima dengan kebutuhan
spesifikasi seperti pada tabel III.1.
Tabel III.1 Kebutuhan Pengguna Aplikasi
Tipe
Pengirim Dapat melakukan operasi enkripsi pesan dan
Penerima Dapat melakukan operasi dekripsi pesan dan ekstrak pesan dari citra.
Dapat mengoperasikan
III.1.3.2 Analisis Kebutuhan Perangkat Keras
Perangkat keras merupakan salah satu kebutuhan yang sangat penting bagi
pembuatan steganografi. Perangkat keras akan mempengaruhi kinerja dari
pembuatan steganografi, semakin tinggi spesifikasi dari perangkat keras yang
digunakan maka akan semakin cepat pula pembuatan steganografinya. Perangkat
keras yang digunakan pada pembangunan aplikasi steganografi ini yaitu seperti