BAB III ANALISIS DAN PERANCANGAN 3. Analisis Sistem 3.1.
Analisis Sistem Analisis sistem ini merupakan penguraian dari suatu sistem pengembangan
aplikasi steganografi, dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan dan kebutuhan-kebutuhan yang diharapkan. Tahap analisis ini merupakan tahap uuntuk menganalisis data dengan mengklasifikasi data yang telah di dapat dari tahap sebelumnya. 3.1.1
Analisis Permasalahan
Dalam sistem yang akan dibuat, masalah yang akan dikaji adalah sebagai berikut : “Cara untuk menyisipkan dan mengekstrak pesan dari dalam media gambar sesuai dengan pesan yang disisipkan”. 3.1.2
Sistem Yang Akan Dibuat
Dalam sistem yang akan dibangun, aplikasi steganografi yang dibuat akan mampu untuk menyisipkan pesan berupa teks dan mengekstraknya kembali sesuai dengan pesan teks yang disisipkan kedalam file gambar. 3.2.
Analisis Kebutuhan Merupakan tahap persiapan, dimana pada tahap ini dilakukan studi
literatur dan perbandingan dengan tujuan untuk mengidentifikasi hal-hal yang berkaitan dengan sistem yang akan dikembangkan.
39
40
3.2.1
Spesifikasi Rancangan IPOSC
Rancangan IPOSC (Input Process Output Storage Control) merupakan suatu rancangan yang dikemukakan oleh Sandra Donaldson Dewitz dengan tahapan-tahapan sebagai berikut : 3.2.2 Perancangan Input Masukan merupakan awal dimulainya suatu proses informasi. Bahan mentah dari informasi adalah pesan yang akan dikirimkan user kepada user lain. Dalam aplikasi ini yang didefinisikan sebagai input dibagi menjadi dua kategori : 1.
Input pada Proses Embedding Pesan : a. File Gambar b. File Teks yang berisi informasi
2.
Input pada Proses Extracting Pesan adalah File Stegotext
3.2.3 Perancangan Process Rancangan
ini
menyangkut
proses-proses
yang
pengembangan aplikasi steganografi, yaitu : 1.
Embedding Pesan Di dalamnya terdapat dua buah proses turunan, yaitu : a. Cek Data b. Embedding Teks
terlibat
dalam
41
2.
Ekstraksi Pesan Di dalamnya terdapat dua buah proses turunan, yaitu : a. Cek Stegotext b. Extract Teks
Berikut merupakan flow chart dari rancangan proses Embedding Pesan :
Start
Y Covertext BMP
Covertext JPG
Cek fleck
Convert ke BMP N
Terdapat fleck
N
N Text Pesan
Sisipkan Pesan
Y
Sisip pesan
Simpan Stegotext
Y Simpan stegotext
End
Gambar 3.1 Flow chart proses Embedding Pesan
42
Pada flow chart proses Embedding Pesan, proses dimulai dengan user membuka
covertext,
yaitu
file
gambar
yang
akan
digunakan
untuk
menyembunyikan pesan. Bila file gambar yang digunakan berupa file bitmap (*.bmp) maka akan dilakukan proses cek fleck, yaitu proses untuk mengetahui apakan pada file tersebut sudah terdapat pesan rahasia sebelumnya, bila terdapat fleck maka file gambar akan ditolak, dan proses dimulai dari awal kembali. Berbeda dengan file bitmap, bila user membuka file JPG (*.jpg, *.jpeg) maka file akan terlebih dahulu di convert ke file bitmap. Setelah user membuka file gambar, user dapat mengisi pesan, dan memutuskan apakah proses sisip pesan akan dijalankan atau tidak. Bila proses sisip pesan dijalankan maka akan ada dialog simpan gambar, bila disimpan gambar akan tersimpan sebagai stegotext, tetapi bila batalkan, maka seluruh proses harus dimulai dari awal kembali.
43
Berikut merupakan flow chart dari rancangan proses Ekstraksi Pesan :
Start
Stegotext
N Cek fleck
Terdapat fleck
Y
Ekstrak pesan
End
Gambar 3.2 Flow chart proses Ekstraksi Pesan
Pada flow chart proses Ekstraksi Pesan, proses dimulai dengan user membuka file gambar yang berisi pesan (stegotext). Proses selanjutnya setelah stegotext dibuka adalah cek fleck, bila tidak terdapat fleck maka file gambar akan ditolak. Proses selanjutnya adalah mengkstrak pesan. Setelah pesan di ekstrak maka proses berakhir, dan proses dapat diulang kembali untuk membuka pesan pada stegotext lain.
44
3.2.4 Perancangan Output Keluaran atau Output dari sebuah sistem merupakan hal yang penting bagi user dalam menentukan digunakan tidaknya sistem tersebut. Dalam menentukan format keluaran diperlukan kecermatan, ketelitian, dan kesabaran dengan harapan keluaran yang dihasilkan merupaka informasi-informasi yang akurat, releval dan mudah dimengerti oleh para pengguna. Output yang akan dihasilkan dari aplikasi steganografi dibagi menjadi dua kategori : 1.
Output pada Proses Embedding Pesan adalah Stegotext.
2.
Output pada Proses Extracting Pesan
adalah File Teks dan File
Gambar. 3.2.5 Sasaran Sistem Yang Dibutuhkan Sasaran dari sistem ini adalah pembuktian metode Least Significant Bit (LSB) dengan mengaplikasikannya kedalam aplikasi steganografi gambar. Sistem yang akan dikembangkan merupakan sebuah aplikasi steganografi gambar yang berfungsi untuk menyembunyikan informasi berupa teks (tulisan) ke dalam sebuah file gambar BMP atau JPG dan kemudian mengekstraknya kembali. Adapun sasaran yang dibutuhkan adalah sebagai berikut : 1. Dapat memberikan kemudahan kepada user untuk menggunakan aplikasi steganografi gambar.
45
2. Dapat meningkatkan keamanan data dengan cara menyisipkan informasi pada media gambar melalui aplikasi steganografi gambar. 3.2.6 Ruang Lingkup Sistem Ruang lingkup dari sistem yang akan dibuat ini mencakup : 1.
User dapat menggunakan aplikasi ini untuk menyisipkan informasi berupa teks ke dalam file gambar.
2.
User dapat menggunakan aplikasi ini untuk mengekstrak informasi yang terkandung di dalam file gambar.
3.2.7 Evaluasi Kelayakan Tujuan dari evaluasi kelayakan yaitu melakukan pengkajian untuk menilai apakah sistem yang dikembangkan akan layak untuk digunakan atau tidak. Evaluasi kelayakan yang akan dilakukan meliputi teknik dan kelayakan operasi sebagai berikut : 1.
Kelayakan teknik, yaitu sistem yang akan dibangun harus memiliki kemudahan untuk dioperasikan.
2.
Kelayakan operasi yaitu sistem yang akan dibangun harus memiliki kemampuan untuk menghasilkan performa yang baik dan lebih efisien serta tersedianya personil yang mampu untuk mengopersikan sistem tersebut.
46
3.2.8 Ruang Lingkup Dokumen Entitas-entitas yang berhubungan dengan aplikasi ini meliputi data input dan output : 1.
Data input (masukan) mencakup informasi yang ada di dalam file teks yang akan disisipkan kedalam file gambar.
2.
Data output (keluaran) mencakup informasi berupa file teks yang diekstrak dari dalam file gambar.
3.3.
Analisis Data Analisis suatu data merupakan uraian mengenai data-data yang masuk
ataupun keluar. Adapun analisis data dapat diuraikan dari analisis kebutuhan, yaitu analisis kebutuhan input dan analisis kebutuhan output. 3.3.1 Analisis Kebutuhan Input Analisis kebutuhan ini dilakukan untuk menentukan input apa saja yang dibutuhkan oleh sistem yang akan dibangun. Adapun input yang dibutuhkan oleh sistem adalah sebagai berikut : 1.
Informasi dalam bentuk file teks
2.
File gambar untuk media disisipkannya file teks.
47
3.3.2 Analisis Kebutuhan Output Adapun output yang dibutuhkan adalah Informasi yang diekstrak dari file gambar berupa file teks. 3.4.
Analisis Kebutuhan Fungsional Tujuan dibuatnya aplikasi ini adalah untuk memenuhi permasalahan yang
dirumuskan sebelumnya dalam rumusan masalah. Adapun analisis kebutuhan fungsional dari Aplikasi Steganografi ini adalah:
3.5.
1.
Aplikasi mampu menyisipkan pesan ke dalam gambar.
2.
Aplikasi mampu mengekstrak pesan dari dalam gambar.
Analisis Kebutuhan Non Fungsional Analisis merupakan penguraian dari suatu masalah atau objek yang
akhirnya menghasilkan suatu kesimpulan. Hal ini dimaksudkan untuk mengidentifikasi dan mengavaluasi masalah atau objek. Analisis terhadap pembuatan aplikasi steganogafi ini yaitu untuk memproteksi user dalam berkomunikasi melalui media online. Maka analisis perancangan/pembuatan aplikasi steganografi adalah sebagai berikut : a.
User Aplikasi steganografi yang dibuat akan digunakan oleh user yaitu pengguna media online. Dibuatnya aplikasi ini adalah untuk memproteksi komunikasi media online. Diharapkan setelah adanya aplikasi ini, user dapat terlindungi proses komunikasi melalui media online-nya.
48
User
yang
menggunakan
aplikasi
steganografi
ini
memiliki
karakteristik setidaknya dapat mengoperasikan aplikasi ini, baik proses penyisipan informasi maupun ekstrak data. b.
Hardware Hardware (perangkat keras) adalah seluruh komponen fisik yang berada di komputer yang digunakan untuk menunjang pembangunan sistem informasi. Hardware yang digunakan dalam menerapkan sistem informasi ini secara optimal memerlukan spesifikasi minimum sebagai berikut : 1. Processor Intel Pentium IV dengan clock minimal 2.0 Ghz 2. RAM sebesar 512 MB 3. Harddisk berkapasitas 80 GB 4. Monitor dengan resolusi layar 1024 x 768
c.
Software Software adalah komponen logical dalam pengolahan data yang berupa perangkat lunak. Perangkat lunak yang digunakan dalam membangun sistem ini adalah sebagai berikut : 1. Sistem Operasi Windows 7 2. Borland Delphi 2010
49
3.6.
Kebutuhan Sistem Tujuan dari desain sistem secara umum adalah untuk memberikan
gambaran secara umum kepada user tentang sistem yang akan dibangun. Arus data sistem yang diusulkan akan tersajikan dalam bentuk Data Flow Diagram (DFD). DFD merupakan teknik grafis untuk menggambarkan suatu sistem baik yang sudah ada atau sistem yang akan dikembangkan. Untuk memudahkan dalam memahami pembacaannya, maka DFD dibuat secara bertingkat dari level konteks sampai dengan level-level yang dibutuhkan. 3.5.1 Diagram Konteks (CD) Diagram Konteks yaitu diagram yang menggambarkan sistem secara umum serta memberikan gambaran mengenai hubungan antara lingkungan di dalam sistem (Internal Entity) dengan lingkungan di luar sistem (External Entity), seperti di bawah ini : a.
Internal Entity yaitu Admin, karena user utama merupakan pihak yang berinteraksi langsung dalam melakukan pembaharuan aplikasi, mengenai semua hal yang berkaitan dengan aplikasi steganografi.
b.
External Entity yaitu User, karena user hanya melakukan pengaksesan aplikasi berupa penyisipan informasi dan pengekstrakan informasi dari dalam file gambar.
50
Adapun diagram konteks dari aplikasi steganografi ini adalah sebagai berikut :
Covertext User Peng irim
1
File Teks Asli
Aplikasi Steganog rafi
File Gambar Hasil Ekstrak
+
File Teks hasil Ektraksi
User Penerima
Gambar 3.3 Konteks Diagram
Pada konteks diagram diatas, dapat dilihat bahwa proses steganografi ini berlangsung 2 arah. User pengirim menginputkan file gambar dan file teks sedangkan user penerima menerima file gambar dan file teks dalam satu buah file berupa stegotext.
51
3.5.2 DFD Level 1 DFD level 1 dari pengembangan aplikasi steganografi adalah sebagai berikut : 1
4
Cek Data
Ekstraksi teks
+
+
File Teks hasil Ektraksi
File Teks Asli Covertext
File Gambar Hasil Ekstrak
File Teks Asli Covertext Stegotext Tersimpan
User Peng irim
User Penerima 2 Embedding Teks
3 Stegotext Stegotext Tersimpan
+
Cek Stegotext
+
Stegotext
Gambar 3.4 DFD Level 1 Aplikasi Steganografi
Pada DFD Level 1 Aplikasi Steganografi ini terdapat 4 proses, yaitu Cek data, Embedding teks, Cek stegotext dan Ekstraksi teks. Pada proses cek data, file gambar di cek apakah terdapat fleck, dimana fleck adalah tanda bahwa file gambar telah disisipkan pesan rahasia sebelumnya. Bila di dalam file gambar tidak terdapat fleck maka proses Embedding teks dapat dilakukan. Kemudian proses cek stegotext ini sama dengan proses 1. Cek data, dimana gambar di cek apakah terdapat fleck. Bila pada gambar terdapat fleck maka terdapat pesan di dalamnya dan proses ekstraksi pesan dapat dilakukan.
52
3.5.3 DFD Level 2 DFD level 2 dari Proses 1.1 Cek Data adalah sebagai berikut :
Gambar 3.5 DFD Level 2 Proses Cek Data
Pada DFD Level 2 proses Cek Data ini terdapat 4 proses, yaitu proses Load covertext, Cek covertext, Load file teks, dan cek file teks. Proses load coverteks adalah proses dimana user membuka file gambar untuk dijadikan covertext. Proses cek covertext adalah proses mengecek apakah terdapat fleck di dalam file gambar yang di load. Proses load file teks adalah proses dimana user menuliskan pesan rahasia dan proses cek file teks adalah proses yang mengecek apakah file teks dapat disisipkan ke dalam file gambar.
53
DFD level 2 dari Proses 1.2 Embedding Teks adalah sebagai berikut :
Gambar 3.6 DFD Level 2 Proses Embedding Teks
Pada DFD Level 2 proses Embedding teks ini terdapat 5 proses, yaitu Baca struktur covertext, Konversi covertext ke biner, Baca struktur file teks, Konversi file teks ke biner, dan Spreading biner file teks. Pada proses baca struktur coverteks, gambar di cek dapat menampung seberapa banyak karakter pesan. Proses konversi covertext ke biner membaca atribut RGB dari covertext dan diterjemahkan ke biner. Pada proses baca struktur file teks, pesan dibaca seberapa banyak karakter yang akan disisipkan, lalu pesan dikonversi ke biner pada proses
54
konversi file teks ke biner. Selanjutnya setelah file teks di konversi ke biner, lalu di sebarkan ke biner-biner covertext. DFD level 2 dari Proses 2.1 Cek Stegotext adalah sebagai berikut :
Gambar 3.7 DFD Level 2 Proses Cek Stegotext DFD
Level 2 proses Cek stegotext memiliki 3 proses, yaitu Load stegotext,
Cek stegotext, dan Cek file teks dalam stegotext. Load stegotext dilakukan saat user membuka file gambar. Dilanjutkan dengan cek stegotext yaitu proses cek fleck, dimana bila terdapat fleck maka stegotext memiliki pesan rahasia.
55
DFD level 2 dari Proses 2.2 Ekstraksi Teks adalah sebagai berikut :
Gambar 3.8 DFD Level 2 Proses Ekstraksi Teks
DFD Level 2 Proses Ekstraksi Teks memiliki 5 proses, yaitu Baca struktur stegotext, Konversi stegotext ke biner, Baca biner, Konversi biner hasil despreading ke byte, dan Baca biner. User penerima yang menerima stegotext membaca pesan dengan melewati 5 proses ini, pertama stegotext dibaca strukturnya, berapa pixel yang berisi pesan, lalu stegotext di konversi ke biner,
56
lalu biner diterjemahkan ke pesan melalui 3 proses, Baca biner, Konversi biner hasil despreading ke byte, dan Baca biner. 3.7.
Perancangan Sistem
3.6.1 Struktur Menu Perancangan
struktur
menu
dibuat
dalam
bentuk
bagan
untuk
mengidentifikasi dan mengilustrasikan aplikasi ke dalam bentuk modul-modul serta menggambarkan hierarki kontrol di antara modul-modul tersebut. Struktur menu ini merupakan rancangan program menu utama yang terdiri dari beberapa menu yang digunakan dalam aplikasi ini. Untuk lebih jelasnya lihat gambar di bawah ini :
Apikasi Steganografi
Embedding Pesan
Extract Pesan
Exit
Buka BMP
Exit
Buka Gambar
Exit
Buka JPG
About
Baca Pesan
About
Ke Baca Pesan
Ke Tulis Pesan
Exit
Exit
Gambar 3.9 Struktur menu Aplikasi Steganografi
57
Aplikasi steganografi yang dibuat mempunyai struktur sebagai berikut, mempunyai 4 form, yaitu form utama, form tulis pesan, form baca pesan dan form about. Pada form utama terdapat tombol ke form tulis pesan, form baca pesan dan exit. Pada form tulis pesan terdapat tombol buka BMP, buka JPG, ke baca pesan dan Exit. Pada form baca pesan terdapat tombol buka gambar, baca pesan, ke tulis pesan dan exit. 3.6.2 Rancangan Antar Muka (Interface) Perancangan interface ini merupakan struktur gambaran aplikasi yang akan dibuat, adapun rancangan-rancangan aplikasi steganografi, yaitu : 1.
Tampilan Menu Utama Menu Utama
Aplikasi Steganografi
Embedding Pesan
Extract Pesan
Exit
Gambar 3.10 Rancangan interface Menu Utama
58
2.
Tampilan Menu Login Form Login
Password *****
Login
Keterangan: Max 3 kali coba password
Gambar 3.11 Rancangan interface Menu Login
Algoritma yang dijalankan oleh form ini pada saat user melakukan klik pada tombol login adalah sebagai berikut: begin if passwordEdit.Text='' then begin MessageDlg('Password belum diisi!',mtError, [mbOK], 0); exit; end; memo1.Lines.clear; EnDecryptFile('testing3.pasw', 'testing3.pasw', StrToInt('1234')); AssignFile(SomeTxtFile, 'testing3.pasw') ; Reset(SomeTxtFile) ; ReadLn(SomeTxtFile, buffer) ; Memo1.Lines.Add(buffer) ; CloseFile(SomeTxtFile) ; if passwordEdit.Text = buffer then begin MessageDlg('Password benar, silakan masuk.' ,mtInformation, [mbOK],0); EnDecryptFile('testing3.pasw', 'testing3.pasw', StrToInt('1234')); frmUtama.Show; with frmUtama do begin RubahPassword1.Visible:=True; btnBacaPesan1.Visible:=True; btnTulisPesan1.Visible:=True; btnLogout1.Visible:=True; btnLogin1.Visible:=False; btnKeluar1.Visible:=False; end; passwordEdit.Text:=''; frmLogin.Close end else begin MessageDlg('Password salah, coba lagi!',mtError,[mbOK],0); EnDecryptFile('testing3.pasw', 'testing3.pasw', StrToInt('1234'));
Listing Program 3.1 Verifikasi login Form Login
59
Listing program di atas, menjelaskas algoritma login. Pada saat tombol login di klik, program mengecek apakah password sesuai dengan password yang ada di dalam database, setelah sebelumnya database di decrypt terlebih dahulu. Bila sesuai maka program akan memberikan hak akses kepada user untuk masuk ke menu utama, selanjutnya setelah di cek, database akan di encrypt kembali untuk menjaga kerahasiaan password. 3.
Tampilan Menu Konfirmasi Exit Konfirmasi Exit
Anda yakin akan Keluar ? Ya
Tidak
Gambar 3.12 Rancangan interface menu Konfirmasi Exit
4.
Tampilan Menu Embedding Pesan
Embedding Pesan File
Edit
Process
Help
File Gambar :
Pesan Rahasia :
Tulis Pesan
Cek Gambar
Batal
Karakter Maksimal : Karakter Tersisa :
Gambar 3.13 Rancangan interface menu Embedding Pesan
60
Algoritma tulis pesan yang dieksekusi pada saat user mengklik tombol Tulis Pesan : //cek fleck for i:=0 to 7 do begin merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,i,0)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,0)); biru:=GetBValue(getpixel(ImageFile.Canvas.Handle,i,0)); CekBiner:=CekBiner+(biner(biru))[8]+(biner(hijau))[8]+ (biner(merah))[8]; end; huruf1:=chr(decimal(copy(CekBiner,1,8))); huruf2:=chr(decimal(copy(CekBiner,9,8))); huruf3:=chr(decimal(copy(CekBiner,17,8))); fleck:=huruf1+huruf2+huruf3; if fleck ='@#$' then begin MessageDlg('File gambar sudah berisi pesan, cari File yang lain!', mtError, [mbOK], 0); ImageFile.Picture.Bitmap:=nil; BtnTulisPesan.Enabled:=False; BtnBatal.Enabled:=False; BtnBukaBmp.Enabled:=True; BtnBukaJpg.Enabled:=True; MemoTulisPesan.Visible:=False; MemoTulisPesan.Lines.Clear; EditMaks.Clear; EditSisa.Clear; exit; end
Listing Program 3.2 Cek fleck Tombol Tulis Pesan
Pada listing program di atas, program mengecek apakah pada gambar terdapat fleck, berupa 3 karakter unik ‘@#$’. Bila terdapat fleck, maka gambar telah berisi pesan sebelumnya, dan gambar akan ditolak oleh program. //sisip fleck Screen.Cursor:=CrHourGlass; fleck:='@#$'; BinerFleck:=''; n:=1; for i:=1 to 3 do BinerFleck:=BinerFleck+biner(ord(fleck[i])); z:=0; for i:=0 to 7 do begin inc(z); merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,i,0)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,0)); biru:=GetBValue(getpixel(ImageFile.Canvas.Handle,i,0)); BinerMerah:=biner(merah); BinerHijau:=biner(hijau); BinerBiru:=biner(biru); delete(BinerMerah,8,1); delete(BinerHijau,8,1); delete(BinerBiru,8,1);
61
BinerBiru:=BinerBiru+BinerFleck[n]; BinerHijau:=BinerHijau+BinerFleck [n+1]; BinerMerah:=BinerMerah+BinerFleck [n+2]; n:=n+3; MerahBaru:=decimal(BinerMerah); HijauBaru:=decimal(BinerHijau); BiruBaru:=decimal(BinerBiru); setpixelV(hdc1,i,0,RGB(MerahBaru,HijauBaru, BiruBaru)); end;
Listing Program 3.3 Sisip fleck Tombol Tulis Pesan
Listing program di atas dilakukan bila listing sebelumnya berjalan dengan seharusnya, yaitu tidak terdapat fleck. Maka program akan menyisipkan 3 karakter unik ‘@#$’ ke gambar. Hal ini dilakukan untuk memberi suatu tanda (flag), bahwa gambar sudah terdapat pesan di dalamnya. Dengan demikian tidak akan terjadi pemberian pesan ganda ke dalam satu gambar yang telah berisi pesan sebelumnya. //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 inc(z); merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,i,j)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,j)); biru:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,j)); BinerMerah:=biner(merah); BinerHijau:=biner(hijau); BinerBiru:=biner(biru); delete(BinerMerah,8,1); delete(BinerHijau,8,1); delete(BinerBiru,8,1); BinerBiru:=BinerBiru+BinerPesan[n]; BinerHijau:=BinerHijau+BinerPesan[n+1]; BinerMerah:=BinerMerah+BinerPesan[n+2]; n:=n+3;
62
MerahBaru:=decimal(BinerMerah); HijauBaru:=decimal(BinerHijau); BiruBaru:=decimal(BinerBiru); setpixelV(hdc1,i,j,RGB(MerahBaru,HijauBaru,BiruBaru)); if n>length(BinerPesan) then break; end; if n>length(BinerPesan) then break; end;
Listing Program 3.4 Sisip pesan Tombol Tulis Pesan
Pada listing di atas, program mulai menyisipkan pesan ke dalam gambar, dengan cara menyisipkannya ke dalam pixel-pixel gambar. //sisip baris InfoBaris:=j; BinerBaris:=biner16(InfoBaris); n:=1; for x:=8 to 15 do begin inc(z); biru:=GetBValue(getpixel(ImageFile.Canvas.Handle,x,0)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,x,0)); merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,x,0)); BinerHijau:=biner(hijau); BinerMerah:=biner(merah); delete(BinerHijau,8,1); delete(BinerMerah,8,1); BinerHijau:=BinerHijau+BinerBaris[n]; BinerMerah:=BinerMerah+BinerBaris[n+1]; HijauBaru:=decimal(BinerHijau); MerahBaru:=decimal(BinerMerah); n:=n+2; setpixelV(ImageFile.Canvas.Handle,x,0,RGB(MerahBaru,HijauBaru, biru)); end;
Listing Program 3.5 Sisip baris Tombol Tulis Pesan
Pada listing program di atas, pesan disisipkan ke dalam baris pixel-pixel gambar. //sisip_kolom InfoKolom:= i; BinerKolom:=biner16(InfoKolom); n:=1; for x:=16 to 23 do begin inc(z); biru:=GetBValue(getpixel(ImageFile.Canvas.Handle,x,0)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,x,0)); merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,x,0)); BinerHijau:=biner(hijau); BinerMerah:=biner(merah); delete(BinerHijau,8,1); delete(BinerMerah,8,1);
63
BinerHijau:=BinerHijau+BinerKolom[n]; BinerMerah:=BinerMerah+BinerKolom[n+1]; HijauBaru:=decimal(BinerHijau); MerahBaru:=decimal(BinerMerah); n:=n+2; setpixelV(ImageFile.Canvas.Handle,x,0,RGB(MerahBaru,HijauBaru,biru)); end;
Listing Program 3.6 Sisip kolom Tombol Tulis Pesan
Pada listing program di atas, pesan disisipkan ke dalam kolom pixel-pixel gambar. 5.
Tampilan Menu Extract Pesan
Extract Pesan File
Edit
Process
Help
Pesan Rahasia :
File Gambar :
Cek Gambar
Baca Pesan
Karakter Maksimal : Karakter Terpakai : Karakter Tersisa :
Gambar 3.14 Rancangan interface menu Extract Pesan
64
Algoritma baca pesan yang dieksekusi pada saat user mengklik tombol Baca Pesan : //cek fleck for i:=0 to 7 do begin merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,i,0)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,0)); biru:=GetBValue(getpixel(ImageFile.Canvas.Handle,i,0)); CekBiner:=CekBiner+(biner(biru))[8]+(biner(hijau))[8]+ (biner(merah))[8]; end; huruf1:=chr(decimal(copy(CekBiner,1,8))); huruf2:=chr(decimal(copy(CekBiner,9,8))); huruf3:=chr(decimal(copy(CekBiner,17,8))); fleck:=huruf1+huruf2+huruf3; if fleck='@#$' then begin
Listing Program 3.7 Cek fleck Tombol Extract Pesan
Listing program di atas adalah algoritma pengecekan fleck. Bila terdapat fleck, maka pada stegotext terdapat pesan yang dapat diekstrak. //ambil info baris BinerBaris:=''; for i:=8 to 15 do begin merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,i,0)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,0)); BinerBaris:=BinerBaris+(biner(hijau))[8]+(biner(merah))[8]; end; InfoBaris:=decimal(BinerBaris);
Listing Program 3.8 Ambil info baris Tombol Extract Pesan
Pada listing program di atas dijelaskan tentang pengambilan biner-biner pesan di dalam baris pixel-pixel stegotext. //ambil info kolom BinerKolom:=''; for i:=16 to 23 do begin merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,i,0)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,0)); BinerKolom:=BinerKolom+(biner(hijau))[8]+(biner(merah))[8]; end; InfoKolom:=decimal(BinerKolom);
Listing Program 3.9 Ambil info baris Tombol Extract Pesan
Pada listing program di atas dijelaskan tentang pengambilan biner-biner pesan di dalam kolom pixel-pixel stegotext.
65
//ambil pesan dari gambar BinerPesan:=''; begin total:=(ImageFile.Width*(infobaris-1))+ InfoKolom +1; for j:=1 to ImageFile.Height - 1 do begin for i:=0 to ImageFile.Width-1 do begin inc(z); biru:=GetBValue(getpixel (ImageFile.Canvas.Handle,i,j)); hijau:=GetGValue(getpixel (ImageFile.Canvas.Handle,i,j)); merah:=GetRValue(getpixel (ImageFile.Canvas.Handle,i,j)); BinerBiru:=biner(biru); BinerHijau:=biner(hijau); BinerMerah:=biner(merah); BinerPesan:=BinerPesan+copy(BinerBiru,8,1)+ copy(binerhijau,8,1)+ copy(binermerah,8,1); 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; end; MemoBacaPesan.Visible:=True; MemoBacaPesan.Lines.Text:=pesan; Screen.Cursor:=crdefault; end; TextMaks:=(lebar*(tinggi-1)*3) div 8; MemoBacaPesan.MaxLength := TextMaks; EditMaks.Text:=Format('%.0n', [TextMaks + 0.0]); x:=length(MemoBacaPesan.Lines.Text); EditPakai.Text:=Format('%.0n', [x + 0.0]); sisa:=TextMaks-x; EditSisa.Text:=Format('%.0n', [sisa + 0.0]); end
Listing Program 3.10 Ambil pesan dari gambar Tombol Extract Pesan
Pada listing program di atas, program menerjemahkan biner-biner yang didapat dari baris dan kolom ke dalam karakter, dan pesan rahasia ditampilkan dalam text box.