BAB II LANDASAN TEORI
2.1
Steganografi Steganografi berasal dari Bahasa Yunani, yaitu kata steganos yang artinya
tulisan tersembunyi (covered writing) dan kata graphos yang berarti tulisan. Sehingga steganografi adalah ilmu dan seni menyembunyikan pesan rahasia lain sehingga ke-beradaan pesan rahasia tersebut tidak diketahui (Munir, 2006). Sedangkan menurut Doni Ariyus (2006), steganografi sendiri merupakan cabang ilmu yang mempelajari bagaimana menyimpan informasi rahasia didalam informasi lainnya. Pada era ini, steganografi diaplikasikan pada pengiriman pesan berupa text, citra, audio dan video. Dan pesan tersebut disembunyikan kedalam media penampung seperti citra, audio dan video. Steganografi yang dibahas pada skripsi ini adalah penyembunyian pesan rahasia kedalam suatu citra digital. Ada beberapa istilah yang berkaitan dengan steganografi (Munir, 2006) yaitu: 1. Embedded Message Pesan atau informasi yang disembunyikan. Contohnya dapat berupa teks gambar, suara, video, dll. 2. Cover – object Pesan yang digunakan untuk menyembunyikan embedded message. Contohnya dapat berupa teks, gambar, suara, video, dll. 3. Stego – object Pesan yang sudah berisi pesan embedded message. Untuk menyisipkan data yang ingin disembunyikan membutuhkan dua buah arsip yaitu arsip pertama adalah media penampung seperti citra, suara, video dan sebagainya yang terlihat tidak mencurigakan untuk menyimpan pesan rahasia. Arsip 7
http://digilib.mercubuana.ac.id/
8 kedua adalah pesan yang ingin disembunyikan yaitu media penampungnya berupa citra yang disebut cover-image dan citra yang telah disisipi pesan disebut stegoimage
Gambar 2.1.Proses penyembunyian pesan rahasia ke dalam media digital dengan teknik steganografi Secara umum, terdapat dua proses didalam steganografi, yaitu proses embedding untuk menyisipkan pesan ke dalam cover – object dan proses decoding untuk ekstraksi pesan dari stego – object. Kedua proses ini mungkin memerlukan kunci rahasia yang dinamakan stegokey agar hanya pihak yang berhak saja yang dapat melakukan penyisipan dan ekstraksi pesan.
Gambar 2.2 (a) Skema embedding, (b) Skema extraction
http://digilib.mercubuana.ac.id/
9 2.2
Metode Steganografi 2.2.1 Least Significant Bit (LSB) Penyembunyian data dilakukan dengan mengganti bit-bit data yang tidak
terlalu berpengaruh di dalam segmen citra dengan bit-bit data rahasia (Jonathan Cummins, 2004), Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (most significant bit atau MSB) dan bit yang paling kurang berarti (least significant bit atau LSB). Berikut contoh sebuah susunan bit pada sebuah byte: 11010010 MSB = Most Significant Bit
LSB = Least Significant Bit
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 byte tersebut menyatakan warna merah, maka perubahan satu bit LSB tidak mengubah warna merah tersebut secara berarti. Lagi pula, mata manusia tidak dapat membedakan perubahan yang kecil. Misalkan segmen data citra sebelum perubahan: 00110011 10100010 11100010 10101011 00100110 10010110 11001001 11111001
10001000 10100011
Segmen data citra setelah pesan ‘1110010111‘ disembunyikan: 00110011
10100011 11100011
10010111 11001000 11111001
1 0101010
00100110
10001001 10100011
http://digilib.mercubuana.ac.id/
10 Untuk memperkuat teknik penyembunyian data, bit-bit data rahasia tidak digunakan mengganti byte-byte yang berurutan, namun dipilih susunan byte secara acak. Misalnya jika terdapat 50 byte dan 6 bit data yang akan disembunyikan, maka maka byte yang diganti bit LSB-nya dipilih secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49. 41
42
43
44
45
46
47
48
49
50
31
32
33
34
35
36
37
38
39
40
21
22
23
24
25
26
27
28
29
30
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
Gambar 2.3 Proses penempatan bit pesan Untuk
membangkitkan
bilangan
acak
maka
digunakan
algoritma
pembangkit bilangan acak semu (pseudo-random number generator). X n+1 = (aX0+ c) mod p dimana X n+1, adalah bilangan acak yang dihasilkan. P adalah jumlah pixel dikali 3 (tiga), dimana tiap pixel citra 24 bit memiliki Tiga komponen warna yaitu red, green, dan blue masing-masing 1 byte (8 bit). a adalah pengali ( multiplier) c adalah penambah ( increment) X 0 adalah nilai awal ( seed or start value ) Ukuran data yang akan disembunyikan bergantung pada ukuran citra penampung. Pada citra 24-bit yang berukuran 256 x 256 pixel terdapat 65536 pixel, setiap pixel berukuran 3 byte (komponen RGB), berarti seluruhnya ada 65536 x 3 =
http://digilib.mercubuana.ac.id/
11 196608 byte. Karena setiap byte hanya bisa menyembunyikan satu bit di LSB-nya, maka ukuran data yang akan disembunyikan di dalam citra maksimum 196608/8 = 24576 byte Ukuran data ini harus dikurangi dengan panjang nama berkas, karena penyembunyian data rahasia tidak hanya menyembunyikan isi data tersebut, tetapi juga nama berkasnya. Untuk memperkuat keamanan, data yang akan disembunyikan dapat dienkripsi terlebih dahulu. Sedangkan untuk memperkecil ukuran data, data dimampatkan sebelum disembunyikan. Bahkan, pemampatan dan enkripsi dapat juga dikombinasikan sebelum melakukan penyembunyian data. Pesan tersebut akan disisipkan dengan menggunakan metode EOF, sehingga citra menjadi: 2.3
Citra Citra adalah suatu representasi (gambaran), kemiripan atau imitasi dari
suatu objek. Citra yang berupa keluaran dari suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal – sinyal video seperti gambar pada monitor televisi atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan (Sutoyo, 2009). 2.3.1 Pengertian Citra Digital Citra digital adalah citra yang bersifat diskrit yang dapat diolah oleh komputer yang merupakan suatu array dari bilangan yang merepresentasikan intensitas terang pada point yang bervariasi (pixel). Citra ini dapat dihasilkan melalui kamera digital dan scanner ataupun citra yang telah mengalami proses digitalisasi. Citra digital disimpan juga secara khusus di dalam file 24 bit atau 8 bit. Citra 24 bit menyediakan lebih banyak ruang untuk menyembunyikan informasi (Sutoyo,2009). 2.3.1.1 Jenis – Jenis Citra Digital Berdasarkan warna – warna penyusunannyan, citra digital dapat dibagi menjadi tiga macam (Wildan, 2010) yaitu:
http://digilib.mercubuana.ac.id/
12 1. Citra Biner Citra biner adalah citra yang hanya memiliki 2 warna, yaitu hitam dan putih.
Oleh
karena
itu,
setiap
pixel
pada
citra
biner
cukup
direpresentasikan dengan 1 bit.
(a)
(b)
Gambar 2.4 (a) Citra biner, (b) Representasi citra biner Alasan penggunaan citra biner adalah karena citra biner memiliki sejumlah keuntungan sebagai berikut: a. Kebutuhan memori kecil karena nilai derajat keabuan hanya membutuhkan representasi 1 bit. b. Waktu pemrosesan lebih cepat di bandingkan dengan citra hitam – putih ataupun warna. 2.
Citra Grayscale Citra grayscale adalah citra yang nilai pixel-nya merepresentasikan derajat keabuan atau intensitas warna putih. Nilai intensitas paling rendah merepresentasikan warna hitam dan nilai intensitas paling tinggi merepresentasikan warna putih. Pada umumnya citra grayscale memiliki kedalaman pixel 8 bit (256 derajat keabuan), tetapi ada juga citra grayscale
http://digilib.mercubuana.ac.id/
13 yang kedalaman pixel-nya bukan 8 bit, misalnya 16 bit untuk penggunaan yang memerlukan ketelitian tinggi. Gambar 2(a) adalah contoh citra grayscale. 3. Citra Warna Citra warna adalah citra yang nilai pixel-nya merepresentasikan warna tertentu. Setiap pixel pada citra warna memiliki warna yang merupakan kombinasi dari tiga warna dasar RGB (red, green, blue). Setiap warna dasar menggunakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna mempunyai gradasi sebanyak 255 warna. Berarti setiap pixel mempunyai kombinasi warna sebanyak 28.28.28= 224 = 16 juta warna lebih. Itulah yang menjadikan alasan format ini disebut dengan true color karena mempunyai jumlah warna yang cukup besar sehingga bisa dikatakan hampir mencakup semua warna di alam. Gambar 2(b) adalah contoh citra warna.
Gambar 2.5 (a) Citra grayscale, (b) Citra warna
http://digilib.mercubuana.ac.id/
14 2.4
Matlab
Gambar 2.6 Gambar Aplikasi Matlab
Matlab (mathematics laboratory) merupakan Bahasa pemrograman yang digunakan untuk mengerjakan operasi matematika atau operasi aljabar matriks (Hasan, 2005)
Gambar 2.7 Gambaran Tampilan Awal Matlab
Untuk pengembangan algoritma, matlab menyediakan antarmuka command line, sebuah fungsi manipulasi string dan bilangan, 2D dan 3D plooting function dan kemampuan untuk membuat tampilan GUI (graphical user interface).(Wahana Komputer, 2013)
http://digilib.mercubuana.ac.id/
15 GUIDE atau GUI builder merupakan sebuah graphical user interface (GUI) yang dibangun dengan obyek grafis seperti tombol (button), kotak teks, slider, sumbu (axes), maupun menu. Sebagai contoh, ketika menggerakkan slider, maka kita dapat melihat perubahan sebuah nilai. Kemudian, ketika kita menekan tombol OK, maka aplikasi kita akan dijalankan.
Gambar 2.8 Tampilan GUI Aplikasi Matlab
Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimana perintah bekerja. Tidak seperti Bahasa pemrograman lainnya, GUIDE matlab memiliki banyak keunggulan tersendiri, antara lain : 1.
GUIDE matlab banyak digunakan dan cocok untuk aplikasi-aplikasi berorientasi sains, sehingga banyak peneliti atau mahasiswa, baik S1, S2 maupun S3, menggunakan GUIDE matlab untuk menyelesaikan riset atau tugas akhirnya.
2.
Matlab memiliki banyak 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.
http://digilib.mercubuana.ac.id/
16 4.
Kemampuan grafisnya cukup andal dan tidak kalah dibandingkan Bahasa pemrograman lainnya. (Sugiharto, 2006)
2.5
Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak adalah suatu disiplin ilmu yang membahas
semua aspek produksi perangkat lunak, mulai dari tahapan awal yaitu analisa kebutuhan pengguna/user, menentukan spesifikasi dari kebutuhan pengguna, desain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Menurut Pressman (1997) Rekayasa Perangkat Lunak adalah suatu disiplin ilmu yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak komputer. Tujuan dari Rekayasa Perangkat Lunak ini adalah : 1. Memperoleh biaya produksi perangkat lunak yang rendah. 2. Menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu. 3. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform. 4. Menghasilkan perangkat lunak yang biaya perawatannya rendah. 2.6
Flowchart Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan
hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung. Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai
http://digilib.mercubuana.ac.id/
17 disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahasa pemrograman. Menurut Jogiyanto (2005) Bagan alir (flowchart) adalah bagan (chart) yang menunjukan hasil (flow) didalam program atau prosedur sistem secara logika. Bagan alir digunakan terutama untuk alat bantu komunikasi dan untuk dokumentasi. Serta Menurut Ladjamuddin (2006) Flowchart adalah bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelsaian suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma. Tujuan Utama dari penggunaan Flowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhanna, terurai, rapi dan jelas dengan menggunakan simbol-simbol yang standar. Tahap penyelesaian masalah yang disajikan harus jelas, sederhana, efektif dan tepat.
http://digilib.mercubuana.ac.id/
18 Tabel 2.1 Simbol-simbol Flowchart SIMBOL
NAMA
FUNGSI
TERMIPUT/OUNATOR
Permulaan/akhir program
GARIS ALIR (FLOW LINE) PREPARATION
Arah aliran program Proses inisialisasi pemberian harga awal Proses
PROSES
perhitungan/pengolahan data
INPUT/OUTPUT DATA
PREDEFINED PROCESS (SUB PROGRAM
Proses input/output data, parameter, informasi
Permulaan sub program/proses menjalankan sub program Perbandingaan pernyataan, penyeleksian data yang
DECISION
memberikan pilihan untuk langkah selanjutnya
Penghubung bagian-bagian ON PAGE CONNECTOR
flowchart yang berada pada satu halaman
OFF PAGE CONNECTOR
http://digilib.mercubuana.ac.id/
Penghubung bagian-bagian flowchart yang berada pada halaman berbeda