Analisis Dan Ekstraksi Stego-Objek Dengan Menggunakan Metode Steganalisis Enhanced LSB
ANALISIS DAN EKSTRAKSI STEGO-OBJEK DENGAN
MENGGUNAKAN METODE STEGANALISIS
ENHANCED LSB
SKRIPSI
ANGGARANI NOVITASARI
061401051
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2010
(2)
ANALISIS DAN EKSTRAKSI STEGO-OBJEK DENGAN MENGGUNAKAN METODE STEGANALISIS ENHANCED LSB
SKRIPSI
Diajukan untuk melengkapi tugas dan memehuhi syarat mencapai gelar Sarjana Komputer
ANGGARANI NOVITASARI 061401051
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2010
(3)
PERSETUJUAN
Judul : ANALISIS DAN EKSTRAKSI STEGO-OBJEK
DENGAN MENGGUNAKAN METODE STEGANALISIS ENHANCED LSB
Kategori : SKRIPSI
Nama : ANGGARANI NOVITASARI
Nomor Induk Mahasiswa : 061401051
Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 18 Desember 2010 Komisi Pembimbing :
Pembimbing II
M. Andri B., ST., MCompSc., MEM NIP 197510082008011011
Pembimbing I
Prof. Dr. Muhammad Zarlis NIP 195707011986011003
Diketahui/Disetujui oleh
Departemen Ilmu Komputer FMIPA USU Ketua,
Prof. Dr. Muhammad Zarlis NIP 195707011986011003
(4)
PERNYATAAN
ANALISIS DAN EKSTRAKSI STEGO-OBJEK DENGAN MENGGUNAKAN METODE STEGANALISIS ENHANCED LSB
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 28 November 2010
ANGGARANI NOVITASARI 061401051
(5)
PENGHARGAAN
Alhamdulillah. Puji dan syukur saya panjatkan kepada Allah SWT. yang melimpahkan rahmat dan karunia-Nya sehingga srkipsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan sebagai syarat untuk mendapatkan gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer FMIPA USU.
Ucapan terima kasih saya sampaikan kepada Bapak Prof. Dr. Muhammad Zarlis, selaku Ketua Departemen Ilmu Komputer FMIPA USU dan Dosen Pembimbing I, dan Bapak Mohammad Andri Budiman, ST, MCompSc, MEM, selaku Dosen Pembimbing II, pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan skripsi ini. Panduan ringkas dan padat serta profesional telah diberikan kepada saya sehingga saya dapat menyelesaikan skripsi ini dengan baik. Ucapan terima kasih juga ditujukan kepada Bapak Drs. Marihat Situmorang, M.Kom dan Bapak Amer Sharif, S.Si, M.Kom yang telah bersedia menjadi dosen pembanding. Ucapan terima kasih juga ditujukan kepada Sekretaris Departemen Ilmu Komputer FMIPA USU, Bapak Syahriol Sitorus, S.Si, MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen dan pegawai pada Program Studi S1 Ilmu Komputer FMIPA USU.
Skripsi ini terutama saya persembahkan untuk ayahanda dan ibunda tercinta, Ides Hatarino dan Endang Sutarsih, atas semua yang telah diperjuangkan dan tak ternilai harganya. Untuk adik-adik tersayang, Aprianto Samah dan Afriavinika Hanggialevi, beserta seluruh keluarga besar yang selalu memberikan dukungan dan doa kepada saya. Terima kasih saya ucapkan kepada Fadly Fauzi, Rury Handayani, Surya Wijaya, Muhammad Alvin, Rifki R. Ashari Lubis, Alfarisi, Izhari Ishak Aksa, teman-teman RCS, teman-teman di Program Studi S1 Ilmu Komputer (terutama angkatan 2006), dan seluruh teman saya lainnya yang tidak disebutkan. Sekali lagi saya mengucapkan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi ini yang tidak dapat disebutkan satu per satu. Semoga Allah SWT. membalas semua kebaikan yang telah kalian berikan.
(6)
ABSTRAK
Penyisipan pesan ke dalam suatu media, baik gambar, video, atau pun suara, menjadi salah satu cara aman untuk menyampaikan pesan ke tujuan tanpa diketahui orang lain. Metode penyisipan pesan yang cukup sederhana dan mudah dilakukan adalah Least Significant Bit (LSB). Penelitian ini bertujuan untuk mendeteksi ada tidaknya pesan tersembunyi pada gambar bitmap. Oleh karena itu, dibangun suatu aplikasi steganalisis dengan menggunakan metode steganalisis Enhanced LSB. Enhanced LSB merupakan suatu metode steganalisis untuk mendeteksi pesan rahasia pada gambar yang telah disisipi pesan secara LSB. Perancangan aplikasi ini meggunakan notasi pemodelan Unified Modeling Language. Aplikasi ini dikembangkan dengan menggunakan bahasa pemrograman Java dalam platform IDE NetBeans 6.8. Aplikasi yang dibangun memiliki fungsi untuk menyisipkan pesan, melakukan proses steganalisis, dan mengekstraksi pesan dari gambar.
(7)
ANALYSIS AND EXTRACTION OF STEGO-OBJECT USING STEGANALYSIS METHOD OF ENHANCED LSB
ABSTRACT
Messages insertion into a media, whether it is an image, a video, or a sound, is one way safe way to convey messages to the destination without knowing by others. A quite simple and easy messages insertion method to do is Least Significant Bit (LSB). This study is aimed to detect the existence of hidden messages in a bitmap image. Therefore, a steganalysis application is built using Enhanced LSB steganalysis method. Enhanced LSB is a steganalysis method to detect hidden messages in a LSB inserted image. The design of the application use modeling notation of Unified Modeling Language. This application was is developed using Java programming language in NetBeans IDE 6.8 platform. The application is built with functions to insert a message into an image, to do steganalysis process, and to extract the message from an image.
(8)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel x
Daftar Gambar xi
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 4
1.7 Sistematika Penulisan 5
Bab 2 Tinjauan Teoretis 6
2.1 Citra Digital 6
2.1.1 Konsep dasar citra digital 6 2.1.1.1 Format citra digital 7 2.1.1.2 Elemen dasar citra digital 12 2.1.1.3 Struktur data citra digital 13
2.1.2 Citra bitmap 13
2.2 Steganografi 17
2.2.1 Konsep dan terminologi 17
2.2.2 Teknik penyembunyian data 19
2.2.3 Least significant bit 19
2.3 Steganalisis 23
2.3.1 Enhanced LSB 23
Bab 3 Analisis dan Perancangan Sistem 25
3.1 Analisis Sistem 25
3.1.1 Citra digital bitmap 25
3.1.2 Metode steganalisis 26
3.1.3 Tindak lanjut terhadap pesan rahasia 27 3.1.4 Analisis cara kerja sistem 27
3.1.5 Pemodelan sistem 28
(9)
3.2 Perancangan Sistem 30
3.2.1 Gambaran umum sistem 30
3.2.2 Use case diagram 31
3.2.2.1 Use case Steganografi 33 3.2.2.2 Use case Pilih Gambar (menu Steganografi) 33
3.2.2.3 Use case Tulis Pesan 34
3.2.2.4 Use case Sisip 35
3.2.2.5 Use case Steganalisis 35 3.2.2.6 Use case Pilih Gambar (menu Steganalisis) 36
3.2.2.7 Use case Analisis 37
3.2.2.8 Use case Ekstraksi Pesan 37
3.2.2.9 Use case Pilih Gambar (menu Ekstraksi Pesan) 38
3.2.2.10 Use case Ekstraksi 39
3.2.3 Activity diagram 39
3.2.3.1 Activity diagram untuk use case Steganografi 39 3.2.3.2 Activity diagram untuk use case Pilih Gambar (menu
Steganografi) 40
3.2.3.3 Activity diagram untuk use case Tulis Pesan 41 3.2.3.4 Activity diagram untuk use case Sisip 42 3.2.3.5 Activity diagram untuk use case Steganalisis 42 3.2.3.6 Activity diagram untuk use case Pilih Gambar (menu
Steganalisis) 43
3.2.3.7 Activity diagram untuk use case Analisis 44 3.2.3.8 Activity diagram untuk use case Ekstraksi Pesan 45 3.2.3.9 Activity diagram untuk use case Pilih Gambar (menu
Ekstraksi Pesan) 45
3.2.3.10 Activity diagram untuk use case Ekstraksi 46
3.2.4 Class diagram 47
3.2.5 Sequence diagram 48
3.2.5.1 Sequence diagram untuk proses penyisipan pesan
dengan metode LSB 49
3.2.5.2 Sequence diagram untuk metode Enhanced LSB 51 3.2.5.3 Sequence diagram untuk proses ekstraksi pesan 52 3.2.6 Perancangan antarmuka sistem 52 3.2.6.1 Halaman utama aplikasi 53
3.2.6.2 Halaman steganografi 53
3.2.6.3 Halaman steganalisis 54
3.2.6.4 Halaman ekstraksi pesan 55 Bab 4 Implementasi dan Pengujian Sistem 57
4.1 Implementasi 57
4.1.1 Konfigurasi perangkat keras 57 4.1.2 Konfigurasi perangkat lunak 58 4.1.3 Tampilan penggunaan aplikasi 58 4.1.3.1 Halaman utama aplikasi 58
4.1.3.2 Halaman steganografi 59
4.1.3.3 Halaman steganalisis 60
4.1.3.4 Halaman ekstraksi pesan 60
(10)
4.3 Pengujian Sistem 62
4.3.1 Proses steganografi 63
4.3.1.1 Halaman steganografi 63
4.3.1.2 Pilih gambar 63
4.3.1.3 Tulis pesan 65
4.3.1.4 Sisip 66
4.3.1.5 Hasil steganografi 67
4.3.1.5.1 Gambar hasil steganografi 67 4.3.1.5.2 Bit-bit hasil steganografi 68
4.3.2 Proses steganalisis 69
4.3.2.1 Halaman steganalisis 70
4.3.2.2 Pilih gambar 70
4.3.2.3 Analisis 71
4.3.2.4 Hasil steganalisis 73
4.3.2.4.1 Gambar hasil steganalisis 73 4.3.2.4.1 Bit-bit hasil steganalisis 74
4.3.3 Proses ekstraksi pesan 75
4.3.3.1 Halaman ekstraksi pesan 76
4.3.3.2 Pilih gambar 76
4.3.3.3 Esktraksi 77
4.3.3.4 Pesan hasil ekstraksi 78
Bab 5 Kesimpulan dan Saran 79
5.1 Kesimpulan 79
5.2 Saran 79
Daftar Pustaka 81
Lampiran A: Source Code Program Class Metode 83 Lampiran B: Source Code Program Class Bitmap 86
(11)
DAFTAR TABEL
Halaman Tabel 3.1 Spesifikasi Use Case Steganografi 33 Tabel 3.2 Spesifikasi Use Case Pilih Gambar (menu Steganografi) 33 Tabel 3.3 Spesifikasi Use Case Tulis Pesan 34
Tabel 3.4 Spesifikasi Use Case Sisip 35
Tabel 3.5 Spesifikasi Use Case Steganalisis 35 Tabel 3.6 Spesifikasi Use Case Pilih Gambar (menu Steganalisis) 36
Tabel 3.7 Spesifikasi Use Case Analisis 37
Tabel 3.8 Spesifikasi Use Case Ekstraksi Pesan 37 Tabel 3.9 Spesifikasi Use Case Pilih Gambar (menu Ekstraksi Pesan) 38 Tabel 3.10 Spesifikasi Use Case Ekstraksi 39 Tabel 3.311 Kegunaan Class-Class pada Class Diagram Aplikasi
(12)
DAFTAR GAMBAR
Halaman Gambar 2.1 Contoh Citra Biner Berukuran 9x7 Pixel dan Representasinya
dalam Data Digital 7
Gambar 2.2 Contoh Citra Biner 8
Gambar 2.3 Contoh Citra Skala Keabuan 4-Bit dan Representasinya dalam
Data Digital 8
Gambar 2.4 Contoh Citra Skala Keabuan 8-Bit 9 Gambar 2.5 Format Penyimpanan Warna RGB 9 Gambar 2.6 Contoh Kombinasi Warna RGB sehingga Menghasilkan Warna
Kuning 9
Gambar 2.7 Contoh Citra Warna dan Representasinya dalam Data Digital 10
Gambar 2.8 Contoh Citra RGB 10
Gambar 2.9 Contoh Palet Warna Citra Berindeks 4-Bit 10 Gambar 2.10 Aras Warna Citra Digital 1-Bit 11 Gambar 2.11 Aras Abu-Abu dan Aras Warna pada Citra Digital 4-Bit 11 Gambar 2.12 Aras Abu-Abu dan Aras Warna pada Citra Digital 8-Bit 11 Gambar 2.13 Aras Abu-Abu dan Aras Warna pada Citra Digital 24-Bit
(RGB) 12
Gambar 2.14 Contoh Struktur Data Citra Digital 13
Gambar 2.15 Format Data File Bitmap 14
Gambar 2.16 Berkas Header Bitmap 14
Gambar 2.17 Berkas Image Bitmap berupa Information Header 15 Gambar 2.18 Berkas Image Bitmap berupa Core Header 15
Gambar 2.19 Berkas Palet Warna Bitmap 16
Gambar 2.20 Contoh Berkas Data Bitmap 2x2 Pixel, 24-Bit 16 Gambar 2.21 Contoh Covertext, Hiddentext, dan Stegotext 18 Gambar 2.22 Diagram Penyisipan dan Ekstraksi Pesan 18 Gambar 2.23 Diagram Penyisipan dan Ekstraksi Pesan 19 Gambar 2.24 Kata “secret” Direpresentasikan dalam Bentuk Biner 21 Gambar 2.25 Contoh Data Media Penampung Sebelum Disisipi Pesan 21 Gambar 2.26 Contoh Data yang Akan Disisipkan 22 Gambar 2.27 Contoh Data Media Penampung yang Telah Disisipi Pesan 22 Gambar 2.28 Struktur Proses Penyaringan 23
Gambar 2.29 Contoh Hasil Enhanced LSB 24
Gambar 2.30 Contoh Media Penampung dan Hasil Enhanced LSB Gambar
Tersebut 24
Gambar 3.1 Flowchart Gambaran Umum Sistem 31 Gambar 3.2 Use Case Aplikasi Steganalisis 32 Gambar 3.3 Activity Diagram untuk Use Case Steganografi 40 Gambar 3.4 Activity Diagram untuk Use Case Pilih Gambar (Menu
Steganografi) 41
Gambar 3.5 Activity Diagram untuk Use Case Tulis Pesan 41 Gambar 3.6 Activity Diagram untuk Use Case Sisip 42
(13)
Gambar 3.7 Activity Diagram untuk Use Case Steganalisis 43 Gambar 3.8 Activity Diagram untuk Use Case Pilih Gambar (Menu
Steganalisis) 44
Gambar 3.9 Activity Diagram untuk Use Case Analisis 44 Gambar 3.10 Activity Diagram untuk Use Case Ekstraksi Pesan 45 Gambar 3.11 Activity Diagram untuk Use Case Pilih Gambar (Menu
Ekstraksi Pesan) 46
Gambar 3.12 Activity Diagram untuk Use Case Ekstraksi 46 Gambar 3.13 Class Diagram Aplikasi Steganalisis 47 Gambar 3.14 Sequence Diagram Proses Penyisipan Pesan 50 Gambar 3.15 Sequence Diagram Steganalisis 51 Gambar 3.16 Sequence Diagram Proses Ekstraksi Pesan 52 Gambar 3.17 Perancangan Antarmuka Halaman Utama Aplikasi 53 Gambar 3.18 Perancangan Antarmuka Halaman Steganografi 54 Gambar 3.19 Perancangan Antarmuka Halaman Steganalisis 55 Gambar 3.20 Perancangan Antarmuka Halaman Ekstraksi Pesan 56 Gambar 4.1 Tampilan Halaman Utama Aplikasi 58 Gambar 4.2 Tampilan Halaman Steganografi 59 Gambar 4.3 Tampilan Halaman Steganalisis 60 Gambar 4.4 Tampilan Halaman Ekstraksi Pesan 61 Gambar 4.5 Pop-up Window Pilih Gambar pada Halaman Steganografi 64 Gambar 4.6 Gambar yang Telah Dipilih Ditampilkan 64
Gambar 4.7 Color.bmp 65
Gambar 4.8 Pesan yang Akan Disisipkan 65
Gambar 4.9 Gambar yang Telah Disisipi Pesan 66
Gambar 4.10 Color-embed.bmp 66
Gambar 4.11 Dialogue Box Peringatan untuk Memilih Gambar Bitmap 67 Gambar 4.12 Dialogue Box Peringatan untuk Menuliskan Pesan Rahasia 67 Gambar 4.13 Color.bmp (Atas) dan Color-embed.bmp (Bawah) 68 Gambar 4.14 Abc.bmp (Kiri) dan abc-embed.bmp (Kanan) 68 Gambar 4.15 Byte-Byte File Gambar abc.bmp dalam Heksadesimal 69 Gambar 4.16 Byte-Byte File Gambar abc-embed.bmp dalam Heksadesimal 69 Gambar 4.17 Perubahan Byte-Byte Pixel Data Akibat Penyisipan Pesan 69 Gambar 4.18 Pop-up Window Pilih Gambar pada Halaman Steganalisis 70 Gambar 4.19 Gambar yang Telah Dipilih Ditampilkan 71 Gambar 4.20 Gambar Hasil Steganalisis Ditampilkan 72 Gambar 4.21 Color-embed.bmp-analysis.bmp 72 Gambar 4.22 Dialogue Box Peringatan untuk Memilih Gambar Bitmap 72 Gambar 4.23 Color.bmp (Atas) dan Color.bmp-analysis.bmp (Bawah) 73 Gambar 4.24 Color-embed.bmp (Atas) dan Color-embed.bmp-analysis.bmp
(Bawah) 73
Gambar 4.25 Color-embed.bmp-analysis.bmp yang Diperbesar 74 Gambar 4.26 Abc.bmp (Kiri) dan abc.bmp-analysis.bmp (Kanan) 74 Gambar 4.27 Byte-Byte File Gambar abc.bmp-analysis.bmp dalam
Heksadesimal 75
Gambar 4.28 Abc-embed.bmp (Kiri) dan abc-embed.bmp-analysis.bmp
(Kanan) 75
Gambar 4.29 Byte-Byte File Gambar abc-embed.bmp-analysis.bmp dalam
(14)
Gambar 4.30 Pop-up Window Pilih Gambar pada Halaman Ekstraksi Pesan 76 Gambar 4.31 Gambar yang Telah Dipilih Ditampilkan 77 Gambar 4.32 Pesan Hasil Ekstraksi Ditampilkan 78 Gambar 4.34 Dialogue Box Peringatan untuk Memilih Gambar Bitmap 78
(15)
ABSTRAK
Penyisipan pesan ke dalam suatu media, baik gambar, video, atau pun suara, menjadi salah satu cara aman untuk menyampaikan pesan ke tujuan tanpa diketahui orang lain. Metode penyisipan pesan yang cukup sederhana dan mudah dilakukan adalah Least Significant Bit (LSB). Penelitian ini bertujuan untuk mendeteksi ada tidaknya pesan tersembunyi pada gambar bitmap. Oleh karena itu, dibangun suatu aplikasi steganalisis dengan menggunakan metode steganalisis Enhanced LSB. Enhanced LSB merupakan suatu metode steganalisis untuk mendeteksi pesan rahasia pada gambar yang telah disisipi pesan secara LSB. Perancangan aplikasi ini meggunakan notasi pemodelan Unified Modeling Language. Aplikasi ini dikembangkan dengan menggunakan bahasa pemrograman Java dalam platform IDE NetBeans 6.8. Aplikasi yang dibangun memiliki fungsi untuk menyisipkan pesan, melakukan proses steganalisis, dan mengekstraksi pesan dari gambar.
(16)
ANALYSIS AND EXTRACTION OF STEGO-OBJECT USING STEGANALYSIS METHOD OF ENHANCED LSB
ABSTRACT
Messages insertion into a media, whether it is an image, a video, or a sound, is one way safe way to convey messages to the destination without knowing by others. A quite simple and easy messages insertion method to do is Least Significant Bit (LSB). This study is aimed to detect the existence of hidden messages in a bitmap image. Therefore, a steganalysis application is built using Enhanced LSB steganalysis method. Enhanced LSB is a steganalysis method to detect hidden messages in a LSB inserted image. The design of the application use modeling notation of Unified Modeling Language. This application was is developed using Java programming language in NetBeans IDE 6.8 platform. The application is built with functions to insert a message into an image, to do steganalysis process, and to extract the message from an image.
(17)
BAB 1
PENDAHULUAN
1.1Latar Belakang
Kemajuan teknologi yang begitu pesat saat ini memudahkan setiap orang menyampaikan informasi kepada orang lain. Namun, kemudahan yang diperoleh dalam menyampaikan informasi (pesan) tidak berarti menjamin keamanan pesan tersebut sampai ke tujuan. Kemungkinan pihak-pihak tertentu ingin mengetahui isi pesan yang dikirimkan. Oleh karena itu, salah satu cara agar pesan yang disampaikan tidak diketahui atau menarik perhatian orang lain adalah dengan menggunakan teknik penyembunyian pesan (steganografi).
Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan lain sehingga keberadaan pesan tersebut tidak dapat diketahui. Dengan steganografi, pesan yang dikirim tidak menarik perhatian dan media penampung tidak menimbulkan kecurigaan. Steganografi membutuhkan dua properti, yaitu media penampung dan pesan rahasia. Media penampung yang umum digunakan adalah gambar, suara, video, atau teks. Pesan yang disembunyikan dapat berupa sebuah artikel, gambar, daftar barang, kode program, atau pesan lain (Munir, 2006).
Metode steganografi yang paling sederhana dan paling mudah diimplementasikan adalah metode LSB (Least Significant Bit). Dan media penampung yang umumnya digunakan adalah citra digital. Karena keterbatasan kemampuan manusia, maka citra digital yang telah disisipi pesan dengan metode LSB tidak dapat diketahui oleh mata manusia.
(18)
Teknik untuk mengetahui apakah ada suatu pesan tersembunyi dalam suatu media disebut steganalisis. Dengan melakukan steganalisis, kemudian dapat dilakukan tindak lanjut terhadap media penampungnya, apakah akan dihancurkan agar pesan tidak dapat diketahui oleh siapapun, ataukah akan dilakukan ekstraksi sehingga isi pesan yang dikirimkan dapat diketahui.
Jika seseorang mengirimkan pesan kepada kerabatnya, maka tidak dapat dipastikan apakah terdapat pesan tersembunyi di dalamnya. Ada kalanya, mengetahui apakah terdapat pesan tersembunyi di dalam pesan yang dikirimkan oleh seseorang menjadi begitu penting. Dengan mengetahui isi pesan yang disembunyikan, diharapkan dapat mencegah hal-hal yang tidak diinginkan.
Hal ini yang memotivasi untuk dapat mengetahui cara mendeteksi pesan yang disisispkan dengan metode steganografi LSB dalam suatu citra digital, karena media penampung yang umum digunakan untuk menyembunyikan pesan rahasia dan tidak menimbulkan kecurigaan adalah citra digital. Sementara, metode steganografi LSB adalah metode steganografi yang sederhana dan mudah diimplementasikan oleh banyak orang. Pada citra digital hasil penyisipan pesan dengan metode LSB, metode pendeteksian pesan secara visual yang umum digunakan adalah Enhanced LSB. Sebagai tindak lanjut, akan dilakukan ekstraksi pesan terhadap citra digital yang dideteksi memiliki pesan tersembunyi, sehingga isi pesan dapat diketahui.
1.2Rumusan Masalah
Permasalahan yang akan dibahas pada penelitian ini adalah sebagai berikut:
1. Bagaimana mendeteksi pesan tersembunyi pada citra digital hasil teknik penyisipan LSB.
2. Metode steganalisis apakah yang umumnya digunakan untuk melakukan steganalisis pada citra digital dengan teknik penyisipan LSB.
3. Bagaimana keberhasilan metode steganalisis tersebut dalam mendeteksi apakah terdapat pesan tersembunyi pada citra digital.
(19)
1.3Batasan Masalah
Batasan masalah dari penelitian ini adalah sebagai berikut:
1. Steganalisis dilakukan pada citra digital dengan format bitmap (.bmp) 24 bit dan tidak terkompresi.
2. Steganalisis dilakukan pada citra digital dengan teknik penyisipan LSB.
3. Pesan yang disembunyikan diasumsikan tidak dienkripsi dan tidak dikompresi terlebih dahulu.
4. Pesan yang disembunyikan diasumsikan dalam bentuk plainteks.
5. Untuk memperoleh citra digital yang disisipi pesan, maka dibuatlah aplikasi penyisipan pesan (steganografi).
6. Aplikasi yang dibangun tidak mencakup proses pengembalian gambar dari gambar hasil steganografi dan/ steganalisis ke gambar awal.
1.4Tujuan Penelitian
Tujuan penelitian ini adalah untuk menganalisis metode steganalisis Enhanced LSB, bagaimana keberhasilan teknik steganalisis yang digunakan dalam mendeteksi adanya pesan rahasia dalam suatu citra digital, dan kemudian mengekstraksi pesan rahasia tersebut sehingga isi pesan rahasia dapat diketahui.
1.5Manfaat Penelitian
Manfaat penelitian ini adalah untuk memahami algoritma steganalisis yang digunakan dalam mendeteksi adanya pesan rahasia dan kemudian melakukan ekstraksi terhadap citra digital tersebut sehingga isi pesan rahasia dapat diketahui.
(20)
1.6Metodologi Penelitian
Tahapan-tahapan yang akan dilalui dalam pengerjaan laporan penelitian ini adalah sebagai berikut:
1. Studi Literatur
Pengerjaan penelitian ini dimulai dengan mengumpulkan bahan-bahan sebagai referensi baik dari buku, paper, jurnal, makalah, forum, milis, dan sumber-sumber lain yang berkaitan dan beberapa referensi lainnya untuk menunjang pencapaian tujuan penelitian.
2. Observasi
Metode ini dilakukan dengan melakukan pengamatan dan perbandingan terhadap beberapa metode steganalisis untuk mendeteksi adanya pesan rahasia pada citra digital hasil teknik penyisispan LSB dengan melakukan penelusuran di internet. Dengan pengamatan secara langsung tersebut akan diperoleh pengetahuan mengenai metode steganalisis yang ada dan telah diimplementasikan.
3. Analisis
Pada tahap ini, dilakukan analisis permasalahan yang ada, batasan yang dimiliki dan kebutuhan yang diperlukan.
4. Perancangan dan Implementasi Algoritma
Pada tahap ini akan dilakukan perancangan aplikasi dan implementasi metode steganalisis yang digunakan.
5. Pengujian
Metode steganalisis yang digunakan akan diuji pada tahap ini, untuk mengetahui keberhasilan metode steganalisis yang digunakan dalam mendeteksi adanya pesan rahasia dalam citra digital dan kemudian akan dilakukan ekstraksi terhadap citra digital yang memiliki pesan rahasia sehingga isi pesan rahasia dapat diketahui.
(21)
6. Penyusunan Laporan dan Kesimpulan Akhir
Metode ini akan dilaksanakan dengan melakukan pendokumentasian hasil analisa dan pengujian secara tertulis dalam bentuk laporan penelitian (skripsi).
1.7Sistematika Penulisan
Sistematika penulisan laporan penelitian ini dibagi menjadi 5 bab, yaitu sebagai berikut:
BAB 1 PENDAHULUAN
Berisikan penjelasan tentang Latar Belakang, Rumusan Masalah, Batasan Masalah, Tujuan Penulisan, Manfaat Penulisan, dan Metodologi Penelitian.
BAB 2 TINAJAUAN TEORETIS
Bab ini akan membahas teori-teori yang berkaitan dengan citra digital, steganografi, LSB, dan metode steganalisis yang akan digunakan.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini akan membahas analisis dan perancangan sistem dengan menggunakan metode steganalisis Enhanced LSB untuk mendeteksi ada tidaknya pesan rahasia pada suatu citra digital beserta tindak lanjut terhadap pesan rahasia yang ditemukan.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini akan menjelaskan implementasi metode steganalisis yang digunakan, serta pengujian terhadap sistem yang telah dibangun.
BAB 5 KESIMPULAN DAN SARAN
(22)
BAB 2
TINJAUAN TEORETIS
2.1Citra Digital
Menurut kamus Webster, citra adalah suatu representasi, kemiripan, atau imitasi dari suatu objek atau benda. Citra digital adalah representasi dari citra dua dimensi menggunakan ‘0’ dan ‘1’ (biner). Citra digital dapat dibedakan menjadi dua, yaitu raster dan vektor. Pada umumnya, yang disebut dengan citra digital adalah citra digital dalam bentuk raster atau yang biasa disebut dengan citra bitmap.
2.1.1 Konsep dasar citra digital
Citra digital tersusun dalam bentuk raster (grid atau kisi). Setiap kotak yang terbentuk disebut pixel (picture element) dan memiliki koordinat (x,y). Koordinat ini biasanya dinyatakan dalam bilangan bulat positif. Dan setiap pixel memiliki nilai berupa angka digital yang merepresentasikan informasi yang diwakili oleh pixel tersebut.
Representasi citra digital dalam sebuah file dapat dianalogikan seperti halnya ketika kita ingin melukis, maka kita harus mempunyai palet dan kanvas. Di mana palet adalah kumpulan warna yang dapat membentuk citra, seperti palet warna yang berisi berbagai warna cat. Lalu setiap warna yang berbeda di dalam palet tersebut diberi nomor. Kemudian kita dapat melukiskan warna-warna tersebut di atas sebuah kanvas. Kanvas tersebut berupa matriks yang setiap elemen matriksnya dapat diisi dengan sebuah warna yang berasal dari palet warna. Kumpulan angka (mewakili warna) dalam bentuk matriks inilah yang disebut dengan citra. Sementara informasi
(23)
mengenai palet (korespondensi antara warna dengan angka) disimpan di dalam komputer melalui aplikasi untuk membuka citra seperti, Photoshop, dan Paint.
2.1.1.1 Format citra digital
Format data citra digital berhubungan erat dengan warna. Nilai data digital merepresentasikan warna dari citra. Format citra digital yang banyak digunakan adalah citra biner (monochrome), citra skala keabuan (gray scale), citra warna (true color), dan citra warna berindeks. Berikut ini penjelasan untuk masing-masing format citra digital.
1. Citra biner (monochrome)
Citra biner (monochrome) atau disebut juga binary image, merupakan citra digital yang setiap pixel-nya hanya memiliki 2 kemungkinan derajat keabuan, yaitu 0 dan 1. Nilai 0 mewakili warna hitam, dan nilai 1 mewakili warna putih, di mana setiap pixel-nya membutuhkan media penyimpanan sebesar 1 bit.
1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Gambar 2.1 Contoh Citra Biner Berukuran 9x7 Pixel dan Representasinya dalam Data Digital
(24)
Gambar 2.2 Contoh Citra Biner
2. Citra skala keabuan (gray scale)
Citra skala keabuan atau disebut juga dengan citra aras keabuan memberikan kemungkinan warna yang lebih banyak. Format citra ini disebut dengan aras keabuan karena ada warna abu-abu diantara warna minimum (hitam) dan warna maksimum (putih).
Jumlah maksimum warna sesuai dengan bit penyimpanan yang digunakan, apakah 4 bit atau 8 bit. Citra dengan skala keabuan 4-bit memiliki 24 = 16 kemungkinan warna, yaitu 0 (minimal) hingga 15 (maksimal). Sementara citra digital dengan skala keabuan 8-bit memliki 28 = 256 kemungkinan warna, yaitu 0 (minimal) hingga 255 (maksimal).
Gambar 2.3 Contoh Citra Skala Keabuan 4-Bit dan Representasinya dalam Data Digital
(25)
Gambar 2.4 Contoh Citra Skala Keabuan 8-Bit
3. Citra warna (true color)
Pada citra warna (true color) setiap pixel-nya merupakan kombinasi dari tiga warna dasar merah, hijau, dan biru, sehingga citra warna ini disebut juga citra RGB (Red Green Blue). Setiap komponen warna memiliki intensitas sendiri dengan nilai minimum 0 dan nilai maksimum 255 (8-bit). Hal ini menyebabkan setiap pixel pada citra RGB membutuhkan media penyimpanan 3 byte. Jumlah kemungkinan kombinasi warna citra RGB adalah 224 = lebih dari 16 juta warna.
1 byte 1 byte 1 byte
Blue Green Red
Gambar 2.5 Format Penyimpanan Warna RGB
Gambar 2.6 Contoh Kombinasi Warna RGB sehingga Menghasilkan Warna Kuning
(26)
Gambar 2.7 Contoh Citra Warna dan Representasinya dalam Data Digital
Gambar 2.8 Contoh Citra RGB
4. Citra warna berindeks
Setiap pixel pada citra warna berindeks memiliki indeks dari suatu tabel warna yang tersedia (biasanya disebut palet warna). Keuntungan yang diperoleh dengan menggunakan palet warna ini adalah kita dapat dengan cepat memenipulasi warna tanpa harus mengubah informasi dari setiap pixel pada citra.
Indeks R G B
0 255 255 255
1 0 255 0
2 255 255 0
3 100 0 255
4 255 0 255
15 0 255 255
(27)
Berikut ini adalah gambar derajat keabuan yang mempresentasikan aras abu-abu dan aras warna pada citra digital dengan media penyimpanan 1-bit, 4-bit, 8-bit,dan 24-bit.
Gambar 2.10 Aras Warna Citra Digital 1-Bit
Gambar 2.11 Aras Abu-Abu dan Aras Warna pada Citra Digital 4-Bit
(28)
Gambar 2.13 Aras Abu-Abu dan Aras Warna pada Citra Digital 24-Bit (RGB)
2.1.1.2 Elemen dasar citra digital
Terdapat 6 elemen dasar citra digital sebagai berikut.
1. Kecerahan (Brightness), yaitu intensitas cahaya rata-rata dari suatu area yang
melingkupinya.
2. Kontras (Contrast), yaitu sebaran terang dan gelap pada sebuah citra. Sebuah
citra disebut kontras rendah jika komposisi citra tersebut sebagian besar terang atau sebagian besar gelap. Citra dengan kontras yang baik jika sebaran bagian terang dan gelap merata.
3. Kontur (Contour), yaitu keadaan yang ditimbulkan oleh perubahan intensitas
pixel-pixel yang berdekatan, sehingga kita dapat mendeteksi tepi objek pada suatu citra.
4. Warna (Color), yaitu persepsi yang dirasakan oleh sistem visual manusia
terhadap panjang gelombang cahaya yang dipantulkan oleh objek.
5. Bentuk (Shape), yaitu informasi yang ditangkap oleh sistem visual manusia
mengenai citra suatu objek.
6. Tekstur (Texture), yaitu distribusi spasial dari derajat keabuan di dalam
(29)
2.1.1.3 Struktur data citra digital
Suatu citra digital berbentuk matriks, di mana elemen-elemen matriks dapat diakses melalui indeksnya, yaitu baris dan kolom. Sebuah citra digital berukuran N x M, dengan keterangan sebagai berikut.
1. N = jumlah baris (panjang/tinggi matriks) 2. M = jumlah kolom (lebar matriks)
3. L = intensitas warna maksimal (derajat keabuan)
Gambar 2.14 Contoh Struktur Data Citra Digital
2.1.2 Citra bitmap
Bitmap atau .bmp adalah format citra digital yang paling umum dan merupakan format citra digital standar Windows. Ukuran file bitmap ini bisa sangat besar hingga Megabytes. File bitmap merupakan format citra digital yang belum terkompresi dan menggunakan warna RGB (Red, Green, Blue), sehingga setiap elemen pixel-nya merupakan hasil komposisi 3 komponen warna (merah, hijau, dan biru). Format data file bitmap dapat dilihat pada gambar berikut.
(30)
Gambar 2.15 Format Data File Bitmap
(Sumber
Gambar 2.16 Berkas Header Bitmap
(31)
Gambar 2.17 Berkas Image Bitmap berupa Information Header
(Sumber: http://lecturer.ukdw.ac.id/anton/download/multimedia2.pdf)
Gambar 2.18 Berkas Image Bitmap berupa Core Header
(32)
Gambar 2.19 Berkas Palet Warna Bitmap
(Sumber: http://lecturer.ukdw.ac.id/anton/download/multimedia2.pdf)
Gambar 2.20 Contoh Berkas Data Bitmap 2x2 Pixel, 24-Bit
(33)
2.2Steganografi
Steganografi berasal dari Bahasa Yunani, yaitu steganos (rahasia atau tersembunyi) dan graphy (tulisan atau gambar), sehingga steganografi memiliki arti tulisan tersembunyi. Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui. Steganografi dapat dipandang sebagai kelanjutan kriptografi dan dalam prakteknya pesan rahasia dienkripsi terlebih dahulu kemudian cipherteks disembunyikan di dalam media lain sehingga pihak ketiga tidak menyadari keberadaannya (Munir, 2006).
2.2.1 Konsep dan terminologi
Terdapat beberapa istilah yang berkaitan dengan steganografi:
1. Hiddentext atau embedded message, yaitu pesan yang disembunyikan.
2. Covertext atau cover-object, yaitu pesan yang digunakan untuk menyembunyikan embedded message.
3. Stegotext atau stego-object, yaitu pesan yang sudah berisi embedded message.
Di dalam steganografi digital, baik hiddentext maupun covertext dapat berupa teks, citra, audio maupun video.
(34)
Gambar 2.21 Contoh Covertext, Hiddentext, dan Stegotext
(Sumber: Sinaga, 2008)
Sebenarnya citra stegotext dan covertext tidak sama, citra tersebut mengalami sedikit perubahan akibat steganografi, namun mata manusia mempunyai sifat kurang peka terhadap perubahan kecil ini, sehingga manusia sukar membedakan mana gambar yang asli dan mana gambar yang sudah disisipkan (Munir, 2006).
Gambar 2.22 Diagram Penyisipan dan Ekstraksi Pesan Encoding
(embeddin)
covertext
hiddentext
key
Decoding (extraction)
stegotext
key
hiddentext covertext
(35)
Gambar 2.23 Diagram Penyisipan dan Ekstraksi Pesan
2.2.2 Teknik penyembunyian data
Teknik penyembunyian data ke dalam covertext dapat dilakukan dalam dua macam ranah:
1. Ranah spasial (waktu) (spatial time domain)
Teknik ini memodifikasi langsung nilai byte dari covertext (nilai byte dapat merepresentasikan intensitas/warna pixel atau amplitudo). Contoh metode yang termasuk ke dalam ranah spasial adalah metode LSB.
2. Ranah transform (transform domain)
Teknik ini memodifikasi langsung hasil transformasi frekuensi sinyal. Contoh metode yang tergolong ke dalam ranah frekuensi adalah spread spectrum (Munir, 2006).
2.2.3 Least significant bit
Metode LSB (Least Significant Bit) merupakan metode steganografi yang paling sederhana dan paling mudah diimplementasikan. Untuk menjelaskan metode ini, maka
(36)
digunakan citra digital sebagai covertext. Setiap pixel di dalam citra berukuran 1 sampai 3 byte. Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit paling berarti (most significant bit atau MSB) dan bit yang paling kurang berarti (least significant bit atau LSB). Misalnya pada byte 11010010, bit 1 yang pertama (digarisbawahi) adalah bit MSB dan bit 0 yang terakhir (digarisbawahi) adalah bit LSB. Bit yang cocok diganti dengan bit pesan adalah bit LSB, sebab modifikasi hanya mengubah nilai byte tersebut satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut di dalam gambar memberikan persepsi warna merah, maka perubahan satu bit LSB hanya mengubah persepsi warna merah tidak terlalu berarti. Mata manusia tidak dapat membedakan perubahan yang kecil ini.
Untuk membuat hidden text tidak dapat dilacak, bit-bit pesan tidak mengganti byte-byte yang berurutan, namun dipilih susunan byte secara acak. Misalnya jika terdapat 50 byte dan 6 bit data yang akan disembunyikan, maka byte yang akan diganti LSB-nya dipilih secara acak, misalnya byte nomor 36, 5, 21, 10, 18, 49.
Pada citra 8-bit yang berukuran 256 x 256 pixel terdapat 65536 pixel, setiap pixel berukuran 1 byte sehingga kita hanya dapat menyisipkan 1 bit pada setiap pixel. Pada citra 24-bit berukuran 256 x 256 pixel, satu pixel berukuran 3 byte (atau 1 byte untuk setiap komponen R, G, dan B), sehingga kita bisa menyisipkan sebanyak 65536 x 3 bit = 196608 bit atau 24576 byte (Munir, 2006).
Contoh penyembunyian pesan dengan menggunakan metode LSB ini adalah sebagai berikut. Misalkan data yang ingin disisipkan (disembunyikan) adalah teks berupa kata “secret”. Kata “secret” ini kemudian akan direpresentasikan dalam bentuk biner sebagai berikut.
(37)
Gambar 2.24 Kata “secret” Direpresentasikan dalam Bentuk Biner
Kemudian, setiap bit dari karakter penyusun kata “secret” akan disisipkan pada bit terakhir dari setiap byte media penampungnya. Berikut ini gambar contoh data media penampung sebelum disisipi pesan, contoh data (pesan) yang akan disisipkan, dan contoh data media penampung setelah disisipi pesan.
(38)
Gambar 2.26 Contoh Data yang Akan Disisipkan
Gambar 2.27 Contoh Data Media Penampung yang Telah Disisipi Pesan
Pada Gambar 2.27, angka yang dicetak tebal (bold) pada akhir setiap byte merupakan pesan yang disisipkan.
(39)
2.3Steganalisis
Steganalisis adalah teknik untuk mengetahui apakah ada pesan tersembunyi dalam suatu media. Teknik steganalisis yang akan digunakan adalah metode Enhanced LSB.
2.3.1 Enhanced LSB
Algoritma Enhanced LSB dikemukakan oleh Andreas Westfeld dan Andreas Pfitzmann. Ide dasar dari algoritma ini adalah bahwa nilai pencahayaan (luminance values) LSB pada suatu gambar tidaklah benar-benar acak, namun tetap menggambarkan bentuk gambar tersebut.
Untuk membedakan keacakan gambar dan isi dari suatu gambar, ataupun membedakan bit LSB dan bit acak pada gambar, merupakan hal yang sulit. Namun, pada gambar tersebut akan dilakukan substitusi, dengan maksud agar orang yang melihat dapat menyadari isi gambar tersebut. Walaupun gambar menjadi sedikit kabur, kemampuan manusia berimajinasi akan dapat mengenali gambar tersebut. Kemampuan manusia untuk membedakan apakah terdapat sebuah pesan ataukah hanya isi gambar inilah yang dimanfaatkan untuk melakukan steganalisis dengan pendekatan secara visual (visual attack).
Gambar 2.28 Struktur Proses Penyaringan
Prosesnya adalah dengan menggantikan nilai seluruh bit menjadi 1 jika nilai LSB pada suatu byte adalah 1, dan menggantikan seluruh bit menjadi 0 jika nilai LSB pada byte tersebut adalah 0. Gambar berikut adalah hasil enhanced LSB dari Gambar 2.27.
(40)
00000000 11111111 11111111 11111111 00000000 00000000 11111111 11111111 00000000 11111111 11111111 00000000 00000000 11111111 00000000 11111111 00000000 11111111 11111111 00000000 00000000 00000000 11111111 11111111 00000000 11111111 11111111 11111111 00000000 00000000 11111111 00000000 00000000 11111111 11111111 00000000 00000000 00000000 11111111 11111111 00000000 11111111 11111111 11111111 00000000 11111111 00000000 00000000
Gambar 2.29 Contoh Hasil Enhanced LSB
Gambar 2.30 Contoh Media Penampung dan Hasil Enhanced LSB Gambar Tersebut
Gambar hasil penyaringan atau telah di proses dengan metode Enhanced LSB dapat dibandingkan dengan gambar sebelumnya (gambar asal atau gambar stego-image). Jika pada gambar hasil enhanced LSB objek gambar terlihat menyerupai gambar asal, maka tidak terdapat pesan tersembunyi pada gambar tersebut. Namun, jika objek gambar hasil enhanced LSB tidak terlihat dengan jelas ataupun banyak terdapat kerusakan (noisy), maka pada gambar tersebut tersembunyi pesan rahasia.
(41)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem dilakukan untuk mengetahui dan menentukan berbagai kriteria yang dibutuhkan untuk membangun sistem. Berikut ini dilakukan analisis terhadap hal-hal yang berhubungan dengan sistem.
3.1.1 Citra digital bitmap
Citra digital bitmap merupakan format citra digital yang umum digunakan. Citra bitmap tidak terkompresi dan umumnya memiliki ukuran yang besar. Hal inilah yang menyebabkan citra bitmap banyak digunakan sebagai media penyimpanan pesan. Dengan jenis file yang tidak terkompresi, maka pesan rahasia tidak akan rusak akibat proses kompresi dan dekompresi. Begitu juga ukuran file yang besar, tidak menyebabkan kecurigaan akan adanya pesan rahasia.
Format data file bitmap terdiri dari file header, image header, color table, dan pixel data, dapat dilihat pada Gambar 2.15. Berikut ini penjelasan format data file bitmap.
1. File header
File header bitmap mengidentifikasikan file bitmap tersebut, berisi informasi mengenai jenis, ukuran dan tata letak berkas bitmap data.
(42)
2. Image header
Image header (information header) bitmap menentukan ukuran, tipe kompresi, dan format warna untuk bitmap tersebut.
3. Color table
Color table (color pallete) bitmap merupakan array terstruktur yang menentukan setiap warna dalam gambar. Setiap pixel data bitmap menyimpan sebuah nilai tunggal yang digunakan sebagai indeks pada palet warna. Informasi warna yang disimpan di dalam elemen pada suatu indeks mendefinisikan warna pixel tersebut.
Palet warna digunakan pada gambar bitmap 1-bit, 4-bit, dan 8-bit. Pada gambar bitmap 16-bit, 24-bit, dan 32-bit, tidak terdapat palet warna karena setiap pixel direpresentasikan oleh nilai data warna yang sebenarnya di area bitmap data.
4. Pixel data
Pixel data merupakan bagian dari file bitmap yang menyimpan informasi representasi kumpulan bit-bit warna yang membentuk gambar. Pixel data bitmap dimulai dari data offset hingga akhir file bitmap.
Pesan rahasia disisipkan pada bagian pixel data bitmap. Di mana bit terakhir dari suatu byte pixel data akan diganti dengan bit pesan. Pesan rahasia tidak disisipkan pada bagian lain selain pixel data bitmap, karena pengubahan bit terkahir pada byte lain selain byte data bitmap dapat merusak file gambar tersebut. Dengan demikian, proses mendeteksi kemungkinan adanya pesan akan dilakukan pada bagian pixel data bitmap yang dimulai dari data offset hingga akhir file bitmap.
3.1.2 Metode steganalisis
Metode steganalisis yang digunakan merupakan metode steganalisis Enhanced LSB. Seperti telah dijelaskan pada bab sebelumnya, metode ini memanfaatkan kemampuan manusia dalam mengenali objek gambar hasil enhanced LSB.
(43)
Metode ini akan mengubah nilai seluruh bit pada suatu byte pixel sesuai dengan nilai bit terkahir byte pixel tersebut. Berikut ini algoritma metode steganalisis Enhanced LSB.
1. Periksa bit terakhir dari setiap byte data.
2. Jika bit terakhir bernilai 0, ubah semua bit pada byte tersebut menjadi 0. Dan jika bit terakhir bernilai 1, ubah semua bit pada byte tersebut menjadi 1.
3. Perhatikan gambar setelah terjadi proses perubahan bit untuk menentukan apakah pada gambar tersebut terdapat pesan rahasia atau tidak.
3.1.3 Tindak lanjut terhadap pesan rahasia
Proses steganalisis akan memperlihatkan kemungkinan ada tidaknya pesan rahasia pada gambar. Jika pada gambar terdapat pesan rahasia, maka tindak lanjut yang akan dilakukan adalah melakukan ekstraksi terhadap pesan rahasia tersebut, sehingga isi pesan rahasia dapat diketahui.
3.1.4 Analisis cara kerja sistem
Sistem dibangun dengan tujuan dapat menganalisis suatu gambar bitmap sehingga dapat diketahui apakah pada gambar tersebut terdapat pesan rahasia atau tidak. Jika terdapat pesan rahasia, maka akan dilakukan ekstraksi pesan untuk mengetahui isi pesan rahasia tersebut.
Sistem akan menerima masukan berupa gambar dalam format bitmap. Kemudian gambar akan dianalisis dengan metode steganalisis Enhanced LSB. Lalu sistem akan memberikan keluaran berupa gambar hasil enhanced LSB. Jika pada gambar terdeteksi pesan rahasia, maka dapat diambil tindak lanjut dengan melakukan ekstraksi pesan rahasia.
(44)
3.1.5 Pemodelan Sistem
Alur kerja sistem akan digambarkan dengan menggunakan Unified Modeling Language (UML). UML merupakan salah satu standar pemodelan sistem untuk memvisualisasikan, merancang, dan mendokumentasikan perangkat lunak. Diagram-diagram UML yang akan digunakan untuk membangun sistem steganalisis ini adalah use case diagram, activity diagram, class diagram, dan sequence diagram.
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem dengan menekankan kepada apa yang diperbuat sistem. Sebuah use case merepresentasikan interaksi antara actor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, sementara actor merupakan entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjann tertentu.
Activity diagram menggambarkan alur aktivitas dalam sistem. Activity diagram juga dapat menggambarkan aktivitas paralel yang mungkin terjadi pada beberapa eksekusi pada sistem. Activity diagram merupakan state diagram secara khusus, di mana sebagian besar state berupa action.
Class diagram mendeskripsikan struktur dari kelas-kelas yang terdapat pada sebuah sistem. Class diagram dirancang untuk menentukan objek-objek yang dibutuhkan untuk perancangan sistem. Class diagram menggambarkan keadaan suatu sistem melalui atribut yang dimilikinya dan juga memiliki layanan untuk memanipulasi keadaan tersebut melalui metode/fungsi.
Sequence diagram menggambarkan interaksi antarobjek di dalam dan di sekitar objek berupa message yang digambarkan terhadap waktu. Pada sequence diagram, waktu merupakan dimensi vertikal, sementara objek merupakan dimensi horizontal. Pada umumnya, sequence diagram digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu.
(45)
Actor pada use case dan use case itu sendiri dapat diidentifikasi dengan menjawab beberapa pertanyaan sebagai berikut.
1. Siapa yang menggunakan sistem? Jawaban:
Pengguna.
2. Siapa yang diperlukan untuk melaksanakan fungsi pada sistem? Jawaban:
Pengguna.
3. Bagaimana aktor menggunakan sistem? Jawaban:
Pengguna mengakses halaman steganalisis untuk melakukan steganalisis untuk mendeteksi ada tidaknya pesan rahasia pada suatu gambar. Kemudian pengguna akan memilih gambar yang diinginkan dan melakukan proses steganalisis. Pengguna juga dapat mengekstraksi pesan pada gambar dengan mengakses halaman ekstraksi dan memilih gambar yang diinginkan untuk kemudian melakukan proses ekstraksi sehingga pesan tersembunyi dapat diketahui.
Dari pertanyaan-pertanyaan tersebut, maka dapat ditentukan bahwa actor adalah pengguna. Use case dapat ditentukan dari hal-hal yang dilakukan oleh pengguna. Hal-hal yang dilkukan oleh pengguna adalah sebagai berikut:
1. Mengakses halaman steganalisis untuk kemudian mendeteksi ada tidaknya pesan rahasia pada suatu gambar.
2. Menentukan gambar yang akan dianalisis. 3. Melakukan proses analisis.
4. Mengakses halaman ekstraksi untuk kemudian mengekstraksi pesan tersembunyi pada gambar.
5. Menentukan gambar yang akan diekstraksi. 6. Melakukan proses ekstraksi.
(46)
3.1.6 Bahasa pemrograman
Sistem ini akan dibangun dengan menggunakan bahasa pemrograman Java, melalui platform NetBeans IDE 6.8. NetBeans adalah sebuah Integrated Development Environment (IDE) yang open source.
3.2 Perancangan Sistem
Berikut ini dijelaskan perancangan sistem dengan menggunakan flowchart dan UML, serta perancangan antarmuka sistem.
3.2.1 Gambaran umum sistem
Gambaran umum alur kerja sistem akan digambarkan dalam bentuk flowchart, sebagai berikut.
(47)
Mulai Halaman utama Steganografi? Lakukan steganalisis terhadap gambar Lakukan ekstraksi pesan terhadap gambar Selesai Pilih Gambar yang akan dianalisis Halaman steganalisis Halaman ekstraksi pesan Pilih Gambar yang akan diekstraksi Hasil steganalisis Hasil ekstraksi Tuliskan pesan yang akan disisipkan Halaman steganografi Pilih gambar yang akan disisipi pesan Hasil steganografi Lakukan penyisipan pesan terhadap gambar Ekstraksi Pesan? Steganalisis? Ingin mengulangi? Ingin mengulangi? Ingin mengulangi? Ya Tidak Ya Tidak Ya Tidak Tidak Tidak Tidak Ya Ya Ya
Gambar 3.1 Flowchart Gambaran Umum Sistem
3.2.2 Use case diagram
Fungsionalitas sistem digambarkan dalam bentuk use case diagram. Sementara activity diagram menggambarkan alur aktivitas sistem. Berikut ini use case diagram dari aplikasi steganalisis.
(48)
Gambar 3.2 Use Case Aplikasi Steganalisis
(49)
3.2.2.1 Use case Steganografi
Spesifikasi use case Steganografi dapat dilihat pada tabel berikut.
Tabel 3.1 Spesifikasi Use Case Steganografi
Name Steganografi
Actors Pengguna
Trigger Pengguna memilih menu Steganografi.
Preconditions Pengguna menggunakan aplikasi steganalisis. Post Conditions Pengguna dapat melihat hasil steganografi. Success Scenario 1. Pengguna memilih menu Steganografi.
2. Sistem menampilkan halaman Steganografi.
3. Pengguna memilih gambar yang diinginkan, menuliskan pesan yang akan disisipkan, dan mengeksekusi tombol Sisip.
4. Sistem melakukan proses steganografi terhadap gambar dan menampilkan hasil steganografi.
5. Pengguna dapat melihat hasil steganografi. Alternative Flows -
3.2.2.2 Use case Pilih Gambar (menu Steganografi)
Spesifikasi use case Pilih Gambar (menu Steganografi) dapat dilihat pada tabel berikut.
Tabel 3.2 Spesifikasi Use Case Pilih Gambar (menu Steganografi)
Name Pilih Gambar
Actors Pengguna
Trigger Pengguna memilih menu Steganografi.
Preconditions Pengguna mengakses menu Steganografi.
(50)
pengguna.
Success Scenario 1. Pengguna memilih menu Steganografi. 2. Sistem menampilkan halaman Steganografi. 3. Pengguna mengeksekusi tombol Pilih Gambar. 4. Sistem menampilkan pop-up window untuk
dapat mengakses lokasi penyimpanan gambar. 5. Pengguna memilih gambar yang diinginkan. 6. Sistem menampilkan gambar yang dipilih oleh
pengguna.
7. Pengguna dapat melihat gambar yang telah dipilih.
Alternative Flows -
3.2.2.3 Use case Tulis Pesan
Spesifikasi use case Tulis Pesan dapat dilihat pada tabel berikut.
Tabel 3.3 Spesifikasi Use Case Tulis Pesan
Name Tulis Pesan
Actors Pengguna
Trigger Pengguna telah menentukan gambar yang akan
dianalisis.
Preconditions Pengguna mengakses menu Steganografi.
Post Conditions Pengguna dapat melihat pesan yang akan disisipkan.
Success Scenario Pengguna telah menentukan gambar yang akan
disisipi pesan dan kemudian menuliskan pesan yang akan disisipkan ke dalam gambar.
(51)
3.2.2.4 Use case Sisip
Spesifikasi use case Sisip dapat dilihat pada tabel berikut.
Tabel 3.4 Spesifikasi Use Case Sisip
Name Sisip
Actors Pengguna
Trigger Pengguna telah menuliskan pesan yang akan
disisipkan.
Preconditions Pengguna mengakses menu Steganografi. Post Conditions Sistem menampilkan gambar hasil steganografi.
Success Scenario 1. Pengguna telah menuliskan pesan yang akan
disisipkan dan kemudian menekan tombol Sisip. 2. Sistem melakukan proses penyisipan pesan ke
dalam gambar dan menampilkan hasil steganografi.
3. Pengguna dapat melihat hasil steganografi. Alternative Flows -
3.2.2.5 Use case Steganalisis
Spesifikasi use case Steganalisis dapat dilihat pada tabel berikut.
Tabel 3.5 Spesifikasi Use Case Steganalisis
Name Steganalisis
Actors Pengguna
Trigger Pengguna memilih menu Steganalisis.
Preconditions Pengguna menggunakan aplikasi steganalisis. Post Conditions Pengguna dapat melihat hasil steganalisis. Success Scenario 1. Pengguna memilih menu Steganalisis.
(52)
3. Pengguna memilih gambar yang diinginkan dan mengeksekusi tombol Analisis.
4. Sistem melakukan proses steganalisis terhadap gambar dan menampilkan hasil steganalisis.
5. Pengguna dapat melihat hasil steganalisis. Alternative Flows -
3.2.2.6 Use case Pilih Gambar (menu Steganalisis)
Spesifikasi use case Pilih Gambar (menu Steganalisis) dapat dilihat pada tabel berikut.
Tabel 3.6 Spesifikasi Use Case Pilih Gambar (menu Steganalisis)
Name Pilih Gambar
Actors Pengguna
Trigger Pengguna memilih menu Steganalisis.
Preconditions Pengguna mengakses menu Steganalisis.
Post Conditions Sistem menampilkan gambar yang dipilih oleh
pengguna.
Success Scenario 1. Pengguna memilih menu Steganalisis. 2. Sistem menampilkan halaman Steganalisis. 3. Pengguna mengeksekusi tombol Pilih Gambar. 4. Sistem menampilkan pop-up window untuk
dapat mengakses lokasi penyimpanan gambar. 5. Pengguna memilih gambar yang diinginkan. 6. Sistem menampilkan gambar yang dipilih oleh
pengguna.
7. Pengguna dapat melihat gambar yang telah dipilih.
(53)
3.2.2.7 Use case Analisis
Spesifikasi use case Analisis dapat dilihat pada tabel berikut.
Tabel 3.7 Spesifikasi Use Case Analisis
Name Analisis
Actors Pengguna
Trigger Pengguna telah menentukan gambar yang akan
dianalisis.
Preconditions Pengguna mengakses menu Steganalisis. Post Conditions Sistem menampilkan gambar hasil steganalisis. Success Scenario 1. Pengguna telah menentukan gambar yang akan
dianalisis dan kemudian menekan tombol Analisis.
2. Sistem melakukan proses steganalisis dan menampilkan hasil steganalisis.
3. Pengguna dapat melihat hasil steganalisis. Alternative Flows -
3.2.2.8 Use case Ekstraksi Pesan
Spesifikasi use case Ekstraksi Pesan dapat dilihat pada tabel berikut.
Tabel 3.8 Spesifikasi Use Case Ekstraksi Pesan
Name Ekstraksi Pesan
Actors Pengguna
Trigger Pengguna memilih menu Ekstraksi Pesan.
Preconditions Pengguna menggunakan aplikasi steganalisis. Post Conditions Pengguna dapat melihat hasil ekstraksi. Success Scenario 1. Pengguna memilih menu Ekstraksi Pesan.
(54)
3. Pengguna memilih gambar yang diinginkan dan mengeksekusi tombol Ekstraksi.
4. Sistem melakukan proses ekstraksi terhadap gambar dan menampilkan hasil ekstraksi.
5. Pengguna dapat melihat pesan tersembunyi hasil ekstraksi.
Alternative Flows -
3.2.2.9 Use case Pilih Gambar (menu Ekstraksi Pesan)
Spesifikasi use Pilih Gambar (menu Ekstraksi Pesan) dapat dilihat pada tabel berikut.
Tabel 3.9 Spesifikasi Use Case Pilih Gambar (menu Ekstraksi Pesan)
Name Pilih Gambar
Actors Pengguna
Trigger Pengguna memilih menu Ekstraksi Pesan.
Preconditions Pengguna mengakses menu Ekstraksi Pesan.
Post Conditions Sistem menampilkan gambar yang dipilih oleh
pengguna.
Success Scenario 1. Pengguna memilih menu Ekstraksi Pesan. 2. Sistem menampilkan halaman Ekstraksi Pesan. 3. Pengguna mengeksekusi tombol Pilih Gambar. 4. Sistem menampilkan pop-up window untuk
dapat mengakses lokasi penyimpanan gambar. 5. Pengguna memilih gambar yang diinginkan. 6. Sistem menampilkan gambar yang dipilih oleh
pengguna.
7. Pengguna dapat melihat gambar yang telah dipilih.
(55)
3.2.2.10 Use case Ekstraksi
Spesifikasi use case Ekstraksi dapat dilihat pada tabel berikut.
Tabel 3.10 Spesifikasi Use Case Ekstraksi
Name Ekstraksi
Actors Pengguna
Trigger Pengguna telah menentukan gambar yang akan
diekstraksi.
Preconditions Pengguna mengakses menu Ekstraksi Pesan. Post Conditions Sistem menampilkan pesan tersembunyi.
Success Scenario 1. Pengguna telah menentukan gambar yang akan diekstraksi dan kemudian menekan tombol Ekstraksi.
2. Sistem melakukan proses ekstraksi pesan dan menampilkan hasil ekstraksi.
3. Pengguna dapat melihat pesan tersembunyi. Alternative Flows -
3.2.3 Activity diagram
Alur kerja pada use case digambarkan dalam bentuk activity diagram. Berikut ini activity diagram untuk masing-masing use case yang terdapat pada aplikasi steganalisis.
3.2.3.1 Activity diagram untuk use case Steganografi
(56)
Gambar 3.3 Activity Diagram untuk Use Case Steganografi
3.2.3.2 Activity diagram untuk use case Pilih Gambar (menu Steganografi)
Activity diagram untuk use case Pilih Gambar (menu Steganografi) dapat dilihat pada gambar berikut.
(57)
Gambar 3.4 Activity Diagram untuk Use Case Pilih Gambar (Menu Steganografi)
3.2.3.3 Activity diagram untuk use case Tulis Pesan
Activity diagram untuk use case Tulis Pesan dapat dilihat pada gambar berikut.
(58)
3.2.3.4 Activity diagram untuk use case Sisip
Activity diagram untuk use case Sisip dapat dilihat pada gambar berikut.
Gambar 3.6 Activity Diagram untuk Use Case Sisip
3.2.3.5 Activity diagram untuk use case Steganalisis
(59)
Gambar 3.7 Activity Diagram untuk Use Case Steganalisis
3.2.3.6 Activity diagram untuk use case Pilih Gambar (menu Steganalisis)
Activity diagram untuk use case Pilih Gambar (menu Steganalisis) dapat dilihat pada gambar berikut.
(60)
Gambar 3.8 Activity Diagram untuk Use Case Pilih Gambar (Menu Steganalisis)
3.2.3.7 Activity diagram untuk use case Analisis
Activity diagram untuk use case Analisis dapat dilihat pada gambar berikut.
(61)
3.2.3.8 Activity diagram untuk use case Ekstraksi Pesan
Activity diagram untuk use case Ekstraksi Pesan dapat dilihat pada gambar berikut.
Gambar 3.10 Activity Diagram untuk Use Case Ekstraksi Pesan
3.2.3.9 Activity diagram untuk use case Pilih Gambar (menu Ekstraksi Pesan)
Activity diagram untuk use case Pilih Gambar (menu Ekstraksi Pesan) dapat dilihat pada gambar berikut.
(62)
Gambar 3.11 Activity Diagram untuk Use Case Pilih Gambar (Menu Ekstraksi Pesan)
3.2.3.10 Activity diagram untuk use case Ekstraksi
Activity diagram untuk use case Ekstraksi dapat dilihat pada gambar berikut.
(63)
3.2.4 Class diagram
Class diagram menggambarkan hubungan antarkelas dalam sistem yang sedang dibangun. Setiap kelas memiliki attributes dan methods sesuai dengan yang dibutuhkan. Berikut ini class diagram dari Aplikasi Steganalisis.
Gambar 3.13 Class Diagram Aplikasi Steganalisis
Berikut ini akan dijelaskan kegunaan dari masing-masing class pada class diagram aplikasi steganalisis.
(64)
Tabel 3.11 Kegunaan Class-Class pada Class Diagram Aplikasi Steganalisis
Class Kegunaan
javax.swing Merepresentasikan tampilan visual (GUI) pada aplikasi java.
java.awt.AWTEvent Menjembatani interaksi pengguna secara langsung dengan komponen yang terdapat pada sistem.
AppFrame Halaman utama aplikasi.
Steganografi Proses penyisipan pesan dilakukan melaui halaman ini.
Steganalisis Proses steganalisis dilakukan melalui halaman ini.
EkstraksiPesan Proses ekstraksi pesan dilakukan melalui halaman ini.
FileFilter Melakukan penyaringan terhadap file gambar yang akan dipilih.
Metode Memproses penyisipan pesan, steganalisis dan ekstraksi pesan.
Bitmap Mengidentifikasi gambar bitmap.
3.2.5 Sequence diagram
Sequence diagram menjelaskan urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case. Langkah-langkah proses penyisipan pesan ke dalam gambar, analisis dengan menggunakan metode Enhanced LSB, dan ekstraksi pesan digambarkan dalam sequence diagram berikut ini.
(65)
3.2.5.1 Sequence diagram untuk proses penyisipan pesan dengan metode LSB
Penyisipan pesan dengan metode LSB dilakukan dengan cara meyisipkan setiap bit pesan ke dalam bit LSB pada setiap byte pixel data. Sequence diagram untuk proses penyisipan pesan dengan metode LSB dapat dilihat pada gambar berikut ini.
(66)
(67)
3.2.5.2 Sequence diagram untuk metode Enhanced LSB
Metode steganalisis Enhanced LSB akan memeriksa LSB dari setiap byte pixel data dan kemudian mengubah nilai byte tersebut sesuai dengan nilai LSB byte tersebut seperti yang telah dijelaskan sebelumnya. Sequence diagram untuk metode Enhanced LSB dapat dilihat pada gambar berikut ini.
(68)
3.2.5.3 Sequence diagram untuk proses ekstraksi pesan
Proses ekstraksi pesan dilakukan dengan cara mengambil nilai LSB dari setiap byte pixel data kemudian merangkainya menjadi susunan karakater membentuk kata atau kalimat sesuai dengan pesan yang disisipkan. Sequence diagram untuk proses ekstraksi pesan dapat dilihat pada gambar berikut ini.
Gambar 3.16 Sequence Diagram Proses Ekstraksi Pesan
3.2.6 Perancangan antarmuka sistem
Perancangan antarmuka sistem merepresentasikan antarmuka sistem terhadap pengguna. Berikut ini adalah rancangan antarmuka aplikasi steganalisis yang akan dibangun.
(69)
3.2.6.1 Halaman utama aplikasi
Halaman utama aplikasi menampilkan tampilan awal aplikasi. Terdapat 3 buah menu, yaitu menu Steganografi, Steganalisis, dan Ekstraksi Pesan. Perancangan antarmuka halaman utama aplikasi dapat dilihat pada gambar berikut.
Steganalisis Ekstraksi Pesan Aplikasi Steganalisis
APLIKASI STEGANALISIS
Anggarani Novitasari 061401051
Oleh:
Aplikasi sederhana untuk mendeteksi ada tidaknya pesan rahasia pada gambar bitmap 24 bit.
Steganografi
Gambar 3.17 Perancangan Antarmuka Halaman Utama Aplikasi
3.2.6.2 Halaman steganografi
Halaman Steganografi dapat diakses oleh pengguna dengan memilih menu Steganografi pada menubar. Perancangan antarmuka halaman Steganografi dapat dilihat pada gambar berikut.
(70)
Aplikasi Steganalisis
Pilih Gambar Sisip
Gambar yang akan disisipi pesan
Pesan yang akan disisispkan ke dalam gambar
Gambar Awal Pesan yang akan disisipkan
Steganografi
Lokasi Gambar Awal
Steganalisis Ekstraksi Pesan
Steganografi
Gambar yang telah disisipi pesan
Informasi mengenai penyisipan pesan ke dalam gambar
Gambar dengan Pesan Tersembunyi Informasi penyisipan pesan
Lokasi Gambar Hasil Steganalisis
Gambar 3.18 Perancangan Antarmuka Halaman Steganografi
Pada halaman Steganografi terdapat tombol Pilih Gambar, textarea untuk menuliskan pesan rahasia, dan tombol Sisip. Pengguna akan memilih gambar terlebih dahulu melalui tombol Pilih Gambar. Gambar yang telah dipilih oleh pengguna akan ditampilkan pada scrollpane di bawah tombol Pilih Gambar. Di bawah gambar, terdapat informasi mengenai lokasi penyimpanan gambar. Kemudian, pengguna menuliskan pesan rahasia yang ingin disisipkan pada textarea yang tersedia dan melalui tombol Sisip, gambar yang telah dipilih akan disisipkan pesan rahasia yang telah ditentukan. Gambar yang telah disisipi pesan sebagai hasil steganografi akan ditampilkan pada scrollpane di bawah scrollpane Gambar Awal. Di bawah gambar ini juga terdapat informasi mengenai lokasi penyimpanan gambar.
3.2.6.3 Halaman steganalisis
Halaman Steganalisis dapat diakses oleh pengguna dengan memilih menu Steganalisis pada menubar. Perancangan antarmuka halaman Steganalisis dapat dilihat pada gambar berikut.
(71)
Aplikasi Steganalisis
Pilih Gambar Analisis
Gambar yang akan dianalisis
Hasil Steganalisis
Gambar Awal Hasil Steganalisis
Steganalisis
Lokasi Gambar Awal
Ukuran Gambar: Nama Gambar: Informasi Gambar
Steganalisis Ekstraksi Pesan Steganografi
Gambar 3.19 Perancangan Antarmuka Halaman Steganalisis
Pada halaman Steganalisis terdapat tombol Pilih Gambar dan Analisis. Pengguna akan memilih gambar terlebih dahulu melalui tombol Pilih Gambar. Gambar yang telah dipilih oleh pengguna akan ditampilkan pada scrollpane di bawah tombol Pilih Gambar. Di bawah gambar, terdapat informasi mengenai lokasi gambar pada komputer, nama gambar, dan ukuran gambar. Kemudian, melalui tombol Analisis, gambar yang telah dipilih akan mengalami proses steganalisis, dan hasil steganalisis akan ditampilkan pada scrollpane di bawah tombol Analisis. Hasil steganalisis secara otomatis akan tersimpan pada lokasi yang sama dengan gambar yang dipilih.
3.2.6.4 Halaman ekstraksi pesan
Halaman Steganalisis dapat diakses oleh pengguna dengan memilih menu Ekstraksi Pesan pada menubar. Perancangan antarmuka halaman Ekstraksi Pesan dapat dilihat pada gambar berikut.
(72)
Aplikasi Steganalisis
Pilih Gambar Ekstraksi
Gambar yang akan diekstraksi
Pesan tersembunyi hasil
ekstraksi
Gambar Awal Pesan Hasil Ekstraksi
Ekstraksi Pesan
Lokasi Gambar Awal
Ukuran Gambar: Nama Gambar: Informasi Gambar
Steganalisis Ekstraksi Pesan
Steganografi
Gambar 3.20 Perancangan Antarmuka Halaman Ekstraksi Pesan
Pada halaman Ekstraksi Pesan terdapat tombol Pilih Gambar dan Ekstraksi. Pengguna akan memilih gambar terlebih dahulu melalui tombol Pilih Gambar. Gambar yang telah dipilih oleh pengguna akan ditampilkan pada scrollpane di bawah tombol Pilih Gambar. Di bawah gambar, terdapat informasi mengenai lokasi gambar pada komputer, nama gambar, dan ukuran gambar. Kemudian, melalui tombol Ekstraksi, gambar yang telah dipilih akan mengalami proses ekstraksi, dan pesan tersembunyi hasil ekstraksi akan ditampilkan pada textarea di bawah tombol Ekstraksi.
(73)
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi
Penentuan berbagai kriteria yang dibutukan untuk membangun sistem telah dilakukan pada tahap analisis dan perancangan sistem. Selanjutnya, berdasarkan hasil analisis dan perancangan sistem tersebut, dilakukan implementasi pembangunan sistem. Implementasi sistem dibangun dengan menggunakan Integrated Development Environment (IDE) NetBeans 6.8.
Berikut ini adalah konfigurasi dalam mengimplementasikan hasil analisis dan perancangan sistem serta tampilan aplikasi hasil implementasi.
4.1.1 Konfigurasi perangkat keras
Dalam proses pengimplementasian sistem, spesifikasi perangkat keras komputer yang digunakan adalah sebagai berikut:
1. Prosesor Intel Core 2 Duo T6400. 2. Memori RAM 3 GB.
3. Hard disk 240 GB.
4. VGA NVIDIA GeForce G 103 M.
(74)
4.1.2 Konfigurasi perangkat lunak
Pada saat melakukan proses implementasi sistem, sistem operasi yang digunakan adalah Windows Vista Ultimate. Perangkat lunak yang digunakan dalam pengimplementasian sistem adalah sebagai berikut:
1. Java Standard Edition Development Kit (JDK) 6.0 Update 17. 2. NetBeans IDE 6.8.
4.1.3 Tampilan penggunaan aplikasi
Hasil analisis dan perancangan sistem yang telah diimplementasikan dapat dilihat dalam gambar-gambar tampilan penggunaan aplikasi berikut.
4.1.3.1 Halaman utama aplikasi
Halaman utama aplikasi merupakan halaman awal yang ditampilkan saat aplikasi steganalisis dijalankan. Pada halaman ini terdapat informasi mengenai aplikasi dan pembuat aplikasi. Berikut ini adalah tampilan halaman utama aplikasi steganalisis.
(75)
4.1.3.2 Halaman steganografi
Untuk dapat mengakses halaman steganografi, pengguna hanya perlu memilih menu Steganografi pada menubar aplikasi. Pada halaman steganografi, terdapat dua buah tombol, yaitu tombol Pilih Gambar untuk memilih gambar yang diinginkan, dan tombol Analisis untuk mengeksekusi proses penyisipan pesan ke dalam gambar. Juga terdapat dua buah textarea yang digunakan untuk menuliskan pesan yang ingin disisipkan dan yang berisikan informasi penyisipan pesan. Gambar yang dipilih oleh pengguna melalui tombol Pilih Gambar akan ditampilkan pada scrollpane Gambar Awal. Sementara gambar hasil steganografi akan ditampilkan pada scrollpane Gambar dengan Pesan Tersembunyi. Berikut ini adalah gambar tampilan halaman steganografi.
(76)
4.1.3.3 Halaman steganalisis
Untuk dapat mengakses halaman steganalisis, pengguna hanya perlu memilih menu Steganalisis pada menubar aplikasi. Pada halaman steganalisis, terdapat dua buah tombol, yaitu tombol Pilih Gambar untuk memilih gambar yang diinginkan, dan tombol Analisis untuk mengeksekusi proses steganalisis terhadap gambar. Gambar yang dipilih oleh pengguna melalui tombol Pilih Gambar akan ditampilkan pada scrollpane Gambar Awal. Begitu juga dengan gambar hasil steganalisis akan ditampilkan pada scrollpane Gambar Hasil Steganalisis. Terdapat beberapa informasi mengenai gambar awal yang ditampilkan, seperti lokasi gambar pada komputer, nama gambar, dan ukuran gambar. Berikut ini adalah gambar tampilan halaman steganalisis.
Gambar 4.3 Tampilan Halaman Steganalisis
4.1.3.4 Halaman ekstraksi pesan
Untuk dapat mengakses halaman ekstraksi pesan, pengguna hanya perlu memilih menu Ekstraksi Pesan pada menubar aplikasi. Pada halaman ekstraksi pesan, terdapat
(77)
dua buah tombol, yaitu tombol Pilih Gambar untuk memilih gambar yang diinginkan, dan tombol Ekstraksi untuk mengeksekusi proses ekstraksi pesan terhadap gambar. Gambar yang dipilih oleh pengguna melalui tombol Pilih Gambar akan ditampilkan pada scrollpane Gambar Awal. Begitu juga dengan pesan hasil ekstraksi akan ditampilkan pada scrollpane Pesan Hasil Ekstraksi. Terdapat beberapa informasi mengenai gambar awal yang ditampilkan, seperti lokasi gambar pada komput er, nama gambar, dan ukuran gambar. Berikut ini adalah gambar tampilan halaman pesan hasil ekstraksi.
Gambar 4.4 Tampilan Halaman Ekstraksi Pesan
4.2 Metode Enhanced LSB
Metode steganalisis Enhanced LSB yang digunakan dalam aplikasi ini akan diperlihatkan dalam potongan program berikut.
public void EnhancedLSB() throws IOException { Bitmap bmpimg = new Bitmap();
bmpimg.readBitmapFile(this.bitmapInputName); int[] data = bmpimg.getPixelData();
(78)
for(int i = 0, n = data.length; i < n; i++) {
int curData = bmpimg.getCurrentByte(i); int newCurData = this.cekLSB(curData); bmpimg.setCurrentByte(i, newCurData); }
bmpimg.saveBitmapFile(this.bitmapInputName + "- analysis.bmp");
}
private int cekLSB(int aData) { if (aData % 2 == 0) { return 0; } else { return 255; } }
Pada potongan program di atas, terdapat 2 buah fungsi utama yang digunakan pada metode steganalisis Enhanced LSB, yaitu metode EnhancedLSB() dan cekLSB(int). Metode EnhancedLSB() membuat sebuah objek dari kelas Bitmap untuk mendapatkan informasi bit-bit pixel data bitmap dari gambar yang telah dipilih oleh pengguna. Kemudian, setiap byte pixel data bitmap akan dicek apakah LSB-nya bernilai 1 atau 0 dengan menggunakan metode cekLSB(int). Metode cekLSB(int) menerima masukan berupa int dan mengembalikan nilai int 0 atau 255 sebagai nilai byte baru untuk mengubah byte pixel masukan.
4.3 Pengujian Sistem
Pengujian sistem dilakukan untuk membuktikan bahwa aplikasi steganalisis telah bekerja sesuai dengan rancangan aplikasi sistem. Pengujian sistem dilakukan dengan melakukan uji coba terhadap fungsi sistem yang telah dibangun. Berikut ini pengujian sistem berdasarkan proses penyisipan pesan, proses steganalisis dan proses ekstraksi pesan.
(1)
Panduan Tata Cara Penulisan Tugas Akhir. 2009. Dokumen Nomor: Akad/05/2005.
Medan: Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas
Sumatera Utara.
Paryono, P., Kurniawan, E., dan Wibowo, E. 29 Maret 2010. Citra Digital.
Pengolahan Citra (Image Processing). 29 Maret 2010.
Pengolahan Citra: Konsep Dasar. 21 Mei 2010.
http://rosni-gj.staff.gunadarma.ac.id/Downloads/files/15421/Konsep%2BDasar%2BCitra.p
df.
Purnomo, W. dan Zulkaryanto, E. 2 Agustus 2010. Java Library dan Java Swing.
Rachmat, A. dan Roswanto, A. 21 April 2010. Teks, Gambar, dan Grafik.
Raggo, M. T. 29 Maret 2010. Steganography, Steganalysis, & Cryptanalysis.
Sinaga, Y. A. 2008. Program Steganalisis Metode LSB pada Citra dengan Enhanced
LSB, Uji Chi-Square, dan RS-Analysis. Bandung, Indonesia: Institut Teknologi
Bandung.
Steganografi.
16 Juni 2010.
Sumirat, L. B. 24 November 2010. Membuat Class Diagram.
netbeans.pdf.
Tjong, A. 20 Juni 2010. Steganografi: 2. (LSB) Least Signifiant Bit.
significant-bit/.
Westfeld, A. dan Pfitzmann, A. Attacks on Steganographic Systems. Dresden,
Germany: Dresden University of Technology.
(2)
LAMPIRAN A: SOURCE CODE PROGRAM CLASS METODE
package steganalisis;
import java.io.IOException;
public class Metode {
public String bitmapInputName; public String bitmapOutputName; public int[] buffer;
public int panjangPesan; public String pesan; public int bitmapMsgSize; public String bitmapMsg; private int c, j, p; private int hasil; private int posisi;
public void EnhancedLSB() throws IOException { Bitmap bmpimg = new Bitmap();
bmpimg.readBitmapFile(this.bitmapInputName); int[] data = bmpimg.getPixelData();
for(int i = 0, n = data.length; i < n; i++) { int curData = bmpimg.getCurrentByte(i); int newCurData = this.cekLSB(curData); bmpimg.setCurrentByte(i, newCurData); }
bmpimg.saveBitmapFile(this.bitmapInputName + "-analysis.bmp");
}
private int cekLSB(int aData) { if (aData % 2 == 0) {
return 0; }
else {
return 255; }
}
public String Ekstraksi() throws IOException { Bitmap bmpimg = new Bitmap();
bmpimg.readBitmapFile(this.bitmapInputName);
buffer = bmpimg.getPixelData(); posisi = 0;
panjangPesan = 0; // ambil panjang pesan for (j = 0; j < 8; j++) { this.ambilPanjangPesan(); }
pesan = "";
for (int i = 0; i < panjangPesan && posisi < buffer.length; i++) {
(3)
this.bacaPesan(); }
return pesan; }
private void ambilPanjangPesan() {
int t = buffer[posisi]; // data bitmap di posisi yg sesuai
int bit = ((t & 1) == 1 ? 1 : 0); // apakah bit ke-j bernilai 1 atau 0
panjangPesan += bit << j;
++posisi; // ke posisi berikutnya }
private void bacaPesan() { char karakter = 0;
for (j = 0; j < 8 && posisi < buffer.length; j++) { int t = buffer[posisi]; // data bitmap di posisi yg sesuai
int bit = ((t & 1) == 1 ? 1 : 0); // apakah bit ke-j bernilai 1 atau 0
karakter += bit << j;
++posisi; // ke posisi berikutnya }
pesan += karakter; }
public boolean apakahBitmap24BitNoCompress() throws IOException { Bitmap bmpimg = new Bitmap();
bmpimg.readBitmapFile(this.bitmapInputName); int[] buf = bmpimg.buffer;
//bitmap BM
if (buf[0x0] == 0x42 && buf[0x1] == 0x4D) { // bitmap 24bit
int bitPerPiksel = buf[0x1C] + (buf[0x1D] << 8); if (bitPerPiksel == 24) {
//bitmap tidak terkompresi
if ((buf[0x1E] + (buf[0x1F] << 8) + (buf[0x20] << 16) + (buf[0x21] << 24)) == 0) {
//bitmap tdk terkompresi return true;
} else {
//bitmap terkompresi return false;
} } else {
// bitmap bukan 24 bit return false;
} } else {
// bukan bitmap return false; }
}
public boolean SisipLSB() throws IOException { Bitmap bmpImg = new Bitmap();
(4)
bmpImg.readBitmapFile(this.bitmapInputName); buffer = bmpImg.getPixelData();
int imgSize = bmpImg.bfSize; int curP = 0;
if((bitmapMsgSize*8+8) <= imgSize) { //simpan panjang pesan
for (j = 0, p = 0; j < 8 && p < buffer.length; j++, p++){ this.sisipPanjangPesan();
int aData = hasil;
bmpImg.setCurrentByte(p, aData); ++curP; //ke posisi berikutnya }
for (int i = 0; i < bitmapMsgSize; i++) {
// 1 karakter pada pesan, terdiri dari 8 bit c = bitmapMsg.charAt(i);
// 8 bit pada 1 karakter pesan tersebut ditempatkan ke dalam 8 byte data bitmap
for (j = 0, p = curP; j < 8 && p < buffer.length; j++, p++) {
this.sisipPesan(); int aData = hasil; // tulis ke BMP output
bmpImg.setCurrentByte(p, aData); ++curP;
// ke posisi berikutnya }
}
bmpImg.saveBitmapFile(this.bitmapOutputName); return true;
} else {
// tempat tidak cukup return false;
} }
private int sisipPanjangPesan() {
int t = buffer[p]; // data bitmap di posisi yg sesuai
int bit = ((bitmapMsgSize & (1 << j)) == (1 << j) ? 1 : 0); // apakah bit ke-j bernilai 1 atau 0
hasil = (bit == 1 ? (t | 0x1) : (t & (0xFF << 1))); // sisipkan ke LSB
return hasil; }
private int sisipPesan() {
int t = buffer[p]; // data bitmap di posisi yg sesuai
int bit = ((c & (1 << j)) == (1 << j) ? 1 : 0); // apakah bit ke-j pada pesan bernilai 1 atau 0
hasil = (bit == 1 ? (t | 0x1) : (t & (0xFF << 1))); // sisipkan ke LSB
return hasil; }
(5)
LAMPIRAN B: SOURCE CODE PROGRAM CLASS BITMAP
package steganalisis;
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;
public class Bitmap {
FileInputStream fin; FileOutputStream fout;
int[] buffer;
int[] biHeader; int[] bfHeader; int[] bufData;
// Bitmap file header int bfSize;
public void getFileHeader() {
bfSize = buffer[0x2] + (buffer[0x3] << 8) + (buffer[0x4] << 16) + (buffer[0x5] << 24);
bfHeader = new int[14];
for(int a = 0, b = 14; a < b; a++) { bfHeader[a] = buffer[a];
} }
public void getInfoHeader() { biHeader = new int[40];
for(int a = 14, b = 54, c = 0; a < b; a++, c++) { biHeader[c] = buffer[a];
} }
public int[] getPixelData() {
bufData = new int[buffer.length - 54];
for(int a = 54, b = buffer.length, c = 0; a < b; a++, c++) { bufData[c] = buffer[a];
}
return bufData; }
public void setFileHeader() throws IOException { for(int a = 0, b = bfHeader.length; a < b; a++) { fout.write(bfHeader[a]);
} }
public void setInfoHeader() throws IOException { for(int a = 0, b = biHeader.length; a < b; a++) { fout.write(biHeader[a]);
(6)
}
public void setPixelData() throws IOException { for(int a = 0, b = bufData.length; a < b; a++) { fout.write(bufData[a]);
} }
public int getCurrentByte(int ke) { int hasil = bufData[ke];
return hasil; }
public void setCurrentByte(int ke, int newData) { bufData[ke] = newData;
}
public void readBitmapFile(String inputName) throws IOException { fin = new FileInputStream(inputName);
buffer = new int[fin.available()];
for (int a = 0, b = buffer.length; a < b; a++) { buffer[a] = fin.read();
}
getFileHeader(); getInfoHeader(); getPixelData();
if (fin != null) { fin.close(); }
fin = null; }
public void saveBitmapFile(String outputName) throws IOException {
fout = new FileOutputStream(outputName);
setFileHeader(); setInfoHeader(); setPixelData();
if (fout != null) { fout.close(); }
fout = null; }