IV-1
LUNAK
Pada bab ini dilakukan analisis dari proses pembangunan perangkat lunak berdasarkan analisis yang telah dilakukan pada bab sebelumnya. Analisis yang akan dibahas meliputi analisis kebutuhan perangkat lunak, perancangan arsitektur perangkat lunak, dan proses perangkat lunak.
4.1 Analisis Perangkat Lunak
Pada sub bab ini akan diuraikan tentang deskripsi umum, arsitektur, kebutuhan, dan analisis perangkat lunak.
4.1.1 Deskripsi Umum Perangkat Lunak
Perangkat lunak yang dibangun merupakan perangkat lunak yang diterapkan pada PC, baik desktop maupun laptop, dan memiliki fungsi untuk menanamkan pesan ke citra bitmap dengan terlebih dahulu melakukan enkripsi terhadap pesan tersebut.
Pengguna dapat berinteraksi dengan perangkat lunak melalui antarmuka perangkat lunak. Pengguna dapat memilih citra yang akan ditanamkan pesan. Pesan yang telah terenkripsi ditanamkan ke citra dengan pemilihan piksel berdasarkan key yang di-input-kan oleh pengguna.
Data yang digunakan dalam sistem adalah data citra masukan, kunci enkripsi pesan rahasia, dan kunci pseudorandom. Data citra masukan adalah arsip citra yang akan ditanamkan pesan rahasia di dalamnya. Data citra ini merupakan citra tidak terkompresi dengan tipe arsip bitmap. Pada awal proses, pengguna memasukkan jumlah LSB setiap piksel yang akan digunakan untuk menanamkan pesan. Kemudian pengguna memasukkan pesan yang ukurannya memiliki batas maksimal sesuai dengan ukuran citra dan jumlah LSB tiap piksel yang telah ditentukan sebelumnya. Pesan dienkripsi berdasarkan kunci yang diberikan oleh pengguna. Setelah itu, kunci baru yang berguna untuk membangkitkan piksel yang akan digunakan secara pseudorandom dimasukkan
oleh pengguna. Piksel-piksel yang terpilih tersebut diubah sesuai dengan algoritma yang telah ditentukan.
Data keluaran dari perangkat lunak ini adalah stego-image. Stego-image merupakan citra yang beberapa atau keseluruhan dari LSB-nya telah dimodifikasi sesuai dengan pesan rahasia yang ingin disampaikan.
4.1.2 Arsitektur Perangkat Lunak
Arsitektur perangkat lunak yang akan dibangun pada tugas akhir ini akan memiliki 4 buah modul utama yang diilustrasikan pada Gambar IV.1.
Modul penanaman pesan memiliki masukan berupa citra BMP, pesan rahasia yang telah terenkripsi, dan kunci pseudorandom. Pesan rahasia yang dimasukkan akan mengalami pemecahan menjadi beberapa bagian dalam sejumlah bit, sebelum dilakukan penyisipan didapatkan sejumlah bilangan pseudorandom yang digunakan untuk mengakses piksel yang akan ditanamkan pesan yang dibangkitkan dengan kunci. Selanjutnya pesan dioperasikan berdasarkan metode Zhang LSB Image dan disisipkan ke dalam citra BMP. Keluaran dari modul penanaman ini adalah citra tidak terkompresi BMP yang berisi pesan rahasia yang terenkripsi di dalamnya.
Modul pengenkripsian pesan memiliki masukan berupa pesan rahasia dan kunci enkripsi. Pesan rahasia dibagi menjadi sejumlah word dan setiap 4 word (1 blok = 4 word) dilakukan operasi menggunakan metode MARS hingga semua pesan rahasia dikerjakan. Keluaran dari modul pengenkripsian ini adalah pesan rahasia yang telah terenkripsi.
Modul ekstraksi pesan memiliki masukan berupa citra tidak terkompresi BMP yang berisi pesan rahasia yang terenkripsi di dalamnya dan kunci pseudorandom. Pembacaan piksel dilakukan setelah dibangkitkan sejumlah bilangan pseudorandom yang berfungsi sebagai alat untuk mengakses piksel-piksel mana yang akan digunakan untuk mendapatkan kembali pesan. Setelah mendapatkan piksel-piksel tersebut dilakukan operasi berdasarkan metode Zhang LSB Image, sehingga didapatkan pesan dalam sejumlah bit tertentu. Sejumlah bit tertentu itu digabungkan dan didapatkan pesan yang terenkripsi. Keluaran dari modul ekstraksi pesan ini adalah pesan rahasia yang terenkripsi yang disisipkan pada citra tidak terkompresi BMP.
Modul pendekripsian pesan memiliki masukan berupa pesan rahasia yang terenkripsi dan kunci dekripsi. Pesan rahasia dibagi menjadi sejumlah word dan setiap 4 word dilakukan operasi menggunakan metode MARS hingga semua pesan rahasia dikerjakan. Keluaran dari modul pengenkripsian ini adalah pesan rahasia yang telah tidak terenkripsi.
4.1.3 Fitur Utama Perangkat Lunak
Pada bagian ini dijelaskan fitur-fitur utama dari perangkat lunak yang dikembangkan. Fitur-fitur ini dipaparkan dalam bentuk kebutuhan fungsional dan kebutuhan non-fungsional.
4.1.3.1 Kebutuhan Fungsional
Tabel IV-1 menampilkan daftar kebutuhan fungsional pada perangkat lunak yang dikembangkan.
Tabel IV-1 Daftar Kebutuhan Fungsional Perangkat Lunak
Kode Fitur Nama Fitur Deskripsi
F-01 Enkripsi Sistem mampu melakukan enkripsi pesan rahasia F-02 Penyisipan Sistem dapat menyisipkan pesan rahasia dalam
dokumen BMP
F-03 Ekstraksi Sistem dapat melakukan ekstraksi pesan rahasia yang telah disisipkan
F-04 Dekripsi Sistem mampu melakukan dekripsi pesan rahasia yang telah terenkripsi
F-05 Membaca dokumen citra Sistem mampu melakukan pembacaan dokumen citra yang menjadi media dengan benar
F-06 Menampilkan info dokumen Sistem mampu menampilkan informasi dokumen yang digunakan
F-07 Menyimpan arsip keluaran Sistem mampu menyimpan citra hasil steganografi atau pesan hasil ekstraksi dalam bentuk file.
Agar fitur utama tersebut dapat dipenuhi dan pengguna dapat menggunakan sistem dengan mudah, maka perangkat lunak yang akan dibangun memeiliki beberapa kebutuhan yang harus tersedia pada perangkat lunak tersebut, kebutuhan fungsional perangkat lunak tersebut, yaitu:
1. Sistem dapat melakukan pengolahan bit pada citra tanpa merusak citra tersebut 2. Sistem dapat melakukan proses enkripsi dan dekripsi dengan menggunakan metode
MARS
3. Sistem dapat mengubah data ke dalam word dan bit dan dapat mengubah kembali ke dalam representasi bit
4. Sistem dapat melakukan proses penanaman dan pengekstrakan pesan dari dalam citra dengan mengggunakan metode Zhang LSB Image Steganography
5. Sistem dapat membuat citra baru setelah dilakukan penanaman pesan ke dalam sebuah citra
4.1.3.2 Kebutuhan Non-Fungsional
Selain kebutuhan fungsional di atas, aplikasi yang akan dibangun harus dapat memenuhi beberapa kebutuhan non-fungsional yang dapat membantu pengguna dalam menggunakan aplikasi dan juga dapat memudahkan dalam pengembangan lebih lanjut. Tabel IV-2 menampilkan daftar kebutuhan non-fungsional pada perangkat lunak yang dikembangkan.
Tabel IV-2 Daftar Kebutuhan Non-Fungsional Perangkat Lunak
Kode Fitur Nama Fitur Deskripsi
NF-01 User friendly Sistem memiliki antarmuka yang mudah dimengerti oleh pengguna dan memiliki menu
help
NF-02 Validasi dokumen Sistem memeriksa dokumen-dokumen masukkan sesuai dengan ketentuan NF-03 Alert Sistem menampilkan peringatan atau informasi kepada pengguna
4.1.4 Model Use Case
Pada bagian ini dibangun pemodelan use case yang sesuai dengan kebutuhan fungsional dan kebutuhan non-fungsional perangkat lunak yang telah didefinisikan sebelumnya.
4.1.4.1 Diagram Use Case
Hal-hal yang dapat dilakukan oleh pengguna terhadap sistem dapat dilihat pada diagaram use case pada Gambar IV.2.
Perangkat lunak memiliki dua use case utama yaitu menanamkan pesan dan mengekstrak pesan, dimana use case menanamkan pesan mengikutsertakan use case memilih piksel yang digunakan dan mengenkripsi pesan, sedangkan use case mengekstrak pesan mengikutsertakan use case memilih piksel yang digunakan dan mendekripsi pesan.
System pengguna mengenkripsi pesan mendekripsi pesan menanamkan pesan mengekstrak pesan
memilih piksel yang digunakan
<<include>>
<<include>>
<<include>>
<<include>>
Gambar IV-2 Use case global
4.1.4.2 Definisi Aktor
Tabel IV-3 menunjukkan definisi aktor perangkat lunak.
Tabel IV-3 Definisi Aktor Perangkat Lunak
Kode Aktor Deskripsi
A-1 Pengguna Merupakan orang yang menggunakan perangkat lunak ini
4.1.4.3 Definisi Use Case
Tabel IV-4 menunjukkan definisi use case perangkat lunak.
Tabel IV-4 Definisi Use Case Perangkat Lunak
Kode Use Case Deskripsi Cakupan Fitur
UC-01
Menanamkan pesan Melakukan penanaman pesan
pada dokumen citra BMP
F-01 F-05 F-06 F-07 NF-01 NF-02 NF-03 UC-02
Mengekstrak pesan Melakukan ekstraksi pesan
yang ada pada dokumen citra F-03 F-05 F-06 NF-01 NF-02 NF-03
Kode Use Case Deskripsi Cakupan Fitur
UC-03
Memilih piksel yang
digunakan Melakukan pemilihan sejumlah piksel sebagai tempat penyisipan pesan rahasia
berdasarkan mode pseudorandom F-02 F-03 NF-01 NF-03
UC-04 Mengenkripsi pesan Melakukan enkripsi terhadap pesan yang akan ditanamkan F-01 NF-01 NF-03 UC-05 Mendekripsi pesan Melakukan dekripsi terhadap pesan yang diekstrak F-04 NF-01 NF-03
4.1.5 Realisasi use case tahap analisis
Pada bagian ini berisi skenario use case untuk setiap use case yang ada fasilitas perangkat lunak ini.
4.1.5.1 Use case Menanamkan Pesan
Use case menanamkan pesan menggunakan kelas-kelas yang memiliki tanggung jawab dalam penyisipan pesan, seperti membaca dokumen citra BMP, mengolah pesan yang akan disisipkan, dan melakukan penyisipan pesan dengan menggunakan metode Zhang LSB Image Steganography, kemudian menyimpan dokumen citra keluaran (stego-image). Use case ini juga berperan untuk melakukan validasi ukuran pesan agar tidak lebih besar dengan kapasitas penyisipan yang berdasarkan jumlah LSB tiap piksel dan ukuran citra.
Tabel IV-5 Skenario Use Case Menanamkan Pesan
Aksi User Reaksi Sistem
Skenario Normal
1) Memilih tab menanam
2) Meminta pengguna memasukkan citra 3) Memasukkan citra
4) Melakukan validasi format dokumen, dokumen valid
5) Meminta memasukkan kunci untuk metode
LCG
6) Memasukkan kunci
7) Meminta memasukkan pesan 8) Memasukkan pesan
9) Melakukan use case mengenkripsi pesan 10) Melakukan validasi terhadap ukuran
maksimal pesan dengan pesan yang terenkripsi, pesan valid
Aksi User Reaksi Sistem Skenario Normal
11) Melakukan use case memilih piksel yang digunakan
12) Melakukan penanaman pesan, pesan berhasil ditanam
13) Sistem menyimpan dokumen citra keluaran 14) Menampilkan informasi keberhasilan
penanaman
4.1.5.2 Use Case Mengekstrak Pesan
Use case mengekstraksi pesan menggunakan kelas-kelas yang sama dengan use case menyisipkan pesan. Use case ini melakukan ekstraksi pesan yang ada di dalam stego-image.
Tabel IV-6 Skenario Use Case Mengekstrak Pesan
Aksi User Reaksi Sistem
Skenario Normal
1) Memilih tab mengekstrak
2) Meminta pengguna memasukkan citra 3) Memasukkan citra
4) Melakukan validasi format dokumen, dokumen valid
5) Meminta memasukkan kunci untuk metode
LCG
6) Memasukkan kunci
7) Melakukan use case memilih piksel yang digunakan
8) Melakukan pengekstrakan pesan yang terenkripsi, pesan berhasil diekstrak
9) Melakukan use case dekripsi pesan 10) Menampilkan pesan yang ditanamkan
4.1.5.3 Use Case Mengenkripsi Pesan
Use case mengenkripsi pesan menggunakan kelas yang memiliki tanggung jawab melakukan fase-fase yang terdapat pada metode MARS, seperti melakukan fase forward mixing, melakukan key expansion, dan melakukan operasi-operasi word.
Tabel IV-7 Skenario Use Case Mengenkripsi Pesan
Aksi User Reaksi Sistem
Skenario Normal
1) Meminta pengguna memasukkan kunci untuk metode MARS
Aksi User Reaksi Sistem Skenario Normal
3) Melakukan fase forward mixing untuk enkripsi pesan
4) Melakukan fase main keyed transformation
untuk enkripsi pesan
5) Melakukan fase backwards mixing untuk enkripsi pesan
6) Menghasilkan pesan yang terenkripsi
4.1.5.4 Use Case Mendekripsi Pesan
Use case mendekripsi pesan menggunakan kelas yang sama dengan use case mengenkripsi pesan.
Tabel IV-8 Skenario Use Case Mendekripsi Pesan
Aksi User Reaksi Sistem
Skenario Normal
1) Meminta pengguna memasukkan kunci untuk metode MARS
2) Memasukkan kunci
3) Melakukan fase forward mixing untuk dekripsi pesan
4) Melakukan fase main keyed transformation
untuk dekripsi pesan
5) Melakukan fase backwards mixing untuk dekripsi pesan
6) Menghasilkan pesan yang terdekripsi
4.1.5.5 Use Case Memilih Piksel yang Digunakan
Use case memilih piksel yang digunakan kelas yang memiliki tanggung jawab membangkitkan sejumlah nilai pseudorandom yang berfungsi untuk memilih piksel mana yang akan dimofikasi.
Tabel IV-9 Skenario Use Case Memilih Piksel yang Digunakan
Aksi User Reaksi Sistem
Skenario Normal
1) Menggunakan kunci LCG pada use case
yang meng-includeuse case ini
2) Melakukan pembangkitan sejumlah nilai 3) Menghasilkan list piksel yang akan
4.1.6 Diagram Kelas Keseluruhan
Tabel menunjukkan daftar kelas analisis yang terdapat di dalam diagram kelas analisis global lengkap dengan stereotype masing-masing kelas.
Tabel IV-10 Kelas keseluruhan beserta stereotype-nya
No. Nama Kelas Stereotype
1. Antarmuka Boundary 2. ZHANGmtd Controller 3. MARSmtd Controller 4. LCGmtd Controller 5. LSBImage Entity 6. Pesan Entity antarmuka LCGmtd MARSmtd ZHANGmtd LSBImage pesan
Gambar IV-3 Diagram Kelas Analisis Global
Setiap kelas memiliki tanggung jawab masing-masing. Tabel IV-11 menunjukkan tanggung jawab dan atribut yang dimiliki oleh setiap kelas.
Tabel IV-11 Kelas keseluruhan, daftar tanggung jawab, dan atributnya
Nama Kelas Daftar Tanggung Jawab Atribut
Antarmuka 1. Melakukan interaksi dengan pengguna
2. Menerima masukkan data untuk diproses oleh kelas lain
3. Memberikan informasi pada user dalam bentuk notifikasi
Zhangmtd 1. Melakukan penanaman pesan terenkripsi 2. Melakukan pengekstrakan pesan terenkripsi
MARSmtd 1. Melakukan enkripsi pesan 2. Melakukan dekripsi pesan
LCGmtd 1. Melakukan pembangkitan sejumlah angka
pseudorandom untuk mendapatkan piksel yang akan digunakan/dimodifikasi
LSBImage 1. Melakukan akses terhadap LSB citra
2. Melakukan modifikasi terhadap piksel LSB dari citra
pikselLSB: array of m bit
pesan 1. Mengubah pesan menjadi array of word
2. Mengubah pesan menjadi array of m bit, jumlah m
berdasarkan masukkan pengguna
pesanMentah: array of byte pesanWord: array of word pesanMBit: array of m bit
4.2 Perancangan Perangkat Lunak
Berdasarkan analisis kelas yang telah dilakukan, maka dapat dilihat diagram kelas perancangan pada Gambar IV-4.
4.2.1 Deskripsi Diagram Perancangan Kelas
Berikut adalah deskripsi dan penjelasan dari kelas-kelas yang muncul pada diagram perancangan kelas:
1. Kelas Antarmuka
Kelas ini menjadi antarmuka antara pengguna dengan sistem. Pada kelas ini terdapat komponen-komponen yang berfungsi untuk memilih cover-image, menyimpan stego-image, memilih stego-image, melakukan pemilihan arsip pesan, menyimpan arsip pesan, memberikan masukan kunci, melakukan penanaman dan enkripsi, dan melakukan dekripsi dan pengekstrakan arsip pesan.
2. Kelas MARSmtd
Kelas ini mengimplementasikan prosedur kriptografi yang menggunakan algorima MARS
ZHANGmtd
<<control>> -modificationPixels: Array of integer[3]
+doEmbedding(pesan: Array of integer[3], image: Array of integer[3], mLSB: integer): Array of integer[3] +doExtract(image: Array of integer[3], mLSB: integer): Array of integer[3]
antarmuka <<boundary>> -pesan: Pesan -zhang: Zhangmtd -lcg: LCGmtd -coverImage: LSBImage -stegoImage: LSBImage -mars: Marsmtd +FormUtama() LSBImage <<entity>> -path: String
-data: Array of byte -width: Integer -height: Integer -filename: String -size: Integer
-pikselLSB: array of integer[3]
+byteToRepresentPixel(data: Array of byte): Array of integer[3] +modifyPikselLSB(pikselLSB: Array of integer[3])
MARSmtd
<<control>>
-pesanRepresentInteger: Array of integer -pesanRepresentByte: Array of byte -key: byte[16]
+pesanEncrypt(): Array of integer +pesanDecrypt(): Array of byte +setPesan(input: Array of byte) +makeKey(): byte[40]
pesan
<<entity>> -dataOrigin: Array of byte
-dataRepresentPixel: Array of integer[3] -dataInInteger: Array of integer
+getBytesFromFile(fileMessage: File): Array of byte +byteToInteger(): Array of integer
+integerToRepresentPixel(): Array of integer[3] +representPixelToInteger(): Array of integer +integerToByte(): Array of byte
LCGmtd
<<control>> -listPsdRdm: Array of integer
-listofPikselLSB(Arrayof integer[3]
+gnrtListPsdRdm(x: Integer, y: integer, X0: Integer, nmbrIterate: Integer): Array of integer +getListofPikselLSB(data: Array of Integer): Array of integer[3]
3. Kelas LCGmtd
Kelas ini mengimplementasikan prosedur untuk menghasilkan sejumlah angka pseudorandom. Sejumlah angka tersebut akan digunakan untuk melakukan pengaksesan piksel yang akan dimodifikasi. Sejumlah piksel yang didapat akan diberikan ke kelas ZHANGmtd
4. Kelas ZHANGmtd
Kelas ini mengimplementasikan prosedur steganografi yang menggunakan algoritma Zhang LSB Image Steganography.
5. Kelas Pesan
Kelas ini memodelkan pesan sehingga dapat diproses menggunakan algoritma MARS dan algoritma Zhang LSB Image Steganography.
6. Kelas LSBImage
Kelas ini memodelkan citra yang akan diproses menggunakan algoritma Zhang LSB Image Steganography dan dapat digunakan oleh kelas LCGmtd untuk melakukan pengaksesan piksel.
4.2.2 Operasi dan Atribut
Berikut adalah operasi dan atribut dari setiap kelas beserta penjelasan dari operasi dan atribut tersebut:
1. Kelas Antarmuka
Daftar atribut kelas antarmuka dapat dilihat pada Tabel IV-12 dan daftar operasi dan penjelasannya dapat dilihat pada Tabel IV-13.
Tabel IV-12 Daftar Atribut Kelas Antarmuka Nama Atribut Visibility
(private, public) Tipe
pesan Private Pesan
zhang Private ZHANGmtd
lcg Private LCGmtd
MARS Private MARSmtd
coverImage Private LSBImage stegoImage Private LSBImage
Tabel IV-13 Daftar Operasi Kelas Antarmuka Nama Operasi Visibility
(private, public) Keterangan
FormUtama Public Prosedur ini akan menampilkan interface dengan komponen-komponen yang dimilikinya
2. Kelas MARSmtd
Daftar atribut kelas MARSmtd dapat dilihat pada Tabel IV-14 dan daftar operasi dan penjelasannya dapat dilihat pada Tabel IV-15.
Tabel IV-14 Daftar Atribut Kelas MARSmtd Nama Atribut Visibility
(private, public) Tipe
pesanRepresentByte Private Array of bye pesanRepresentInteger Private Array of integer
Key Private byte[16]
Tabel IV-15 Daftar Operasi Kelas MARSmtd Nama Operasi Visibility
(private, public) Keterangan
pesanEncrypt Public Prosedur ini berfungsi untuk melakukan enkripsi terhadap pesan
pesanDecrypt Public Prosedur ini berfungsi untuk melakukan dekripsi terhadap pesan
Nama Operasi Visibility
(private, public) Keterangan
setPesan Public Prosedur ini berfungsi untuk memberikan nilai terhadap atribut pesanRepresenByte
makeKey Public Prosedut ini berfungsi untuk melakukan ekspansi dari kunci yang aslinya
3. Kelas LCGmtd
Daftar atribut kelas LCGmtd dapat dilihat pada Tabel IV-16 dan daftar operasi dan penjelasannya dapat dilihat pada Tabel IV-17.
Tabel IV-16 Daftar Atribut Kelas LCGmtd Nama Atribut Visibility
(private, public) Tipe
listPsdRdm Private Array of integer listofPikselLSB Private Array of integer[3]
Tabel IV-17 Daftar Operasi Kelas LCGmtd Nama Operasi Visibility
(private, public) Keterangan
gnrtListPsdRdm Public Prosedur ini meghasilkan sejumlah angka
pseudorandom.
getListOfPikselLSB Public Prosedur ini mendapat sejumlah piksel yang diperoleh dengan memanfaatkan atribut listPsdRdm 4. Kelas ZHANGmtd
Daftar atribut kelas ZHANGmtd dapat dilihat pada Tabel IV-18 dan daftar operasi dan penjelasannya dapat dilihat pada Tabel IV-19.
Tabel IV-18 Daftar Atribut Kelas ZHANGmtd Nama Atribut Visibility
(private, public) Tipe
modificationPixels Private Array of integer[3]
Tabel IV-19 Daftar Operasi Kelas ZHANGmtd Nama Operasi Visibility
(private, public)
Keterangan
doEmbedding Public Prosedur ini berfungsi untuk melakukan pengoperasian antara pesan dan sejumlah piksel sehingga didapatkan sejumlah nilai piksel yang baru, kemudian sejumlah nilai piksel yang baru tersebut akan digunakan untuk momodifikasi citra
doExtract Public Prosedur ini mendapatkan pesan setelah melakukan operasi terhadap sejumlah piksel
5. Kelas Pesan
Daftar atribut kelas Pesan dapat dilihat pada Tabel IV-20 dan daftar operasi dan penjelasannya dapat dilihat pada Tabel IV-21.
Tabel IV-20 Daftar Atribut Kelas Pesan Nama Atribut Visibility
(private, public) Tipe
dataOrigin Private Array of byte dataRepresentPixel Private Array of integer[3] dataInteger Private Array of integer
Nama Operasi Visibility
(private, public) Keterangan
getBytesFromFile Public Prosedur ini untuk mendapatkan sejumlah byte
dari arsip pesan
byteToInteger Public Prosedur ini berfungsi untuk mengubah representasi dari sejumlah byte ke sejumlah
integer
integerToRepresentPixel Public Prosedur ini berfungsi ini untuk mengubah representasi dari sejumlah integer ke sejumlah
integer[3]
representPixelToInteger Public Prosedur ini berfungsi untuk mengubah representasi dari sejumlah integer[3] ke sejumlah integer
integerToByte Public Prosedur ini berfungsi untuk mengubah representasi daru sejumlah integer ke sejumlah
byte
6. Kelas LSBImage
Daftar atribut kelas LSBImage dapat dilihat pada Tabel IV-22 dan daftar operasi dan penjelasannya dapat dilihat pada Tabel IV-23.
Tabel IV-22 Daftar Atribut Kelas LSBImage Nama Atribut Visibility
(private, public) Tipe
path Private String
width Private Integer
heigth Private Integer
size Private Integer
filename Private String
data Private Array of byte
pikselLSB Private Array of integer[3]
Tabel IV-23 Daftar Operasi Kelas LSBImage Nama Operasi Visibility
(private, public) Keterangan
byteToRepresentPixel Public Prosedur ini berfungsi untuk mengubah representasi dari sejumlah byte ke sejumlah
integer[3]
modifyPikselLSB Public Prosedur ini berfungsi untuk memodifikasi sejumlah piksel
4.2.3 Perancangan Antarmuka
Gambar IV-5 akan menjadi jendela utama dari perangkat lunak yang akan dibangun. Pada saat aplikasi dijalankan, maka jendela yang terbuka pertama kali adalah antarmuka ini. Pengguna akan memasukkan masukan dan mengklik tombol atau radio button
untuk menghasilkan perintah yang diinginkan. Antarmuka ini dirancang sesederhana mungkin, agar pengguna tidak kesulitan dalam menggunakannya.
Pada antarmuka ini terdapat 5 tombol yaitu : 1. “Citra Cover”
Tombol ini berfungsi untuk memudahkan user untuk memilih cover-image yang diinginkan karena akan menampilkan jendela file chooser
2. “Arsip Pesan”
Tombol ini berfungsi untuk memudahkan user untuk memilih arsip pesan yang diinginkan karena akan menampilkan jendela file chooser
3. “Citra Stego”
Tombol ini berfungsi untuk melakukan pengekstrakan arsip pesan dan pendekripsian arsip pesan, untuk memudahkan user untuk memilih stego-image yang diinginkan, dan untuk memudahkan user untuk menyimpan pesan yang diekstrak sesuai dengan posisi yang diinginkan
4. “Lakukan Penanaman”
Tombol ini berfungsi untuk melakukan pengenkripsian arsip pesan dan penanaman arsip pesan, untuk memudahkan user menyimpan stego-image yang dihasilkan sesuai dengan posisi yang diinginkan
5. “Hitung Maksimal File”
Tombol ini berfungsi untuk menghasilkan ukuran maksimal arsip pesan yang dapat ditanamkan
Pada antarmuka ini terdapat 5 field teks, yaitu: 1. “Kunci X0”
Field ini akan berisi benih yang akan digunakan untuk menghasilkan sejumlah angka pseudorandom.
2. “Kunci m LSB”
Field ini akan berisi jumlah LSB yang terlibat dalam setiap piksel untuk menanamkan pesan.
3. “Kunci STBM”
CombinoZM
CombinoZM
Citra Cover Arsip Pesan Citra Stego
Lakukan Penanaman Hitung Maksimal File Penanaman Pengekstrakan Cover Image
Stego Image
Image Preview Kunci Metode MARS
isi dengan kata-kata Kunci MARS :
Kunci Metode LCG isi dengan integer Kunci X0 :
isi dengan integer Kunci STBM :
Kunci Metode Zhang [1-24] Kunci m LSB: PSNR
Informasi Citra dan Arsip Pesan isi dengan integer Ukuran Pesan (byte) :
Ukuran Maksimal Pesan : Lebar Citra :
Tinggi Citra :
Mode Operasi :
Gambar IV-5 Perancanangan Antarmuka Utama
4. “Kunci MARS”
Field ini akan berisi kunci yang akan untuk proses enkripsi dan proses dekripsi 5. “Ukuran Pesan”
Field ini akan berisi ukuran dari pesan yang ditanam atau ukuran dari pesan yang diekstrak
Pada antarmuka ini terdapat 2 tombol radio, yaitu: 1. “Penanaman’
Tombol radio ini akan berfungsi untuk pindah ke mode embedding 2. “Pengekstrakan”
Pada antarmuka ini juga terdapat panel yang berguna untuk memperlihatkan cover-image dan stego-image. Panel “Cover Image” berfungsi untuk menampilkan citra cover-image, sedangkan panel ”Stego Image” berfungsi untuk menampilkan citra stego-image.