Analisis Perbandingan Least Significant Bit (LSB) dan Least Significant Bit (LSB) dengan Penyisipan menurut Fungsi Linear Pada teknik Steganografi

(1)

ANALISIS PERBANDINGAN

LEAST SIGNIFICANT BIT

(LSB)DAN

LEAST SIGNIFICANT BIT

(LSB) DENGAN

PENYISIPAN MENURUT FUNGSI LINEAR PADA

TEKNIK STEGANOGRAFI

SKRIPSI

SARIA MAHDI

081401099

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

PERSETUJUAN

Judul ANALISIS PERBANDINGAN LEAST SIGNIFICANT BIT

(LSB) DAN MODIFIEDLEAST SIGNIFICANT BIT (MLSB) PERSAMAAN LINEAR PADA TEKNIK STEGANOGRAFI

Kategori SKRIPSI

Nama SARIA MAHDI

NomorIndukMahasiswa 081401099

Program Studi SARJANA (S1) ILMU KOMPUTER

Departemen ILMU KOMPUTER

Fakultas ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

(FASILKOM-TI) Diluluskan di

Medan, 27 Juni 2013 Komisi Pembimbing

Pembimbing II Pembimbing I

Ade Candra, ST, M.Komp M. Andri Budiman, ST,M.Comp.Sc, MEM NIP. 19790904 2009121002 NIP. 197510082008011011

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP.196203171991021001


(3)

PERNYATAAN

ANALISIS PERBANDINGAN LEAST SIGNIFICANT BIT (LSB) DAN LEAST SIGNIFICANT BIT (LSB) DENGAN PENYISIPAN MENURUT

FUNGSI LINEAR PADA TEKNIK STEGANOGRAFI

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 27 Juni 2013

Saria Mahdi 081401099


(4)

PENGHARGAAN

Alhamdulillahirrabbil’alamin, Puji dan syukur penulis ucapkan kepada Allah SWT atas limpahan rahmat, rezeki dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, dan tidak lupa Shalawat dan salam kepada Rasulullah Muhammad SAW.

Pada pengerjaan skripsi dengan judul Analisis Perbandingan Least Significant Bit (LSB) dan Least Significant Bit (LSB) dengan Penyisipan menurut Fungsi Linear Pada teknik Steganografi, penulis menyadari bahwa banyak memperoleh bantuan dari berbagai pihak yang turut membantu dan memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Prof. Dr. dr. Syahril Pasaribu, DTM&H, MSc(CTM). Sp.A(K) selaku rektor Universitas Sumatera Utara.

2. Prof. DR. Muhammad Zarlis M.Scselaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi.

3. Dr. Poltak Sihombing, M.Kom selaku ketua program studi S-1 Ilmu Komputer. 4. Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi Ilmu Komputer 5. M. Andri Budiman, ST, M.Comp.Sc, MEM selaku dosen pembimbing I yang telah

banyak memberikan arahan, motivasi dan nasehat baik dari awal sampai penulisan tugas akhir ini selesai.

6. Ade Candra, ST, M.Kom selaku dosen pembimbing II yang banyak memberikan arahan yang baik khususnya pada teknik penulisan tugas akhir ini.

7. Sajadin Sembiring, S.Si, M.Comp.Sc selaku dosen pembanding II, atas kritik dan saran beliau maka penulisan tugas akhir ini dapat diselesaikan dengan baik.

8. Teman-teman seperjuangan mahasiswa S1-Ilmu Komputer stambuk 2008 secara khusus dan seluruh parkir rangers crew (Khairunnisa Lubis,S.Kom, Octi Fadhilla, S.Kom, Nanang Tri Bhuana S.Kom, Nurul Faradhilla,S.Kom, Rahmad


(5)

parmohonan,S.Kom, Gustaf Prameswara, S.Kom, Yassin R Fadhilah Harahap,S.kom, Nasan Martua Siregar, S.Kom, Wiliyana S.Kom, Marthin Febrianto, Andika Diapari S.Kom, Setyo Muhammad, Dira fahrendy, Namira Listya) yang telah memberikan semangat, motivasi dan dukungan moril yang tiada hentinya serta setia mendampingi penulis sampai penulisan skripsi ini selesai. 9. Teristimewa penulis ucapkan terima kasih sebesar-besarnya kepada kedua orang

tua penulis ayahanda Hasan Basri Ginting dan ibunda tersayang Bunga Rista Br.Perangin-angin yang selalu mendo’akan dan memberi motivasi dan perhatian yang diberikan sehingga penulis dapat menyelesaikan skripsi ini.

10.Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh karena itu penulis menerima kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.

Medan, April 2013


(6)

ABSTRAK

Steganografi dilakukan untuk melindungi setiap objek atau pesan yang memiliki nilai konfidensial. Proses yang dilakukan didalam sistem ini adalah input citra *.BMP sebagai cover image dan dilanjutkan dengan menyisipkan file yang berformat *.txt terhadap cover. Sistem ini memberikan hasil penyisipan dari algoritma Least Significant Bit (LSB) dan Least Significant Bit (LSB) dengan penyisipan menurut Fungsi Linear. parameter yang digunakan yaitu teknik penyisipan, waktu penyisipan dan ketahanan citra dengan perhitungan nilai Mean Squed Error (MSE) dan Bit Error Rate (BER). Dari hasil penelitian pada citra ukuran 29,34kb dengan kapasitas 100x100 piksel, algoritma LSB Persamaan Linear memiliki ketahan citra lebih baik dengan nilai MSE = 0,00163333 dan BER = -5,41667e-005 dibandingkan dengan LSB dengan nilai MSE = 0,00166 dan BER = 0,0002. Berdasarkan parameter waktu penyisipan, LSB memiliki waktu penyisipan lebih cepat yaitu 6,82761 detik dibandingkan LSB dengan penyisipan menurut Fungsi Linear dengan kunci m = 1 dan b = 2 yaitu 6,88351 detik.

Katakunci: Kriptografi, Steganografi, Least Significant Bit (LSB), Fungsi Linear, Mean Squared Error (MSE), Bit Error Ratio (BER).


(7)

Comparative Analysis of Least Significant Bit (LSB) and Least Signficant Bit (LSB) Insertion According to Linear Functions

ABSTRACT

Steganography is done to protect any object or message that has the confidential values. The process is done in this system with inputing *. BMPs image as a cover image and followed by the insertion of a *. Txt file to cover. This system gives the the insertion result with the Least Significant Bit (LSB) algorithm and Least Significant Bit (LSB) insertion according to Linear Functions algorithm. parameters used are techniques insertion, insertion time and robustness image with Mean Squed Error (MSE) and Bit Error Ratio (BER). From the results of research on image with size 29.34kb and pixels capacity with 100x100, LSB insertion according to Linear Functions algorithm have better resilience image with MSE = 0.00163333 and BER = -5.41667 E-005 compared with the LSB MSE = 0.00166 and BER = 0.0002. According from the system, LSB insertion time faster than LSB insertion with Linear Function. The time result is 6.82761 seconds compared with 6.88351 seconds for the key values with m = 1 and b = 2.

Keywords: Cryptography, Steganography, Least Significant Bit (LSB),


(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel xi

Daftar xii

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 4

1.5 Manfaat Penelitian 4

1.6 Metodologi Penelitian 4

1.7 Sistematika Penulisan 5


(9)

2.1 Kriptografi 6

2.2 Steganografi 8

2.3 Media Penampung 10

2.4 Pengertian Citra Digital 11

2.4.1 Format File Citra Digital 13

2.4.1.1 Format Data Bitmap 13

2.5 Mode Warna 16

2.6 Menghitung Nilai RGB 17

2.7 Least Significant Bit (LSB) 18

2.8 Least Significant Bit (LSB) menurut Fungsi Linear 18

2.8.1 Fungsi Linear 19

2.8.2 Koordinat Matriks Citra 21

2.9 Perhitungan Fidelity 22

Bab 3 Analisis dan perancangan

3.1 Analisis Sistem 24

3.1.1 Analisis Masalah 24

3.1.2 Analisis Persyaratan 26

3.1.2.1 Persyaratan Fungsional 26 3.1.2.2 Persyaratan Non-Fungsional 26

3.1.3 Pemodelan Perangkat Lunak 27

3.1.3.1 Perancangan Use Case Diagram 27 3.1.3.1.1 Activity Diagram Untuk Use Case Penyisipan 28 3.1.3.1.2 Activity Diagram Untuk Use Case Ekstraksi 30 3.1..3.1.3 Activity Diagram Untuk Use Case Fidelity 31

3.1.3.2 Sequence Diagram 32


(10)

3.1.3.2.2 Sequence Diagram LSB Fungsi Linear 34

3.1.4 Diagram Air (Flowchart) 36

3.3 Perancangan 42

3.3.1 Rancangan Menu Utama 42

3.3.2 Rancangan PenyisipanLSB 43

3.3.3 Rancangan PenyisipanLSB Fungsi Linear 44

3.3.4 Rancangan Ekstraksi 45

Bab 4 Implementasi dan Pengujian Sistem

4.1. Pembahasan Algoritma 46

4.1.1. Least Significant Bit (LSB) 46

4.1.1.1 Baca Nilai Piksel 46

4.1.1.2 Hitung Nilai Red Green Blue 48 4.1.1.3 Hitung Nilai Biner Setiap Karakter 49

4.1.2. Algoritma MLSB Persamaan Linear 52

4.1.3. Perhitungan Fidelity 57

4.1.3.1 Perhitungan Nilai Mean Squed Error (MSE) 57 4.1.3.2 Perhitungan Nilai Bit Error Rate (BER) 58

4.2 Pengujian Sistem 59

4.2.1 ProsesPenyisipan (Penyisipan Pesan) 59 4.2.2 ProsesEkstraksi (Ekstraksi Pesan) 60 4.2.3 Matriks Citra LSB Fungsi Linear 61


(11)

5.1. Kesimpulan 63

5.2. Saran 64

Daftar Pustaka 65

Lampiran A


(12)

DAFTAR TABEL

Halaman

2.1 BMP File Header 15

3.1 Spesifikasi Use Case Penyisipan 29

3.2 Spesifikasi Use Case Ekstraksi 30


(13)

DAFTAR GAMBAR

Halaman

2.1 Proses Steganografi 9

2.2 Koordinat Pada Citra 11

2.3 Format Citra 8bit (256 warna) 14

2.4 Format Citra 24bit (16 juta Warna) 15

2.5 Kombinasi Warna RGB 17

2.6 Contoh Grafik Fungsi Linear 19

2.7 Grafik Limit Fungsi f(x) = 3x – 1 Mendekati 2 21

2.8 Koordinat Matriks Citra 22

3.1 Ishikawa Diagram Untuk Analisis Permasalahan Sistem 25

3.2 Use Case Diagram 28

3.3 Activity DiagramPenyisipan 28

3.4 Activity Diagram Ekstraksi 29

3.5 Activity Diagram Perhitungan Fidelity 30

3.6 Sequence Diagram PenyisipanLSB 32

3.7 Sequence Diagram Fidelity LSB 32

3.8 Sequence Diagram EkstraksiLSB 33

3.9 Sequence Diagram PenyisipanLSB Fungsi Linear 34 3.10 Sequence Diagram Fidelity LSB Fungsi Linear 34


(14)

3.11 Sequence Diagram EkstraksiLSB Fungsi Linear 35

3.12 Flowchart Penyisipan LSB 36

3.13 Flowchart Penyisipan LSB Fungsi Linear 37

3.14 Flowchart Ekstraksi 38

3.15 Flowchart Menghitung MSE 39

3.16 Flowchart Menghitung BER 40

3.17 Rancangan Menu Utama 42

3.18 Rancangan Penyisipan LSB 45

3.19 Rancangan Penyisipan LSB Fungsi Linear 45

3.20 Rancangan Ekstraksi 45

4.1 Citra Cover (512x236 Piksel) 47

4.2 Sample Citra Cover (5x5 Piksel) 47

4.3 Nilai Piksel Citra Cover (5x5 piksel) 48

4.4 Matriks RGB Citra Cover 49

4.5 Bit MSB dan LSB didalam Byte 50

4.6 Citra Cover 5x5 Piksel Dalam Bentuk Biner 51 4.7 Citra Stego 5x5 Piksel Dalam Bentuk Biner 52 4.8 Citra Cover 11x18 Piksel Dalam Bentuk Biner 53 4.9 Citra Stego 11x18 Piksel Dalam Bentuk Biner 55

4.10 Matriks Citra cover dan Citra Stego 56

4.11 Form Pengujian PenyisipanLSB 60

4.12 Form Pengujian PenyisipanLSB Fungsi Linear 60

4.13 Form Pengujian Ekstraksi LSB 61


(15)

4.15 Matriks Citra Sebelum disisipi 62 4.16 Matriks Citra Sesudah disisipi LSB Fungsi Linear 62


(16)

ABSTRAK

Steganografi dilakukan untuk melindungi setiap objek atau pesan yang memiliki nilai konfidensial. Proses yang dilakukan didalam sistem ini adalah input citra *.BMP sebagai cover image dan dilanjutkan dengan menyisipkan file yang berformat *.txt terhadap cover. Sistem ini memberikan hasil penyisipan dari algoritma Least Significant Bit (LSB) dan Least Significant Bit (LSB) dengan penyisipan menurut Fungsi Linear. parameter yang digunakan yaitu teknik penyisipan, waktu penyisipan dan ketahanan citra dengan perhitungan nilai Mean Squed Error (MSE) dan Bit Error Rate (BER). Dari hasil penelitian pada citra ukuran 29,34kb dengan kapasitas 100x100 piksel, algoritma LSB Persamaan Linear memiliki ketahan citra lebih baik dengan nilai MSE = 0,00163333 dan BER = -5,41667e-005 dibandingkan dengan LSB dengan nilai MSE = 0,00166 dan BER = 0,0002. Berdasarkan parameter waktu penyisipan, LSB memiliki waktu penyisipan lebih cepat yaitu 6,82761 detik dibandingkan LSB dengan penyisipan menurut Fungsi Linear dengan kunci m = 1 dan b = 2 yaitu 6,88351 detik.

Katakunci: Kriptografi, Steganografi, Least Significant Bit (LSB), Fungsi Linear, Mean Squared Error (MSE), Bit Error Ratio (BER).


(17)

Comparative Analysis of Least Significant Bit (LSB) and Least Signficant Bit (LSB) Insertion According to Linear Functions

ABSTRACT

Steganography is done to protect any object or message that has the confidential values. The process is done in this system with inputing *. BMPs image as a cover image and followed by the insertion of a *. Txt file to cover. This system gives the the insertion result with the Least Significant Bit (LSB) algorithm and Least Significant Bit (LSB) insertion according to Linear Functions algorithm. parameters used are techniques insertion, insertion time and robustness image with Mean Squed Error (MSE) and Bit Error Ratio (BER). From the results of research on image with size 29.34kb and pixels capacity with 100x100, LSB insertion according to Linear Functions algorithm have better resilience image with MSE = 0.00163333 and BER = -5.41667 E-005 compared with the LSB MSE = 0.00166 and BER = 0.0002. According from the system, LSB insertion time faster than LSB insertion with Linear Function. The time result is 6.82761 seconds compared with 6.88351 seconds for the key values with m = 1 and b = 2.

Keywords: Cryptography, Steganography, Least Significant Bit (LSB),


(18)

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Seiring dengan kemajuan teknologi yang begitu pesat, memudahkan seseorang untuk menyampaikan pesan kepada orang lain. Teknik dan metode penyampaian pesan pun semakin beragam. Namun, teknik dan metode penyampaian pesan tersebut tidak menjamin keamanan pesan tersebut sampai ke tujuan. Apalagi jika pesan yang ingin disampaikan tersebut bersifat penting dan rahasia. Oleh karena itu perlu digunakan berbagai cara untuk mengamankan pesan tersebut agar dapat sampai ke tujuan secara utuh. Seperti halnya pesan teks, pengamanan pesan citra dapat dilakukan dengan berbagai teknik, salah satunya dengan menggunakan teknik steganografi.

Steganografi merupakan salah satu cara untuk menyembunyikan suatu pesan ke dalam suatu media digital yang secara indra manusia tampak tidak mengandung apa-apa, kecuali bagi orang yang mengerti caranya. Pada steganografi pesan disisipkan dalam bentuk yang relatif aman sehingga pesan yang disampaikan tidak menimbulkan kecurigaan. Steganografi membutuhkan dua properti, yaitu media penampung dan pesan rahasia. Steganografi dapat digunakan pada berbagai macam media digital yaitu citra, suara maupun video.

Metode yang umum digunakan dalam melakukan penyisipanpesan adalah

Least Significant Bit (LSB). Prinsip dasar metode ini adalah menyembunyikan pesan rahasia kedalam bit-bit yang tidak signifikan (bit-bit terakhir) dari media penampung. Pesan yang disembunyikan dengan menggunakan metode Least Significant bit ini dapat dengan mudah disadap, karena bit-bit pesan sudah pasti berada pada bit LSB


(19)

dari media penampung. Oleh karena itu dilakukan suatu modifikasi dari metode Least SingnificantBit(LSB) yang belum ada dilakukan pada teknik Steganografi.

Pada penelitian ini dilakukan penyembunyian pesan berupa *txtdengan teknik steganografi ke dalamfile citra penampung (cover image) dengan menggunakan metodeLeast Significant Bit (LSB) dengan memanfaatkan FungsiLinear sebagai kunci

(Key) pada proses penyisipan bit-bit pesan Rahasia.Metode ini bekerja dengan menggunakan Fungsi Linear dengan variable tunggal yaitu f(x) = mx + b. Fungsi tersebut akan menjadi kunci (key) pada proses penyisipan pesan kedalam citra BMP yang menjadi penampungnya.

Dari Fungsi diatas variable m dan b adalah elemen dari bilangan integer atau bilangan bulat (

z

)

.

Nilai m dan b merupakan kunci dari penyisipan pesan dan hanya diketahui oleh prngirim dan penerima. Dan nilai tersebut juaga akan digunakan untuk membuka file yang disembunyikan (Extracting Files), serta akan dihitung ketahanan file menggunakan pengukuran Fidelity.

Modifikasi menggunakan Fungsi linear ini dilakukan dengan mengkonversi bit-bit Citra dengan nilai yang diperoleh dari tabel ASCII ( American Standard Code for Information Interchange). Setelah bit-bit dikonversikan kedalam ASCII, Kemudian data disisipkan kedalam bit-bit citra penampung yang disesuaikan dengan Fungsi Linear dari variable tunggal yaitu f(x) = mx + b.

Adapun teknik modifikasi ini merujuk pada Penelitian yang berjudul

“ANALISIS DAN PERANCANGAN PENGUJIAN NILAI MSE PADA PROSES PENYISIPAN LABEL CITRA DENGAN METODE MODIFIED LEAST

SIGNIFICANT BIT (MLSB) TERHADAP MODIFIKASI NILAI BRIGTHNESS”

yang ditulis oleh Henny Hariani Lubis, Universitas Sumatera Utara. Hasil penelitian menunjukkan bahwa teknik steganografi dengan metode Least Significant Bit (LSB) mempunyai karakteristik citra yang disisipi dan ukuran data yang disisipkan saling bergantung satu sama lain. Pengujian kualitas kecerahan citra secara subjektif menggunakan pengujian MSE menunjukkan bahwa


(20)

informasi akan semakin sulit dideteksi jika disisipkan pada citra dengan karakteristik warna yang dinamis. [3]

Penelitian mengenai “DATA HIDING BY LEAST SIGNIFICANT BIT

(LSB) SUBSTITUTING USING GENETIK OPTIMAL KEY-PERMUTATION”

yang ditulis oleh Marghy Mohamed, Universitas Assiut. Peneltian ini membahas teknik steganografi dengan menambahkan kunci permutasi yaitu dengan memanfaatkan algoritma Genetik. Hasil penelitian menunjukkan letak penyisipan file pesan kedalam file penampung ditentukan oleh kunci permutasinya, sehingga letak penyisipannya menjadi random dan semakin sulit dideteksi. [6]

1.2Rumusan Masalah

Berdasarkan latar belakang, maka yang menjadi rumusan masalah penelitian ini adalah menganalisa teknik penyisipan dengan menggunakan metode Least Significant Bit (LSB) dan membandingkannya dengan teknik penyisipan menggunakan metode

Least Significant Bit (LSB) menggunakan Fungsi Linear.

1.3Batasan Masalah

Dalam penelitian ini penulis membuat batasan masalah yaitu:

a. File citra penampung(cover image) adalah citra berwarna (true color) 24 bit berformat *.BMP.

b. Pesan yang akan disisipkan adalah file yang berformat *.txt.

c. Parameter penelitian ini adalah keacakan penyisipan File dan daya tahan image yang akan dihitung menggunakan Mean Squared Error (MSE) dan Bit Error Ratio (BER).

d. Penyisipan pesan menggunakan metode LSB dan LSB dengan Fungsi Linear. e. Bahasa pemrograman menggunakan Matlab R2009b .


(21)

1.4Tujuan Penelitian

Penelitian ini bertujuan untuk:

1. Mengetahui hasil perbandingan teknik steganografi menggunakan metode LSB dan LSB menggunakan Fungsi Linear

2. Menentukan metode mana yang terbaik dalam teknik steganografi yang dianalisa dengan parameter MSE dan BER.

1.5Manfaat Penelitian

Dari penelitian ini diharapkan:

a. Diperolehnya sebuah perangkat lunak untuk teknik steganografi dengan Fungsi linear dan mengembalikannya kembali kebentuk aslinya (ekstraksi files)

b. Mengetahui bagaimana cara mengamankan txt ke dalam citra penampung(cover image), yakni salah satunya dengan menggunakan algoritma LSB menggunakan Fungsi Linear.

c. Menambah Literatur pengamanan pesan dengan metode LSB dan menambah Pengetahuan tentang teknik steganografi menggunakan metode LSB dengan Fungsi Linear.

1.6Metode Penelitian

Metode Penelitian yang akan dilalui adalah sebagai berikut: 1. Studi Literatur

Studi Literatur dilaksanakan dengan melakukan studi kepustakaan yang relevan serta buku-buku maupun artikel-artikel atau e-book dan juga journal internationalyang didapatkan melalui internet yang berhubungan dengansteganografi, Least Significant Bit, Least Significant Bit dan pengolahan citra.


(22)

2. Analisis

Menganalisis penyisipan citra ke dalam citra dengan menggunakan metode Least Significant Bit(LSB)menggunakan Fungsi Linear, permasalahan yang ada, batasan yang dimiliki dan kebutuhan yang diperlukan.

3. Perancangan Perangkat Lunak

Perancangan perangkat lunak dilakukan dengan membuat rancangan antar muka sistem, flowchart sistem serta proses kerja sistem untuk memudahkan dalam proses implementasi berikutnya.

4. Implementasi dan Pengujian Sistem

Implementasi sistem melakukan coding dengan menggunakan bahasa pemograman Matlab R2009b . Pengujian dilakukan terhadap program yang telah dibangun. Pengujian sistem dilakukan untuk melihat apakah implementasi telah sesuai dengan teori, atau apakah program mengalami kesalahan.

1.7Sistematika Penulisan

Dalam penulisan skripsi ini penulis membuat sistematika sebagai berikut:

BAB 1 PENDAHULUAN membahas Latar Belakang, Perumusan Masalah, Batasan Masalah, Tujuan penelitian, Manfaat Penelitian, Metode Penelitian yang dilakukan serta Sistematika penulisan.

BAB 2 LANDASAN TEORI membahas tentang landasan teori steganografi, citra, algoritma Least Significant Bit (LSB) menggunakan FungsiLinear, serta flow chart.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM membahas mengenai penyisipan pesan ke dalam citra, flow chart sistem serta perancangan antar muka pengguna.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM membahas tentang implementasi dan pengujian sistem.

BAB 5 PENUTUP merupakan kesimpulan dari semua pembahasan yang ada dengan saran-saran yang ditujukan bagi para pembaca atau pengembang.


(23)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi ( cryptography ) berasa dari Bahasa Yunani yaitu “cryptos” yang artinya “secret” (rahasia) dan “graphein” yang artinya “writing” (menulis). Jadi kriptografi berarti “secret writing” (tulisan rahasia). Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikan ke dalam bentuk yang tidak dapat dimengerti maknanya. Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan lebih dari 4000 tahun yang lalu, diperkenalkan oleh orang-orang mesir lewat hieroglyph. [8]

Keamanan data pada lalulintas jaringan adalah suatu hal yang diinginkan semua orang untuk menjaga privasi, supaya data yang dikirim aman dari gangguan orang yang tidak bertanggungjawab yang dapat membahayakan keamanan pesan pada saat proses pengiriman data. Untuk mengamankan data tersebut kita menggunakan teknik kriptografi seperti yang sudah dijelaskan diatas tentu dengan menggunakan algoritma kriptografi. Ada beberapa komponen kriptografi dasar, yaitu : [1]


(24)

1. Enkripsi

Enkripsi merupakan hal yang sangat penting dalam kriptografi, merupakan cara pengamanan data yang dikirimkan sehingga terjaga kerahasiaannya. Pesan asli disebut plaintext (teks biasa), yang diubah menjadi kode-kode tidak dimengerti. Enkripsi bisa diartikan dengan chiper atau kode .

2. Dekripsi

Merupakan kebalikan dari Enkripsi. Pesan yang telah di Enkripsi dikembalikan kebentuk aslinya dan algoritma yang digunakan untuk dekripsi tentu saja berbeda dengan proses Enkripsi.

3. Kunci

Ada dua penerapan kunci pada pengamanan kriptografi yaitu, kunci umum

(public key) dan kunci pribadi (private key). 4. Ciphertext

Ciphertext adalah bentuk penyandian dari prises Enkripsi dan pesan pada teks-kode ini tidak dapat dibaca karena berupa karakter-karakter yang tidak mempunyai ejaan atau makna tertentu.

5. Plaintext

Plaintext sering disebut dengan cleartext. Adalah teks asli yang memiliki makna yang akan dikirim kepada penerima. Teks asli inilah yang akan diproses dengan algoritma kriptografi menjadi ciphertext (teks-kode).

6. Pesan

Pesan adalah sesuatu informasi yang akan disampaikan atau dikirim kepada penerima dan pesan merupakan sesuatu yang sering dirahasiakan. Pesan dapat berupa data atau informasi yang di kirim baik itu melalui kurir, saluran komunikasi data, dan sebagainya atau yang disimpan di dalam media perekaman seperti kertas, storage dan sebagainya.

7. Cryptanalysis

Cryptanalysis bisa diartikan sebagai analisi kode atau suatu ilmu untuk mendapatkan pesan teks asli atau Plaintext tanpa harus mengetahui kunci yang sah secara wajar. Proses


(25)

ini disebut juga dengan breaking code. Analisis dilakukan dengan menemukan kelemahan dari algoritma yang dilakukan oleh kriptografi dan akhirnya dapat menemukan kunci atau teks aslinya dari sebuah proses Enkripsi dengan algoritma tersebut.

2.2 Steganografi

Kata steganografi berasal dari bahasa yunani yang terdiri dari steganos (tersembunyi) graphen (menulis), sehingga bisa diartikan sebagai tulisan yang tersembunyi. Steganografi adalah ilmu yang mempelajari teknik penyembunyian pesan rahasia dalam pesan yang lainnya, sehingga orang tidak akan tahu bahwa terdapat pesan yang rahasia di dalam pesan yang mereka baca.

Hampir semua jenis berkas dapat digunakan untuk steganografi, tetapi format berkas yang cocok untuk steganografi ini adalah yang memiliki Redudancy yang tinggi. Redudancy adalah jumlah bit berlebih dari sebuah objek yang menghasilkan akurasi jauh lebih besar dari yang kita butuhkan untuk penggunaan menampilkan objek.

Watermaking merupakan suatu bentuk dari steganografi. Yang membedakan steganografi dengan watermaking, watermaking merupakan cara penyembunyian pesan ke dalam wadah penampung dan wadah penampung mampu menghadapi proses pengolahan sinyal digital namun tidak merusak wadah penampung sehingga seolah-olah tidak ada perbedaan antara wadah penampung sebelum dan sesudah proses penyembunyian. Sedangkan steganografi memiliki prinsip dasar lebih mengkonsentrasikan pada kerahasian pesannya bukan pada keutuhan wadahnya.

Ada dua proses utama dalam steganografi digital yaitu penyisipan (insertion/embeding) dan ekstraksi (extraction/decoding) pesan. Pesan (embed) dapat berupa plaintext, ciphertext, citra, atau apapun yang dapat ditempelkan ke dalam bit-stream. Embedding merupakan proses menyisipkan embed ke dalam berkas yang masih asli yang belum dimodifikasi, yang disebut media cover (cover object). Kemudian media cover dan embed yang ditempelkan membuat media stego (stego object). Extraction adalah proses menguraikan pesan yang tersembunyi dalam media stego. Ringkasnya, steganografi adalah


(26)

teknik menanamkan embed message pada suatu cover object, dimana hasilnya berupa stego object.

Gambar 2.1 Proses Steganografi

Pihak yang terkait dengan steganografi antara lain embeddor, extractor, dan stegoanalyst. Embeddor adalah pelaku yang melakukan penyisipan (embedding),extractor adalah pelaku yang melakukan ekstraksipadastego object, danstegoanalyst adalah pelaku yang melakukan steganalisis. Steganalisis merupakan ilmu dan seni untuk mendeteksi embed yang tersembunyi dalam steganografi.

Penilaian sebuah metode steganografi yang baik dapat dinilai dari beberapa faktor yaituimperceptibility, fidelity, recovery, dan robustness. Karakteristik metode steganografi yang baik adalah memiliki imperceptibility tinggi, fidelity tinggi, recovery maksimum dan robustness tinggi.

1. Imperceptibility

Keberadaan embed dalam media penampung tidak dapat dideteksi. 2. Fidelity

Mutu media penampung setelah ditambahkan embed tidak jauh berbeda dengan mutu media penampung sebelum ditambahkan embed.

3. Recovery Cover

Cover

<tipe data> <tipe

Stego

<tipe data> Pesan Sandi Khusus

Encoding (penyisipan)

Decoding (penguraian

Sandi Khusus <tipe data>

<tipe data> Pesan


(27)

embed yang telah disisipkan dalam media penampung harus dapat diungkap kembali. Hal ini merupakan syarat mutlak dalam sebuah metode steganografi, karena ada banyak cara penyisipan embed yang tidak terdeteksi namun sulit dalam pembacaan kembali.

4. Robustness

Embed yang disembunyikan harus tahan terhadap berbagai operasi manipulasi yang dilakukan pada media penampung. Bila pada media penampung dilakukan operasi-operasi manipulasi, maka embed yang disembunyikan seharusnya tidak rusak (embed masih utuh, tetap bisa diekstrak kembali).

2.3 Media Penampung (Cover Object)

Coverobject merupakan media untuk menampung embedpada steganografi. Suatu embeddapat mempunyai hubungan atau bahkan tidak mempunyai hubungan sama sekali dengan media penampung (untuk kasus komunikasi rahasia) atau embedjuga dapat berupa menyediakan info penting tentang media, seperti informasi autentifikasi, judul, tanggal dan waktu pembuatan, hak cipta, nomor seri kamera digital yang digunakan untuk mengambil gambar, informasi mengenai isi dan akses terhadap citra dan lain sebagainya.

Steganografi digital menggunakan media digital sebagai media penampung, seperti teks, citra, audio dan video. Semua berkas yang ada dalam komputer dapat digunakan sebagai media penampung, asalkan berkas tersebut mempunyai bit-bit data redudan yang dapat dimodifikasi. Hal ini juga berlaku untuk media penyisip (embed). Adapun jenis-jenis media penampung adalah:

1. Citra

Format citra sangat sering digunakan di dalam teknik steganografi, karena citra merupakan format berkas yang sangat sering digunakan pada proses pertukaran data. Format citra bitmap true color atau BMP adalah salah satu jenis file citra yang sangat baik jika digunakan di dalam teknik steganografi, karena citra BMP merupakan citra asli yang belum mengalami perubahan (convert), sehingga citra BMP sangat kokoh jika dilakukan penyisipan pesan dan memiliki kapasitas yang banyak.


(28)

Dalam metode steganografi yang menggunakan teks sebagai media penampung, teks yang telah disisipi embed tidak boleh mencurigakan untuk orang yang melihatnya. Contoh berkas yang berupa teks adalah file dengan format .txt, .doc, .docx , dan sebagainya. 3. Audio

Format audio atau suarajuga sering dipilih karena berkas dengan format audio berukuran relatif besar sehingga dapat menampung embeddalam jumlah yang besar pula.

4. Video

Format video memiliki ukuran berkas yang relatif sangat besar namun jarang digunakan karena ukurannya yang terlalu besar sehingga mengurangi kepraktisannya dan juga kurangnya algoritma yang mendukung format ini.

2.4 Pengertian Citra Digital

Citra digital adalah gambar dua dimensi yang dapat ditampilkan pada layar monitor komputer sebagai himpunan berhingga (diskrit) nilai digital yang disebut pixel (picture elemen). Citra digital tersusun dalam bentuk raster (grid atau kisi). Setiap kotak yang terbentukdisebut pixel (picture element) dan memiliki koordinat (x,y).Pixel merupakan suatu elemen citra yang memiliki nilai yang menujukkan intensitas warna. Citra digital dapat didefenisikan sebagai Fungsi dua variabel f(x,y), dimana x dan y adalah koordinat spasial dan nilai f(x,y) merupakan intensitas citra suatu titik. Piksel(0,0) terletak pada sudut kiri atas pada citra, indeks x begerak ke kanan dan indeks y bergerak ke bawah. Konvensi ini dipakai merujuk pada cara penulisan larik yang digunakan dalam pemrograman komputer.


(29)

Gambar 2.2 Koordinat pada citra

Suatu citra digital diperoleh dari penangkapan kekuatan sinar yang dipantulkan oleh objek. Citra digital tersusun atas sejumlah berhingga elemen, masing-masing memiliki lokasi dan intensitas tertentu. Elemen-elemen ini disebut elemen gambar, elemen citra, pels, dan juga piksel yang dinyatakan dalam bilangan bulat. Tingkat ketajaman atau resolusi warna pada citra digital tergantung pada jumlah bit yang digunakan oleh komputer untuk merepresentasikan setiap pikseltersebut. Tipe yang sering digunakan untuk merepresentasikan citra digital adalah 8-bit citra (256 colors (0 untuk hitam - 255 untuk putih)), tetapi dengan kemajuan teknologi perangkat keras grafik, kemampuan tampilan citra digital di komputer hingga 32 bit (232 warna).

Selain citra digital, juga terdapat jenis citra yang lain yakni citra analog. Citra analog adalah citra yang terdiri dari sinyal – sinyal frekuensi elektromagnetis yang belum dibedakan sehingga pada umumnya tidak dapat ditentukan ukurannya. Analog berhubungan dengan hal yang kontinu dalam satu dimensi, contohnya adalah bunyi diwakili dalam bentuk analog, yaitu suatu getaran gelombang udara yang kontinu dimana kekuatannya diwakili sebagai jarak gelombang. Hampir semua kejadian alam boleh diwakili sebagai perwakilan analog seperti bunyi, cahaya, air, elektrik, angin dan sebagainya.

Citra digital dapat dibagi menjadi 3 macam berdasarkan warna-warna penyusunnya : 1. Citra biner (monochrome), atau disebut juga binary image, yaitu citra yang setiap

pikselnya hanya memiliki kemungkinan dua warna, yaitu berwarna hitam (0) atau berwarna putih (1). Oleh karena itu, setiap piksel pada citra biner hanya membutuhkan media penyimpanan sebesar 1bit.

2. Citra grayscale (citra keabuan), citra ini terdiri atas warna abu-abu. Setiap piksel citra greyscale merepresentasikan derajat keabuan atau intensitas warna putih. Untuk pengubahan warna image menjadi greyscale dapat dilakukan dengan memberikan bobot untuk masing-masing warna dasar red green blue atau dengan membuat nilai rata-rata dari ketiga warna dasar tersebut.


(30)

3. Citra berwarna (true color), yaitu citra yang nilai pikselnya merepresentasikan warna tertentu. Setiap piksel pada citra berwarna memiliki warna yang merupakan kombinasi dari tiga warna dasar red green dan blue.Setiap komponen warna memiliki intensitas sendiridengan nilai minimum 0 dan nilai maksimum 255 (8-bit). Hal ini menyebabkansetiap pixel pada citra RGB membutuhkan media penyimpanan 3 byte. Jumlahkemungkinan kombinasi warna citra RGB adalah 224 = lebih dari 16 juta warna.

2.4.1 Format File Citra Digital

Citra digital dapat disimpan dalam berbagai format. Sebuah format citra harus dapat menyatukan kualitas citra, ukuran file dan kompatibilitas dengan berbagai aplikasi. Setiap format file citra memiliki kelebihan dan kekurangan masing – masing dalam hal citra yang disimpan. Menyimpan suatu citra harus diperhatikan citra dan format file citra apa yang sesuai.Misalnya format citra GIF sangat tidak cocok untuk citra fotografi karena biasanya citra fotografi kaya akan warna, sedangkan format GIF hanya mendukung sejumlah warna sebanyak 256 (8 bit) saja. Format JPEG merupakan pilihan yang tepat untuk citra – citra fotografi karena JPEG sangat cocok untuk citra dengan perubahan warna yang halus. Saat ini tersedia banyak format grafik dan format baru tersebut yang sudah dikembangkan, diantaranya yang terkenal adalah BMP, JPEG, dan GIF.

2.4.1.1Format Data Bitmap

Pada format bitmap, citra disimpan sebagai suatu matriks dimana masing-masing elemennya digunakan untuk menyimpan informasi warna untuk setiap piksel. Jumlah warna yang dapat disimpan ditentukan dengan satuan bit-per-piksel. Semakin besar ukuran bit-per-piksel dari


(31)

suatu bitmap, semakin banyak pula jumlah warna yang dapat disimpan. Format bitmap ini cocok digunakan untuk menyimpan citra digital yang memiliki banyak variasi dalam bentuknya maupun warnanya, seperti foto, lukisan, dan frame video.

Pada citra bitmap jumlah warna yang dapat disimpan ditentukan oleh banyaknya bit yang digunakan untuk menyimpan setiap titik dari bitmap yang menggunakan satuan bpp (bit per piksel). Dalam Windows dikenal bitmap dengan 1, 8, 16, dan 24 bit per piksel. Jumlah warna maksimum yang dapat disimpan dalam suatu bitmap adalah sebanyak 2n, dimana n

adalah banyaknya bit yang digunakan untuk menyimpan satu titik dari bitmap.

Citra bitmap memiliki kelebihan untuk memanipulasiwarna, tetapi untuk mengubah objek lebih sulit. Tampilan bitmap mampumenunjukkan kehalusan gradiasi bayangan dan warna dari sebuah gambar. Olehkarena itu, bitmap merupakan media elektronik yang paling tepat untuk gambar –gambar dengan perpaduan gradiasi warna yang rumit,seperti foto, Kamera Digital,video capture, dan lain-lain.

File citra bitmap terdiri atas bagian header, palet RGB, dan data bitmap. Pada citra 8-bit, setiap elemen data bitmap menyatakan indeks dari peta warnanya di palet RGB(Munir, 2004).Header adalah merupakan informasi dari struktur daripada sebuah file citra. Header biasanya memberikan informasi tentang nama file, ukuran, dimensi, resolusi (horizontal atau vertikal), format yang digunakan, teknik kompresi yang digunakan, dan lain-lain.

<header> <palet RGB>

R G B

1 20 45 24

2 14 13 16


(32)

256 46 78 25 <data bitmap>

2 2 1 1 1 3 5 …

Gambar 2.3Format citra 8-bit (256 warna)

Pada citra 24-bit, tidak terdapat palet RGB, karena nilai RGB langsung diuraikan dalam data bitmap. Setiap elemen data bitmap panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan B.

<header> <data bitmap> 2 2 1 1 1 3 5 …

Gambar 2.4Format citra 24-bit (16 juta warna)

Pada contoh format citra 24-bit di atas, pixel pertama mempunyai R = 2, G = 2, B = 1.

BMP mudah dibuka dan disimpan, tetapi ada beberapa aturan khusus yangharus dicermati, diantaranya:


(33)

1. Format file ini menyimpan datanya secara terbalik, yaitu dari bawah ke atas

2. Citra dengan resolusi warna 8-bit, lebar citra harus merupakan kelipatan dari 4, bila tidak maka pada saat penyimpanan akan ditambahkan beberapa bytepada data hingga merupakan kelipatan dari 4.

3. Citra dengan resolusi warna 24-bit, urutan penyimpanan tiga warna dasaradalahbiru, hijau, merah (B, G, R). Lebar citra dikalikan dengan 3 harusmerupakan kelipatan dari 4, bila tidak maka pada saat penyimpanan akanditambahkan beberapa byte pada data hingga merupakan kelipatan dari 4.

Tabel 2.1 BMP File Header

Offset Size Name Name

0 2 BfType ASCII “BM”

2 4 bfSize Size of File

6 2 bfReserved I Zero

8 2 bfReserved I Zero

10 4 Bf Of Bit Byte Offset in File

14 4 biSize Size of Header

18 4 biWidth Image Width in Pixels

22 4 biHeight Image height in Pixels

26 2 biPlans Image Plans

28 2 biBithCount Bit per Pixer : 1,4,8 or 24


(34)

Keterangan:

1. Offset :byte ke (yang dimulai dari angka 0). 2. Size : ukuran dari panjang byte.

a. Byteke-0 ukuran panjang 2 bytedispesifikasikan dengan nama tipe file yang diindikasikan berupa kode ASCII “BM”.

b. Byteke-2 dengan ukuran panjang 4 byte, nama spesifikasinya bitmap file size yang berupa ukuran dari file dalam bentuk bytes.

c. Byteke – 6 dan 8 yang ukurannya 2 byte berupa fieldcadangan di set 0.

d. Byte ke – 10 ukurannya 4 byte yang merupakan spesifikasi dari struktur bitmap file headerke bit bitmap, dimana file gambar dimulai pada tahap ini.

e. Byteke – 14, panjangnya 4 bytedengan spesifikasi nama bitmap size yang mempunyai ukuran header 40 bytes.

f. Byteke – 18 dengan panjang 4 bytesmerupakan lebar gambar dalam satuan pixel. g. Byteke 22 dengan panjang 4 bytesmerupakan tinggi gambar dalam satuan pixel. h. Byteke-26 dengan panjang 2 bytesmerupakan bitmap planes dengan sejumlah

planes(umumnya 1).

i. Byteke-28 dengan panjang 2 bytemerupakan jumlah bit per pixel: 1, 4, 8, atau 24. j. Byte ke-30 dengan panjang 4 byteyang merupakan tipe kompresi.

2.5 Mode Warna

Mode warna RGB menghasilkan warna menggunakan kombinasi dari tiga warna primer red (merah), green (hijau), blue (biru). RGB dimulai dengan warna hitam (ketiadaan semua warna) dan menambahkan merah, hijau, biru terang untuk membuat putih. Kuning diproduksi dengan mencampurkan merah, hijau. warna cyan dengan mencampurkan hijau dan biru. warna magenta dari kombinasi merah dan biru. Kombinasi warna RGB dapat dilihat pada Gambar 2.5


(35)

Gambar 2.5 Kombinasi Warna RGB

Warna campuran (selain dari putih) dihasilkan dengan menambahkan warna komponen RGB individual dengan berbagai tingkat saturasi, dengan tingkatan mulai dari 0.0 hingga 1.0 (0 berarti tidak menggunakan warna tersebut; 1 berarti menggunakan warna tersebut pada saturasi penuh).

Warna didefenisikan dengan memasukkan intensitas untuk setiap komponen dalam matriks. Tiap komponen memiliki matriksnya sendiri-sendiri dan matriks tersebut bisa dijumlahkan. Sebagai contoh, untuk menghasilkan merah saturasi sempurna, masukan (1,0,0) : 100% merah 0% hijau dan 0% biru. Pada saat ketiga komponen warna tersebut dikombinasikan dalam 100% saturasi (1,1,1) hasilnya adalah putih (seperti diperlihatkan berikut):

Merah (1,0,0) + hijau (0,1,0) + Biru (0,0,1) = Putih (1,1,1)

2.6 Menghitung Nilai RGB

Menghitung nilai RGB citra cover adalah sama dengan menghitung RGB citra embed, dimana setiap pikselnya mengandung 24-bit kandungan warna atau 8-bit untuk masing-masing warna dasar (R, G, dan B), dengan kisaran nilai kandungan antara 0 (00000000) sampai 255 (11111111) untuk tiap warna yang dapat ditulis sebagai berikut.

Red: RGB (255, 0, 0)……….………….…………..………... (2.1) Green: RGB (0, 255, 0)... .………..……….... (2.2)


(36)

Blue: RGB (0, 0, 255)…..……….………... (2.3)

Dari nilai triplet RGB persamaan (2.1) sampai (2.3) di atas dapat dikonversikan ke dalam nilai desimal seperti dibawah ini:

Red: 255*2560 + 0*2561 + 0*2562 = 255 + 0 + 0 = 255 ………..…... (2.4) Green: 0*2560 + 255*2561 + 0*2562 = 0 + 65,280 + 0 = 65,280 ………... (2.5) Blue: 0*2560 + 0*2561 + 255*2562 = 0 + 0 + 16,711,680 = 16,711,680... (2.6) Rumus dasar mencari nilai RGB citra adalah:

R = COLOR And RGB(255, 0, 0)….……….…... (2.7) G = (COLOR And RGB(0, 255, 0)) / 256...……..……….…... (2.8) B = ((COLOR And RGB(0, 0, 255)) / 256) / 256 ….……….… (2.9)

Dari persamaan (2.4) sampai (2.6) diatas, rumus RGB pada persamaan (2.7) sampai (2.9) menjadi:

Nilai R = c and 255………... (2.10) Nilai G = (c and65,280)/256 ..………...………..…... (2.11) Nilai B = ((c and16,711,680)/256)/256 ………...………... (2.12)

2.7 Least Significant Bit (LSB)

Metode yang digunakan dalam merancang perangkat lunak ini adalah modifikasi dari metode Least Significant Bit (LSB). Oleh karena itu ada baiknya jika kita mengetahui cara kerja metode LSB. Cara kerja metode ini adalah dengan mengganti bit terakhir setiap nilai piksel dengan bit-bit pesan rahasia (embed). Sebelum melakukan penyisipan embed ke dalam citra penampung, terlebih dahulu nilai piksel dari citra penampung dan embed harus diubah ke dalam biner.


(37)

Penyisipan pesan dengan MetodeLSB dengan Fungsi Linear dilakukan dengan menyisipkan 1 bit embed ke dalam 1 byte LSB citra penampung (citra cover). Namun sebelum data embed disisipkan, terlebih dahulu dilakukan modifikasi dengan menambahkan kunci pada proses penyisipannya yaitu FungsiLinear

2.8.1 Fungsi Linear

Bentuk umum dari Fungsi Linear adalah: f(x) = 3x

f(x) = x - 3 f(x) = 3k + 5

jika Domain dari Fungsi Linear itu adalah himpunan bilangan Real, maka grafik Fungsi Linear itu adalah garis lurus. Pada Fungsi Linear himpunan nilai f(x) untuk setiap x anggota Domain disebut dengan Range atau daerah jelajah.


(38)

Gambar diatas adalah contoh grafik Fungsi Linear dengan Fungsi yang bernilai m = 0.5 dan b = 2. [13]

.

Fungsi yang digunakan pada penelitian ini adalah bentuk Fungsi dua variabel dengan Fungsi sebagai berikut:

Dengan ketentuan :

1. Konstanta m & b adalah Rahasia (private key)

Nilai m dan b adalah bilangan integer atau bilangan bulat yang di tentukan oleh pengirim dan tidak boleh diketahui oleh orang – orang yang tidak berhak untuk mengetahuinya (confidentiality).

2. Variable x

Adalah urutan dari baris biner pesan yang akan disisipkan kedalam citra penampung.

3. f(x) sebagaiVariable y

Adalah urutan dari kolom yang belum diketahui nilainya.

Metode LSB menggunakan Fungsi Linear dapat disebut juga dengan kombinasi antara Kriptografi dan Steganografi, karena menggunakan private key pada proses penyisipannya. Setiap aspek yang memiliki nilai Confidensiality dapat disebut dengan kriptografi. Confidensiality adalah setiap objek yang tidak untuk diumbar atau dibocorkan kepada subjek yang seharusnya tidak berhak untuk mengetahuinya.

Bentuk umum dari Fungsi Linear Dengan Dua Variable adalah Ax + By + C = 0 (umum) atau Ax + By = C (standard) Dari Fungsi diatas bahwa Konstanta A dan B bila dijumlahkan maka hasilnya bukanlah angka nol (0) apalagi angka minus (-). Konstanta A dapat dituliskan dengan pernyataan A ≥ 0, Grafik ini bila


(39)

digambarkan akan membentuk garis lurus, dan setiap garis ditentukan oleh Fungsi yang sudah ditentukan. Fungsi Linear dua variable dalam bentuk standard dapat diubah kedalam bentuk umum, tetapi tidak dapat diubah kedalam semua bentuk apabila A dan B adalah nol . [14]

Didalam membuat grafik Fungsi Linear tentu saja membutuhkan titik potong sumbu, yaitu sumbu-y dan sumbu-x yang disebut dengan titik potong Gradien. Untuk titik potong sumbu-y (f(x) = mx + b) dengan ketentuan, m adalah gradien dari garis Fungsi dan titik koordinat y adalah persilangan terhadap sumbu y. Fungsi diatas digunakan untuk mencari sumbu-y, dimana telah diketahui nilai dari x.

Untuk memperkuat modifikasi LSB penulis juga mempertimbangkan untuk mempelajari limit fungsi sederhana sebagai referensi. Berikut adalah grafik limit fungsi dengan nilai f(x) = 3x – 1 mendekati 2.

Gambar 2.7 Grafik Limit Fungsi f(x) = 3x – 1 mendekati 2.

Grafik dibentuk berdasarkan fungsi f(x) = 3x – 1 ketika f(x) sebagai sumbu x dan pada bagian kedua nilai yang mendekati 2 adalah 5 ditulis dengan Limit x-2 f(x) = 5 dengan x mendekati 2 dan memiliki nilai tertinggi adalah 5. Figur g(x) identik dengan f(x) dengan koordinat (2,5) dan (2,3) berkelanjuta h(x) juga identik dengan g(x). Sesuai grafik diatas penulis akan menerapkan pada matriks citra dengan tiga layer yaitu Red, Green dan Blue, dimana penyisipan akan


(40)

dimulai di Layer pertama kemudian Layer kedua dan diakhiri di Layer ketiga sesuai dengan banyaknya karakter yang dapat disisipkan di dalam sebuah citra penampung. [7]

2.8.2 Koordinat Matriks Citra

Penelitian ini membahas bagaimana penerapan Fungsi Linear pada Matriks Citra dan menghitung koordinat penyisipan pesan. Berikut adalah bentuk matriks Citra:

Gambar 2.8 koordinat Matriks Citra

Salah satu alasan kuat penulis untuk Modifikasi LSB adalah matriks citra yang memiliki kesamaan dengan koordinat pada Fungsi Linear. Dari gambar 2.8 penulis mengasumsikan bahwa sumbu x adalah urutan baris dan sumbu y adalah urutan kolom pada matriks citra. Adapun modifikasi yang dilakukan yaitu dengan menghitung letak penyisipan pesan sehinggai setiap piksel diasumsikan sebagai titik koordinat maka hasilnya berupa garis lurus.


(41)

2.9 Perhitungan Fidelity

Salah satu kriteria metode steganografi yang baik adalah dengan terpenuhinya fidelity. Pengukuran fidelitydapat diketahui dengan menghitung nilai Mean Squared Error (MSE) merupakan nilai rata-rata kuadrat dari error citra.

Nilai MSE menunjukkan perbandingan piksel yang rusak dengan piksel aslinya. Semakin besar nilai MSE, maka semakin besar kerusakan citra hasil pengolahan dan sebaliknya, semakin kecil nilai MSE maka nilai piksel hasil pengolahan makin mendekati citra aslinya.

Untuk memperkuat nilai Fidelity dari stego image dapat kita tambahkan dengan perhitungan nila Bit Error Rate atau Bit Error Ratio (BER). BER adalah teknik untuk menghitung tinggi rendahnya funsi dari bit pada citra digital.

Nilai BER menunjukkan perbandingan piksel yang rusak dengan piksel aslinya. Semakin besar nilai BER, maka semakin besar kerusakan citra hasil pengolahan dan sebaliknya, semakin kecil nilai BER maka nilai piksel hasil pengolahan makin mendekati citra aslinya.

Pada umumnya teknik perhitungan Fidelity menggunakan MSE dan BER adalah sama. Pembeda antara kedua teknik adalah perhitungan dengan teknik MSE dilakukan pada angka desimal sedangkan dengan teknik perhitungan BER dilakukan dengan menghitung nilai Biner. Adapun tujuan dan hasilnya adalah sama.


(42)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Sebelum dilakukan tahap perancangan sebuah sistem, perlu dilakukan analisis sistem yang akan dibangun. Analisis sistem merupakan istilah yang secara kolektif mendeskripsikan fase-fase awal pengembangan sistem. Analisis sistem pada dasarnya merupakan tahapan yang ditujukan untuk menciptakan pemahaman yang menyeluruh terhadap sistem sehingga diperoleh gambaran tentang kebutuhan, cara kerja, dan alur data yang akan dikerjakan sistem. Hal ini akan membantu mempermudah dalam proses implementasi sistem.


(43)

Masalah dalam sistem ini adalah bagaimana agar sistem ini dapat membantu pengguna sistem untuk melakukan pengamanan data (data security). Dalam sistem ini terdapat dua pengguna yaitu ekstraktor dan embeddor dimana keduanya memiliki peran sesuai kebutuhan.

Yang menjadi masalah utama penelitian ini adalah bagaimana membandingkan algoritman LSB dengan LSB menurut Fungsi Linear sebagai kunci. Kedua metode ini akan diteliti dan ditentukan yang terbaik dengan parameter fidelity yang ada. Setelah dipilah dan dibagi dalam beberapa kategori, dapat diuraikan sebagai berikut:

1. User1 (embeddor) : Adalah seseorang yang melakukan proses Penyisipan,

Ekstraksi, perhitungan nilai MSE dan perhitungan nilai BER. Dengan kedua parameter fidelity maka User1 dapat menentukan kelayakan stego Image dapat disampaikan kepada User2 (extractor).

2. User2 (extractor) : adalah seseorang yang melakuakan proseses ekstraksi, yaitu penguraian kembali pesan rahasia yang sudah disisipkan.

3. Proses : Sistem ini akan berjalan dengan membandingkan kedua algoritma yang digunakan yaitu LSB dan LSB Fungsilinear. Pada umumnya kedua sistem ini memiliki kesaman dalam teknik pengambilan 1 bit terakhir, akan tetapi keduanya memiliki perbedaan dalam proses menentukan letak (koordinat) byte yang dapat disisipi pesan rahasia.

4. Sistem : sistem ini akan menunjukkan metode mana yang terbaik dalam melakukan teknik steganografi, sesuai dengan parameter yang ada yaitu kecepatan dan ketahanan file (fidelity).

Selanjutnya kategori-kategori diatas diuraikan kedalam bentuk diagram tulang ikan (Ishikawa Diagram) dibawah ini :


(44)

Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem

3.1.2 Analisis Persyaratan

Analisis ini ditujukan untuk menganalisis persyaratan yang akan dibutuhkan oleh sistem ini agar dapat berjalan sesuai dengan apa yang rencanakan. Analisis persyaratan terbagi menjadi dua yaitu persyaratan fungsional (functional requirement) dan persyaratan nonfungsional (nonfunctional requirement). Dimana persyaratan fungsional adalah aktifitas dan layanan yang harus diberikan atau disediakan oleh sebuah sistem, dan persyaratan nonfungsional berkaitan denga fitur, karakterisitik, dan batasan lainnya yang menetukan apakah sistem memuaskan atau tidak.

3.1.2.1 Persyaratan Fungsional


(45)

1. Data yang digunakan adalah citra dengan format *.BMP sebagai citra cover dan file embed dengan format *.txt sebagai pesan rahasia.

2. Sistem dapat menentukan maksimal karakter yang dapat disisipkan kedalam citra

cover dan menghitung koordinat penyisipan pesan pada algoritma LSB sampai kemudian file disisipkan kedalam citra cover.

3. sistem dapat menghitung nilai fidelity dari stego image yang ditetapkan sebagai parameter perbandingan antara kedua algoritma yang digunakan yaitu LSB dan LSB FungsiLinear.

3.1.2.2Persyaratan Non-Fungsional

Persyaratan non-fungsional terhadap sistem ini adalah: 1. Performa:

Sistem harus dapat melakukan proses steganografi sesuai dengan kedua algoritma yaitu LSB dan LSB menurut Fungsi Linear serta dapat menunjukkan algoritma yang terbaik.

2. Mudah Digunakan:

Sistem harus dibuat sesederhana mungkin agar tidak menyulitkan penggunanya. 3. Hemat Biaya:

Sistem tidak membutuhkan perangkat keras lainnya sebagai bantuan 4. Dokumentasi:

Sistem dapat menyimpan stego image

5. Manajemen Kualitas:

Sistem dapat menghasilkan tampilan yang baik dan proses yang relative cepat.

3.1.3 Pemodelan Perangkat Lunak

Perancangan perangkat lunak dibuat menggunakan bahasa pemrograman Matlab 2007 dengan proses membuat tampilan GUI. Perancangan aplikasi yang dibuat pada dasarnya mengikuti


(46)

metode algoritma LSB dan LSB menurut Fungsi Linear yang disajikan oleh penulis. Program yang dibuat berdasarkan langkah demi langkah untuk menyelesaikan teknik Hiding File atau steganografi.

Tiga proses yang dominan di dalam sistem ini adalah Penyisipan, Ekstraksidan Perhitungan Fidelity. Penyisipanadalah proses awal dari sistem yaitu inputan citra

penampung. Setelah itu inputan data txt yang menjadi pesan rahasia kemudian setelah data berhasil disisipkan citra akan dihitung nilai ketahanannya dengan perhitungan MSE dan BER yang menjadi parameter perbandingan kedua Algoritma. Proses yang terakhir adalah

ekstraksi, yaitu menguraikan kembali Plaintext atau pesan rahasia dari stegi image.

3.1.3.1 Use Case Diagram

Use Case diagram adalah diagram pemodelan setiap aspek dan kegitan di dalam sistem. Sebuah Use Case diagram dapat menggambarkan semua kegiatan di dalam satu sistem yang berjalan, selain itu Use Case juga menggambarkan semua aktor yang melakukan aktifitas di dalam sistem. Berikut adalah gambar dari rancangan Use Case diagram.


(47)

Use Case diagramyang ditunjukkan pada Gambar 3.2 tedapat tiga aktor yaitu Admin sebagai orang yang bertanggung jawab atas kinerja sistem dan revisi sistem. User1 sebagai embeddor dan User2 sebagai extractor. User1 memiliki peranan dalam melakukan penyisipan dan penguraian serta mengukur ketahanan file ketika akan melakukan pertukaran data kepada User2 yaitu citra yang sudah disisipi pesan (stego image) . User2 hanya memiliki satu peranan yaitu melakukan penguraian untuk mendapatkan pesan rahasia yang ada sudah disisipkan. Untuk lebih jelas kegiatan sistem dapat dilihat pada keterangan activity diagram berikut ini.

3.1.3.1.1 Activity Diagram untuk Use Case Penyisipan

Activity diagram untuk Use Case Penyisipan dapat dilihat seperti pada Gambar 3.3

Gambar 3.3 activity diagram Penyisipan Berikut ini adalah table spesifikasi Use Case diagram proses Penyisipan:


(48)

3.1.3.1.2 Activity Diagram untuk Use Case Ekstraksi

Activity diagram untuk Use Case Ekstraksi dapat dilihat seperti pada Gambar 3.4

Name Penyisipan

Actors Admin dan User1

Description Use Case ini mendeksripsikan proses Penyisipan

Preconditions User menggunakan aplikasi steganografi

Post Conditions User dapat melihat hasil Penyisipan

Kegiatan User Respon system

Success Scenario

1. User memilih menu Penyisipan. 2. User memilih Citra cover,

memilih fileembed dan mengeksekusi tombol Proses. 3. User dapat melihat Citra stego.

1. Sistem menampilkan halaman Penyisipan.

2. Sistem melakukan random kunci.

3. Sistem melakukan proses Penyisipan dan menampilkan hasil Penyisipan (Citra stego).


(49)

Gambar 3.4 activity diagram Ekstraksi

Spesifikasi Use Case Ekstraksi dapat dilihat sebagai berikut:

Tabel 3.2 Spesifikasi Use Case Ekstraksi

Name Ekstraksi

Actors Admin,User1 dan User2

Description Use Case ini mendeksripsikan proses mendeteksi citra embed dari dalam citra stego

Preconditions User menggunakan aplikasi steganografi

Post Conditions User dapat melihat hasil Ekstraksi

Kegiatan User Respon sistem

Success Scenario

1. User memilih menu Ekstraksi. 2. User memilih citra stego,

menggunakan kunci dan mengeksekusi tombol Extract. 3. User dapat melihat citra embed

hasil ekstraksi.

1. Sistem menampilkan halaman Ekstraksi.

2. Sistem melakukan proses ekstraksi dan menampilkan hasil ekstraksi (Citra embed ).


(50)

3.1.3.1.3 Activity Diagram untuk Use Case fidelity

Activity diagram untuk Use Case Ekstraksi dapat dilihat seperti pada Gambar 3.16

Gambar 3.5 activity diagram Fidelity

Spesifikasi Use Case Hitung fidelity dapat dilihat pada Tabel 3.9

Tabel 3.3 Spesifikasi Use Case Hitung fidelity

Name Hitung MSE

Actors User1

Description Use Case ini mendeksripsikan proses perhitungan MSE/BER

Preconditions User sudah melakukan proses Penyisipan

Post Conditions User dapat mengetahui nilai MSE/BER terhadap penggunaan metode LSB FungsiLinear.

Kegiatan User Respon sistem

1. User memilih menu Hitung MSE/BER.

1. Sistem menampilkan halaman Hitung MSE/BER.


(51)

3.1.3.2 Sequence Diagram

Perancangan sequence diagram berguna untuk memprediksi rancangan bagaimana sistem akan berjalan sesuai konten button yang ada pada sistem. Dimulai dari proses Penyisipan, Ekstraksi dan perhitungan nilai fidelity kedua algoritma yang digunakan yaitu LSB dan LSB menurut Fungsi Linear. Adapun nilai fidelity yang digunakan di dalam parameter perbandingan adalah menghitung nilai MSE dan BER. Berikut adalah rancangan sequence diagram kedua

algoritma.

3.1.3.2.1 SequenceDiagram Algoritma LSB

Proses yang pertama dilakukan adalah Penyisipan, pertama User memilih button embed kemudian sistem akan menampilkan halaman Penyisipan. User selanjutnya memilih item PenyisipanLSB dan sistem akan menampilkan halaman PenyisipanLSB. Selanjutnya User melakukan input citra cover dan file txt dengan menekan tombol Pilih citra dan pilih txt, kemudian User mengeksekusi button proses maka sistem akan melakukan proses penyisipan. Jika berhasil maka User dapat melihat tampilan stego image dan melakukan penyimpanan dengan menekan button save. Berikut adalah rancangan sequence diagram untuk proses Penyisipan LSB.

Success Scenario

2. User memilih citra coverdan memilih citra stego, kemudian mengeksekusi tombol Hitung. 3. User dapat melihat hasil

perhitungan nilai MSE/BER.

2. Sistem melakukan proses perhitungan dan menampilkan hasil perhitungan MSE/BER.


(52)

Gambar 3.6Sequence diagram PenyisipanLSB

Setelah sistem selesai melakukan penyisipan User dapat pengecekan nilai fidelity yaitu dengan dengan menekan button MSE dan BER Kemudian sistem akan melakukan perhitungan ketahanan citra sehingga User dapat melihat nilai fidelity. Berikut adalah rancangan sequence diagram perhitungan fidelity :


(53)

Sistem juga mempunyai kemampuan dalam melakukan ekstrasi file yang sebelum nya telah disisipkan. User dapat menekan button Ekstrak kemudian sistem akan menampilkan halaman ekstraksi. Setelah itu User melakukan input stego image dan eksekusi button Ekstrak file dan sistem akan menampilkan Plaintext. Berikut adalah rancangan sequence diagram proses ekstraksi Plaintext:

Gambar 3.8 Sequence Diagram EkstraksiLSB 3.1.3.2.2 Sequence Diagram LSB menurut Fungsi Linear

Proses yang pertama dilakukan adalah Penyisipan, pertama User memilih button embed kemudian sistem akan menampilkan halaman Penyisipan. User selanjutnya memilih item PenyisipanLSB dan sistem akan menampilkan halaman PenyisipanLSB menurut Fungsi Linear. Selanjutnya User melakukan input citra cover dan file txt dengan menekan tombol Pilih citra dan pilih txt, serta User melakukan pembangkitan kunci dengan menekan button cek. kemudian User mengeksekusi button proses maka sistem akan melakukan proses penyisipan. Jika berhasil maka User dapat melihat tampilan stego image dan melakukan penyimpanan dengan menekan button save. Berikut adalah rancangan sequence diagram untuk proses PenyisipanLSB


(54)

Gambar 3.9 Sequence Diagram PenyisipanLSB menurut Fungsi Linear

Setelah sistem selesai melakukan penyisipan User dapat pengecekan nilai fidelity yaitu dengan dengan menekan button MSE Dan BER Kemudian sistem akan melakukan perhitungan ketahanan citra sehingga User dapat melihat nilai fidelity. Berikut adalah rancangan sequence diagram perhitungan fidelity:


(55)

Sama seperti proses LSB User dapat menekan button Ekstrak kemudian sistem akan menampilkan halaman ekstraksi. Setelah itu User melakukan input stego image dan eksekusi button Ekstrak file dan sistem akan menampilkan Plaintext. Berikut adalah rancangan sequence diagram proses ekstraksi Plaintext:


(56)

3.1.4 Diagram Alir (Flowchart)

Flowchart proses Penyisipan embed dengan metode LSB dapat dilihat seperti pada Gambar 3.12


(57)

Gambar 3.12 FlowchartPenyisipan LSB

Flowchart proses Penyisipan embed dengan metode LSB menurut Fungsi Linear dapat dilihat seperti pada Gambar 3.13


(58)

Flowchart proses ekstraksiembeddengan metodeLSB menurut Fungsi Lineardapat dilihat seperti pada Gambar 3.14

Gambar 3.14 Flow ChartEkstraksi embed Start

Input Stego image

Hitung nilai Piksel citra

Stego

Ambil 1 bit LSB

Masih ada Plaintext

END

Tidak Konversikan ke dalam nilai biner setiap Piksel citraStego

Tampilkan Plaintext


(59)

Flowchart proses ekstraksiembeddengan metodeLSB Fungsi Linear dapat dilihat seperti pada Gambar 3.15

Gambar 3.15 Flow ChartEkstraksi Start

Input Stego image

Hitung nilai Piksel citra Stego

Ambil 1 bit LSB Dari piksel tersisip

Masih ada Plaintext

END

Tidak

Konversikan ke dalam nilai biner setiap Piksel citraStego

Tampilkan Plaintext


(60)

Flowchartmenghitung nilai MSE dapat dilihat seperti pada Gambar 3.16

Gambar 3.16 Flow Chart MSE Start

Input citra CoverdanStego

MSE = 1

��∑ ∑� �[�]

2

Nilai MSE

Hitung jumlah kuadrat selisih Nila

S=�(�,�)− �(�,�)

Hitung Nilai Piksel

Hitung Nilai RGB Piksel Hitung Dimensi(X,Y)


(61)

Flowchartmenghitung nilai BER dapat dilihat seperti pada Gambar 3.17

Gambar 3.17 Flow Chart BER Start

Input citra CoverdanStego

Tampilkan Kristal report

Nilai nilai BER

BER(W, W′) =∑Pi N

Hitung jumlah kuadrat selisih Nilai setiap piksel dengan rumus Hitung Nilai Piksel

Hitung Nilai RGB Piksel


(62)

3.2 Perancangan

Rancangan antar muka adalah rancangan tampilan sistem yang akan dibentuk oleh penulis pada penelitian ini, berikut adalah rancangan sistem:

3.2.1 Rancangan Menu Utama

Gambar 3.18 Rancangan Menu Utama

Rancangan Menu Utama merupakan tampilan yang pertama kali muncul saat program dijalankan. Pada rancangan ini terdapat menu embed, ekstrakdan keluar. ButtonEmbed berfungsi untuk masuk ke dalam halaman Penyisipan dan perhitungan fidelity, button ekstrak befungsi untuk masuk ke dalam halaman ekstraksi. Adapun rancangan menu untuk Penyisipan LSB adalah sebagai berikut.

menu embed ekstrak keluar

Analisis Perbandingan LSB dan LSB menurut Fungsi Linear

Saria Mahdi (081401099) Tampilan logo Fasilkom-TI


(63)

3.2.2 Rancangan Penyisipan LSB

Gambar 3.19 Rancangan Penyisipan

Rancangan button pilih gambar, berfungsi untuk mengunjungi directory penyimpanan citra (browse files) yang diperlukan sistem. Rancangan button cek berfungsi untuk

menghitung kapasistas citra cover dan menghitung maksimal karakter yang dapat disisipkan kedalam citra cover. Rancangan button pilih txt, berfungsi untuk mengunjungi directory penyimpanan file txt yang akan disisipkan. Rancangan button Proses berfungsi untuk melakukan proses penyisipan. Rancangan button MSE berfungsi untuk melakukan

perhitungan nilai MSE setelah penyisipan selesai. Rancangan button BER berfungsi untuk menghitung nilai BER setelah penyisipan selesai. Rancangan button bersih mengembalikan tampilan kebentuk awal. Rancangan button keluar berfungsi untuk keluar dari laman User dan berpindah kelaman Menu.

Tampilan Citra cover

Alamat file xxxxxxxxxx

waktu xxxxxxxxxxxxxx

Tampilan Citra stego

Proses Bersih

Pilih txt

Keluar MSE

cek Ukuran xxxxx

save Pilih gambar

Kembali BER


(64)

3.2.3 Rancangan PenyisipanLSBmenurut Fungsi Linear

Gambar 3.20 Rancangan Penyisipan

Rancangan button pilih gambar, berfungsi untuk mengunjungi directory penyimpanan citra (browse files) yang diperlukan sistem. Rancangan button cek berfungsi untuk

menghitung kapasistas citra cover dan menghitung maksimal karakter yang dapat disisipkan kedalam citra cover. Rancangan button pilih txt, berfungsi untuk mengunjungi directory penyimpanan file txt yang akan disisipkan. Rancangan button Proses berfungsi untuk melakukan proses penyisipan. Rancangan button MSE berfungsi untuk melakukan

perhitungan nilai MSE setelah penyisipan selesai. Rancangan button BER berfungsi untuk menghitung nilai BER setelah penyisipan selesai. Rancangan button bersih mengembalikan tampilan kebentuk awal. Rancangan button keluar berfungsi untuk keluar dari laman User dan berpindah kelaman Menu. Tampilan Edit Text “m” berfungsi untuk menampilkan nilai

Tampilan Citra

Alamat file xxxxxxxxxx

waktu xxxxxx

Tampilan Citra

Proses Bersih

Pilih txt

Keluar MSE

cek

Ukuran xxxxx

save Pilih gambar

Kembali BER

Tampilan karakter txt

Jumlah karakter txt

xxxxxx

m

b

xxx


(65)

konstanta m (kunci). Tampilan Edit Text “b” berfungsi untuk menampilkan nilai konstanta b (kunci).

3.2.4 Rancangan Ekstraksi

Gambar 3.21 Rancangan Ekstraksi

Rancangan button Extract berfungsi melakukan pengeluaran Penyisipan pesan txt dari dalam citra stego citra. Rancangan button Browse Stego adalah tombol untuk melakukan pemangilan file citra stego dari memori komputer dan menampilkannya pada picture box, rancangan button SaveEmbed adalah untuk menyimpan file embed hasil ekstraksi, tombol Bersih adalah untuk melakukan pembersihan tampilan dan tombol Keluar untuk menutup tampilan dan mengembalikan kelaman Menu.

Tampilan Citra Stego

alamat File xxxxxxxxxxxxxx

Browse Stego

Tampilan karakterPlaintext

Nama File xxxxxxxxxxxxx

Extract

Save Embed

Bersih


(66)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Pembahasan Algoritma

Tahap ini akan membahas bagaimana sistem akan berjalan sesuai dengan teknik algoritma yang digunakan. Kedua algoritma yang digunakan memiliki teknik penyisipan yang sama yaitu mengganti satu bit terakhir yang paling tidak significant yang letaknya paling kanan dari setiap barisan bit didalam

byte. Berikut adalah pembahasan kedua algoritma yang digunakan

4.1.1 Pembahasan Algoritma Least Significant Bit (LSB)

Sistem ini akan membandingkan kinerja dua algoritma yang digunakan, yaitu Algoritma LSB dan LSB menurut Fungsi Linear. Berikut adalah penjelasan tentang perancangan kedua Algoritma yang digunakan didalam sistem. Sebelum melakukan penyisipan dengan algoritma ini terlebih dahulu akan dilakukan proses – proses pendukung sebagai berikut

4.1.1.1 Baca Nilai Piksel

Sebelum melakukan Penyisipan, terlebih dahulu dilakukan pembacaan dan penghitungan nilai biner dari masing-masing piksel pada citra cover. Sebagai contoh diberikan citra warna berdimensi 512 x 365 piksel seperti pada Gambar 4.1


(67)

Gambar 4.1 Citra cover (512 x 236 piksel)

Citra pada Gambar 4.1 di atas dilakukan pembacaan nilai piksel dari masing-masing komponen warna RGB-nya. Sebagai contoh diberikan cuplikan citra 5 x 5 piksel yang berasal dari citra cover yang dapat dilihat seperti pada Gambar 4.2

Gambar 4.2 Sample Citra cover (5 x 5 piksel)

Citra pada Gambar 4.2 di atas dilakukan pembacaan nilai piksel pada data bitmap Citra cover (5 x 5 piksel) seperti pada Gambar 4.3

(0,1) (0,2) (0,3) (0,4)

(1,0) (1,1) (1,2) (1,3) (1,4) Citra Cover 5 x 5 piksel

(0,0)

(2,0) (2,1) (2,2) (2,3) (2,4)

(3,0) (3,1) (3,2) (3,3) (3,4)


(68)

Gambar 4.2 Nilai Piksel Citra cover (5 x 5 piksel)

4.1.1.2 Hitung Nilai Red Green Blue

Untuk mencari masing-masing nilai R, G dan B dilakukan dengan rumus sebagai berikut:

Nilai R = C(i,j) and 255 ………...………...…… (4.1) NilaiG= (C(i,j) and 65280) / 256. ………...……...…... (4.2) Nilai B = (C(i,j) and 16711680) / 256/256..….………...…... (4.3) Dimana C(i,j) adalah nilai piksel citra pada kordinat (i,j) dalam biner.

Maka dilakukan perhitungan nilai R, G, B pada Gambar 3.3 di atas:

1. Nilai piksel (0,0)=000101110010000000100101.

Nilai R = 000101110010000000100101and 11111111 =00100101 = 37 (dec) Nilai G = (000101110010000000100101and 1111111100000000) /100000000 = 00100000= 32(dec).

Nilai B= (000101110010000000100101and111111110000000000000000)/ 100000000/100000000 = 00010111= 23(dec).

2. Nilai piksel (0,1)=010110010100000101000001.

Nilai R = 010110010100000101000001and 11111111 =01000001 = 65 (dec)

Piksel (0,0) Piksel (0,1) Piksel (0,2) Piksel (i,j)

000101110010000000100101010110010100000101000001 101010101010100010100111 ...

Piksel (1,0) Piksel (1,1) Piksel (1,2) Piksel (i,j)


(69)

Nilai G = (010110010100000101000001and 1111111100000000)/100000000 = 01000001= 65(dec).

Nilai B = (010110010100000101000001and 111111110000000000000000)/ 100000000/100000000 = 01011001= 89(dec).

R=37 G=32 B=23 R=65 G=65 B=89 R=167 G=168 B=170 R=171 G=147 B=153 R=160 G=130 B=141 R=32 G=35 B=35 R=76 G=76 B=90 R=164 G=157 B=158 R=181 G=170 B=179 R=204 G=203 B=199 R=76 G=90 B=82 R=69 G=73 B=83 R=163 G=163 B=171 R=186 G=190 B=189 R=177 G=184 B=162 R=95 G=112 B=102 R=86 G=98 B=114 R=157 G=172 B=182 R=167 G=182 B=184 R=174 G=186 B=187 R=74 G=84 B=93 R=121 G=134 B=152 R=173 G=187 B=194 R=184 G=196 B=207 R=202 G=214 B=227

Gambar 4.4 Matriks RGBcitra cover

Pencarian nilai piksel terus dilanjutkan sampai dengan piksel (4,4) dihitung dengan cara yang sama seperti diatas. Dari hasil perhitungan nilai RGB citra di atas dimasukkan pada matriks citra cover RGB seperti pada Gambar 4.4


(70)

4.1.1.3 Hitung Nilai Biner Setiap Karakter

File yang digunakan sebagai pesan yang akan disisipkan berformat *.txt. Misalkan karakter pesan yang akan disisipkan adalah “RAHASIA”. Setiap karakter dari pesan akan dilakukan perhitungan nilai binernya. Untuk mempermudah proses perhitungan kita dapat menggunakan tabel ASCII sebagai bantuan untuk menentukan nilai biner dari masing-masin karakter pesan “RAHASIA”. Dengan demikian, nilai biner masing masing karakter dapat kita liha pada table 4.1

Tabel 4.1 Tabel Nilai Biner Pesan

Karakter Pesan Nilai Biner Berdasarkan Table ASCII

“R” 0101 0010

“A” 0100 0001

“H” 0100 1000

“A” 0100 0001

“S” 0101 0011

“I” 0100 1001

“A” 0100 0001

Dari tabel 4.1 dapat kita ketahui jumlah total dari bit pesan yang akan disisipkan adalah 56 bit. Dengan demikian dibutuhkan 56 piksel atau lebih agar seluruh pesan dapat disisipkan kedalam citra penampungnya, karena dengan teknik LSB dan LSB menurut Fungsi Linear setiap 1 piksel citra hanya dapat menampung 1 bit pesan yang akan disisipkan.

Penyembunyian data dilakukan dengan mengganti bit-bit data yang tidak terlalu berpengaruh didalam segmen citra dengan bit-bit data rahasia atau pesan rahasia pada susunan bit didalam sebuah byte (1 byte = 8 bit). Urutan bit didalam sebuah byte terdapat satu buah bit yang sangat berarti


(71)

yaitu disebut dengan Most Significant Bit (MSB) dan terdapat juga satu bit yang tidak berarti yang disebut dengan Least Significant Bit (LSB).

Gambar 4.5 Bit MSB dan LSB dibarisan bit didalam byte

Langkah – langkah penyisipan algoritma LSB adalah sebagai berikut; 1. Input cover citra

2. Baca nilai Piksel citra, kemudian ubah kedalam bentuk biner 3. Hitung maksimal pesan yang dapat disisipkan

4. Input teks dan ubah kebentuk biner

5. Gantikan 1 bit LSB dari piksel cover image dengan 1 bit embed. 6. Petakan menjadi citra baru (stego image).

Dengan Algoritma LSB setiap byte dari citra penampung dapat disisipkan 1 bit pesan secara berurutan sampai karakter pesan selesai disisipkan. Berikut adalah citra dalam bentuk biner dengan dengan kapasitas 5x5 piksel yang belum disisipi pesan.


(1)

function edit8_Callback(hObject, eventdata, handles) function edit8_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function menu_Callback(hObject, eventdata, handles) Menu_mahdi

function embed_Callback(hObject, eventdata, handles) function ekstrak_Callback(hObject, eventdata, handles) function keluar_Callback(hObject, eventdata, handles) choice = questdlg('Exit?','confirm',...

'Yes','No','No'); switch choice

case 'Yes' close all; end

function lsb_eks_Callback(hObject, eventdata, handles) ekstrak

function mlsb_eks_Callback(hObject, eventdata, handles) extmlsb

function LSB_Callback(hObject, eventdata, handles) sisip

function MLSB_Callback(hObject, eventdata, handles) sismlsb

function listbox2_Callback(hObject, eventdata, handles) function listbox2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function pushbutton11_Callback(hObject, eventdata, handles) figure,plot(handles.nilai_x,handles.rumus1)

handles.r=handles.nilai_x;

Listing Ekstaksi LSB

function varargout = ekstrak(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @ekstrak_OpeningFcn, ... 'gui_OutputFcn', @ekstrak_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end


(2)

function ekstrak_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

guidata(hObject, handles);

function varargout = ekstrak_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles) function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function pushbutton1_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.bmp';},'Buka Citra'); if ~isequal(nama_file,0)

awal1=(fullfile(nama_path,nama_file)); handles.citra1=imread(awal1);

guidata(hObject,handles); axes(handles.axes1); imshow(handles.citra1); ok=imfinfo(awal1);

set(handles.edit1,'String',ok.Filename); end

function pushbutton2_Callback(hObject, eventdata, handles) load('pqfile.mat', 'rr','cc');

[bbb1 kk1 zz1]=size(handles.citra1); jum1=bbb1*kk1*zz1;

bar1=reshape(handles.citra1,jum1,1); p1=dec2bin(bar1);

[b1 k1]=size(p1); x=1;

q=1; for tt=1:b1 for dd=1:k1

if mod (dd,8)==0 && x<=rr && q<=cc pesan(x,q)= p1(tt,dd);

q=q+1; if q==8 q=1; x=x+1; end end end end

g=bin2dec(pesan); h=char(g); lol=transpose(h);

guidata(hObject,handles);

set(handles.listbox1,'String',lol);

function pushbutton3_Callback(hObject, eventdata, handles) [file,path]=uiputfile('*.bmp','save');

Name=fullfile(path,file); imwrite(handles.formasi,Name);

function pushbutton4_Callback(hObject, eventdata, handles) cla(handles.axes1,'reset');

set(handles.axes1,'xtick',[],'ytick',[],'Xcolor','b','Ycolor','b'); cla(handles.axes2,'reset');

set(handles.axes2,'xtick',[],'ytick',[],'Xcolor','b','Ycolor','b'); set(handles.listbox1,'String','');

set(handles.edit1,'String',''); set(handles.edit2,'String','');

function pushbutton5_Callback(hObject, eventdata, handles) close(gcbf)


(3)

function listbox1_Callback(hObject, eventdata, handles) function listbox1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function edit2_Callback(hObject, eventdata, handles) function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function menu_Callback(hObject, eventdata, handles) Menu_mahdi

function embed_Callback(hObject, eventdata, handles) function ekstrak_Callback(hObject, eventdata, handles)

function keluar_Callback(hObject, eventdata, handles) choice = questdlg('Exit?','confirm',...

'Yes','No','No'); switch choice

case 'Yes' close all; end

function LSB_eks_Callback(hObject, eventdata, handles) ekstrak

function MLSB_eks_Callback(hObject, eventdata, handles) extmlsb

function LSB_Callback(hObject, eventdata, handles) sisip

function MLSB_Callback(hObject, eventdata, handles) sismlsb

Listing Ekstaksi LSB menurut Fungsi Persamaan Linear

function varargout = extmlsb(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @extmlsb_OpeningFcn, ... 'gui_OutputFcn', @extmlsb_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

function extmlsb_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;


(4)

guidata(hObject, handles);

function varargout = extmlsb_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles) function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function pushbutton1_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.bmp';},'Buka Citra'); if ~isequal(nama_file,0)

awal1=(fullfile(nama_path,nama_file)); handles.citra=imread(awal1);

guidata(hObject,handles); axes(handles.axes1); imshow(handles.citra); ok=imfinfo(awal1);

set(handles.edit1,'String',ok.Filename); end

function pushbutton2_Callback(hObject, eventdata, handles) load('varmlsbfile.mat', 'rr', 'cc','m','b');

[bbb kk zz]=size(handles.citra); jum=bbb*kk*zz;

lipat=bbb*3;

bar=reshape(handles.citra,jum,1); p=dec2bin(bar);

handles.p=p; x1=1;

y1=1; a=1;

semua=lipat*kk*8; skalar=8*kk; for yuyu=1:lipat

pisah=(a/lipat)*jum; rumus=(m*yuyu+b)*8; if rumus <=skalar barisbaru=pisah*8; koory=barisbaru+rumus; hslbg=(koory/(skalar)); hslbg=floor(hslbg); hsl=mod(koory,skalar); hslak=hsl/8;

oppp(yuyu)=round((kk*hslbg)+hslak); a=a+1;

end end

[ko l]=size(oppp); ss2=1;

b1=1; k1=1; for a=1:l

if b1<=rr && k1<=kk

pesanmlsb(b1,k1)=p(oppp(a),8); k1=k1+1;

if k1>=8 b1=b1+1; k1=1; end end end pesanmlsb

g=bin2dec(pesanmlsb); h=char(g);


(5)

lol=transpose(h);

guidata(hObject,handles);

set(handles.listbox1,'String',lol);

function pushbutton3_Callback(hObject, eventdata, handles) [file,path]=uiputfile('*.bmp','save');

Name=fullfile(path,file); imwrite(handles.formasi,Name);

function pushbutton4_Callback(hObject, eventdata, handles) cla(handles.axes1,'reset');

set(handles.axes1,'xtick',[],'ytick',[],'Xcolor','b','Ycolor','b'); cla(handles.axes2,'reset');

set(handles.axes2,'xtick',[],'ytick',[],'Xcolor','b','Ycolor','b'); set(handles.listbox1,'String','');

set(handles.edit1,'String',''); set(handles.edit2,'String','');

function pushbutton5_Callback(hObject, eventdata, handles) close(gcbf)

Menu_mahdi

function listbox1_Callback(hObject, eventdata, handles) function listbox1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function edit2_Callback(hObject, eventdata, handles)

function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function menu_Callback(hObject, eventdata, handles) Menu_mahdi

function embed_Callback(hObject, eventdata, handles)

function ekstrak_Callback(hObject, eventdata, handles)

function keluar_Callback(hObject, eventdata, handles) choice = questdlg('Exit?','confirm',...

'Yes','No','No'); switch choice

case 'Yes' close all; end

function LSB_eks_Callback(hObject, eventdata, handles) ekstrak

function MLSB_eks_Callback(hObject, eventdata, handles) extmlsb


(6)

sisip

function MLSB_Callback(hObject, eventdata, handles) sismlsb