BAB 2 LANDASAN TEORI 2.1 Model Waterfall Metode rekayasa peranti lunak yang digunakan peneliti adalah Metode waterfall. Menurut Pressman (2010, p.39)waterfall adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Berikut adalah tahapan dalam model waterfall : 1. Communication Langkah ini merupakan analisis terhadap kebutuhan software, dan tahap untuk mengadakan pengumpulan data dengan melakukan pertemuan dengan customer, maupun mengumpulkan data-data tambahan baik yang ada di jurnal, artikel, maupun dari internet. 2. Planning Proses planning merupakan lanjutan dari proses communication (analysis requirement), tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan software, di dalamnya sudah termasuk rencana yang akan dilakukan. 3. Modeling Proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan software yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement.
9
4. Constraction Construction
merupakan
proses
membuat
kode.
Coding
merupakan
penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu software. Dalam artian penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki. 5. Deployment Tahapan ini bisa dikatakan final dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala. Fase-fase dalam modelwaterfall menurut referensi Pressman:
Gambar 2.1 Waterfall Model Kekurangan yang utama dari model ini adalah kesulitan dalam mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus lengkap dan selesai
10
sebelum mengerjakan fase berikutnya, sedangkan menyatakan kebuthan secara lengkap sangat sulit dilakukan pada awal proyek, yang berakibat sulitnya melanjut pada fase selanjutnya. Sebuah kesalahan jika tidak diketahui dari awal akan menjadi masalah besar karena harus mengulang dari fase awal lagi. Masalah dengan waterfall : 1. Perubahan sulit dilakukan karena sifatnya yang kaku. 2. Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan secara lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali konsumen/pengguna yang bisa memberikan kebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar terjadi. 3. Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar dimana proyek dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-proyek.
2.2 Steganografi Steganografi adalah ilmu dan seni untuk menyembunyikan informasi dengan menyisipkan
pesan
kedalam
pesan
lainnya
(Cachin,
2005).
Steganografi memungkinkan kondisi sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia.Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan bahwa ada suatu pesan.
11
Tujuan daristeganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya, kebanyakan pesan disembunyikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan. Kata "steganografi" berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis”.Catatan tertua mengenai penggunaansteganografi tercatat pada masa Yunani kuno.Pada saat itu, penguasa Yunani, Histiaues,sedang ditawan oleh Raja Darius di Susa.Histiaeus ingin mengirim pesan rahasia kepadamenantunya, Aristagoras, di Miletus.Untukitu, Histiaeus mencukur habis rambutbudaknya dan menatokan pesan rahasia yangingin dikirim di kepala budak tersebut. Setelahrambut budak tadi tumbuh cukup lebat,barulah ia dikirim ke Miletus. Catatan lain tentang steganografi juga ditemukan pada jaman Yunani kuno, medium tulisan pada saat ituadalah papan yang dilapisi lilin dan tulisanditulisi di papan
tersebut.
Demeratus,
perlumemberitahu
Sparta
bahwa
Xerxes
bermaksuduntuk menginvasi Yunani.Agar pesan yangdikirimnya tidak diketahui
12
keberadaannya,Demeratus melapisi lagi papan tulisannya dengan lilin.Papan tulisan yang terlihat masihkosong inilah yang dikirim ke Sparta. Bangsa Romawi menggunakan tinta yang tidak nampak sebagai salah satu metode steganografi untuk menulis pesan di antara baris-baris pesanyang ditulis dengan tinta biasa. Tinta yang tidak nampak ini dapat terbuat dari sari jerukatau susu. Ketika dipanaskan, warna tinta yangtidak tampak akan menjadi gelap dantulisannya akan menjadi dapat terbaca. Tinta yang tidak tampak ini juga digunakan dalamPerang Dunia II. Steganografi terus berkembang selama abadkelima belas dan keenam belas. Pada masa itu,banyak penulis buku yang engganmencantumkan namanya karena takut akankekuatan penguasa pada saat itu. Pengembangan lebih jauh lagi mengenaisteganografi terjadi pada tahun 1883 dengandipublikasikannya kriptografi militer olehAuguste Kerckhoffs.Meskipun sebagian besarberbicara mengenai kriptografi, Kerckhoffsmenjabarkan beberapa deskripsi yang patutdicatat ketika merancang sebuah sistem steganografi.Lebih jauh lagi, Les Filigranes, yang ditulis oleh Charle Briquet di tahun1907,merupakan sebuah kamus sejarah dariwatermark, salah satu wujud pengaplikasiansteganografi. Kini, istilah steganografitermasuk penyembunyian data digital dalam berkasberkas (file) komputer. Contohnya, si pengirim mulai dengan berkas gambar biasa, lalu mengatur warna setiap piksel ke-100 untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang menyadarinya jika ia tidak benar-benar memperhatikannya).
13
Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam berkas-berkas lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari berkas semula. Metode ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar. Metode steganografisangat berguna jika digunakan pada wujud steganografi komputer karena banyak format berkas digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan di antaranya:
Format image :bitmap (bmp), gif, pcx, jpeg, dll.
Format audio :wav, voc, mp3, dll.
Format lain :teks file, html, pdf, dll. Empat komponen utama stegagografi:
1. Embedded message (hiddentext): pesan yangdisembunyikan. 2. Cover-object (covertext): pesan yang digunakan untuk menyembunyikan embedded message. 3. Stego-object (stegotext): pesan yang sudah berisi pesan embedded message. 4. Stego-key: kunci yang digunakan untuk menyisipan pesan dan mengekstraksi pesan dari stegotext.
covertext
hiddentext
Encoding (embeddin)
key
covertext
stegotext
Decoding (extraction)
key
hiddentext
14
Gambar 2.2 Proses Steganografi Kriteria yang harus diperhatikan dalam steganografi adalah: 1. Fidelity Mutu citra penampung tidak jauh berubah.Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik.Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. 2. Robustness Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung (seperti pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan (cropping), enkripsi, dan sebagainya).Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak. 3. Recovery Data yang disembunyikan harus dapat diungkapkan kembali (recovery).Karena tujuan steganografi adalah data hiding, maka sewaktu-waktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut.
2.2.1
Metode – Metode Steganografi 1. Least Significant Bit (LSB)
15
LSB adalah metode dengan menggunakan cara menyisipkan data rahasia dalam bentuk bit pada bit rendah atau bit yang paling kanan (LSB) pada data piksel yang menyusun file pembawa. Misalkan pada media pembawa berupa citra bitmap, pada berkas bitmap 24 bit, setiap piksel (titik) pada gambar tersebut terdiri dari susunan tiga warna merah, hijau, dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Dengan demikian, pada setiap piksel berkas bitmap 24 bit kita dapat menyisipkan 3 bit data. Kekurangan dari LSB adalah dapat secara drastis mengubah unsur pokok warna dari piksel. Ini dapat menunjukkan perbedaan yang nyata dari cover image menjadi stego image, sehingga tanda tersebut menunjukkan keadaan dari steganografi. Variasi warna kurang jelas dengan 24 bit image, bagaimanapun file tersebut sangatlah besar. Antara 8 bit dan 24 bit image mudah diserang dalam pemrosesan image, seperti pemotongan (cropping) dan kompresi. Keuntungan dari LSB adalah cepat dan mudah dalam prosesnya. 2. Algorithm and Transformation Algoritma compression adalah metode steganografi dengan menyembunyikan data dalam fungsi matematika. Dua fungsi tersebut adalah
Discrete
Cosine
Transformation
(DCT)
dan
Wavelet
Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT
16
yaitu mentransformasi data dari tempat spatial (spatial domain) ke tempat frekuensi (frequency domain). 3. Spread Spectrum Metode
Spread
Spectrum,
adalah
teknik
pentransmisian
denganmenggunakan pseudo-noise code, yangindependen terhadap data informasi, sebagaimodulator bentuk gelombang untukmenyebarkan energi sinyal dalam sebuah jalurkomunikasi (bandwidth) yang lebih besardaripada sinyal jalur komunikasi informasi.Oleh penerima, sinyal dikumpulkan
kembalimenggunakan
codetersinkronisasi.Berdasarkan bahwasteganografi
replika
definisi,
menggunakan
metode
pseudo-noise
dapat
dikatakan
spreadspectrum
memperlakukan cover-object baiksebagai derau (noise) ataupun sebagai usahauntuk menambahkan derau semu (pseudonoise)ke dalam coverobject.Proses penyisipan pesan menggunakan metodeSpread Spectrum ini terdiri dari tiga proses, yaituspreading, modulasi, dan penyisipan pesan ke citra. Sedangkan Proses ekstraksi pesan menggunakan metodeSpread Spectrum ini terdiri dari tiga proses, yaitupengambilan pesan dari matriks frekuensi,demodulasi, dan de- spreading.
4. Bit-Plane Complexity Segmentation
17
Steganografi BPCS diperkenalkan oleh Eiji Kawaguchi dan Richard O. Eason pada tahun 1997, untuk mengatasi kekurangan teknik steganografi tradisional seperti teknik Least Significant Bit (LSB), teknik Transform embedding, dan teknik masking perceptual. Teknik tradisional memiliki kapasitas yang kecil dalam penyembunyian pesan, yang dapat menyembunyikan hingga 10 - 15% dari jumlah total objek gambar pembawanya. BPCS memanfaatkan karakteristik penglihatan manusia.Hal ini tidak didasarkan pada pemrograman teknik, tetapi didasarkan pada properti dari sistem penglihatan manusia. Informasi kapasitas persembunyiannya dapat sebagai besar sebagai 50% daridata gambar asli (Kawaguchi dan Eason, 1998). Pada BPCS, gambar pembawa pesan dibagi menjadi “informative region” dan “noise-like region”. Kemudian pesan yang akan disembunyikan akan dimasukkan pada bagian “noise-like region” tanpa mengurangi kualitas gambar pembawanya tersebut. Dalam teknik LSB, data tersembunyi dalam empat bit terakhir yaitu hanya dalam 4 bit LSB. Tapi dalam teknik BPCS, data tersembunyi dalam MSB maupun LSB sehingga penyembunyian pesan menjadi lebih kompleks.
2.3Citra Digital
18
Menurut Susanto (2011) citra digital merupakan fungsi intensitas cahaya f(x,y), dimana harga x dan y merupakan koordinat spasial dan harga fungsi tersebut pada setiap titik (x,y) merupakan tingkat kecemerlangan citra pada titik tersebut.Citra digital adalah citra f(x,y) dimana dilakukan diskritisasi koordinat spasial (sampling) dan diskritisasi tingkat kecemerlangannya/keabuan (kwantisasi).Citra digital merupakan suatu matriks dimana indeks baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen matriksnya (yang disebut sebagai elemen gambar / piksel / pixel / picture element / pels) menyatakan tingkat keabuan pada titik tersebut. Citra berukuran N x M dinyatakan dengan matriks yang berukuran N baris dan m kolom.
Gambar 2.3 Matriks Citra Digital Citra digital dibentuk dari blok-blok kecil yang dinamakan piksel.Piksel merupakan elemen penyusun warna terkecil yang menyusun suatu citra. Untuk menunjukkan tingkat pencahayaan piksel, digunakan bilangan bulat yang besarnya 8 bit(1 byte) untuk setiap pikselnya, dengan lebar selang antara 0-255, dimana 0 untuk warna hitam, 255 untuk warna putih, dan tingkat keabuan ditandai dengan nilai diantara 0-255. Citra digital dapat dikualifikasikan berdasarkan sifat dari nilai terkuantisasinya sebagai berikut :
19
a. citra biner Citra Biner disebut juga dengan bi-level adalah citra digital yang hanya mempunyai dua kemungkinan nilai pada pixel-pixelnya (hitam atau putih). Citra biner biasanya dihasilkan melalui proses segmentasi ataupun proses tresholding, atau dihasilkan beberapa alat-alat input/output yang hanya mendukung citra biner seperti: printer laser dan mesin fax.
Gambar 2.4Citra Biner
Gambar 2.5Representasi Citra Biner
b. citra grayscale Citra greyscale disebut juga dengan citra 8-bit karena memiliki 28 (256) kemungkinan nilai pada masing-masing pikselnya.Nilai tersebut dimulai dari nol untuk warna hitam dan 255 untuk warna putih.Citra ini disebut juga citra hitam putih atau citra monoakromatik.
Gambar 2.6Matriks 2D Citra Keabuan c. citra warna
20
Citra warna adalah citra yang nilai piksel-nya merepresentasikan warna tertentu.Banyaknya warna yang mungkin digunakan bergantung kepada kedalaman pixel citra yang bersangkutan. Citra berwarna direpresentasikan dalam beberapa kanal (channel) yang menyatakan komponen-komponen warna penyusunnya. Banyaknya kanal yang digunakan bergantung pada model warna yang digunakan pada citra tersebut. Intensitas suatu pada titik pada citra berwarna merupakan kombinasi dari tiga intensitas : derajat keabuan merah (fmerah(x,y)), hijau fhijau(x,y) dan biru (fbiru(x,y)). Persepsi visual citra berwarna umumnya lebih kaya di bandingkan dengan citra hitam putih.Citra berwarna menampilkan objek seperti warna aslinya (meskipun tidak selalu tepat demikian).Warna-warna yang diterima oleh mata manusia merupakan hasil kombinasi cahaya dengan panjang gelombang berbeda.
Gambar 2.7 Komponen Citra Warna dalam RGB
21
2.3.1 Jenis Citra Digital Citra digital dapat dibedakan menjadi 2 jenis : 1. Raster Raster image, atau yang juga biasa dikenal dengan bitmap, merupakan sebuah cara untuk merepresentasikan gambar digital (digital image). Tipe file raster pada umumnya seperti : jpg, jpeg, gif, png, tif, tiff, bmp, psd, dan pdfs.Raster image merepresentasikan sebuah gambar dalam serangkain bit informasi di mana diterjemahkan ke dalam piksel pada layar. Piksel-piksel tersebut membentuk titik-titik warna yang membuat sebuah gambar utuh.
Gambar 2.8 Contoh Gambar Raster Ketika sebuah raster image dibuat, gambar pada layar dikonversikan pada piksel-piksel.Setiap piksel memiliki nilai spesifik yang menentukan warnanya.Sistem raster image menggunakan sistem warna merah, hijau, biru alias red, green, blue (RGB). Nilai RGB dari 0,0,0 akan menjadi warna hitam, dan nilai tersebut bervariasi sampai angka 256 untuk setiap warnanya, memungkinkan ekspresi berbagai macam warna.
22
2. Vektor Tidak seperti JPEG, GIF, dan BMP , citra vektor tidak terdiri dari kotak piksel. Sebaliknya, terdiri dari path, yang didefinisikan oleh titik awal dan akhir, bersama dengan titik lainnya, kurva-kurva, dan sudut di sepanjang jalurnya. Path dapat menjadi garis, persegi, segitiga, atau bentuk melengkung. Path ini dapat digunakan untuk membuat gambar sederhana
atau
diagram
kompleks
bahkan
digunakan
untuk
mendefinisikan karakter tipografi tertentu. Karena berbasis vektor, gambar tidak terdiri dari sejumlah titik tertentu (piksel), gambar dapat diubah ke ukuran lebih besar dan tidak kehilangan kualitas gambar. Jika membesarkan sebuah citra raster, akan tampak seperti blok-blok warna, atau "pixelated." Ketika membesarkan vektor grafis, tepi setiap objek dalam grafis tetap halus dan bersih. Jenis-jenis grafik vektor termasuk Adobe Illustrator, Macromedia Freehand, dan file EPS. Animasi Flash juga banyak menggunakan citra vektor, karena mereka lebih baik dalam proses pengubahan skala dan biasanya lebih irit ruang penyimpanan dari citra raster.
23
Representasi vektor fitur poligon danau. Perhatikan detail dipertahankan di garis pantai yang mendefinisikan batas antara air dan dataran tinggi.
Raster representasi dari danau yang sama. Dengan format data raster, sel-seldigunakan untuk mengkodekan data geografis. Seluruh area sel masing-masing ditugaskan untuk kategori tunggal dan rincian batasmenjadi hilang.
Gambar 2.9 Perbedaan Gambar Vektor dengan Raster
2.3.2 Format-format Citra Digital Macam-macam format gambar digital : 1. TIFF (Tagged image format File) Format file ini mampu menyimpan gambar dengan kualitas hingga 32 bit. Format file ini juga dapat digunakan untuk keperluan pertukaran antar platform (PC, Machintosh, dan Silicon Graphic). Format file ini merupakan salah satu format yang dipilih dan sangat
24
disukai oleh para pengguna komputer grafis terutama yang berorientasi pada publikasi (cetak). Hampir semua program yang mampu membaca format file bitmap juga mampu membaca format file TIF. 2. BMP (Bitmap) Format file ini merupakan format grafis yang fleksibel untuk platform Windows sehingga dapat dibaca oleh program grafis manapun. Format ini mampu menyimpan informasi dengan kualitas tingkat 1 bit sampai 24 bit. Format file ini mampu menyimpan gambar dalam mode warna RGB, Grayscale, Indexed Color, dan Bitmap. Kelemahan format file ini adalah tidak mampu menyimpan alpha channel serta ada kendala dalam pertukaran platform. Kelebihan tipe file BMP adalah dapat dibuka oleh hampir semua program pengolah gambar. Baik file BMP yang terkompresi maupun tidak terkompresi, file BMP memiliki ukuran yang jauh lebih besar daripada tipe-tipe yang lain. File BMP cocok digunakan untuk: -
desktop background di windows.
-
sebagai gambar sementara yang mau diedit ulang tanpa menurunkan kualitasnya. File BMP tidak cocok digunakan untuk:
-
web atau blog, perlu dikonversi menjadi JPG, GIF, atau PNG.
-
disimpan di harddisk/flashdisk tanpa dikompresi menjadiZIP/RAR.
25
3. JPG/JPEG (Joint Photographic Experts Group) Joint Photograpic Experts (JPEG , dibaca jay-peg) di rancang untuk kompresi beberapa full-color atau gray-scale dari suatu gambar yang asli, seperti pemandangan asli di dunia ini. JPEGs bekerja dengan baik pada continous tone images seperi photographs tetapi tidak terlalu bagus pada ketajaman gambar dan seni pewarnaan seperti penulisan, kartun yang sederhana atau gambar yang mengunakan banyak garis. JPEG sudah mendukung untuk 24-bit color depth atau sama dengan 16,7 juta warna (224 = 16.777.216 warna). JPEG adalah algoritma kompresi secara lossy. JPEG bekerja dengan merubah gambar spasial dan merepresentasikan kedalam pemetaan frekueunsi. Discrete Cosine Transform (DCT) dengan memisahkan antara informasi frekuensi yang rendah dan tinggi dari sebuah gambar. Informasi frekuensi yang tinggi akan diseleksi untuk dihilangkan yang terikat pada pengaturan kualitas yang digunakan. Kompresi dengan tingkatan yang lebih baik , tingkatan yang lebih baik dari informasi yang dihilangkan. JPEG dirancang untuk mengeksploitasi tingkatan dari mata kita yakni bahwa mata kita tidak akan dapat membedakan perubahan yang lambat terang dan warna dibandingkan dengan perbedaan suatu jarak apakah jauh atau dekat. Untuk itu JPEG sangat baik digunkan pada fotografi dan monitor 80-bit.
26
File JPG cocok digunakan untuk: -
gambar yang memiliki banyak warna, misalnya foto wajah dan pemandangan.
-
gambar yang memiliki gradien, misalnya perubahan warna yang perlahan-lahan dari merah ke biru. File JPG tidak cocok digunakan untuk:
-
gambar yang hanya memiliki warna sedikit seperti kartun atau komik.
-
gambar yang memerlukan ketegasan garis seperti logo.
4. GIF (Graphics Interchange Format) Format file ini hanya mampu menyimpan dalam 8 bit (hanya mendukung mode warna Grayscale, Bitmap dan Indexed Color). Format file ini merupakan format standar untuk publikasi elektronik dan internet. Format file mampu menyimpan animasi dua dimensi yang akan dipublikasikan pada internet, desain halaman web dan publikasi elektronik. Format file ini mampu mengkompres dengan ukuran kecil menggunakan kompresi LZW. Tipe file GIF memungkinkan penambahan warna transparan dan dapat digunakan untuk membuat animasi sederhana, tetapi saat ini standar GIF hanya maksimal 256 warna saja. File ini menggunakan kompresi yang tidak menghilangkan data (lossles compression) tetapi penurunan jumlah warna menjadi 256 sering membuat gambar yang kaya warna seperti pemandangan menjadi tidak realistis.
27
Format GIF merupakan format file yang paling banyak disarankan dan digunakan. Kelebihan Format ini antara lain adalah : -
ukuran file yang dihasilkan relatif kecil.
-
mampu menggabungkan beberapa gambar menjadi satu kesatuan dan menampilkannya secara bergantian (animasi).
-
warna latar belakang dapat dibuat transparan.
-
adanya teknologi interlacing yang akan membuat sebuah file di-load secara utuh dengan kualitas yang ditampilkan secara bertahap. File GIF cocok digunakan untuk:
-
gambar dengan jumlah warna sedikit (dibawah 256).
-
gambar yang memerlukan perbedaan warna yang tegas seperti logo tanpa gradien.
-
gambar animasi sederhana seperti banner-banner iklan, header, dan sebagainya.
-
print shoot (hasil dari print screen) dari program-program simple dengan jumlah warna sedikit. File GIF tidak cocok digunakan untuk:
-
gambar yang memiliki banyak warna seperti pemandangan.
-
gambar yang didalamnya terdapat warna gradien atau semburat.
5. PNG (Portable Network Graphics) Format file ini berfungsi sebagai alternatif lain dari format file GIF. Format file ini digunakan untuk menampilkan objek dalam halaman web. Kelebihan dari format file ini dibandingkan denganGIF
28
adalah kemampuannya menyimpan file dalam bit depth hingga 24 bit serta mampu menghasilkan latar belakang (background) yang transparan dengan pinggiran yang halus. Format file ini mampu menyimpan alpha channel. File PNG dapat diatur jumlah warnanya 64 bit (true color + alpha) sampai indexed color 1 bit. Dengan jumlah warna yang sama, kompresi file PNG lebih baik daripada GIF, tetapi memiliki ukuran file yang lebih besar daripada JPG. Kekurangan tipe PNG adalah belum populer sehingga sebagian browser tidak mendukungnya. Adapun beberapa kelebihan dari formatPNG adalah: -
punya semua kelebihan GIF, kecuali animasi.
-
fitur Interlacing 2 dimensi yang terbukti lebih baik jika dibandingkan dengan interlacing milik GIF.
-
tersedianya 2 format file yaitu PNG8 (256 warna) dan PNG24 yang membuat desainer dapat lebih leluasa memilih kualitas gambar.
-
teknik kompresi lossless yang digunakan akan menghasilkan ukuran file yang kecil dengan tidak mengalami penurunan kualitas gambar, bandingkan dengan JPEG yang menggunakan teknik kompresi lossy yang dipastikan akan membuat kualitas gambar menurun. File PNG cocok digunakan untuk:
-
gambar yang memiliki warna banyak.
-
gambar yang mau diedit ulang tanpa menurunkan kualitas.
29
2.4 Aplikasi Mobile Menurut Romdoni (2010), aplikasi adalah program yang digunakan untuk melakukan sesuatu pada sistem komputer. Mobile dapat diartikan sebagai perpindahan yang mudah dilakukan dari suatu tempat ke tempat lain, misalnya telepon genggam, yang dapat digunakan dengan berpindah-pindah tempat dengan mudah dari suatu tempat ke tempat lain tanpa pemutusan atau terputusnya komunikasi. Sistem aplikasi mobile adalah aplikasi yang dapat digunakan pengguna dengan berpindah-pindah tempat dengan mudah dari suatu tempat ke tempat lain tanpa pemutusan atau terputusnya komunikasi. Sedangkan akses informasi dari aplikasi mobile biasanya hanya berupa teks sederhana, kalaupun berupa gambar, maka gambar dengan ukuran yang tidak terlalu besar. Perangkat mobile yang digunakan masa kini seperti ponsel cerdas, tablet PC, PDA, dll. Beberapa karakteristik perangkat mobile: 1.Ukuran yang kecil Perangkat mobile memiliki ukuran yang kecil.Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka. 2.Memory yang terbatas Perangkat mobile juga memiliki memory yang kecil, yaitu primary (RAM) dan secondary (disk). 3.Daya proses yang terbatas Sistem mobile tidaklah dibandingkan desktop.
30
4.Mengkonsumsi daya yang rendah Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop. 5.Kuat dan dapat diandalkan Karena perangkat mobile selalu dibawa kemana saja, mereka harus cukup kuat untuk menghadapi benturan-benturan, gerakan, dan sesekali tetesan-tetesan air. 6.Konektivitas yang terbatas Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak tersambung. 7.Masa hidup yang pendek Perangkat-perangkat konsumen ini menyala dalam hitungan detik, bahkan kebanyakan dari mereka selalu menyala.
2.5 Android Android OS adalah sebuah sistem operasi mobile untuk preangkat seluler, tablet, dan netbook.Pada awalnya, Android OS dikembangkan oleh Android Inc dan kemudian dibeli oleh Google.Android dikembangkan oleh Google berbasiskan kernel Linux dan software-software GNU.Saat ini, Android dipegang oleh Open Handset Alliance dengan Google sebagai salah satu anggotanya (Skeldrak, 2011). Menurut Priyanta (2011) beberapa keunggulan Android antara lain : -
Terbuka (open source), platform terbuka yang berdasarkan pada Linux yang merupakan platform terbuka juga. Hal ini memungkinkan proses pembelajaran,
31
pembuatan, dan pengkostumiasian menggunakan platform Android tanpa membayar royalti. -
Probabilitas tinggi, karena semua program ditulis dengan bahasa pemrograman Java.
-
Menyediakan kualitas suara dan grafik yang tinggi, juga didukung oleh platform seperti OpenGL.
-
Android menyediakan berbagai macam library, sehingga tidak perlu membangun dari awal.
-
Karena terbuka, sehingga menyediakan Software Development Kit (SDK) gratis, dan didukung Integrated Development Environtment terbuka, yaitu Eclipse.
-
Didukung puluhan ribu aplikasi baik gratis, trial, maupun berbayar.
2.6 PSNR (Peak Signal to Noise Ratio) Analisis PSNR menggunakan model matematika standar untuk mengukur perbedaan antara dua gambar yang obyektif. Hal ini umumnya digunakan dalam pengembangan dan analisis algoritma kompresi, dan untuk membandingkan kualitas visual antara sistem kompresi yang berbeda (Bucklin, Davidson, Newman, Sergaves, Taylor, 2009). PSNRpada penelitian ini digunakan untuk mengetahui perbandingan kualitas citra sebelum (gambar penampung) dan sesudah disisipkan pesan (gambar stego). Peak Signal to Noise Ratio (PSNR) adalah perbandingan antara nilai maksimum dari sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal
32
tersebut.Untuk menentukan PSNR, terlebih dahulu harus ditentukan nilai rata-rata kuadrat dari error (MSE - Mean Square Error). 1
||
, ||
,
Dimana : MSE =
Nilai Mean Square Error dari citra tersebut
m
=
panjang citra tersebut (dalam piksel)
n
=
lebar citra tersebut (dalam piksel)
(i,j) =
koordinat masing-masing piksel
I
=
nilai bit citra pada koordinat i,j
K
=
nilai derajat keabuan citra pada koordinat i,j
Sementara nilai PSNR dihitung dari kuadrat nilai maksimum sinyal dibagi dengan MSE. Apabila diinginkan PSNR dalam desibel, maka nilai PSNR akan menjadi sebagai berikut : 10
log
255
20
log
255 √
Dimana : PSNR = nilai PSNR citra (dalam dB) 255
= nilai maksimum piksel (nilai maksimum piksel warna adalah 255)
MSE = nilai MSE Nilai PSNR yang baik untuk citra adalah lebih besar dari 30 dB. Dalam prakteknya, menjadi sangat sulit untuk melihat perbedaan untuk PSNR yang lebih
33
besar dari 50 dB antara gambar sumber dan gambar terkompresi (Bucklin et.al, 2009).
2.7 BPCS (Bit-Plane Complexity Segmentation) Steganografi BPCS diperkenalkan oleh Eiji Kawaguchi dan Richard O. Eason pada tahun 1997.BPCS memanfaatkan karakteristik penglihatan manusia.Dalam teknik BPCS, data tersembunyi dalam MSB maupun LSB sehingga penyembunyian pesan menjadi lebih kompleks. Eiji Kawaguchi dan R. O. Eason memperkenalkan teknik BPCS ini untuk digunakan pada dokumen citra berwarna yang tidak terkompresi dengan format BMP. Dokumen citra tersebut dibagi menjadi beberapa segmen dengan ukuran 8x8 piksel setiap segmennya (Kawaguchi et.al, 1998). Pada dokumen citra 8-bit, setiap satu segmen akan memiliki 8 buah bit plane yang merepresentasikan piksel-piksel dari setiap bit tersebut. Gambar multi-nilai (P) terdiri dari n-bit piksel dapat didekomposisi menjadi himpunan n - gambar biner. Proses pembagian segmen 8x8 piksel menjadi 8 buah bit plane disebut proses bit slicing. Sebagai contoh: P adalah gambar n-bit abu-abu misalkan n = 8. Oleh karena P = [P7 P5 P6 P2 P3 P4 P0 P1] mana P7 adalah bit-plane MSB dan P0 adalah bit-plane LSB. Pada BPCS, gambar pembawa pesan dibagi menjadi “informative region” dan “noise-like region”. Kemudian pesan yang akan disembunyikan akan dimasukkan pada bagian “noise-like region” tanpa mengurangi kualitas gambar pembawanya tersebut (Khaire dan Nalbalwar, 2010). Sebuah wilayah “informatif” terdiri dari pola sederhana, sementara wilayah “noise” terdiri dari pola yang
34
kompleks.
Representasi kedelapan bit plane ini merupakan PBC system(Pure
Binary Code). Pada BPCS, proses penyisipan dilakukan pada bit plane dengan sistem CGC (Canonical Gray Code) karena proses bit slicing pada CGC cenderung lebih baik dibandingkan pada PBC (Kawaguchi et.al, 1998). Sehingga pada proses penyisipan, bit plane dengan representasi PBC diubah menjadi bit plane dengan representasi CGC.
2.7.1
CGC pada BPCS Tujuan utama dari BPCS adalah untuk memanfaatkan sebesar-besarnya
ruang pada image pembawa tanpa banyak mengurangi kualitas tampilan visual dari gambar aslinya. Pure Binary Coding (PBC) pada bit-plane menyediakan wilayah yang lebih besar untuk embedding. Tapi PBC mengalami masalah "Hamming Cliff”, dimana perubahan kecil dalam warna mempengaruhi banyak bit dari nilai warna. Hal ini dapat lebih baik dijelaskan dengan bantuan contoh. Pertimbangkan dalam gambar 8–bit, ada dua piksel berturut-turut memiliki nilai intensitas 127 dan 128 masing-masing. Pada PBC, 127 direpresentasikan sebagai 01111111 dan 128 direpresentasikan sebagai 10000000. Kedua piksel tampaknya identik dengan mata manusia tetapi sangat berbeda dalam representasi bit. Ini disebut konsep "Hamming Cliff" (Khaire, Shrikan et. al., 2010). Jika data rahasia tertanam, maka ada kemungkinan bahwa bisa menjadi 11111111 01111111 dan bisa menjadi 00000000 10000000.
35
Sebelumnya, ada perbedaan satu tingkat keabuan yang diabaikan oleh mata manusia. Sekarang, setelah embedding, perbedaan tingkat abu-abu adalah bahwa dari 255 yaitu satu pixel muncul hitam gelap sementara piksel lainnya tampak putih murni. Perubahan ini mudah terlihat oleh mata manusia. Kelemahan ini dihindari oleh Cannonical Gray Coding (CGC), pada CGC teknik pengkodean abu-abu digunakan. Dengan demikian, 127 yang direpresentasikan dalam bentuk biner sebagai 01111111 sekarang direpresentasikan sebagai 01000000 di CGC. Demikian pula, 128 direpresentasikan dalam CGC sebagai 11000000. Sekarang, dua piksel terlihat sama, tetapi berbeda hanya dengan satu bit. Hal ini persis berlawanan dengan PBC. Jadi, CGC tidak mengalami masalah dari "Hamming Cliff". Setelah embedding, 01000000 bisa menjadi 11000000 dan 11000000 bisa menjadi 01000000. Jadi, perubahan piksel terjadi dalam tingkat intensitas yang tidak terlalu mencolok. Oleh karena itu, CGC dipakai daripada PBC di sistem BPCS.
Gambar 2.10 PBC dan CGC pada BPCS
36
Berikut adalah rumus persamaan antara gambar biner PBC dan CGC (dengan
adalah Exclusive OR) :
g1 = b1 gi= bi-1
bi , i > 1
b1 = g1 bi = gi
bi-1, i > 1
dengan gi : nilai bit ke-i pada sistem CGC bi : nilai bit ke-i pada sistem PBC 2.7.2
Bit-plane Slicing pada BPCS Sebuah citra multi-valued dengan kedalaman n bit dapat diuraikan
menjadi bentuk n-gambar biner (bit plane) dengan operasi bit slicing (Kawaguchi et.al, 1998). Pemotongan bit-plane (bit-plane slicing) dapat dipahami pada gambar berikut :
Gambar 2.11 Konsep Pemisahan Bit-plane dengan Nilai Piksel 131
37
Piksel adalah nomor digital yang terdiri dari bit. Dalam gambar 8-bit, intensitas setiap piksel diwakili oleh 8-bit. Gambar 8-bit terdiri dari delapan daerah 1-bit plane, dari bit plane '0 '(LSB) ke bit-plane '7' (MSB).Plane '0 ' berisi semua bit urutan terendah (LSB) dari semua piksel dalam gambar sementara plane '7' berisi semua bit orde tinggi (MSB). Pemisahan bit plane berguna untuk kompresi gambar. Kompleksitas dari setiap pola bit-plane meningkat secara monotical dari MSB ke LSB. Sebagai contoh, misalkan ada citra P dengan kedalaman n-bit, dapat ditunjukkan P = (P1, P2,…, Pn) Pi merupakan bit plane ke-i, dengan i = 1, 2, …, n. Jika citra P terdiri dari 3 warna, red, green, blue, maka dapat ditunjukkan P = (PR1, PR2, …, PRn, PG1, PG2, …, PGn, PB1, PB2, …, PBn) PRi: bit-plane ke-i untuk red PGi: bit-plane ke-i untuk green PBi: bit-plane ke-i untuk blue 2.7.3
Kompleksitas pada Bit-Plane Langkah penting dalam BPCS adalah untuk menemukan daerah
"kompleks" di gambar pembawa pesan (vessel image) sehingga data dari gambar rahasia dapat disembunyikan tanpa kecurigaan apapun. Tidak ada definisi standar dalam penghitungan nilai kompleksitas. Pada dasarnya ada tiga metode ukuran kompleksitas. Namun, tulisan ini berfokus pada ukuran kompleksitas berdasarkan panjang perbatasan hitam dan putih dalam
38
gambar biner (black-white border image complexity) (Kawaguchi et.al,1998). Total panjang perbatasan hitam dan putih adalah sama dengan penjumlahan dari jumlah perubahan warna di sepanjang baris dan kolom dalam gambar.
Gambar 2.12 Piksel Putih(W) yang Dikelilingi 4 Piksel Hitam(B) Pada gambar , sebuah piksel putih tunggal dikelilingi oleh 4 piksel hitam. Jadi ada total 4 perubahan warna dengan panjang perbatasan adalah 4. Perubahan warna yang dihitung adalah berdasarkan posisi atas, kanan, bawah, dan kiri. Secara horizontal dan vertikal, tidak secara diagonal.
Gambar 2.13 Semua Piksel Putih
Gambar 2.14 Papan Hitam-Putih
Dalam gambar 2.13,semua piksel putih. Akibatnya tidak ada perubahan warna di sepanjang baris dan kolom. Oleh karena itu, panjang total perbatasan nol. Jadi panjang perbatasan minimum nol. Pada gambar 2.14 ada alternatif piksel putih dan hitam yaitu gambar papan checker. Secara visual, perubahan warna total di sepanjang baris dan kolom adalah 24. Hal ini dapat juga dihitung dengan bantuan rumus-rumus. Persamaan untuk
39
panjang maksimum perbatasan untuk (2 ^ 2 ^ mx m) citra biner diberikan oleh 2 * 2 ^ m * (2 ^ m-1). Jadi, dalam kasus gambar 2.13 maupun 2.14, adalah gambar biner 4 x 4, sehingga nilai m = 2. Dengan menggunakan rumus, kita mendapatkan panjang maksimum untuk gambar 2.13 dan 2.14 sebagai 24. Kompleksitas gambar dilambangkan dengan 'α' dan diberikan oleh persamaan 2
2
2
1
Dimana ‘k’ adalah total panjang dari batas pada gambar dan α adalah jangkauan antara 0 dan 1. Dari ke dua gambar di atas tadi, diperoleh nilai α untuk gambar 2.13 adalah α = 0/24 = 0. Dan gambar 2.14 α = 24/24 = 1.
2.15 Contoh Gambar dengan Nilai Kompleksitas Antara 0 dan 1 Karena kedua gambar di atas memiliki ukuran 8x8, nilai m =3, maka nilai total panjang (k) adalah 2 x 8 x 7 = 112. Untuk kedua kondisi di atas diperoleh hasil gambar kiri memiliki α = 69/112 = 0,62. Sedangkan gambar kanan adalah α = 29/112 = 0,23. 2.7.4
Informative dan Noise-likeRegion Informative image berarti gambar yang simpel, sedangkan noise-like region berarti gambar yang kompleks. Hal ini hanya berlaku pada kasus
40
dimana sebuah gambar biner merupakan bagian dari sebuah gambar yang natural (Kawaguchi et.al, 1998). Kompleksitas sebuah area bit-plane adalah parameter yang digunakan dalam menentukan sebuah bit-plane merupakan informative atau noise-like region. Setelah menghitung kompleksitas masing-masing plane, kita dapat menentukan plane mana saja yang “informative” dan “noise-like”. Kita dapat menentukan nilai threshold (α0) sebagai batas penentuan nilai kompleksitas. Umumnya nilai threshold yang digunakan adalah α0 = 0,3. Sehingga dapat disimpulkan, semua plane yang memiliki nilai kompleksitas di bawah 0,3 adalah ‘informative region” dan yang memiliki kompleksitas di atas 0,3 adalah “noise-like region” yang dapat digunakan untuk penyembunyian data. Untuk threshold, semakin memiliki nilai maksimum 1 (kompleksitas maksimum) dan nilai minimum 0 (tdk ad kompleksitas). Semakin besar nilai threshold yang digunakan, maka semakin tinggi batasan noise yang diambil, sehingga jumlah noise yang bisa dimanfaatkan juga semakin sedikit. Namun pengaruhnya terhadap kualitas gambar stego adalah, gambar stego yang dihasilkan akan semakin baik kualitasnya, karena semakin sedikit noise yang diganti dengan pesan. Pada gambar 2.15, diperoleh bahwa gambar kiri adalah “noise-like region” sedangkan yang kanan adalah “informative region”.
41
2.7.5
OperasiKonjugasi pada Gambar Biner Citra biner terdiri dari wilayah informatif (informative region) dan wilayah noise (noise-like region). Pola informatif sederhana sementara daerah noise kompleks. Jika data rahasia adalah sebuah noise maka langsung tertanam dalam daerah noise dari gambar pembawa pesan. Jika data rahasia informatif maka harus menjalani operasi konjugasi untuk mengubahnya dengan pola yang kompleks. Baru kemudian ditanamkan pada daerah noise dari gambar pembawa. Konjugasi dari suatu gambar biner P adalah sebuah gambar biner lainnya yang memiliki nilai kompleksitas sebesar satu dikurangi nilai kompleksitas P. Misalkan sebuah gambar hitam-putih P berukuran 8x8 piksel memiliki warna background putih dan warna foreground hitam. W adalah pola dengan semua piksel berwarna putih dan B adalah pola dengan semua piksel berwarna hitam. Wc dan Bc adalah pola papan catur, dengan piksel pada bagian kiri atas berwarna putih pada Wc dan hitam pada Bc. P* adalah konjugasi dari gambar P.
Gambar 2.16 Ilustrasi Proses Konjugasi Dari Gambar 2.16 dapat dilihat bahwa P adalah gambar yang memiliki piksel background dengan pola W dan piksel foreground dengan pola B. P*
42
yang merupakan konjugasi dari P memiliki spesifikasi sebagai berikut (Kawaguchi et.al,1998): 1. Memiliki bentuk area foreground sama dengan P. 2. Memiliki pola area foreground sama dengan pola Bc 3. Memiliki pola area background sama dengan pola Wc. Untuk membangun sebuah konjugasi P* dari sebuah gambar P, dapat dilakukan dengan rumus berikut, dimana “ ” menandakan operasi exclusive OR (XOR). P* = P (P*)*
Wc = P
P* ≠ P Jika (P) adalah kompleksitas dari P, maka : 2.7.6
α(P*) = 1 - α(P)
Peta Konjugasi Peta konjugasi yang dibuat bertujuan untuk menjadi penanda dan petunjuk bagi program dalam proses deskripsi. Peta konjugasi akan ditempatkan secara permanen pada bagian noise pertama dari gambar penampung. Peta konjugasi juga dibuat dalam wujud bit-plane, dan akan dikonjugasi untuk menambah nilai kompleksitasnya. Baris pertama dari peta konjugasi akan diisi dengan nilai bit 1, yaitu 00000001, sebagai penanda bahwa gambar penampung yang bersangkutan sudah berisi pesan rahasia. Baris kedua berisi jumlah noise yang harus diterjemahkan kembali menjadi string pesan rahasia. Jumlah ini juga dibuat dalam bentuk
43
bit.Tambahkan penanda untuk menkonjugasikan plane noise terakhir jika dibutuhkan pada baris ke-3 pada peta. Sisa peta konjugasi akan diisi dengan nilai 00000000 sampai menjadi bit-plane, baru kemudian dikonjugasikan untuk menambah noise dan disisipkan menggantikan noise pertama dari gambar penampung. 2.7.7
Algoritma BPCS Algoritma Enkripsi pada BPCS (Kawaguchi, 1999) : i. Ubah gambar penampung dari sistem PBC menjadi sistem CGC. Sebelumnya, gambar tersebut dipotong terlebih dahulu menjadi bit-plane. Setiap bitplane mewakili bit dari setiap piksel. ii. Segmentasi informative
setiap dan
bit-plane noise
like
pada region
gambar
penampung
dengan
menjadi
menggunakan
nilai
batas/threshold (α0). iii. Bagi setiap byte pada data rahasia menjadi blok-blok(S). iv. Jika blok(S) tidak lebih kompleks dibandingkan dengan nilai batas, maka lakukan konjugasi terhadap S untuk mendapatkan S* yang lebih kompleks. v. Sisipkan setiap blok data rahasia ke bit-plane yang merupakan noise-like region. Kemudian simpan data konjugasi pada “conjugation map”. vi. Sisipkan juga pemetaan konjugasi yang telah dibuat. vii. Ubah gambar stego dari sistem CGC menjadi sistem PBC.
44
Proses ekstraksi data rahasia dapat dilakukan dengan menerapkan langkah-langkah penyisipan secara terbalik. Berikut algoritmanya : a. Ubah gambar stego dari sistem PBC menjadi sistem CGC. Sebelumnya, gambar tersebut dipotong terlebih dahulu menjadi bit-plane. Setiap bitplane mewakili bit dari setiap piksel. b. Segmentasi
setiap
informativedan
bit-plane
noise
like
pada
gambar
region
dengan
penampung
menjadi
menggunakan
nilai
batas/threshold (α0). Dimana bit-plane berisi pesan adalah noise region dari gambar stego. c. Terjemahkan peta konjugasi pada noise pertama. Hitung banyak noise yang harus diterjemahkan kembali menjadi pesan. d. Ubah bit-plane menjadi bit-bit per barisnya, kemudian terjemahkan menjadi string huruf pesan rahasia. Untuk noise terakhir berisi pesan, jika perlu dikonjugasi, maka lakukan konjugasi terlebih dahulu sebelum diterjemahkan menjadi pesan. e. Kumpulkan string-string pesan secara keseluruhan, kemudian susun kembali menjadi pesan rahasia.