BAB 2 LANDASAN TEORI 2.1 Model Waterfall Menurut Pressman (2010, p39) model waterfall adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Berikut ini ada dua gambaran dari waterfall model. Fase-fase dalam model waterfall menurut referensi Pressman:
Gambar 2.1 Waterfall Pressman 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, termasuk rencana yang akan dilakukan.
8
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. 4. Construction Construction merupakan proses membuat kode. Coding atau pengkodean merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer. Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu software, artinya 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 untuk 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.
9
Sedangkan fase-fase model waterfall menurut referensi Sommerfille:
Gambar 2.2 Waterfall Sommerfille
1. Requirements Analysis and Definition Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh software yang akan dibangun. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemenelemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition. 2. System and Software Design Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer
10
harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari dua aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada user. Proses software design untuk mengubah kebutuhan-kebutuhan di atas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti dua aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. 3. Implementation and Unit Testing Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit. 4. Integration and System Testing Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer. Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing). 5. Operation and Maintenance Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari
11
error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada error kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
Kelebihan dari model ini adalah selain karena pengaplikasian menggunakan model ini mudah, kelebihan dari model ini adalah ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal proyek, maka Software Engineering (SE) dapat berjalan dengan baik dan tanpa masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan se-eksplisit yang diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal proyek lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang terbuang lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap selanjutnya. Kekurangan yang utama dari model ini adalah kesulitan dalam mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya. Masalah dengan waterfall : 1. Perubahan sulit dilakukan karena sifatnya yang kaku.
12
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 yaitu dengan proyek yang dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-proyek.
2.2 Steganografi Ilmu dan seni menyembunyikan informasi dengan cara menyisipkan pesan di dalam pesan lain yang bertujuan menghindari kecurigaan pihak ketiga yang tidak berkepentigan
terhadap
informasi
tertentu
(Baskara,
2007).
Steganografi
membutuhkan dua properti utama: wadah penampung dan informasi rahasia yang akan disembunyikan. Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, suara, teks, dan video. Informasi rahasia yang disembunyikan juga dapat berupa citra, suara, teks, atau video.
13
Gambar 2.3 Contoh Gambar yang Disisipi Pesan Adapun empat komponen utama steganografi: 1. Embedded message (hiddentext): pesan yang disembunyikan. 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
Gambar 2.4 Diagram Penyisipan dan Ekstraksi Pesan
hiddentext
14
Berikut adalah kriteria steganografi yang baik (Munir, 2004): 1. Imperceptible Keberadaan pesan tidak dapat dipersepsi oleh indra manusia. Jika pesan disisipkan ke dalam sebuah citra, citra yang telah disisipi pesan harus tidak dapat dibedakan dengan citra asli oleh mata. Begitu pula dengan suara, telinga haruslah mendapati perbedaan antara suara asli dan suara yang telah disisipi pesan. 2. Fidelity Mutu media penampung tidak berubah banyak akibat penyisipan. Perubahan yang terjadi harus tidak dapat dipersepsi oleh indra manusia. 3. Recovery Pesan yang disembunyikan harus dapat diungkap kembali. Tujuan steganografi adalah menyembunyikan informasi, maka sewaktu-waktu informasi yang disembunyikan ini harus dapat diambil kembali untuk dapat digunakan lebih lanjut sesuai keperluan.
2.2.1 Sejarah Steganografi Steganografi berasal dari bahasa Yunani, Steganos yang berarti tulisan tersembunyi (covered writing). Catatan tertua mengenai penggunaan steganografi tercatat pada masa Yunani kuno. Pada saat itu, penguasa Yunani, Histiaues, sedang ditawan oleh Raja Darius di Susa. Histiaeus ingin mengirim pesan rahasia kepada menantunya, Aristagoras, di Miletus. Untuk itu,
15
Histiaeus mencukur habis rambut budaknya dan menatokan pesan rahasia yang ingin dikirim di kepala budak tersebut. Setelah rambut budak tadi tumbuh cukup lebat, barulah ia dikirim ke Miletus. Cerita lain masih juga berasal dari zaman Yunani kuno. Medium tulisan pada saat itu adalah papan yang dilapisi lilin dan tulisan ditulisi di papan tersebut. Demeratus, perlu memberitahu Sparta bahwa Xerxes bermaksud untuk menginvasi Yunani. Agar pesan yang dikirimnya tidak diketahui keberadaannya, Demeratus melapisi lagi papan tulisannya dengan lilin. Papan tulisan yang terlihat masih kosong inilah yang dikirim ke Sparta. Tinta yang tidak nampak merupakan salah satu metode yang populer dalam bidang steganografi. Bangsa Romawi telah menggunakan tinta yang tidak nampak ini untuk menulis pesan di antara baris-baris pesan yang ditulis dengan tinta biasa. Tinta yang tidak nampak ini dapat terbuat dari sari jeruk atau susu. Ketika dipanaskan, warna tinta yang tidak tampak akan menjadi gelap dan tulisannya akan menjadi dapat terbaca. Tinta yang tidak tampak ini juga digunakan dalam Perang Dunia II. Steganografi terus berkembang selama abad kelima belas dan keenam belas. Pada masa itu, banyak penulis buku yang enggan mencantumkan namanya karena takut akan kekuatan penguasa pada saat itu. Pengembangan lebih jauh lagi mengenai steganografi terjadi pada tahun 1883 dengan dipublikasikannya kriptografi militer oleh Auguste Kerckhoffs. Meskipun sebagian besar berbicara mengenai kriptografi, Kerckhoffs
16
menjabarkan beberapa deskripsi yang patut dicatat ketika merancang sebuah sistem steganografi. Lebih jauh lagi, Les Filigranes, yang ditulis oleh Charle Briquet di tahun 1907, merupakan sebuah kamus sejarah dari watermark, salah satu wujud pengaplikasian steganografi.
2.2.2 Metode – Metode Steganografi 1.
Least Significant Bit (LSB) Bit atau digit biner adalah unit dasar penyimpanan data di dalam komputer, nilai bit suatu data adalah 0 atau 1. Semua data yang ada pada komputer disimpan ke dalam satuan bit ini, termasuk citra, suara, ataupun video. Format pewarnaan di dalam media gambar, seperti grayscale, RGB,
dan
CMYK,
juga
menggunakan
satuan
bit
ini
dalam
penyimpanannya. Sebagai contoh pewarnaan monochrome bitmap (menggunakan 1 bit untuk tiap pikselnya), RGB – 24 bit (8 bit untuk Red, 8 bit untuk Green, dan 8 bit untuk Blue), Grayscale-8 bit (menentukan tingkat kehitaman suatu piksel berdasarkan nilai bitnya). 2.
Low Bit Coding Cara ini mirip dengan LSB yaitu mengganti Least-Significant Bit namun file yang disisipi berupa audio file. Bedanya, jika pada gambar yang diganti adalah bit yang merepresentasikan warna, maka pada suara yang diganti adalah bit sampling dari file audio tersebut. Dengan metode ini keuntungan yang didapatkan adalah ukuran pesan yang disisipkan
17
relatif besar, namun berdampak pada hasil audio yang berkualitas kurang dengan banyaknya noise. 3.
Phase Coding Metode lain dalam steganografi audio adalah merekayasa fase dari sinyal masukan. Teori yang digunakan adalah dengan mensubstitusi awal fase dari tiap awal segmen dengan fase yang telah dibuat sedemikian rupa dan merepresentasikan pesan yang disembunyikan. Fase dari tiap awal segmen ini dibuat sedemikian rupa sehingga setiap segmen masih memiliki hubungan yang berujung pada kualitas suara yang tetap terjaga. Teknik ini menghasilkan keluaran yang jauh lebih baik daripada metode pertama namun dikompensasikan dengan kerumitan dalam realisasinya.
4.
Echo Hiding Metode lain yang sering digunakan adalah menyembunyikan pesan melalui teknik echo. Teknik menyamarkan pesan ke dalam sinyal yang membentuk echo. Kemudian pesan disembunyikan dengan memvariasikan tiga parameter dalam echo yaitu besar amplitudo awal, tingkat penurunan atenuasi, dan offset. Dengan adanya offset dari echo dan sinyal asli maka echo akan tercampur dengan sinyal aslinya, karena sistem pendengaran manusia yang tidak memisahkan antara echo dan sinyal asli.
18
5.
Spread Spectrum Metode terakhir adalah Metode Spread Spectrum, adalah metode yang akan dibahas dalam penelitian ini, yaitu sebuah teknik pentransmisian independen
dengan
menggunakan
terhadap data
informasi,
pseudonoise
code,
sebagai modulator
yang bentuk
gelombang untuk menyebarkan energi sinyal dalam sebuah jalur komunikasi (bandwidth) yang lebih besar daripada sinyal jalur komunikasi informasi. Oleh penerima, sinyal dikumpulkan kembali menggunakan replika pseudonoise code tersinkronisasi. Berdasarkan definisi, dapat dikatakan bahwa steganografi menggunakan Metode Spread Spectrum memperlakukan cover-object baik sebagai derau (noise) ataupun sebagai usaha untuk menambahkan derau semu (pseudonoise) ke dalam cover-object. Proses penyisipan pesan menggunakan Metode Spread Spectrum ini terdiri dari tiga proses, yaitu spreading, modulasi, dan penyisipan pesan ke citra JPEG. Sedangkan Proses ekstraksi pesan menggunakan Metode Spread Spectrum ini terdiri dari tiga proses, yaitu pengambilan pesan dari matriks frekuensi, demodulasi, dan despreading.
19
2.2.2.1 Implementasi Perhitungan Metode Spread Spectrum pada Gambar Berikut gambaran mengenai perhitungan yang terjadi di dalam Metode Spread Spectrum. Pada proses encode dapat digambarkan sebagai berikut. Dengan sebuah gambar dengan format JPEG, isi pesan “test”, kata kunci "sonny". Fungsi akan membaca pesan yang dimasukkan dan mengecek ukuran pesan yang dimasukkan apakah lebih kecil dari ukuran gambar pada yaitu memasukkan ke dalam rumus: Panjang Pesan = ((ukuran Pesan) + 28) * 4 * 8 Angka 28 adalah untuk tag pemberian tanda pada gambar yang sudah disisipkan, angka 4 adalah besar faktor pengali yang berguna untuk penyebaran bit serta angka 8 adalah bit gambar. Setelah
mengecek
ukuran
file
selesai
kemudian
dilakukan pengecekan ukuran gambar, metode steganografi yang digunakan dan kata kunci, jika syarat semua sudah terpenuhi dilanjutkan ke dalam proses penyisipan. Sebelum penyisipan dilakukan, fungsi akan membaca gambar dan mengambil header dari gambar JPEG yang sudah disiapkan sebelumnya, kemudian gambar dari body ini nanti yang akan disisipi pesan. Sebelum proses penyebaran, yang dilakukan adalah mengubah pesan ke bentuk biner. Hasil pengkonversian biner dari pesan "test" adalah
20
01110100 01100101 01110011
01110100. Kemudian biner
pesan disebar dengan besaran skalar pengalinya empat, sehingga akan menghasilkan segmen baru, yaitu: 00001111111111110000111100000000 00001111111100000000111100001111 00001111111111110000000011111111 00001111111111110000111100000000 Kemudian langkah selanjutnya adalah pembangkitan pseudonoise dengan bibit pembangkitan yang ditentukan berdasarkan kata kunci “sonny”.
Setelah mendapatkan nilai dari kata kunci (101), kemudian nilai tersebut digunakan sebagai bibit awal pembangkitan bilangan acak. Perhitungan pembangkitan bilangan acak sesuai dengan rumus pembangkitan bilangan acak LCG adalah sebagai berikut: Xn+1 = (aXn + c) mod a = 17 c=7 m =84 Xn = bilangan bulat ke-n
21
Perhitungannya adalah sebagai berikut. X1 = (17 * 101 + 7) mod 84 hasilnya X1 = 44 X2 = (17 * 44 + 7) mod 84 hasilnya X2 = 83 X3 = (17 * 83 + 7) mod 84 hasilnya X3 = 74 X4 = (17 * 74 + 7) mod 84 hasilnya X4 = 5 X5 = (17 * 5 + 7) mod 84 hasilnya X5 = 8 Demikian seterusnya untuk X6, X7, X8...Xn Sebagai contoh dilakukan lima kali penyebaran dan hasilnya hasilnya adalah “44 83 74 5 8” jika diubah dalam bentuk biner menjadi “00101100 01010011 01001010 00000101 00001000.” Untuk mendapatkan
hasil modulasi, segmen pesan akan
dimodulasi dengan pseudonoise signal menggunkan fungsi XOR (Exlusive OR). Segmen pesan: 00001111111111110000111100000000 00001111111100000000111100001111 00001111111111110000000011111111 00001111111111110000111100000000 Pseudonoise signal: 0010110001010011010010100000010100001000 Maka hasil proses modulasi antara segmen pesan dengan pseudonoise signal menggunakan fungsi XOR adalah 00100011101011000100010100000101 00000111111100000000111100001111 00001111111111110000000011111111 00001111111111110000111100000000
22
Hasil dari proses modulasi inilah yang akan disisipkan ke bit-bit gambar. Sebagai contoh, misalkan mengambil sepuluh piksel dari gambar dan mengambil tiga puluh bit pertama dari modulasi antara segmen pesan dan pseudonoise signal. Red = 180 181 185 182 181 183 186 184 184 187 Green = 166 172 174 171 170 173 176 174 176 179 Blue = 163 169 172 169 168 171 175 173 174 177 Kemudian diubah menjadi biner dan disisipkan hasil proses modulasi antara segmen pesan dengan pseudonoise signal menjadi sebagai berikut.
Langkah tersebut berlanjut sampai modulasi antara segmen pesan dan pseudonoise signal disisipkan semua. Proses terakhir setelah proses terakhir penyisipan adalah mengembalikan header supaya gambar tidak mengalami kerusakan. Pada proses ekstraksi prosesnya adalah kebalikan dari proses encode. Pilih gambar yang akan diekstrak, gunakan kata
23
kunci yang sama seperti saat encode yaitu “sonny”. Langkah awal adalah membaca gambar apakah gambar tersebut sudah pernah disisipi gambar atau belum. Apabila belum kemudian suatu fungsi akan mengambil header gambar terlebih dahulu, selanjutnya pada body gambar dilakukan proses penyaringan agar mendapatkan
bit-bit
hasil
modulasi.
Hasil
dari
proses
penyaringan yang dilakukan akan mendapatkan bit-bit sebagai berikut: 00100011101011000100010100000101 00000111111100000000111100001111 00001111111111110000000011111111 00001111111111110000111100000000 Setelah semua bit-bit hasil modulasi diperoleh, kemudian dilakukan proses demodulasi dengan pseudonoise signal dari kata kunci yang sama pada proses modulasi agar memperoleh bit-bit yang berkorelasi. Hasil penyaringan: 00100011101011000100010100000101 00000111111100000000111100001111 00001111111111110000000011111111 00001111111111110000111100000000 Pseudonoise signal: 0010110001010011010010100000010100001000 Hasil demodulasi: 00001111111111110000111100000000 00001111111100000000111100001111 00001111111111110000000011111111 00001111111111110000111100000000
24
Proses berikutnya membagi empat hasi demodulasi, yang berguna untuk menyusutkan hasil demodulasi menjadi isi pesan yang sebenarnya. Proses penyusutan (de-spreading) segmen tersebut menjadi: 01110100 01100101 01110011 01110100 Hasil akhir “01110100 01100101 01110011 01110100” merupakan segmen pesan yang sama ketika disembunyikan pada proses encode. Hasil tersebut kemudian diubah ke bentuk karakter akan menjadi “test”.
2.2.2.2 Kelebihan dan Kelemahan Metode Spread Spectrum Kelebihan Spread Spectrum (M.A. Ineke Pakereng, 2011) adalah 1. Metode ini cukup sederhana untuk proses steganografi. 2. Proses embedding dan ekstraksi relatif cepat. 3. Cukup tangguh dalam menghadapi berbagai serangan analisis statistik, karena informasi yang disembunyikan disebarkan dalam seluruh gambar tanpa mengganti properti statistik dari gambar yang disisipi informasi rahasia (Vembrina, 2006). Sedangkan kekurangannya adalah kompleksitas dalam proses perhitungan. Menurut Morkel, Eloff & Olivier (2005) terdapat perbandingan antara metode – metode steganografi.
25
Tabel 2.1 Perbandingan antara Metode-metode Steganografi dalam Medium Gambar
Metode steganografi yang ideal hendaknya mendapatkan predikat high di setiap spesifikasi. Sayangnya, dari metodemetode yang dievaluasi, tidak ada metode yang dapat memenuhi setiap spesifikasi yang ada. Akan ada spesifikasi yang perlu dikorbankan untuk dapat memenuhi spesifikasi yang lain. Spesifikasi yang diutamakan dapat dipilih sesuai keperluan. Catatan mengenai Spread Spectrum adalah sebagai berikut. Metode Spread Spectrum memenuhi sebagian besar spesifikasi terutama kokoh terhadap serangan analisis statistik, karena informasi yang disembunyikan disebarkan dalam seluruh gambar tanpa mengganti properti statistik dari gambar yang disisipi informasi rahasia (Vembrina, 2006).
26
2.3 Citra Digital Menurut Yusron (2011), citra digital merupakan fungsi intensitas cahaya f(x,y) pada bidang 2D, dimana harga x dan y merupakan koordinat spasial dan nilai fungsi tersebut pada setiap titik (x,y) merupakan tingkat kecemerlangan citra pada titik tersebut. Ada dua macam citra: 1. Citra Kontinu - Dihasilkan dari sistem optik yang menerima sinyal analog - Contoh : mata manusia, kamera analog 2. Citra Diskrit / Digital - Dihasilkan melalui proses digitalisasi terhadap citra kontinu - Contoh : kamera digital, scanner
Gambar 2.5 Citra Kontinu & Diskrit
27
Berikut ilustrasi citra digital.
Gambar 2.6 Citra Digital Suatu citra berukuran N x M piksel dengan intensitas beragam pada tiap pikselnya, direpresentasikan secara numerik dengan matriks terdiri dari N baris dan M kolom.
Gambar 2.7 Matriks Piksel Pada Citra
28
Berikut adalah ilustrasi piksel.
Gambar 2.8 Ilustrasi Piksel
2.3.1 Format-format Citra Digital Macam-macam format gambar digital. 1) BMP (Bitmap) Tipe file BMP umum digunakan pada sistem operasi Windows. 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:
29
1. Desktop background di windows. 2. Sebagai gambar sementara yang mau diedit ulang tanpa menurunkan kualitasnya. File BMP tidak cocok digunakan untuk: 1. Web atau blog, perlu dikonversi menjadi JPG, GIF, atau PNG. 2. Disimpan di harddisk/flashdisk tanpa di ZIP/RAR,
2) JPG/JPEG (Joint Photographic Experts Group) Tipe file JPEG sangat sering digunakan untuk web atau blog. File JPEG menggunakan teknik kompresi yang menyebabkan kualitas gambar turun (lossy compression). Setiap kali menyimpan ke tipe JPEG dari tipe lain, ukuran gambar biasanya mengecil, tetapi kualitasnya turun dan tidak dapat dikembalikan lagi. Ukuran file JPEG dapat turun menjadi sepersepuluhnya setelah dikonversi menjadi JPEG. Meskipun dengan penurunan kualitas gambar, pada gambar-gambar tertentu (misalnya pemandangan), penurunan kualitas gambar hampir tidak terlihat mata. File JPEG cocok digunakan untuk: 1. Gambar yang memiliki banyak warna, misalnya foto wajah dan pemandangan. 2. Gambar yang memiliki gradien, misalnya perubahan warna yang perlahanlahan dari merah ke biru. File JPEG tidak cocok digunakan untuk:
30
1. Gambar yang hanya memiliki warna sedikit seperti kartun atau komik. 2. Gambar yang memerlukan ketegasan garis seperti logo.
3) GIF (Graphics Interchange Format) 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. Pada program Microsoft Paint, tidak ada fasilitas penyesuaian warna yang digunakan (color table) sehingga menyimpan file GIF di Microsoft Paint seringkali menghasilkan gambar yang terlihat rusak atau berubah warna. Pada program pengolah gambar yang lebih baik, seperti Adobe Photoshop, color table bisa diatur otomatis atau manual sehingga gambar tidak berubah warna atau rusak. File GIF cocok digunakan untuk: 1. Gambar dengan jumlah warna sedikit (di bawah 256). 2. Gambar yang memerlukan perbedaan warna yang tegas seperti logo tanpa gradien. 3. Gambar animasi sederhana seperti spanduk-spanduk iklan, header, dan sebagainya.
31
4. Print shoot (hasil dari print screen) dari program-program simpel dengan jumlah warna sedikit. File GIF tidak cocok digunakan untuk: 1. Gambar yang memiliki banyak warna seperti pemandangan. 2. Gambar yang di dalamnya terdapat warna gradien atau semburat.
4) PNG (Portable Network Graphics) Tipe file PNG merupakan solusi kompresi yang powerfull dengan warna yang lebih banyak (24 bit RGB + alfa). Berbeda dengan JPEG yang menggunakan teknik kompresi yang menghilangkan data, file PNG menggunakan kompresi yang tidak menghilangkan data (lossles compression). Kelebihan file PNG adalah adanya warna transparan dan alfa. Warna alfa memungkinkan sebuah gambar transparan, tetapi gambar tersebut masih dapat dilihat mata seperti samar-samar atau bening. File PNG dapat diatur jumlah warnanya 64 bit (true color + alfa) sampai index 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. File PNG cocok digunakan untuk: 1. Gambar yang memiliki warna banyak. 2. Gambar yang mau diedit ulang tanpa menurunkan kualitas.
32
2.4 Peak Signal to Noise Ratio Peak Signal to Noise Ratio (PSNR) adalah perbandingan antara nilai maksimum yang diukur dengan besarnya error yang berpengaruh pada sinyal tersebut. PSNR biasanya diukur dalam satuan desibel. PSNR digunakan untuk mengetahui kualitas citra hasil kompresi. o Mean Square Error (MSE), yaitu sigma dari jumlah error antara citra hasil kompresi dan citra asli.
Di mana: MSE M N (x,y) I I’
= nilai Mean Square Error citra = panjang citra (piksel) = lebar citra (piksel) = koordinat masing – masing piksel = nilai bit dari citra pada koordinat (x,y) = nilai bit dari citra terkompresi pada koordinat (x,y)
o Peak Signal to Noise Ratio (PSNR)
Nilai MSE yang rendah akan lebih baik, sedangkan nilai PSNR yang tinggi akan lebih baik.
33
2.5 Aplikasi Mobile Mobile dalam bahasa Indonesia berarti berpindah. Jadi aplikasi mobile, aplikasi yang tetap dapat berjalan atau dijalankan meskipun pengguna berpindah, karena perangkat mobile nirkabel sehingga memiliki keunggulan dalam perpindahan. 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. Menurut Romdoni (2010), 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 setangguh rekan mereka yaitu desktop. 4. Mengkonsumsi daya yang rendah Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop. 5. Kuat dan dapat diandalkan
34
Karena perangkat mobile selalu dibawa ke mana 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 kebanyakan dari mereka selalu menyala.
2.6 Android Beberapa tahun belakangan ini, Android sedang naik daun, dan dapat dikatakan merupakan sistem operasi yang sedang berkembang pesat di dunia. Perkembangan Android tidak terlepas dari berkembangnya pasar mobile phone dan tablet yang sedang booming belakangan ini. Hal tersebutlah yang mengangkat pamor sistem operasi Android yang terkenal juga karena sifatnya open source, yang berarti berbagai developer perangkat mobile phone dan tablet dapat mengembangkan sistem operasi tersebut secara bebas.
2.6.1 Sejarah Android Pada tahun 2003, Andy Rubin, Rich Miner, Nick Sears, dan Chris White bekerja sama membuat sistem operasi untuk perangkat mobile. Walaupun dimulai dengan tidak begitu menjanjikan , segalanya berubah dengan cepat ketika Andy
35
Rubin – yang sudah terlebih dahulu memiliki sistem operasi yang dijalankan pada sebuah mobile phone yang dikenal dengan Sidekick – membawakan kuliah yang dihadiri oleh Larry Page dan Sergei Brin, pendiri Google. Kedua orang ini sangat tertarik dengan materi yang dibawakan oleh Rubin. Meskipun saat itu Google sama sekali tidak membuat ponsel saat itu. Pada Juli 2005, dengan kemampuan dana yang besar, tidak sulit bagi Google untuk mendapatkan perusahaan kecil myang didirikan Rubin. Di bawah kendali Google, perjalanan Android dimulai pada tahun 2007, Google mulai mendaftar paten di bidang telepon seluler. Langkah Google ini tentu mengundang banyak perhatian dan segera beredar kabar bahwa Google akan segera membuat ponsel untuk bersaing dengan ponselponsel yang ada. Rumor tersebut ternyata keliru besar karena Google sama sekali tidak membuat ponsel waktu itu, tetapi mengembangkan sistem operasi yang akan digunakan untuk ponsel. Ponsel pertama yang menggunakan sistem operasi dari Google justru datang dari HTC dengan seri HTC Dream atau T-Mobile G1 yang diluncurkan pada 2008. Google sendiri baru mengeluarkan ponselnya sendiri yang dinamakan Nexus One pada tahun 2010. Ponsel tersebut tidak dibuat sendiri oleh Google, melainkan merupakan hasil kerja sama dengan HTC. Berbeda dengan sistem operasi lain, Android berkembang sangat cepat dan secara konsisten mengeluarkan versi-versi yang terus diperbarui dalam waktu yang cukup singkat. Nama – nama yang digunakan untuk versi Android-pun
36
cukup unik karena menggunakan nama makanan dan huruf awalnya disusun berdasarkan abjad sehinggamudah untuk mengetahui versi mana yang lebih baru. (Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, dan seterusnya).
2.6.2 Lisensi pada Android Sistem operasi Android adalah sistem operasi yang open source, tetapi pada kenyataannya Google juga menerapkan lisensi terhadap pembuat hardware yang menggunakan Android, yang tentunya sedikit banyak akan mempengaruhi terhadap layanan yang akan didapatkan oleh user. Google menerapkan dua jenis lisensi, yaitu GMS (Google Mobile Services) dan OHD (Open Handset Develpment). GMS didukung secapa penuh oleh Google di mana user akan mendapat sistem operasi Android yang terhubung dengan layanan Google Account. Terhubung dengan Google Account, akan membuat perangkat yang digunakan oleh user mendapatkan berbagai layanan seperti Android Market, Gmail, Google Contact, Google Calendar, dan Google Maps. Layanan – layanan Google tersebut adalah daya tarik utama sistem operasi Android. Lisensi GMS, membutuhkan biaya yang harus dibayarkan oleh vendor hardware kepada Google. Berbeda dengan lisensi GMS, lisensi OHD, vendor bisa menggunakan sistem operasi Android secara gratis tanpa harus membayar kepada Google. Karena alasan inilah, banyak vendor hardware menggunakan lisensi ini. Kekurangan
37
utama dari jenis lisensi OHD adalah tidak adanya dukungan yang diberikan oleh Google, sehingga user tidak dapat menikmati layanan seperti Android Market, Google Maps, dll. Walaupun tidak mendapat dukungan dari Google, mobile phone atau perangkat yang mengunakan lisensi OHD tetap bisa menggunakan aplikasi-aplikasi yang dibangun untuk Android. Hal tersebut dapat terjadi karena sistem Android sangat bebas, di mana user bisa mendapatkan aplikasi dari tempat lain secara sah, tanpa melalui Android Market.