Top Banner
Aplikasi Steganografi dengan Metode LSB dan Enkripsi Pesan dengan Pembangkitan Bilangan Acak Bahasa Indonesia 2015 Agung Sulistyanto Laboratorium ICT Terpadu Universitas BUDI LUHUR 7/24/2015 Aplikasi Steganografi dengan Metode LSB dan Enkripsi Pesan dengan Pembangkitan Bilangan Acak by Laboratorium ICT Terpadu is licensed under a Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International License.
53

Materi Pelatihan_Steganografi Metode LSB

Apr 14, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Materi Pelatihan_Steganografi Metode LSB

Aplikasi Steganografi dengan Metode LSB dan Enkripsi Pesan dengan Pembangkitan Bilangan Acak Bahasa Indonesia

2015

Agung Sulistyanto Laboratorium ICT Terpadu Universitas BUDI LUHUR

7/24/2015

Aplikasi Steganografi dengan Metode LSB dan Enkripsi Pesan dengan Pembangkitan Bilangan Acak by Laboratorium ICT Terpadu is licensed

under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Page 2: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 1

Pengenalan Dasar Citra

1.1 Pengertian Pengolahan Citra Digital

Secara umum pengolahan citra digital adalah “pemrosesan gambar berdimensi-dua melalui komputer digital” (Jain, 1998), menurut Efford (2000) pengolahan citra adalah istilah umum untuk berbagi teknik yang keberadaannya untuk memanipulasi

dan memodifikasi citra dengan berbagai cara. Foto adalah contoh dari citra yang dapat diolah dengan mudah. Foto dapat dimodifikasi dan diolah menggunakan software tertentu, misalnya pada saat foto hasil bidikan kamera digital terlihat

kurang cerah maka dapat dilakukan pencerahan pada gambar tersebut atau mungkin pada saat kita akan mengambil suatu bagian dari foto tersebut maka dapat

dilakukan cropping. Tentunya masih banyak lagi yang dapat dilakukan dalam proses pengolahan citra.

1.2 Representasi Citra Digital

Citra digital dibentuk oleh kumpulan titik yang disebut piksel, setiap titik terkecil dalam gambar (piksel) memiliki koordinat posisi. Sistem koordinat ditunjukan pada

contoh gambar berikut.

Sebuah piksel memiliki koordinat berupa (x,y) dalam hal ini, x menyatakan posisi kolom dan y menyatakan posisi baris. Sebagai contoh, citra berukuran 12 x 12 pada

gambar memiliki susunan data seperti terlihat pada gambar. Berdasarkan gambar tersebut maka :

1. f(2,1) bernilai 89. 2. f(4,7) bernilai 6.

Page 3: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 2

Megapixel (Megapiksel) adalah gabungan jutaan piksel yang terdapat dalam gambar, semakin tinggi jumlahnya maka semakin tinggi juga resolusi gambarnya. Jumlah

megapiksel biasanya digunakan untuk menunjukan kerapatan gambar.

1.3 Kuantitas Citra

Citra digital dibentuk melalui pendekatan kuantitas. Pada isyarat digital, nilai intensitas citra dibuat diskret atau terkuantisasi dalam sejumlah nilai bulat. Gambar menunjukan contoh citra biner dua nilai intensitas berupa 0 (hitam) dan 1 (putih).

Selanjutnya gambar tersebut ditumpangkan pada grid 8 x 8 seperti terlihat pada gambar.

Pada bagian gambar yang jatuh pada kotak, jika mayoritas warna putih maka seluruh isi kotak dibuat putih. Sebaliknya, jika mayoritas berwarna hitam, isi kotak

seluruhnya diberi warna hitam. Hasil pengubahan ke citra digital tampak pada gambar.

Page 4: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 3

Gambar memperlihatkan bilangan yang mewakili warna hitam (0) dan putih (1).

Untuk gambar yang mengandung unsur warna pada prinsipnya sama saja, namun

sebagai pengecualian untuk warna hitam diberikan 3 (tiga) unsur warna dasar, yaitu merah (R = Red), hijau (G = Green) dan biru (B = Blue) atau sering dikenal dengan istilah warna RGB. Seperti halnya pada citra biner (monokrom), dengan variasi

intensitas dari 0 – 255 pada citra berwarna terdapat 16.777.216 variasi warna apabila setiap komponen RGB mengandung 256 aras intensitas. Namun, kepekaan

mata manusia untuk membedakan macam warna sangat terbatas tentunya jauh di bawah dari angka 16.777.216 tersebut.

Berikut contoh penggunaan citra beraras keabuan dan citra berwarna (RGB) dalam

beberapa keperluan tertentu.

Komponen

Warna Bit per Piksel Jangkauan Penggunaan

1 1 0-1

Citra biner : dokumen faksimili

8 0-255 Umum : foto dan hasil pemindai

12 0-4095 Kualitas tinggi : foto dan hasil pemindai

14 0-16383 Kualitas professional : foto dan hasil pemindai

16 0-65535 Kualitas tertinggi : citra

Page 5: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 4

kedokteran dan

astronomi

Komponen

Warna Bit per Piksel Jangkauan Penggunaan

3 24 0-255 RGB umum

36 0-4095 RGB kualitas tinggi

42 0-16383 RGB kualitas professional

4 32 0-255 CMYK (cetakan digital)

1.4 Kualitas Citra Selain intensitas kecerahan, jumlah piksel yang digunakan mempengaruhi kualitas

citra. Istilah resolusi citra biasa dinyatakan dengan jumlah piksel pada arah lebar dan tinggi. Contoh pada gambar menunjukan perbedaan resolusi yang digunakan, tentunya semakin tinggi resolusinya akan menampilkan citra yang semakin mirip

dengan aslinya dan semakin rendah resolusinya menjadikan citra semakin kabur.

1.5 Jenis Citra

Terdapat 3 (tiga) jenis citra yang umum digunakan dalam pengolahan citra, diantaranya adalah :

a. Citra Biner (monokrom) Citra biner adalah citra dengan setiap pikselnya hanya dinyatakan dengan

sebuah nilai 0 (nol) dan 1 (satu). Nilai 0 (nol) menyatakan warna hitam dan 1 (satu) menyatakan warna putih.

b. Citra Berskala Keabuan (grayscale)

Citra ini menangani gradasi warna hitam dan putih, yang menghasilkan efek warna abu-abu. Warna dinyatakan dengan intensitas, intensitas berkisar

antara 0 – 255 atau 8 (delapan) bit. Nilai 0 menyatakan hitam dan nilai 255 menyatakan putih.

c. Citra Berwarna (RGB) Citra berwarna merupakan jenis citra yang menyajikan warna dalam

komponen R (Red), G (Green) dan B (Blue). Setiap komponen warna menggunakan 8 (delapan) bit nilainya berkisar antara 0 – 255. Dengan demikian, kemungkinan warna yang dapat disajikan mencapai 256 x 256 x

256 atau 16.777.216 warna.

Warna R G B

Merah 255 0 0

Hitam 0 0 0

Page 6: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 5

Kuning 0 255 255

Hijau 0 255 0

RGB disebut juga ruang warna yang dapat divisualisasikan sebagai sebuah

kubus seperti pada gambar, dengan tiga sumbunya yang mewakili komponen

warna merah (Red), hijau (Green), dan biru (Blue).

1.6 Format pada Citra

a. Bitmap (BMP) Bitmap adalah representasi dari citra grafis yang terdiri dari susunan titik yang tersimpan di memori komputer yang dikembangkan oleh Microsoft. Kerapatan

titik-titik dinamakan resolusi, untuk menampilkan citra bitmap pada monitor atau printer, komputer menerjemahkan bitmap menjadi pixel (pada layar) atau titik tinta (pada printer). Bitmat menggunakan kompresi tipe lossless.

b. Joint Photographic Experts Group (JPEG) JPG/JPEG merupakan skema kompresi file bitmap. Awalnya, file yang

menyimpan hasil foto digital memiliki ukuran yang besar setelah berhasil dikompresi (dimampatkan) sehingga ukurannya kecil. JPEG menggunakan kompresi tipe lossy.

c. Graphics Interchange Format (GIF) GIF merupakan format grafis yang paling sering digunakan untuk keperluan

desain website. GIF memiliki kombinasi warna lebih sedikit dibanding JPEG, namun mampu menyimpan grafis dengan latar belakang transparan ataupun

dalam bentuk animasi sederhana. GIF menggunkan kompresi tipe lossless.

Page 7: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 6

Steganografi

2.1 Steganografi

Steganografi (steganography) adalah ilmu dan seni menyembunyikan pesan rahasia

(hidding message) sehingga keberadaan pesan tidak terdeteksi oleh indra manusia. Kata steganografi berasal dari bahasi Yunani steganos yang berarti “tersembunyi” atau “terselubung” dan graphein yang berarti “menulis”.

2.2 Properti Steganografi Dalam Steganografi digital menggunakan media digital sebagai wadah

penampungnya, misalnya : teks, citra gambar, audio dan video. Dalam penerapannya steganografi terdiri dari beberapa properti penyusun, diantaranya :

1. Embedded message (hiddenext) : pesan yang disembunyikan.

2. Cover-object (covertext) : pesan yang digunakan untuk menyembunyikan embedded message.

3. Stego-object (stegotext) : pesan yang sudah berisi pesan rahasia (Embedded message + Stego-object).

4. Stego-key : kunci yang digunakan untuk menyisipkan pesan dan

mengekstraksi pesan dari stego-object.

Contoh properti steganografi :

1. Stegotext :

Lupakan Asal Rumor Itu, Jaga Agar Matamu Sehat Atau Turunkan Ubanmu.

2. Hiddentext :

LARI JAM SATU

3. Covertext :

upakan sal umor tu, aga gar atamu ehat tau urunkan banmu.

Encoding

(embeddin)

covertext

hiddentext

key

Decoding

(extraction)

stegotext

key

hiddentext

covertext

Page 8: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 7

Kriptografi

Kriptografi secara umum dapat diartikan sebagai ilmu atau seni untuk menjaga

kerahasiaan data. Kriptografi (cryptography) berasal dari bahasa yunani cryptos

yang artinya “rahasia” dan graphein yang berarti “menulis”. Pesan-pesan yang

belum di kodekan disebut plainteks dan pesan-pesan yang telah di kodekan disebut

chipherteks. Dalam kriptografi dikenal dengan 2 (dua) proses, enkripsi mengubah

pesan asli (plainteks) menjadi data sandi (chipherteks) dan dekripsi adalah proses

mengembalikan cipherteks menjadi plainteks.

3.1 Tujuan Kriptografi

1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi

pada pesan dari siapapun kecuali yang memiliki otoritas untuk membuka

informasi yang telah disandi.

2. Integritas data, adalah 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 pensubtitusian data lain

kedalam data yang sebenarnya.

3. Autentikasi, adalah berhubungan dengan identifikasi / pengenalan, baik

secara kebenaran pihak-pihak yang berkomunikasi maupun mengidentifikasi

kebenaran sumber pesan.

4. Non-repudiasi, atau nirpenyangkalan adalah usaha untuk mencegah

terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi

oleh yang mengirimkan/membuat.

Sebagai contoh ada seorang agen rahasia bernama Alif yang akan melaporkan hasil

kerjanya kepada pimpinannya bernama Tito. Isi pesan yang dikirimkan Alif kepada

Tito tidak boleh di ketahui oleh orang lain (Kerahasiaan). Tito harus dapat

memastikan bahwa pengirim pesan adalah Alif (Autentikasi). Pesan yang dikirimkan

Alif harus sama isinya dengan pesan yang diterima Tito, pihak lain tidak dapat

mengganti pesan Alif (Integritas Data). Alif juga tidak dapat menyagkal bahwa telah

mengirimkan pesan kepada Tito (Non-repudiasi).

3.2 Jenis Kunci Kriptografi

Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi dikelompokan

menjadi 2 (dua), diantaranya :

Page 9: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 8

a. Algoritma Simetris

Algortma ini disebut juga algoritma konvensional yang menggunakan kunci

yang sama pada proses enkripsi dan dekripsinya.

b. Algoritma Asimetris

Sebutan Asimetris (tidak simetris) berarti menjelaskan perbedaan kunci yang

digunakan dalam proses enkripsi dan dekripsi. Kunci publik (public key)

digunakan untuk enkripsi dan kunci private (private key) digunakan untuk

proses dekripsi.

3.3 Bilangan Acak

Bilangan acak adalah bilangan yang tidak dapat diprediksi, bilangan acak (random)

banyak digunakan dalam kriptografi. Bilangan acak yang dihasilkan dengan rumus

matematika adalah bilangan acak semu (pseudo), karena pembangkitan bilangannya

dapat diulangi kembali. Pembangkitan bilangan acak semacam ini disebut pseudo

random number generation (PRNG).

a. Linear Congruential Generator (LGC)

Pembangkitan bilangan acak kongruen-lanjar (linear congruential generator)

adalah merupakan salah satu PRNG tertua dan paling terkenal.

Xn = (aXn – 1 + b) mod m

Penjelasan :

Xn = bilangan acak ke-n dari deretnya

Page 10: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 9

a = factor pengali

Xn – 1 = bilangan acak sebelumnya

b = increment

m = modulus

3.4 Perbedaan Steganografi dan Kriptografi

Perbedaan yang mendasar antara steganografi dan kriptografi adalah pada hasil

keluarannya. Hasil dari kriptografi adalah data yang berbeda dari aslinya sehingga

data tersebut seolah-olah menjadi berantakan. Sedangkan hasil dari steganografi

memiliki bentuk persepsi yang sama dengan bentuk data awalnya. Pada teknik

kriptografi orang lain dapat menyadari bahwa file tersebut adalah sebuah pesan

yang terenkripsi sehingga dapat menimbulkan kecurigaan, berbeda dengan teknik

steganografi karena hasil keluaran memiliki bentuk persepsi sama sehingga tidak

akan menimbulkan kecurigaan.

Page 11: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 10

Pengenalan Algoritma LSB

4.1 Pengertian LSB (Least Significant Bit)

Bit atau binary digit adalah unit dasar penyimpanan data di dalam komputer, nilai bit suatu data adalah 0 (nol) atau 1 (satu). Semua data di dalam komputer di simpan

kedalam satuan bit, termasuk gambar, suara maupun video. Format pewarnaan di dalam citra gambar seperti monochrome, grayscale, RGB, CMYK juga menggunakan satuan bit dalam penyimpanannya. Sebagai contoh pewarnaan monochrome bitmap

(menggunakan 1 bit untuk setiap pikselnya), RGB – 24 bit (8 bit red, 8 bit green, 8 bit blue), grayscale menggunakan 8 bit untuk menentukan tingkat kehitaman suatu piksel.

LSB (Least Significant Bit) adalah bagian dari barisan data biner yang mempunyai nilai paling tidak berarti / paling kecil. Bit LSB letaknya di paling kanan pada barisan

bit. Sedangkan MSB (Most Significant Bit) adalah kebalikan dari LSB, yaitu bit yang mempunyai nilai sangat berarti / paling besar, letaknya di paling kiri pada barisan bit. Sebagai contoh barisan biner angka 27 :

256 128 64 32 16 8 4 2 1

1 1 0 1 1

Berdasarkan barisan angka biner di atas, angka 1 di paling kanan bernilai 1 yang berarti nilai yang paling kecil (LSB). Sedangkan angka 1 di paling kiri bernilai 16 yang berarti nilai yang paling besar dari barisan bit tersebut (MSB). Pada algoritma

LSB bit pesan akan disisipkan pada bit akhir setiap piksel gambar. Pada citra 24 bit, setiap pikselnya terdiri dari 3 byte yang merepresentasikan setiap byte untuk warna RGB. Sebagai contoh dalam gambar berukuran 600 x 500 piksel dapat disisipkan

pesan sebanyak 600 x 500 x 3 = 900000 bit pesan, atau dengan kata lain dapat disisipkan 900000 / 8 = 112500 byte pesan yang dapat disisipkan.

4.2 Contoh Algortima LSB (Least Significant Bit)

Sebagai contoh gambar di bawah ini menggunakan format grayscale, artinya setiap

piksel dari gambar ini direpresentasikan dengan nilai 8 bit.

Page 12: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 11

Di misalkan data berupa text “secret” akan disisipkan ke dalam gambar tersebut.

Jika direpresentasikan ke dalam binary kata “secret” menjadi :

Karakter ASCII Hexadecimal Binary

s 115 73 01110011

e 101 65 01100101

c 99 63 01100011

r 114 72 01110010

e 99 63 01100011

t 116 74 01110100

Sesuai dengan namanya, LSB artinya bit yang tidak signifikan / tidak mempunyai pengaruh yang besar, maka metode ini mengganti nilai bit ke-8 gambar Lena untuk menyisipkan data.

Media lena.jpg

00000000 00000000 00000001 00000001 00000001 00000001 00000001 00000001

00000000 00000000 00000001 00000001 00000001 00000001 00000001 00000001

00000000 00000000 00000001 00000001 00000001 00000001 00000001 00000001

00000001 00000001 00000010 00000010 00000010 00000011 00000011 00000011

00000001 00000001 00000010 00000010 00000010 00000011 00000011 00000011

00000001 00000001 00000010 00000010 00000010 00000011 00000011 00000011

Data yang akan disisipkan :

0 1 1 1 0 0 1 1

0 1 1 0 0 1 0 1

0 1 1 0 0 0 1 1

0 1 1 1 0 0 1 0

0 1 1 0 0 0 1 1

0 1 1 1 0 1 0 0

Page 13: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 12

Hasil stego :

00000000 00000001 00000001 00000001 00000000 00000000 00000001 00000001

00000000 00000001 00000001 00000000 00000000 00000001 00000000 00000001

00000000 00000001 00000001 00000000 00000000 00000000 00000001 00000001

00000000 00000001 00000011 00000011 00000010 00000010 00000011 00000010

00000000 00000001 00000011 00000010 00000010 00000010 00000011 00000011

00000000 00000001 00000011 00000011 00000010 00000011 00000010 00000010

Setelah dikontruksi kembali berdasarkan representasi binernya, gambar lena akan menjadi gambar yang telah disisipkan pesan rahasia namun tidak akan memiliki perbedaan jauh dengan gambar aslinya, karena yang diubah hanya bit paling akhir

dari representasi biner gambar aslinya sehingga perubahannya tidak disadari oleh mata manusia.

Page 14: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 13

Sistem Bilangan

Sistem Bilangan adalah simbol yang digunakan untuk mewakili besaran dari suatu item fisik. Sistem Bilangan menggunakan suatu bilangan dasar tertentu. Dalam ilmu

komputer terdapat 4 (empat) jenis Sistem Bilangan, diantaranya : Desimal (basis 10), Biner (basis 2), Oktal (basis 8) dan Hexadesimal (basis 16).

5.1 Bilangan Desimal (basis 10)

Desimal adalah sistem bilangan yang paling umum digunakan dalam kehidupan

sehari-hari. Sistem bilangan Desimal menggunakan basis 10 dan menggunakan 10 macam simbol bilangan, yaitu : 0, 1, 2, 3, 4, 5, 6, 7, 8 dan 9. Sistem bilangan Desimal dapat berupa integer desimal (decimal integer) dan pecahan desimal

(decimal fraction). Sebagai contoh desimal 8299 dapat diartikan :

Absolute value adalah nilai mutlak dari masing-masing digit bilangan. Sedangkan Position value adalah nilai penimbang atau bobot dari masing-masing digit bilangan tergantung pada basis dan urutan posisinya.

5.2 Bilangan Biner (basis 2)

Biner adalah bilangan yang terdiri dari 2 simbol 0 dan 1. Sistem bilangan biner merupakan dasar dari semua sistem bilangan berbasis digital. Bilangan biner dapat

dikonversi ke dalam bilangan desimal, bilangan oktal dan bilangan hexadesimal, sebagai contoh bilangan biner dikonversi kedalam bentuk desimal :

Page 15: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 14

Position value dalam bilangan biner merupakan perpangkatan dari nilai 2, seperti

pada table berikut :

5.3 Bilangan Oktal (basis 8)

Oktal adalah bilangan yang terdiri dari 8 simbol, yaitu 0, 1, 2, 3, 4, 5, 6, dan 7.

Contoh oktal 1022 di konversikan kedalam bilangan desimal menjadi seperti berikut :

Page 16: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 1 – Pengenalan Teori 15

Position value dalam bilangan oktal merupakan perpangkatan dari nilai 8, seperti

pada table berikut :

5.4 Bilangan Hexadesimal (basis 16)

Hexa berarti 6 dan desimal berarti 10, Hexadesimal adalah bilangan yang terdiri dari 16 simbol, yaitu : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15). Contoh hexadesimal F3D4 dikonversi kedalam bilangan desimal menjadi

seperti berikut :

Position value dalam bilangan oktal merupakan perpangkatan dari nilai 16, seperti pada table berikut :

Page 17: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 16

Pengenalan Java

6.1 Sejarah Java

Java adalah bahasa pemrograman karya Sun Microsystem Inc, mulai dikembangkan

pada tahun 1991 oleh James Gosling dan Patrick Naughton. Awalnya Java dibuat untuk perangkat konsumer seperti TV Kabel yang tidak memiliki banyak memori, sehingga Java memiliki karakteristik berukuran kecil. Java di tuntut harus netral

pada arsitektur manapun, proyek ini diberi nama kode “Green”. Mulanya bahasa Java diberinama “OAK” kemudian diganti “Java” karena nama “OAK” sudah pernah

digunakan sebelumnya. Java mulai popular pada tahun 1995 setelah Netscape memutuskan untuk membuat browser dilengkapi dengan Java, setelah itu diikuti oleh IBM, Symantec dan Microsoft.

6.2 Keunggulan Java a. Bahasa sederhana

Java dirancang agar mudah dipelajari dan digunakan secara efektif. Semudah C seampuh C++ sehingga cenderung lebih mudah.

b. Berorientasi Objek Pada Orientasi Objek, program sebagai sekelompok objek yang saling berinteraksi secara independen.

c. Tangguh

Java interpreter memeriksa semua akses sistem yang dilakukan, sehingga tidak akan menyebabkan crash terhadap sistem. Dengan mekanisme exception-handling kesalahan serius dapat ditangkap dan dikelola tanpa

beresiko membuat sistem menjadi down.

d. Bersifat Multithreading

Dapat mengerjakan beberapa proses dalam waktu yang hampir bersamaan.

e. Bersifat Multiplatform

Karena Java menggunakan intepreter Java Virtual Machine (JVM), menjadikan bytecode yang di hasilkan dapat berjalan di banyak platform.

f. Didukung Garbage Collector Garbage Collector berfungsi untuk mendealokasikan memori yang tidak diperlukan secara otomatis.

Page 18: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 17

Dasar Pemrograman Java Pada bab ini akan dibahas dasar pemrograman Java sebagai pendukung sebelum

masuk ke tahapan implementasi algoritma LSB pada pemrograman Java.

7.1 Pengertian Kelas, Objek, dan Instance

a. Kelas

Kelas (class) merupakan blueprint atau cetakan yang berisi kumpulan

informasi (aturan) tentang karakteristik (data) dan tingkah laku (metode)

yang akan dimiliki oleh objek.

b. Objek

Objek adalah kesatuan entitas (benda) yang memiliki sifat karakteristik dan

fungsi yang merupakan representasi dari sebuah kelas.

c. Instance

Instance adalah proses perwujudan kelas menjadi objek. Dalam

pemrograman Java untuk melakukan Instance menggunakan keyword new.

7.2 Struktur Kontrol Java

Eksekusi pada program umumnya dilakukan dari baris atas ke baris bawah, struktur kontrol akan mengatur eksekusi program dengan menggunakan pengambilan keputusan berupa perulangan dan percabangan yang memungkinkan program

dalam kondisi untuk mengeksekusi blok program tertentu.

Page 19: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 18

7.2.1 Struktur Kontrol Percabangan

Percabanagan adalah suatu pilihan yang dijalankan berdasarkan kondisi tertentu. Jika kondisi terpenuhi (true) maka terdapat pilihan yang dijalankan, sebaliknya jika

kondisi tidak terpenuhi (false) maka pilihan tersebut tidak dijalankan. Terdapat 3 (tiga) jenis percabangan diantaranya : IF-THEN, IF-THEN-ELSE, SWITCH-CASE.

a. IF-THEN Pernyataan IF akan menyatakan bagian program yang akan di eksekusi jika dan hanya jika kondisi bernilai benar.

b. IF-THEN-ELSE

Pernyataan IF-THEN-ELSE digunakan apabila akan mengeksekusi bagian

program dengan kondisi benar dan yang lain masuk ke dalam kondisi salah.

c. Nested IF

Pada dasarnya Nested IF sama dengan IF-THEN ataupun IF-THEN-ELSE, Nested IF terjadi ketika terdapat statemen IF di dalam statement IF atau sering disebut juga kondisi IF bersarang (Nested IF).

Page 20: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 19

d. SWITCH-CASE Switch akan membentuk cabang untuk beberapa kondisi dari nilai yang di

gunakan.

7.2.2 Struktur Kontrol Perulangan

Perulangan adalah suatu statement yang dapat di jalankan secara berulang-ulang sampai berhenti pada kondisi tertentu. Terdapat 3 (tiga) jenis perulangan,

diantaranya : FOR, WHILE, DO-WHILE.

Page 21: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 20

a. FOR

b. WHILE

c. DO-WHILE

7.3 Pernyataan Percabangan Pernyataan percabangan mengijinkan kita untuk mengatur aliran eksekusi program.

Pada Java terdapat 3 (tiga) bentuk pernyataan percabangan, diantaranya : break, countinue dan return.

7.3.1 Pernyataan Break Pernyataan break memiliki 2 (dua) bentuk tidak berlabel (unlabeled) dan berlabel

(labeled).

Page 22: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 21

7.3.1.1 Pernyataan break tidak berlabel (unlabeled)

Pernyataan break tidak berlabel digunakan untuk menghentikan jalannya perulangan SWITCH-CASE, FOR, WHILE dan DO-WHILE.

7.3.1.2 Pernyataan break berlabel (labeled)

Pernyataan break berlabel akan menghentikan perulangan dibagian paling luar dari

perulangan, dimana sebelumnya harus diberikan label. Berbeda dengan break tidak berlabel yang hanya digunakan untuk keluar dari sebuah perualangan, break berlabel digunakan untuk keluar dari banyak perulangan (Nested Loop).

Page 23: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 22

7.3.2 Pernyataan Continue

Pernyataan continue memiliki 2 (dua) bentuk tidak berlabel (unlabeled) dan berlabel (labeled). Pernyataan countinue digunakan untuk melanjutkan perulangan yang

sedang dijalankan oleh pernyataan FOR, WHILE, DO-WHILE.

7.3.2.1 Pernyataan Continue Tidak Berlabel

Pernyataan countinue tidak berlabel (unlabeled) akan melewati bagian pernyataan setelah pernyatan ini dituliskan (next statement).

7.3.2.2 Pernyataan Continue Berlabel

Bentuk pernyataan continue berlabel (labeled) akan keluar dari perulangan yang

sedang terjadi dan dilanjutkan ke pernyataan berikutnya yang sudah diberi label.

7.3.3 Pernyataan Return

Pernyataan return digunakan untuk keluar dari sebuah method. Terdapat 2 (dua) bentuk, diantaranya : return dengan mengembalikan sebuah nilai, dan tidak mengembalikan sebuah nilai. Dalam mengembalikan sebuah nilai, tipe data nilai

tersebut harus sama dengan tipe data pada method yang dibuat. Pembahasan mengenai return akan dilanjutkan pada pembahasan method.

Page 24: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 23

7.4 Method

Method digunakan untuk membagi program kompleks menjadi bagian yang lebih kecil sehingga dapat digunakan berulang-ulang. Method pada Java mirip dengan

fungsi / prosedur dalam bahasa pemrograman lainnya. Method dapat dibedakan menjadi 2 (dua), diantaranya : method yang mengembalikan nilai dan method yang

tidak mengembalikan nilai.

7.4.1 Method Void

Method void adalah method yang tidak mengembalikan nilai, method ini hanya menjalankan intruksi yang ada di dalamnya tanpa mengembalikan hasil dari intruksi yang telah dijalankan.

7.4.2 Method Non Void

Method Non Void adalah method yang tidak void (mengembalikan nilai), method ini akan menjalankan intruksi yang ada di dalamnya dan mengembalikan hasil dari

intruksi tersebut kepada pemanggilnya.

7.5 Method Constructor

Method konstruktor adalah method yang pertama kali dijalankan ketika suatu objek dari sebuah kelas diciptakan. Pada saat proses instance dari sebuah kelas, intruksi di

dalam konstruktor akan dijalankan untuk melakukan inisialisasi dari sebuah kelas. Terdapat beberapa hal penting mengenai konstruktor, diantaranya :

1. Nama konstruktor sama dengan nama kelas. 2. Kelas dapat mempunyai lebih dari 1 (satu) konstruktor.

Page 25: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 24

3. Konstruktor dapat mempunyai 0 (nol), 1 (satu) atau lebih parameter.

7.6 Parameter

Parameter pada dasarnya adalah nilai yang dikirimkan sebagai pendukung intruksi yang dilakukan pada method.

Terdapat 2 (dua) teknik pelewatan parameter (parameter passing), diantaranya : pelewatan dengan nilai (pass by value), dan pelewatan dengan acuan (pass by

reference).

Page 26: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 25

7.6.1 Pelewatan dengan Nilai (Pass By Value)

Pada teknik pass by value nilai yang dikirimkan akan disalin kepada parameter pemanggil sehingga tidak akan mempengaruhi nilai awal.

7.6.2 Pelewatan dengan Acuan (Pass By Reference)

Pada teknik pass by reference yang dikirmkan bukanlah nilai, malainkan alamat lokasi nilai tersebut. Perubahan yang terjadi pada nilai tersebut akan mempengaruhi nilai awalnya.

Page 27: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 26

7.7 Pendekatan Berorientasi Objek

Pendekatan berorientasi objek adalah sebuah konsep untuk membagi bagian program sebagai objek-objek yang saling berinteraksi satu sama lainnya,

sebagaimana objek yang memiliki sifat dan perilaku. Untuk dapat berorientasi objek terdapat 3 konsep penting yang harus digunakan, diantaranya : Inhearitance, Encapsulation, Polymorphism.

7.7.1 Pewarisan (Inhearitance) Pewarisan adalah proses penciptaan kelas baru dengan menurunkan sifat umum

kelas yang telah ada (superclass), sehingga kelas turunannya (subclass) hanya perlu menambahkan sifat khusus yang dimilikinya. Pewarisan dapat dilakukan dengan keyword extends.

Page 28: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 27

7.7.2 Pengapsulan (Encapsulation) Pengapsulan adalah proses membungkus program sehingga dapat menjaga bagian

internal program dari pengaksesan eksternal yang tidak diinginkan. Penyembunyian informasi dilakukan dengan menerapkan kendali private atau protected pada elemen data.

7.7.3 Polymorphism

Polymorphism berarti banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek-objek tersebut memiliki antarmuka identik namun memiliki

perilaku yang berbeda.

Page 29: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 28

7.8 Java Modifier

Modifier adalah sifat yang dimiliki oleh setiap attribute, method maupun kelas dalam

bahasa pemrograman Java.

7.8.1 Access Modifier

Akses modifier digunakan untuk menentukan spesifikasi tingkat akses, akses

modifier berlaku untuk kelas, interface, metode, dan variable.

No. Modifier Kelas dan Interface Metode dan Variable

1. default Tampak di paketnya Diwarisi oleh subkelasnya di paket

yang sama dengan kelasnya. Dapat di akses oleh metode-metode di kelas-kelas yang

sepaket.

2. public Tampak di manapun Diwarisi oleh semua subkelasnya. Dapat diakses di manapun.

3. protected Tidak dapat diterapkan Diwarisi oleh semua subkelasnya. Dapat diakses oleh metode-metode di kelas-kelas yang

sepaket.

4. private Tidak dapat diterapkan Tidak diwarisi oleh subkelasnya. Tidak dapat diakses oleh kelas lain.

Page 30: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 29

7.9 Bitwise Operation

Bitwise operation adalah operasi matematika yang digunakan untuk proses pada

level bit dari sebuah bilangan bulat (integer). Berikut adalah tabel mengenai bitwise

operation pada Java :

Bitwise Operator

Deskripsi Penjelasan Contoh

& AND Jika kedua nilai bernilai 1, maka

hasilnya 1, selebihnya 0.

9 & 5

1001 & 0101 =

0001

| OR Jika salah satu dari nilai atau kedua

nilai bernilai 1, maka hasilnya 1,

selebihnya 0.

9 & 5

1001 & 0101 =

1101

^ XOR Jika salah satu dari nilai bernilai 1,

maka hasilnya 1, selebihnya 0.

9 ^ 5

1001 & 0101 =

1100

~ Complement Komplemen adalah nilai kebalikan, komplemen 0 adalah 1, komplemen

1 adalah 0. ~00110010 = 11001101

<< Left Shift

X << Y

Pergeseran X ke kiri oleh Y bit, urutan bit besar (kiri) hilang,

sementara 0 mengisi bit yang kecil (kanan).

11101101 << 2 = 10110100

>> Right Shift Signed

X >> Y

Pergeseran X ke kiri oleh Y bit, urutan bit kecil hilang (kanan), sementara 0 mengisi bit yang

besar(kiri).

11101101 >> 2 = 00111011

>>> Right Shift Unsigned

X >>> Y

Pergeseran X ke kanan Y, urutan bit kecil hilang (kanan), sementara 0

mengisi bit besar (kiri). Operator ini hanya bekerja pada nilai 32 dan 64

bit.

11111111 11111111 11111111 11111111 >>> 2 = 00111111 11111111

11111111 11111111

Page 31: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 30

7.9.1 Contoh Penggunaan Bitwise Operation

Pada pemrograman Java, sudah terdapat pustaka kelas untuk konversi ke dalam

bilangan basis(2), basis(4), basis(16) melalui bilangan basis(10) sehingga kita dapat

menggunakan fungsi-fungsi tersebut seperti contoh di atas.

Page 32: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 31

Digital Image Processing pada Java

8.1 Penjelasan Digital Image Processing

Digital Image Processing (DIP) berkaitan dengan memanipulasi gambar digital menggunakan komputer digital. Pada Java sudah disediakan pustaka kelas java.awt.Image, kelas Image merupakan superclass yang mewakili pemrosesan

gambar grafis. BufferedImage merupakan kelas turunan dari kelas Image, digunakan untuk menangani dan memanipulasi data gambar. ImageIO digunakan untuk membaca dan menulis data pada citra.

Page 33: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 2 – Dasar Pemrograman Java 32

Contoh program untuk membuat file gambar menjadi grayscale.

Page 34: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 33

Membuat Aplikasi Steganografi

9.1 Implementasi dan Alur Proses Aplikasi ini akan mempunyai 2 (dua) fungsi utama yaitu, fungsi untuk melakukan penyisipan (embed) dang fungsi untuk melakukan ekstraksi (extract). Berikut gambar yang menunjukan proses aplikasi steganografi.

Pada fungsi penyisipan pesan memiliki 3 (tiga) masukan yaitu gambar, pesan dan password. Berikut penjelasan mengenai alur proses embed :

1. Membaca file gambar dan mengubah file menjadi data byte. 2. Membaca pesan dan mengubah menjadi data byte. 3. Membaca password dan melakukan pembangkitan bilangan acak (pseudo-

random generation) sehingga menghasilkan sebuah keystream. 4. Data byte pesan akan di enkripsi dengan men-XOR tiap byte pesan dengan

byte-byte pada keystream. 5. Byte pesan yang telah terenkripsi di sisipkan kedalam byte-byte pada gambar. 6. Susunan byte-byte gambar disusun kembali menjadi gambar stego.

Page 35: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 34

Pada fungsi ekstraksi pesan memiliki 2 (dua) masukan, diantaranya gambar stego

dan password. Berikut penjelasan mengenai alur proses ekstraksi : 1. Membaca file gambar stego dan mengubah file menjadi data byte 2. Memisahkan antara byte pesan dan byte gambar

3. Membaca password dan melakukan pembangkitan bilangan acak (pseudo-random generation) sehingga menghasilkan sebuah keystream.

4. Data byte pesan akan di dekripsi dengan men-XOR tiap byte pesan dengan byte-byte pada keystream.

5. Byte pesan hasil dekripsi akan diubah menjadi bentuk file.

Page 36: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 35

Proses Penyisipan Pesan (Embed)

10.1 Rancangan Layar Aplikasi Steganografi (Embed) Sebelum membuat desain Aplikasi Steganografi, buatlah project baru pada Netbeans pilih New -> JFrame Form untuk membuat Form Menu_Utama. Setelah itu tambahkan objek pada Frame seperti pada gambar berikut.

Sesuaikan objek dan nama variable yang digunakan seperti pada gambar berikut:

Page 37: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 36

10.2 Menampilkan Gambar Pada saat button btnCoverImage di klik, maka akan menampilkan popup form untuk memilih gambar yang akan di jadikan Cover Image, gambar tersebut akan

ditampilkan pada lblCoverImage. Tambahkan fungsi pada btnCoverImage untuk menampilkan gambar tersebut.

10.3 Memilih dan Mendapatkan byte File Pesan Pada saat button btnAddFile di klik, maka akan menampilkan popup form untuk memilih file yang akan disisipkan pada Cover Image. Deklarasikan variable pesan dengan tipe data array byte untuk menampung data file.

Setelah itu tambahkan fungsi pada btnAddFile untuk memilih file yang akan di

sisipkan dan mendapatkan data byte file tersebut.

Page 38: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 37

Page 39: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 38

10.4 Mengisi Password

Pada saat btnPassword di klik, maka akan menampilkan form untuk dapat mengisi

password yang akan digunakan. Buatlah form baru dengan pilih New -> JDialog Form untuk membuat form PasswordDialog. Setelah itu tambahkan objek pada Frame seperti pada gambar berikut.

Sesuaikan objek dan nama variable yang digunakan seperti pada gambar berikut:

Deklarasikan variable e_pass dengan tipe data array char untuk menampung data

password.

Akan terjadi komunikasi antara form Menu_Utama dan form PasswordDialog dimana inputan yang diisi pada form PasswordDialog akan di terima oleh form Menu_Utama. Tambahkan fungsi pada Form PasswordDialog sebagai berikut.

Page 40: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 39

Tambahkan fungsi-fungsi berikut pada konstruktor Menu_Utama.

Deklarasi dan inisialisasi objek PasswordDialog pada Menu_Utama.

Tambahkan fungsi pada btnPassword untuk menampilkan form PasswordDialog.

Sampai tahap ini peserta sudah dapat menampilkan gambar yang akan dijadikan Cover Image, memilih file yang akan disisipkan pada Cover Image dan menginput

password menggunakan komunikasi antar form.

Page 41: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 40

10.5 Enkripsi Pesan Sebelum file pesan disisipkan kedalam gambar, byte file pesan akan dienkripsi

terlebih dahulu dengan men-XOR kan dengan password yang telah ditentukan. Tambahkan fungsi pada saat btnEmbed.

Deklarasikan variabel yang digunakan pada class Controller.

Tambahkan fungsi enkripsi pada class Controller.

Page 42: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 41

Fungsi keygen dan keystream menghasilkan bilangan random.

Fungsi getBytesFromFile digunakan untuk mengambil data byte dari suatu file.

Page 43: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 42

10.6 Menyisipkan Pesan Setelah pesan berhasil di enkripsi tambahkan fungsi untuk menyisipkan pesan

kedalam gambar.

Tambahkan fungsi pada class Controller.

Fungsi user_spac digunakan untuk membuat salinan gambar cover.

Page 44: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 43

Fungsi embedding digunakan untuk menyisipkan pesan kedalam gambar.

Page 45: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 3 – Proses Embed 44

Page 46: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 4 – Proses Ekstrak 45

Ekstraksi Pesan

11.1 Implementasi dan Alur Proses Pada fungsi ekstraksi pesan memiliki 2 (dua) masukan, diantaranya gambar stego dan password. Berikut penjelasan mengenai alur proses ekstraksi :

6. Membaca file gambar stego dan mengubah file menjadi data byte

7. Memisahkan antara byte pesan dan byte gambar 8. Membaca password dan melakukan pembangkitan bilangan acak (pseudo-

random generation) sehingga menghasilkan sebuah keystream.

9. Data byte pesan akan di dekripsi dengan men-XOR tiap byte pesan dengan byte-byte pada keystream.

10. Byte pesan hasil dekripsi akan diubah menjadi bentuk file.

Page 47: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 4 – Proses Ekstrak 46

Proses Ekstraksi Pesan

12.1 Rancangan Layar Aplikasi Steganografi (Ekstrak) Lanjutkan desain Form Menu_Utama pada Tab Extract seperti pada gambar berikut.

Sesuaikan objek dan nama variable yang digunakan seperti pada gambar berikut:

Page 48: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 4 – Proses Ekstrak 47

12.2 Memilih Gambar Stego Pada saat button btnAddStego di klik, maka akan menampilkan popup form untuk memilih gambar Stego yang sudah berisi pesan rahasia, gambar tersebut akan

ditampilkan pada lblStegoImage2. Tambahkan fungsi pada btnAddStego untuk menampilkan gambar tersebut.

12.3 Mendapatkan Byte Pesan Rahasia Saat btnExtrak di klik, yang pertama akan dilakukan adalah mendapatkan byte pesan yang telah disisipkan pada Gambar Stego. Tambahkan fungsi extract pada Controller.

Page 49: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 4 – Proses Ekstrak 48

Setelah itu tambahkan fungsi pada saat btnExtrak di klik, seperti berikut:

Page 50: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 4 – Proses Ekstrak 49

12.4 Dekripsi Byte Pesan Setelah mendapatkan byte pesan, byte pesan tersebut akan di dekripsi dengan membangkitkan bilangan acak berdasarkan password dan men-XORkannya dengan

data byte pesan. Tambahkan fungsi decryp pada Controller.

Tambahkan variabel berikut pada Menu_Utama.

Setelah itu tambahkan fungsi pada saat btnExtrak di klik, seperti berikut:

Page 51: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

Bab 4 – Proses Ekstrak 50

12.5 Membentuk File Pesan Setelah berhasil di dekripsi byte pesan akan dibentuk kembali menjadi file utuh, tambahkan fungsi pada btnExtrak.

Page 52: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

51

Daftar Pustaka

Imam, Khairul 2013, Penyembunyian Pesan Rahasia Pada Citra Digital Dengan Teknik

Steganografi Menggunakan Metode Least Significant Bit (LSB), Jakarta, Universitas

BUDI LUHUR. Kadir, Abdul, & Susanto, Adhi 2013, Teori Dan Aplikasi Pengolahan Citra, Yogyakarta, Andi

Publisher.

Page 53: Materi Pelatihan_Steganografi Metode LSB

ikatlah ilmu dengan menuliskannya

52

Tentang Penulis

Agung Sulistyanto adalah mahasiswa Fakultas Teknologi Informasi Universitas BUDI LUHUR. Selain kuliah Saya juga aktif pada

Laboratorium ICT Terpadu Universitas BUDI LUHUR. Minat saya pada pemrograman khususnya Java Enterprise. Untuk tulisan yang lain dapat di akses melalui slideshare.net/agungsulistyan.

Saya dapat dihubungi melaui email [email protected] atau Linkedin agung.sulistyanto.