IMPLEMENTASI ALGORITMA HUFFMAN CODING DAN METODE LEAST SIGNIFICANT BIT(LSB) UNTUK PENYEMBUNYIAN CITRA BMP KE CITRA BMP JOHAN SURYA 121401095 PROGRAM STUDI S-1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2016
IMPLEMENTASI ALGORITMA HUFFMAN CODING DAN METODE LEAST SIGNIFICANT BIT (LSB) UNTUK PENYEMBUNYIAN CITRA BMP KE CITRA BMP SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer JOHAN SURYA 121401095 PROGRAM STUDI S-1 ILMU KOMPUTER FAKULTAS ILMI KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2016
i PERSETUJUAN Judul : IMPLEMENTASI ALGORITMA HUFFMAN CODING DAN METODE LEAST SIGNIFICANT BIT (LSB) UNTUK PENYEMBUNYIAN CITRA BMP KE CITRA BMP Kategori : SKRIPSI Nama : JOHAN SURYA Nomor Induk Mahasiswa : 121401095 Program Studi : SARJANA (S1) ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, Oktober 2016 Komisi Pembimbing : Pembimbing 2 : Pembimbing 1 : Amalia, S.T, M.T Dian Rachmawati, S.Si., M. Kom NIP. 197812212014042001 NIP. 198307232009122004 Diketahui/disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M. Kom NIP. 196203171991031001
ii PERNYATAAN IMPLEMENTASI ALGORITMA HUFFMAN CODING DAN METODE LEAST SIGNIFICANT BIT (LSB) UNTUK PENYEMBUNYIAN CITRA BMP KE CITRA BMP SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing masing telah disebutkan sumbernya. Medan, 6 Agustus 2016 Johan Surya 121401095
iii UCAPAN TERIMA KASIH Segala puji dan syukur penulis ucapkan kehadirat Tuhan Yang Maha Esa yang telah memberikan rahmat dan karunia-nya kepada penulis sehingga dapat menyelesaikan skripsi ini tepat waktu sesuai dengan instruksi dan peraturan yang berlaku di Fakultas Ilmu Komputer dan Teknologi Informasi. Dalam penyusunan dan penulisan skripsi ini, penulis banyak mendapat bantuan, dukungan, dan bimbingan dari berbagai pihak.pada kesempatan ini penulis ingin mengucapkan rasa terima kasih dan penghargaan kepada : 1. Teristimewa orang tua yang penulis sayangi, ibunda Celiawaty dan ayahanda Sudharmono yang tidak henti-hentinya memberikan doa, motivasi, dan dukungan yang selalu menjadi sumber semangat penulis. 2. Bapak Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas Sumatera Utara. 3. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi. 4. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S-1 Ilmu Komputer. 5. Ibu Dian Rachmawati, S.Si,M.Kom selaku Kepala Studio Lab TA S-1 Ilmu Komputer. 6. Ibu Dian Rachmawati, S.Si,M.Kom selaku Dosen Pembimbing I dan Ibu Amalia, S.T, M.T selaku Dosen Pembimbing II yang telah meluangkan waktu, tenaga, dan pikiran dalam membimbing, mengarahkan, menasehati, memotivasi, dan menyemangati penulis agar dapat menyelesaikan skripsi ini. 7. Bapak Prof. Dr. Muhammad Zarlis, M.Sc selaku dosen Pembanding I dan Bapak Drs. Dahlan Sitompul, M.Eng selaku dosen Pembanding II yang telah memberikan kritik dan saran terhadap skripsi penulis. 8. Bapak M. Andri Budiman, ST, M. Comp. Sc., M.E.M selaku dosen Pembimbing Akademik penulis dan juga atas nasehat, arahan dan bimbingan beliau kepada penulis selama penulis berada dalam masa pendidikan. 9. Seluruh dosen S-1 Ilmu Komputer atas semua ilmu yang telah diberikan
iv kepada penulis selama masa pendidikan di S-1 Ilmu Komputer USU. 10. Seluruh staf pegawai Fakultas Ilmu Komputer dan Teknologi Informasi, terkhusus buat abangda Faisal Hamid dan kakanda Dwi. 11. Adik tersayang Mujurwati yang telah memberikan dukungan terhadap penulis agar dapat menyelesaikan skripsi ini. 12. Sahabat-sahabat luar biasa Boris Mario, Ricky Wijaya, Al Mizfar, Dina Meiladya Rizky dan beberapa asisten IKLC yang selalu memberi motivasi dan nasehat kepada penulis. 13. Teman teman seperjuangan mahasiswa S-1 Ilmu Komputer stambuk 2012 yang selalu memberi dukungan. 14. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu menyelesaikan skripsi ini. Penulis menyadari bahwa skripsi ini masih memiliki banyak kekurangan, baik dari segi teknik, tata penyajian ataupun dari segi tata bahasa. Oleh karena itu penulis bersedia menerima kritik dan saran dari pembaca dalam upaya perbaikan skripsi ini. Semoga skripsi ini dapat bermanfaat bagi penulis dan pembaca, khususnya rekanrekan mahasiswa lainnya yang mengikuti perkuliahan di. Medan, 6 Agustus 2016 Penulis Johan Surya NIM. 121401095
v ABSTRAK Kemudahan dalam mengakses internet menyebabkan pertukaran citra digital semakin tidak terkendali, padahal banyak di antara citra citra digital tersebut yang bersifat privasi. Hal ini tentunya dapat menjadi masalah apabila citra citra digital tersebut dimanipulasi secara tidak bertanggung jawab. Pada penelitian ini, masalah yang diangkat adalah penyembunyian gambar rahasia dengan metode steganografi Least Significant Bit (LSB). Metode steganografi LSB hanya menggantikan nilai bit terakhir pada setiap barisan bit sehingga setiap penyisipan data sebesar 1 byte membutuhkan ukuran penampung yang lebih besar yaitu 8 byte. Algoritma kompresi Huffman Coding dapat digunakan untuk mengecilkan ukuran data. Aplikasi ini dibangun dengan menggunakan bahasa pemograman C#. Hasil penelitian menunjukkan bahwa metode LSB dan algoritma Huffman Coding dapat dikombinasikan dengan baik sehingga ukuran gambar yang digunakan sebagai penampung gambar rahasia bisa dikecilkan dimana rata rata hasil kompresinya adalah 56.15% untuk Compressed Ratio (Cr), 3.96 untuk Ratio of Compression (Rc), 43.85% untuk Redundancy (Rd), 0.44 untuk Space Savings, dan 1.6 ms untuk waktu kompresi dan hasil penelitian juga menunjukkan bahwa penyisipan dengan metode LSB sulit dideteksi oleh mata yang ditunjukkan dari hasil kuesioner yang menunjukkan 191 dari 200 gambar yang disisipi gambar terlihat sama pada penelitian ini. Kata kunci: Steganografi, LSB, Least Significant Bit, Huffman Coding
vi AN IMPLEMENTATION OF HUFFMAN CODING ALGORITHM AND LEAST SIGNIFICANT BIT (LSB) METHOD FOR HIDING BMP IMAGE TO BMP IMAGE ABSTRACT Ease of internet access led to digital image exchange out of control, even though those of digital images were private. This could be a problem if those digital images were irresponsibly manipulated. In this study, the issue of this research is hiding secret image by Least Significant Bit (LSB) method. LSB method only change the last bit of each bits, so it needs an 8 byte container to insert 1 byte of data. Huffman Coding compression algorithm can be use to minimize the size of data. This application is built using C# programming language. The results showed that the Huffman Coding algorithm and LSB method can be combined so well that the size of the image used as container for the secret image can be scaled down where the average result of the compression is 56.15% for Compressed Ratio (Cr), 3.96 for Ratio of Compression (Rc), 43.85% for Redundancy(Rd), 0.44 for Space Savings, and 1.6 ms for compression time and the results also showed that the LSB insertion method is difficult to detect by eyes. From the results of the questionnaires show that 191 of 200 images inserted image looks same in this research. Keywords : Steganography, LSB, Least Significant Bit, Huffman Coding
vii DAFTAR ISI Halaman Persetujuan i Pernyataan ii Ucapan Terima Kasih iii Abstrak v Abstract vi Daftar Isi vii Daftar Tabel x Daftar Gambar xii Daftar Lampiran xiv Bab 1 Pendahuluan 1.1 Latar Belakang 1 1.2 Rumusan Masalah 2 1.3 Batasan Masalah 2 1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 3 1.6 Metodologi Penelitian 3 1.7 Sistematika Penulisan 4 Bab 2 Landasan Teori 2.1 Citra 6 2.1.1 Jenis Citra Digital 6 2.1.2 Format File Citra 8 2.2 Steganografi 9 2.2.1 Konsep Dan Terminologi 10 2.2.2 Kriteria Penyembunyian Pesan 10 2.2.3 Teknik Steganografi 11 2.2.4 Metode LSB 12 2.3 Kompresi Data 14
viii 2.3.1 Kompresi Lossless Dan Lossy 15 2.3.2 Kriteria Kompresi Citra 15 2.3.3 Redudansi Data 15 2.3.4 Pengukuran Kinerja Kompresi Data 16 2.3.5 Algoritma Huffman 17 2.4 Penelitian Kuantitatif 20 2.4.1 Pengukuran Indeks 20 2.4.2 Kuesioner 21 Bab 3 Analisis dan Perancangan 3.1 Analisis Sistem 22 3.1.1 Analisis Masalah 22 3.1.2 Analisis Kebutuhan Sistem 23 3.1.3 Analisis Proses 24 3.2 Perancangan Sistem 25 3.2.1 Perancangan Proses Penyembunyian Gambar 25 3.2.2 Perancangan Proses Pengungkapan Gambar 30 3.2.3 Use Case Diagram 32 3.2.4 Activity Diagram 34 3.2.5 Sequence Diagram 37 3.2.6 Perancangan Antarmuka (Interface) 39 Bab 4 Implementasi dan Pengujian 4.1 Implementasi Sistem 45 4.1.1 Antarmuka Utama 45 4.1.2 Antarmuka Penyembunyian Gambar 46 4.1.3 Antarmuka Ungkap gambar 46 4.1.4 Antarmuka Bantuan 47 4.1.5 Antarmuka Tentang 48 4.2 Pengujian Sistem 48 4.2.1 Pengujian Penyembunyian Gambar 49 4.2.2 Pengujian Pengungkapan Gambar 56 4.2.3 Aspek Imperceptibility Dan Fidelity 58
ix 4.2.4 Aspek Recovery 60 Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 63 5.2 Saran 63 Daftar Pustaka 64
x DAFTAR TABEL Halaman Tabel 2.1 Format file grafik bitmap 8 Tabel 2.2 Nilai nilai piksel sebelum disisipi pesan 14 Tabel 2.3 Nilai nilai piksel setelah dimasukkan pesan dengan metode LSB 14 Tabel 2.4 Frekuensi dari data data dari gambar 2.5 18 Tabel 2.5 Hasil Proses Pengkodean Huffman 19 Tabel 3.1 Pseudocode pembentukan Huffman Code dari Huffman Tree 28 Tabel 3.2 Pseudocode kompresi dengan algoritma Huffman Coding 29 Tabel 3.3 Pseudocode penyisipan gambar dengan Least Significant Bit (LSB) 30 Tabel 3.4 Pseudocode pengungkapan gambar 32 Tabel 4.1 Tabel data gambar rahasia 49 Tabel 4.2 Tabel data gambar setelah dilakukan filter 49 Tabel 4.3 Tabel Huffman Code 52 Tabel 4.4 Tabel isi Huffman Table 53 Tabel 4.5 Tabel Huffman Code dan frekuensinya 53 Tabel 4.6 Tabel informasi untuk proses dekompresi dalam bentuk desimal 54 Tabel 4.7 Tabel informasi untuk proses dekompresi dalam bentuk biner 54 Tabel 4.8 Tabel data gambar rahasia dalam bentuk biner 54 Tabel 4.9 Tabel data gambar rahasia setelah dikompresi 55 Tabel 4.10 Tabel data data hasil kompresi 56 Tabel 4.11 Tabel proses dekompresi 57 Tabel 4.12 Tabel proses pembacaan tabel Huffman 57 Tabel 4.13 Tabel kinerja kompresi data 58 Tabel 4.14 Tabel hasil kuesioner 59
xi Tabel 4.15 Tabel perubahan ukuran gambar 60
xii DAFTAR GAMBAR Halaman Gambar 2.1 Contoh citra biner 6 Gambar 2.2 Contoh citra grayscale 7 Gambar 2.3 Contoh citra warna 8 Gambar 2.4 Diagram penyisipan dan ekstraksi pesan 10 Gambar 2.5 Contoh gambar yang akan disisipi pesan menggunakan metode LSB 13 Gambar 2.6 Pohon Huffman dari tabel 2.4 19 Gambar 3.1 Diagram Ishikawa 23 Gambar 3.2 Flowchart sistem penyembunyian gambar 26 Gambar 3.3 Flowchart proses kompresi dengan Huffman Coding 27 Gambar 3.4 Flowchart proses penyisipan gambar dengan Least Significant Bit (LSB) 28 Gambar 3.5 Flowchart proses pengungkapan gambar 31 Gambar 3.6 Diagram use case sistem 33 Gambar 3.7 Activiy diagram sembunyikan 34 Gambar 3.8 Activiy diagram ungkap 35 Gambar 3.9 Activiy diagram bantuan 36 Gambar 3.10 Activiy diagram tentang 36 Gambar 3.11 Sequence diagram penyembunyian gambar 37 Gambar 3.12 Sequence diagram pengungkapan gambar 38 Gambar 3.13 Sequence diagram bantuan 38 Gambar 3.14 Sequence diagram tentang 39 Gambar 3.15 Rancangan tampilan halaman utama 40 Gambar 3.16 Rancangan tampilan halaman penyembunyian gambar 41 Gambar 3.17 Rancangan tampilan halaman pengungkapan gambar 42 Gambar 3.18 Rancangan tampilan halaman bantuan 43 Gambar 3.19 Rancangan tampilan halaman tentang 44 Gambar 4.1 Antarmuka halaman utama sistem 45 Gambar 4.2 Antarmuka halaman penyembunyian gambar 46
xiii Gambar 4.3 Antarmuka halaman ungkap gambar 47 Gambar 4.4 Antarmuka halaman bantuan 47 Gambar 4.5 Antarmuka halaman tentang 48 Gambar 4.6 Gambar rahasia berukuran 2x2 48 Gambar 4.7 Gambar cover berukuran 10x10 49 Gambar 4.8 Gambar node node setelah diurutkan 50 Gambar 4.9 Gambar proses pertama dari pembuatan Huffman Tree 50 Gambar 4.10 Gambar proses kedua dari pembuatan Huffman Tree 51 Gambar 4.11 Gambar proses ketiga dari pembuatan Huffman Tree 51 Gambar 4.12 Gambar pemberian kode pada Huffman Tree 52 Gambar 4.13 Gambar hasil penyembunyian gambar rahasia 55 Gambar 4.14 Gambar hasil pengungkapan gambar 58 Gambar 4.15 Grafik hasil kuesioner 59 Gambar 4.16 Penyembunyian gambar rahasia pertama 61 Gambar 4.17 Penyembunyian gambar rahasia kedua 61 Gambar 4.18 Pengungkapan gambar stego pertama 62 Gambar 4.19 Pengungkapan gambar stego kedua 62
xiv DAFTAR LAMPIRAN Halaman Lampiran 1 Listing Program A-1 Lampiran 2 Curriculum Vitae B-1 Lampiran 3 Hasil Kuesioner C-1