i
Universitas Kristen Maranatha
PROGRAM PENAMBAHAN FILE TERSEMBUNYI PADA
FILE GAMBAR
Hendy Tanumihardja / 0927041
Jurusan Sistem Komputer, Fakultas Teknik, Universitas Kristen Maranatha
Jalan Prof. drg. Suria Sumantri, MPH. No 65 Bandung 40164, Indonesia
ABSTRAK
Sejalan dengan perkembangan teknologi yang semakin pesat sehingga teknologi menjadi bagian hidup di masyarakat luas dan data digital telah banyak digunakan di berbagai bidang sehingga data digital mudah sekali berpindah – pindah tempat dari orang ke orang lain bahkan dalam hitungan detik data digital bisa tersebar sampai ke penjuru dunia dengan teknologi yang ada sekarang ini mudah diolah dan mudah disalah gunakan oleh orang yang tidak bertanggung jawab. Internet sebagai salah satu media informasi dan telekomunikasi yang banyak digunakan saat ini, menyebabkan distribusi data digital semakin mudah, sehingga membuat kepemilikan dari suatu data digital menjadi sesuatu yang penting di jaman informasi.
ii
Universitas Kristen Maranatha
APPLICATION FOR ADDING HIDDEN IMAGE FILE INTO
COVER IMAGE FILE
Hendy Tanumihardja / 0927041
Department of Computer Engineering, Faculty of Engineering, Maranatha Christian University
Prof. drg. Suria Sumantri, MPH. No 65 Bandung 40164, Indonesia
ABSTRACT
In line with the rapid development of technology so that technology becomes a part of life in the wider community and digital data have been widely used in various fields so that the digital data is easy to move - moving from person to person even within seconds of digital data can be spread to all corners of the world with current technology is easily processed and easily misused by people who are not responsible. Internet as a medium of information and telecommunications are widely used today, causing the distribution of digital data more easily, making the ownership of a digital data into something that is important in this information age.
v
Universitas Kristen Maranatha
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... ix
1.5. Sistematika Penulisan... 4
BAB II TEORI PENDAHULUAN ... 5
2.1. Pengertian Program Komputer ... 5
2.2. Teori Informasi... 6
2.3. Konsep Steganografi ... 8
2.4. Steganografi Pada Media Digital File Image ... 10
2.5. Aplikasi Steganografi ... 11
2.6. Tata Cara Penyimpanan ... 11
2.7. Macam-macam Format Gambar ... 14
2.7.1. Bitmap ... 15
2.7.2. JPEG ... 16
2.7.3. GIF ... 19
2.7.4. TIFF ... 20
2.7.5. PCX ... 20
2.8. Metodologi Pengembangan Sistem ... 21
2.8.1. Pengertian Metodologi ... 21
2.8.2. Klasifikasi Metodologi ... 22
2.8.3. Alat Pengembangan Sistem ... 26
2.9. Visual Basic ... 32
BAB III PERANCANGAN DAN PEMODELAN ... 40
3.1. Aliran Informasi Sistem ... 40
3.2. Flowchart ... 44
BAB IV HASIL DAN IMPLEMENTASI ... 48
4.1. Implementeasi Aplikasi ... 48
4.1.1. Menu ... 48
4.1.2. Implementasi ... 49
4.2. Pengujian Aplikasi ... 62
4.2.1. Uji Aplikasi Penggabungan File ... 62
4.2.2. Uji Aplikasi Pembongkaran FIle ... 68
4.3. Pengamatan hasil Pengujian Aplikasi ... 73
4.3.1. Pengamatan Hasil Penggabungan ... 73
vi
Universitas Kristen Maranatha
BAB V KESIMPULAN DAN SARAN ... 77
5.1. Kesimpulan ... 77
5.2. Saran ... 78
vii
Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2.1. Diagram Sistem Steganografi... 9
Gambar 2.2. Kesatuan/Entitas Luar Versi YOURDAN dan DE MARCO ... 30
Gambar 2.3. Arus data Versi YOURDAN dan DE MARCO ... 30
Gambar 2.4. Proses versi YOURDAN dan DE MARCO ... 31
Gambar 2.5. Simpanan YOURDAN dan DE MARCO ... 31
Gambar 2.6. Baris Menu ... 32
Gambar 2.7. Toolbar ... 32
Gambar 2.8. Form ... 33
Gambar 2.9. Windows Kode ... 34
Gambar 2.10. Toolbox ... 35
Gambar 2.11. Baris Menu ... 36
Gambar 2.12. Windows Propertis ... 37
Gambar 2.13. Windows Form Layout ... 38
Gambar 2.14. Windows Intermadiate... 38
Gambar 2.15. Metoda ... 39
Gambar 2.16. Event ... 39
Gambar 3.1. Program Penambahan File Tersembunyi pada File Gambar ... 40
Gambar 3.2. DFD Level 1 ... 41
Gambar 3.3. Pembongkaran File Tersembunyi pada Gambar ... 42
Gambar 3.4. Context Diagram Pembongkaran File Tersembunyi pada Gambar . 43 Gambar 3.5. Flowchart Penggabungan File Tersembunyi ... 44
Gambar 3.6. Flowchart Pembongkaran File Tersembunyi pada File Gambar ... 46
Gambar 4.1. Menu Aplikasi ... 48
Gambar 4.2. Form Menu Aplikasi ... 49
Gambar 4.3. Form Penggabungan ... 50
Gambar 4.4. Form Penggabungan Setelah Di berikan Password ... 52
Gambar 4.5. Form Penggabungan Setelah Di berikan Konfirmasi Password ... 52
Gambar 4.6. Form Penggabungan Setelah di klik Tombol Bersih ... 53
Gambar 4.7. Tempat Penyimpanan File Penggabungan ... 54
Gambar 4.8. Form Pemilihan File Cover... 55
Gambar 4.9. Form Penggabungan Setalh diisi File Cover ... 56
Gambar 4.10. Form Pemilihan File Content ... 57
Gambar 4.11. Form Penggabungan Setelah diisi File Content ... 58
Gambar 4.12. Form Pembongkaran ... 58
Gambar 4.13. Form Pembongakran Setelah diisi Password... 59
Gambar 4.14. Form Pembongkaran Setelah di klik Tombol Bersih ... 60
Gambar 4.15. Tempat Penyimpanan File Pembongkaran ... 60
Gambar 4.16. Form Pemilihan File yang akan di bongkar ... 61
Gambar 4.17. Form Pembongkaran Setelah Diisi File Cover ... 62
Gambar 4.18. File Cover (8.JPG) ... 62
Gambar 4.19. File Content (39.BMP) ... 62
viii
Universitas Kristen Maranatha
Gambar 4.21. File Content (53.BMP) ... 63
Gambar 4.22. File Hasi Penggabungan (07-08-2012 02.36.17.JPG)... 63
Gambar 4.23.File Cover (01.BMP)... 64
Gambar 4.24.File Content (3.JPG) ... 64
Gambar 4.25.File Content (4.JPG) ... 64
Gambar 4.26.File Content (5.JPG) ... 65
Gambar 4.27. File Hasi Penggabungan (07-08-2012 03.18.44.BMP) ... 65
Gambar 4.28.File Cover (01.JPG) ... 66
Gambar 4.29.File Content (2.JPG) ... 66
Gambar 4.30.File Content (3.JPG) ... 66
Gambar 4.31.File Content (4.JPG) ... 67
Gambar 4.32. File Hasi Penggabungan (07-08-2012 03.46.12.JPG)... 67
Gambar 4.33.File yang akan Dibongkar (07-08-2012 02.36.17.JPG) ... 68
Gambar 4.34 File Hasil (39.BMP) ... 68
Gambar 4.35. File Hasil (43.BMP) ... 68
Gambar 4.36. File Hasil (53.BMP) ... 69
Gambar 4.37. File yang akan Dibongkar (07-08-2012 03.18.44.BMP) ... 69
Gambar 4.38 .File Hasil (3.JPG) ... 70
Gambar 4.39.File Hasil (4.JPG) ... 70
Gambar 4.40.File Hasil (5.JPG) ... 70
Gambar 4.41. File yang akan Dibongkar (07-08-2012 03.46.12.JPG) ... 71
Gambar 4.42.File Hasil (2.JPG) ... 71
Gambar 4.43.File Hasil (3.JPG) ... 72
ix
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 2.1 Tabel Komparasi Jenis File Gambar ... 18
Tabel 2.2 Penomoran Level DFD... 28
Tabel 4.1 Pengamatan Hasil Penggabungan File ... 74
A-1 unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls, ExtDlgs, DCPcrypt2, DCPrc4, DCPsha1, sSkinManager, Menus;
type
TfrmMain = class(TForm)
OpenPictureDialog1: TOpenPictureDialog; SavePictureDialog1: TSavePictureDialog; sSkinManager1: TsSkinManager;
A-2
procedure btnEncodeClick(Sender: TObject); procedure btnDecodeClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure OpEncodeClick(Sender: TObject); procedure OpDecodeClick(Sender: TObject); procedure NextEncodeClick(Sender: TObject); procedure NextDecodeClick(Sender: TObject); procedure BackEncodeClick(Sender: TObject); procedure BackDecodeClick(Sender: TObject); procedure moEncodeChange(Sender: TObject); procedure edEncodePass1Change(Sender: TObject); procedure edEncodePass2Change(Sender: TObject); procedure Home1Click(Sender: TObject);
procedure Encrypt1Click(Sender: TObject); procedure Decrypt1Click(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure ResetEncodeClick(Sender: TObject); procedure ResetDecodeClick(Sender: TObject); procedure ResetEncode2Click(Sender: TObject); procedure ResetDecode2Click(Sender: TObject); private
{ Private declarations }
function CarrierCheck(img: TBitmap): Boolean; function doDecrypt(Pass, Content: String): String; function doEncrypt(Pass, Content: String): String; procedure Encode;
frmMain: TfrmMain; Bmp: TBitmap;
implementation
A-3 function getByte(Number: Byte): String;
var i : integer;
function getWord(Number: Word): String; var i : integer;
Bit : String[1]; Return : string[16]; begin
i := 0;
Return := '0000000000000000'; if Number <> 0 then begin
A-4
strMark, bitMark, bitContent, tempContent: String; bitRed, bitGreen, bitBlue: String;
bitBaris, bitKolom: String; begin
Bmp.Assign(imgEncode.Picture.Bitmap); Bmp.PixelFormat := pf24bit;
if CarrierCheck(Bmp) then begin
MessageDlg('File carrier sudah disisipi data.',mtWarning,[mbOK],0); Exit;
end;
LSBCount := (Bmp.Width * Bmp.Height) * 3; LSBCount := LSBCount - (Bmp.Width * 3);
tempContent := edEncodePass1.Text + '#' + moEncode.Lines.Text; tempContent := doEncrypt(edEncodePass1.Text, tempContent);
for i := 1 to Length(tempContent) do begin
bitContent := bitContent + getByte(Ord(tempContent[i])); end;
if Length(bitContent) > LSBCount then begin
MessageDlg('Content yang akan diisikan terlalu besar.',mtWarning,[mbOK],0); Exit;
Red := GetRValue(GetPixel(Bmp.Canvas.Handle,i,0)); Green := GetGValue(GetPixel(Bmp.Canvas.Handle,i,0)); Blue := GetBValue(GetPixel(Bmp.Canvas.Handle,i,0));
A-5
Bmp.Canvas.Pixels[i,0] := RGB(Red,Green,Blue); end;
k := 1;
for i := 1 to Bmp.Height - 1 do begin for j := 0 to Bmp.Width - 1 do begin
Red := GetRValue(GetPixel(Bmp.Canvas.Handle,j,i)); Green := GetGValue(GetPixel(Bmp.Canvas.Handle,j,i)); Blue := GetBValue(GetPixel(Bmp.Canvas.Handle,j,i));
A-6 k := 1;
bitBaris := getWord(i);
for x := 8 to 15 do begin
Red := GetRValue(GetPixel(Bmp.Canvas.Handle,x,0)); Green := GetGValue(GetPixel(Bmp.Canvas.Handle,x,0)); Blue := GetBValue(GetPixel(Bmp.Canvas.Handle,x,0));
bitRed := getByte(Red); bitGreen := getByte(Green);
Delete(bitRed,8,1); Delete(bitGreen,8,1);
bitGreen := bitGreen + bitBaris[k]; bitRed := bitRed + bitBaris[k+1];
k := k + 2;
Red := getDecimal(bitRed); Green := getDecimal(bitGreen);
Bmp.Canvas.Pixels[x,0] := RGB(Red,Green,Blue); end;
k := 1;
bitKolom := getWord(j);
for x := 16 to 23 do begin
Red := GetRValue(GetPixel(Bmp.Canvas.Handle,i,0)); Green := GetGValue(GetPixel(Bmp.Canvas.Handle,i,0)); Blue := GetBValue(GetPixel(Bmp.Canvas.Handle,i,0));
bitRed := getByte(Red); bitGreen := getByte(Green);
Delete(bitRed,8,1); Delete(bitGreen,8,1);
bitGreen := bitGreen + bitKolom[k]; bitRed := bitRed + bitKolom[k+1];
k := k + 2;
A-7 Green := getDecimal(bitGreen);
Bmp.Canvas.Pixels[x,0] := RGB(Red,Green,Blue); end;
Self.Cursor := crDefault;
if SavePictureDialog1.Execute then begin SavePictureDialog1.DefaultExt := '*.bmp'; Bmp.SaveToFile(SavePictureDialog1.FileName); end;
end;
procedure TfrmMain.Decode; var i, j, k: Integer;
Red, Green, Blue: Integer; bitContent, tempContent: String; bitRed, bitGreen, bitBlue: String; bitBaris, bitKolom: String; Baris, Kolom: Integer; begin
Bmp.Assign(imgDecode.Picture.Bitmap); Bmp.PixelFormat := pf24bit;
if not CarrierCheck(Bmp) then begin
MessageDlg('File gambar tidak mengandung pesan.',mtWarning,[mbOK],0); Exit;
end;
bitBaris := '';
for k := 8 to 15 do begin
Red := GetRValue(GetPixel(Bmp.Canvas.Handle,k,0)); Green := GetGValue(GetPixel(Bmp.Canvas.Handle,k,0)); bitBaris := bitBaris + getByte(Green)[8] + getByte(Red)[8]; end;
Baris := getDecimal(bitBaris);
bitKolom := '';
for k := 16 to 23 do begin
Red := GetRValue(GetPixel(Bmp.Canvas.Handle,k,0)); Green := GetGValue(GetPixel(Bmp.Canvas.Handle,k,0)); bitKolom := bitKolom + getByte(Green)[8] + getByte(Red)[8];
A-8 bitRed := getByte(Red);
bitGreen := getByte(Green); bitBlue := getByte(Blue);
tempContent := tempContent + Copy(bitBlue,8,1) + Copy(bitGreen,8,1) + Copy(bitRed,8,1);
if (Baris = i) and (Kolom = j) then Break;
bitContent := bitContent + Chr(getDecimal(Copy(tempContent,k,8))); k := k + 8;
end;
bitContent := doDecrypt(edDecodePass1.Text,bitContent);
if edDecodePass1.Text = Copy(bitContent,1,Length(edDecodePass1.Text)) then
moDecode.Lines.Text := StringReplace(bitContent,edDecodePass1.Text+'#','',[rfReplaceAll]) else MessageDlg('Password salah.',mtWarning,[mbOK],0);
end;
function TfrmMain.CarrierCheck(img: TBitmap): Boolean; var i: Integer;
Red := GetRValue(GetPixel(img.Canvas.Handle,i,0)); Green := GetGValue(GetPixel(img.Canvas.Handle,i,0)); Blue := GetBValue(GetPixel(img.Canvas.Handle,i,0));
bitLSB := bitLSB + getByte(Blue)[8] + getByte(Green)[8] + getByte(Red)[8]; end;
A-9 if edEncodePass1.Text <> edEncodePass2.Text then begin MessageDlg('Konfirmasi password salah',mtWarning,[mbOK],0); Exit;
end;
if imgEncode.Picture.Bitmap = nil then begin
MessageDlg('File carrier belum dipilih',mtWarning,[mbOK],0); Exit;
end;
if Trim(moEncode.Lines.Text) = '' then begin
MessageDlg('Content belum diisi',mtWarning,[mbOK],0); Exit;
OpenPictureDialog1.Filter := 'Bitmaps (*.bmp)|*.bmp'; OpenPictureDialog1.DefaultExt := '*.bmp';
if OpenPictureDialog1.Execute then begin bmp := TBitmap.Create;
bmp.LoadFromFile(OpenPictureDialog1.FileName);
imgEncode.Picture.LoadFromFile(OpenPictureDialog1.FileName); FreeAndNil(bmp);
A-10 if OpenPictureDialog1.Execute then begin
bmp := TBitmap.Create;
bmp.LoadFromFile(OpenPictureDialog1.FileName);
imgDecode.Picture.LoadFromFile(OpenPictureDialog1.FileName); FreeAndNil(bmp);
if (edEncodePass1.Text ='') and (moEncode.Text ='') then begin
if (edEncodePass1.Text ='') and (moEncode.Text ='') then begin
btnEncode.Enabled := false; end
A-11
if (edEncodePass1.Text ='') and (moEncode.Text ='') then begin
imgEncode.Picture.Assign(nil); moEncode.Clear;
edEncodePass1.Clear; edEncodePass2.Clear; ResetEncode.enabled :=false;
NextEncode.enabled :=false; end;
A-12 begin
imgDecode.Picture.Assign(nil); moDecode.Clear;
edDecodePass1.Clear; NextDecode.enabled :=false; ResetDecode.enabled :=false; end;
procedure TfrmMain.ResetEncode2Click(Sender: TObject); begin
moEncode.Clear;
edEncodePass1.Clear; edEncodePass2.Clear; end;
procedure TfrmMain.ResetDecode2Click(Sender: TObject); begin
moDecode.Clear; edDecodePass1.Clear; end;
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1. Latar Belakang
Seiring dengan perkembangan teknologi yang semakin pesat komputer, tablet, smart phone, internet dan perangkat lainnya yang serba digital, telah membuat data digital banyak digunakan di berbagai media dan mudah sekali berpindah - pindah dari orang ke orang lain bahkan dalam hitungan detik data digital bisa tersebar sampai ke penjuru dunia dengan teknologi yang ada sekarang ini mudah diolah dan mudah disalah gunakan oleh orang yang tidak bertanggung jawab. Internet sebagai salah satu media informasi dan telekomunikasi yang banyak digunakan saat ini, menyebabkan distribusi data digital semakin mudah, sehingga membuat kepemilikan dari suatu data digital menjadi sesuatu yang penting di jaman informasi seperti ini.
2
Universitas Kristen Maranatha
oleh manusia (kode khusus) untuk menentukan tugas ataupun satu set tugas untuk dilakukan oleh komputer setelah diterjermah oleh penterjermah ke bahasa mesin (compiler) biasanya dalam binary hexadecimal. Teknik yang digunakan adalah steganografi untuk
mengamankan data yaitu dengan cara menyisipkan data rahasia tanpa menimbulkan suatu kecurigaan. Steganografi adalah ilmu dan seni untuk menyembunyikan pesan rahasia (hiding message) sedemikian rupa sehingga keberadaan (eksistensi) pesan tidak terdeteksi oleh indera manusia. Metode yang digunakan adalah data flow oriented methodologies yaitu Structured Analysis and Design Technique (SADT).
SADT sebagai metodologi pengembangan sistem terstruktur juga menganut konsep dekomposisi, menggambarkan terlebih dahulu sistem secara utuh sebagai tingkat tertinggi dan memecahkannya menjadi lebih terperinci.
1.2. Rumusan Masalah
Beberapa masalah yang akan dibahas pada Tugas Akhir ini adalah:
1. Bagaimana membuat program yang dapat mengimplementasikan aplikasi penambahan file tersembunyi pada file gambar yang berisi sebuah informasi kedalam file gambar yang berfungsi sebagai cover dengan menyertakan password pada file cover.
3
Universitas Kristen Maranatha
dan bagaimana perubahan pada file data setelah dilakukan pembongkaran.
1.3. Tujuan Penelitian
Tujuan dari Tugas Akhir ini adalah :
Dapat mengimplementasikan aplikasi penambahan file tersembunyi pada file gambar dengan menyertakan password pada file cover agar informasi
yang disimpan aman dari orang yang tidak berkepentingan terhadap informasi tersebut .
1.4. Pembatasan Masalah
Bentuk data yang dipakai dalam penyisipan informasi ini berupa file bitmap 24-bit dengan format *.bmp dan file gambar berupa *.JPG
File data informasi yang bisa disisipkan hanya berupa gambar.
4
Universitas Kristen Maranatha 1.5. Sistematika Penulisan
Bab I : Pendahuluan
Membahas tentang latar belakang, identifikasi masalah, tujuan, pembatasan masalah, dan jadwal pengerjaan. Bab II : Teori Pendahuluan
Membahas tentang teori – teori yang menunjang topik Tugas Akhir.
Bab III : Perancangan dan Pemodelan
Membahas tentang perancangan program penambahan file tersembunyi pada file gambar.
Bab IV : Hasil Dan Implementasi
Membahas tentang hasil rancangan program penambahan file tersembunyi pada file gambar dan kemudian
mengimplementasikannya. Bab V : Kesimpulan dan Saran
77 Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Implementasi aplikasi program penambahan file tersembunyi pada file gambar telah berhasil dilakukan dengan file yang disisipi berbentuk Gambar yang jumlahnya bisa lebih dari satu file yang disertakan
password.
Implementasi aplikasi pembongkaran file yang telah disisipi telah berhasil dilakukan dengan menyertakan password yang sebelumnya telah dimasukan, tetapi jika password yang dimasukan tidak sesuai maka file tidak dapat dibuka dan hasil yang telah diimplementasikan menunjukkan file gambar yang berisi informasi tidak ada perubahan antara file yang sudah sisipkan dengan file yang sebelumnya.
78
Universitas Kristen Maranatha 5.2. Saran
Program penambahan file tersembunyi pada file gambar ini dapat dikembangkan untuk menggabungkan file dalam bentuk yang lain agar dapat mengamankan file-file penting baik itu text, audio atau video sehingga aplikasi ini tidak fokus hanya dapat mengamankan file
79 Universitas Kristen Maranatha
DAFTAR PUSTAKA
Bahra, al., Analist dan desain sistem informasi, Graha ilmu, Yogyakarta, 2005
Darmawan, M.S, Steganografi, Sebuah Pendekatan Baru dalam Pengamanan Data,
http://3ka-09.digimon.tv/t9-pengertian-visual-basic25 April 2012
http://elib.unikom.ac.id/files/disk1/302/jbtunikompp-gdi-hermizahad/, 28 Januari 2013
http://en.wikipedia.org/wiki/Steganography, 15 Maret 2012
http://eprints.undip.ac.id/1802/2/Prosiding_Buku_IIOK(komp).pdf, 15 April 2012
http://repository.upi.edu/operator/upload/s_d505_033021_chapter2.pdf, 28 Januari 2013
http://overclockerindo.com/moduls.php?name:reviews., 2003
http://ochip.wordpress.com/2010/10/29/sejarah-steganografi/, 30 Mei 2012
http://planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=61511&lngWId=1, 30
Mei 2012