Pembangunan aplikasi steganograft pada citra digital menggunakan metode pixel value differencing (PVD) dan algoritma Rijndael untuk keamanan data

(1)

Bahwa yang bertanda tangan dibawah ini, penulis bersedia :

"Bahwa hasil penelitian dapat dionlinekan sesuai dengan peraturan yang berlaku,

untuk keperluan riset dan pendidikan."

Bandung, 27 Agustus 2013

Penulis,

Rahmat Setiawan

NIM:

rcrcg124

Mengetahui,

Pembimbing

w

Iskandar Ikbal. S.T..M.Kom. NIP :41277006A20


(2)

Saya yang bertanda tangan dibawah ini :

Nama

: Rahmat Setiawan

:10109124

Judul

Skripsi

: Pembangunan Aplikasi Steganografi Pada Citra Digital

Menggunakan Metode Pixel Value Dffirencing (Pvd) Dan dlgorifina RijndaetUntuk Keamanan Data

Menyatakan bahwa saya tidak melakukan tindakan menirq menyalin atau

menjiplak skripsi atau karya ilmiah yang telah ada, Apabila saya terbukti melakukan tindalcan tersebut, maka saya bersedia untuk menerima sanksi yang

diberikan sesuai dengan ketentuan yang ditetapkan dan berlaku di Program Studi

Teknik Informatika Universitas Komputer Indonesia.

Mengetahui, Yang Memberi Pernyataan


(3)

(4)

(5)

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


(6)

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

UNIVERSITAS KOMPUTER INDONESIA

2013


(7)

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 tugas akhir ini.


(8)

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


(9)

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


(10)

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


(11)

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 Performansi Metode 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


(12)

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


(13)

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 langsung diketahui.


(14)

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


(15)

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.

2. Pesan yang akan disisipkan kedalam citra tidak hanya file teks saja, tapi juga dapat berupa gambar, suara dan jenis file lainnya dengan format yaitu:

a. Pesan teks : *.txt, *.doc, *.docx, *.pdf dan *.xls b. Pesan gambar : *.bmp, *.png, *.gif dan *.jpg. c. Pesan suara : *.mp3 dan *.wav

d. Pesan kompresi : *.rar dan *.zip 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.


(16)

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 pada sistem yang telah dikodekan pada tahap implementation atau tidak.


(17)

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 analisis terhadap proses penjadwalan kunci, proses enkripsi, proses dekripsi,


(18)

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 perangkat lunak selanjutnya.


(19)

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 lain kedalam data yang sebenarnya


(20)

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.

, =

0,0 0,1 . . 0, −1 1,0 . . . . 1, −1 .. .. . . ..

−1,0 −1,1 . . ( −1, −1)

………(II,1)

Terdapat banyak format file dari citra digital, format file citra ini terdiri dari beberapa jenis dan setiap jenisnya memiliki karakteristik masing- masing.


(21)

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 menghilangkan bagian dari citra yang sedang diolah.


(22)

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

MN

n x=1 m

y=1 [ I x, y − I′(x, y) ]2………..……..(II.2)

Dimana: I(x,y) adalah nilai pixel di citra asli.

I’(x,y) adalah nilai pixel pada citra hasil kompresi. M, N adalah dimensi citra.

= 10 �10

2552

� ………....(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 tidak menimbulkan kecurigaan orang lain. Steganografi membutuhkan dua


(23)

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.


(24)

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.


(25)

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).


(26)

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)


(27)

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 menerima. Sedangkan dekripsi adalah proses kebalikan enkripsi, yaitu


(28)

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/ membuat. Sebagai contoh, satu entitas dapat mengizinkan pembelian properti oleh


(29)

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]. Algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci


(30)

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


(31)

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


(32)

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.


(33)

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,


(34)

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


(35)

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 yang dihasilkan. Contoh sequence diagram diperlihatkan pada gambar II.10.


(36)

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


(37)

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.


(38)

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


(39)

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 spesifik lagi delphi dan Objek Pascal) [1].


(40)

(41)

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 berikut :


(42)

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.


(43)

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.

�= 61 65 62 66 69 6 6 6 63 67 64 68 6 6 6 70

2. Melakukan operasi RotWord pada kolom terakhir dari ciphertext.

6 6 70 = 6 6 70


(44)

6 6 70 6 = 9 8 51 3

4. Hasil dari operasi SubByte dilakukan operasi XOR dengan rcon dan W1 (kolom ke-1 dari W).

� =

01 02 04 08 00 00 00 00

10 20 40 80 1 36 00 00 00 00 00 00 00 00 00 00

00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 61 62 63 64 ⨁ 9 8 51 3 ⨁ 01 00 00 00 = 32 58

5. Melakukan operasi XOR untuk untuk kolom selanjutnya dengan kolom yang

baru.

65 66 67 68

32

58 = 9 55 30 69 6 6 6 ⨁ 9 55 30 = 3 6 3 5 6 6 6 70 ⨁ 3 6 3 5 = 9 8 51 2

6. Simpan kedalam subkey.

� �=

9 3 9 6 8 32 55

58 30

3 51 5 2

Subkey ini yang akan digunakan untuk proses enkripsi atau dekripsi pada

algoritma rijndael pada round ke-1 untuk round selanjutnya dilakukan penjadwalan kunci kembali sampai round ke-10.


(45)

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

� = 55 4 4 4 41 4 4 47 49 20 4 42 44 20 55 21 � � �= 61 65 62 66 69 6 6 6 63 67 64 68 6 6 6 70

Cipherkey dan plaintext yang telah dimasukan kedalam block selanjutnya dapat

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.

� = 34 2 2 2 28 23 24 28 2 47 2 2 2 4 39 41

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 menghasilkan state baru yaitu:


(46)

� = 4 0 27 8 1 4 41 11 98 1 5 52 5 30

3. Hasil dari operasi SubByte dilakukan operasi ShiftRows yaitu memutar tiga baris terakhir dari state seperti berikut:

� =

4 0 27

8 1 4

11 98 Menjadi ���� =

4 0 4

8 1 27 11 98

4. Melakukan operasi MixColumns yaitu melakukan perkalian tiap kolom pada state dengan matriks seperti berikut.

4 5 30 • 02 01 03 02 01 03 01 01 01 03 01 01 02 01 02 03 = 04 66 81 5 � = 04 0 66 48 28 8 06 81 19 5 9 3 26 7 4

5. Melakukan AddRoundKey kembali dengan menggunakan SubKey hasil dari penjadwalan kunci CipherKey.

04 0 66 48 28 8 06 81 19 5 9 3 26 7 4 ⨁

9 3 9 6 8 32 55

58 30

3 51 5 2

Sehingga menghasilkan state baru yaitu

� =

7 67

6 35 3 4 5 77

26 60

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


(47)

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.


(48)

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 01010101 . . 0010000 UNIKOM BANDUNG !


(49)

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.


(50)

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 merupakan pixel yang bertetangga, maka � = 102 dan �+1 = 123.


(51)

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 UNIKOM BANDUNG ! 01010101 . . 0010000


(52)

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 Pengguna Hak Akses Tingkat Keterampilan Jenis pelatihan

Pengirim Dapat melakukan operasi enkripsi pesan dan penyisipan pesan kedalam citra.

Dapat mengoperasikan komputer dan memahami konsep steganografi dan kriptografi. Tidak diperlukan pelatihan khusus.

Penerima Dapat melakukan operasi dekripsi pesan dan ekstrak pesan dari citra.

Dapat mengoperasikan komputer dan memahami konsep steganografi dan kriptografi. Tidak diperlukan pelatihan khusus.

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 pada tabel III.2.


(53)

Tabel III.2 Spesifikasi Perangkat Keras

No Nama Perangkat Spesifikasi 1 Prosessor Intel Core 2.26 GHz

2 Monitor Monitor 14 inch (1366x768)

3 Memori RAM 2 GB DDR2

4 Harddisk 320 GB SATA 7200rpm

Sedangkan kebutuhan perangkat keras untuk menjalankan aplikasi yang dibangun,

yang harus dipenuhi yaitu seperti pada tabel III.3.

Tabel III.3 Spesifikasi Perangkat Keras

No Nama Perangkat Spesifikasi 1 Prosessor Intel Core 2.26 GHz

2 Monitor Monitor 14 inch (1366x768)

3 Memori RAM 1 GB DDR2

4 Harddisk 250 GB SATA 7200rpm

III.1.3.3 Analisis Perangkat Lunak

Perangkat lunak yang digunakan untuk membangun aplikasi steganografi ini yaitu seperti pada tabel III.4.

Tabel III.4 Spesifikasi Perangkat Lunak

No Nama Perangkat Spesifikasi 1 Sistem Operasi Windows 8 Professional 2 JDK (Java Development Kit) JDK 1.7.0

3 JRE (Java Runtime Environment) JRE 7

Sedangkan kebutuhan Perangkat keras untuk menggunakan aplikasi steganografi ini yaitu seperti pada tabel III.5.

Tabel III.5 Kebutuhan Perangkat Lunak

No Nama Perangkat Spesifikasi

1 Sistem Operasi Windows xp

2 JDK (Java Development Kit) JDK 1.7.0 3 JRE (Java Runtime Environment) JRE 7


(54)

III.1.4 Analisis Kebutuhan Fungsional

Analisi kebutuhan fungsional adalah segala bentuk data yang dibutuhkan oleh sistem agar sistem dapat berjalan sesuai dengan prosedur yang dibangun.

Aplikasi yang dibangun akan dimodelkan menggunakan Unified Modeling

Language (UML), dan tools yang akan digunakan yaitu use case diagram, activity

diagram, sequence diagram, dan class diagram.

III.1.4.1 Use Case Diagram

Use case diagram digunakan untuk mengetahui apa saja yang dapat

dilakukan oleh pengguna/aktor terhadap fungsionalitas yang terdapat pada aplikasi yang dibangun. Use case diagram pada aplikasi steganografi terlihat pada gambar III.11.


(55)

III.1.4.2 Skenario Use Case

Skenario use case merupakan penjelasan secara rinci setiap use case

yang terdapat pada diagram use case. Skenario use case pada aplikasi ini yaitu sebagai berikut:

1. Skenario Pemilihan Citra

Skenario use case pemilihan citra dapat dilihat pada tabel III.6. Tabel III.6 Skenario Use Case Pemilihan Citra Use case name PemilihanCitra

Actor Pengirim

Use case description

Digunakan untuk memilih file citra yang akan digunakan sebagai media penampung pesan.

Precondition Sistem menampilkan menu penyisipan pesan. Trigger Pengirim menekan tombol browse citra. Scenario :

1. Pengirim menekan tombol browse citra 2. Sistem menampilkan dialog open file

3. Pengirim memilih citra yang akan digunakan

4. Pengirim menekan tombol open

5. Sistem Menampilkan informasi citra

Exception :

1. Pengirim menekan tombol cancel, pemilihan citra dibatalkan.

2. Skenario Pemilihan Pesan

Skenario use case pemilihan pesan dapat dilihat pada tabel III.7. Tabel III.7 Skenario Use Case Pemilihan Pesan

Use case name Pemilihan Pesan Actor Pengirim

Use case description Digunakan untuk memilih file pesan yang akan disisipkan kedalam citra.

Precondition Sistem menampilkan menu penyisipan pesan. Trigger Pengirim menekan tombol browse pesan. Scenario :


(56)

1. Pengirim menekan tombol browse pesan 2. Sistem menampilkan dialog open file

3. Pengirim memilih pesan yang akan disisipkan 4. Pengirim menekan tombol open

5. Sistem menampilkan informasi pesan Exception :

1. Pengirim menekan tombol cancel, pemilihan pesan dibatalkan.

3. Skenario Enkripsi

Skenario use case enkripsi dapat dilihat pada tabel III.8. Tabel III.8 Skenario Use Case Enkripsi

Use case name Enkripsi Actor Pengirim

Use case description Digunakan untuk mengenkripsi file pesan yang akan disisipkan ke dalam citra.

Precondition Sistem menampilkan menu penyisipan pesan, dan pengirim telah memilih pesan.

Trigger Pengirim menekan tombol enkripsi. Scenario :

1. Pengirim menekan tombol enkripsi. 2. Sistem melakukan proses pembuatan kunci. 3. Sistem melakukan proses enkripsi.

4. Sistem menampilkan informasi enkripsi.

5. Sistem menampilkan kunci yang digunakan untuk enkripsi. Exception :

1. Enkripsi gagal.

a. Sistem menampilkan informasi pesan gagal dienkripsi. b. Pengirim memilih pesan yang akan disisipkan. c. Pengirim menekan tombol enkripsi.

4. Skenario Penyalinan Kunci

Skenario use case penyalinan kunci dapat dilihat pada tabel III.9. Tabel III.9 Skenario Use Case Penyalinan Kunci

Use case name Penyalinan Kunci Actor Pengirim

Use case description Digunakan untuk Menyalinkunci yang dihasilkan dari proses enkripsi


(57)

Precondition Sistem menampilkan menu penyisipan pesan, dan pengirim telah melakukan proses enkripsi.

Trigger Pengirim menekan tombol copy. Scenario :

1. Pengirim menekan tombol copy. 2. Sistem menyalin kunci ke clipboard

3. Sistem menampilkan info penyalinan

Exception :

1. Kunci belum terisi.

a. Sistem menampilkan informasi gagal penyalinan.

5. Skenario Penyisipan

Skenario use case penyisipan dapat dilihat pada tabel III.10. Tabel III.10 Skenario Use Case Penyisipan

Use case name Penyisipan Actor Pengirim

Use case description Digunakan untuk menyisipkan pesan ke dalam citra.

Precondition

Sistem menampilkan menu penyisipan pesan, pengirim telah memilih citra, pengirim telah memilih pesan, dan pesan telah dienkripsi.

Trigger Pengirim menekan tombol embed. Scenario :

1. Pengirim menekan tombol embed. 2. Sistem menampilkan save dialog.

3. Pengirim memilih letak penyimpanan citra stego. 4. Pengirim menekan tombol save.

5. Sistem melakukan proses penyisipan 6. Sistem menampilkan info penyisipan Exception :

1. Penyisipan gagal

a. Sistem menampilkan informasi penyisipan gagal. b. Pengirim memilih citra, dan pesan

c. Pengirim menekan tombol enkripsi.


(1)

IV.2.3.4 Pengujian Ketahanan

Pengujian ketahanan dilakukan untuk mengetahui ketahanan pesan yang telah tersisipi didalam citra, jika dilakukan manipulasi terhadap citra, dan untuk mengetahui ketahanan terhadap aplikasi steganalysis. Manipulasi yang dilakukan terhadap citra yaitu dengan melakukan rotate left, rotate right, rotate 180o, resize -5%, Grayscale, dan Croping. Pengujian ketahanan dilakukan terhadap empat format citra yaitu Bitmap, jpg, png, dan gif.

1. Pengujian Ketahanan Citra Bitmap

Hasil pengujian ketahanan pada citra bitmap terhadap manipulasi dapat dilihat pada tabel IV.45.

Tabel IV.45 Pengujian Ketahanan Terhadap Manipulasi Citra Bitmap

Citra Bitmap

Rotate Left

Rotate Right

Rotate 180o

Resize

-5% Grayscale Crop

I Gagal Gagal Gagal Gagal Gagal Gagal

II Gagal Gagal Gagal Gagal Gagal Gagal

III Gagal Gagal Gagal Gagal Gagal Gagal

IV Gagal Gagal Gagal Gagal Gagal Gagal

Pengujian ketahanan terhadap aplikasi Steganalysis dilakukan menggunakan

tools StegSpy2.1. Pengujian ini untuk mengetahui apakah pesan dapat terdeteksi oleh aplikasi steganalysis, atau tidak. Hasil pengujian seperti pada tabel IV.46.

Tabel IV.46 Pengujian Terhadap Aplikasi Steganalysis Citra Bitmap

Citra Hasil Deteksi

I Terdeteksi

II Terdeteksi

III Terdeteksi

IV Terdeteksi

Pengujian ketahanan terhadap manipulasi yang dilakukan dengan hasil seperti pada tabel IV.45, menunjukan bahwa citra bitmap tidak tahan terhadap manipulasi. Sedangkan pada tabel IV.46 pengujian terhadap aplikasi steganalysis, citra bitmap yang tersisipi pesan dapat terdeteksi oleh aplikasi steganalysis. 2. Pengujian Ketahanan Citra JPG

Hasil pengujian ketahanan pada citra JPG terhadap manipulasi dapat dilihat pada tabel IV.47.


(2)

120

Tabel IV.47 Pengujian Ketahanan Terhadap Manipulasi Citra JPG

Citra JPG Rotate

Left

Rotate Right

Rotate 180o

Resize

-5% Grayscale Crop

I Gagal Gagal Gagal Gagal Gagal Gagal

II Gagal Gagal Gagal Gagal Gagal Gagal

III Gagal Gagal Gagal Gagal Gagal Gagal

IV Gagal Gagal Gagal Gagal Gagal Gagal

Pengujian ketahanan terhadap aplikasi steganalysis dilakukan menggunakan

tools StegSpy2.1. Pengujian ini untuk mengetahui apakah pesan dapat terdeteksi oleh aplikasi steganalysis, atau tidak. Hasil pengujian seperti pada tabel IV.48.

Tabel IV.48 Pengujian Terhadap Aplikasi Steganalysis Citra JPG

Citra Hasil Deteksi

I Terdeteksi

II Terdeteksi

III Terdeteksi

IV Terdeteksi

Pengujian ketahanan terhadap manipulasi yang dilakukan dengan hasil seperti pada tabel IV.47, menunjukan bahwa citra JPG tidak tahan terhadap manipulasi. Sedangkan pada tabel IV.48 pengujian terhadap aplikasi steganalysis, citra JPG

yang tersisipi pesan terdeteksi oleh aplikasi steganalysis. 3. Pengujian Ketahanan Citra PNG

Hasil pengujian ketahanan pada citra PNG terhadap manipulasi dapat dilihat pada tabel IV.49.

Tabel IV.49 Pengujian Ketahanan Terhadap Manipulasi Citra PNG

Citra PNG Rotate

Left

Rotate Right

Rotate 180o

Resize

-5% Grayscale Crop

I Gagal Gagal Gagal Gagal Gagal Gagal

II Gagal Gagal Gagal Gagal Gagal Gagal

III Gagal Gagal Gagal Gagal Gagal Gagal

IV Gagal Gagal Gagal Gagal Gagal Gagal

Pengujian ketahanan terhadap aplikasi steganalysis dilakukan menggunakan

tools StegSpy2.1. Pengujian ini untuk mengetahui apakah pesan dapat terdeteksi oleh aplikasi steganalysis, atau tidak. Hasil pengujian seperti pada tabel IV.50.


(3)

Tabel IV.50 Pengujian Terhadap Aplikasi Steganalysis Citra PNG

Citra Hasil Deteksi

I Terdeteksi

II Terdeteksi

III Terdeteksi

IV Terdeteksi

Pengujian ketahanan terhadap manipulasi yang dilakukan dengan hasil seperti pada tabel IV.49, menunjukan bahwa citra PNG tidak tahan terhadap manipulasi. Sedangkan pada tabel IV.50 pengujian terhadap aplikasi steganalysis, citra PNG

yang tersisipi pesan terdeteksi oleh aplikasi steganalysis.

4. Pengujian Ketahanan Citra GIF

Hasil pengujian ketahanan pada citra GIF terhadap manipulasi dapat dilihat pada tabel IV.51.

Tabel IV.51 Pengujian Ketahanan Terhadap Manipulasi Citra GIF

Citra GIF Rotate

Left

Rotate Right

Rotate 180o

Resize

-5% Grayscale Crop

I Gagal Gagal Gagal Gagal Gagal Gagal

II Gagal Gagal Gagal Gagal Gagal Gagal

III Gagal Gagal Gagal Gagal Gagal Gagal

IV Gagal Gagal Gagal Gagal Gagal Gagal

Pengujian ketahanan terhadap aplikasi steganalysis dilakukan menggunakan

tools StegSpy2.1. Pengujian ini untuk mengetahui apakah pesan dapat terdeteksi oleh aplikasi steganalysis, atau tidak. Hasil pengujian seperti pada tabel IV.52.

Tabel IV.52 Pengujian Terhadap Aplikasi Steganalysis Citra GIF

Citra Hasil Deteksi

I Terdeteksi

II Terdeteksi

III Terdeteksi

IV Terdeteksi

Pengujian ketahanan terhadap manipulasi yang dilakukan dengan hasil seperti pada tabel IV.51, menunjukan bahwa citra GIF tidak tahan terhadap manipulasi. Sedangkan pada tabel IV.52 pengujian terhadap aplikasi steganalysis, citra GIF

yang tersisipi pesan terdeteksi oleh aplikasi steganalysis.

Berdasarkan pengujian yang telah dilakukan terhadap empat format citra berbeda, metode pixel value differencing tidak tahan terhadap manipulasi citra dan


(4)

122

steganalysis. Ketahanan pada empat format citra terhadap manipulasi terlihat pada tabal IV.53 dan terhadap steganalysis terlihat pada tabel IV.54.

Tabel IV.53 Ketahanan Citra Terhadap Manipulasi

Citra Rotate

Left

Rotate Right

Rotate 180o

Resize

-5% Grayscale Crop

Bitmap Gagal Gagal Gagal Gagal Gagal Gagal

JPG Gagal Gagal Gagal Gagal Gagal Gagal

PNG Gagal Gagal Gagal Gagal Gagal Gagal

GIF Gagal Gagal Gagal Gagal Gagal Gagal

Tabel IV.54 Ketahanan Citra Terhadap Steganalysis

Citra Hasil Deteksi

Bitmap Terdeteksi

JPG Terdeteksi

PNG Terdeteksi

GIF Terdeteksi

IV.2.4 Kesimpulan Hasil Pengujian

Berdasarkan pada pengujian yang dilakukan maka didapatkan kesimpulan sebagai berikut :

1. Kapasitas citra menyisipkan pesan pada metode pixel value differencing

(PVD) lebih kecil dari ukuran citranya, dengan rata-rata penyimpanan yaitu 27.85%.

2. Waktu proses penyisipan dan ekstraksi yang dibutuhkan oleh metode pixel value differencing (PVD) lebih cepat dibandingkan dengan metode Least Significant Bit (LSB).

3. Waktu proses ekstraksi lebih cepat dibandingkan dengan waktu proses penyisipan.

4. Kualitas citra yang dihasilkan setelah disisipi pesan masih tergolong baik dengan PSNR rata-rata 52.81db.

5. Metode pixel value differencing (PVD) tidak dapat mengekstrak citra yang telah dimanipulasi, dan metode PVD tidak tahan terhadap steganalysis.


(5)

123

Kesimpulan yang didapat berdasarkan pada analisis, perancangan, implementasi dan pengujian sistem yang dilakukan yaitu sebagai berikut :

1. Aplikasi steganografi berhasil diimplementasikan menggunakan metode Pixel Value Differencing (PVD) dan algoritma kriptografi rijndael.

2. Performansi pada proses penyisipan dan ekstraksi menggunakan metode steganografi Pixel Value Differencing (PVD) cepat.

3. Kapasitas penyimpanan pesan menggunakan metode Pixel Value Differencing

(PVD) cukup besar.

4. Kualitas citra yang telah disisipi pesan menggunakan metode Pixel Value Differencing (PVD) tergolong baik.

5. Metode Pixel Value Differencing (PVD) tidak tahan terhadap menipulasi citra dan serangan steganalysis.

V.2 Saran

Aplikasi steganografi ini masih mempunyai banyak kekurangan, sehingga perlu dikembangkan lagi agar aplikasi ini dapat lebih sempurna. Untuk meningkatkan kualitas dan fungsionalitas dari aplikasi steganografi ini, maka penulis menyampaikan saran-saran sebagai berikut :

1. Media penampung pesannya tidak hanya menggunakan citra digital saja, tetapi juga dapat menggunakan file audio atau video.

2. Jumlah pesan yang disisipkan kedalam citra tidak hanya satu atau dua pesan saja, tetapi dapat disesuaikan jumlahnya oleh pengguna.

3. Dibutuhkan metode steganografi lain yang lebih tahan terhadap manipulasi citra.


(6)

Dokumen yang terkait

Pembangunan aplikasi stenagografi pada citra digital menggunakan metode BIT Plane Complexity Segmentation (BPCS) dan algoritma XTEA untuk keamanan data

10 42 131

Pembangunan Aplikasi Steganografi Pada Citra Digital Menggunakan Metode Random Pixel Positioning (RPP) dan Algoritma Advanced Encryption Standard (AES) 256 Bit Untuk Keamanan Data

8 44 107

Perbaikan dan Evaluasi Kinerja Algoritma Pixel- Value Differencing (PVD)

1 22 158

ANALISIS PERFORMA METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN MODULUS FUNCTION DENGAN METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN PVD (PIXEL VALUE DIFFERENCING) PADA KUALITAS CITRA DIGITAL - UDiNus Repository

0 1 1

ANALISIS PERFORMA METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN MODULUS FUNCTION DENGAN METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN PVD (PIXEL VALUE DIFFERENCING) PADA KUALITAS CITRA DIGITAL - UDiNus Repository

0 0 1

ANALISIS PERFORMA METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN MODULUS FUNCTION DENGAN METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN PVD (PIXEL VALUE DIFFERENCING) PADA KUALITAS CITRA DIGITAL - UDiNus Repository

0 0 1

ANALISIS PERFORMA METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN MODULUS FUNCTION DENGAN METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN PVD (PIXEL VALUE DIFFERENCING) PADA KUALITAS CITRA DIGITAL - UDiNus Repository

0 0 1

ANALISIS PERFORMA METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN MODULUS FUNCTION DENGAN METODE IHWT (INTEGER HAAR WAVELET TRANSFORM) DAN PVD (PIXEL VALUE DIFFERENCING) PADA KUALITAS CITRA DIGITAL - UDiNus Repository

0 2 8

KOMBINASI ALGORITMA PIXEL VALUE DIFFERENCING DENGAN ALGORITMA CAESAR CIPHER PADA PROSES STEGANOGRAFI

1 2 7

PENGEMBANGAN APLIKASI STEGANOGRAFI PIXEL VALUE DIFFERENCES (PVD)

0 0 6