• Tidak ada hasil yang ditemukan

STEGANOGRAPHY PADA CITRA DIGITAL MENGGUNAKAN METODE LEAST SIGNIFICANT BIT (LSB)

N/A
N/A
Protected

Academic year: 2019

Membagikan "STEGANOGRAPHY PADA CITRA DIGITAL MENGGUNAKAN METODE LEAST SIGNIFICANT BIT (LSB)"

Copied!
102
0
0

Teks penuh

(1)

STEGANOGRAPHY PADA CITRA DIGITAL MENGGUNAKAN

METODE

LEAST SIGNIFICANT BIT

(LSB)

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains

Program Studi Ilmu Komputer

Oleh :

Ruth Vica Nathalia Simanjuntak NIM : 03 3124 049

PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

(2)

STEGANOGRAPHY TECHNIQUE IN THE DIGITAL IMAGE

USING LEAST SIGNIFICANT BIT (LSB)

A Final Thesis

Presented As Partial Fulfillment Of The Requirements To Obtain Sarjana Sains (S.Si) Degree

Computer Science Study Program

By :

Ruth Vica Nathalia Simanjuntak NIM : 03 3124 049

COMPUTER SCIENCE STUDY PROGRAM MATHEMATICS DEPARTMENT SCIENCE AND TECHNOLOGY FACULTY

SANATA DHARMA UNIVERSITY YOGYAKARTA

(3)
(4)
(5)

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain. Kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 1 September 2007

Penulis

(6)

HALAMAN PERSEMBAHAN

(7)

Galatians 2:20

“I am crucified with Christ: neverthless I live; yet not I, but Christ liveth in me: and the life which I now live in the flesh I live by the faith of the Son of God,

who loved me, and gave himself for me”.

“God works in a mysterious way. We dont know what His plans. But onething, we have to believe. He always give us the best. Just write your plans in pencil, but give God the eraser. His way is always so much better than we could have

chosen, trust HIM”

“ Suka duka adalah mutlak bagi setiap

makhluk hidup, jadi dapatkah kita yang hidup ini berlari dari sesuatu yang mutlak itu...?”.

“Untuk menciptakan pelangi dibutuhkan hujan dan matahari, dan jangan engkau menolak hujan, karena itu dapat menyuburkan tanah dan memberi

kehidupan...”.

“Setiap kepahitan dan penderitaan akan mencuci jiwa kita. Menjadikannya sebuah proses yang unik untuk menjadikan kita manusia yang lebih baik lagi

yang dapat kita capai...”.

Tuhan memberikan kita kelemahan untuk menunjukkan betapa perkasa kuasaNya. Dan memberi kita kekuatan untuk menunjukkan betapa Dia mengasihi kita.

(8)

Jesus.... I love You So Much. ABSTRAK

Penggunaan jaringan komputer dan teknologi internet telah mengalami kemajuan yang sangat canggih, di mana setiap komputer yang terhubung ke jaringan dapat saling berkomunikasi dan bertukar informasi. Namun di sisi lain, ancaman keamanan data menjadi salah satu hal yang sangat serius. Untuk mengamankan data yang dikirim dalam jaringan publik ada beberapa metode yang dapat digunakan salah satunya adalah steganography.

(9)

ABSTRACT

The application of computer networking and internet technology has been recently improving. Hence, it is possible for every single unit of a computer in network to share information and, indirectly, communicate each other. On the other hand, there is also a serious problem that may appear along with the development in computer networking. This problem leads to the data security. Fortunately, there are several ways to solve the problem, especially in keeping the data security which is sent in public networking. One of them is by using steganography.

(10)
(11)

KATA PENGANTAR

Segala puji syukur, kemuliaan dan hormat hanya bagi Tuhan Yesus Kristus yang senantiasa mencurahkan hikmat, kebijaksanaan, kekuatan serta kasih setia di dalam kehidupan penulis baik dalam suka maupun duka, sehingga skripsi yang berjudul “Steganography Pada Citra Digital Menggunakan Metode Least Significant Bit (LSB)” ini dapat selesai.

Skripsi ini dimaksudkan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Sains Program Studi Ilmu Komputer, Jurusan matematika, Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta.

Dalam kesempatan ini, Penulis menyampaikan rasa terima kasih kepada :

1. Bapak Yanuarius Joko Nugroho, S.Si selaku dosen pembimbing tugas akhir. 2. Bapak Drs. Haris Sriwindono, M.Kom selaku dosen pembimbing akademik Ilmu Komputer 2003.

3. Ibu P.H Prima Rosa, S.Si., M.Sc., selaku Kaprodi Ilmu Komputer. 4. Bapak Ir. Gregorius Heliarko, S.J, S.S, B.S.T, M.Sc, M.A selaku Dekan Fakultas Sains dan Teknologi.

5. Bapak Eko Hari Parmadi, S.Si., M.Kom selaku dosen penguji. 6. Ibu Rita Widiarti, S.Si., M.Kom selaku dosen penguji.

7. Staff pengajar Program Studi Ilmu Komputer, terima kasih atas ilmu dan didikan yang telah diberikan kiranya Tuhan memberkati setiap pekerjaan tangan dan buah pikiran kalian.

8. Staff administrasi Pak Tukijo “Mr. T’ dan Ibu Linda, terima kasih selama ini mau berlelah kami sibukkan.

9. Orangtuaku Bapak K. Simanjuntak dan mama L. Siregar, terima kasih untuk cinta, perhatian, penerimaan, pengorbanan, peluh dan sakit itu. I love you so much, how can I life without you.

(12)

11. Pihak-pihak yang tidak dapat penulis sebutkan satu per satu, terima kasih. Semoga skripsi ini dapat berguna bagi para pembaca dan dapat menambah wawasan mengenai keamanan data terkait dengan jaringan publik. Penulis sangat menyadari dalam skripsi tersebut banyak sekali kekurangan untuk itu penulis dengan senang hati menerima saran dan kritik yang bersifat membangun demi kemajuan ilmu pengetahuan kita bersama.

Yogyakarta, 6 Februari 2008

(13)

DAFTAR ISI

Halaman

HALAMAN JUDUL... i

HALAMAN PERSETUJUAN DOSEN PEMBIMBING... ii

HALAMAN PENGESAHAN... iii

PERNYATAAN KEASLIAN KARYA... iv

HALAMAN PERSEMBAHAN... v

MOTTO... vi

ABSTRAK... vii

ABSTRACT... viii

KATA PENGANTAR... ix

DAFTAR ISI... xi

DAFTAR GAMBAR... xiii

DAFTAR TABEL... BAB I PENDAHULUAN... 1

1.1 Latar Belakang... 1

1.2 Rumusan Masalah... 2

1.3 Batasan Masalah... 3

1.4 Tujuan Penulisan... 3

1.5 Manfaat Penulisan... 3

1.6 Metodologi Penulisan... 4

(14)

BAB II DASAR TEORI... 6

2.4 Metode Konversi Bilangan Desimal ke Biner... 12

2.5 Metode Konversi Bilangan Biner ke Desimal... 13

2.6 Steganography... 13

2.6.1 Sejarah Steganography... 13

2.6.2 Perbedaan Cryptography Dengan Steganography... 15

2.6.3 Steganography Dalam Format Citra Digital... 16

2.6.4 Steganography Dengan Metode LSB... 16

2.7 Borland Delphi 6.0... 19

BAB III ANALISIS DAN PERANCANGAN SISTEM... 22

3.1 Analisis Sistem... 22

3.2 Perangkat Pendukung Steganography... 22

3.3 Rancangan Proses... 23

3.3.1 Diagram Konteks... 23

3.3.2 DFD Level 1 Proses Penyisipan Pesan... 24

3.3.3 DFD Level 2 Proses Pengambilan Pesan... 25

(15)

3.4.1 Rancangan Umum Sistem... 26

3.4.2 Perancangan Tulis Pesan... 26

3.4.3 Cek Flag... 27

3.5 Struktur File Citra Steganography... 45

3.6 Rancangan Menu Program... 47

3.7 Rancangan User Interface Program... 49

3.7.1 Rancangan Tampilan Form Awal... 49

3.7.2 Rancangan Tampilan Form Utama... 49

3.7.3 Rancangan Tampilan Form Tulis Pesan... 50

3.7.4 Rancangan Tampilan Form Baca Pesan... 52

3.7.5 Rancangan Tampilan Form Analyze... 53

3.7.6 Rancangan Tampilan Form About... 55

BAB IV IMPLEMENTASI DAN HASIL PROGRAM... 56

(16)

4.1.1 Form Menu Awal... 56

4.1.2 Form Menu Utama... 56

4.1.3 Form Tulis Pesan... 57

4.1.4 Form Baca Pesan... 61

4.1.5 Form Analyze... 64

4.2 Hasil Implementasi... 64

4.2.1 Form Menu Awal... 64

4.2.2 Form Menu Utama... 65

4.2.3 Form Tulis Pesan... 66

4.2.4 Form Baca Pesan... 67

4.2.5 Form Analyze... 68

4.2.6 Form About... 69

4.3 Pembahasan Hasil... 70

4.4 Pembahasan Proses... 76

BAB V KESIMPULAN DAN SARAN... 78

(17)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Citra monocrom... 8

Gambar 2. 2 Representasi citra biner dalam data digital... 8

Gambar 2. 3 Citra gray scale... 9

Gambar 2. 4 Representasi citra gray scale dalam data digital... 9

Gambar 2.5 Komposisi warna pixel format citra 24 bit... 10

Gambar 2.6 Citra true color... 12

Gambar 2.7 Representasi citra true color dalam data digital... 12

Gambar 2.8 Ilustrasi pixel sebuah image... 17

Gambar 2.9 Ilustrasi penyisipan pesan... 19

Gambar 3.1 Diagram konteks... 23

Gambar 3.2 DFD Level 1 proses penyisipan pesan... 24

Gambar 3.3 DFD Level 2 proses pengambilan pesan... 25

Gambar 3.4 Rancangan umum sistem... 26

Gambar 3.5 Flowchart tulis pesan... 27

Gambar 3.6(a) Flowchart penyisipan flag... 29

Gambar 3.6(b) Flowchart penyisipan flag... 30

Gambar 3.7(a) Flowchart sisip pesan... 33

Gambar 3.7(b) Flowchart sisip pesan... 34

Gambar 3.7(c) Flowchart sisip pesan... 35

Gambar 3.8(a) Flowchart info baris... 36

Gambar 3.8(b) Flowchart info baris... 37

Gambar 3.9(a) Flowchart info kolom... 38

Gambar 3.9(b) Flowchart info kolom... 39

Gambar 3.10 Flowchart program baca pesan... 40

(18)

Gambar 3.12 Flowchart ambil info kolom... 42

Gambar 3.13(a) Flowchart ambil pesan... 43

Gambar 3.13(b) Flowchart ambil pesan... 44

Gambar 3.14 Struktur file citra steganography... 45

Gambar 3.15 Array pixel warna RGB... 46

Gambar 3.16 Hirarki menu pull down... 47

Gambar 4.1 Interface menu awal... 64

Gambar 4.2 Gambar kotak konfirmasi... 65

Gambar 4.3 Interface menu utama... 66

Gambar 4.4 Form tulis pesan... 67

Gambar 4.5 Interface baca pesan... 68

Gambar 4.6 Form analyze... 68

(19)

DAFTAR TABEL

Tabel 2.1 Konversi Bilangan Biner ke Desimal...

(20)

BAB I PENDAHULUAN

1.1 LATAR BELAKANG

Jaringan komputer dan internet telah mengalami kemajuan yang sangat

pesat. Teknologi ini dapat menghubungkan semua komputer di seluruh belahan dunia sehingga dapat saling berkomunikasi dan bertukar informasi berupa teks,

gambar maupun video. Seiring dengan perkembangan teknologi tersebut, secara langsung ikut mempengaruhi cara kita berkomunikasi. Bila dahulu untuk berkomunikasi pesan atau surat menggunakan pos, sekarang telah banyak layanan

e-mail di internet yang dapat mengirimkan pesan secara langsung ke penerimanya. Akan tetapi sebagai jaringan publik, internet rawan terhadap pencurian

data karena seseorang yang terhubung ke internet dapat mencari dan mencuri informasi yang ada sehingga kejahatan di dunia cyber pun semakin berbahaya. Oleh karena itu, ancaman keamanan data menjadi suatu masalah yang cukup

serius dan keamanan data menjadi suatu kebutuhan yang mutlak, khususnya untuk informasi-informasi yang bersifat rahasia.

Untuk mengatasi hal tersebut, maka diperlukan suatu teknik yang bertujuan untuk mengamankan data di komputer yang terhubung ke jaringan publik dari aksi yang merugikan. Salah satu cara untuk mengamankan data adalah

(21)

lain misalnya citra digital, sehingga tidak menyita perhatian orang lain. Teknik tersebut lebih dikenal dengan steganography.

Penggunaan steganography menjadi daya tarik banyak orang pada peristiwa pemboman terhadap gedung WTC, 11 September 2001. Hal tersebut disebabkan karena ada pernyataan dari pihak pejabat pemerintah dan para ahli

pemerintahan di AS yang menyebut-nyebut bahwa para teroris menyembunyikan peta-peta dan foto-foto target serta perintah untuk aktifitas teroris di chat sport,

buletin boards porno dan web site lainnya.

Teknik steganography meliputi banyak metode komunikasi seperti

invisible ink,microdots, watermarking, pengaturan kata, tanda tangan digital, jalur tersembunyi, komunikasi spektrum lebar dan Least Significant Bit (LSB).

Pada kesempatan kali ini, Penulis akan membahas dan

mengimplementasikan teknik steganography dengan metode Least Significant Bit ( LSB/ bit yang terendah) dengan bahasa pemograman Borland Delphi

6.0. Karena dengan metode LSB untuk penglihatan mata manusia sangatlah

mustahil untuk dapat membedakan warna pada file gambar yang sudah diisi pesan jika dibandingkan dengan file gambar asli sebelum disisipi dengan pesan rahasia.

1.2 RUMUSAN MASALAH

Bagaimana menyembunyikan suatu pesan berupa karakter di balik

(22)

1.3 BATASAN MASALAH

Melihat masalah yang dihadapi, maka Penulis memberi batasan sebagai berikut:

a. Sistem yang akan dibuat hanya menerima file citra dengan format .bmp 24 bit sebagai media penampung. Karena citra dengan format BMP masih memiliki

sifat asli dari citra tersebut dan belum mengalami penurunan gradasi dan belum terkompresi.

b. Pesan yang disisipkan berupa masukan karakter.

1.4 TUJUAN PENULISAN

Tujuan dari penulisan tersebut adalah membahas dan mengimplementasikan bagaimana suatu pesan berupa karakter dapat disembunyikan di balik sebuah citra digital dan bagaimana membaca pesan yang

telah disisipi di balik citra tersebut.

1.5 MANFAAT PENULISAN

Penulisan tersebut diharapkan dapat memberi manfaat yang positif bagi pengguna komputer yang terhubung ke jaringan untuk mengamankan data

(23)

1.6 METODOLOGI PENULISAN

Metodologi yang digunakan dalam penulisan ini antara lain : a. Studi literatur

Pada studi literatur ini, Penulis mempelajari metode penyisipan pesan dengan teknik steganography kemudian mengimplementasikan metode tersebut ke

dalam program.

b. Metode pengembangan perangkat lunak dengan Borland Delphi 6.0

c. Perencanaan program d. Membuat program

1.7 SISTEMATIKA PENULISAN

Bab I PENDAHULUAN

Pada Bab ini akan dijelaskan mengenai latar belakang, rumusan masalah, batasan masalah, tujuan penulisan, manfaat penulisan,

metodologi penulisan dan sistematika penulisan. Bab II DASAR TEORI

Pada bab tersebut berisi tentang penjelasan teori-teori yang

mendukung tentang implementasi steganography. Teori-teori tersebut meliputi : steganography, pengertian citra digital, format

(24)

Bab III ANALISIS DAN PERANCANGAN PROGRAM

Bab tersebut berisi tentang analisis sistem, perangkat pendukung, rancangan program dan rancangan proses.

Bab IV IMPLEMENTASI DAN PEMBAHASAN

Bab ini berisi tentang pembahasan program dan implementasi hasil

program.

Bab V KESIMPULAN DAN SARAN

Bab tersebut berisi tentang kesimpulan terakhir dari implementasi

dan saran dari Penulis. DAFTAR PUSTAKA

Memuat sumber-sumber referensi naskah. LAMPIRAN

(25)

Bab II DASAR TEORI

2.1 CITRA DIGITAL

Definisi citra digital menurut kamus webster adalah “suatu

representasi, kemiripan atau imitasi dari suatu objek atau benda”. Sebuah citra dalam komputer merupakan suatu larik dua dimensi atau suatu matriks yang elemen-elemennya menyatakan tingkat keabuan dan elemen gambar

(pixel_Picture Element). Pixel merupakan bagian terkecil dari suatu citra digital. Format citra digital ada bermacam-macam misalnya .bmp, .jpg, .gif.

Karena sebenarnya citra merepresentasikan informasi tertentu dan informasi tersebut dapat dinyatakan secara bervariasi maka citra yang mewakilinya dapat muncul dalam berbagai format. Pada citra digital semua informasi tadi disimpan

dalam bentuk angka. Citra digital tersusun atas titik-titik yang biasanya berbentuk persegi panjang atau bujursangkar yang secara beraturan membentuk baris-baris dan kolom-kolom. Setiap titik memiliki koordinat sesuai dengan posisinya dalam

citra. Koordinat ini biasanya dinyatakan dalam bilangan bulat positif, yang dapat dimulai dari 0 atau 1 bergantung pada sistem yang digunakan. Dalam Delphi

koordinat titik dalam citra dimulai dari 0, koordinat kiri atas image adalah (0,0) (Achmad, 2005).

(26)

Salah satu hal yang menarik tentang sistem operasi Windows adalah sistem operasi tersebut mempunyai standar untuk format berkas gambar yaitu

.bmp (bitmap) dan juga format berkas grafik vektor standar Windows MetaFile (WMF). Selain itu Windows juga memiliki perintah API ( Application

Programming Interface) yang dapat dipanggil langsung untuk memanipulasi dan menampilkan format berkas tersebut (http://ilmukomputer.internux.net.id) .

Suatu file Bitmap terdiri atas tiga bagian utama yakni : bagian header,

palette ( jika diperlukan) dan image dari bitmap itu sendiri. Setiap bagian-bagian ini berisi berbagai informasi yang dibutuhkan untuk menampilkan gambar, dimana semua bagian-bagian ini mencakup hal-hal yang dibutuhkan untuk

ditampilkan dalam format berkas BMP.

Header terdiri dari dua bagian yang berbeda. Bentuk header tergantung pada versi Windows, di mana berkas .bmp tersebut diciptakan. Jika berkas .bmp diciptakan pada versi Windows di bawah Windows 3.0 atau di OS/2, kedua bagian tersebut dibentuk dari struktur BitmapFileHeader dan struktur

BitmapCoreHeader. Jika berkas .bmp diciptakan di versi Windows yang lebih baru, maka kedua bagian tersebut dibentuk dari struktur BitmapFileHeader dan

BitmapInfoHeader.

Lain halnya dengan gambar yang 1-bit yang tidak membutuhkan informasi tabel warna. Dalam hal ini data gambar bitmap langsung muncul setelah

(27)

2.3 FORMAT CITRA BITMAP

Format pixel yang sering digunakan pada citra bitmap ada tiga yakni : format pixel 1 bit yang biasa dikenal sebagai citra biner/monocrom, format pixel 8

bit yang biasa dikenal citra gray scale dan yang terakhir format pixel 24 bit yang biasa dikenal citra true color atau citra RGB (Achmad, 2005).

2.3.1 Citra monocrom (1 bit)

Citra monocrom biasa juga disebut citra biner. Pada citra monocrom

setiap titik bernilai 0 atau 1; masing-masing merepresentasikan warna tertentu.

Misalnya warna hitam bernilai 0 dan warna putih bernilai 1. Setiap titik pada citra

hanya membutuhkan 1-bit.

(28)

Gambar 2.2 Representasi citra biner dalam data digital (Achmad, 2005)

2.3.2 Citra gray scale (8 bit)

Citra skala keabuan memberi kemungkinan warna yang lebih banyak dari pada citra biner, karena ada nilai-nilai lain di antara nilai minimum ( biasanya

= 0) dan nilai maksimumnya. Banyak kemungkinan nilai minimum dan nilai

maksimum tergantung jumlah bit yang dipakai. Format citra ini disebut skala

keabuan karena pada umumnya warna yang dipakai adalah antara hitam sebagai warna minimum dan warna putih sebagai warna maksimum, sehingga warnanya keabuan.

Gambar 2.3 Citra Gray scale

(29)

2.3.3 Citra True color ( 24 bit)

Bitmap 24 bit merupakan suatu format file yang menyimpan informasi warna dalam format true color, dimana pixel warna disimpan dalam nilai 24-bit

dengan 8 bit (1-byte) untuk masing-masing komponen warna Merah (Red), Hijau

(Green), Biru (Blue). Setiap warna dasar memiliki intensitas sendiri dengan nilai maksimum 255 (8 bit) misalnya warna kuning merupakan kombinasi warna

merah dan warna hijau sehingga nilai RGBnya adalah 255 255 0; sedangkan

warna ungu muda nilai RGBnya adalah 150 0 150. Dengan demikian setiap titik

pada citra true color membutuhkan data 3 byte = 24 bit. Komposisi warna pixel untuk format citra 24 bit diatur seperti pada gambar 2.2.1.5 berikut ini :

B G R

Gambar 2.5 Komposisi warna pixel format citra 24 bit

Sehingga didapatkan intensitas masing-masing warna akan berkisar

diantara 0 sampai 255. Gabungan ketiga warna dengan masing-masing intensitas yang berbeda akan menghasilkan warna yang cukup banyak dengan jumlah warna sebanyak 256 * 256 * 256 atau = 16777216 dengan demikian bisa dianggap

mencakup semua warna yang ada, inilah sebabnya format ini dinamakan true

(30)

File bitmap 24 bit terdiri atas dua tipe informasi yaitu : graphical dan

non graphical. Data graphical merupakan data yang menunjukkan warna pada tiap-tiap pixel, sedangkan data non graphical terdiri atas informasi lain yang dibutuhkan untuk mengenali citra, seperti lebar dan tinggi

Aplikasi steganography yang dibuat akan menyisipkan pesan pada

format file .bmp 24 bit. Sebagai contoh file gambar BMP 24 bit dengan warna merah murni dalam format biner akan terlihat sebagai berikut :

00000000 00000000 11111111

00000000 00000000 11111111

Sedangkan untuk warna hijau murni dalam format biner akan terlihat sebagai berikut :

00000000 11111111 00000000

00000000 11111111 00000000

Sedangkan untuk warna biru murni dalam format biner akan terlihat

sebagai berikut :

11111111 00000000 00000000

11111111 00000000 00000000

Dari uraian di atas dapat dilihat bahwa informasi dari warna biru berada pada bit pertama sampai bit delapan, informasi warna hijau berada pada bit

sembilan sampai enam belas dan sedangkan informasi warna merah berada pada

bit tujuh belas sampai dengan bit dua puluh empat

(http://ilmukomputer.internux.net.id). Gambar 2.6 berikut ini merupakan contoh

(31)

Gambar 2.6 Citra True Color

Gambar 2.7 Representasi citra true color dalam data digital (Achmad, 2005)

2.4 METODE KONVERSI BILANGAN DESIMAL KE BINER

Metode konversi yang digunakan untuk mengubah dari bilangan

desimal menjadi bilangan biner adalah dengan mengubah bilangan tersebut dari basis 10 menjadi basis 2. Adapun caranya adalah dengan melakukan operasi modulus terhadap bilangan desimal tersebut dengan 2 sampai nilai tersebut habis

di modulus, yang kemudian kita baca dari nilai bawah dari sisa hasil bagi. Berikut adalah untuk memperjelas tentang konversi dari bilangan desimal menjadi

bilangan biner.

Misal kita akan mencari bilangan biner dari 10, maka tahapan-tahapannya adalah :

(32)

Kemudian kita baca dari nilai yang paling bawah, sehingga biner dari 10 adalah

1010.

2.5 METODE KONVERSI BILANGAN BINER KE DESIMAL

Metode konversi yang digunakan untuk mengubah dari bilangan biner menjadi bilangan desimal adalah dengan mengubah bilangan berbasis 2 menjadi

berbasis 10. Adapun caranya dengan mempangkatkan nilai biner yang bernilai 1 dengan indexnya. Misalkan bilangan biner 1011 menjadikannya desimal dengan

cara : 1.23 + 0.22 + 1.21 + 1.20 = 8+0+2+1 = 11.

Tabel 2.1 Konversi Bilangan Biner ke Desimal

Index ke- 3 2 1 0 Hasil

Biner 1 0 1 1

Desimal 23 0 21 20 11

2.6 STEGANOGRAPHY

Kata steganography berasal dari bahasa Yunani yaitu steganos yang artinya

tersembunyi atau terselubung dan graphein yang artinya menulis, sehingga kurang lebih artinya adalah “menulis tulisan yang tersembunyi atau terselubung”

(http://www.wepin.com/pgp/stego.html). 2.6.1 Sejarah Steganography

Catatan pertama tentang steganography ditulis oleh seorang sejarawan

(33)

pesan dengan cara mentatoo pesan pada kulit kepala seorang budak dan ketika rambut budak itu mulai tumbuh, Histaeus mengutus budak itu ke Militus untuk

mengirim pesan di kulit kepalanya tersebut kepada Aristagoras.

Cerita lain tentang steganography datang juga dari sejarahwan Yunani, Herodotus yaitu dengan cara menulis pesan pada papan kayu yang ditutup dengan

lilin. Demeratus, seorang Yunani yang mengabarkan berita kepada Sparta bahwa Xerxes bermaksud menyerbu Yunani. Agar tidak diketahui pihak Xerxes,

Demaratus menulis pesan dengan cara mengisi tabung kayu dengan lilin dan menulis pesan dengan cara mengukir pesan pada bagian bawah kayu, lalu papan kayu tersebut dimasukkan ke dalam tabung kayu, kemudian tabung kayu itu

ditutup kembali dengan lilin.

Teknik steganography yang lain adalah tinta yang tidak terlihat.

Teknik ini pertama digunakan pada zaman Romawi kuno yaitu dengan menggunakan air sari buah jeruk, urine atau susu sebagai tinta untuk menuils pesan. Cara membacanya adalah dengan dipanaskan di atas lilin, tinta yang

sebelumnya tidak terlihat, ketika kena panas akan berangsur-angsur menjadi gelap, sehingga pesan dapat dibaca. Teknik ini pernah juga digunakan pada Perang Dunia II.

Pada abad 20, steganography benar-benar mengalami perkembangan. Selama berlangsung Perang Boer, Lord Boden Powell (Pendiri Gerakan

(34)

musuh pada sayap kupu-kupu agar gambar-gambar peta sasaran tersebut terkamuflase.

Perang Dunia II adalah periode pengembangan teknik-teknik baru

steganography. Pada awal Perang Dunia II walaupun masih digunakan teknik tinta yang tidak terlihat, namun teknik-teknik baru mulai dikembangkan seperti

menulis pesan rahasia ke dalam kalimat lain yang tidak berhubungan langsung dengan isi pesan rahasia tersebut, kemudian teknik menulis pesan rahasia ke

dalam pita koreksi karbon mesin ketik, dan juga teknik menggunakan pin berlubang untuk menandai kalimat terpilih yang digunakan dalam pesan, teknik terakhir adalah microdots yang dikembangkan oleh tentara Jerman pada Perang

Dunia II.

Dari contoh-contoh steganography konvensional tersebut dapat dilihat

bahwa semua teknik steganography berusaha merahasiakan komunikasi dengan cara menyembunyikan pesan ataupun mengkamuflase pesan. Maka sesungguhnya prinsip dasar dalam steganography lebih dikonsentrasikan pada kerahasiaan

komunikasinya bukan pada datanya.

2.6.2 Perbedaan Cryptography dengan Steganography

Disamping steganography, ada juga metode yang lain yang dapat

digunakan untuk mengamankan data dalam jaringan publik yakni cryptography. Walaupun steganography dapat dikatakan memiliki hubungan yang erat dengan

(35)

komunikasi yang sebenarnya dan bukan datanya. Dengan merahasiakan komunikasinya diharapkan juga akan melindungi data yang dikirim.

Pesan dalam cyphertext (data sandi) mungkin akan menimbulkan kecurigaan, sedangkan pesan yang dibuat dengan steganography kemungkinan ini cukup kecil. Ini merupakan salah satu keuntungan dari pemakaian steganography

bila dibandingkan dengan cryptography (http://beta.tnial.mil.id) 2.6.3 Steganography dalam format citra digital

Steganography pada citra digital digunakan untuk mengeksploitasi keterbatasan sistem penglihatan manusia dengan cara menurunkan kualitas warna pada file gambar yang belum disisipi pesan rahasia. Sehingga dengan keterbatasan

tersebut, mata manusia sulit menemukan gradasi penurunan kualitas warna pada

file gambar yang telah disisipi pesan rahasia. 2.6.4 Steganography dengan metode LSB

Metode penyisipan LSB (Least Significant Bit) ini adalah menyisipi pesan dengan cara mengganti bit ke-8,16 dan 24 pada representasi biner file

gambar dengan representasi biner pesan rahasia yang akan disembunyikan. Dengan demikian pada setiap pixel file gambar BMP 24 bit dapat disisipkan 3 bit pesan, misalnya terdapat data raster original file gambar sebagai berikut :

00100111 11101001 11001000

00100111 11001000 11101001

(36)

Dan pesan yang akan disisipkan adalah huruf A. Representasi biner huruf A adalah 01000001, dengan menyisipkan representasi biner A ke dalam

representasi biner data raster file gambar di atas maka menghasilkan :

00100110 11101001 11001000

00100110 11001000 11101000

11001000 00100111 11101001

Contoh :

a. Pesan yang akan disisipkan adalah AQ.

AQ

65 81

Dari tiap-tiap karakter akan diambil nilai ASCIInya yaitu : 65, 81.

b. Nilai ASCII (dalam bentuk desimal) itu akan diubah menjadi nilai biner

sehingga menghasilkan perhitungan sebagai berikut :

• 65 = 01000001

• 81 = 01010001

c. Kemudian mengambil nilai RGB dari tiap-tiap pixel gambar yang akan

disisipi pesan. Seperti pada gambar di bawah ini :

px1 px2 px3 px4 px5 px6 px7 px8

px9 px10 px11 px12 px13 px14 px15 px16

px17 px18 px19 px20 px21 px22 px23 px24

(37)

Misalkan data-data RGB tiap pixel adalah sebagai berikut :

• px1 → R = 145, G = 22 dan B = 128

• px2 → R = 150, G = 22 dan B = 129

• px3 → R = 155, G = 21 dan B = 130

• px4 → R = 220, G = 19 dan B = 131

• px5→ R = 215, G = 30 dan B = 125

• px6→R = 214, G = 16 danb B = 150

Kemudian nilai- nilai RGB di atas akan diubah menjadi nilai biner,

sehingga menghasilkan nilai-nilai berikut ini :

• px1 → R = 10010001, G = 00010110, B = 10000000

• px2 → R = 10010110, G = 00010110, B = 10000001

• px3 → R = 10011011, G = 00010101, B = 10000010

• px4 → R = 11011100, G = 00010011, B = 10000011

• px5 → R = 11010111, G = 00011110, B = 01111101

• px6 → R = 11010111, G = 00011110, B = 01111101

d. Menyisipkan representasi biner pesan ke dalam representasi biner file

gambar pada bit-bit ke 8, 16 dan 24. Sehingga representasi biner file gambar telah mengalami perubahan seperti gambar di bawah ini :

Pixel ke- R G B

px1 10010000 00010111 10000000

px2 10010110 00010110 10000000

(38)

px4 11011100 00010011 10000010

px5 11010111 00010010 10000010

px6 11010110 00010001 10010110

Gambar 2.9 Ilustrasi Penyisipan Pesan

2.7 BORLAND DELPHI 6.0

Borland Delphi merupakan program aplikasi database yang

berbasis objek Pascal dari Borland. Borland Delphi memiliki

komponen-komponen visual maupun non-visual berintegrasi yang akan

menghemat penulisan program. Terutama dalam hal perancangan antarmuka

grafis (Graphical User Interface), kemampuan Borland Delphi untuk

menggunakan Windows API (Application Programming Interface) ke dalam

komponen-komponen visual menyebabkan pemograman Borland Delphi

yang bekerja dalam lingkungan Windows menjadi lebih mudah.

Kelebihan Borland Delphi dalam hal kompilasi program juga

menjadi faktor yang mempengaruhi pemilihan bahasa pemograman yang

digunakan. Karena program dikembangkan berdasarkan bahasa Pascal yang

terkenal luas, maka untuk pengembangan program akan lebih mudah. Borland

Delphi juga mempunyai kemampuan bekerja untuk pengolahan gambar dengan

tersedianya unit GRAPHICS.

Warna pixel pada Borland Delphi dijabarkan dalam 4 byte hexadesimal, dengan 3 byte terendahnya adalah nilai intensitas RGB, dengan

(39)

berarti intensitas biru murni, $0000FF00 adalah hijau murni dan $000000FF

adalah merah murni. $00000000 adalah hitam dan $00FFFFFF adalah putih.

Dalam mengimplementasikan steganography dengan metode least significant bit menggunakan bahasa pemograman Borland Delphi ini ada beberapa perintah yang digunakan yaitu :

a. Untuk mengambil nilai intensitas RGB suatu pixel dapat menggunakan

perintah GetRValue, GetGValue, GetBValue. Contoh GetRValue

($000000FF) berarti mengambil intensitas merah, sedang untuk menggabungkan ketiga nilai intensitas RGB tersebut dapat menggunakan

perintah RGB(R,G,B) contoh RGB($FF,$FF,$FF). b. Timage dan Tpicture

Timage digunakan untuk menampilkan sebuah citra, memiliki komponen Tpicture yang digunakan untuk menyimpan data citra. Bagian yang penting dari dari Tpicture adalah Height berisi nilai tinggi citra dan Width berisi nilai

lebar citra serta bitmap berisi data format dan pixel citra.

ImageFile.Picture.Bitmap→ menampilkan citra dengan format .bmp

ImageFile.Height→ informasi tinggi suatu citra.

ImageFile.Width→ informasi lebar suatu citra. c. TopenPictureDialog

Untuk menampilkan kotak dialog buka file citra.

ImageFile.Picture.LoadFromFile(OpenPictureDialog.FileName)

d. TsavePictureDialog

(40)

ImageFile.Picture.SaveToFile(SavePictureDialog.FileName)

e. GetPixel(ImageFile.canvas.handle,x,y)

Digunakan untuk mengambil nilai RGB dari sebuah kanvas pada posisi koordinat tertentu. Fungsi ini memiliki 3 parameter yaitu Handle dari canvas, koordinat x (kolom) dan koordinat y (baris).

f. Trunc

Berfungsi untuk mengubah nilai tipe real menjadi integer, dengan memotong

sisanya. g. Inc

Berfungsi untuk menaikkan nilai variabel yang digunakan sebagai parameter.

Penaikan sebesar satu atau tergantung dari nilai parameter yang telah ditentukan.

h. Str

Berfungsi untuk mengubah nilai numerik menjadi string i. IntToStr

Berfungsi untuk mengubah sebuah angka (integer) menjadi sebuah string. j. Chr

Berfungsi untuk menghasilkan karakter dengan angka ordinal khusus. k. Ord

Berfungsi untuk menghasilkan sebuah angka yang menunjukkan elemen atau

(41)

Bab III

ANALISIS DAN PERANCANGAN SISTEM

3.1 ANALISIS SISTEM

Steganography merupakan salah satu teknik untuk mengamankan data dengan cara menyembunyikan data rahasia tersebut di balik suatu image dalam konteks tersebut citra digital. Sistem tersebut terlebih dahulu memilih file gambar

sebagai media penutup atau penyembunyi data rahasia. Lalu Pengguna akan diminta memasukkan “pesan” di dalam box “memo tulis_pesan” pada form TulisPesan. Pada sistem tersebut Pengguna diberikan informasi berapa jumlah

maksimal karakter pesan yang dapat disisipkan, jumlah karakter pesan yang tersisa dan yang terakhir informasi mengenai jumlah karakter pesan yang telah

terpakai. Setelah pesan ditulis, Pengguna dapat melihat informasi yang tersembunyi di balik citra tersebut pada form BacaPesan.

3.2 PERANGKAT PENDUKUNG STEGANOGRAPHY

Perangkat pendukung aplikasi steganography ada dua, yakni perangkat lunak dan perangkat keras. Berikut ini spesifikasi dari tiap perangkat pendukung :

1 Perangkat lunak

- Perangkat lunak yang digunakan dalam aplikasi ini adalah Borland

(42)

2 Perangkat keras

3.3 RANCANGAN PROSES

Dalam rancangan proses tersebut akan dijabarkan mengenai langkah-langkah proses penyisipan pesan dan pengambilan data yang telah disembunyikan

.

3.3.1 Diagram konteks.

Diagram konteks dari sistem steganography ini dapat dilihat pada gambar 3.1 di bawah ini.

Gambar 3.1 Diagram Konteks

Dalam rancangan proses steganography, pertama pengguna memilih file citra sebagai media penampung pesan selanjutnya menuliskan pesan yang akan

disisipkan. User

Citra Penampung

0

Steganography Citra User Stegano

(43)

3.3.2 DFD (Diagram Data Flow) level 1 untuk proses penyisipan pesan.

Untuk DFD level 1 proses penyisipan pesan, dapat dilihat pada gambar 3.2 berikut ini.

Gambar 3.2 DFD Level 1 Proses Penyisipan Pesan

Setelah user memilih file citra sebagai media penampung, program akan mengambil nilai RGB dari citra tersebut dan mengkonversikan nilai RGB tersebut

ke dalam bentuk biner. Begitu juga terhadap plainteks, program pertama kali akan mengambil kode ASCII dari tiap karakter pesan selanjutnya kode ASCII tersebut dikonversi ke dalam bentuk biner. Setelah mengetahui nilai biner dari file citra

(44)

mengganti nilai-nilai pada bit ke 8, 16 dan 24 representasi biner citra dengan representasi biner pesan.

3.3.3 DFD (Diagram Data Flow) level 2 untuk proses pengambilan pesan.

Untuk DFD level 2 proses pengambilan pesan dari gambar dapat dilihat pada gambar 3.3 berikut ini.

Gambar 3.3 DFD Level 2 Proses Pengambilan Pesan

Untuk proses pengambilan pesan, pertama program mengambil nilai biner dari file citra stegano yang telah dipilih user. Selanjutnya nilai biner

tersebut akan dikonversi menjadi bentuk desimal sehingga menghasilkan kode ASCII dari kode ASCII tersebut akan menghasilkan karakter-karakter pesan.

(45)

3.4 RANCANGAN PROGRAM

Pada rancangan program ini akan dibahas mengenai rancangan

program Tulis Pesan, Baca Pesan, rancangan menu pull down program serta rancangan user interface program.

3.4.1 Rancangan Umum Sistem

Start

Gambar 3.4 Rancangan Umum Sistem

3.4.2 Perancangan Tulis Pesan

Pada modul TulisPesan terdapat empat prosedur utama yaitu cek flag,

(46)

Start

Citra Berisi Flag

? Berisi Pesan

N

Sisip Flag

Sisip Pesan

Gambar 3.5 Flowchart Tulis Pesan Sisip Lokasi

End

3.4.3 Cek Flag

Flag digunakan untuk menandai bahwa suatu citra telah disisipi pesan. Sebagai tanda flag dapat menggunakan beberapa rangkaian karakter. Dalam

skripsi ini Penulis memilih tiga buah karakter @#$ sebagai flag. Prosedur cek flag

digunakan untuk memeriksa apakah terdapat flag pada suatu file image. Jadi algoritmanya seperti berikut :

1. Mengambil nilai-nilai R, G dan B file citra pada koordinat (0,0) sampai (7,0).

(47)

3. Lalu mengambil representasi biner citra pada koordinat (0,0) sampai (7,0) hanya pada bit ke 8, 16 dan 24 dan disimpan dalam variabel CekBiner.

4. Mengambil nilai-nilai pada bit 1 sepanjang 8 bit pada variabel CekBiner apakah sesuai dengan representasi biner karakter flag @.

5. Mengambil nilai-nilai pada bit 9 sepanjang 8 bit pada variabel CekBiner

apakah sesuai dengan representasi biner karakter flag #.

6. Mengambil nilai-nilai pada bit 17 sepanjang 8 bit pada variabel CekBiner

apakah sesuai dengan representasi biner karakter flag $. 3.4.4 Sisip Flag

Dalam program tersebut representasi biner flag disisipkan ke representasi

biner file citra pada koordinat (0,0) sampai (7,0). Berikut representasi dari biner flag.

1. Kode ASCII dari @ adalah : 64, jadi binernya = 01000000. 2. Kode ASCII dari # adalah : 35, jadi binernya = 00100011. 3. Kode ASCII dari $ adalah : 36, jadi binernya = 00100100

Jadi mula-mula, representasi biner dari flag digabung menjadi 001001000010001101000000. Misalnya data raster dari suatu file citra pada koordinat (0,0) sampai (7,0) adalah sebagai berikut :

Pixel (0,0) R = 145 G = 22 B = 128. Pixel (1,0) R = 150 G = 22 B = 129.

(48)

Pixel (5,0) R = 214 G = 16 B = 150. Pixel (6,0) R = 145 G = 22 B = 130.

Pixel (7,0) R = 215 G = 19 B = 128.

Lalu mengubah nilai-nilai RGB di atas ke dalam bentuk biner.

Pixel (0,0) R = 10010001 G = 00010110 B = 10000000.

(49)

Gambar 3.6(a) dan 3.6(b) berikut ini memperlihatkan flowchart dari penyisipan

flag. Start

Flag := ‘@#$’

Flag dibinerkan

n :=1

Untuk i : 0 to 7 Langkah I

Mengambil Nilai RGB suatu image pada koordinat (i,0)

A B

N

Y

END

(50)

Membinerkan Nilai RGB

Delete(BinerMerah,8,1) Delete(BinerHijau,8,1) Delete(BinerBiru,8,1)

BinerBiru :=BinerBiru + BinerFlag[n] BinerHijau :=BinerHijau + BinerFlag[n+1] BinerMerah :=BinerMerah + BinerFlag[n+2]

n := n + 3

Mendesimalkan nilai BinerBiru, BinerHijau dan BinerMerah dan disimpan dalam variabel BiruBaru, HijauBaru dan MerahBaru

Set pixel RGB yang baru

i selanjutnya

END A

B

(51)

3.4.5 Sisip Pesan

Penyisipan pesan dimulai dari koordinat (0,1) sampai seluruh bit pesan

disisipkan. Gambar 3.7(a), 3.7(b) dan 3.7(c) memperlihatkan algoritma bagaimana pesan disisipkan.

Start

Pesan :=MemoTulisPesan.Lines.Text

BinerPesan : = ‘’

PanjangText : =

Length(MemoTulisPesan.Lines.text)

Pesan dibinerkan

n : = 1

Untuk j : = 1 to Panjang Image - 1

A

End

C

No

Y

(52)

A

Untuk i : = 0 to Lebar Image -1 Langkah I

Mengambil nilai RGB pixel suatu image

Nilai RGB suatu image di binerkan

Delete (BinerMerah,8,1) Delete(BinerHijau,8,1) Delete(BinerMerah,8,1)

BinerBiru :=BinerBiru + BinerPesan [n] BinerHijau :=BinerHijau + BinerPesan [n+1] BinerMerah :=BinerMerah + BinerPesan [n+2]

n : =n + 3

Mendesimalkan nilai BinerBiru, binerHijau dan binerMerah

Set pixel RGB baru

i selanjutnya

N D

Y

(53)

j selanjutnya

END

C D

Gambar 3.7(c) Flowchart Sisip Pesan

3.4.6 Sisip Lokasi

Proses Sisip lokasi adalah proses memasukkan informasi tempat baris dan kolom terakhir dimana pesan rahasia disisipkan di dalam file gambar.

Informasi lokasi ini berguna agar dalam proses pemisahan pesan rahasia dari file gambar, program bisa tepat dalam mengambil bit-bit biner pesan yang telah habis

diambil oleh program. Sisip Lokasi memiliki dua prosedur yaitu InfoBaris dan

InfoKolom.

3.4.6.1 Prosedur InfoBaris

Pada file citra, InfoBaris diletakkan pada koordinat (8,0) sampai (15,0). Misalnya pesan berakhir pada baris ke 5. Angka 5 tersebut dikonversi menjadi biner 16 bit menghasilkan nilai 0000.0000.0000.0101. Lalu representasi

biner info baris tersebut akan disisipkan pada representasi biner citra pada koordinat (8,0) sampai (15,0) hanya pada biner merah (Red) dan hijau (Green). Di

(54)

Pixel (8,0) B = 10010001 G = 00010110 R = 10000000. Pixel (9,0) B = 10010110 G = 00010110 R = 10000001.

Pixel (10,0) B = 10011011 G = 00010101 R = 10000010. Pixel (11,0) B = 11011100 G = 00010011 R = 10000011. Pixel (12,0) B = 11010111 G = 00011110 R = 01111101.

Pixel (13,0) B = 11010110 G = 00010000 R = 10010110. Pixel (14,0) B = 10010001 G = 00010011 R = 10000010

(55)

Start

InfoBaris : = j

BinerBaris : = biner16(InfoBaris)

n : = 1

Untuk x : = 8 to 15

Langkah I End

N

Mengambil nilai RGB pixel pada posisi (x,0)

Nilai RGB Dibinerkan

Delete (BinerHijau, 8,1) Delete (BinerMerah ,8,1)

BinerHijau(BinerHijau + BinerBaris[n]) BinerMerah(BinerMerah + BinerBaris[n+1]

HijauBaru : = decimal(BinerHijau) MerahBaru : = decimal(BinerMerah)

A B

Y

(56)

n = n + 2

Set pixel MerahBaru, Hijaubaru dan Biru

x selanjutnya

END B

A

Gambar 3.8(b) Flowchart Info Baris 3.4.6.2 Prosedur InfoKolom

InfoKolom diletakkan pada koordinat (16,0) sampai (23,0). Pada dasarnya sama dengan InfoBaris. Gambar 3.9(a) dan 3.9(b) menunjukkan algoritma

InfoKolom.

Start

Info Kolom : = i

BinerKolom := biner16(kolom)

n : = 1

A

(57)

A

Untuk x : = 16 to 23 Langkah I

Mengambil nilai RGB pixel pada posisi (x,0)

Nilai RGB di binerkan

Delete (BinerHijau,8,1) Delete (BinerMerah,8,1)

BinerHijau : = BinerHijau + BinerKolom [n]; BinerMerah : = BinerMerah + BinerKolom [n+1]

Hijaubaru : = decimal (BinerHijau) Merahbaru : = decimal (BinerMerah)

n : = n +2

Set pixel MerahBaru, HijauBaru dan Biru

x selanjutnya

END Y

N

(58)

3.4.7 Rancangan Baca Pesan

Algoritma untuk membaca pesan dapat dilihat pada gambar 3.10 berikut

ini.

Start

Ambil Citra

Citra Tidak Berisi Pesan

Baca Info Lokasi

Baca Pesan

END

N

Y Cek Flag ?

Gambar 3.10 Flowchart Baca Pesan

Dalam memisahkan pesan dari file gambar, modul program BacaPesan menggunakan tiga proses utama yang dieksekusi secara berurutan yaitu: cek flag,

ambil lokasi dan ambil pesan. Untuk bagian cek flag, algoritma yang digunakan sama dengan algoritma cek flag yang ada pada modul TulisPesan. Flowchart untuk mengambil InfoBaris, InfoKolom dan pesan pada citra penampung dapat

(59)

3.4.7.1 Ambil InfoBaris

Start

BinerBaris : = ‘’

Untuk i : = 8 to 15 Langkah I

Mengambil nilai R dan G bit pada posisi (i,0)

BinerBaris : = BinerBaris + (biner(hijau))[8] + (biner(merah))[8]

i selanjutnya

Infobaris : = decimal (BinerBaris)

END Y

N

(60)

3.4.7.2 Ambil InfoKolom

Gambar 3.12 Flowchart Ambil Info Kolom Start

BinerKolom : = ‘’

Untuk i : = 16 to 23 Langkah I

Mengambil nilai R dan G bit pada posisi (i,0)

BinerKolom : =BinerKolom + (biner(hijau))[8] + (biner(merah))[8]

i selanjutnya

InfoKolom: = decimal (BinerKolom)

END Y

(61)

3.4.7.3 Ambil Pesan

Start

BinerPesan : = ‘’

BinerPesan : = ‘’

Untuk j : = 0 to ImageFile.Height – 1

Langkah 1

No

Untuk i : = 1 to ImageFile.Width – 1

Langkah 1

No

Mengambil nilai RGB pixel suatu Image pada koordinat (i,j)

Nilai RGB pixel dibinerkan

BinerPesan : = BinerPesan + copy(BinerBiru,8,1) + copy(BinerHijau,8,1) + copy(BinerMerah,8,1)

(62)

A

If (j : = InfoBaris) and

(i : = InfoKolom) Break Y

i selanjutnya

If (j : = InfoBaris) and (i : = InfoKolom)

Y Break

j selanjutnya

C B

n : = 1

Pesan : = ‘’

Untuk i : = 1 to (Round(length(BinerPesan)/8))

Langkah I

No

pesan : = pesan +

chr(decimal(copy(BinerPesan,n,8)

n : = n + 8

i selanjutnya

END

(63)

3.5 STRUKTUR FILE CITRA STEGANOGRAPHY

Menam pung Flag I nfo Baris I nfo Kolom

Gambar 3.14 Struktur file citra steganography

Biner Flag disisipkan pada pixel (0,0) sampai (7,0).

Info Lokasi adalah proses memasukkan informasi tempat baris dan kolom terakhir dimana pesan rahasia disisipkan di dalam file gambar. Info lokasi ini memiliki dua

procedure yaitu InfoBaris dan InfoKolom :

* Info Baris berada pada koordinat (8,0) sampai (15,0).

* Info Kolom berada pada koordinat (16,0) sampai (23,0).

(64)

3.6 RANCANGAN MENU PROGRAM

Gambar 3.15 Hirarki Menu PullDown

Pada program tersebut terdapat tiga menu utama yakni File, Proses dan Help. a) Menu File, dengan sub menu :

i. New.

Sub menu tersebut digunakan untuk memulai aplikasi steganography. ii. Open.

Bila dalam form TulisPesan, sub menu tersebut digunakan untuk membuka file gambar yang akan digunakan sebagai media penampung. Sedangkan dalam form BacaPesan, sub menu tersebut digunakan untuk membuka file gambar yang telah diisi dengan pesan rahasia.

iii. Save.

Sub menu tersebut digunakan untuk menyimpan file gambar yang telah

user isi dengan pesan rahasia.

(65)

iv. Exit.

Digunakan untuk keluar dari aplikasi.

b) Menu Proses, dengan sub menu: i. TulisPesan.

Sub Menu tersebut digunakan sebagai ‘gate’ ke form TulisPesan. ii. BacaPesan.

Sub menu tersebut digunakan sebagai ‘gate’ ke form BacaPesan. c) Menu Help, dengan sub menu:

i About.

Sub menu tersebut sebagai ‘gate’ ke form About yang berisi penjelasan singkat tentang program dan Penulis.

3.8 RANCANGAN USER INTERFACE PROGRAM

Pada program tersebut terdapat lima form user interface, yakni : form

Awal, form Menu, form TulisPesan, form BacaPesan dan form Help. 3.8.1 Rancangan tampilan form awal.

Steganography Pada Citra Digital Dengan Metode Least Significant Bit (LSB)

LOGO USD

MenuUtama

Keluar Y. Joko Nugroho. S.si

(66)

Pada rancangan Form Awal terdapat 2 tombol yakni tombol MenuUtama dan tombol keluar. Berikut ini fungsi dari masing-masing tombol.

i. Tombol MenuUtama.

Tombol tersebut digunakan sebagai ‘gate’ ke form MenuUtama. ii. Tombol Keluar.

Tombol tersebut digunakan sebagai ‘gate’ untuk keluar dari aplikasi. 3.8.2 Rancangan tampilan form menu utama.

Selamat Datang Di Menu Utama Steganography

Image

TulisPesan BacaPesan Keluar

Gambar 3.17 Rancangan Form Menu Utama

Pada rancangan Menu Utama di atas terdapat 3 tombol yakni tombol

TulisPesan, tombol BacaPesan dan tombol Keluar. Berikut ini fungsi dari masing-masing tombol.

i. Tombol TulisPesan.

Pada form Utama tersebut, tombol TulisPesan digunakan sebagai ‘gate’ ke form TulisPesan.

ii. Tombol BacaPesan.

(67)

Digunakan untuk keluar dari form Utama.

3.8.3 Rancangan tampilan form “Tulis Pesan”.

Pesan Rahasia Memo Tulis_Pesan

Sisip Pesan Cek Gambar Batal

Karakter Maks

Karakter Tersisa

Edit-text

Edit-text

File_Gambar

Gambar 3.18 Rancangan Form Tulis Pesan

Pada rancangan Form Tulis Pesan terdapat 3 tombol, yakni Sisip Pesan, Cek gambar dan Batal. Berikut ini fungsi dari masing-masing tombol

i. Tombol Sisip Pesan.

Tombol tersebut berguna sebagai tombol verifikasi jika user ingin menjadikan memo yang ditulisnya sebagai pesan stegano.

ii. Tombol Cek Gambar.

Tombol tersebut berfungsi untuk memeriksa apakah citra penampung sudah terdapat pesan rahasia di dalamnya.

iii. Tombol Batal.

(68)

Selain memiliki 3 tombol, pada rancangan form Tulis Pesan juga terdapat 2 label yakni karakter maksimal dan karakter tersisa. Berikut ini fungsi dari

masing-masing label.

i. Label Karakter maksimal_Edit KarMaks.

Memberikan informasi kepada pengguna berapa banyak karakter maksimal

suatu pesan yang dapat diisikan. ii. Label Karakter tersisa_Edit KarSisa.

Memberikan informasi kepada pengguna berapa banyak lagi karakter pesan yang masih tersisa.

3.8.4 Rancangan tampilan form “Baca pesan”.

Karakter Maksimal :

Karakter Terpakai :

Karakter Tersisa : MemoBacaPesan

CekGambar BacaPesan

Citra Penampung

Gambar 3.19 Rancangan Form Baca Pesan

(69)

i. Tombol CekGambar.

Tombol tersebut berfungsi untuk memeriksa apakah citra penampung atau

citra yang telah di load sudah berisi pesan atau belum. ii. Tombol BacaPesan.

Tombol tersebut berfungsi untuk membaca pesan yang telah disembunyikan

pada citra penampung .

Selain memiliki 2 tombol, rancangan form Baca Pesan juga memiliki 3 label

yakni karakter maksimal, karakter terpakai dan karakter tersisa. Berikut ini fungsi dari masing-masing label.

i. Label Karakter Maksimal_Edit KarMaks.

Memberikan informasi kepada pengguna berapa banyak karakter maksimal yang dapat diisikan sebagai pesan.

ii. Label Karakter Terpakai_Edit KarPakai.

Memberikan informasi kepada pengguna berapa banyak karakter yang telah dipakai sebagai pesan.

iii. Label Karakter Tersisa_Edit KarSisa.

Memberikan informasi kepada pengguna berapa lagi karakter yang tidak digunakan sebagai karakter pesan atau dengan kata lain informasi karakter

(70)

3.8.5 Rancangan tampilan form “Analyze”

Gambar 3.20 Rancangan Form Analyze ImageSource ImageStegano

Open_Image1 Get RGB1 Open_Image2 Get RGB2

RGB_Source RGB_Stegano

Exit

Pada rancangan form Analyze terdapat 5 tombol yakni Open Image1, Open Image2, Ambil nilai RGB1, Ambil nilai RGB2 dan Exit. Berikut ini fungsi dari

masing-masing tombol. i. Tombol Open Image1

Tombol tersebut berfungsi untuk mengambil Image Source atau citra

penampung.

ii. Tombol Open Image2

(71)

iii. Tombol Ambil nilai RGB1

Tombol tersebut berfungsi untuk mengambil nilai biner RGB dari tiap pixel

citra penampung (Image Source). iv. Tombol Ambil nilai RGB2

Tombol tersebut berfungsi untuk mengambil nilai biner RGB dari tiap pixel

citra stegano. v. Exit

Tombol untuk keluar dari form ‘Analyze’ 3.8.6 Rancangan tampilan form “About”

Steganography

Steganography adalah salah satu cara mengamankan data dengan cara menyisipkan data tersebut di balik suatu citra digital

Created By:

(72)

BAB IV

IMPLEMENTASI DAN HASIL PROGRAM

4.1 Pembahasan Program

Secara keseluruhan, program steganography pada citra digital dengan

metode least significant bit ini terdiri dari dua proses utama yakni TulisPesan dan BacaPesan. Proses utama ini memiliki lagi sub-sub proses seperti cek fleck, sisip

fleck, sisip pesan, sisip lokasi, ambil info lokasi dan ambil pesan. Berikut ini rincian per modulnya.

4.1.1 Form Menu Awal

Antar muka Menu Awal ini merupakan antar muka yang pertama kali muncul pada aplikasi yang memberikan informasi mengenai judul skripsi, nama

dosen pembimbing, button “Menu Utama” yang akan link ke form Menu Utama dan yang terakhir button “Keluar” yang berguna jika user ingin keluar dari aplikasi.

4.1.2 Form Menu Utama

Pada antar muka Menu Utama ini terdapat tiga buah tombol yang menghubungkan ke proses selanjutnya yaitu tombol TulisPesan yang jika diklik

akan masuk ke antar muka Tulis Pesan, tombol BacaPesan yang jika diklik akan masuk ke antar muka Baca Pesan dan tombol Keluar yang jika diklik akan keluar

(73)

4.1.3 Form Tulis Pesan

Pada Form TulisPesan tersebut setelah menulis pesan rahasia

selanjutnya user tinggal menekan tombol TulisPesan yang kemudian proses penyembunyian pesan dimulai. Dalam modul program ini terdapat empat proses utama yaitu cek fleck, sisip fleck, sisip pesan dan sisip lokasi yang dilakukan

secara berurutan. Sebelum disisipi pesan, file gambar diperiksa dahulu oleh program apakah terdapat fleck di dalamnya, jika program menemukan fleck maka

di dalam file gambar tersebut juga terdapat pesan rahasia. Pendeteksian fleck ini terdapat pada proses cek fleck di dalam modul program TulisPesan berikut ini :

//cek fleck

MessageDlg('File gambar sudah berisi pesan, cari File yang lain!', mtError, [mbOK], 0);

End

Di sini nilai CekBiner adalah berupa angka biner dari tiga karakter @#$ yaitu : 01000000, 00100011 dan 00100100. Untuk mengetahui apakah file

tersebut ada karakter ‘@#$’ adalah dengan cara huruf pertama adalah dengan perintah chr(decimal(copy(CekBiner,1,8) yaitu copy atau ambil karakter string CekBiner mulai dari posisi 1 sebanyak 8 bit. Setelah di dapat 01000000 maka

(74)

selanjutnya akan diubah menjadi chr atau karakter @ dan seterusnya, baru digabung dengan fleck : = huruf1 + huruf2 + huruf3. Jika fleck = ‘@#$’ berarti file telah disisipi, jika belum berarti menuju ke script yang lain yaitu

disisipi karakter ‘@#$’. Untuk huruf kedua dan ketiga sama saja ambil karakter string CekBiner mulai dari posisi 9 sebanyak 8 bit, dan mulai dari posisi 17 sebanyak 8 bit. Penulis mengambil pada posisi 1, 9 dan 17 karena 1 karakter

terdiri dari 0-255 jadi maksimal 8 bit.

Proses sisip fleck ini berfungsi untuk memberi tanda pada file gambar bahwa file gambar ini sudah mengandung pesan. Penyisipan fleck ini terdapat

pada proses sisip fleck di dalam modul program TulisPesan berikut ini :

//sisip fleck fleck:='$#@'; BinerFleck:=''; n:=1;

for i:=1 to 3 do

BinerFleck:= BinerFleck +biner(ord(fleck[i])); z:=0;

(75)

Setelah proses sisip fleck selesai, kemudian program akan melanjutkan proses selanjutnya yaitu proses sisip pesan. Penyisipan pesan ini terdapat pada

proses sisip pesan di dalam modul program TulisPesan berikut ini :

//sisip pesan

pesan:=memoTulisPesan.Lines.Text; BinerPesan:='';

PanjangText:=length(memoTulisPesan.Lines.Text); for i:=1 to PanjangText do

begin

BinerPesan:=BinerPesan+biner(ord(pesan[i])); end;

n:=1;

for j:=1 to ImageFile.Height-1 do begin

for i:=0 to ImageFile.width-1 do begin if n>length(BinerPesan) then

break; end;

if n>length(BinerPesan) then break;

end;

Di sini nilai variabel BinerPesan adalah angka biner, nilai BinerBiru adalah BinerBiru + BinerPesan[n]. Di mana n adalah penambahan satu-satu. Untuk BinerBiru = n, untuk BinerHijau = n + 1 dan untuk BinerMerah = n + 2.

(76)

BinerPesan[n] yaitu BinerBiru digabung dengan satu karakter BinerPesan yang ke n. Pasti digabung satu bit. Bila tidak ada perintah delete berarti satu karakter

menjadi 9 bit, padahal 1 karakter maksimum 8 bit. Maka ada perintah delete(BinerBiru,8,1) yaitu menghapus representasi BinerBiru pada posisi 8 sebanyak 1 bit, jadi ilustrasinya :

BinerBiru : 10000010

BinerPesan[n] : 1

Karena perintah Delete, maka nilai BinerBiru menjadi 7 bit = 10000001 dan setelah digabung dengan BinerPesan[n] maka menjadi 10000011. Untuk selanjutnya konsepnya sama.

Kemudian setelah proses sisip pesan ini selesai, program akan melanjutkan proses terakhir dalam modul program TulisPesan yaitu proses sisip

lokasi. Proses sisip lokasi ini adalah proses memasukkan informasi tempat baris dan kolom terakhir dimana pesan rahasia disisipkan di dalam file gambar. Informasi lokasi ini berguna agar dalam proses pemisahan pesan rahasia dari file

gambar, program bisa tepat dalam mengambil bit-bit biner pesan yang telah habis diambil oleh program. Informasi baris dan kolom ini terdapat pada proses sisip baris dan sisip kolom di dalam modul program TulisPesan berikut ini:

(77)

delete(BinerHijau,8,1);

Dalam memisahkan pesan dari file gambar, modul program BacaPesan menggunakan tiga proses utama yang dieksekusi secara berurutan yaitu cek fleck,

ambil lokasi dan ambil pesan. Modul program BacaPesan diawali oleh proses cek fleck yaitu proses yang memeriksa keberadaan fleck pada file gambar. Jika program tidak menemukan fleck pada file gambar dalam proses cek fleck, maka

(78)

dalam file gambar, maka modul program BacaPesan ke proses selanjutnya yaitu proses ambil lokasi.

Proses ambil lokasi ini adalah proses pengambilan informasi tempat baris dan kolom terakhir dimana pesan rahasia disisipkan di dalam file gambar. Informasi lokasi ini berguna agar dalam proses pemisahan pesan rahasia dari file

gambar, program bisa tepat dalam mengambil bit-bit biner pesan, sehingga program bisa berhenti ketika bit-bit biner pesan telah habis diambil oleh program.

Informasi baris dan kolom terakhir ini berfungsi sebagai pembatas dalam looping pada proses ambil pesan, sehingga ketika sampai pada baris dan kolom terakhir proses ambil pesan program bisa berhenti. Informasi baris dan

kolom terdapat pada proses ambil info baris dan ambil info kolom di dalam modul program BacaPesan berikut ini :

//ambil info baris BinerBaris:='';

//ambil info kolom BinerKolom:='';

Setelah proses ambil lokasi selesai dan mendapatkan hasil berupa informasi baris dan kolom terakhir penyisipan pesan maka program akan

(79)

adalah proses inti pemisahan pesan rahasia dari file gambar sekaligus menampilkan pesan rahasia tersebut ke dalam form BacaPesan sehingga pesan

rahasia bisa dibaca oleh pengguna. Looping proses ini akan berhenti ketika sampai pada baris dan kolom terakhir penyisipan pesan yang informasinya didapat dari proses ambil lokasi, setelah looping berhenti kemudian program akan

menampilkan pesan rahasia ke dalam Form BacaPesan. Pengambilan pesan ini terdapat pada proses ambil pesan dari gambar di dalam modul program BacaPesan

berikut ini :

//ambil pesan dari gambar BinerPesan:='';

begin

for j:=1 to ImageFile.Height - 1 do begin

for i:=0 to ImageFile.Width-1 do begin

if (j=InfoBaris) and (i=InfoKolom) then break;

end;

if (j=InfoBaris) and (i=InfoKolom) then break;

end; n:=1; pesan:='';

for i:=1 to (round(length(BinerPesan)/8)) do begin

inc(z);

pesan:=pesan+chr(decimal(copy(BinerPesan,n,8))); n:=n+8;

(80)

4.1.5 Form Analyze

Form analyze merupakan sub menu pada Form BacaPesan. Tujuan

pembuatan form tersebut adalah untuk melihat perbandingan nilai biner suatu citra penampung dengan nilai biner citra steganography. Dengan cara mengambil nilai RGB citra penampung dan citra stegano lalu nilai-nilai RGB itu dibinerkan.

4.2 Hasil Implementasi

Secara keseluruhan, program steganography pada citra digital dengan

metode least significant bit terdiri dari beberapa form yaitu form awal, form menu utama, form TulisPesan, form BacaPesan dan form About. Berikut ini form-form yang ada dalam program tersebut.

4.2.1 Form Menu Awal

Tampilan antar muka form menu awal dapat dilihat pada gambar di bawah ini :

(81)

Jika tombol Keluar di klik maka pengguna akan diberi kotak pesan konfirmasi apa yakin ingin keluar dari aplikasi. Jika pengguna mengklik button

Yes maka pengguna keluar dari aplikasi sedangkan bila pengguna menekan button No maka pengguna akan kembali lagi ke interface menu awal.

Gambar 4.2 Gambar Kotak Konfirmasi

Namun, bila pengguna menekan button MenuUtama, maka program akan menampilkan interface MenuUtama, berikut ini user interfacenya:

4.2.2 Form MenuUtama

Pada form MenuUtama ini, program menawarkan tiga buah menu

yaitu TulisPesan yang jika di klik maka akan masuk ke form TulisPesan, BacaPesan yang jika di klik maka akan masuk ke form BacaPesan, dan yang terakhir menu Keluar dari aplikasi. Tampilan rancangan antar mukanya dapat

(82)

Gambar 4.3 Interface MenuUtama 4.2.3 Form TulisPesan

Form TulisPesan merupakan antar muka untuk proses penyembunyian

pesan. Dalam antar muka TulisPesan ini terdapat komponen Image yang dipakai untuk menempatkan file gambar sebagai file untuk disisipi pesan rahasia, komponen Memo yang dipakai untuk menempatkan penulisan pesan rahasia,

button Batal digunakan untuk membatalkan penulisan pesan pada Memo, button CekGambar yang jika di klik akan memberikan konfirmasi mengenai citra yang

(83)

Gambar 4.4 Form TulisPesan 4.2.4 Form BacaPesan

Form BacaPesan ini merupakan antar muka untuk proses pemisahan pesan rahasia dari file gambar dan antar muka untuk membaca pesan rahasia. Pada

antar muka BacaPesan ini terdapat komponen Image yang dipakai untuk menempatkan file gambar yang sudah disisipi pesan rahasia, komponen Memo yang dipakai untuk menempatkan pesan rahasia yang akan dibaca, button

BacaPesan yang jika diklik akan memulai proses pemisahan pesan rahasia dari file gambar. Tampilan antar muka form bacaPesan dapat dilihat pada gambar (4.5)

(84)

Gambar 4.5 Interface BacaPesan

Pada intinya komponen-komponen yang membangun form BacaPesan

sama dengan komponen-komponen yang membangun form TulisPesan.

4.2.5 Form Analyze

(85)

Button Open_Image digunakan untuk mengambil file image, sedangkan button Get_RGB digunakan untuk mengambil nilai biner suatu Image.

4.2.6 Form About

Form About digunakan untuk menjelaskan mengenai aplikasi steganography. Form About merupakan bagian dari menu Help. Selain informasi

di atas, pada form Help juga disertakan informasi mengenai penulis. Tampilan antar muka form About dapat dilihat pada gambar (4.7) berikut ini :

(86)

4.3 Pembahasan Hasil

Inti dari program steganography adalah ketika pengguna menekan

button TulisPesan atau button BacaPesan dari form MenuUtama maupun dari menu pulldown. Berikut tahap-tahap untuk meyisipkan pesan di balik citra digital : File → New → Open “untuk memilih citra penampung” → Ketikkan Pesan yang diinginkan pada Memo TulisPesan → Klik button TulisPesan → Save ‘menyimpan citra dengan nama yang baru .bmp → finish.

Pada program tersebut, karakter maksimum sudah di set sesuai dengan ukuran citra penampung dan akan berkurang setiap kali pengguna memasukkan karakter pesan. Rumusan untuk karakter maksimum dan karakter Tersisa di

peroleh dengan cara :

TextMaks:=(lebar*(tinggi-1)*3) div 8; MemoBacaPesan.MaxLength := TextMaks; EditMaks.Text:=IntToStr(TextMaks);

(87)

Langkah 1...Klik Open, untuk memilih gambar .bmp

(88)

Langkah 3...Ketikkan pesan di kolom Memo Pesan Rahasia, jika sudah maka klik button Sisip Pesan

(89)

Langkah 5...Proses BacaPesan

Setelah menyimpan file citra yang baru tadi dengan nama

coba_steg.bmp selanjutnya pengguna dapat ke Proses BacaPesan melalui menu

Proses →BacaPesan.

Program akan menampilkan kotak konfirmasi :

Jika pengguna yakin ingin berpindah ke form BacaPesan, maka tekan

button Yes, dan button No jika tidak. Langkah 6....

(90)

Setelah file citra dipilih, pengguna dapat menekan button CekGambar untuk memeriksa apakah citra tersebut mengandung pesan dan program akan

menampilkan konfirmasi apakah citra tersebut mengandung pesan atau tidak. Berikut antar mukanya:

Langkah 7

Bila Pengguna menekan button BacaPesan, maka program akan menampilkan pesan yang telah disisipkan tadi pada kolom memo PesanRahasia.

(91)

Dari antar muka tersebut didapatkan informasi bahwa : 1. Pesan berupa text yang disisipkan adalah “steganography”

2. Karakter maksimal sebanyak 10314. 3. Karakter terpakai sebanyak 13 4. Karakter tersisa sebanyak 10301

(92)

4.4 Pembahasan Proses

Pada metode penyisipan least significant bit, satu karakter teks pesan

yang telah dibinerkan disisipkan pada bit ke 8, ke 16 dan bit ke 24 pada satu pixel citra penampung.

Pengujian.

Misalkan plaintext adalah ‘STEGANO’.

a. Image_source atau citra penampung adalah bunga1.bmp dengan ukuran 144 x

192, true color.

b. Berarti panjang maksimum pesan yang dapat ditampung adalah : (lebar x (tinggi – 1)*3) : 8, sehingga (144 x (191)*3) : 8 = 10.314 karakter.

c. Kode ASCII dari ‘STEGANO’ adalah : 83, 84, 69, 71, 65, 78, 79.

d. Representasi biner dari ‘STEGANO’ adalah : 10100011, 01010100,

01000101, 01000111, 01000001, 01001110, 01001111.

e. Jadi Representasi biner pesan adalah :

10100011010101000100010101000111010000010100111001001111.

Gambar

Gambar 2.1 Citra monocrom
Gambar 2.2 Representasi citra biner dalam data digital (Achmad, 2005)
Gambar 2.5 Komposisi warna pixel format citra 24 bit
Gambar 2.6 Citra True Color
+7

Referensi

Dokumen terkait

Skarifikasi benih pada bagian pangkal menyebabkan benih lebih cepat berkecambah dibanding skarifikasi pada bagian lainnya, diduga karena skarifikasi dilakukan dekat

e) Tindak tutur deklaratif dengan fungsi memutuskan, mengizinkan, dan melarang. Aspek-aspek situasi ujar dapat mempengaruhi suatu tuturan digunakan dengan tujuan untuk

Namun dalam DCD sistem masih digambarkan berupa satu kesatuan yaitu desain Sistem Informasi Manajemen Tata Kelola Aset Informasi Hotel Mahkota Lamongan yang digambarkan pada gambar

bilangan sampai tiga angka 1.1 Menentukan letak bilangan pada garis bilangan 1.2 Melakukan penjumlahan dan pengurangan tiga angka 1.3 Melakukan perkalian yang hasilnya

Analisis penelitian kualitatif didapatkan lansia sangat senang jika diberikan uang oleh anak sebagai pegangan, dan anak menawarkan bantuan uang saat butuh

Menurut Moehji (2003), telah banyak penelitian yang membuktikan adanya hubu ngan antara terpenuhinya kebutuhan gizi terutama kebutuhan energi, baik terhadap

Berdasarkan uraian diatas maka permasalahan dalam penelitian ini adalah “Bagaimana pengaruh arus dan waktu pada proses pelapisan hard chrome terhadap ketebalan

Sistem berhasil mengalokasikan penjadwalan ujian untuk mata kuliah dengan peserta melebihi kapasitas satu ruang ujian dengan menambahkan ruangan lain yang memenuhi syarat