6
BAB 2
LANDASAN TEORI
2.1 Transformasi Linier
Ilmu matematik telah menarik perhatian para ilmuwan dan pakar sejak zaman
dahulu. Bahkan pada masa Yunani Kuno, matematik sudah menjadi bahan pemikiran dan
penelitian para filsuf-filsuf besar pada masa itu. Hasil pemikiran para filsuf besar di masa
itu, seperti misalnya Euclides, Eratosthenes dan Pythagoras, masih terus dipakai sampai
sekarang. Seiring perkembangan zaman, ilmu matematik juga semakin berkembang
menjadi semakin rumit dan semakin maju.
Ilmu matematika merupakan ilmu yang disebut sebagai ibu dari segala jenis ilmu
(the mother of all sciences). Hal ini dikarenakan dalam setiap jenis ilmu yang ada di
dunia, pasti ada terkandung unsur matematik, walau sedikit. Di dalam ilmu komputer,
matematik memberikan sumbangan berupa dasar perhitungan untuk beberapa algoritma
yang banyak digunakan, seperti yang ditemukan dalam beberapa algoritma kriptografi
dan algoritma kompresi. Transformasi merupakan bagian dari ilmu matematik yang
banyak diterapkan didunia nyata, misalnya untuk pengolahan sinyal suara, listrik dan
sebagainya.
Transformasi Linier dapat dijabarkan sebagai suatu fungsi f : V → W dimana V
dan W merupakan suatu vektor pada suatu bidang K. Untuk dua vektor sembarang x dan y
terletak dalam V dan sebuah bilangan skalar a terletak dalam K, maka berlaku : f(x + y) =
f(x) + f(y) dan f(ax) = a.f(x). Berdasarkan hal ini, maka dapat kita nyatakan bahwa untuk
setiap vektor x1, …, xm dan setiap skalar a1, …, am, berlaku persamaan :
7
f(a1x1 + … + amxm) = a1f(x1) + … + am f(xm).
Metode Transformasi banyak digunakan untuk membantu mempelajari jaringan
lisrik, alat pengendali dan pengubah energi, pada media komunikasi elektronik yang
berbasiskan kabel (atau serat optik) ataupun nirkabel, serta prinsip informasi yang
melibatkan proses mendapatkan, mengolah dan mempresentasikan data.
2.1.1 Transformasi Fourier
Transformasi Fourier, pertama kali dicetuskan oleh Joseph Fourier. Contoh paling
jelas dari Transformasi Fourier bisa dilihat menggunakan gelombang suara. Melalui suatu
osiloskop, kita dapat melihat rupa gelombang suara, sementara telinga kita dapat
mendengar spektrum suara. Gelombang suara merupakan Transformasi Fourier dari
spectrum suara dan sebaliknya. Transformasi Fourier dari sutu fungsi f(x) dapat
didefinisikan sebagai :
∫∞
∞−
−= dxexfsF xsi π2)()( …(1)
Maka kita dapatkan sebuah integral, yang merupakan fungsi dari s, kita sebut F(s).
Jika kita transformasikan lagi F(s) menggunakan cara yang sama akan kita peroleh
kembali :
∫∞
∞−
= dxesFxf si πϖ2)()( …(2)
Dengan demikian, dapat kita simpulkan bahwa Transformasi Fourier merupakan
transformasi dari fungsi f(x) → F(s) dan sebaliknya F(s) → f(x), atau bisa dikatakan
bahwa f(x) merupakan Transformasi Fourier dari F(s) dan sebaliknya F(s) merupakan
8
Transformasi Fourier dari f(x). Sifat ini hanya berlaku apabila fungsi f(x) merupakan
fungsi genap, yaitu apabila f(x) = f(–x) karena apabila f(x) merupakan fungsi ganjil, yaitu
apabila f(x) = – f(–x), transformasi yang diulang akan menghasilkan f(–ω) dan bukan
fungsi asalnya.
Transformasi Fourier termasuk sebagai transformasi kontinu. Dalam perhitungan
sehari-hari biasanya digunakan batasan tertentu untuk masalah perhitungan yang
dilakukan, misalnya pengukuran suatu gelombang pada suatu waktu tertentu. Pada
perhitungan secara numerik, nilai-nilai yang akan terlibat dalam perhitungan juga
biasanya memiliki batasan yang bersifat diskrit. Demikian juga pada perhitungan yang
hendak diterapkan pada aplikasi ini, sehingga untuk memudahkan digunakanlah suatu
Transformasi Fourier Diskrit.
Untuk mengubah Transformasi Fourier yang bersifat Kontinu menjadi
Transformasi Fourier Diskrit bisa dilakukan dengan mengambil sampel dari suatu fungsi
waktu diskrit. Pertama-tama kita bentuk suatu fungsi waktu kontinu berupa suatu
gelombang setengah periode kosinus dengan aturan :
25.025.0
02cos
)(<<−
⎩⎨⎧
=t
lainnyauntukt
tvπ
Grafik fungsi dari fungsi tersebut dapat dilihat sebagai berikut :
t (mili-detik) v(t) –0.250 0 –0.150 0.588 –0.50 0.951 0.50 0.951 0.150 0.588 0.250 0
Gambar 2.1 Grafik fungsi kontinu
9
Dari nilai-nilai yang dihasilkan fungsi v(t), kita ambil sampel dengan interval
0.100, seperti yang terlihat pada tabel. Dari sampel tersebut kitakita bentuk lagi suatu
fungsi waktu diskrit f(τ) dengan dengan τ merupakan sampel waktu diskrit yang mewakili
waktu t. Jika interval antar sampel adalah T, jumlah sampel adalah N dan sampel awal
diperoleh pada saat t = t0, maka fungsi f(τ) bisa kita definisikan :
f(τ) = v(t0 + τT), τ = 0, 1, 2, …, N – 1
Perubahan dari fungsi kontinu ke fungsi diskrit dapat terlihat sebagai berikut.
τ f(τ) 0 0 1 0.588 2 0.951 3 0.951 4 0.588 5 0
Gambar 2.2 Grafik fungsi diskrit
Terlihat bahwa pada fungsi diskrit, hasil fungsi f(τ) diperoleh sesuai dengan nilai τ,
sementara pada fungsi kontinu, nilai dari fungsi v(t) terdapat sepanjang grafik fungsi
kosinus yang tergambar. Dengan menggunakan persamaan Transformasi Fourier pada
nomor (1), dan mengganti s dengan frekuensi v/N kita dapatkan :
( )∫∞
∞−
−= ττ τπ defvF Nvi /2)()( …(3)
Karena f(τ) terletak antara interval τ = 0 sampai τ = N–1, maka Transformasi (3) dapat
kita ubah menjadi Transformasi Fourier Diskrit (4) dan (5) sebagai inversnya :
( ) ( )∑−
=
−=1
0
/21)(N
NviefN
vFτ
τπτ …(4)
10
( ) ( )∑−
=
=1
0
/2)(N
v
NvievFf τπτ …(5)
[Bracewell, 2000]
2.1.2 Transformasi Kosinus
Transformasi Kosinus, dari suatu fungsi f(x) untuk s positif dapat didefinisikan
sebagai :
( )∫∞
=0
2cos2)( dxsxxfsFc π …(6)
Sementara, inversnya adalah :
( )∫∞
=0
2cos2)( dssxsFxf c π …(7)
Untuk diaplikasikan pada suatu blok pixel yang sudah memiliki ukuran tertentu,
akan lebih baik jika digunakan fungsi Transformasi Kosinus yang Diskrit. Untuk
memperoleh Transformasi Kosinus Diskrit, bisa dilakukan dengan cara yang sama untuk
memperoleh Transformasi Fourier Diskrit. Berdasarkan itu kita dapat mengubah
persamaan (6) menjadi :
( )∑−
=⎥⎦⎤
⎢⎣⎡ +
=1
0 2)12(cos)()(
N
c NvfvvF
τ
τπτα …(8)
untuk nilai v = 0, 1, 2, …, N–1. Demikian pula, inversnya bisa kita ubah dari persamaan
(7) menjadi :
( )∑−
=⎥⎦⎤
⎢⎣⎡ +
=1
0 2)12(cos)()(
N
vc N
vvFvf τπατ …(9)
Nilai dari α(v) adalah :
11
⎪⎪⎩
⎪⎪⎨
⎧
≠
==
02
01
)(vuntuk
N
vuntukNvα
Dari persamaan (8), apabila v = 0 maka ( )∑−
=
==1
0
1)0(N
c fN
vFτ
τ . Hasil dari
koefisien transformasi pertama (v = 0) ini merupakan nilai rata-rata dari seluruh sampel.
Umumnya nilai ini dikenal sebagai DC Coefficient, sementara nilai hasil transformasi
dengan nilai v lain biasanya dikenal dengan AC Coefficient. Persamaan Transformasi
Kosinus Diskrit pada persamaan (8) dan inversnya pada persamaan (10) dikenal juga
sebagai Transformasi Kosinus Diskrit Dimensi-1. Untuk diterapkan pada image yang dua
dimensi, digunakan Transformasi Kosinus Diskrit Dimensi-2. Untuk mendapatkan
Transformasi Kosinus Diskrit Dimensi-2 ini bisa dilakukan dengan melakukan
perhitungan Transformasi Kosinus Diskrit Dimensi-1 dua kali berurutan, hingga
diperoleh :
( ) ⎥⎦⎤
⎢⎣⎡ +
⋅⎥⎦⎤
⎢⎣⎡ +
⋅= ∑∑−
=
−
= Nvy
NuxyxfvuvuF
N
x
N
yc 2
)12(cos2
)12(cos),()()(,1
0
1
0
ππαα
Dengan menggunakan prinsip yang sama, inversnya adalah :
( ) ⎥⎦⎤
⎢⎣⎡ +
⋅⎥⎦⎤
⎢⎣⎡ +
= ∑∑−
=
−
= Nvy
NuxvuFvuyxf
N
u
N
vc 2
)12(cos2
)12(cos),()()(,1
0
1
0
ππαα
[Bracewell, 2000 & Khayam, 2003]
2.2 Perancangan Software
Software atau piranti lunak sangat berperan dalam masyarakat dewasa ini. Karena
perannya yang sangat banyak dan beragam, software dan ilmu pengolah software terus
12
mengalami perkembangan. Tetapi, apakah software itu? Menurut Pressman (2001),
software tidak memiliki satu pengertian yang pasti. Beberapa pengertian Software antara
lain :
1. Instruksi-instruksi atau perintah-perintah komputer yang, saat dijalankan akan
menghasilkan fungsi-fungsi yang diharapkan.
2. Struktur data yang memungkinkan program untuk memanipulasi informasi
dengan baik.
3. Dokumen yang menjelaskan cara operasi dan cara penggunaan program.
Selain ketiga definisi diatas, masih banyak lagi definisi-definisi lain yang bisa digunakan
untuk menjelaskan apa itu software, sesuai dengan bidang-bidang dimana software
diimplementasikan.
Sama seperti definisi software yang bisa berbeda-beda, sesuai dengan dimana
software tersebut diimplementasikan, Software Engineering atau rekayasa piranti lunak
juga memiliki definisi yang berbeda-beda. Beberapa definisi yang diberikan Pressman
(2001) antara lain :
1. Penggunaan dan pemanfaatan dari prinsip-prinsip teknik, dalam upaya untuk
memperoleh software yang ekonomis namun dapat diandalkan dan bekerja secara
efisien pada mesin nyata.
2. Pendekatan secara sistematik, disiplin dan bertanggung jawab atas proses
pengembangan, operasi, dan pemeliharaan dari sebuah software.
Perancangan atau rekayasa merupakan analisis, desain, pembuatan, verifikasi dan
manajemen dari kumpulan objek yang bersifat teknis. Tanpa memandang obyek yang
13
hendak direkayasa, pertanyaan-pertanyaan berikut haruslah senantiasa diperhatikan dan
dipecahkan :
• Masalah apa yang hendak dipecahkan?
• Karakteristik obyek apa yang digunakan untuk memecahkan masalah tersebut?
• Bagaimana obyek dan solusi dari masalah akan dapat direalisasikan?
• Bagaimana obyek tersebut akan dibentuk?
• Pendekatan apa yang akan digunakan untuk mendeteksi error yang mungkin
muncul dalam desain dan pembentukan obyek?
• Bagaimana dukungan terhadap obyek dalam jangka panjang, sewaktu koreksi,
adaptasi, dan pengembangan diminta oleh pengguna obyek?
Dengan memperhatikan hal-hal diatas, secara umum rekayasa software dapat
dibagi atas tiga fase :
• Fase definisi akan mendefinisikan apa-apa saja yang hendak dicapai dengan
pengembangan software ini, seperti masalah yang hendak diselesaikan, informasi
apa saja yang akan diterima atau diproses, bagaimana kinerja atau proses software
yang diharapkan, user interface apa yang diinginkan dan seterusnya.
• Fase pengembangan akan memfokuskan pada bagaimana hal-hal yang telah
didefinisikan pada fase definisi dapat dicapai, seperti bagaimana data hendak
disusun, bagaimana fungsi-fungsi akan diimplementasikan, bagaimana interface
akan dibentuk, bagaimana menyusun semuanya menjadi sebuah program,
bagaimana cara menguji program itu dan seterusnya.
• Fase pendukung akan memfokuskan pada perubahan-perubahan pada software
yang dihasilkan pada fase pengembangan, seperti koreksi error, adaptasi,
14
pengembangan dan pencegahan yang mungkin dibutuhkan sesuai dengan
lingkungan kerja dari software.
Dengan mengikuti fase-fase diatas, perancangan software memiliki beberapa
model kerja yang dapat diterapkan untuk membantu dalam proses perancangan sebuah
software. Diantaranya adalah Model Linier (Linier Sequential Model), Model Prototipe
(Prototyping Model), Model RAD (Rapid Application Development) dan lainnya. Dalam
merancang program aplikasi yang digunakan dalam penelitian ini, model perancangan
yang digunakan adalah Model Linier.
Model Linier atau yang dikenal juga dengan Model Air Terjun (Waterfall Model)
merupakan suatu tahapan-tahapan metode untuk merancang sebuah program aplikasi
software. Model ini disebut juga dengan Model Air Terjun, karena tahapan yang
dilakukan bertingkat-tingkat, sehingga mirip dengan air terjun. Perancangan dengan
model ini dilakukan dalam 6 tahapan, yaitu perencanaan, analisis, desain (fase defisini),
coding, pengujian (fase pengembangan) dan maintenance (fase pendukung). [Pressman,
2001 & Sommerville, 1996]
2.3 Grafis Komputer
Prinsip pengaman yang hendak diterapkan melalui penelitian ini adalah dengan
cara menyisipkan suatu file pesan kedalam sebuah file image komputer. Image yang
tersimpan dalam komputer memiliki dua format. Ada yang dikenal sebagai grafik vektor
(vector image), yaitu file image yang tersusun melalui gabungan antara bentuk-bentuk
vektor geometris, seperti kurva, poligon dan lain sebagainya. Kemudian ada juga yang
dikenal sebagai grafik raster (raster image), yaitu yang penyusunnya adalah berupa pixel-
15
pixel. Pada prinsipnya suatu tampilan gambar pada grafik raster merupakan gabungan
antara banyak pixel-pixel berbentuk kotak yang memiliki kecenderungan warna yang
berbeda satu sama lain, sehingga menyusun suatu image yang terlihat dilayar monitor,
seperti pada contoh dibawah ini.
Gambar 2.3 Pixel yang menyusun suatu gambar.
Tiap-tiap pixel berisi suatu nilai yang menentukan tingkat warna dari pixel
tersebut. Untuk gambar hitam-putih, satu pixel hanya akan bernilai 0 yang berarti putih
dan 1 yang berarti hitam. Sementara untuk gambar berwarna, satu pixel akan berisi suatu
nilai yang merupakan gabungan dari warna-warna Merah-Hijau-Biru. Tiap-tiap pixel
memiliki nilai yang berbeda-beda, tetapi batasan nilai dalam pixel berbeda yang
menyusun suatu image akan sama. Misalnya dalam sebuah image dengan kedalaman
warna 24-bit, berarti tiap-tiap pixel dalam image tersebut dapat memiliki warna sebanyak
24-bit. Ini berarti tiap pixel dapat memiliki 224 atau 16.777.216 warna. Tiap-tiap delapan
bit (tiap byte) dalam pixel akan mewakili intensitas dari warna merah, hijau dan biru
dalam suatu pixel. Dengan mengalami perbedaan pada salah satu bit saja, warna pixel
sudah berbeda. Walau demikian, perubahan satu bit warna pada suatu pixel tidak dapat
tertangkap oleh mata manusia.
16
Ukuran suatu file yang besar merupakan kendala yang ditemui saat file tersebut
hendak disimpan dalam suatu media penyimpanan atau saat file tersebut hendak
ditransfer atau dikirimkan melalui jaringan internet. Untuk mengatasinya, umumnya
suatu file akan terlebih dahulu dikompres, sehingga akan berukuran lebih kecil. Untuk
menangani file image, kompresi dilakukan dengan sedikit mengorbankan tampilan image
tersebut, yaitu dengan mengurangi bit-bit pada pixel image. Kompresi yang dilakukan
pada image memanfaatkan ketidakmampuan mata manusia untuk menangkap perubahan
warna sedikit pada suatu pixel dalam image.
Kompresi image menggunakan beberapa metode transformasi matematis.
Transformasi yang paling banyak digunakan adalah Transformasi Kosinus Diskrit.
Melalui Transformasi Kosinus Diskrit ini, suatu image akan terkompresi dengan cukup
baik, tanpa mengurangi tampilan luar image tersebut. Contohnya bisa kita lihat berikut
ini:
Gambar 2.4 Image macan sebelum Gambar 2.5 Image macan setelah
dikompresi (190 kByte). Dikompresi (75 kByte)
Image pada gambar 2.5 telah mengalami kompresi sebesar 75%, dari sebelumnya
190 kilobyte (Gambar 2.4) menjadi 18 kilobyte. Perubahan yang terjadi pada ukuran file
17
cukup besar, tetapi jika dilihat dengan mata telanjang tidak tampak adanya perubahan
antara image pada Gambar 2.4 dengan image pada Gambar 2.5. Kompresi yang terjadi
bisa terlihat apabila kedua image diperbesar.
Gambar 2.6 Mata harimau sebelum (kiri) dan setelah (kanan) kompresi
Melalui perbesaran, dapat terlihat bahwa kualitas image sebelah kanan yang telah
mengalami kompresi pada Gambar 2.4 sudah tidak sebaik kualitas pada image sebelah
kiri yang belum dikompresi. Transformasi Kosinus Diskrit efektif untuk digunakan pada
image yang memiliki derajat warna yang tinggi dan mendekati atau menyamai derajat
warna dari objek aslinya, misalnya seperti sebuah foto.
Image Asli
Blok-blokPixelImageAsli
FungsiTransformasi
KuantisasiEntrophyEncoding
ImageTerkompresi
TabelKuantiasasi
TabelEntropi
Gambar 2.7 Skema kerja kompresi menggunakan Transformasi Kosinus Diskrit
Kompresi ini bekerja dengan memanfaatkan kecenderungan perulangan
(redundansi) yang terjadi pada pixel-pixel penyusun suatu image. Dengan kata lain,
kompresi ini akan mengurangi entropi atau jumlah rata-rata bit yang diperlukan untuk
18
merepresentasikan suatu image, sehingga ukuran image akan menjadi lebih kecil, tanpa
terjadi perubahan yang berarti secara visual. Transformasi Kosinus Diskrit akan berperan
dalam proses dekorelasi, yaitu pengurangan redundansi antar-pixel (interpixel
redundancy). Tahapan kuantisasi memanfaatkan ketidakmampuan mata manusia dalam
menangkap sebagian informasi visual yang terdapat dalam suatu image. Informasi yang
tidak mampu ditangkap mata ini bisa dianggap redundan (psychovisual redundancy) dan
dapat dibuang begitu saja, tanpa menimbulkan efek secara visual.
Kemudian tahapan selanjutnya adalah yang disebut dengan entrophy encoding.
Pada tahapan ini, informasi-informasi yang didapatkan dari tahapan sebelumnya
(Transformasi dan Kuantisasi) akan digunakan untuk melakukan kompresi pada image,
yaitu dengan mengurangi bit-bit pada image. Kompresi ini bekerja dengan membagi tiap-
tiap pixel dalam suatu image menjadi blok-blok. Tiap blok umumnya memiliki jumlah
pixel yang sama, misalnya pada gambar 2.4 diatas, bisa kita lihat bahwa pada gambar
mata sebelah kanan telah terbagi-bagi menjadi blok-blok berukuran 8x8 pixel (untuk
image 24-bit). Nilai dari pixel-pixel dalam suatu blok kemudian akan ditransformasi
menggunakan prinsip Transformasi Kosinus Diskrit 2 Dimensi, sehingga akan didapat
8x8 atau 64 nilai.
Manfaat dari dilakukannya Transformasi Kosinus Diskrit adalah untuk
memperoleh frekuensi pixel dari image yang hendak diproses. Dengan demikian,
kompresi tidak dilakukan berdasarkan sampel blok pixel langsung dari image asli,
melainkan menggunakan frekuensinya. Frekuensi yang tinggi, berarti sangat berpengaruh
pada image, sementara frekuensi yang rendah, berarti tidak terlalu berpengaruh pada
image. Dengan memperhatikan hal ini, maka kompresi yang baik bisa dilakukan.
19
Nilai koefisien ini kemudian akan dikuantisasi menggunakan suatu tabel
kuantisasi, sesuai dengan yang telah ditentukan sebelumnya, yaitu sesuai dengan
spesifikasi image yang hendak dikompresi, sesuai dengan fungsi atau tujuan dari image
atau sesuai dengan kualitas hasil kompresi yang diharapkan. Setelah kuantisasi, 64 nilai
Koefisien yang telah terkuantisasi akan dikompresi dengan mengurangi entropi pada
image tersebut menggunakan entrophy encoding. Setelah selesai dengan satu blok pixel,
akan dikerjakan blok pixel berikutnya. Demikian seterusnya sampai seluruh pixel dalam
image selesai dikompresi. Setelah seluruh blok telah mengalami pengkodean, maka
image terkompresi sudah kita dapatkan.
2.4 Steganografi
Steganografi adalah suatu metode untuk menyamarkan pesan atau informasi
dengan cara “menyisipkan” (embedding) sebuah pesan kedalam suatu pesan lain atau
suatu benda, sehingga orang yang tidak berkepentingan tidak mengetahui bahwa ada
suatu pesan rahasia yang beredar antara pengirim dan penerima. Berasal dari bahasa
Yunani, stegos yang berarti tertutup dan graphein yang berarti tulisan, steganografi, sama
seperti kriptografi, juga telah berkembang sejak lama. Mulai dari penggunaan batu tulis
yang tertutup lilin, pada zaman Yunani kuno, sampai pada penggunaan “tinta tak terlihat”
pada zaman Perang Dunia II oleh tentara Jerman, steganografi juga banyak berperan pada
bidang militer.
Di masa modern, steganografi banyak digunakan untuk menyamarkan pesan atau
informasi yang disebarkan melalui jaringan informasi internet. Untuk steganografi
modern, dimana informasi beredar melalui internet, media yang populer dipakai untuk
20
menyamarkan pesan adalah dengan menyisipkan pesan tersebut pada sebuah image atau
file bergambar. Dengan terlebih dahulu menyisipkan pesan atau menyembunyikan pesan
didalam sebuah image, “penyadap” tidak mengetahui keberadaan pesan didalam image
tersebut. Maka dari itu, orang-orang mulai melirik peran steganografi sebagai teknik
untuk mengirimkan pesan secara aman melalui internet.
Steganografi dapat dibagi menjadi dua, berdasarkan pada tipe “penutup” pesan
yang digunakan, yaitu bisa berupa file teks, gambar atau suara. Steganografi linguistik
adalah apabila file “penutup” yang digunakan adalah teks, sementara Steganografi
teknikal adalah apabila file “penutup” yang digunakan adalah file selain teks.
Steganografi linguistik merupakan teknik steganografi yang paling awal digunakan,
sementara untuk zaman modern ini, umumnya steganografi lebih banyak berkutat dengan
upaya penyisipan bit-bit data berisi pesan kedalam suatu image atau file audio dan video.
“Penutup” yang dipilih untuk digunakan pada penelitian ini adalah image, mengingat
ukuran image yang relatif lebih kecil daripada file audio maupun video, sehingga jauh
lebih mudah dikirimkan melalui internet.
Gambar digital (digital image) umumnya tersimpan dalam bentuk file image 24-
bit atau 8-bit. Image 24-bit, seperti telah disebutkan diatas, memiliki kemungkinan
sebanyak 224 campuran warna. Pada kompresi Transformasi Kosinus Diskrit dimana kita
bisa memperoleh image yang terkompresi tanpa terlalu mengubah tampilan image
tersebut dari luar, maka teknik kompresi tersebut dapat dimanipulasi sehingga seseorang
dapat menyisipkan bit-bit data berisi pesan kedalam image tanpa bisa diketahui atau
terdeteksi oleh orang lain.
21
Pengirim menyembunyikanpesan dalam sebuah gambarsebelum dikirimkan
Suatu Metode Steganografi
Seorang penyadap tidak mengetahui bahwa terdapat pesan didalam gambar
Suatu Metode Steganografi
Penerima mengambil kembali pesan yang tersembunyidalam gambar
Gambar 2.8 Skema kerja Steganografi [Berna, 2004]
2.5 Algoritma Outguess
Algoritma Outguess merupakan salah satu algoritma steganografi yang
memanfaatkan prinsip kompresi Transformasi Kosinus Diskrit pada suatu image.
Algoritma ini pertama kali dicetuskan oleh Niels Provos. Melalui Transformasi Kosinus
Diskrit, suatu image akan dibagi-bagi menjadi kelompok-kelompok pixel, umumnya
berukuran 8x8. Pada tiap-tiap kelompok ini, akan dilakukan Transformasi Kosinus
Diskrit sesuai dengan suatu bilangan tertentu, pada seluruh blok pixel. Dengan demikian,
22
image akan terkompresi dan tidak terlihat dengan mata telanjang. Prinsip inilah yang
dipakai oleh algoritma Outguess, yaitu dengan memanfaatkan nilai yang dihasilkan
Transformasi Kosinus Diskrit pada kompresi JPEG sebagai sarana untuk menyisipkan
bit-bit file.
Cara kerja algoritma Outguess bisa dijelaskan sebagai berikut:
1. Pertama-tama kita ukur besar file pesan, serta dimensi dari file cover image,
apakah cover image. Lalu kita bandingkan antara ukuran file pesan dengan ukuran
cover image, apakah file pesan tersebut dapat kita sisipkan dalam cover image.
2. Bit-bit file pesan akan disimpan, begitu juga dengan pixel-pixel dalam cover
image yang akan disimpan dalam bentuk array dua dimensi.
3. Langkah selanjutnya adalah menghasilkan suatu bilangan bulat pseudo-random.
4. Dengan menggunakan bilangan pseudo-random tersebut sebagai dasar, akan
ditentukan lokasi pixel yang bersesuaian dengan bilangan pseudo-random yang
dihasilkan.
5. Cek posisi pixel yang pernah didapatkan. Bandingkan apakah posisi pixel yang
sekarang didapat sudah pernah diambil. Jika sudah, kembali ke langkah 3. Jika
belum, lanjutkan ke langkah 6.
6. Setelah menentukan posisi pixel yang sesuai, akan dilakukan penghitungan
terhadap DC Coefficient dari pixel tersebut.
7. Jika DC Coefficient dari pixel yang dihitung bukan 0 atau 1, maka bit-bit file
pesan akan disisipkan kedalam least significant bit dari pixel tersebut. Sementara
untuk koefisien TKD bernilai 0 dan 1, tidak akan dilakukan penyisipan.
8. Posisi yang dihasilkan oleh bilangan pseudo-random tadi akan disimpan.
23
9. Apabila bit file pesan yang hendak disisipkan masih ada, lakukan kembali
langkah 2. Jika telah habis, lanjutkan ke langkah 10.
10. Seluruh posisi penyisipan bit yang telah disimpan pada langkah 8 akan disisipkan
pada bagian awal dari bit-bit stego-image yang belum mengandung bit data.
11. Pixel-pixel stego-image yang tersimpan dalam bentuk array bit-bit akan disusun
kembali berdasarkan ukuran baris dan kolom dari cover image, sehingga kembali
membentuk image, dimana didalam bit-bit pixelnya telah tersisip suatu file pesan.
[Provos, 2001 & Berna, 2004]