SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
FIRMAN KURNIA PRATAMA
10108799
PROGRAM STUDI S1
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
By :
Firman Kurnia Pratama 10108799
Steganography is one way to hide data / secret message into a medium that does not contain anything. Steganography can be implemented on a variety of media, ie digital image, audio and video.
The method can be used on the steganography is Discrete Cosine Transformation (DCT). DCT function is a technique used to transform data from spatial domain to frequency domain by calculating the value of real constituent of the transformation. Other methods are then developed a Redundant Pattern Encoding. Methods Redundant Pattern Encoding of this insert redundancy into the information that would be hidden and then spread the message to the entire image.
These final two methods are applied to a digital image. Then the results were analyzed to compare the advantages and disadvantages of each method by comparing the size of files that can be accommodated, the size of the image before and after the inserted message and image quality before and after the inserted message.
From the test results known using steganography Discrete Cosine Transformation (DCT) methods, a media placeholder message (image carrier) can accommodate the text / message more than Redundant Pattern Encoding method, and by using DCT, the size of image files that have been inserted text / message smaller than the Redundant Pattern Encoding method. In addition the image quality is seen by calculating the value of PSNR (Peak Signal to Noise Ratio) by using Discrete Cosine Transformation (DCT) is better quality when compared with Redundant Pattern Encoding method.
i Oleh :
Firman Kurnia Pratama 10108799
Steganografi merupakan salah satu cara untuk menyembunyikan data/pesan rahasia kedalam suatu media yang tidak mengandung apa-apa. Steganografi dapat di implementasikan pada berbagai macam media yaitu citra digital, audio dan video.
Metoda yang dapat digunakan pada steganografi yaitu Discrete Cosine
Transformation (DCT). Fungsi DCT yaitu suatu teknik yang digunakan untuk merubah data dari domain spasial ke domain frekuensi pembentuknya dengan memperhitungkan nilai real dari hasil transformasinya. Metoda lain yang
kemudian dikembangkan adalah Redundant Pattern Encoding. Metoda Redundant
Pattern Encoding ini memasukkan redundansi ke dalam informasi yang hendak disembunyikan dan kemudian menyebarkan pesan itu ke keseluruhan gambar.
Tugas Akhir ini menerapkan kedua metoda tersebut pada citra digital. Kemudian hasilnya dianalisa untuk membandingkan kelemahan dan kelebihan masing-masing metoda dengan cara membandingkan ukuran file yang mampu ditampung, ukuran citra sebelum dan sesudah disisipi pesan dan melihat kualitas citra.
Dari hasil pengujian diketahui steganografi dengan menggunakan metoda
Discrete Cosine Transformation (DCT), media penampung pesan (carrier image)
dapat menampung teks/pesan lebih banyak dibandingkan dengan metoda
Redundant Pattern Encoding, dan dengan menggunakan metoda DCT ukuran file citra yang telah disisipi teks/pesan lebih kecil dibandingkan dengan metoda
Redundant Pattern Encoding. Selain itu kualitas citra yang dilihat berdasarkan
kalkulasi nilai PSNR(Peak Signal to Noise Ratio) dengan menggunakan metoda
Discrete Cosine Transformation (DCT) menghasilkan kualitas citra yang lebih
baik bila dibandingkan dengan metoda Redundant Pattern Encoding.
v
Halaman
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR TABEL ... ix
DAFTAR GAMBAR ... xi
DAFTAR PERSAMAAN... xii
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Identifikasi Masalah ... 2
1.3 Maksud dan Tujuan ... 3
1.4 Batasan Masalah... 4
1.5 Metodologi Penelitian ... 4
1.6 Sistematika Penulisan ... 6
BAB II TINAJUAN PUSTAKA ... 8
2.1 Keamanan Data atau Informasi ... 8
2.2 Kriptografi ... 9
2.2.1 Algoritma Sandi ... 11
2.2.2 Algoritma RSA (Rivert Shamir Adelman) ... 14
vi
2.4.1 Bitmap .... ... 27
2.4.2 Joint Photographic Group Experts (JPEG) ... 29
2.4.3 Graphics Interchange Format (GIF) ... 30
2.4.4 Portable Network Graphics (PNG) ... 31
2.5 Pengukuran Error Citra ... 33
2.6 .NET Platform ... ... 33
2.7. .NET Framework ... 33
2.7.1 Common Language Runtime (CLR) ... 34
2.7.2 Framework Class Library (FCL) ... 35
2.7.3 C# ... ... 35
2.8 Model Pengembangan Perangkat Lunak ... 36
2.8.1 RAD (Rapid Application Development) ... 38
2.9 Tinjauan Perangkat Lunak ... 41
2.9.1 Microsoft Windows XP ... 41
2.9.2 Microsoft Visual C# 2008 ... 42
2.9.3 Keuntungan Visual C# ... 43
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 44
3.1 Analisis Sistem ... 44
3.2 Analisis Masalah ... 44
vii
3.3 Analisis Non Fungsional ... 60
3.3.1 Analisis Kebutuhan Perangkat Lunak ... 60
3.3.1 Analisis Kebutuhan Perangkat Keras ... 61
3.4 Analisis Fungsional ... 61
3.4.1 Unified Modeling Language (UML) ... 62
3.4.1.1 Use Case Diagram ... 62
3.4.1.2 Sequence Diagram ... 64
3.4.1.3 Skenario Use Case ... 65
3.4.1.4 Activity Diagram ... 75
3.4.1.5 Class Diagram ... 78
3.5 Perancangan Prosedural ... 76
3.5.1 Flowchart Kriptografi RSA ... 79
3.5.2 Flowchart DCT (Discrete Cosine Transformation) .... 81
3.5.3 Flowchart Redundant Pattern Encoding ... 83
3.6 Perancangan Struktur Menu ... 87
3.7 Perancangan Antar Muka ... 88
3.7.1 Perancangan Form Main Menu ... 89
3.7.2 Perancangan Form DCT ... 92
3.7.3 Perancangan Form Redundant Pattern Encoding ... 97
viii
4.3 Implementasi Antar Muka ... 105
4.4 Pengujian Program ... 109
4.4.1 Pengujian Program Terhadap Ukuran Citra ... 109
4.4.2 Pengujian Program Terhadap Kualitas Citra ... 114
BAB V KESIMPULAN DAN SARAN ... 119
5.1 Kesimpulan ... 119
5.2 Saran ... 120
xi
2. Gambar 2.2 Gambar dengan 15x16 grid ... 20
3. Gambar 2.3 Tool Skema Penyisipan Pesan Spread Spectrum ... 22
4. Gambar 2.4 Skema Ekstraksi Pesan Spread Spectrum ... 22
5. Gambar 2.5 Diagram Transformasi DCT... 23
6. Gambar 2.6 Proses Penyisipan Pesan DCT... 24
7. Gambar 2.7 Proses pembacaan pesan DCT ... 25
8. Gambar 2.8 Gambar berformat BMP atau Bitmap... 28
9. Gambar 2.9 Gambar berformat JPEG ... 29
10. Gambar 2.10 Gambar berformat GIF ... 31
11. Gambar 2.11 Gambar berformat PNG ... 32
12. Gambar 2.12 Arsitektur Framework .NET ... 34
13. Gambar 2.13 Model RAD ... 39
14. Gambar 2.14 Microsoft Windows XP ... 41
15. Gambar 2.15 Microsoft Visual C# 2008 ... 42
16. Gambar 3.1 Proses Penyisipan Pesan DCT... 54
17. Gambar 3.2 Transformasi DCT ... 55
18. Gambar 3.3 Proses Pembacaan Pesan DCT ... 57
19. Gambar 3.4 Proses Penyisipan Pesan Redundant ... 58
20. Gambar 3.5 Proses Pembacaan Pesan Redundant... 59
xii
25. Gambar 3.10 Sequence Diagram Ketik Pesan ... 69
26. Gambar 3.11 Sequence Diagram Encrypt Message ... 70
27. Gambar 3.12 Sequence Diagram Penyisipan Pesan DCT ... 71
28. Gambar 3.13 Sequence Diagram Penyisipan Pesan Redundant ... 72
29. Gambar 3.14 Sequence Diagram Baca Pesan DCT ... 73
30. Gambar 3.15 Sequence Diagram Baca Pesan Redundant ... 74
31. Gambar 3.16 Sequence Diagram Decrypt Message ... 75
32. Gambar 3.17 Activity Diagram Pilih Metoda ... 75
33. Gambar 3.18 Activity Diagram Load Image ... 76
34. Gambar 3.19 Activity Diagram Load Pesan ... 76
35. Gambar 3.20 Activity Diagram Ketik Pesan ... 76
36. Gambar 3.21 Activity Diagram Encrypt Message ... 76
37. Gambar 3.22 Activity Diagram Penyisipan Pesan ... 77
38. Gambar 3.23 Activity Diagram Baca Pesan ... 77
39. Gambar 3.24 Activity Diagram Decrypt Message ... 77
40. Gambar 3.25 Activity Diagram Aplikasi Steganografi ... 78
41. Gambar 3.26 Class Diagram... 79
42. Gambar 3.27 Flowchart Steganografi ... 80
43. Gambar 3.28 Flowchart Enkripsi Pesan Teknik RSA ... 81
xiii
48. Gambar 3.33 Flowchart Extract Pesan Redundant Pattern Encoding ... 86
49. Gambar 3.34 Rancangan Struktur Menu ... 87
50. Gambar 3.35 Perancangan Form Main Menu ... 92
51. Gambar 3.36 Perancangan Form DCT ... 97
52. Gambar 3.37 Rancangan Tampilan Form Redundant... 102
53. Gambar 3.38 Rancangan Tampilan Form About ... 103
54. Gambar 4.1 Antarmuka Form Main Menu ... 106
55. Gambar 4.2 Antarmuka Form DCT ... 107
56. Gambar 4.3 Antarmuka Form Redundant ... 108
57. Gambar 4.4 Antarmuka Form About ... 109
58. Gambar 4.5 Grafik Pengujian Ukuran Citra Format Bitmap (BMP) ... 110
59. Gambar 4.6 Grafik Pengujian Ukuran Citra Format JPG ... 111
60. Gambar 4.7 Grafik Pengujian Ukuran Citra Format PNG ... 112
61. Gambar 4.8 Grafik Pengujian Ukuran Citra Format GIF ... 113
62. Gambar 4.9 Grafik Pengujian Kualitas Citra Format Bitmap (BMP) ... 115
63. Gambar 4.10 Grafik Pengujian Ukuran Citra Format JPG ... 116
64. Gambar 4.11 Grafik Pengujian Ukuran Citra Format PNG ... 117
ix
2. Tabel 3.2 Skenario Use Case Load Image ... 66
3. Tabel 3.3 Skenario Use Case Load Pesan ... 67
4. Tabel 3.4 Skenario Use Case Ketik Pesan ... 68
5. Tabel 3.5 Skenario Use Case Encrypt Message ... 69
6. Tabel 3.6 Skenario Use Case Penyisipan Pesan ... 70
7. Tabel 3.7 Skenario Use Case Baca Pesan ... 72
8. Tabel 3.8 Skenario Use Case Decrypt Message ... 74
9. Tabel 3.9 Komponen MenuFile ... 90
10. Tabel 3.10 Komponen Label ... 90
11. Tabel 3.11 Komponen Menu Pilih Metoda ... 91
12. Tabel 3.12 Komponen Menu About ... 92
13. Tabel 3.13 Komponen Menu Strip ... 93
14. Tabel 3.14 Komponen SplitContainer ... 93
15. Tabel 3.15 Komponen Text Box ... 94
16. Tabel 3.16 Komponen Button ... 95
17. Tabel 3.17 Komponen Label ... 96
18. Tabel 3.18 Komponen Picture Box ... 96
19. Tabel 3.19 Komponen Menu Strip ... 97
20. Tabel 3.20 Komponen SplitContainer ... 98
x
25. Tabel 3.25 Komponen Form About ... 102
26. Tabel 4.1 Spesifikasi Komputer ... 104
27. Tabel 4.2 Spesifikasi Komputer ... 105
28. Tabel 4.3 Pengujian Steganografi Terhadap Ukuran Citra Menggunakan Citra BMP... ... 110
29. Tabel 4.4 Pengujian Steganografi Terhadap Ukuran Citra Menggunakan Citra JPG... ... 111
30. Tabel 4.5 Pengujian Steganografi Terhadap Ukuran Citra Menggunakan Citra PNG... ... 112
31. Tabel 4.6 Pengujian Steganografi Terhadap Ukuran Citra Menggunakan Citra GIF... ... 113
32. Tabel 4.7 Pengujian Steganografi Terhadap Kualitas Citra Menggunakan Citra BMP... ... 114
33. Tabel 4.8 Pengujian Steganografi Terhadap Kualitas Citra Menggunakan Citra JPG... ... 115
34. Tabel 4.9 Pengujian Steganografi Terhadap Kualitas Citra Menggunakan Citra PNG... ... 116
1
1.1. Latar Belakang Masalah
Teknologi informasi dan komunikasi berkembang dengan pesat dan
memberikan pengaruh besar terhadap kehidupan manusia. Sebagai contoh
perkembangan jaringan internet yang memungkinkan orang untuk saling bertukar
data/pesan melalui jaringan internet tersebut. Seiring dengan perkembangan
teknologi, kejahatan teknologi komunikasi dan informasi juga turut berkembang,
seperti yang kita dengar adalah hacker, cracker, carder, phreaker dan sebagainya.
Seringkali orang yang hendak mengirim pesan kepada orang lain, tidak
ingin pesannya diketahui oleh orang yang tidak berhak mengetahuinya. Dengan
berkembangnya ilmu pengetahuan, terutama di bidang informatika, penerapan
teknik-teknik pengamanan data yang sudah pernah dipakai jaman dahulu bisa
menjadi alternatife dalam pengamanan komunikasi data melalui jaringan internet.
Sebagai contoh adalah kriptografi dan steganografi.
Steganografi berbeda dengan kriptografi, kelebihan steganografi daripada
kriptografi adalah pesan-pesannya tidak menarik perhatian orang lain, karena
pesan-pesan tersebut dimasukan ke sebuah media penampung, sedangkan
kriptografi hanya mengenkripsi pesan tersebut yang bisa saja menimbulkan
kecurigaan orang lain. Salah satu media penampung yang digunakan dalam
pengiriman pesan adalah dengan menumpangkannya ke sebuah citra digital.
dimanipulasi untuk menyimpan informasi yang akan digunakan sebagai salah
satu pengimplementasian teknik steganografi. Selain itu indera penglihatan
manusia memiliki keterbatasan sehingga dengan keterbatasan tersebut manusia
sulit membedakan citra digital yang asli dengan citra digital yang telah disisipi
pesan rahasia. Ada banyak teknik dan metode yang digunakan dalam
menumpangkan sebuah pesan kepada citra, namun yang akan dibahas oleh penulis
hanya metode Discrite Cosine Transformation (DCT) dan Redundant Pattern
Encoding, sedangkan untuk kriptografinya penulis akan menggunakan teknik
Rivert Shamir Adelman (RSA). Discrete Cosine Transformation (DCT) adalah
suatu teknik yang digunakan untuk melakukan konversi sinyal kedalam
komponen frekuensi pembentuknya dengan memperhitungkan nilai real dari hasil
transformasinya sedangkan Redundant Pattern Encoding adalah untuk
menggambar pesan kecil pada kebanyakan gambar.
Berdasarkan uraian latar belakang di atas penulis mempunyai suatu
keinginan untuk mengetahui kelemahan dan kelebihan dari masing-masing
metode yang digunakan sehingga dalam penulisan tugas akhir ini penulis
mengangkat judul “Analisis Perbandingan Metoda Redundant Pattern
Encoding dan Discrete Cosine Transformation (DCT) Sebagai Metoda Steganografi Pada Citra Digital”.
I.2. Identifikasi Masalah
Berdasarkan uraian latar belakang diatas maka dirumuskan
membandingkan metode Redundant Pattern Encoding dan Discrete Cosine
Transformation (DCT) Sebagai metoda steganografi pada citra digital.
I.3. Maksud dan Tujuan
Maksud dari penulisan tugas akhir ini adalah membangun aplikasi
steganografi untuk membandingkan metoda Redundant Pattern Encoding dengan
Discrete Cosine Transformation (DCT).
Sedangkan tujuan yang ingin dicapai adalah :
1. Mengimplementasikan metoda Redundant Pattern Encoding dan
Discrete Cosine Transformation (DCT) sebagai metoda steganografi
pada berkas citra digital.
2. Mengetahui kelebihan dan kelemahan dari masing-masing metoda.
3. Membandingkan ukuran file yang mampu ditampung, ukuran citra
sebelum dan sesudah disisipi pesan dan kualitas citra sebelum dan
sesudah disisipi pesan pada metoda Redundant Pattern Encoding dan
Discrete Cosine Transformation (DCT) sebagai metoda steganografi
pada berkas citra digital.
4. Menghasilkan rekomendasi jenis aplikasi steganografi yang dapat
memberikan keamanan pada suatu pesan rahasia dengan
menyembunyikannya kedalam citra dalam bentuk pesan yang sudah di
enkripsi dengan menggunakan teknik kriptografi Rivert Shamir Adelman
I.4. Batasan Masalah
Batasan masalah bertujuan untuk memudahkan perancangan dan
menghindari meluasnya permasalahan, maka penulis membuat batasan yaitu :
1. Media penampung pesan yang digunakan hanya berupa citra yang
memiliki format .bmp, .png, .gif, .jpg.
2. Pesan yang dapat disembunyikan hanya berupa teks ataupun
mengambil dari file teks yang berformat .txt.
3. Penulis hanya membahas mengenai pembuatan aplikasi steganografi
dengan menggunakan bahasa Visual Studio C# 2008.
4. Pengembangan perangkat lunak menggunakan metode berorientasi
objek dan pemodelannya menggunakan UML.
5. Aplikasi yang dibangun akan digunakan pada sistem operasi berbasis
windows.
I.5. Metodologi Penelitian
Metodologi yang dilakukan dalam penelitian ini adalah:
a. Tahapan Pengumpulan Data
1. Studi Kepustakaan, yaitu mempelajari literature, konsep serta
sumber-sumber dari buku-buku ataupun mengakses situs-situs yang
berkaitan dengan materi yang dibahas.
2. Diskusi dan konsultasi/wawancara, yaitu metode yang dilakukan
memberikan sebuah masukan atau saran dalam pembuatan aplikasi
steganografi ini.
b. Tahapan Pembangunan Aplikasi
Model yang digunakan untuk proses pembangunan aplikasi ini adalah
model waterfall.
Gambar 1.1 Metodologi Waterfall Model
Tahapan-tahapan dari model waterfall ini adalah sebagai berikut:
1. Analisis
Pada tahap ini, mengumpulkan kebutuhan secara lengkap kemudian
di analisis dan didefinisikan kebutuhan yang harus dipenuhi oleh
program yang akan dibangun.
2. Design
Pada tahap desain akan dilakukan perancangan antarmuka
program.
Tahap menterjemahkan perancangan kedalam bentuk bahasa yang
dapat dimengerti oleh komputer.
4. Testing
Proses untuk memastikan bahwa semua pernyataan sudah diuji
yang selanjutnya akan mengarahkan penguji untuk menemukan
kesalahan-kesalahan yang mungkin terjadi.
5. Maintenance
Pada tahap pemeliharaan akan dilakukan penyesuaian apabila
perangkat lunak mengalami perubahan seperti lingkungan eksternal
yang berubah.
1.6. Sistematika Penulisan
Sistematika dari penulisan tugas akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN
Bab ini berisi mengenai latar belakang masalah, identifikasi masalah,
maksud dan tujuan, batasan masalah, metodologi penelitian, dan
sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Menjelaskan tentang teori-teori dasar dari program yang digunakan untuk
pembuatan program aplikasi serta teori-teori lain yang mendukung dalam
pembuatan program aplikasi ini.
Menjelaskan tentang analisis dari program yang dibuat, serta perancangan
program yang menjelaskan rancangan program dan alur proses program.
BAB IV IMPLEMENTASI SISTEM
Bab ini menjelaskan bagaimana mengimplementasikan sistem ke dalam
program dan pengujian dari sistem yang telah diimplementasikan.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan hasil implementasi dan uji coba serta saran-saran
8 2.1 Keamanan Data atau Informasi
Masalah keamanan data merupakan salah satu aspek terpenting pada
sebuah sistem informasi. Masalah keamanan data seringkali tidak begitu
dipedulikan bahkan ditiadakan. Informasi menentukan hampir setiap elemen
dalam kehidupan manusia. Hanya sedikit hal yang bisa dilakukan di zaman
modern tanpa melibatkan pengumpulan, penukaran, pembuatan atau pengaksesan
data atau informasi. Informasi saat ini sudah menjadi sebuah komoditi yang
sangat penting, bahkan ada yang mengatakan bahwa kita sudah berada disebuah
information-based society. Kemampuan untuk mengakses dan menyediakan
informasi secara cepat dan akurat menjadi sangat esensial bagi sebuah organisasi,
baik yang berupa organisasi komersial(perusahaan), perguruan tinggi, lembaga
pemerintah maupun individual(pribadi). Hal tersbut dimungkinkan dengan
perkembangan yang pesat dibidang teknologi computer dan telekomunikasi, yang
juga disebut dengan end user computing. Hal yang mendorong end user
computing adalah meningkatnya pengetahuan manusia tentang computer,
banyaknya jasa informasi yang tersedia, perangkat keras yang murah dan
banyaknya perangkat lunak yang tersedia di pasaran.
Kemajuan sistem informasi memiliki banyak keuntungan dalam kehidupan
manusia. Akan tetapi, aspek negatifnya juga banyak terjadi, seperti kejahatan
lainnya. Jatunya informasi ke pihak lain dapat menimbulkan kerugian bagi
pemilik informasi tersebut. Untuk itu diperlukan adanya suatu cara/teknik untuk
mengamankan data atau informasi. Zaman sekarang ini banyak cara/teknik untuk
mengamankan informasi diantaranya kriptografi dan steganografi. Cara tersebut
yang akan dibahas dalam penulisan tugas akhir ini.
2.2 Kriptografi
Kriptogafi berasal dari bahasa Yunani. Menurut bahasa tersebut kata
kriptografi dibagi menjadi dua kata, yaitu kripto dan graphia. Kripto berarti secret
(rahasia) dan graphia berarti writing (tulisan). Kriptografi adalah ilmu dan seni
untuk menjaga kerahasiaan berita. Selain pengertian tersebut terdapat pula
pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan
dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data,
integritas data, serta autentikasi data.
Didalam kriptografi kita akan menemukan berbagai istilah atau
terminologi. Beberapa istilah yang penting untuk diketahui diantaranya :
1. Plaintext (P) adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya.
2. Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil
enkripsi.
3. Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.
4. Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah
5. Kunci (K) adalah parameter yang digunakan untuk transformasi
enchipering dan dechipering. Kunci biasanya berupa string atau deretan
bilangan.
Secara umum, kriptografi terdiri dari dua buah bagian utama yaitu bagian
enkripsi dan bagian dekripsi. Enkripsi adalah proses transformasi informasi
menjadi bentuk lain sehingga isi pesan yang sebenarnya tidak dapat dipahami, hal
ini dimaksudkan agar informasi tetap terlindung dari pihak yang tidak berhak
menerima. Sedangkan dekripsi adalah proses kebalikan enkripsi, yaitu
transformasi data terenkripsi ke data bentuk semula. Proses transformasi dari
plainteks menjadi cipherteks akan dikontrol oleh kunci. Peran kunci sangatlah
penting, kunci bersama-sama dengan algoritma matematisnya akan memproses
plainteks menjadi cipherteks dan sebaliknya. Adapun blok proses
enkripsi-dekripsi secara umum dapat kita lihat pada gambar di bawah ini :
Gambar 2.1 Proses enkripsi dan dekripsi
Dengan menggunakan simbol P untuk plaintext C untuk chipertext E untuk
enkripsi D untuk dekripsi dan K untuk key, maka fungsi matematik dari enkripsi
dan dekripsi dapat dituliskan dengan persamaan sebagai berikut :
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan
aspek keamanan informasi, yaitu :
1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari
informasi dari siapapun terutama yang menjaga otoritas atau kunci
rahasia untuk membuka informasi yang telah disandikan.
2. Integritas data, adalah berhubungan dengan penjagaan dari perubahan
data secara tidak sah. Untuk menjaga integritas data system harus
memiliki kemampuan untuk mendeteksi manipulasi data oleh
pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan dan
pensubtitusian data lain kedalam data sebenarnya.
3. Autentifikasi, adalah berhubungan dengan identifikasi atau
pengenalan, baik secara kesatuan system maupun kesatuan informasi
itu sendiri.
4. Non-repudiasi, adalah usaha untuk mencegah terjadinya penyangkalan
terhadap pengiriman atau terciptanya suatu informasi oleh yang
mengirimkan atau yang membuat.
2.2.1 Algoritma Sandi
Algoritma sandi adalah algoritma yang berfungsi untuk melakukan tujuan
kriptografi. Pada implementasinya sebuah algoritmas sandi harus memperhatikan
kualitas layanan/Quality of Service dari keseluruhan sistem dimana dia
diimplementasikan. Algoritma sandi yang handal adalah algoritma sandi yang
Teknik dan metode untuk menguji kehandalan algoritma sandi adalah kriptanalis.
Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan
menjadi :
A. Algoritma Sandi Simetris
Disebut sebagai algoritma kunci simetris, karena dalam proses
enkripsi dan dekripsinya menggunakan kunci yang sama. Algoritma enkripsi dan
deskripsi bisa merupakan algoritma yang sudah umum diketahui, namun kunci
yang dipakai harus terjaga kerahasiaanya, dan hanya diketahui oleh pihak
pengirim dan penerima saja. Kunci ini disebut sebagai private key. Sebelum
berkomunikasi kedua pihak harus bersepakat lebih dahulu tentang kunci yang
dipergunakan. Pendistribusian kunci dari satu pihak ke pihak lainnya memerlukan
suatu kanal tersendiri yang terjagaan kerahasiaannya. Algoritma kunci simetris
memiliki beberapa kekurangan dan kelebihan yaitu :
1. Kekurangan
a.Perlu adanya kesepakatan untuk jalur yang khusus untuk kunci, hal
ini akan menimbulkan masalah yang baru karena tidak mudah u
menentukan jalur yang aman untuk kunci, masalah ini sering
disebut dengan “Key Distribution Problem”.
b.Untuk tiap pengiriman pesan dengan pengguna yang berbeda
dibutuhkan kunci yang berbeda juga, sehingga akan terjadi
kesulitan dalam manajemen kunci tersebut.
c.Apabila kunci sampai hilang atau dapat ditebak maka kriptosistem
2. Kelebihan
a.Waktu proses untuk enkripsi dan dekripsi relatif cepat, hal ini
disebabkan karena efisiensi yang terjadi pada pembangkit kunci.
b.Karena cepatnya proses enkripsi dan dekripsi, maka algoritma ini
dapat digunakan pada sistem secara real-time seperti saluran
telepon digital.
Contoh kriptografi yang menggunakan algoritma kunci simetris
diantaranya :
1. DES (Data Encryption Standard)
2. IDEA (International Data Encryption Algorithm)
3. Twofish
4. Rijndael
B. Algoritma Sandi Asimetris
Algoritma kunci asimetris disebut juga algoritma kunci publik.
Disebut kunci publik karena kunci yang digunakan pada proses enkripsi dapat
diketahui oleh orang banyak tanpa membahayakan kerahasiaan kunci dekripsi,
sedangkan kunci yang digunakan untuk proses dekripsi hanya diketahui oleh
pihak tertentu (penerima). Mengetahui kunci publik semata tidak cukup untuk
menentukan kunci rahasia. Pasangan kunci publik dan kunci rahasia menentukan
sepasang transformasi yang merupakan invers satu sama lain, namun tidak dapat
diturunkan satu dari yang lain. Dalam sistem kriptografi kunci publik ini, proses
tersebut memiliki hubungan matematis (karena itu disebut juga sistem asimetris).
Algoritma kunci asimetris memiliki beberapa kekurangan dan kelebihan
diantaranya :
1. Kekurangan
a. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma
simetris.
b. Untuk tingkat keamanan sama, kunci yang digunakan lebih
panjang dibandingkan dengan algoritma simetris.
2. Kelebihan
a. Masalah keamanan pada distribusi kunci dapat diatasi.
b. Manajemen kunci pada suatu sistem informasi dengan banyak
pengguna menjadi lebih mudah, karena jumlah kunci yang
digunakan lebih sedikit.
Contoh kriptografi yang menggunakan algoritma kunci asimetris
diantaranya :
1. RSA (Rivert Shamir Adelman)
2. DSA (Digital Signature Algorithm)
3. DH (Diffie Hellman)
2.2.2 Algoritma RSA (Rivert Shamir Adelman)
RSA adalah salah satu contoh kriptografi yang menerapkan konsep public
Algoritma ini pertama kali dipublikasikan di tahun 1977 oleh Ron Rivest, Adi
Shamir, dan Leonard Adleman dari Massachusetts Institute of Technology (MIT).
Nama RSA sendiri adalah singkatan dari nama belakang penemu
algoritmanya. Clifford Cocks, seorang matematikawan Inggris sebenarnya juga
telah mengembangkan algoritma yang hampir sama dengan RSA ini pada tahun
1973. Namun algoritma buatannya tidak begitu dikenal oleh publik, dan baru
dipublikasi pada tahun 1997 karena merupakan proyek rahasia.
Walau begitu algoritma yang dikembangkan Rivest, Shamir, dan Adleman
tidak berhubungan dengan pekerjaan Cocks. Pada algoritma RSA terdapat 3
langkah utama yaitu key generation (pembangkitan kunci), enkripsi, dan dekripsi.
Kunci pada RSA mencakup dua buah kunci, yaitu public key dan private
key. Public key digunakan untuk melakukan enkripsi, dan dapat diketahui oleh
orang lain. Sedangkan private key tetap dirahasiakan dan digunakan untuk
melakukan dekripsi.
Dalam melakukan enkripsi dan dekripsi secara umum algoritma RSA
memiliki besaran-besaran sebagai berikut :
1. p dan q, bilangan prima rahasia
2. n = p . q, tidak rahasia
3. Φ(n) = (p – 1) . (q – 1), rahasia
4. SK, kunci privat rahasia
5. PK, kunci publik tidak rahasia
Kunci publik PK dalam RSA merupakan pembangkitan bilangan secara
acak pencarian bilangan yang relatif prima terhadap Φ(n). Sedangkan kunci privat
SK dibangkitkan dengan menggunakan persamaan PK.SK = 1 (mod Φ(n)). Dalam
enkripsi biasa pesan dienkripsi dengan kunci publik baru didekripsi dengan kunci
privat. Namun pada praktek tanda tangan digital digunakan sebaliknya.
2.3 Steganografi
Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan
tersembunyi dengan suatu cara sehingga selain si pengirim dan si penerima, tidak
ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia.
Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak
menyembunyikan bahwa ada suatu pesan. Kata steganografi (steganography)
berasal dari bahasa Yunani yaitu steganos, yang artinya “tersembunyi atau
terselubung” dan graphein yang artinya “menulis”. Steganografi adalah seni dan
ilmu menulis atau menyembunyikan pesan dengan suatu cara sehingga selain si
pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari
bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari
suatu pesan, tapi tidak menyembunyikan pesan tersebut. Pada metode steganografi
cara ini sangat berguna jika digunakan pada cara steganografi komputer karena
banyak format file digital yang dapat dijadikan media untuk
menampung/menyembunyikan pesan. Format yang biasa digunakan diantaranya:
1. Format image : bitmap (bmp), gif, jpeg.
3. Format lain : teks file, html, pdf.
Kini, istilah steganografi termasuk penyembunyian data digital dalam
file-file komputer. Contohnya, si pengirim mulai dengan file-file gambar biasa, lalu
mengatur warna setiap pixel ke-100 untuk menyesuaikan suatu huruf dalam
alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang
menyadarinya jika tidak benar-benar memperhatikannya).
Tujuan dari steganografi adalah menyembunyikan data/pesan pada suatu
media. Media penampung data/pesan yang akan disembunyikan dapat berupa
gambar digital, suara, video dan media lainnya. Jika pada media yang telah
disisipi pesan rahasia tersebut terlihat mencurigakan, maka tujuan dari
steganografi tersebut tidak tercapai.
Teknik steganografi sudah dikenal sejak jaman Yunani dan Romawi kuno.
Misalnya dengan mencukur kepala budak, lalu pesan rahasia ditulis pada kulit
kepalanya. Setelah rambut budak tersebut tumbuh, budak terebut dikirim untuk
menyampaikan pesan rahasia tersebut.
Ada beberapa kriteria yang harus diperhatikan dalam penyembunyian data,
yaitu :
1. Fidelity
Setelah disisipi dengan data, media penampung harus terlihat baik.
Pengamat tidak mengetahui terdapatnya data rahasia pada media
penampung.
2. Recovery
Untuk format atau media yang berbeda, metode yang digunakan untuk
menyembunyikan pesannya juga berbeda-beda. Beberapa metode yang
biasanya digunakan, yaitu:
1. Least Significant Bit (LSB)
Dasar dari metode ini adalah pengetahuan akan bilangan biner atau
bilangan basis 2, yang hanya terdiri dari ’1’ dan ’0’. Kedua bilangan yang
menjadi dasar dari kerja komputer ini sering disebut dengan istilah bit. Susunan
dari beberapa bit akan membentuk suatu informasi. Istilah yang umum
dikenal adalah byte, yaitu kumpulan delapan bit data.
Dalam satu byte data, bit yang paling berpengaruh terhadap
informasi yang dikandungnya biasanya adalah bit paling awal/paling kiri. Bit
inilah yang dinamakan Most Significant Bit (MSB). Semakin ke kanan, bit-bit
tersebut semakin kecil pengaruhnya terhadap keutuhan data yang dikandung.
Bit paling akhir/paling kanan inilah yang dinamakan Least Significant Bit
(LSB). Contohnya pada file image pesan dapat disembunyikan dengan
menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan
(LSB) pada data pixel (titik) yang menyusun file tersebut. Seperti kita ketahui
untuk file bitmap 24 bit maka setiap pixel (titik) pada gambar tersebut terdiri dari
susunan tiga warna merah, hijau dan biru (RGB) yang masing-masing disusun
oleh bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner 00000000
sampai 11111111. Dengan demikian pada setiap pixel file bitmap 24 bit kita dapat
A.Contoh 8 bit pixel :
1 pixel : ( 00 01 10 11 )
white red green blue
Insert 0011 : ( 00 00 11 11 )
white white blue blue
B. Contoh 24 bit pixel :
Contohnya huruf A dapat kita sisipkan dalam 3 pixel, misalnya data raster
original adalah sebagai berikut :
( 00100111 11101001 11001000 )
red blue green
( 00100111 11001000 11101001 )
red green blue
( 11001000 00100111 11101001 )
green red blue
Sedangkan representasi biner huruf A adalah 100000111. Dengan
menyisipkan-nya pada data pixel diatas maka akan dihasilkan :
( 00100111 11101000 11001000 )
red green green
( 00100110 11001000 11101000 )
white green green
( 11001001 00100111 11101001 )
Terlihat hanya empat bit rendah yang berubah, untuk mata manusia maka
tidak akan tampak perubahannya. Secara rata-rata dengan metoda ini hanya
setengah dari data bit rendah yang berubah, sehingga bila dibutuhkan dapat
digunakan bit rendah kedua bahkan ketiga.
Colormap (peta warna) dalam 8 bit warna image (gambar) maksimumnya
24 bit warna image (gambar) dari 256 color (warna). Bagaimanapun untuk
meminimisasi gangguan tambahan ketika least significant bit (LSB) berubah,
colormap (peta warna) dimulai dari hanya 240 color (warna) dan ke-16 color
(warna) lainnya akan ada atau ditambah pada saat hasil akhir dari sebuah gambar.
Kekurangan dari LSB insertion yaitu :
Dapat diambil kesimpulan dari contoh 8 bit pixel, menggunakan LSB
Insertion dapat secara drastis merubah unsur pokok warna dari pixel. Ini dapat
menunjukkan perbedaan yang nyata dari cover image menjadi stego image,
sehingga tanda tersebut menunjukkan keadaan dari steganografi. Variasi warna
kurang jelas dengan 24 bit image, bagaimanapun file tersebut sangatlah besar.
Antara 8 bit dan 24 bit image mudah diserang dalam pemrosesan image, seperti
cropping (kegagalan) dan compression (pemampatan).
2. Algoritma dan Transformasi
Metode Steganografi yang lain adalah menyembunyikan data dalam
fungsi matematika yang disebut algoritma compression. Dua fungsi tersebut
adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation.
Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke
tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat
spatial(spatial domain) ke tempat frekuensi (frequency domain).
3. Redundant Pattern Encoding
Penerapan steganografi dengan metode ini adalah dengan menggambar
pesan kecil pada kebanyakan gambar. Keuntungan dari metode ini adalah
dapat bertahan dari cropping, kerugiannya yaitu tidak dapat menggambar
pesan yang lebih besar, sehingga pesan menjadi agak terbatas dan mungkin
saja pesan yang ingin disampaikan oleh pengirim bahkan terlewatkan oleh
penerima.
4. Spread Spectrum
Metoda Spread Spectrum mentransmisikan sebuah sinyal pita informasi
yang sempit ke dalam sebuah kanal pita lebar dengan penyebaran frekuensi.
Penyebaran ini berguna untuk menambah tingkat redundansi. Besaran redundansi
ditentukan oleh faktor pengali cr yang bernilai skalar. Panjang bit- bit hasil
Proses penyisipan pesan menggunakan metode Spread Spectrum ini
terdiri dari tiga proses, yaitu spreading, modulasi, dan penyisipan pesan ke
citra.Untuk lebih jelasnya dapat dilihat dari gambar skema penyisipan pesan
[image:37.595.115.516.503.717.2]dibawah ini :
Gambar 2.3 Skema Penyisipan Pesan Spread Spectrum
Proses ekstraksi pesan menggunakan metode Spread Spectrum ini terdiri
dari tiga proses, yaitu pengambilan pesan dari matriks frekuensi, demodulasi, dan
de- spreading. Untuk lebih jelasnya dapat dilihat di gambar skema ekstraksi pesan
dibawah ini :
Namun yang akan di bahas dalam penulisan tugas akhir ini hanya dua
metoda steganografi yaitu Discrete Cosine Transformation (DCT) dan Redundant
Pattern Encoding.
2.3.1 Discrete Cosine Transformation (DCT)
Metode Steganography yang lain adalah menyembunyikan data dalam
fungsi matematika yang disebut algoritma compression. Dua fungsi tersebut
adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation.
Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain)
ke tempat (domain) yang lain. Fungsi DCT yaitu suatu teknik yang digunakan
untuk melakukan konversi sinyal kedalam komponen frekuensi pembentuknya
dengan memperhitungkan nilai real dari hasil transformasinya.
Gambar 2.5 Diagram Transformasi DCT
Fungsi Transformasi DCT :
F (u,v) = 2
1 2 N 2 1 2 M
∑
− = 1 0 N i∑
− = 1 0 M jf(i,j) cos
(
)
+1 2 . 2 . i N u
π cos
Fungsi Invers DCT :
f(i,j) =
∑
− = 1 0 N i
∑
− = 1 0 M j 2 1 2 N 2 1 2 M f (u,v) cos
+ N u i 2 ) 1 2 (
π cos
+ M v j 2 ) 1 2 ( π ...(2.3) Keterangan :
Ukuran image M x N
f(u,v) : nilai koefisien DCT pada matrik 8x8 kolom ke-u baris ke-v
F(i,j) : nilai data yang hendak ditransformasikan pada matrik 8x8 kolom ke-i
[image:39.595.122.513.375.582.2]baris ke-j
Gambar 2.6 Proses Penyisipan Pesan DCT
Pada proses penyisipan pesan terdapat tugas-tugas seperti berikut :
1. Lakukan Transformasi DCT dari citra digital.
3. Gantikan bit pada citra tersebut dengan bit pesan yang akan
dimasukan agar tidak terlihat ( dapat digunakan LSB insertion).
4. Lakukan transformasi invers dct.
5. Simpan sebagai citra tersisip pesan.
Gambar 2.7 Proses pembacaan pesan DCT
Pada proses pembacaan pesan tugas-tugas yang perlu dilakukan
diantaranya :
1. Lakukan transformasi dct dari citra tersisip pesan.
2. Dapatkan coefficient DCT.
3. Extract bit data dari koefisien terebut.
4. Gabungkan bit-bit tersebut menjadi sebuah pesan aktual
2.3.2 Redundant Pattern Encoding
Penerapan steganografi dengan metode ini adalah dengan
menggambarkan pesan kecil pada kebanyakan gambar. Algoritma dari redundant
pattern encoding yaitu memasukkan redundansi (penggandaan) ke dalam
informasi/pesan yang akan disembunyikan (dengan catatan pesan hasil
penggandaan sama dengan aslinya/utuh ) dan kemudian menyebarkan pesan itu ke
algoritma untuk menghasilkan urutan angka yang mendekati sifat nomor acak)
digunakan untuk menyeleksi dua area dari gambar (patch A dan patch B). Patch
adalah metode yang menandai area gambar.
Keseluruhan pixel pada patch A akan ditinggikan tingkat cahayanya. Lain
halnya dengan patch B, yang justru diturunkan tingkat cahayanya (digelapkan).
Dengan kata lain, intensitas pada pixel di suatu patch dinaikkan dengan nilai yang
konstan, sementara patch lainnya diturunkan dengan nilai konstan yang sama.
Perubahan kontras pada bagian patch akan mengenkripsi tiap satu bit dan
perubahannya biasanya sangat kecil dan halus.
Kerugian dari teknik ini adalah hanya satu bit yang dapat dimasukkan
pesan rahasia. Suatu gambar dapat digunakan untuk dimasukkan lebih dari satu bit
dengan cara membagi-bagi gambar tersebut ke sub- gambar dan menggunakan
cara yang sama untuk memasukkan pesan ke dalamnya. Keuntungan untuk
menggunakan teknik ini sendiri adalah pesan rahasianya akan disebarkan ke
gambar tersebut secara keseluruhan. Sehingga, apabila ada sebuah patch yang
dihancurkan, yang lain masih tetap bertahan. Namun, tetap saja hal ini bergantung
kepada ukuran pesan itu sendiri. Ini disebabkan pesan tersebut hanya bias diulang
dan tersebar ke seluruh bagian gambar apabila ukurannya cukup dan kecil.
Cara ini digunakan tidak bergantung terhadap jenis gambarnya (transfer
domain) dan terbukti sebagai cara yang cukup ampuh dan baik untuk
2.4 Citra Digital
Secara harafiah, citra (image) adalah gambar pada bidang dua dimensi
(dwimatra). Ditinjau dari sudut pandang matematis, citra merupakan fungsi
menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya
menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya
tersebut. Pantulan cahaya ini ditangkap oleh oleh alat-alat optik, misalnya mata
pada manusia, kamera, pemindai (scanner), dan sebagainya, sehingga bayangan
objek yang disebut citra tersebut terekam.
2.4.1 Bitmap
Bitmap adalah representasi dari citra grafis yang terdiri dari susunan titik
yang tersimpan di memori komputer. Dikembangkan oleh Microsoft dan nilai
setiap titik diawali oleh satu bit data untuk gambar hitam putih, atau lebih bagi
gambar berwarna. Kerapatan titik-titik tersebut dinamakan resolusi, yang
menunjukkan seberapa tajam gambar ini ditampilkan, ditunjukkan dengan jumlah
baris dan kolom, contohnya 1024x768. Kelemahan dari citra bitmap adalah tidak
dapat memperbesar atau memperkecil ukuran resolusinya. Resolusinya
bergantung pada citra aslinya. Ukuran filenya juga relative besar, karena
tersimpan dalam pixel. Selain itu citra bitmap apabila dilakukan proses kompresi
kualitas citranya akan mengalami penurunan. Yang paling penting dari kriteria ini
adalah kedalaman warna (berapa banyak bit per pixel yang didefinisikan dari
1. bit = 16 warna (16 gray scales).
2. 8 bit = 256 warna (256 gray scales).
3. 24 bit = 16.777.216 warna.
Secara umum dapat dikatakan : Semakin banyaknya warna, maka akan
diperlukan keamanan yang ketat atau tinggi dikarenakan bitmap memiliki area
yang sangat luas dalam sebuah warna yang seharusnya dihindarkan. Dilihat dari
kedalaman atau kejelasan dari sebuah warna, bitmap dapat mengambil sejumlah
data tersembunyi dengan perbandingan sebagai berikut (ukuran ratio dari bitmap
dalam byte = ukuran dari data yang disembunyikan) :
1. 4 bit = 16 warna : 4 : 1
2. 8 bit = 256 warna : 8 : 1
3. 24 bit = 16.777.216 warna : 8 : 1
Untuk menampilkan citra bitmap pada monitor atau mencetaknya pada
printer, komputer menterjemahkan bitmap ini menjadi pixel (pada layar) atau titik
tinta (pada printer). Beberapa format file bitmap yang populer adalah BMP, PCX
dan TIFF. Contoh gambar bitmap dapat dilihat di bawah ini :
2.4.2 Joint Photographic Group Experts (JPEG)
Adalah standar kompresi file yang dikembangkan oleh Group Joint
Photographic Experts menggunakan kombinasi DCT dan pengkodean Huffman
untuk mengkompresikan suatu file citra. JPEG adalah suatu algoritma kompresi
yang bersifat lossy, (yang berarti kualitas citranya agak kurang bagus). JPEG
adalah teknik kompresi grafis high color bit-mapped. Merupakan teknik dan
standar universal untuk kompresi dan dekompresi citra tidak bergerak untuk
digunakan pada kamera digital dan sistem pencitraan menggunakan komputer
yang dikembangkan oleh Joint Photographic Experts Group.
Umumnya digunakan untuk kompresi citra berwarna maupun gray scale.
Format ini benar-benar didesain memanjakan fotographer. Format ini bisa
mensupport sampai 16.7 juta warna. Jumlah tersebut cukup untuk keperluan
apapun bahkan pencitraan warna yg tidak bisa dicerna mata manusia. Selain
jumlah kombinasi warna, algoritma kompresi JPEG bekerja dengan meresonansi
informasi-informasi image keluar. Dan tergantung setting yg diberikan, informasi
tersebut bisa dan bisa tidak dapat dicerna mata. Contoh gambar dengan format
JPEG dapat dilihat di bawah ini :
2.4.3 Graphics Interchange Format (GIF)
Formst GIF itu baik digunakan untuk website. Kombinasi warna yg
tersedia sebanyak 256 warna. Jumlah kombinasi ini cukup membuatnya dipakai
bagi keperluan grafis apapun, tentu saja degan pengecualian keperluan photografi.
Kita bisa memakainya sebagai icon, favicon, logo, line grafis, ataupun
image-image tombol. GIF juga bisa dianimasikan. Beberapa karakteristik format gambar
GIF sebagai berikut :
1. Mampu menayangkan maksimum sebanyak 256 warna karena format
GIF menggunakan 8-bit untuk setiap pixelnya.
2. Mengkompresi gambar dengan sifat lossless
3. Mendukung warna transparan dan animasi sederhana
Sebenarnya tersedia pilihan format lain seperti flash atau format animasi
berbasis vektor. Akan tetapi format-format itu biasanya lebih
konsumtif-bandwidth. Gif mempunyai kemampuan mengkompres area-area gambar sewarna.
Dengan kemampuan ini, banyak item-item grafis website bisa didesain dgn
ukuran sekecil mungkin. Metode yang paling umum mereduksi ukuran file GIF
ialah dengan mereduksi jumlah warna dalam palettle. Perlu digaris-bawahi, GIF
telah menggunakan skema kompresi internal LZW. Skema ini bisa membuat
gambar berukuran sekecil mungkin tanpa kehilangan data penting apapun. Namun
tidak tau pasti bagaimana algoritma LZW ini bekerja. Ada 2 feature Gif yg
menarik perhatian, yaitu transparency dan interlacing. Contoh gambar yang
Gambar 2.10 Gambar berformat GIF
2.4.4 Portable Network Graphics (PNG)
PNG (Portable Network Graphics) adalah salah satu format penyimpanan
citra yang menggunakan metode pemadatan yang tidak menghilangkan bagian
dari citra tersebut (lossless compression).
PNG dibaca "ping", namun biasanya dieja apa adanya - untuk menghindari
kerancuan dengan istilah "ping" pada jaringan komputer. Format PNG ini
diperkenalkan untuk menggantikan format penyimpanan citra GIF. Secara umum
PNG dipakai untuk Citra Web. Untuk Web, format PNG mempunyai 3
keuntungan dibandingkan format GIF diantaranya :
1. Channel Alpha (transparansi)
2. Gamma (pengaturan terang-gelapnya citra en:"brightness")
3. Penayangan citra secara progresif (progressive display)
Selain itu, citra dengan format PNG mempunyai faktor kompresi yang
lebih baik dibandingkan dengan GIF (5% - 25% lebih baik dibanding format
GIF). Satu fasilitas dari GIF yang tidak terdapat pada PNG format adalah
dukungan terhadap penyimpanan multi-citra untuk keperluan animasi. Untuk
selama proses pengolahan citra - karena format ini selain tidak menghilangkan
bagian dari citra yang sedang diolah (sehingga penyimpanan berulang ulang dari
citra tidak akan menurunkan kualitas citra) namun format JPEG masih menjadi
pilihan yang lebih baik. Contoh gambar yang memiliki format PNG dapat dilihat
dibawah ini :
Gambar 2.11 Gambar berformat PNG
2.5 Pengukuran Error Citra
MSE ( Mean Square Error ) adalah tingkat kesalahan sinyal-sinyal video
atau piksel-piksel citra hasil pemrosesan sinyal terhadap sinyal/citra original.
Rumus untuk menghitung MSE pada citra digital adalah :
...(2.4)
Sedangkan Peak Signal to Noise Ratio (PSNR) merupakan nilai (rasio)
yang menunjukan tingkat toleransi noise tertentu terhadap banyaknya noise pada
suatu sinyal video/citra. Noise adalah kerusakan sinyal pada bagian tertentu dalam
PSNR merupakan suatu nilai yang menunjukkan kualitas suatu sinyal video/citra.
Untuk menghitung nilai PSNR digunakan rumus sebagai berikut :
...(2.5)
Dimana : I (x,y) nilai pixel dari citra asli
I’ (x,y) nilai pixel dari hasil steganografi
M, N adalah dimensi image
2.6 .NET Platform
.NET merupakan sebuah platform yang dibangun oleh microsoft dengan
komponen utamanya yaitu Framework .NET. Framework .NET merupakan suatu
komponen window yang terintegrasi dan dibuat agar dapat menjalankan berbagai
macam aplikasi berbasis .NET termasuk pembangunan aplikasi Web Service
(XML).
2.7 .NET Framework
.NET framework adalah sebuah framework atau bingkai kerja bagi
aplikasi-aplikasi .NET yang dibuat menggunakan Visual Studio .NET tanpa
terpengaruh bahasa pemrograman yang digunakan.
.NET framework menyediakan berbagai macam tool dan teknologi yang
diperlukan untuk membangun aplikasi yang terdistribusi. Penyediaan tool dan
bebas ke semua model ditingkatan sama suatu aplikasi, lalu menyediakan
interoperabilitas tanpa klaim dan memudahkan migrasi dari teknologi yang ada
pada Microsoft .NET. Arsitektur dari Framework .NET seperti gambar di bawah
[image:49.595.215.392.225.410.2]ini :
Gambar 2.12 Arsitektur Framework .NET
Framework .NET terdiri atas dua elemen penting, yaitu Common
Language Runtime (CLR) dan Framework Class Library (FCL). CLR merupakan
sebuah lingkungan untuk menjalankan program pada saat runtime, kemudian FCL
menyediakan layanan yang dibutuhkan oleh aplikasi .NET.
2.7.1 Common Language Runtime (CLR)
CLR adalah tulang punggung .NET framework, pada CLR inilah tersedia
library-library yang diperlukan oleh aplikasi-aplikasi yang dibuat. Program
aplikasi yang dijalankan tidak langsung berhubungan dengan sistem operasi,
namun melalui CLR terlebih dahulu.
1. Mengelola dan mengeksekusi kode program
2. Mengelola alokasi memori ketika program di eksekusi
3. Memberikan layanan seperti JIT kompilasi
4. Mengelola penanganan kesalahan atau eksepsi
5. Melakukan proses debug dan mengatur keamanan program
6. Bersifat assembly saat proses deployment (penyebaran) atau kompilasi
7. Memungkinkan adanya variasi dan integrasi berbagai bahasa
pemrograman yang ada dilingkungan Framework .NET
2.7.2 Framework Class Library (FCL)
FCL adalah sebuah kumpulan class-class yang berjumlah ribuan di dalam
.NET framework. Class-class ini menyediakan akses ke window API dan
fungsi-fungsi yang umum seperti struktur data, manipulasi string, IO, stream, theread,
security, network programming, windows programming, web programming, data
akses, dan lain-lain. Ini adalah library standar yang pernah disertakan pada
programming enviorenment atau pada bahasa pemrograman tertentu. Penggunaan
class-class ini sangat mudah, bahkan inheritance dan polymorphisme dapat
diterapkan pada class-class ini.
2.7.3 C#
C# merupakan bahasa pemrograman yang didesain dengan target
Januari C# maupun framework .NET diselesaikan dan dapat diimplementasikan.
Bahasa pemrograman C# merupakan bahasa baru yang sangat handal dan
konsisten serta membawa kesan bahwa C# merupakan bahasa pemrograman yang
modern. Bahasa C# merupakan bahasa komposisi dari berbagai bahasa
diantaranya bahasa java, C++, Visual Basic dan lain-lain. Bahasa java merupakan
bahasa yang paling banyak digunakan dalam sintaksis C#. Persentase penggunaan
bahasa java dalam bahasa C# adalah sebanyak 70%, bahasa C++ sebanyak 10%,
bahasa Visual Basic sebanyak 5% dan bahasa lain-lain sebanyak 15%.
2.8 Model Pengembangan Perangkat Lunak
Perangkat lunak (software) adalah perintah/program komputer yang bila
dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan. Struktur
data yang memungkinkan program memanipulasi informasi secara proporsional
dan dokumen yang menggambarkan operasi dan kegunaan program.
Software memiliki dua peran, di satu sisi berfungsi sebagai sebuah produk
dan di sisi lain berfungsi sebagai kendaran yang mengantarkan sebuah produk.
Sebagai produk, software mengantarkan potensi perhitungan yang dibangun oleh
software komputer. Baik di dalam sebuah telepon seluler, atau beroperasi di
sebuah mainframe komputer, software merupakan transformer informasi yang
memproduksi, mengatur, memperoleh, memodifikasi, menampilkan, atau
memancarkan informasi, dimana pekerjaan ini dapat sesederhana suatu bit tunggal
atau sekompleks sebuah simulasi multimedia. Sedangkan peran sebagai kendaran
kontrol komputer (sistem operasi), komunikasi informasi (jaringan), dan
penciptaan serta kontrol dari program – program lain (peranti dan lingkungan
software).
Pada masa-masa awal, pemrograman masih dilihat sebagai “bentuk
kesenian”. Hanya sedikit saja metode yang ada dan lebih sedikit lagi orang yang
memahaminya. Para programmer kadang – kadang harus mempelajarinya dengan
coba-coba. Tetapi sekarang software sudah menjadi lahan yang sangat kompetitif.
Software yang dulu dibangun secara internal di dalam komputer sekarang sudah
dapat diproduksi secara terpisah.
Software lebih merupakan elemen logika dan bukan merupakan elemen
sistem fisik. Software memiliki ciri yang berbeda dari Hardware, yaitu :
1. Software dibangun dan dikembangkan.
2. Software tidak pernah usang.
3. Sebagian besar Software dibuat secara custom-built, serta tidak dapat
dirakit dari komponen yang sudah ada.
Karakteristik dari produk software :
1. Maintainanbility
2. Dependability
3. Efficiency
4. Usability
Proses (produksi) software, yaitu:
1. Spesifikasi software
3. Validasi (pengetesan dan pengujian)
4. Evolusi, pengembangan lanjutan
IEEE telah mengembangkan definisi yang lebih komprehensif, yaitu
software engineering : aplikasi dari sebuah pendekatn kuantifiabel, disiplin, dan
sistematis kepada pengembangan, operasi, dan pemeliharaan software.
Model–model proses untuk software engineering yang sering digunakan
seperti model sekuensial linier, model prototipe, model RAD, model inkremental,
model spiral, model asembly komponen, model pengembangan kongkuren, model
metode formal, model teknik generasi keempat.
Model pengembangan perangkat lunak yang akan dibahas dalam penulisan
tugas akhir ini hanyalah model RAD (Rapid Application Development).
2.8.1 RAD (Rapid Application Development)
Rapid Aplication Development (RAD) adalah sebuah model proses
pengembangan perangkat lunak yang incremental. RAD menekankan pada siklus
pengembangan yang pendek/singkat. RAD mengadopsi model waterfall dan
pembangunan dalam waktu singkat dicapai dengan menerapkan component based
construction. Waktu yang singkat adalah batasan yang penting untuk model ini.
Jika kebutuhan lengkap dan jelas maka waktu yang dibutuhkan untuk
menyelesaikan secara komplit software yang dibuat adalah misalnya 60 sampai 90
Gambar 2.13 Model RAD
Fase-fase di atas menggambarkan proses dalam model RAD. Sistem
dibagi-bagi menjadi beberapa modul dan dikerjakan dalam waktu yang hampir
bersamaan dalam batasan waktu yang sudah ditentukan.
1. Bussiness Modeling
Aliran informasi di antara fungsi–fungsi bisnis dimodelkan dengan suatu
cara untuk menjawab pertanyaan–pertanyaan berikut : Informasi apa yang
mengendalikan proses bisnis? Informasi apa yang di munculkan? Siapa yang
2. Data Modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase business
modelling disaring ke dalam serangkaian objek data yang dibutuhkan untuk
menopang bisnis tersebut. Karakteristik (disebut atribut) masing–masing objek
diidentifikasi dan hubungan antara objek–objek tersebut didefinisikan.
3. Prosess Modelling
Aliran informasi yang didefinisikan di dalam fase data modeling
ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi
sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah,
memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
4. Aplication Generation
RAD mengasumsikan pemakaian teknik generasi ke empat. Selain
menciptakan perangkat lunak dengan menggunakan bahasa pemrograman
generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk
memakai lagi komponen program yang ada ( pada saat memungkinkan) atau
menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus,
alat–alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.
5. Testing and Turnover
Karena proses RAD menekankan pada pemakaian kembali, banyak
komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian.
Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.
Kelemahan dalam model ini:
2. Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
3. Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
4. Resiko teknis yang tinggi juga kurang cocok untuk model ini.
2.9 Tinjauan Perangkat Lunak
Pada bagian ini penulis akan menguraikan penjelasan singkat mengenai
perangkat lunak (software utama) yang digunakan dalam pembuatan aplikasi ini
yaitu Microsoft Windows XP SP 3 sebagai sistem operasi yang digunakan dan
Microsoft Visual C# 2008 sebagai editor pembuatan aplikasi.
2.9.1 Microsoft Windows XP
Windows adalah salah satu sistem operasi andalan Micosoft yang banyak
dipakai saat ini, karena kestabilan dan kemudahan dalam pemakaiannya.
Kelebihan liannya adalah kebutuhan perangkat kerasnya tidak membutuhkan
sumber daya yang besar. Tampilan sistem operasi Windows XP adalah sebagai
berikut :
2.9.2 Microsoft Visual C# 2008
C# sering dianggap sebagai penerus C++ atau versi canggih dari C++,
karena ada anggapan bahwa tanda # adalah perpaduan dari 4 buah tanda tambah
yang disusun sedemikian rupa sehingga membentuk tanda pagar. Akan tetapi,
terlepas dari benar tidaknya anggapan tersebut C# adalah suatu bahasa
pemrograman yang sangat menjanjikan. C# adalah sebuah bahasa pemrograman
yang berorientasi pada objek yang dikembangkan oleh Microsoft dan menjadi
salah satu bahasa pemrograman yang mendukung .NET programming melalui
Visual Studio. Tampilan awal dari Micosoft Visual C# 2008 adalah sebagai
[image:57.595.114.513.396.659.2]berikut :
2.9.3 Keuntungan Visual C#
Ada beberapa keuntungan menggunakan teknologi .NET dalam
membangun sebuah aplikasi, baik aplikasi web service maupun aplikasi biasa
yang sering digunakan seperti Window Form, diantaranya :
1. Mudah, Visual C# yang sangat sederhana mudah digunakan dalam
mengimplementasikan pengembangan sebuah aplikasi
2. Effisien, kemudahan saat pembuatan aplikasi sangat berpengaruh
pada efisiensi waktu pengerjaan aplikasi dan berdampak pula pada
efisiensi biaya
3. Produktivitas, kemudahan pengerjaan aplikasi akan berdampak besar
dalam menghasilkan produk yang berupa aplikasi.
4. Konsisten, kemudahan yang dihadirkan oleh Visual C# akan
44
3.1 Analisis Sistem
Program aplikasi ini dapat dibuat dengan adanya suatu analisis terlebih
dahulu. Analisis sistem dilakukan dengan mendefinisikan masalah yang ada,
menganalisis dan mengamati secara keseluruhan bagaimana program aplikasi ini
terbentuk. Dalam pembuatan program aplikasi ini diperlukan suatu analisis yang
benar agar dihasilkan suatu program aplikasi yang sesuai dengan yang diharapkan.
Secara umum analisis yang akan dilakukan adalah mengenai lingkungan
dari sistem dimana program aplikasi ini akan digunakan dan siapa yang
menggunakannya. Analisis lingkungan dari sistem menguraikan sejumlah entitas
yang ada hubungannya dengan sistem dan berpengaruh terhadap sistem.
3.2 Analisis Masalah
Steganografi bertujuan untuk menyisipkan suatu data/pesan rahasia
kedalam suatu media penampung agar data/pesan rahasia tersebut tidak dapat
dibaca atau diketahui oleh orang/pihak yang tidak berhak mengetahuinya.
Kebanyakan steganografi diterapkan pada media citra yang memiliki
format .bmp atau bitmap. Masalah yang timbul adalah bagaimana jika data/pesan
rahasia tersebut disisipkan pada citra yang berformat .bmp atau bitmap yang
apabila kita menggunakan electronic mail (e-mail) untuk mendistribusikan citra
yang berisi data/pesan rahasia tersebut.
Pada sistem yang akan direalisasikan ini akan mengatasi masalah
tersebut, yaitu menyisipkan data/pesan rahasia pada media penampung yang
berupa citra digital yang memiliki format gif,jpeg,png dan bmp.
3.2.1 Analisis Pengolahan Citra Digital
Citra merupakan fungsi intensitas dalam bidang dua dimensi. Intensitas
yang dimaksud berasala dari sumber cahaya. Pada hakekatnya citra yang dilihat
oleh mata manusia terdiri atas berkas-berkas cahaya yang dipantulkan oleh
benda-benda disekitar kita.
Suatu citra digital adalah suatu gambar kontinu yang diubah dalam
bentuk diskrit, baik koordinat maupun intensitas cahayanya. Kita dapat
menganggap suatu citra digital sebagai suatu matriks dimana indeks baris dan
kolomnya menyatakan koordinat sebuah titik pada citra tersebut dan
masing-masing elemennya menyatakan intensitas cahaya pada titik tersebut. Suatu titik
pada citra digital sering disebut sebagai elemen citra, elemen gambar ataupun
pixel.
Untuk mengubah suatu citra kontinu ke dalam suatu representasi numeric
dilakukan dengan proses digitalisasi oleh suatu digitizer, misalnya scanner,
sehingga citra ini dapat diproses oleh sebuah komputer.
Digitalisasi sebuah citra dilakukan baik terhadap ruang (koordinasi (x,y)),