BAB II LANDASAN TEORI 2.1 Steganografi Steganografi adalah seni dan ilmu menulis pesan tersembunyi atau menyembunyikan pesan dengan suatu cara 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. Kata "steganografi" berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis”. Kini, istilah steganografi termasuk penyembunyian data digital dalam berkas-berkas (file) komputer. Contohnya, si pengirim mulai dengan berkas gambar biasa, lalu mengatur warna setiap pixel ke-100 untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang menyadarinya jika ia tidak benar-benar memperhatikannya). Pada umumnya, pesan steganografi muncul dengan rupa lain seperti gambar, artikel, daftar belanjaan, atau pesan-pesan lainnya. Pesan yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi. Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak terlihat di antara garisgaris yang kelihatan. 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 7 8 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. Tujuan dari steganografi 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. Pada metode steganografi cara ini sangat berguna jika digunakan pada cara 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. Kelebihan steganografi jika dibandingkan dengan kriptografi adalah pesanpesannya tidak menarik perhatian orang lain. Pesan-pesan berkode dalam kriptografi yang tidak disembunyikan, walaupun tidak dapat dipecahkan, akan menimbulkan kecurigaan. Seringkali, steganografi dan kriptografi digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya. 9 Adapun proses yang biasa terjadi dalam proses steganografi sebagai berikut : covertext Encoding (embeddin) hiddentext covertext stegotext Decoding (extraction) key hiddentext key Gambar 2.1 Diagram Proses Steganografi Terdapat beberapa istilah yang berkaitan dengan steganografi. Hiddentext atau embedded message : pesan atau informasi yang disembunyikan. Covertext atau cover-object : pesan yang digunakan untuk menyembunyikan embedded message. Stegotext atau stego-object : pesan yang sudah berisi embedded message. Dalam steganografi digital, baik hiddentex atau covertext dapat berupa teks, audio, gambar, maupun video. Sebuah pesan steganografi (plaintext), biasanya pertama-tama dienkripsikan dengan beberapa arti tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext. Contohnya, ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext lainnya dapat dimanipulasi untuk membawa pesan tersembunyi; hanya penerima (yang harus mengetahui teknik yang digunakan) dapat membuka pesan dan mendekripsikannya. Penyembunyian data rahasia ke dalam citra digital akan mengubah kualitas citra tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah: 10 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, penambahan noise, 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 sewaktuwaktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut. Dalam data digital, teknik-teknik yang sering digunakan dalam steganografi modern ada empat jenis metode, yaitu : 1. Least Significant Bit Insertion (LSB) 2. Teknik Pixel Mapping (Metode RGB Level) 3. Mask and Filtering 4. Algorithms Compression and Transformation 2.2 Teknik LSB Salah satu metode steganografi yang banyak digunakan adalah metode modifikasi LSB (Least significant pixel modification). Metode modifikasi LSB 11 tergolong metode yang menggunakan teknik substitusi. Metode LSB terutama digunakan untuk steganografi berbasis media (media-based steganography). Metode LSB menyembunyikan data rahasia dalam pixel – pixel tak signifikan (least significant pixel) dari berkas wadah (cover). Pengubahan nilai pixel – pixel tak signifikan pada dasarnya memberikan pengaruh terhadap berkas wadah, tetapi karena perubahan yang terjadi sangat kecil, sehingga tidak tertangkap oleh indra manusia. Kenyataan inilah yang akhirnya dimanfaatkan sebagai teknik penyembunyian data atau pesan (steganografi). Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti dan berpengaruh terhadap informasi yang dikandungnya yaitu angka 1 yang terletak di paling depan. Bit ini sering disebut dengan istilah Most Significant Bit (MSB). Semakin ke kanan, bit-bit tersebut semakin kecil pengaruhnya terhadap keutuhan data yang dikandung dan bit yang paling kurang berarti dinamakan Least Significant Bit (LSB). “Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya.” Misalkan penyisipan pada citra 24-bit. Setiap pixel panjangnya 24 bit (3 x 3 byte, masing-masing komponen R (1 byte), G (1 byte), dan B (1 byte) ) Misal pixel berwarna merah : 00110011 10100010 11100010 Misalkan embedded message: 010 Encoding: 00110010 10100011 11100010 12 (pixel berwarna “merah berubah sedikit”, tidak dapat dibedakan secara visual dengan citra aslinya) Pada Steganografi dengan teknik LSB memiliki keuntungan dan kerugiannya tersendiri. Keuntungan : Mudah diimplementasikan dan proses encoding cepat Kelemahan : Tidak tahan terhadap pengubahan (modifikasi) terhadapcover object dan mudah dihapus karena lokasi penyisipan diketahui (bit LSB). 2.3 Format Gambar Terdapat beberapa jenis format gambar, dan dalam tugas akhir ini digunakan beberapa format seperti Bitmap, JPEG, dan PNG. 2.3.1 Bitmap (.bmp) Bitmap adalah representasi dari citra grafis yang terdiri dari susunan titik yang tersimpan di memori komputer. Dikembangkan oleh Microsoft dan nilai setiap titik diawali oleh satu bit data untuk gambar hitam putih, atau lebih bagi gambar berwarna. Kerapatan titik-titik tersebut dinamakan resolusi, yang menunjukkan seberapa tajam gambar ini ditampilkan, ditunjukkan dengan jumlah baris dan kolom, contohnya 1024x768. Untuk menampilkan citra bitmap pada monitor atau mencetaknya pada printer, komputer menterjemahkan bitmap ini menjadi pixel (pada layar) atau titik tinta (pada printer). Beberapa format file bitmap yang populer adalah BMP, PCX dan TIFF. 13 Monochrome bitmap Monochrome bitmap merupakan suatu file bitmap hitam dan putih. Monochrome bitmap merupakan susunan dari pixelpixel, akan tetapi setiap pixel hanya diisi oleh single atau satu bit. Monochrome bitmap biasanya digunakan untuk text bitmap atau gambar dengan satu warna. 2.3.2 JPEG (.jpg , .jpeg) 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. JPEG adalah salah satu dari dua standar format file gambar yang digunakan dalam halaman-halaman web, dan memang tepat digunakan untuk gambar-gambar yang melibatkan representasi gambar berkualitas fotografi. JPEG dapat disimpan dalam varian progresif yang memungkinkan untuk melakukan proses dekompresi secara perlahan dari suatu tampilan kasar sampai ke detil tampilan yang tertinggi. Keuntungan lain format JPEG adalah dapat diterima pada hampir semua program-program komputer, baik yang berbasis Windows maupun Apple Macintosh. Format JPEG tentu saja dapat diterima pada perangkat lunak Powerpoint, Word, Excel, dan sebagainya. 14 2.3.3 PNG (.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). Secara garis besar, format PNG mempunyai fitur sebagai berikut : Sebagai pengganti format GIF dan TIFF. Format terbuka atau open, efisien, gratis, dan kompresi jenis lossless. Tiga mode warna], yaiut : paletted (8 bit), greyscale (16 bit), truecolour (hinga 48 bit) Dukungan terhadap profile colour, gamma, dan metadata. Mempunyai fitur transparansi serta dukungan penuh terhadap alpha channel. Dukungan luas bagi software menipulasi grafis dan web browser. 2.4 Gambar RGB RGB adalah suatu model warna yang terdiri dari merah, hijau, dan biru, digabungkan dalam membentuk suatu susunan warna yang luas. Setiap warna dasar, misalnya merah, dapat diberi rentang-nilai. Untuk monitor komputer, nilai rentangnya paling kecil = 0 dan paling besar = 255. Pilihan skala 256 ini didasarkan pada cara mengungkap 8 digit bilangan biner yang digunakan oleh 15 mesin komputer. Dengan cara ini, akan diperoleh warna campuran sebanyak 256 x 256 x 256 = 1677726 jenis warna. Sebuah jenis warna, dapat dibayangkan sebagai sebuah vektor di ruang 3 dimensi yang biasanya dipakai dalam matematika, koordinatnya dinyatakan dalam bentuk tiga bilangan, yaitu komponen-x, komponen-y dan komponen-z. Misalkan sebuah vektor dituliskan sebagai r = (x,y,z). Untuk warna, komponen-komponen tersebut digantikan oleh komponen red, green dan blue. Jadi, sebuah jenis warna dapat dituliskan sebagai berikut: warna = RGB(30, 75, 255). Putih = RGB (255,255,255), sedangkan untuk hitam= RGB(0,0,0). 2.5 Matlab MATLAB adalah sebuah lingkungan komputasi numerikal dan bahasa pemrograman komputer generasi keempat. Dikembangkan oleh The MathWorks, MATLAB memungkinkan manipulasi matriks, pem-plot-an fungsi dan data, implementasi algoritma, pembuatan antarmuka pengguna, dan peng-antarmuka-an dengan program dalam bahasa lainnya. Meskipun hanya bernuansa numerik, sebuah kotak kakas (toolbox) yang menggunakan mesin simbolik MuPAD, memungkinkan akses terhadap kemampuan aljabar komputer. Sebuah paket tambahan, Simulink, menambahkan simulasi grafis multiranah dan Desain Berdasar-Model untuk sistem terlekat dan dinamik. 16 Berikut Tampilan dalam Matlab : Gambar 2.2 Tampilan Pada Matlab Dalam Pembuatan Sistem steganografi ini menggunakan GUI yang terdapat dalam matlab sebagai bantuan untuk membuat tampilan pada sistem steganografi tersebut. GUI atau graphical user interface merupakan suatu interface antara user atau pengguna untuk dapat berinteraksi dengan peralatan elektroniks melalui gambar daripada perintah teks. GUI dapat digunakan pada komputer dan beberapa peralatan elektronika seperti mp3 player, peralatan rumah tangga dan peralatan kantor. Sebuah GUI menggambarkan informasi dan langkah yang tersedia melalui gambar seperti icon. GUIDE atau GUI builder merupakan sebuah graphical user interface (GUI) yang dibangun dengan obyek grafik seperti tombol (button), kotak teks, slider, menu dan lain-lain. Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimana kerjanya. 17 GUIDE Matlab mempunyai kelebihan tersendiri dibandingkan dengan bahasa pemrogram lainnya, diantaranya: 1. GUIDE Matlab banyak digunakan dan cocok untuk aplikasi-aplikasi berorientasi sains, sehingga banyak peneliti dan mahasiswa menggunakan GUIDE Matlab untuk menyelesaikan riset atau tugas akhirnya. 2. GUIDE Matlab mempunyai fungsi built-in yang siap digunakan dan pemakai tidak perlu repot membuatnya sendiri. 3. Ukuran file, baik FIG-file maupun M-file, yang dihasilkan relatif kecil. 4. Kemampuan grafisnya cukup andal dan tidak kalah dibandingkan dengan bahasa pemrograman lainnya. Berikut beberapa step dalam pembuatan GUI pada matlab. 1. Klik File pada menu toolbar New GUI , seperti pada tampilan berikut : Gambar 2.3 Tampilan pada untuk membuat GUI 2. Kemudian akan muncul windows baru lagi, GUIDE Quick Start Pilih Blank GUI (Default) untuk membuat tampilan GUI baru, seperti gambar berikut : 18 Gambar 2.4 Tampilan GUIDE Quick Start 3. Kemudian akan ditampilkan layar baru untuk membuat tampilan GUI, seperti gambar berikut : Gambar 2.5 Tampilan untuk membuat GUI 19 Atau bisa dengan mengetik guide pada tampilan command windows kemudian klik enter untuk membuat tampilan GUI. Gambar 2.6 Tampilan guide pada Command Window Dan akan memunculkan GUIDE Quick start dan tampilan GUI seperti pada gambar 2.4 dan 2.5 . Tampilan pada layar GUI : Toolbar Layar GUI Tool Box Gambar 2.7 Tampilan layar untuk membuat GUI 20 Komponen palet pada GUIDE Matlab terdiri dari beberapa uicontrol (kontrol user interface), seperti pada bahasa pemrograman visual lainnya, yaitu: pushbutton, togglebutton, radiobutton, chexkboxes, edit text, static text, slider, frames, listboxes, popup menu, dan axes. Kita dapat meletakkan semua kontrol pada layout editor dan selanjutnya hanya tinggal mengaturnya melalui property inspector. Semua kontrol pada GUIDE dapat dimunculkan pada layout/figure dengan cara mendrag kiri kontrol yang diinginkan ke figure. Adapun penjelasan fungsi masing-masing kontrol adalah sebagai berikut: 1. Pushbutton Pushbutton merupakan jenis kontrol berupa tombol tekan yang akan menghasilkan tindakan jika diklik, misanya tombol OK, Cancel, Hitung, Hapus, dan sebagainya. Untuk menampilkan tulisan pada pushbutton kita dapat mengaturnya melalui property inspector dengan mengklik obeyek pushbutton pada figure, lalu mengklik toolbar property inspector atau menggunakan klik kanan lalu pilih property inspector. Selanjutnya isilaha tab string dengan label yang diinginkan, misalnya Hitung. 2. Toggle Button Toggle button memiliki fungsi yang sama dengan pushbutton. Perbedaanya adalah saat pushbutton ditekan, maka tombol akan kembali pada posisi semula jika tombol mouse dilepas, sedangkan pada toggle button, tombol tidak akan kembali ke posisi semula, kecuali kita menekannya kembali. 21 3. Radio Button Radio button digunakan untuk memilih atau menandai satu pilihan dari beberapa pilihan yang ada. Misalnya, sewaktu kita membuat aplikasi operasi Matematika (penjumlahan, pengurangan, perkalian, dan pembagian).. 4. Edit Text dan Static Text Edit text digunakan untuk memasukkan atau memodifikasi suatu text yang diinputkan dari keyboard, sedangkan static text hanya berguna untuk menampilkan text/tulisan, sehingga kita tidak bisa memodifikasi/mengedit text tersebut kecuali memalui property inspector. 5. Frames Frames merupakan kotak tertutup yang dapat digunakan untuk mengelompokkan kontrol-kontrol yang berhubungan. Tidak seperti kontrol lainnya, frames tidak memiliki rutin callback. 6. Checkboxes Kontrol checkboxes berguna jika kita menyediakan beberapa pilihan mandiri atau tidak bergantung dengan pilihan-pilihan lainnya. Contoh aplikasi penggunaan checkboxes adalah ketika kita diminta untuk memilih hobi. Karena hobi bisa lebih dari satu, maka kita dapat mengklik checkboxes lebih dari satu kali. 7. Slider Slider berguna jika kita menginginkan inputan nilai tidak menggunakan keyboarad, tetapi hanya dengan cara menggeser slider secara vertical maupun horizontal ke nilai yang kita inginkan. Dengan menggunakan 22 slider, kita lebih fleksibel dalam melakukan pemasukan nilai data karena kita dapat mengatur sendiri nilai max, nilai min, serta sliderstep. 8. Popup Menu Popop menu berguna menampilkan daftar pilihan yang didefinisikan pada String Propoerty ketika mengklik tanda panah pada aplikasi dan memiliki fungsi yang sama seperti radio button. Ketika tida dibukak, popup menu hanya menampilkan satu item yang menjadi pilihan pertama pada String Property. Popupmenu sangat bermanfaat ketika kita ingin memberi sebuah pilihan tanpa jarak, tidak seperti radiobutton. 9. Axes Axes berguna untuk menampilkan sebuah grafik atau gambar (image). Axes sebenarnya tidak masuk dalam UIControl, tetapi axes dapat deprogram agar pemakai dapat berinteraksi dengan axes dan obyek grafik yang ditampilkan melalui axes. MATLAB mengimplementasikan GUI sebagai sebuah figure yang berisi barbagai style obyek UIControl. Selanjutnya kita harus memprogram masingmasing obyek agar dapat bekerja ketika diaktifkan oleh pemakai GUI. Langkah dasar yang harus dikerjakan dalam membuat GUI adalah : 1. Mengatur layout komponen GUI Setelah kita membuka GUIDE Matlab dan telah menentukan template GUI, langkah selanjutnya adalah adalah mendesai figure dengan menggunakan komponen palet sesuai dengan kebutuhan, seperti p ushbutton, radiobutton, chexkboxes, edit text, static text, slider, frames, popup menu, axes, dan sebagainya. Selanjutnya kita dapat mengatur layout 23 masing-masing komponen, baik string(caption), font, color, size, dan sebagainya menggunakan property inspector. Jika kita telah selesai mendesain, jangan lupa untuk menyimpan file figure yang secara default akan memiliki ekstensi *.fig. Dari sini, matlab secara otomatis akan membuatkan sebuah m-file dengan nama yang sama, yaitu file berekstensi *.m. 2. Memprogram Komponen GUI M-file yang telah dibuat pada langkah sebelumnya, akan otomatis terbuka dan kita harus menulis programnya agar komponen kontrol dapat bekerja secara simultan. Untuk membuat program dalam m-file kita cukup memperhatikan fungsi-fungsi matlab bertanda callback dimana perintah disispkan. Dari langah-langkah dasar diatas, secara sederhana sebenarnya GUI Matlab dibentuk oleh dua buah file, yaitu fig-file dan m-file MATLAB memiliki sistem “help” yang ekstensif, memuat dokumentasi detil dan informasi “help” meliputi semua command dan fungsi di MATLAB. Sistem ini akan sangat membantu kita, baik yang pemula maupun ahli, untuk memahami fungsionalitas MATLAB yang belum pernah kita gunakan sebelumnya. Untuk mendapatkan help, terdapat 2 cara: melalui command window, dan melalui help browser. Untuk mendapatkan menu help ini kita dapat menekan tombol atau mengetik helpbrowser pada command windows dan akan menampilkan layar help. 24 Gambar 2.8 Tampilan menu Help Dengan adanya menu Help ini, user akan terbantukan dalam menggunakan program matlab untuk membuat beberapa aplikasi.