• Tidak ada hasil yang ditemukan

Perancangan dan Implementasi Aplikasi Steganografi dengan Algoritma Fisher-Yates Shuffle Artikel Ilmiah

N/A
N/A
Protected

Academic year: 2021

Membagikan "Perancangan dan Implementasi Aplikasi Steganografi dengan Algoritma Fisher-Yates Shuffle Artikel Ilmiah"

Copied!
31
0
0

Teks penuh

(1)

Perancangan dan Implementasi Aplikasi Steganografi

dengan Algoritma Fisher-Yates Shuffle

Artikel Ilmiah

Peneliti:

Bryan Mayers Talapessy (672011045) Magdalena A. Ineke Pakereng, M.Kom.

Evangs Mailoa, S.Kom. M.Cs.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Oktober 2015

(2)

Perancangan dan Implementasi Aplikasi Steganografi

dengan Algoritma Fisher-Yates Shuffle

Artikel Ilmiah

Diajukan kepada

Fakultas Teknologi Informasi

untuk memperoleh gelar Sarjana Komputer

Peneliti:

Bryan Mayers Talapessy (672011045) Magdalena A. Ineke Pakereng, M.Kom.

Evangs Mailoa, S.Kom. M.Cs.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Oktober 2015

(3)
(4)
(5)
(6)
(7)
(8)
(9)

Perancangan dan Implementasi Aplikasi Steganografi dengan

Algoritma Fisher-Yates Shuffle

1)

Bryan Mayers Talapessy, 2)

M. A. Ineke Pakereng,3) Evangs Mailoa

Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia

Email: 1)672011045@student.uksw.edu, 2) inekep200472@yahoo.com,

3)

evangs.mailoa@staff.uksw.edu

Abstract

A method is needed to restrict access to information, in order to ensure the security of the exchange of information that is confidential or private. Restrictions can be done by encrypting information or to hide information in the public media. Concealment of information on other media is called steganography. The success of a steganography depend on whether or not striking changes in the cover and the ability of the algorithm used to hide. In this study proposes a method of steganography in digital imagery, which inserts random information. The aim is that even without the encryption process, the embedded information will be more secure than the LSB Steganography in general. The results show that by spreading the insertion point, can lower a person's level of suspicion against a stego image.

Keywords: Steganography, Fisher-Yates Shuffle, LSB Abstrak

Untuk menjamin keamanan pertukaran informasi yang bersifat rahasia atau pribadi, diperlukan suatu metode yang membatasi akses ke informasi ini. Pembatasan dapat berupa penyandian informasi atau dengan menyembunyikan informasi pada media yang umum. Metode penyembunyian informasi pada media lain disebut dengan steganografi. Keberhasilan suatu steganografi bergantung pada mencolok atau tidaknya perubahan yang terjadi pada cover dan kemampuan algoritma yang digunakan untuk menyembunyikan. Pada penelitian ini diajukan suatu metode steganografi pada citra digital, yang menyisipkan informasi secara acak. Tujuannya adalah agar tanpa proses enkripsi sekalipun, informasi yang disisipkan akan lebih aman daripada steganografi LSB pada umumnya. Hasil pengujian menunjukkan bahwa dengan menyebar titik penyisipan, dapat menurunkan tingkat kecurigaan seseorang terhadap suatu stego image.

Kata Kunci: Steganografi, Fisher-Yates Shuffle, LSB

1)

Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana

2,3)

(10)

1

1. Pendahuluan

Internet memberikan kemudahan untuk bertukar informasi. Informasi yang dilewatkan di Internet, berjalan dari satu komputer, ke komputer yang lain, hingga akhirnya sampai ke komputer tujuan. Proses tersebut berlangsung begitu cepat sekalipun melalui beberapa titik. Pada dasarnya, informasi melakukan perjalanan di internet dengan cara yang tidak aman. Ini berarti bahwa pesan dapat disadap atau dirusak pada setiap titik perangkat yang dilewati [1].

Untuk menjamin keamanan pertukaran informasi yang bersifat rahasia atau pribadi, diperlukan suatu metode yang membatasi akses ke informasi ini. Pembatasan dapat berupa penyandian informasi (kriptografi) [2], atau dengan menyembunyikan informasi pada media yang umum (steganografi) [3], sehingga tidak menyebabkan kewaspadaan (awareness) pihak lain yang mengakses informasi ini.

Metode penyembunyian informasi pada media lain disebut dengan steganografi. Steganografi membutuhkan media sebagai cover, yang merupakan wadah penyembunyian informasi. Cover dapat berupa file image, audio, video ataupun jenis file yang lain. Informasi yang disembunyikan dapat berupa pesan singkat dalam bentuk kalimat, atau berupa file dokumen rahasia. Ukuran file (dokumen) rahasia yang disembunyikan bergantung pada ukuran cover tempat data rahasia disembunyikan.

Keberhasilan suatu steganografi bergantung pada mencolok atau tidaknya perubahan yang terjadi pada cover dan kemampuan algoritma yang digunakan untuk menyembunyikan [4]. Untuk memperkecil perubahan, digunakan bit terendah (LSB) pada tiap piksel citra digital, sebagai lokasi penyisipan informasi. Steganografi pada citra digital pada umumnya mengganti bit-bit LSB tersebut secara berurutan, dari ujung kiri atas gambar, atau mundur dari ujung kanan bawah gambar. Hal ini memberikan kelemahan yaitu bit-bit informasi ini dapat diekstrak dengan mudah oleh pihak lain. Enkripsi dapat ditambahkan sebelum proses penyisipan, namun hal ini akan memberikan tambahan waktu proses.

Pada penelitian ini diajukan suatu metode steganografi pada citra digital, yang menyisipkan informasi secara acak. Tujuannya adalah agar tanpa proses enkripsi sekalipun, informasi yang disisipkan akan lebih aman daripada steganografi LSB pada umumnya. Metode pengacakan yang digunakan adalah algoritma Fisher-Yates [5]. Data yang diacak adalah lokasi penyisipan.

2. Tinjauan Pustaka

Pada penelitian yang berjudul “Implementasi Teknik Steganografi dengan Metode LSB pada Citra Digital”, disebutkan tentang perlunya pengamanan pengiriman pesan melalui jaringan Internet. Pada penelitian tersebut digunakan media gambar sebagai cover. Hasil penelitian tersebut adalah sebuah aplikasi steganografi dengan algoritma LSB Embedding, yang dapat menyembunyikan pesan, sehingga orang lain tidak menyadari keberadaan pesan di dalam media. [6] Berbeda dengan penelitian ini adalah, pada penelitian ini sebelum pesan disisipkan, digunakan algoritma Fisher-Yates Shuffle untuk mengacak lokasi

(11)

2

penyisipan. Hal ini dilakukan dengan tujuan untuk meningkatkan keamanan pesan yang disisipkan.

Pada penelitian “Perancangan dan Implementasi Kriptografi Menggunakan Vigenere Cipher dan Fisher-Yates Shuffle Pada Data Citra Digital” [7], diimplementasikan algoritma Fisher-Yates shuffle untuk melakukan enkripsi dan dekripsi citra digital. Algoritma Fisher-Yates dimanfaatkan untuk melakukan pengacakan piksel pada citra digital, kemudian untuk meningkatkan keamanan ditambahkan proses enkripsi dengan algoritma Vigenere. Beda dengan penelitian tersebut, pada penelitian ini, Fisher-Yates digunakan bukan untuk mengacak informasi yang perlu diamankan, namun mengacak lokasi penyisipan, sehingga sukar ditebak.

Berdasarkan penelitian - penelitian yang telah dilakukan tentang steganografi pada citra digital dengan teknik LSB, dan implementasi Fisher-Yates untuk pengamanan informasi, maka dilakukan penelitian yang bertujuan untuk merancang dan mengimplemetasikan aplikasi steganografi pada image PNG dengan algoritma Fisher-Yates Shuffle, sehingga diperoleh stego image. Pada penelitian ini digabungkan antara teknis steganografi LSB dengan Fisher-Yates shuffle. Steganografi LSB memiliki kelebihan dalam kecilnya perubahan yang tampak setelah proses penyisipan. Fisher-Yates shuffle berfungsi untuk meningkatkan keamanan, dengan cara mengacak posisi penyisipan bit. Proses pengacakan dilakukan sebelum proses penyisipan.

Batasan masalah dalam penelitian ini adalah sebagai berikut: (1) Pengamanan data dilakukan dengan cara menyembunyikan ke dalam citra digital; (2) Citra digital yang digunakan memiliki format PNG (24 bit warna); (3) Algoritma Fisher-Yates Shuffle digunakan untuk mengacak lokasi penyisipan, bukan untuk mengacak pesan yang akan disisipkan.

Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui. Steganografi berasal dari bahasa Yunani, yaitu “steganos” yang artinya “tulisan tersembunyi (covered writing)” [8]. Steganografi yang dibahas adalah penyembunyian data di dalam citra (image). Meskipun demikian, penyembunyian data dapat juga dilakukan pada media berupa suara digital, teks, ataupun video. Penyembunyian data rahasia ke dalam image akan mengubah kualitas image tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah: 1) Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung. Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak; 2) Data yang disembunyikan harus dapat diungkapkan kembali (recovery). Dalam penyembunyian pesan, steganografi menggunakan dua properti yaitu pesan rahasia dan media penampung. Ada beberapa tipe media yang dapat digunakan untuk menyisipkan pesan rahasia. Tipe media ini dapat berfungsi sebagai media pembawa pesan rahasia, yang disebut dengan host message. Terdapat beberapa media yang dapat digunakan sebagai media steganografi, media penampung tersebut dapat berupa text, image, audio, atau video [9].

(12)

3

Cara untuk mengaplikasikan steganografi pada file image terdiri dari beberapa cara yang lazim digunakan dan prinsip kerja atau algoritma yang digunakan sama seperti pada metode steganografi pada data audio. Berikut adalah beberapa teknik yang digunakan: 1) Least Significant Bit Insertion (LSB) adalah metode yang digunakan untuk menyembunyikan pesan pada media digital tersebut berbeda-beda. Contohnya, pada berkas audio, pesan dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan (LSB) pada data piksel yang menyusun file tersebut; 2) Redundant Pattern Encryption adalah menggambar pesan kecil pada kebanyakan image. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan). Kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar; dan 3) Spread Spectrum steganografi terpencar-pencar sebagai pesan yang diacak (encrypted) melalui image (tidak seperti dalam LSB). Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses image (gambar) [9].

Cara paling mudah untuk menyembunyikan pesan adalah dengan memanfaatkan Least Significant Bit (LSB). Jika digunakan image 24 bitcolor sebagai cover, sebuah bit dari masing-masing komponen Red, Green, dan Blue, dapat digunakan, sehingga tiga bit dapat disimpan pada setiap piksel. Sebuah image 800 x 600 piksel dapat digunakan untuk menyembunyikan 1.440.000 bit (180.000 bytes) data rahasia. Misalkan terdapat piksel-piksel dari image 24 bit color :

00111000 01010110 11000111 00110011 Jika ada pesan rahasia yang memiliki nilai 1101, maka dihasilkan: 00111001 01010111 11000110 00110011

Dapat dilihat bahwa bit-bit pesan rahasia mengubah bit-bit terakhir citra gambar. Perubahan pada LSB ini akan terlalu kecil untuk terdeteksi oleh mata manusia sehingga pesan dapat disembunyikan secara efektif. Akan lebih baik jika digunakan grayscale image karena perubahan warnanya akan lebih sulit dideteksi oleh mata manusia. Proses ekstraksi pesan dapat dengan mudah dilakukan, yaitu dengan mengekstrak LSB dari masing-masing piksel pada stego secara berurutan dan menuliskannya ke output file yang akan berisi pesan tersebut. Kekurangan dari metode modifikasi LSB ini adalah bahwa metode ini membutuhkan "tempat penyimpanan" yang relatif besar. Kekurangan lain adalah bahwa stego yang dihasilkan tidak dapat dikompres dengan format lossy compression [9].

Pada penelitian ini digunakan algoritma shuffle Fisher-Yates. Fisher-Yates shuffle (diambil dari nama Ronald Fisher dan Frank Yates) atau juga dikenal dengan nama Knuth shuffle (diambil dari nama Donald Knuth), adalah sebuah algoritma untuk menghasilkan suatu permutasi acak dari suatu himpunan terhingga, dengan kata lain untuk mengacak suatu himpunan tersebut [10]. Jika diimplementasikan dengan benar, maka hasil dari algoritma ini tidak akan berat sebelah, sehingga setiap permutasi memiliki kemungkinan yang sama. Metode dasar yang digunakan untuk menghasilkan suatu permutasi acak untuk angka 1 sampai N adalah sebagai berikut [5]:

(13)

4

2. Pilih sebuah angka acak K di antara 1 sampai dengan jumlah angka yang belum dicoret.

3. Dihitung dari bawah, coret angka K yang belum dicoret, dan tuliskan angka tersebut di lain tempat.

4. Ulangi langkah 2 dan langkah 3 sampai semuat angka sudah tercoret. 5. Urutan angka yang dituliskan pada langkah 3 adalah permutasi acak dari

angka awal.

Pada versi modern yang digunakan sekarang, angka yang terpilih tidak dicoret, tetapi posisinya ditukar dengan angka terakhir dari angka yang belum terpilih. Contoh pengerjaan dari versi modern ditunjukkan pada Tabel 1. Range adalah jumlah angka yang belum terpilih, roll adalah angka acak yang terpilih, scratch adalah daftar angka yang belum terpilih, dan result adalah hasil permutasi yang akan didapatkan.

Tabel 1 Contoh Langkah Fisher-Yates Shuffle

Range Roll Scratch Result

1 2 3 4 5 6 7 8 1 – 8 6 1 2 3 4 5 8 7 6 1 – 7 2 1 7 3 4 5 8 2 6 1 – 6 6 1 7 3 4 5 8 2 6 1 – 5 1 5 7 3 4 1 8 2 6 1 – 4 3 5 7 4 3 1 8 2 6 1 – 3 3 5 7 4 3 1 8 2 6 1 – 2 1 7 5 4 3 1 8 2 6

LSB embedding merupakan teknik steganografi yang menggunakan pendekatan tergolong sederhana dan langsung. Sesuai dengan namanya, teknik LSB embedding menyisipkan pesan ke dalam LSB (least significant bit). Hal ini hanya akan mempengaruhi nilai warna pada piksel sebesar + 1, maka secara umum diasumsikan bahwa degradasi warna yang terjadi dapat tidak dikenali oleh mata[11]. LSB embedding memiliki kelebihan dibandingkan dengan algoritma EOF steganography [3], dalam hal perubahan ukuran dokumen yang disisipi. LSB embedding tidak menambahkan ukuran dokumen, karena proses yang terjadi adalah mengganti bit akhir tiap warna. EOF bekerja dengan menambahkan informasi pada akhir dokumen. Algoritma steganografi yang lain adalah algoritma DCT. Algoritma ini menggunakan frekuensi domain dari citra digital untuk menyisipkan informasi. Kelemahan dari algoritma DCT adalah mata manusia dapat mengenali perubahan yang terjadi pada frekuensi rendah [12]. Karena kelebihan - kelebihan dari algoritma LSB embedding, maka pada penelitian ini dipilih LSB embedding dalam proses penyisipan Digital signature dalam dokumen digital.

Pada penelitian ini, format file citra digital yang digunakan adalah PNG. PNG merupakan True Color image, yang berarti tiap piksel direpresentasikan dengan 3 byte, terbagi ke dalam red, green, dan blue masing-masing 1 byte. Hal ini sering disebut dengan warna RGB, atau True Color 24 bit. Selain 24 bit warna, file PNG juga mendukung 32 bit warna. True Color 32 bit sama dengan 24 bit,

(14)

5

dengan perbedaan adalah adanya 1 byte tambahan yang disebut komponen alpha [13][14].

Gambar 1 True Color 24 bit dan 32 bit [14]

Microsoft .NET Framework merupakan sebuah perangkat lunak kerangka kerja yang berjalan pada sistem operasi Microsoft Windows. Saat ini .NET Framework umumnya telah terintegrasi dalam distribusi standar Windows (mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru). Kerangka kerja ini menyediakan sejumlah besar pustaka pemrograman komputer dan mendukung beberapa bahasa pemrograman serta interoperabilitas yang baik sehingga memungkinkan bahasa-bahasa tersebut berfungsi satu dengan lain dalam pengembangan sistem. Berbeda halnya dengan tipikal aplikasi konvensional umumnya, program yang ditulis dengan memanfaatkan .NET Framework berjalan pada lingkungan perangkat lunak melalui Common Language Runtime, dan bukan perangkat keras secara langsung. Hal ini memungkinkan aplikasi yang dibuat di atas .NET secara teoritis dapat berjalan pada perangkat keras apapun yang didukung oleh .NET Framework. Perangkat lunak ini adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows [15].

Pada penelitian ini, .NET Framework 4.5 digunakan untuk membangun aplikasi steganografi. Beberapa pustaka pemrograman yang digunakan adalah pustaka untuk membuat Graphical User Interface (GUI), pustaka pemrosesan gambar (Bitmap), dan pustaka pembangkitan bilangan acak (Random).

3. Metode dan Perancangan Sistem

Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: (1) Identifikasi masalah dan studi literatur, (2) Perancangan sistem, (3) Perancangan Prototype sistem, dan (4) Pengujian prototype sistem dan analisis hasil pengujian.

(15)

6

Identifikasi Masalah dan Studi Literatur

Perancangan Sistem

Implementasi Sistem

Pengujian Sistem dan Analisis Hasil Pengujian

Gambar 2 Tahapan Penelitian

Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut. Tahap pertama: identifikasi masalah, yaitu rentannya informasi yang dilewatkan di InterNet, dan diperlukan mekanisme untuk mengamankan informasi tersebut; Tahap kedua: perancangan sistem yang meliputi perancangan proses penyisipan dan proses ekstrasi; Tahap ketiga: perancangan prototype sistem, yaitu membuat aplikasi sesuai perancangan proses pada tahap kedua; dan Tahap keempat: pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap proses yang telah dirancang, dan melihat kesesuaian solusi terhadap masalah yang telah teridentifikasi sebelumnya.

Aplikasi dikembangkan melalui tahap pengembangan perangkat lunak prototype model [16]. Pada proses implementasi dihasilkan beberapa prototype yang dapat dijelaskan sebagai berikut. Tahap pertama: mengetahui kebutuhan sistem. Hal ini dapat dicapai dengan cara mendengarkan atau wawancara customer/user; Tahap kedua; merancang program kemudian membuat perbaikan terhadap hasil yang diperoleh; Tahap ketiga: melakukan evaluasi ke customer atau user dimana pada tahap ini proses akan kembali lagi ketahap pertama. Diagram prototype model ditunjukkan pada Gambar 3.

Gambar 3 Prototype Model[16]

Proses penyisipan adalah proses menyembunyikan bit-bit informasi pesan ke dalam cover image. Gambar 5 menunjukkan langkah-langkah penyisipan dalam bentuk flowchart. Proses ini secara garis besar terdiri dari:

1. Input dari proses ini adalah citra digital sebagai cover image, pesan dalam bentuk string, dan user key.

(16)

7

2. Memetakan koordinat warna pada cover image. Yaitu proses pemberian indeks pada tiap-tiap warna pada cover image. Pada 1 piksel terdapat 3 warna. Jika suatu gambar terdapat 10 piksel, maka terdapat 30 warna dengan indeks dari 0 sampai dengan 29.

3. Mengacak (shuffle) angka-angka indeks tersebut dengan algoritma Fisher-Yates. Fisher-Yates memerlukan algoritma random, dan .NET Framework telah menyediakan kelas ini. Class random memerlukan seed sebagai nilai inisialisasi proses pembangkitan bilangan acak. Nilai seed diperoleh dengan cara menjumlahkan nilai ASCII tiap-tiap karakter pada kunci yang dimasukkan oleh user. Kemudian class random digunakan pada proses shuffle, untuk membangkitkan indeks-indeks acak. Lebih jelasnya, ditunjukkan pada Kode Program 3.

4. Mengubah pesan ke dalam bentuk kode ASCII, kemudian dari nilai kode ASCII diubah ke dalam bentuk biner.

5. Lakukan sub proses berikut:

a. Inisialiasi variabel indeks I dengan nilai 0 (I=0).

b. Berdasarkan hasil pengacakan, ambil koordinat warna indeks ke-I. c. Ambil bit pesan pada indeks ke-I.

d. Sisipkan bit tersebut ke dalam warna pada koordinat indeks ke-I e. Lanjutkan proses penyisipan untuk bit indeks selanjutnya, pada

koordinat warna indeks selanjutnya (I=I+1). 6. Proses berhenti ketika semua bit pesan telah disisipkan.

7. Output dari proses ini adalah citra digital yang telah disisipi, disebut dengan stego image.

(17)

8

Gambar 4 Proses Penyisipan Gambar 5 Proses Ekstraksi

Proses ekstraksi adalah proses mendapatkan kembali bit informasi pesan yang sebelumnya telah disisipkan ke dalam stego image. Gambar 4 menunjukkan langkah-langkah ekstraksi dalam bentuk flowchart. Proses ini secara garis besar terdiri dari:

1. Input dari proses ini adalah stego image, dan user key.

2. Memetakan koordinat warna cover image. Yaitu proses pemberian indeks pada tiap-tiap warna pada cover image.

3. Mengacak (shuffle) angka-angka indeks tersebut dengan algoritma Fisher-Yates. Proses shuffle dilakukan dengan menggunakan user key, sebagai random seed. Penggunaan user key yang sama akan menghasilkan urutan

(18)

9

shuffle yang sama. Sehingga proses ekstraksi dapat dilakukan dengan urutan yang sama dengan proses penyisipan.

4. Lakukan sub proses berikut:

a. Inisialiasi variabel indeks I dengan nilai 0 (I=0).

b. Berdasarkan hasil pengacakan, ambil koordinat warna indeks ke-I. c. Baca nilai LSB dari warna tersebut (ekstraksi bit pesan).

d. Lanjutkan proses ekstraksi pada warna selanjutnya (I=I+1).

5. Bit-bit pesan yang telah terkumpul, diubah ke dalam bentuk kode ASCII, kemudian diterjemahkan ke dalam karakter ASCII untuk tiap-tiap kode ASCII.

6. Output dari proses ini adalah pesan yang disisipkan.

Untuk menjelaskan proses embedding, diberikan contoh sebagai berikut. Jika diketahui potongan piksel pada suatu gambar adalah:

R G B R G B R G B R G B R G B R G 200 200 100 0 255 255 160 155 200 160 155 200 0 0 255 10 20

Kunci yang digunakan adalah “rahasia”. Maka proses penyisipan dilakukan dengan cara demikian:

1. Tentukan nilai seed dari kunci yang dimasukan. Seed diperoleh dengan cara melakukan menjumlahkan nilai ASCII tiap-tiap karakter. Hasil operasi ini adalah satu bilangan, yaitu 729.

Tabel 2 Mencari nilai Seed

r a h a s i a

114 97 104 97 115 105 97 =729

2. Nilai seed kemudian digunakan untuk melakukan shuffle.

Tabel 3 Hasil Shuffle Indeks Warna

R G B R G B R G B R G B R G B R G

200 200 100 0 255 255 160 155 200 160 155 200 0 0 255 10 20

INDEKS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

INDEKS

SHUFFLE 8 12 7 11 15 3 13 0 16 1 5 6 14 2 4 10 9

3. Pesan yang disisipkan diubah ke bentuk binary. Jika pesan adalah huruf “F”, maka nilai ASCII nya adalah 70, dalam bentuk biner 01000110.

4. Sisipkan bit pesan satu per satu, ke dalam warna, dengan menggunakan urutan indeks acak.

Tabel 4 Hasil Penyisipan BIT PESAN Embedding Indeks acak Nilai warna sesuai indeks acak Hasil Penyisipan pada LSB 0  8 200 200 1  12 0 1 0  7 155 154 0  11 200 200 0  15 10 10

(19)

10

1  3 0 1

1  13 0 1

0  0 200 200

Pada baris pertama, Tabel 4, yang terjadi adalah bit pesan “0” disisipkan pada warna indeks ke 8, yaitu warna dengan nilai 200. Sehingga 200 (binernya: 11001000) disisipi dengan nilai bit “0” pada posisi LSB, hasilnya adalah tetap 11001000. Baris kedua, nilai warna 0 (binernya: 00000000) disisipi dengan nilai bit “1”, hasilnya adalah 1.

Untuk menjelaskan proses extracting, diberikan contoh sebagai berikut. Jika diketahui potongan piksel pada suatu gambar hasil penyisipan adalah:

R G B R G B R G B R G B R G B R G 200 200 100 1 255 255 160 154 200 160 155 200 1 1 255 10 20

Kunci yang digunakan adalah “rahasia”. Maka proses ekstraksi dilakukan dengan cara demikian:

5. Tentukan nilai seed dari kunci yang dimasukan. Seed diperoleh dengan cara melakukan menjumlahkan nilai ASCII tiap-tiap karakter. Hasil operasi ini adalah satu bilangan, yaitu 729.

Tabel 5 Mencari nilai Seed

r a h a s i a

114 97 104 97 115 105 97 =729

6. Nilai seed kemudian digunakan untuk melakukan shuffle.

Tabel 6 Hasil Shuffle Indeks Warna

R G B R G B R G B R G B R G B R G

200 200 100 1 255 255 160 154 200 160 155 200 1 1 255 10 20

INDEKS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

INDEKS

ACAK 8 12 7 11 15 3 13 0 16 1 5 6 14 2 4 10 9 7. Berdasarkan urutan indeks acak, baca bit LSB pada tiap warna.

Tabel 7 Hasil Ekstraksi Indeks

acak Nilai Warna Ekstraksi

BIT PESAN 8 200  0 12 1  1 7 154  0 11 200  0 15 10  0 3 1  1 13 1  1 0 200  0

Setelah diperoleh keseluruhan bit pesan, maka bit-bit tersebut diubah ke nilai ASCII, kemudian diperoleh karakter ASCII yang bersesuaian. 01000110  70  “F”.

(20)

11

4. Hasil dan Pembahasan

Pada bagian ini dijelaskan tentang hasil penelitian yang telah dilakukan. Sistem diimplementasikan dalam bentuk aplikasi desktop. Pengembangan aplikasi dilakukan dengan menggunakan Visual Studio 2012 Express for Desktop. Aplikasi terdiri dari dua bagian utama, yaitu bagian embedding dan bagian extracting.

Gambar 6 Form Embedding

Pada Gambar 6 ditunjukkan form embedding. Form tersebut menyediakan kontrol untuk memilih gambar cover, input pesan dan kunci. Hasil embedding ditampilkan setelah proses embed selesai.

Gambar 7 Form Extracting

Pada Gambar 7, ditunjukkan form yang digunakan untuk proses ekstraksi. Form ini memerlukan input berupa gambar stego dan kunci. Output dari proses ekstraksi adalah data teks, yaitu pesan yang disisipkan sebelumnya.

Kode Program 1 Perintah Untuk Input Gambar Kedalam Aplikasi

1. private void button1_Click(object sender, EventArgs e) 2. {

3. OpenFileDialog d = new OpenFileDialog();

(21)

12

5. if (d.ShowDialog(this) == DialogResult.OK) 6. {

7. this.pictureBox1.ImageLocation = d.FileName; 8. var b = new Bitmap(d.FileName);

9. AddLog("Ukuran Piksel " + b.Width + "x" + b.Height); 10. AddLog("Kapasistas Penyisipan " + GetKapasitas(b)); 11. }

12. }

13. private static int GetKapasitas(Bitmap b) 14. {

15. return (((b.Width * b.Height * 3) / 8) - 4); 16. }

17. Bitmap b = new Bitmap(this.pictureBox1.ImageLocation); 18. var kapasitas = GetKapasitas(b);

19. if (this.textBox2.Text.Length > kapasitas) 20. {

21. MessageBox.Show("Penyisipan tidak dapat dilakukan. Panjang Pesan 22. Melebihi Kapasitas");

23. return; 24. }

Kode Program 1 merupakan potongan perintah untuk proses input image kedalam aplikasi. Format image yang digunakan adalah PNG (baris 4). Setelah gambar berhasil dimasukan maka akan tampil informasi mengenai gambar yang sudah dimasukan kedalam aplikasi yaitu informasi ukuran piksel dan kapasitas penyisipan (baris 9-10). Misalnya pada gambar berukuran 200x200 piksel, kapasitas penyisipan adalah (200 x 200 x 3 warna) / 8 bit = 15000 byte. Kemudian dikurangi 4 byte, untuk menyimpan 32 bit metadata. Sehingga kapasitas akhirnya adalah 14996 byte(baris 15). Jika pesan yang disisipkan melebihi kapasitas penyisipan maka akan diatasi dengan penanganan error atau error handling (baris19-24).

Kode Program 2 Perintah Untuk Input Pesan Dan User Key

1. If (textBox2.TextLength == 0) 2. {

3. MessageBox.Show("Pesan tidak boleh kosong"); 4.

5. return; 6. }

7. if (shuffleCheckBox.Checked && textBox3.TextLength < 8) 8. {

9. MessageBox.Show("Kunci Minimal 8 Karakter, Maksimal 12"); 10. return;

11. }

Kode Program 2 merupakan potongan perintah untuk input pesan dan input user key. Pesan rahasia adalah hal yang sangat penting dan harus dimasukan untuk memulai proses penyisipan. Pesan rahasia tidak boleh kosong (baris 1-3). Jumlah karakter yang dibutuhkan untuk memulai proses shuffle lokasi penyisipan adalah minimal 8 karakter dan maksimal 12 karakter(baris 7-10).

(22)

13

Kode Program 3 Perintah Untuk Penjumlahan Kunci

1. public class ToolKey 2. {

3. public static int SumKey(byte[] key) 4. {

5. int result = key[0];

6. for (int i = 1; i < key.Length; i++) 7. {

8. result = (result + key[i]); 9. }

10.

11. return result; 12. }

13. }

Kode program 3 merupakan perintah penjumlahan kunci menjadi angka seed(baris 5-8). Angka seed dipakai untuk melakukan proses shuffle indeks. Penggunaan user key yang sama akan menghasilkan urutan shuffle yang sama pada saat akan melakukan proses ekstraksi.

Kode Program 4 Perintah Shuffle dengan Algoritma Fisher-Yates

1. public static T[] Shuffle<T>(T[] array, int seed) 2. {

3. T[] copy = new T[array.Length];

4. array.CopyTo(copy, 0);

5. Random r = new Random(seed);

6. for (int i = copy.Length - 1; i > 0; i--)

7. {

8. int index = r.Next(i);

9. T tmp = copy[index]; 10. copy[index] = copy[i]; 11. copy[i] = tmp; 12. } 13. return copy; }

Kode Program 4 merupakan potongan perintah untuk proses shuffle dari sekumpulan nilai data. Proses shuffle dilakukan dengan menggunakan algoritma Fisher-Yates. Algoritma tersebut memanfaatkan fungsi acak. Pada .Net Framework, disediakan class random yang dapat membangkitkan bilangan acak (baris 5). Angka acak diperoleh dengan memanggil fungsi next (baris 8).

Kode Program 5 Perintah Untuk Proses Penyisipan

1. int length = data.Length;

2. byte[] blength = BitConverter.GetBytes(length); 3. byte[] pixels = ExtractPixels(cover);

4. char[] biner;

5. int[] indeks = GenerateIndex(0, pixels.Length); 6. If (shuffle)

7. {

8. int seed = Toolkey.SumKey(key);

9. indeks = FisherYates.Shuffle<int>(indeks, seed); 10. }

11. int i; 12. int p = 0; 13.

14. #region . SISIPKAN METADATA .

15. biner = GetBitString(blength).ToCharArray(); 16. for (i = 0; i < biner.Length; i++)

(23)

14

18. pixels[indeks[p]] = ReplaceLSB(pixels[indeks[p]], biner[i]);

19. LastLogData.Append(indeks[p] + " "); 20. p++;

21. }

22. #endregion 23.

24. #region . SISIPKAN DATA .

25. biner = GetBitString(data).ToCharArray(); 26.

27. for (i = 0; i < biner.Length; i++) 28. {

29. pixels[indeks[p]] = ReplaceLSB(pixels[indeks[p]], biner[i]);

30. LastLogData.Append(indeks[p] + " "); 31. p++;

32. }

33. #endregion 34.

35. Bitmap resultImage = CombinePixels(cover, pixels, new byte[0]); 36. return resultImage

Kode Program 5 merupakan potongan perintah untuk proses penyisipan ke dalam gambar. Proses terdiri dari 3 tahap utama. Tahap pertama yaitu proses shuffle indeks-indeks warna pada gambar. Proses ini dilakukan dengan algoritma Fisher-Yates (baris 6-7), dengan menggunakan seed hasil penjumlahan kunci (baris 5). Tahap kedua adalah menyisipkan metadata. Metadata memiliki arti suatu data yang memberikan informasi tentang data yang lain. Pada kasus ini, metadata berisi informasi: panjang byte data yang akan disisipkan. Tahap terakhir adalah menyisipkan data itu sendiri. Sebelum data disisipkan, data diubah kedalam bentuk biner(baris 25). Data berisi pesan yang dimasukkan oleh pengguna.

Kode Program 6 Perintah Untuk Proses Ekstraksi

1. byte[] pixels = ExtractPixels(stego);

2. int[] indeks = GenerateIndex(0, pixels.Length); 3. if (shuffled)

4. {

5. Int seed = Toolkey.SumKey(key)

6. indeks = FisherYates.Shuffle<int>(indeks, seed); 7. }

8. int i; 9. int p = 0; 10.

11. #region . EXTRACT METADATA . 12. char[] biner = new char[32]; 13. for (i = 0; i < 32; i++) 14. { 15. biner[i] = RetrieveLSB(pixels[indeks[p]]); 16. LastLogData.Append(indeks[p] + " "); 17. p++; 18. }

19. byte[] blength = GetBytesArray(new string(biner)); 20. int length = BitConverter.ToInt32(blength, 0); 21. #endregion

22.

23. #region . EXTRACT DATA . 24. biner = new char[length * 8]; 25. for (i = 0; i < biner.Length; i++) 26. { 27. biner[i] = RetrieveLSB(pixels[indeks[p]]) 28. LastLogData.Append(indeks[p] + " "); 29. p++; 30. } 31. #endregion 32.

(24)

15

33. return GetBytesArray(new string(biner.ToArray()));

Kode Program 6 merupakan potongan perintah untuk proses ekstraksi dari dalam gambar. Proses terdiri dari 3 tahap utama. Tahap pertama yaitu proses shuffle indeks-indeks warna pada gambar. Proses ini dilakukan dengan algoritma Fisher-Yates (baris 3-4), dengan menggunakan seed hasil penjumlahan kunci (baris 2). Tahap kedua adalah ekstraksi metadata. Metadata diekstrak terlebih dahulu, untuk mengetahui berapa banyak bit data yang akan diekstrak selanjutnya. Tahap terakhir adalah ekstraksi data itu sendiri atau membaca LSB pada warna yang disisipkan (baris 27).

Sistem yang dikembangkan pada penelitian ini didasarkan pada latar belakang masalah yaitu bagaimana menyisipkan informasi pada gambar secara acak. Berdasarkan hal tersebut, maka dilakukan beberapa pengujian. Pengujian pertama yaitu pengujian keberhasilan penyisipan pesan (uji integritas). Pengujian kedua adalah pengujian perbandingan perbedaan warna. Pengujian-pengujian tersebut dilakukan dengan menggunakan standart test images [17] yang biasa digunakan pada pengujian algoritma pengolahan gambar.

Pengujian pertama yaitu pengujian integritas pesan. Pengujian ini bertujuan untuk membuktikan bahwa proses penyisipan berhasil dilakukan, dan pesan yang diproses (embed dan extract), tidak mengalami perubahan.

Tabel 8 Hasil Pengujian Integritas pesan

No Gambar Pesan Masuk Pesan Keluar Sama

1

Halo FTI UKSW Halo FTI UKSW

Ya

2 Ya

3 Ya

(25)

16 1 Universitas Kristen Satya Wacana Universitas Kristen Satya Wacana Ya 2 Ya 3 Ya 4 Ya 1 Jl. Diponegoro No. 52-60, Salatiga, Jawa Tengah 50711 (0298) 321212 Jl. Diponegoro No. 52-60, Salatiga, Jawa Tengah 50711 (0298) 321212 Ya 2 Ya 3 Ya 4 Ya

Berdasarkan hasil pengujian integritas pesan, disimpulkan bahwa pesan yang telah melalui proses embed dan extract, tidak mengalami perubahan. Karena

(26)

17

metadata yang digunakan memiliki ukuran 32 bit, maka panjang maksimal pesan yang dapat disisipkan adalah 232 = 4.294.967.296 byte (4 milyar karakter). Selain dibatasi oleh metadata, ukuran gambar mempengaruhi panjang pesan yang dapat disisipkan.

Pengujian kedua adalah pengujian perbandingan perbedaan warna. Pengujian ini dilakukan dengan menyisipkan data pada 8 gambar berbeda. Kemudian dibandingkan perbedaan piksel yang diakibatkan oleh proses penyisipan. Proses penyisipan dilakukan antara steganografi dengan Fisher-Yates, dan steganografi tanpa Fisher-Yates. Kunci yang digunakan untuk Fisher-Yates adalah “fti.uksw”, dan pesan yang disisipkan adalah:

“Satya Wacana, Satya Wacana, hiduplah garba ilmiah kita. Mengabdi Tuhan, gereja dan bangsa, proklamasikan Kerajaan Sorga.

Bela k’adilan, bela keb’naran, pantang mundur maju perkasa. Bina negara, hamba Allahnya, amalkan hikmat Pancasila.”

Tabel 9 Hasil Pengujian Perbandingan Perbedaan Warna

No Gambar Asli Stego dengan Fisher-Yates Perbedaan Warna dengan gambar asli Stego Tanpa Fisher-Yates Perbedaan Warna dengan gambar asli 1. 965 977 2. 958 958 3. 968 970 4. 967 1020

(27)

18 5. 989 992 6. 989 1004 7. 975 975 8. 960 993 9. 920 1046

Hasil pengujian perbandingan perbedaan piksel menunjukkan bahwa dengan menyisipkan secara acak, akan memberikan kemungkinan perubahan piksel yang lebih sedikit. Kemungkinan ini juga dipengaruhi oleh kunci yang digunakan, mengingat kunci digunakan untuk membuat nilai SEED, dan digunakan untuk membuat urutan penyisipan acak.

Pengujian ketiga, yaitu pengujian pengaruh kunci, dilakukan untuk membuktikan bahwa kunci dapat mempengaruhi perbedaan warna yang dihasilkan. Pada pengujian ini dilakukan pengisipan pesan yang sama, pada gambar yang sama, namun dengan kunci yang berbeda-beda.

Tabel 3 Hasil Pengujian Pengaruh Kunci No Kunci (8-12

karakter)

SEED Gambar Asli Stego dengan Fisher-Yates

Perbedaan warna

(28)

19 2. FTI.uksw 731 989 3. satya.wacana 1211 970 4. satya.WACANA 1019 1010 5. @@##12bc 494 1000 6. 9987aXUy^*f5 907 982 7. 998799871234 652 1006 8. ABCDEFGHIJKL 846 1940 9. abcdefghijkl 1230 1908

(29)

20 10. aaaabbbbcccc 1176 1888 11. xxxx1234xxxx 1162 1880 12. 777777777777 660 1905 13. HelloworlD 1020 1889 14. worldhello 1084 1885 15. 1234abcd 596 1920

Hasil pengujian pengaruh kunci, memberikan hasil yaitu kunci yang berbeda akan memberikan hasil penyisipan yang berbeda. Tidak ada aturan khusus dalam pemilihan kunci yang terbaik. Untuk meminimalkan perubahan warna, yang dapat dilakukan adalah dengan melakukan penyisipan beberapa kali dengan beberapa pilihan kunci, dan dipilih kunci yang akhirnya memberikan nilai perbedaan warna terkecil. Pada Tabel 3, kunci “fti.uksw” memberikan perubahan yang paling minimal pada stego image.

Analisis dari hasil pengembangan aplikasi dan pengujian adalah, dengan menggunakan .NET Framework, aplikasi steganografi lebih mudah dikembangkan, terutama dalam hal pengolahan piksel gambar, dan penggunakan class random. Class Bitmap pada .NET Framework menyediakan fungsionalitas untuk membaca dan mengubah nilai warna pada piksel gambar. Class random

(30)

21

menyediakan fungsionalitas untuk membangkitkan bilangan acak, yang digunakan pada proses shuffle.

Penggunaan Fisher-Yates memberikan keuntungan yaitu pesan yang disisipkan, dilakukan dalam posisi yang acak, tersebar dalam piksel-piksel warna. Pesan yang disisipkan dengan cara demikian, memiliki potensi keamanan lebih tinggi daripada pesan yang disisipkan dengan berurutan. Kelemahan yang muncul yaitu adanya tambahan proses selain proses embedding dan extracting, yaitu proses shuffle. Karena proses shuffle bekerja dengan cara mengacak posisi indeks warna pada gambar, maka semakin banyak warna (semakin besar gambar), maka semakin lama pula proses shuffle yang dilalui.

5. Simpulan

Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut: (1) Steganografi pada citra digital dapat diimplementasikan dengan menggabungkan metode penyisipan yang memanfaatkan LSB, dan posisi penyisipan yang acak dengan algoritma Fisher-Yates; (2) Penyisipan secara acak disebarkan pada seluruh gambar. Penyisipan non-acak disisipkan secara berurutan, sehingga merusak piksel mulai dari sisi kiri atas. Hal ini memiliki resiko ketika bit diekstrak secara berurutan, maka pesan yang disembunyikan akan dapat diperoleh; (3) Hasil pengujian menunjukkan bahwa dengan mengacak posisi penyisipan, dapat memberikan kemungkinan perubahan piksel yang lebih sedikit; (4) Kunci yang digunakan, akan mempengaruhi lokasi penyisipan, sehingga akan kunci yang berbeda untuk pesan dan gambar yang sama, akan menghasilkan stego image yang berbeda.

Saran yang dapat diberikan untuk penelitian dan pengembangan lebih lanjut adalah dalam hal pemanfaatan angka seed yang bervariasi. Seperti diketahui bahwa angka seed mempengaruhi hasil urutan lokasi penyisipan (hasil shuffle). Angka seed dapat dibangkitkan sebanyak beberapa angka. Untuk tiap angka, disimulasikan lokasi penyisipan, hasil penyisipan, dan berapa persen bit yang ganti (0 jadi 1 atau 1 jadi 0). Kemudian dipilih angka seed yang memberikan nilai perbedaan terkecil. Hal ini akan semakin menurunkan tingkat kerusakan pada citra digital, dan menurunkan kecurigaan.

6. Daftar Pustaka

[1]. FLOSS Manuals 2015. Understanding Basic InterNet Security. http://en.flossmanuals.Net/basic-interNet-security/ch003_understanding-basic-interNet-security/. Diakses pada 7 Juli 2015

[2]. Forouzan, B. A. 2007. Cryptography & Network Security. McGraw-Hill, Inc.

[3]. Weiss, M. 2009. Principles of Steganography. n, d.[Online]. Available: http://www. math. ucsd. edu/~ crypto/Projects/MaxWeiss/steganography. pdf.[Accessed: March 15, 2009]

(31)

22

[4]. Potdar, V. M. & Chang, E. 2004. Grey level modification steganography for secret communication. In Industrial Informatics, 2004. INDIN’04. 2004 2nd IEEE International Conference on, pp. 223–228.

[5]. Black, P. E. 2005. Fisher-Yates shuffle. Dictionary of Algorithms and Data Structures 19.

[6]. Alatas, P. 2009. Implementasi Teknik Steganografi dengan Metode LSB pada Citra Digital. Universitas Gunadarma

[7]. Pada, R. L. & Pakereng, M. A. I. 2015. Perancangan dan Implementasi Kriptografi Menggunakan Vigenere Cipher dan Fisher-Yates Shuffle Pada Data Citra Digital. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana

[8]. Munir, R. 2006. Kriptografi. Informatika, Bandung

[9]. Arusbusman, Y. R. 2007. Image Steganografi.

[10]. Ade-Ibijola, A. O. 2012. A Simulated Enhancement of Fisher-Yates Algorithm for Shuffling in Virtual Card Games using Domain-Specific Data Structures. International Journal of Computer Applications 54.

[11]. Chandramouli, R. & Memon, N. 2001. Analysis of LSB based image steganography techniques. In Image Processing, 2001. Proceedings. 2001 International Conference on, pp. 1019–1022.

[12]. Rafferty, C. 2005. Steganography & Steganalysis of Images. National University of Ireland, Galway

[13]. Willamette.edu In press. Image File Formats.

[14]. Randers-Pehrson, G., Boutell, T. & others 1999. PNG (Portable Network Graphics) Specification, Version 1.2. PNG Development Group 28.

[15]. Microsoft 2015. Overview of the .NET Framework. https://msdn.microsoft.com/id-id/library/zw4w595w(v=vs.110).aspx. Diakses pada 4 November 2015.

[16]. Pressman, R. S. & Jawadekar, W. S. 1987. Software engineering. New York 1992

[17]. Weber, A. 1993. The USC-SIPI Image Database. http://sipi.usc.edu/database/. Diakses pada 3 Oktober 2015.

Gambar

Tabel 1 Contoh Langkah Fisher-Yates Shuffle
Gambar 1 True Color 24 bit dan 32 bit [14]
Gambar 2 Tahapan Penelitian
Gambar 4 Proses Penyisipan   Gambar 5 Proses Ekstraksi
+7

Referensi

Dokumen terkait

Selain itu penelitian ini bertujuan untuk mengetahui faktor- faktor yang berhubungan dengan tingkat risiko DMT2 dan mengetahui hubungan antara tingkat risiko DMT2

Kerusakan yang terjadi akibat penangkapan kerang mata tujuh (Abalon) yang dilakukan oleh nelayan dengan tingginya nilai komponen abiotik (Gambar 2) dan kematian

Dengan demikian, Persib akan dapat secara perlahan keluar dari permasalahan klasik yang melanda nyaris seluruh klub sepakbola di Indonesia: tidak berprestasi dan

 Bagi Penyedia Jasa atau Pemilik Kapal yang sedang menjalani pemeriksaan oleh instantsi yang terkait, antara lain pihak kepolisian, TNI, Bea Cukai, Perpajakan, atas

Lebih lanjut, ratiied treaty di Inggris tidak dapat diterapkan secara langsung di pengadilan karena kewenangan untuk membuat aturan hukum bukan pada lembaga eksekutif, melainkan pada

 Tujuan Pernyataan Standar Laporan arus kas adalah mengatur penyajian laporan arus kas yang memberikan informasi historis mengenai perubahan kas dan setara kas suatu

Untuk membuat sistem pengaman Brankas Bank dengan menggunakan SMS dan GPS yang berbasis Android maka langkah yang dikerjakan yaitu membuat blok diagram sistem, rangkaian

Gambar 4.11 Peta ZNT berdasarkan harga NJOP Berdasarkan NJOP nilai tanah terendah di Kecamatan Semarang Selatan adalah sebesar Rp 464.000 dengan total bidang sebanyak