BAB 2 LANDASAN TEORI 2.1 Steganografi Kata steganografi (steganography) berasal dari bahasa Yunani yaitu steganos yang artinya tersembunyi atau terselubung dan graphein, yang artinya menulis, sehingga kurang lebih artinya adalah “menulis tulisan yang tersembunyi atau terselubung” (Sellars, 1996). Steganografi (steganography) adalah ilmu dan seni menyembunyikan pesan rahasia (hiding message) sedemikian sehingga keberadaan (eksistensi) pesan tidak terdeteksi oleh indera manusia (Munir, 2004) Steganografi adalah tindakan komunikasi rahasia, yang berarti bahwa hanya pengirim, Alice, dan penerima, Bob, menyadari komunikasi rahasia. Untuk mencapai hal ini, pesan rahasia yang tersembunyi dalam media komunikasi dikenal sebagai covertexts atau coverwork. Untuk seorang Eve, jelas bahwa Alice dan Bob berkomunikasi, tetapi covertext gabungan dan tersembunyi pesan, disebut sebagai stegotext atau stegowork, tampaknya tidak berbahaya (misalnya, Eve tidak menyadari bahwa konten menyembunyikan pesan). (Cox, Miller, Bloom, Fridrich, & Kalker, 2008)
6
7 Properti Steganografi: •
Embedded message (hidden-text): Pesan yang disembunyikan.
•
Cover-object(cover-text): Media yang digunakan untuk menyembunyikan pesan.
•
Stego-object (stego-text): Media yang sudah berisi pesan.
•
Stego-key: Kunci yang digunakan untuk menyisipan pesan dan mengekstraksi pesan dari stegotext.
Cover Message
Proses Embedding Pengirim(A)
Stego-object
Proses Extracting Penerima(B)
Key
Cover* Message
Key
Gambar 2.1 Sistem Stegonografi 2.2 Sejarah Steganografi Pengetahuan steganografi diyakini, pertama kali dipakai pada jaman keemasan Kerajaan Yunani (Greece). Pada sejarah Yunani kuno, masyarakatnya biasa menggunakan seseorang pembawa pesan sebagai perantara pengiriman pesan. pengirim pesan tersebut akan dicukur rambutnya, untuk kemudian ditulis pesan pada kepalanya yang sudah botak. Setelah itu dia harus menunggu sampai rambutnya tumbuh sedemikian agar tulisan tidak kelihatan. Pihak penerima pesan akan mencukur kepala pembawa pesan tersebut untuk melihat pesan yang tersembunyi. Kemudian pada jaman tersebut juga tercatat tentang pemakaian sejenis lilin(wax) untuk menyembunyikan pesan rahasia tanpa kelihatan. Pesan ditulis pada suatu
8 lembaran, dan lembaran tersebut direkatkan pada kayu yang kemudian ditutup lilin. Pihak penerima kemudian menghilangkan lilin dari lembaran tersebut untuk melihat pesan yang dikirimkan oleh pihak pengirim. Teknik penyembunyian ini dimaksudkan untuk menyamarkan bentuk lembaran berisi pesan tersebut sekaligus juga menutupi tulisan agar tidak kelihatan. Kemudian pengembangan teknologi microdot oleh jerman pada Perang Dunia I. Pesan tidaklah disembunyikan dan juga tidak dienkripsi. Tampilannya yang sedemikian sangat kecil sehingga tidak menarik perhatian orang lain. Karena tampilannya yang sangat kecil. Bentuk lainnya adalah berupa tulisan pada kertas dengan memakai tinta yang tidak kelihatan (invisible inks), sehingga tampak seperti lembaran kertas kosong biasa. Cara ini banyak dipakai pada Perang Dunia II. Bahan dasar yang dipakai untuk tinta adalah susu, cuka, sari buah, dan urine. Semunya ini akan berwarna gelap bila dipanaskan. 2.2.1 Kegunaan steganografi Steganography (covered writing, covert channels)
Protection against detection
Protection against removal (document marking)
(data hiding)
Watermarking (all objects are marked in the same way)
Fingerprinting (identify all object, every object is marked specific)
Gambar 2.2 Tipe-tipe steganografi.
9 Kegunaan steganografi menurut (Kumar & Pooja, 2010): •
Steganografi
dapat
merupakan
sebuah
solusi
yang
memungkinkan
mengirimkan berita dan informasi tanpa melewati proses penyensoran dan tanpa kehawatiran akan diintersepsi atau dicegat
pihak lain, ataupun
penelusuran balik kepada pengirim . •
memungkinkan penggunaannya dengan cara sederhana untuk menyimpan informasi pada tempat tersembunyi. Seperti penyimpanan beberapa sumber informasi tentang informasi bank yang bersifat pribadi (private bank information), data rahasia militer secara tersembunyi .
•
Steganografi dapat juga dipakai dengan menggunakan cara pengimbuhairan (watermarking). Meskipun konsep pengimbuhairan bukanlah berarti sama dengan steganografi. Ada beberapa cara pemakaian teknik steganografi untuk menyimpan watermarks dalam sebuah data. Perbedaan yang utama adalah terletak
pada
maksud
pemakaiannya.
Steganografi
bertujuan
menyembunyikan informasi, sedangkan watermarking cenderung menambah informasi tambahan kepada tampilan induk. Dengan banyaknya orang yang tidak suka menerima akan perubahan pada citra, audio atau video karena penambahan watermark, maka pemakaian steganografi semakin disukai. •
Penggunaan pada E-komersial (E-commersce). Pada kegiatan transaksi ekomersial dewasa ini, seluruh para pengguna dilindungi dengan memakai username dan password tertentu, yang tanpa memerlukan metode verifikasi real, pemilik card holder adalah mutlak sebagai pengguna. pengunaan
Dengan
scanning sidik jari biometrik, yang mengkombinasikan data
Identitas Pribadi seseorang (IDs) yang telah disembunyikan kedalam citra sidik-jari melalui proses steganografi, sehingga hanya dengan kesempatan
10 yang sangat rahasia
dimungkinkan untuk
dapat membuka informasi
transaksi komersial. •
Untuk tujuan komunikasi dua sisi.
Metode stegografi dapat digunakan
mengatasi adanya perubahan atau penampilan tersembunyi. Pada bidang pemerintahan, memerlukan dua jenis komunikasi tersembunyi : seluruhnya menyangkut keamanan nasional dan yang tidak seluruhnya. Dengan teknik steganografi dapat mengatasi kedua hal tersebut. Dalam dunia bisnis juga dapat berdiri dalam dua posisi tersebut, yakni informasi yang menyangkut rahasia perusahaan dan yang bertujuan untuk memberi informasi akan produk-produk baru yang mereka hasilkan. •
Untuk
pengiriman data yang bersifat
pengintip tersembunyi.
yang mengetahui bahwa
sensitif dan menghindari para informasi tersebut
Untuk mengatasi hal tersebut,
berisi data
teknik steganografi dapat
dilakukan pada pengalihan metode transformasinya yakni dari E-mail ke bentuk citra di jaringan internetnya.
11
Gambar 2.3 Penggunaan stegnografi di internet
2.2.2 Penyembunyian data yang reversibel (reversibel data hiding ) Menurut (Hong, Chen, Lin, & Chiang, 2010) teknik penyembunyian data adalah suatu teknik untuk menyisipkan data rahasia ke dalam suatu media digital, sehingga keberadaan data yang disisipkan tersebut tidak menimbulkan perhatian atau kecurigaan orang lain. Penyembunyian data dapat juga diaplikasikan untuk perlindungan hak cipta, untuk
autentifikasi isi digital, dan juga dalam bidang
komunikasi yang bersifat rahasia. Secara umum, media digital sebagai tempat untuk penyisipan data disebut carrier atau media pembawa (carrier media) atau disebut juga media pembungkus (cover media). Berapa media dapat dipakai untuk penyembunyian data antara lain; file teks, audio, video dan citra.
Dewasa ini, media yang paling umum dipakai untuk
penyembunyian data adalah citra digital karena sudah dipergunakan secara luas di dunia ini, dan juga cocok untuk menyembunyikan data, hanya dengan menggantikan
12 beberapa bit data kedalamnya. Untuk menyembunyikan data kedalam citra pembungkus, harga-harga pikselnya dimodifikasi terlebih dahulu. Citra yang sudah dimodifikasi yang sudah berisi sisipan data ini disebut citra stego. Dengan adanya perubahan harga pikselnya akan menimbulkan distorsi. Biasanya distorsi yang berkaitan dengan penyembunyian data tidaklah bersifat bolak balik (reversible). Hal ini berarti citra orisinil tidak dapat dikembalikan kedalam status bentuk asli semula meskipun data yang disisipkan sudah diekstrak keluar, sebaliknya dengan teknik penyembunyian data yang bersifat reversibel dirancang agar memiliki kapabilitas untuk merestorasi citra original . Kadang kala adalah suatu hal penting untuk memiliki citra original seperti halnya citra-citra medis. Kesalahan pembacaan gambar x-ray dapat menimbulkan kesalahan diagnosis penyakit pasien. Teknik yang dipergunakan untuk penyimpanan data yang bersifat reversibel, secara umum dikategorikan dalam 2 tipe: 1. Teknik ekspansi berbeda (the diffrence-ekspantion technique), yang dikemukakan oleh (Tian, 2003) 2. Teknik pergeseran Histogram (the histogram-shifting technique), yang diusulkan oleh (Ni, Shi, Ansari, & Su, 2006) Pada penelian Tian (2003), pasangan-pasangan
piksel yang berbeda
dikembangkan dan bit-bit pesan ini disisipkan kedalam pola Least signifikant Bits (LSBs) yang juga telah dikembangkan. sebagai tempat penyisipan data-data bitnya. Satu bit data dapat disembunyikan kedalam 2 piksel ; sehingga rate-bit maksimum adalah 0.5 bit per piksel(bpp). Namun demikian, akan menimbulkan distorsi yang besar pula, apalagi bila perbedaan pikselnya mencapai dua kali lipat. Oleh sebab itu, teknik tidak cocok untuk diaplikasikan bila penekanan utama ditujukan kepada kualitas citra yang tinggi.
13 Pada penelian Ni (Ni et.al., 2006), bit data disisipkan dengan cara menggeser rangkaian histogram (histogram bins). Dalam proses penyisipan data ini, harga pikselnya
bisa
negatip atau positip. Sehingga kualitas citra yang tinggi dapat
diperoleh. Namun demikian, pembebanan (payload) sangatlah terbatas
karena
pendistribusian harga pikselnya yang terbatas. Pada umumnya, bila histogram citra memiliki puncak (peak) yang tinggi, maka citra tersebut akan mampu memberi pembebanan (payload) yang tinggi pula.
2.3 Citra digital Citra digital adalah fungsi dua dimensi,
, di mana
dan
koordinat spasial, dan f adalah intensitas atau gray level pada setiap koordinat
jika
, dan nilai-nilai intensitas dari
adalah
.
semua terbatas, jumlah diskrit.menurut
(Conzalez & Woods, 2008). Citra digital dapat dirumuskan sebagai berikut:
Dimana N tinggi citra, M lebar citra, L gray level. Dari segi nilai-nilai intensitas (I) untuk citra keabuan menggunakan satu kanal yang mempunyai skala 0 sampai L dimana 0 menyatakan hitam dan L melambangkan putih. Dirumuskan sebagai berikut
14 Sedangkan untuk citra warna menggunakan tiga kanal yang mewakilkan tiga komponen warna RGB (Red-Green-Blue). Dan masing-masing kanal memiliki mempunyai skala 0 sampai L. Dirumuskan sebagai berikut:
Citra digital yang berukuran
lazimnya dinyatakan dengan matriks berukuran
N baris dan M kolom, dan masing-masing elemen pada citra digital disebut piksel (picture element). Dirumuskan sebagai berikut:
Gambar 2.4 Ilustrasi pembuatan dari object menjadi citra digital.
15 2.3.1 Format-format pada citra digital 2.3.1.1 Bitmap Format (BMP) •
Format gambar yang paling umum dan merupakan format standar Windows.
•
Ukuran filenya sangat besar karena bisa mencapai ukuran Megabytes.
•
File ini merupakan format yang belum terkompresi dan menggunakan sistem warna RGB (Red, Green, Blue) dimana masing-masing warna pikselnya terdiri dari 3 komponen, R, G, dan B yang dicampur menjadi satu.
•
File BMP dapat dibuka dengan berbagai macam software pembuka gambar seperti ACDSee, Paint, IrvanView dan lain-lain.
•
File BMP tidak bisa (sangat jarang) digunakan di web (internet) karena ukurannya yang besar.
•
Gambar bitmap atau yang sering juga disebut raster adalah gambar yang terdiri dari sekumpulan titik-titik (piksel) yang berdiri sendiri dan mempunyai warna sendiri pula yang membentuk sebuah gambar.
•
Gambar bitmap sangat bergantung pada resolusi. Jika gambar diperbesar maka gambar akan tampak kurang halus sehingga mengurangi detailnya. Selain itu gambar bitmap akan mempunyai ukuran file yang lebih besar. Semakin besar resolusi gambar akan semakin besar pula ukuran filenya.
16 2.3.1.2 Joint Photographic Experts Group (.JPEG) merupakan skema kompresi file bitmap. Awalnya, file yang menyimpan hasil foto digital memiliki ukuran yang besar sehingga tidak praktis. Dengan format baru ini, hasil foto yang semula berukuran besar berhasil dikompresi (dimampatkan) sehingga ukurannya kecil. Sejarah JPEG Dikembangkan awal tahun 1980 oleh Joint Photographic Experts Group (JPEG).JPEG merupakan format paling sering digunakan di internet. Implementasi format JPEG terbaru dimulai sejak tahun 1996 dan semakin berkembang dengan inovasi format baru yang menyertai perkembangan teknologi yang memanfaatkan format JPEG lebih luas. Walaupun format JPEG merupakan metode kompresi gambar yang gratis, sebuah perusahaan bernama Forgent pada tahun 2002 mempatenkan format ini dan akan menarik biaya lisensi. Segera Group JPEG mengumumkan sebuah format JPEG 2000 sebagai sebuah format pengganti. Namun dua hal di atas terlambat, karena JPEG sudah digunakan secara luas dan hak paten belum ditetapkan oleh pengadilan. Standar kompresi file gambar yang dibuat oleh kelompok Joint Photographic Experts Group ini menghasilkan kompresi yang sangat besar tetapi dengan akibat berupa adanya distorsi pada gambar yang hampir selalu tidak terlihat. JPEG adalah sebuah format gambar, sangat berguna untuk membuat gambar jenis fotografi berkualitas tinggi dalam ukuran file yang sangat kecil. Format file grafis ini telah diterima oleh Telecommunication Standardization Sector atau ITU-T dan Organisasi Internasional untuk Standardisasi atau ISO. JPEG kebanyakan digunakan untuk melakukan kompresi gambar diam menggunakan analisis Discrete Cosine Transform (DCT).
17 Meskipun kompresi gambar JPEG sangatlah efisien dan selalu menyimpan gambar dalam kategori warna true color (24 bit), format ini bersifat lossy, yang berarti bahwa kualitas gambar dikorbankan bila tingkat kompresi yang dipilih semakin tinggi.
2.3.1.3 Graphics Interchange Format (GIF) Graphics Interchange Format (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 (background) transparan ataupun dalam bentuk animasi sederhana.
2.3.1.4 Portable Network Graphics (.PNG) PNG (Portable Network Graphics) adalah salah satu format penyimpanan citra yang menggunakan metode pemadatan yang tidak menghilangkan bagian dari citra tersebut (lossless compression). Format PNG ini diperkenalkan untuk menggantikan format penyimpanan citra GIF. Secara umum PNG dipakai untuk Citra Web (World Wide Web). Untuk Web, format PNG mempunyai 3 keuntungan dibandingkan format GIF: •
Channel Alpha (transparansi)
•
Gamma (pengaturan terang-gelapnya citra atau brightness)
•
Penayangan citra secara progresif (progressive display)
18 2.4 Histogram Shifting 2.4.1 Metode Histrogram Shifting Teknik Histogram Shifting yang dikemukakan (Ni, Shi, Ansari, & Su, 2006) adalah menyisipkan data dengan menggeser rangkaian histogram.
Secara garis
besarnya adalah sebagai berikut : Langkah pertama
:
Merekonstruksi
histogram
citra
dari
citra
pembungkus cover image untuk mendapatkan pasangan titik puncak (peak point) dan titik nol (zero point). Langkah kedua
:
Data disisipkan histogram.
dengan meng-shifting rangkaian
Karena
kesederhanaan
teknik
ini,
sehingga menjadi satu teknik yang paling populer dalam
bidang
penyembunyian
data
reversibel
(reversible data hiding).
2.4.1.1 Algoritma Embedding Input : Original-image (8-bit grayscale) dengan
, dan pesan rahasia
.
Output : Stego-image , titik maksimum
Step 1 : Membuat Histrogram
Step 2 : Didalam Histrogram
mencari titik minimum
: mencari titik maksimum
dari citra awal .
, dan
19 Step 3 : Jika titik minimum
, dan nilai
, maka simpan koordinat
dari piksel
sebagai informasi pembukuan di overhead kemudian set
.
Step 4: Tanpa kehilangan generalitas, kita asumsikan
dari Histrogram
dengan
, pidahkan semua bagian
, ke kanan 1 unit.
Step 5 : Memindai citra, setelah memenuhi piksel grayscale yang nilai adalah ,
memeriksa bit yang akan disisipkan. Jika bit yang akan disisipkan adalah 1, maka nilai piksel grayscale diubah ke
piksel tetap .
(a)
. jika bit adalah 0,maka nilai
20
(b)
(c) Gambar 2.5
Alur dari metode Histrogram Shifting dengan satu pasang. (a) histrogram awal (b) Menggeser piksel (x,y) (c) penyisipan bit
Pada gambar diatas menunjukan contoh sedehana tentang bagaimana algoritma Embedding dalam blok citra
pada titik maksimum
. Dalam contoh ini, nilai Histrogram
adalah 30 dan titik minimum
adalah
dan bit
rahasia yang akan disisipkan adalah ‘10111110100101111110010111’. Untuk menyelesaikan tugas penyisipan, ada 29 piksel yang ditambah satu pada saat Histrogram Shifting (pada gambar b), dan 18 piksel yang ditambah satu pada saat penyisipan bit (pada gambar c). Pada saat menyisipan bit penambahan piksel tergantung pada pesan rahasia yang disisipkan, bila bit sama dengan satu maka piksel pada koordinat x,y ditambah satu, sedangkan nol tidak. Arah penabahan piksel dari kiri ke kanan, setelah x=M-1 maka kembalik ke kiri dan seterusnya sampai x=M-1 dan y=N-1. Total perubahan piksel pada saat melakukan metode ini ada 47 piksel.
21 Kapasitas aktual data Embedding (pure payload) dengan cara ini. Kapasitas Embedding
di hitung sebagai berikut:
Dimana h(a), jumlah piksel a di I. Karena proses ekstraksi data kebutuhan informasi dari poin maksimum, dan minimum untuk membuat pemulihan citra awal yang tepat dan Extracting data rahasia, pasangan
citra yang sudah ditandai
dicatat atau dikirim bersama dengan
ke penerima yang dituju.
Tabel 2.1 Struktur overhead pada saat Embedding.
koordinat
Payload
Sesuai kebutuhan
Sesuai kebutuhan
nilai 8 bit
8 bit
Besar daya tampung bit data Embedding (Payload Size) dapat dihitung sebagai berikut:
Dimana :
I.
panjang dari citra,
lebar dari citra
jumlah titik minimum di .
2.4.1.2 Algoritma Extracting Input : Stego-image , titik maksimum
Output : Original-image
banyak titik maksimum di
22 Step 1: Memindai citra yang ditandai
dalam urutan yang sama seperti yang
digunakan dalam prosedur Embedding. jika nilai piksel grayscale
ditemui, bit 1 diekstrak. nilai piksel grayscale
ditemui, bit 0 diekstrak.
Step 2: Memindai citra lagi, untuk setiap nilai piksel yang grayscale
piksel
, nilai
dikurangi 1.
Step 3: Jika di overhead ada informasi pembukuan (
) yang ditemukan pada
saat data diekstrak, set nilai piksel grayscale koordinat
Dengan metode ini, citra dapat dipulihkan tanpa distorsi apa pun.
sebagai b.
23 2.4.2 Embedding and Extraction Flowcharts
Gambar 2.6 Flowchart Menyisipkan pada Histogram Shifting.
24
Gambar 2.7 Flowchart Mengesktrak pada Histogram Shifting.
2.4.3 Quad-tree segmentation Quad-tree segmentation adalah teknik yang membagi blok sebuah citra menjadi 4 bagian yang tidak tumpang tindih dan setiap 4 sub-blok dapat dibagi lagi hingga seterusnya sesuai dengan aturan struktur tree (atau hirarki) pendekatan segmentasi atau pembagian blok. Tujuan
algoritma ini agar saat Histogram Shifting didapat blok yang
kontrasnya lebih rendah. Karena sifat teknik Histrogram Shifting blok kontras yang
25 lebih rendah dapat menampung lebih banyak bit data rahasia, sementara blok kontras yang lebih tinggi menampung relatif lebih sedikit bit data rahasia. Oleh karena itu, blok kontras yang lebih tinggi perlu untuk dipartisi atau dibagi menjadi sub-blok yang lebih kecil dan menyediakan kapasitas yang lebih besar bit data rahasia. Terlihat pada Gambar 2.8 Contoh Quad-tree segmentation sederhana. (a)Citra yang sudah di Segmentation, (b)Struktur Quad-tree Segmentation pada citra, (c) Quad-tree segmentation
(a)
26 (b)
(c) Gambar 2.8 Contoh Quad-tree segmentation sederhana. (a)Citra yang sudah di Segmentation, (b)Struktur Quad-tree Segmentation pada citra, (c) Quad-tree segmentation Penjelasan definisi simbol yang digunakan pada algorima ini: •
Citra yang input dilambangkan dengan
atau
•
: Struktur Quad-tree yang digunakan untuk mewakili proses blok
•
: Variabel biner yang menunjukan apakah
tidak. Set
jika tidak set •
, jika
telah dibagi atau
memutuskan untuk dibagi,
.
:Fungi membuat Histrogram yang dihitung menurut blok
.
27 •
: Fungsi menghitung kapasitas penyisipan dari
•
: Tingkatan(level) pada Quad-tree.
•
: Posisi blok pada level
.
2.4.3.1 Algoritma Quad-tree segmentation: Pada awalnya asumsikan bahwa citra
bilangan bulat berukuran
Input
oleh
adalah 8-bit matriks dua dimensi
.
: Citra (8-bit grayscale) dengan
.
Output : Struktur Quad-tree segmentation dan Citra
(8-bit grayscale) dengan
.
Step 1
: Jika
,
maka
bagi
menjadi
yaitu
, kirim
Step 2
ke step 2.
: Jika
: Bagi
blok
. Set
kirim
kirim
Step 3
4
ke step 3. dan jika
ke step 4.
menjadi 4 blok
, dan krim
, set Set
ke Step 2.
28 Step 4
: Set
, jika
sisa bukan 0 maka kirim
jika
Step 5
sisa 0 maka kirim
: Jika
, maka kirim
ke step 5.
ke Step 2.
ke Step 4. Jika
maka algoritma
selesai. 2.4.3.2 Flowchard
Gambar 2. 1 Algoritma Quad-tree segmentation 2.4.4 Histogram shifting dan Quad-tree segmentation Embedding algoritma Input : Citra Original (8-bit grayscale) dengan
, dan data rahasia
.
29 Output : Stego-image
dan, titik maksimum
Step 1 : Membuat struktur Quad-tree Segmentation dari citra Original. Step 2
: Membuat Histogram
, seperti dalam kasus Gambar 1.
minimum di
Step 3
: Menggeser atau
antara titik maksimum dan minimum pada
.
blok
Step 4
, kemudian Mencari titik maksimum dan
: Menghitung
, membagi pesan rahasia menjadi beberapa bagian
sesuai kapasitas blok tersebut. kemudian Menggabungkan pesan rahasia sebagai Payload overhead 1 yang akan disisipkan di blok
Step 5
: Memindai semua piksel didalam
.
. Jika graylevel piksel adalah
sama dengan 3 (titik maksimum) ditemukan, periksa data overhead 1 pada blok
, jika bit overhead 1 pada posisi
, jika tidak piksel
Step 6
, maka piksel
tetap.
: Jika daun dari struktur Quad-tree Segmentation telah habis maka lanjutkan ke Step 7, jika tidak kembali ke Step 2.
Step 7
: Membuat Histogram,
dari keseluruh citra, kemudian mencari titik
maksimum dan minimum. Gabungkan Quad-tree bit-steam yang dihasilkan dari Quad-tree Segmentation di overhead 2. Step 8
: Menggeser atau
antara titik maksimum dan minimum.
30 Step 9
: Memindai semua piksel didalam citra ( ) Jika graylevel piksel adalah titik
maksimum ditemukan, periksa data overhead 2, jika bit overhead 2 pada posisi
, maka piksel
, jika tidak piksel
Untuk menghubungkan Quad-tree bit-steam
tetap.
dengan blok-blok yang
dihasilkan dari struktur Quad-tree Segmentation, maka dibutuhkan struktur yang menghubungkannya. Struktur tersebut dapat dilihat dibawah ini:
Tabel 2.2 Struktur overhead 1. Simbol
Keterangan
count of min
Banyak titik minimum 8 bit Koordinat dari titk minimum Sesuai kebutuhan
next max(a) next min PL payload
Nilai titk Maksimum pada daun node selanjutnya Nilai titik Minimum pada daun node selanjutnya Panjang bit Secrete data bit –bit secrete data
Panjang bit
8 bit 8 bit 8 bit Sesuai kebutuhan
Tabel 2.3 Struktur overhead 2. Simbol b next max next min count of min min value BL Quad-tree bit-steam
Keterangan Nilai titik Minimum Nilai titik Maksimum di blok awal atau pada contoh Nilai titik Minimum di blok awal atau pada contoh Banyak titik Minimum di Koordinat dari titik minimum
Panjang bit 8 bit 8 bit
Panjang bit Quad-tree bit-steam Bit Quad-tree
8 bit Sesuai kebutuhan
8 bit 8 bit Sesuai kebutuhan
31 Besar daya tampung bit data Embedding (Payload Size) dengan metode Histogram Shifting dan Quad-Tree Segmentation sebagai berikut:
Dimana
panjang dari citra,
blok ke ,
lebar dari citra,
banyak titik maksimum di
banyak titik minimum di blok ke .
2.4.5 Histogram shifting dan Quad-tree segmentation Extracting algoritma Input
: Stego-image , maximum poin
key.
Output : Citra Original (8-bit grayscale) dengan
, dan data rahasia
.
Step 1 : Mengekstrak citra. dengan Seluruh citra dipindai kiri ke kanan kemudian kebawah dan seterusnya. Jika grayscale nilai piksel sama dengan key, maka dapat bit
pada posisi
adalah key +1, maka dapat bit
Step 2
: Menggeser balik atau
titik maksimum. Bila
dari data overhead 2. Jika nilai pixel
pada posisi
dari data overhead 2.
, dimana titik minimum
dari overhead 2 maka koordinat
.
Step 3
: Kita mendapatkan titik maksimum dan minimum daun node pertama dari struktur Quad-tree Segmentation dan Quad-tree bit-steam dari overhead 2
32 setelah
mengekstrak
citra.
Gunakan
menghasilkan blok-blok
Step 4
: Mengekstrak
Quad-tree
bit-steam
untuk
di struktur Quad-tree Segmentation.
. dengan blok
dipindai kiri ke kanan
kemudian kebawah dan seterusnya. Jika grayscale nilai piksel sama dengan , maka dapat bit
pixel adalah
Step 5
pada posisi
, maka dapat bit
: Menggeser balik di
pada posisi
.
titik maksimum. Bila
koordinat
Step 6
dari data overhead 1. Jika nilai
dari data overhead 1.
, dimana titik minimum
dari overhead 1 maka
.
: Jika daun dari struktur Quad-tree Segmentation telah habis maka lanjutkan ke Step 7, jika tidak kembali ke Step 4.
Step 7
: Kombinasikan semua blok payload data untuk mendapatkan data rahasia.
33 2.4.6 Flowchart
Gambar 2.9 Flowchart Menyisipkan pada Histogram Shifting dan Quad-tree Segementation.
34
Gambar 2.10 Flowchart Mengekstrak pada Histogram Shifting dan Quad-tree Segmentation.
35 2.5 Peak Signal to Noise Ratio (PSNR) Blok PSNR menghitung Peak Signal to Noise Ratio, dalam desibel, antara dua citra. Rasio ini sering digunakan sebagai pengukuran kualitas antara asli dan gambar terkompresi. The PSNR semakin tinggi citra, semakin baik kualitas dikompresi, atau direkonstruksi. The Mean Square Error (MSE) dan Signal Peak Noise Ratio (PSNR) adalah dua metrik kesalahan digunakan untuk membandingkan kualitas gambar kompresi. MSE merupakan kesalahan kuadrat kumulatif antara kompresi dan citra asli, sedangkan PSNR merupakan ukuran kesalahan puncak. Nilai yang lebih rendah antara MSE, semakin rendah kesalahan. Untuk menghitung PSNR tersebut, blok pertama menghitung error meansquared menggunakan persamaan berikut:
Dalam persamaan sebelumnya, M dan N adalah jumlah baris dan kolom pada gambar masukan, masing-masing. Kemudian blok menghitung PSNR menggunakan persamaan berikut:
Dalam persamaan sebelumnya, R adalah fluktuasi maksimum dalam jenis input data citra. Misalnya, jika citra input memiliki presisi-ganda tipe data floatingpoint, maka R adalah 1. Jika memiliki 8-bit tipe data integer unsigned, R adalah 255, dan lain-lain.
36 Parameter PSNR (Peak Signal to Noise Ratio) citra rekonstruksi terhadap citra aslinya. Angka PSNR > 35 dB biasanya dikategorikan baik, dan angka >= 40 dB dikategorikan dengan sangat baik.
2.6 Android Android adalah sebuah sistem operasi untuk mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. (H, 2011) Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Features : •
Framework Aplikasi yang mendukung penggantian komponen dan reusable.
•
Mesin virtual Dalvik dioptimalkan untuk perangkat mobile
•
Integrated browser berdasarkan engine open source WebKit
•
Grafis yang dioptimalkan dan didukung oleh perpustakaan grafis 2D, grafis 3D berdasarkan spesifikasi opengl ES 1,0 (Opsional akselerasi hardware)
•
SQLite untuk penyimpanan data
•
Media Support yang mendukung audio, video, dan gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
•
GSM Telephony (tergantung hardware)
•
Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware)
•
Kamera, GPS, kompas, dan accelerometer (tergantung hardware)
•
Lingkungan Development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk Eclipse IDE
37 2.6.1 Sejarah Android Android Inc, adalah sebuah perusahaan software kecil yang didirikan pada bulan Oktober 2003 di Palo Alto, California, USA. Didirikan oleh beberapa senior di beberapa perusahaan yang berbasis IT & Communication; Andy Rubin, Rich Miner, Nick Sears dan Chris White. Menurut Rubin, Android Inc didirikan untuk mewujudkan mobile device yang lebih peka terhadap lokasi dan preferensi pemilik. Dengan kata lain, Android Inc, ingin mewujudkan mobile device yang lebih mengerti pemiliknya. Sejarah Android dimulai dari sini. Konsep yang dimiliki Android Inc, ternyata menggugah minat raksasa Google untuk memilikinya. Pada bulan Agustus 2005, akhirnya Android Inc diakuisisi oleh Google Inc. Seluruh sahamnya dibeli oleh Google. Nilai pembelian Android Inc ini oleh google tidak ada release pastinya. Tetapi banyak yang memperkirakan nilai pembelian Android Inc oleh Google adalah sebesar USD 50 juta. Saat itu banyak yang berspekulasi, bahwa akuisisi ini adalah langkah awal yang dilakukan Google untuk masuk ke pasar mobile phone. Andy Rubin, Rich Miner, Nick Sears dan Chris White tetap di Android Inc yang dibeli Google, sehingga akhirnya mereka semua menjadi bagian dari raksasa Google dan sejarah android. Saat itulah mereka mulai menggunakan platform linux untuk membuat sistem operasi bagi mobile phone. Pada bulan nopember 2007, terbentuklah Open Handset Alliance yang merupakan konsorsium dari beberapa perusahaan : Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile dan Texas Instruments. Mereka sepakat untuk membuat open standart bagi mobile phone. Pada hari yang sama, mereka
38 mengumumkan produk pertama mereka, yaitu Android yang berbasis Linux kernel versi 2.6. Bulan Desember 2008, bergabunglah 14 perusahaan lainnya yaitu : ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, PacketVideo, Softbank, Sony Ericsson, Toshiba Corp dan Vodafone Group Plc. Hal ini merupakan langkah besar dalam sejarah Android untuk menjadi pemimpin dalam sistem operasi untuk mobile phone.
2.7 Metodologi Waterfall Waterfall Model adalah sebuah metode pengembangan software yang bersifat sekuensial.Metode ini dikenalkan oleh Royce pada tahun 1970 dan pada saat itu disebut sebaga isi klus klasik dan sekarang ini lebih dikenal dengan sekuensial linier. Selain itu Model ini merupakan model yang paling banyak dipakai oleh para pengembang software. Inti dari metode Waterfall adalah pengerjaan dari suatu system dilakukan secara berurutan atau secara linear.Jadi jika langkah satu belum dikerjakan maka tidak akan bisa melakukan pengerjaan langkah 2, 3 dan seterusnya. Secara otomatis tahapan ke-3 akan bisa dilakukan jika tahap ke-1 dan ke-2 sudah dilakukan. Ada dua gambaran dari Waterfall Model, biarpun berbeda dalam menggunakan fase tapi intinya sama.
Gambar 2.11 Fase-fase dalam Waterfall Model menurut Pressman.
39
Gambar 2.12 Fase-fase dalam Waterfall Model menurut Sommervile.
Keterkaitan dan pengaruh antar tahap ini ada karena output sebuah tahap dalam Waterfall Model merupakan input bagi tahap berikutnya, dengan demikian ketidak sempurnaan hasil pelaksanaan tahap sebelumnya adalah awal ketidak sempurnaan tahap berikutnya. Memperhatikan karakteristik ini, sangat penting bagi tim pengembang dan perusahaan untuk secara bersama-sama melakukan analisa kebutuhan dan desain system sesempurna mungkin sebelum masuk kedalam tahap penulisan kode program. Secara garis besar metode Waterfall mempunyai langkahlangkah sebagai berikut :Analisa, Design, Code dan Testing, Penerapan dan Pemeliharaan:
40 2.7.1 Analisa kebutuhan (Requirement Analysis) Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa malakukan sebuah penelitian, wawancara atau study literatur.Seorang system analis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah system komputer yang bisa melakukan tugastugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen inilah yang akan menjadi acuan system analis untuk menterjemahkan kedalam bahasa pemprogram.
2.7.2 Design sistem (System Design) Proses desain akan menerjemahkan syarat kebutuhan kesebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada :struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirment. Dokumen inilah yang akan digunakan programmer untuk melakukan aktivitas pembuatan sistemnya.
2.7.3 Coding & Testing (Implementation) Coding merupakan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer.Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem.Dalam artian penggunaan computer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap
41 sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap system tersebut dan kemudian bisa diperbaiki.
2.7.4 Penerapan / pengujian program (Integration & Testing) Tahapan ini bisa dikatakan final dalam pembuatan sebuah sistem.Setelah melakukan analisa, design dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user.
2.7.5 Pemeliharaan (Operation & Maintenance) Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau system operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional.