Proteksi Hak Cipta Menggunakan Watermarking LSB Pada Gambar Digital.

PROTEKSI HAK CIPTA MENGGUNAKAN WATERMARKING LSB
PADA GAMBAR DIGITAL

Ivan Renaldi / 0827012

Jurusan Sistem Komputer, Fakultas Teknik,
Universitas Kristen Maranatha
Jalan Prof. drg. Suria Sumantri, MPH. No 65
Bandung 40164, Indonesia

ABSTRAK
Seiring dengan perkembangan jaman, data digital dipakai oleh seluruh
kalangan masyarakat, dan proteksi hak cipta data digital menjadi masalah yang
penting. Berbagai macam teknik digunakan untuk melindungi data digital dari
pembajakan, salah satunya adalah watermarking. Watermarking menyisipkan
suatu informasi tentang pemilik data digital tersebut kedalam data digital sebagai
tanda kepemilikan dari data digital tersebut secara tersembunyi dan tidak disadari
oleh pihak lain. Teknik watermarking yang digunakan dalam Tugas Akhir ini
adalah Least Significant Bit (LSB). Teknik LSB mengambil bit terakhir dari suatu
data digital, dan mengubah bit tersebut untuk disisipkan data atau informasi.
Pengubahan bit terakhir tersebut tidak terlalu mempengaruhi kualitas media awal

yang digunakan, sehingga teknik ini cukup baik untuk digunakan. Diharapkan
dengan diterapkannya teknik watermarking dapat melindungi hak cipta suatu data
digital.

i

Universitas Kristen Maranatha

COPYRIGHT PROTECTION IN DIGITAL IMAGES USING LSB
WATERMARKING

Ivan Renaldi / 0827012

Department of Computer Engineering, Faculty of Engineering,
Maranatha Christian University
Prof. drg. Suria Sumantri, MPH. No 65
Bandung 40164, Indonesia

ABSTRACT


Nowadays in digital era, digital data used by the entire society, and the
copyright protection of digital data becomes a significant problem. Various
techniques are used to protect digital data from piracy, one of the technique is
watermarking. Watermarking insert some information about the owner of the
digital data into digital data as a sign of ownership of the digital data, the
information is hidden and cannot realized by other parties. Watermarking
techniques used in this thesis is the Least Significant Bit (LSB). LSB technique
takes the last bit of the digital data, and change the bits to be inserted data or
information. Changing the last bit does not really affect the quality of the media
that used, so the technique is good to be used. With the implementation of
watermarking technique is expected to be able to protect the copyright of a digital
data.

ii

Universitas Kristen Maranatha

DAFTAR ISI
ABSTRAKSI...................................................................................................... i
ABSTRACT ......................................................................................................... ii

DAFTAR ISI ...................................................................................................... iii
DAFTAR TABEL .............................................................................................. v
DAFTAR GAMBAR ......................................................................................... vi
BAB I PENDAHULUAN .................................................................................. 1
1.1. Latar Belakang ............................................................................... 1
1.2. Rumusan Masalah .......................................................................... 3
1.3. Tujuan Penelitian ........................................................................... 3
1.4. Pembatasan Masalah ...................................................................... 3
1.5. Sistematika Penulisan..................................................................... 3
BAB II KERANGKA TEORITIS ...................................................................... 5
2.1. Steganografi ................................................................................... 5
2.1.1. Sejarah Steganografi ....................................................... 7
2.1.2. Steganografi Digital ........................................................ 8
2.1.3. Kriteria Steganografi ....................................................... 11
2.2. Watermarking ................................................................................. 12
2.3. Least Significant Bit ....................................................................... 15
2.4. Borland Delphi ............................................................................... 18
2.4.1. Sejarah Delphi ................................................................. 19
2.4.2. Integrated Development Environment (IDE) Delphi ...... 21
2.4.3. Hal Umum Tentang Delphi ............................................. 22

2.4.4. Struktur Pemograman Delphi.......................................... 23
2.4.5. Kegunaan Delphi............................................................. 24
2.4.6. Keunggulan dan Kelemahan Delphi ............................... 24
2.4.7. Borland Delphi 7.0 .......................................................... 25
BAB III PERANCANGAN DAN PEMODELAN ............................................ 27
3.1. Blok Diagram ................................................................................. 27
3.2. Flowchart ....................................................................................... 29
BAB IV HASIL DAN PEMBAHASAN ........................................................... 32
4.1. Pengujian Software......................................................................... 32
4.1.1. Form Home ..................................................................... 32
4.1.2. Form Encrypt .................................................................. 33
4.1.3. Form Decrypt .................................................................. 42
4.2. Pengamatan hasil Encrypt .............................................................. 49
4.2.1. Pengamatan hasil encrypt pertama .................................. 49
4.2.2. Pengamatan hasil encrypt kedua ..................................... 49
4.2.3. Pengamatan hasil encrypt ketiga ..................................... 50
4.3. Pengamatan hasil Decrypt .............................................................. 51
4.3.1. Pengamatan hasil decrypt pertama .................................. 52
4.3.2. Pengamatan hasil decrypt kedua ..................................... 52
4.3.3. Pengamatan hasil decrypt ketiga ..................................... 53

4.4. Pengamatan hasil file carrier sebelum dan sesudah disisipkan ..... 54

iii

Universitas Kristen Maranatha

4.4.1. Pengamatan hasil percobaan pertama ............................. 54
4.4.2. Pengamatan hasil percobaan kedua................................. 56
4.4.3. Pengamatan hasil percobaan ketiga ................................ 58
BAB V KESIMPULAN DAN SARAN ............................................................. 62
5.1. Kesimpulan .................................................................................... 62
5.2. Saran............................................................................................... 63
DAFTARPUSTAKA ......................................................................................... 64
LAMPIRAN PROGRAM .................................................................................. A-1

iv

Universitas Kristen Maranatha

DAFTAR TABEL

Tabel 4.1 Tabel pengujian Encrypt pertama ......................................................... 49
Tabel 4.2 Tabel pengujian Encrypt kedua............................................................. 50
Tabel 4.3 Tabel pengujian Encrypt ketiga ............................................................ 51
Tabel 4.4 Tabel pengujian Decrypt pertama ......................................................... 52
Tabel 4.5 Tabel pengujian Decrypt kedua ............................................................ 52
Tabel 4.6 Tabel pengujian Decrypt ketiga ............................................................ 53
Tabel 4.7 Pengamatan pengujian pertama ............................................................ 54
Tabel 4.8 Pengamatan pengujian kedua ................................................................ 56
Tabel 4.9 Pengamatan pengujian ketiga................................................................ 58

v

Universitas Kristen Maranatha

DAFTAR GAMBAR
Gambar 2.1. Contoh LSB dan MSB ....................................................................... 16
Gambar 2.2. IDE Delphi ....................................................................................... 21
Gambar 3.1. Blok diagram encrypt ....................................................................... 27
Gambar 3.2. Blok diagram decrypt ....................................................................... 28
Gambar 3.3. Flowchart program .......................................................................... 29

Gambar 4.1. Tampilan form awal ......................................................................... 32
Gambar 4.2. Tampilan form encrypt ..................................................................... 33
Gambar 4.3. Tampilan Open file ketika tombol Open ditekan ............................. 33
Gambar 4.4. Tampilan form sesudah memilih file ................................................ 34
Gambar 4.5. Tampilan form ketika tombol Reset ditekan .................................... 34
Gambar 4.6. Tampilan form pengisian password dan juga content yang
belum diisi ketika tombol Next ditekan........................................................ 35
Gambar 4.7. Tampilan form pengisian password dan juga content yang
sudah diisi ketika tombol Next ditekan ........................................................ 36
Gambar 4.8. Tampilan form ketika tombol Reset ditekan .................................... 36
Gambar 4.9. Tampilan form ketika tombol Encode ditekan ................................. 37
Gambar 4.10. Tampilan form dan warning ketika tombol Encode ditekan,
tetapi file carrier sudah pernah disisipi data ................................................ 38
Gambar 4.11. Tampilan form dan warning ketika tombol Encode ditekan,
tetapi carrier terlalu besar ukurannya .......................................................... 39
Gambar 4.12. Tampilan form dan warning ketika tombol Encode ditekan,
tetapi isi dari text box password dan confirm password tidak sama ............. 40
Gambar 4.13. Tampilan form dan warning ketika tombol Encode ditekan,
tetapi content belum diisi ............................................................................. 41
Gambar 4.14. Tampilan form decrypt ................................................................... 42

Gambar 4.15. Tampilan Open file ketika tombol Open ditekan ........................... 42
Gambar 4.16. Tampilan form sesudah memilih file .............................................. 43
Gambar 4.17. Tampilan form ketika tombol Reset ditekan .................................. 43
Gambar 4.18. Tampilan form pengisian password yang belum diisi ketika
tombol Next ditekan ..................................................................................... 44
Gambar 4.19. Tampilan form pengisian password yang sudah diisi ketika
tombol Next ditekan ..................................................................................... 45
Gambar 4.20. Tampilan form ketika tombol Reset ditekan .................................. 45
Gambar 4.21. Tampilan yang berisi content dari gambar ..................................... 46
Gambar 4.22. Tampilan form dan warning ketika tombol Encode ditekan,
tetapi password yang dimasukan tidak sesuai .............................................. 47
Gambar 4.23. Tampilan form dan warning ketika tombol Encode ditekan,
tetapi file carrier yang dipilih belum pernah disisipi content sebelumnya ... 48

vi

Universitas Kristen Maranatha

LAMPIRAN


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;
MainMenu1: TMainMenu;
Action1: TMenuItem;
Home1: TMenuItem;
Encrypt1: TMenuItem;
Decrypt1: TMenuItem;
Exit1: TMenuItem;
Label1: TLabel;
Label2: TLabel;
Page: TPageControl;

TabSheet1: TTabSheet;
Panel5: TPanel;
Panel2: TPanel;
imgEncode: TImage;
OpEncode: TButton;
NextEncode: TButton;
ResetEncode: TButton;
TabSheet2: TTabSheet;
Panel6: TPanel;
Panel4: TPanel;
imgDecode: TImage;
OpDecode: TButton;
NextDecode: TButton;
ResetDecode: TButton;
TabSheet3: TTabSheet;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
btnEncode: TButton;
BackEncode: TButton;

moEncode: TMemo;
TabSheet4: TTabSheet;
Label3: TLabel;
btnDecode: TButton;
BackDecode: TButton;
edDecodePass1: TEdit;
TabSheet5: TTabSheet;
Label4: TLabel;

A-1

moDecode: TMemo;
TabSheet6: TTabSheet;
edEncodePass1: TEdit;
edEncodePass2: TEdit;
ResetEncode2: TButton;
ResetDecode2: TButton;
Label8: TLabel;
Label9: TLabel;
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;
procedure Decode;
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
Bmp: TBitmap;
implementation
{$R *.dfm}
function getByte(Number: Byte): String;
var i : integer;
Bit : String[1];

A-2

Return : string[8];
begin
i := 0;
Return := '00000000';
if Number 0 then begin
while Number 1 do begin
Str(Number mod 2,Bit);
Return[8-i] := Bit[1];
Number := Trunc(Number/2);
Inc(i);
end;
Str(Number,Bit);
Return[8-i] := Bit[1];
end;
Result := Return;
end;
function getWord(Number: Word): String;
var i : integer;
Bit : String[1];
Return : string[16];
begin
i := 0;
Return := '0000000000000000';
if Number 0 then begin
while Number 1 do begin
Str(Number mod 2,Bit);
Return[16-i] := Bit[1];
Number := Trunc(Number/2);
Inc(i);
end;
Str(Number,Bit);
Return[16-i] := Bit[1];
end;
Result := Return;
end;
function getDecimal(Bit: String): Integer;
var i : Integer;
Return: Integer;
begin
Return := 0;
for i := 1 to Length(Bit) do begin
if Bit[i] = '1' then Return := Return + Trunc(Exp((Length(Bit)-i)*ln(2)));
end;
Result := Return;

A-3

end;

procedure TfrmMain.Encode;
var i, j, k, x, LSBCount: Integer;
Red, Green, Blue: Integer;
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;
end;
Self.Cursor := crHourGlass;
strMark := '&&&';
bitMark := getByte(Ord(strMark[1])) +
getByte(Ord(strMark[2])) +
getByte(Ord(strMark[3]));
j := 1;
for i := 0 to 7 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);
bitBlue := getByte(Blue);
Delete(bitRed,8,1);
Delete(bitGreen,8,1);
Delete(bitBlue,8,1);

A-4

bitBlue := bitBlue + bitMark[j];
bitGreen := bitGreen + bitMark[j+1];
bitRed := bitRed + bitMark[j+2];
j := j + 3;
Red := getDecimal(bitRed);
Green := getDecimal(bitGreen);
Blue := getDecimal(bitBlue);
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));
bitRed := getByte(Red);
bitGreen := getByte(Green);
bitBlue := getByte(Blue);
Delete(bitRed,8,1);
Delete(bitGreen,8,1);
Delete(bitBlue,8,1);
bitBlue := bitBlue + bitContent[k];
bitGreen := bitGreen + bitContent[k+1];
bitRed := bitRed + bitContent[k+2];
k := k + 3;
Red := getDecimal(bitRed);
Green := getDecimal(bitGreen);
Blue := getDecimal(bitBlue);
Bmp.Canvas.Pixels[j,i] := RGB(Red,Green,Blue);
if k > length(bitContent) then Break;
end;
if k > length(bitContent) then Break;
end;

k := 1;
bitBaris := getWord(i);

A-5

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;
Red := getDecimal(bitRed);
Green := getDecimal(bitGreen);
Bmp.Canvas.Pixels[x,0] := RGB(Red,Green,Blue);

A-6

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];
end;
Kolom := getDecimal(bitKolom);
tempContent := '';
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));
bitRed := getByte(Red);
bitGreen := getByte(Green);

A-7

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;
end;
if (Baris = i) and (Kolom = j) then Break;
end;
bitContent := '';
k := 1;
for i := 1 to Round(Length(tempContent)/8) do begin
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, Green, Blue: Integer;
strMark, bitLSB: String;
begin
bitLSB := '';
for i := 0 to 7 do begin
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;
strMark := Chr(getDecimal(Copy(bitLSB,1,8))) +
Chr(getDecimal(Copy(bitLSB,9,8))) +
Chr(getDecimal(Copy(bitLSB,17,8)));
Result := strMark = '&&&';
end;

procedure TfrmMain.btnEncodeClick(Sender: TObject);
begin
if edEncodePass1.Text edEncodePass2.Text then begin
MessageDlg('Konfirmasi password salah',mtWarning,[mbOK],0);
Exit;

A-8

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;
end;
Encode;
end;
procedure TfrmMain.btnDecodeClick(Sender: TObject);
begin
Decode;
page.TabIndex:=5;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Bmp := TBitmap.Create;
end;
procedure TfrmMain.OpEncodeClick(Sender: TObject);
var bmp : TBitmap;
begin
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);
NextEncode.Enabled :=true;
ResetEncode.Enabled :=true;
end;
end;
procedure TfrmMain.OpDecodeClick(Sender: TObject);
var bmp : TBitmap;
begin
OpenPictureDialog1.Filter := 'Bitmaps (*.bmp)|*.bmp';
OpenPictureDialog1.DefaultExt := '*.bmp';
if OpenPictureDialog1.Execute then begin
bmp := TBitmap.Create;

A-9

bmp.LoadFromFile(OpenPictureDialog1.FileName);
imgDecode.Picture.LoadFromFile(OpenPictureDialog1.FileName);
FreeAndNil(bmp);
NextDecode.Enabled:=true;
ResetDecode.Enabled:=true;
end;
end;
procedure TfrmMain.NextEncodeClick(Sender: TObject);
begin
page.TabIndex := 2;
end;
procedure TfrmMain.NextDecodeClick(Sender: TObject);
begin
page.TabIndex := 4;
end;
procedure TfrmMain.BackEncodeClick(Sender: TObject);
begin
page.TabIndex := 1;
end;
procedure TfrmMain.BackDecodeClick(Sender: TObject);
begin
page.TabIndex := 3;
end;
procedure TfrmMain.moEncodeChange(Sender: TObject);
begin
if (edEncodePass1.Text ='') and (moEncode.Text ='') then
begin
btnEncode.Enabled := false;
end
else
begin
btnEncode.Enabled := true;
end
end;
procedure TfrmMain.edEncodePass1Change(Sender: TObject);
begin
if (edEncodePass1.Text ='') and (moEncode.Text ='') then
begin
btnEncode.Enabled := false;
end
else
begin
btnEncode.Enabled := true;
end
end;

A-10

procedure TfrmMain.edEncodePass2Change(Sender: TObject);
begin
if (edEncodePass1.Text ='') and (moEncode.Text ='') then
begin
btnEncode.Enabled := false;
end
else
begin
btnEncode.Enabled := true;
end
end;
procedure TfrmMain.Home1Click(Sender: TObject);
begin
page.tabindex := 0;
end;
procedure TfrmMain.Encrypt1Click(Sender: TObject);
begin
page.tabindex := 1;
end;
procedure TfrmMain.Decrypt1Click(Sender: TObject);
begin
page.tabindex := 3;
end;
procedure TfrmMain.Exit1Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfrmMain.FormShow(Sender: TObject);
begin
page.TabIndex:=0;
end;
procedure TfrmMain.ResetEncodeClick(Sender: TObject);
begin
imgEncode.Picture.Assign(nil);
moEncode.Clear;
edEncodePass1.Clear; edEncodePass2.Clear;
ResetEncode.enabled :=false;
NextEncode.enabled :=false;
end;
procedure TfrmMain.ResetDecodeClick(Sender: TObject);
begin
imgDecode.Picture.Assign(nil);
moDecode.Clear;

A-11

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;
end.

A-12

BAB I
PENDAHULUAN

1.1.

Latar Belakang
Seiring dengan perkembangan komputer, internet dan perangkat –
perangkat lainnya yang serba digital, telah membuat data digital banyak
digunakan karena mudah diduplikasi, mudah diolah, serta mudah
didistribusikan. Internet sebagai salah satu media informasi dan
telekomunikasi yang banyak digunakan saat ini, menyebabkan distribusi
data digital semakin mudah, sehingga membuat kepemilikan atau hak cipta
dari suatu data digital menjadi sesuatu yang penting.
Salah satu teknik pengamanan hak cipta suatu data digital adalah
watermarking. Digital watermark adalah penanda atau tanda tangan digital
dari sang pembuat data digital. Dengan digital watermark sebuah gambar
menjadi berisi informasi tentang pemilik atau pembuat gambar tersebut.
Watermark ini akan tetap berada dalam gambar tersebut walaupun terlepas
dari jalur koneksi internet. Tidak peduli di mana gambar digital tersebut
berada, orang lain dapat menemukan kepemilikan hak cipta gambar
tersebut.

1

Universitas Kristen Maranatha

2

Watermarking merupakan cabang dari steganografi, steganografi
adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi
dalam suatu media dengan suatu cara tanpa menunjukkan perubahan yang
nyata atau terasa dalam kualitas dan struktur dari media semula, sehingga
selain orang yang berwenang tidak ada seorangpun yang mengetahui atau
menyadari bahwa ada suatu pesan rahasia di dalamnya.
Digital watermarking merupakan salah satu bentuk pengembangan
metode steganografi yang sebenarnya lebih ditekankan pada fungsionalitas
dari data digital yang disisipkan, maupun data digital yang digunakan
sebagai media penyimpanan. Setiap orang tidak dapat watermarking
secara kasat mata namun dengan suatu program dapat menunjukan milik
siapa gambar itu.
Metode yang dipakai dalam program watermarking ini adalah LSB
(Least Significant Bit). Watermarking ini mengambil bit terakhir dari
media penyimpanan yang akan diisikan informasi, dan menggantinya
dengan bit dari informasi tersebut.
Dengan diterapkannya teknik watermarking diharapkan akan
menyelesaikan masalah hak cipta pada gambar digital. Hal tersebutlah
yang membuat penulis ingin membuat Tugas Akhir dengan judul Proteksi
Hak Cipta Menggunakan Watermarking LSB pada Gambar Digital.

Universitas Kristen Maranatha

3

1.2.

Rumusan Masalah
Beberapa masalah yang akan dibahas pada Tugas Akhir ini adalah:
1. Bagaimana mempraktekan menyisipkan sebuah informasi ke dalam
file gambar.
2. Bagaimana perubahan yang terjadi pada file bitmap setelah
disisipkan informasi.

1.3.

Tujuan Penelitian
Tujuan dari Tugas Akhir ini adalah :
Dapat mengaplikasikan digital watermarking pada file gambar.

1.4.

Pembatasan Masalah


Bentuk data yang dipakai dalam penyisipan informasi ini berupa
file bitmap 24-bit dengan format *.bmp.





Besar dari file carrier harus lebih besar daripada content.
Content yang sudah disisipkan dengan program ini hanya dapat
dilihat dengan menggunakan program ini.

1.5.

Sistematika Penulisan
Bab I

: Pendahuluan
Membahas tentang latar belakang, identifikasi masalah,
tujuan, pembatasan masalah, dan jadwal pengerjaan.

Universitas Kristen Maranatha

4

Bab II

: Teori Pendahuluan
Membahas tentang teori – teori yang menunjang topik
Tugas Akhir.

Bab III

: Perancangan dan Pemodelan
Membahas tentang perancangan program watermarking
LSB pada gambar bitmap.

Bab IV

: Pengamatan Data
Membahas

tentang

hasil

rancangan

program

watermarking LSB pada gambar bitmap.
Bab V

: Kesimpulan dan Saran
Berisi kesimpulan dan saran dari program watermarking
LSB pada gambar bitmap.

Universitas Kristen Maranatha

BAB V
KESIMPULAN DAN SARAN

5.1.

Kesimpulan


Perancangan program watermarking dengan menggunakan algoritma
Least Significant Bit sudah dapat direalisasikan.



Steganografi yang telah dihasilkan dari implementasi algoritma LSB
(Least

Significant

Bit) dapat

digunakan dengan baik untuk

menyembunyikan pesan di dalam pesan sebuah image atau file citra
digital.


Gambar yang sudah ter-watermark memiliki kualitas yang hampir
sama dibandingkan dengan gambar aslinya dan sangat sulit untuk
dibedakan oleh penglihatan manusia dikarenakan penyisipan dilakukan
dengan mengganti bit – bit terakhir dari masing – masing biner file
carrier

62

Universitas Kristen Maranatha

63

5.2.

Saran


Program watermarking ini dapat dikembangkan untuk memproteksi
file gambar dengan format lain, atau file dengan bentuk atau format
lain seperti text, audio atau video.

Universitas Kristen Maranatha

DAFTAR PUSTAKA

Ahmad, Balza. dan Firdausy, Kartika., Teknik Pengolahan Citra Digital Menggunakan Delphi, Ardi
Publishing, Yogyakarta, 2005
Darmawan,

M.S,

Steganografi,

Sebuah

Pendekatan

Baru

dalam

Pengamanan

Data,

http://overclockerindo.com/moduls.php?name:reviews., 2003
http://blog.re.or.id/digital-watermarking.htm, 30 Juni 2011
http://en.wikipedia.org/wiki/Digital_watermarking, 15 Juli 2011
http://en.wikipedia.org/wiki/Steganography, 15 Juli 2011
http://en.wikipedia.org/wiki/Watermark, 15 Juli 2011
http://eprints.undip.ac.id/1802/2/Prosiding_Buku_IIOK(komp).pdf, 15 Mei 2011
http://ochip.wordpress.com/2010/10/29/sejarah-steganografi/, 30 Mei 2011
http://planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=61511&lngWId=1, 30 Mei 2011
http://shirotholmustaqim.files.wordpress.com/2010/05/modul-delphi-7.pdf, 25 Juli 2011
http://suradigorontalo.wordpress.com/2009/03/16/sejarah-delphi/, 25 juli 2011
http://www.alpvision.com/watermarking.html, 15 Juli 2011
http://www.scribd.com/doc/54847008/A-New-Digital-Watermarking-Algorithm-Using-Combinationof-Least-Significant-Bit-LSB-and-Inverse-Bit, 20 Mei 2011

64

Universitas Kristen Maranatha