39
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.
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 terlibat dalam pengembangan aplikasi steganografi, yaitu :
1. Embedding Pesan
Di dalamnya terdapat dua buah proses turunan, yaitu : a. Cek Data
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 Covertext BMP Covertext JPG Convert ke BMP Text Pesan Sisipkan Pesan Sisip pesan Y N Simpan Stegotext Simpan stegotext End Y N Cek fleck Terdapat fleck Y N
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,
Berikut merupakan flow chart dari rancangan proses Ekstraksi Pesan : Start End Stegotext Cek fleck Terdapat fleck Ekstrak pesan Y N
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.
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.
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.
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
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:
1. Aplikasi mampu menyisipkan pesan ke dalam gambar. 2. Aplikasi mampu mengekstrak pesan dari dalam gambar.
3.5. 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
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
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.
Adapun diagram konteks dari aplikasi steganografi ini adalah sebagai berikut :
File Teks hasil Ektraksi
File Gambar Hasil Ekstrak Covertext
File Teks Asli User Peng irim 1 Aplikasi Steganog rafi + 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.
3.5.2 DFD Level 1
DFD level 1 dari pengembangan aplikasi steganografi adalah sebagai berikut :
Stegotext Tersimpan
Stegotext Tersimpan Stegotext
Covertext File Teks Asli
File Teks hasil Ektraksi File Gambar Hasil Ekstrak Covertext
File Teks Asli
User Peng irim User Penerima 1 Cek Data + 2 Embedding Teks + 3 Cek Stegotext + 4 Ekstraksi teks + 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.
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.
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
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.
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,
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
Ke Baca Pesan Exit Exit About Buka Gambar Baca Pesan Exit About Exit Buka BMP Buka JPG Ke Tulis Pesan Exit
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
Embedding Pesan Extract Pesan Exit
Aplikasi Steganografi
2. Tampilan Menu Login
Form Login
*****
Password
Keterangan: Max 3 kali coba password
Login
Gambar 3.11 Rancangan interface Menu Login
Algoritma yang dijalankan oleh form ini pada saat user melakukan klik pada tombol login adalah sebagai berikut:
Listing Program 3.1 Verifikasi login Form Login
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',
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
Ya
Anda yakin akan Keluar ?
Tidak
Gambar 3.12 Rancangan interface menu Konfirmasi Exit
4. Tampilan Menu Embedding Pesan
Embedding Pesan Help Edit
File Process
Tulis Pesan Cek Gambar Batal
Karakter Maksimal : Karakter Tersisa :
Pesan Rahasia : File Gambar :
Algoritma tulis pesan yang dieksekusi pada saat user mengklik tombol Tulis Pesan :
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.
//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 //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);
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; 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.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.
Listing Program 3.5 Sisip baris Tombol Tulis Pesan
Pada listing program di atas, pesan disisipkan ke dalam baris 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; //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); 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.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 Help Edit File Process Baca Pesan Cek Gambar Karakter Maksimal : Karakter Terpakai :
Pesan Rahasia : File Gambar :
Karakter Tersisa :
Gambar 3.14 Rancangan interface menu Extract Pesan
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;
Algoritma baca pesan yang dieksekusi pada saat user mengklik tombol Baca Pesan :
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.
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.
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.
//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
//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);
//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.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.
//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