1
APLIKASI PENGACAKAN CITRA DIGITAL DENGAN METODE FIBONACCI DAN LUCAS SEQUENCE
MUHAMMAD FARIZ ALAMSYAH NASUTION
Jurusan Teknik Informatika Sekolah Tinggi Teknik Harapan Medan
,Jl. HM Jhoni No 70 Medan, Indonesia
alamsyah_fariz@yahoo.co.id
Abstrak
Dalam proses komunikasi melalui jaringan internet, keamanan merupakan masalah penting yang perlu mendapat perhatian serius. Hal ini dikarenakan proses pengiriman dan komunikasi data melalui jaringan internet memiliki kemungkinan untuk disadap oleh pihak lain. Hal ini juga berlaku terhadap data citra. Oleh karena itu, data yang akan dikirimkan melalui internet harus diamankan terlebih dahulu. Namun, penerapan beberapa metode kriptografi dan beberapa metode pengacakan citra memerlukan waktu yang relatif lama. Untuk menyelesaikan permasalahan yang dihadapi, maka dapat diterapkan algoritma Image Scrambling Generalized
Fibonacci And Lucas Transformation. Proses kerja dari algoritma akan dimulai dari proses pemilihan citra input
dan pengisian nilai kunci yang akan digunakan. Setelah itu, proses dilanjutkan dengan proses pengacakan citra, sehingga akan dihasilkan citra teracak. Citra yang dihasilkan tersebut dapat direkonstruksi kembali dengan menerapkan algoritma anti-scrambling. Proses ini memerlukan kunci yang sama yang digunakan pada tahapan
scrambling. Aplikasi yang dihasilkan dapat mengacak citra asli dengan mengisi nilai kunci pengacakan. Citra
yang dihasilkan dapat direkonstruksi kembali dengan menggunakan kunci yang sama. Selain itu, aplikasi juga akan menghasilkan laporan detail perhitungan yang dilakukan pada saat proses scrambling dan anti-scrambling untuk masing-masing metode tersebut.
Kata kunci : transformasi fibonacci, tranformasi lukas, pengacakan citra 1. Pendahuluan
Proses pengacakan citra adalah proses
transformasi sebuah citra input menjadi citra yang tidak memiliki arti apa-apa ataupun dengan perkataan lain piksel citra dalam kondisi teracak dan tidak beraturan sehingga tidak kelihatan objek pada citra. Tujuan utama dari teknik pengacakan citra adalah untuk mentransformasikan sebuah citra
asli menjadi sebuah citra teracak untuk
meningkatkan kekuatan untuk tahan terhadap
penyerangan sehingga mampu meningkatkan
sekuritas. [5]
Pengacakan biasanya dilakukan terhadap posisi piksel (x, y). Sebuah transformasi diterapkan secara berulang hingga citra kelihatan acak oleh pengamat telah diperkenalkan sebuah pendekatan formal untuk bidang ilmu pengacakan citra. [5] Para ahli mengembangkan pendekatan ini berdasarkan pada dua buah premis, yaitu: 1) karena pengacakan citra menghilangkan korelasi citra, untuk kemungkinan
penghilangan korelasi yang paling bagus,
diperlukan sebuah transformasi yang memisahkan piksel yang berhubungan sejauh mungkin satu sama lain; 2) menggunakan ide dari keseragaman dari sebuah transformasi untuk mendeskripsikan tingkat pengacakan. Keseragaman dalam hal ini berarti bahwa piksel yang berhubungan tersebar secara merata pada citra hasil pengacakan. Mereka mengemukakan sebuah famili transformasi yang dapat digunakan untuk pengacakan citra. Setiap anggota famili ditentukan oleh dua buah parameter integer a dan b dan penerapannya pada pengacakan citra tergantung pada dua buah bilangan Gn dan
Gn+1. Semua parameter ini (a, b, Gn dan Gn+1) dapat digunakan sebagai kunci, yang hanya diketahui oleh pengirim dan penerima. Variabel ini bersama dengan sebuah deretan dari bilangan integer acak
(r(1), r(2), …, r(t)), dimana t adalah periode transformasi dapat digunakan sebagai kunci. Mereka membahas dua anggota dari famili ini yaitu
transformasi Fibonacci dan Lucas serta
menunjukkan bahwa keduanya memiliki sifat keseragaman. Kedua jenis transformasi ini bersifat periodik, dimana periodik berarti bahwa jumlah transformasi yang harus dilakukan secara berulang hingga citra asli dapat diperoleh kembali. Transformasi pengacakan ini memiliki beberapa keuntungan berikut: 1) Biaya komputasi yang rendah sehingga sangat efektif untuk diterapkan dalam situasi real time; 2) Efek pengacakan cukup bagus, karena informasi dari citra input akan didistribusikan ulang pada keseluruhan citra.
Berdasarkan uraian latar belakang diatas, maka yang menjadi permasalahan adalah:
1. Belum tersedia aplikasi yang menerapkan
algoritma Fibonacci dan Lucas dalam
melakukan pengacakan citra digital.
2. Kesulitan untuk mengetahui kinerja dari algoritma Fibonacci dan Lucas.
Fibonacci adalah salah satu sistem numerik yang paling terkenal sekarang. Pada
deretan bilangan Fibonacci, setiap angka
merupakan penjumlahan dari dua angka
sebelumnya, dimulai dengan nol dan satu. Semakin tinggi nilai pada deretan, dua buah bilangan Fibonacci yang berdekatan dalam deretan apabila
2
dibagi satu sama lain maka akan memiliki rasio rata-rata 1 : 1.618 atau 0.618 : 1. [2]
Deretan Fibonacci dapat didefinisikan sebagai berikut:
………. (1)
Dengan mengaplikasikan persamaan
diatas, maka dapat dibangkitkan sebuah deretan Fibonacci yang terdiri dari bilangan (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …). [4]
Bilangan Lucas dapat didefinisikan
sebagai penjumlahan dari dua buah bilangan sebelumnya, memiliki bentuk rumusan yang sama dengan deretan bilangan integer Fibonacci. Dua bilangan Lucas pertama adalah L0 = 2 dan L1 = 1 berbeda dengan dua bilangan Fibonacci pertama F0 = 0 dan F1 = 1. Walaupun memiliki kemiripan dalam definisi, namun bilangan Lucas dan Fibonacci memiliki sifat yang berbeda. Bilangan Lucas dapat didefinisikan sebagai berikut:
………. (2) Deretan dari bilangan Lucas adalah 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 189, … [3].
Bilangan 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 dan seterusnya disebut sebagai bilangan Fibonacci. Bilangan 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199 dan seterusnya disebut sebagai bilangan Lucas. Bilangan Fibonacci dan bilangan Lucas dapat diterapkan dalam berbagai bidang. Salah satunya adalah dapat diterapkan pada bidang keamanan informasi.
Anggap G1 = a, G2 = b dan Gn = Gn-1 + G n-2, n 3, dimana a dan b adalah bilangan integer
non-negatif. Deretan {Gn} disebut sebagai
generalized Fibonacci sequence (GFS).
1. Ketika a = 1, b = 1, generalized Fibonacci
sequence {Gn} disebut sebagai deretan Fibonacci {Fn}.
2. Ketika a = 1, b = 3, maka generalized
Fibonacci sequence {Gn} disebut sebagai deretan Lucas {Ln}.
Anggap terdapat sebuah deretan integer berbeda konsekutif {0, 1, 2, …, B – 1}. Untuk
sebuah distinguished generalized Fibonacci
sequence (DGFS) {Gn}, deretan dari integer {Sk}, Sk = (kGn + r) mod Gn+1, r 0, 1, 2, …, B – 1
………. (3) adalah sebuah permutasi dari deretan asli {0, 1, 2, …, B – 1}.
Anggap Gn dan Gn+1 adalah dua buah bilangan generalized Fibonacci berbeda yang
adjacent. Trasnformasi berikut disebut sebagai transformasi Generalized Fibonacci.
Sk = (kGn + r) mod Gn+1 , k = 0, 1, 2, …, Gn-1 – 1 ………. (4) r dapat dianggap sebagai sebuah kunci untuk transformasi pengacakan. Untuk aplikasi berurutan dari transformasi ini, maka dapat dipilih berbagai nilai r yang berbeda.
Anggap Fn dan Fn+1 adalah dua buah
bilangan Fibonacci yang berurutan, maka
transformasi berikut disebut sebagai transformasi
Fibonacci.
Sk = (kFn + r) mod Fn+1 , k = 0, 1, 2, …, Fn+1 – 1 ………. (5) Anggap Ln dan Ln+1 adalah dua buah bilangan Lucas yang berurutan, maka transformasi berikut disebut sebagai transformasi Lucas.
Sk = (kLn + r) mod Ln+1 , k = 0, 1, 2, …, Ln+1 – 1 ………. (6)
2. Metodologi Penelitian
Metodologi penelitian yang akan
dilakukan oleh penulis yaitu tahapan tahapan yang dilakukan oleh penulis mulai dari perumusan masalah sampai pada kesimpulan yang membentuk suatu alur yang sistematis. Metode ini dijadikan penulis sebagai pedoman penelitian penulisan ini, guna untuk mencapai hasil yang dicapai, tidak menyinggung dari permasalahan, tujuan yang telah ditentukan sebelumnya. Sehingga dengan adanya metode ini penulis dapat mengembangkan sistem dengan terarah dan dapat dikerjakan sesuai target
atau jadwal yang telah penulis tentukan
sebelumnya. Selain itu, metode ini menuntut penulis agar dalam proses pengembangan sistem tidak lari dari pokok permasalahan yang ada.
Untuk membantu mempermudah
perancangan aplikasi, maka perlu digambarkan use
case diagram dari aplikasi. Adapun use case diagram yang telah dirancang dapat dilihat pada
gambar 1 berikut.
Input data kunci
Jalankan proses anti-scrambling
Perangkat Lunak Perbandingan Metode Transformasi Fibonacci dan Lukas dalam Melakukan Pengacakan Citra
Pengirim
Jalankan proses scrambling
Penerima Input citra Pilih algoritma << include >> << include >> << include >> Simpan citra << include >> << include >> << include >> << include >>
Gambar 1. Use Case Diagram dari Aplikasi Seperti terlihat pada gambar 1, pertama kali pengirim akan melakukan pengisian data kunci yang diperlukan terlebih dahulu pada tahapan Input Data Kunci. Setelah itu, pengirim dapat memilih algoritma yang ingin digunakan, yaitu algoritma Fibonacci dan Lucas pada tahapan Pilih Algoritma. Kemudian, pengirim akan memilih citra yang diperlukan pada tahapan Input Citra. Setelah semua
3
data yang diperlukan dimasukkan, maka pengirim dapat menjalankan proses scrambling untuk melakukan proses pengacakan terhadap citra input yang dilakukan pada tahapan Jalankan Proses
Scrambling. Citra hasil pengacakan dapat disimpan
ke dalam sebuah file citra pada tahapan Simpan Citra.
Hal yang sama juga dilakukan pada proses
anti-scrambling untuk melakukan rekonstruksi
terhadap citra teracak. Proses ini dilakukan pada tahapan Jalankan Proses Anti-Scrambling. Pada tahapan ini diperlukan data kunci dari tahapan Input Data Kunci dan data citra dari tahapan Input Citra. Citra hasil rekonstruksi akan dapat disimpan ke dalam sebuah file citra. Proses ini akan dilakukan pada tahapan Simpan Citra.Activiy
Prosedur kerja dari aplikasi pengacakan citra digital dengan metode Fibonacci dan Lucas dapat digambarkan seperti terlihat pada gambar
activity diagram berikut:
1. Activity Diagram dari Menu
Pada saat user menjalankan aplikasi,
aplikasi pengacakan citra akan
menampilkan menu pilihan untuk user. Apabila user memilih menu scrambling, maka aplikasi akan menampilkan form
scrambling. Sementara itu, apabila user
memilih menu un-scrambling maka
aplikasi pengacakan citra akan
menampilkan form un-scrambling.
Terakhir, apabila user memilih menu
mengenai pembuat, maka aplikasi
pengacakan citra akan menampilkan
form mengenai pembuat. Rancangan activity diagram dari menu dapat dilihat
pada gambar berikut:
User Aplikasi Pengacakan Citra
Tampilkan form scrambling
Tampilkan form un-scrambling Tampilkan form mengenai pembuat Ya Tidak Ya Tidak Ya Tidak Tampilkan menu Jalankan aplikasi
Pilih menu scrambling
Pilih menu un-scrambling
Pilih menu mengenai pembuat
Gambar 2. Activity Diagram dari Menu 2. Activity Diagram dari Aplikasi
Scrambling
Proses scrambling akan dimulai dari penginputan data citra digital yang akan
diacak yang dilakukan oleh user. Kemudian, aplikasi pengacakan citra akan menampilkan citra yang dipilih. Setelah itu, user dapat memilih metode yang akan digunakan. Apabila user ingin melakukan penginputan kunci secara manual, maka user dapat menginput nilai kunci r. Jika tidak, maka aplikasi pengacakan citra akan menghasilkan kunci secara acak. Setelah itu, aplikasi pengacakan citra akan melakukan proses enkripsi dengan metode yang dipilih dan menampilkan output citra terenkripsi. Kemudian, user dapat mengklik tombol Simpan sehingga aplikasi pengacakan citra akan menampilkan kotak dialog
browse. Terakhir, user dapat memilih
lokasi dan nama file sehingga aplikasi pengacakan citra akan menyimpan citra ke file citra hasil. Rancangan activity
diagram dari aplikasi scrambling dapat
dilihat pada gambar berikut:
Input citra
Input nilai kunci r
Lakukan proses enkripsi dengan metode yang dipilih
User
Output citra terenkripsi
Aplikasi Pengacakan Citra
Hasilkan kunci secara acak Ya
Tidak
Tampilkan citra yang dipilih
Klik tombol Simpan
Tampilkan kotak dialog browse Pilih lokasi dan
nama file
Simpan file citra Pilih metode yang
digunakan
Input kunci secara manual ?
Gambar 3. Activity Diagram dari Aplikasi
Scrambling
3. Activity Diagram dari Aplikasi Un-scrambling
Proses un-scrambling akan dimulai dari penginputan data citra digital yang akan diacak yang dilakukan oleh user. Kemudian, aplikasi pengacakan citra akan menampilkan citra yang dipilih. Setelah itu, user dapat memilih metode yang akan digunakan. Apabila user ingin melakukan penginputan kunci secara
4
manual, maka user dapat menginput nilai kunci r. Jika tidak, maka aplikasi pengacakan citra akan menghasilkan kunci secara acak. Setelah itu, aplikasi pengacakan citra akan melakukan proses dekripsi dengan metode yang dipilih dan
menampilkan output citra semula.
Kemudian, user dapat mengklik tombol Simpan sehingga aplikasi pengacakan citra akan menampilkan kotak dialog
browse. Terakhir, user dapat memilih
lokasi dan nama file sehingga aplikasi pengacakan citra akan menyimpan citra ke file citra hasil. Rancangan activity
diagram dari aplikasi un-scrambling
dapat dilihat pada gambar berikut:
Input citra terenkripsi
Input nilai kunci r
Lakukan proses dekripsi dengan metode yang dipilih
User
Output citra semula
Aplikasi Pengacakan Citra
Tampilkan citra yang dipilih
Klik tombol Simpan
Tampilkan kotak dialog browse Pilih lokasi dan
nama file
Simpan file citra Pilih metode yang
digunakan
Gambar 4. Activity Diagram dari Aplikasi
Un-scrambling
4. Activity Diagram dari Mengenai Pembuat
Apabila user mengklik tombol mengenai
pembuat, maka aplikasi akan
menampilkan form data pembuat.
Terakhir, apabila user memilih tombol keluar, maka aplikasi pengacakan citra akan menutup form. Rancangan activity
diagram dari mengenai pembuat dapat
dilihat pada gambar berikut:
User Aplikasi Pengacakan Citra
Tampilkan form data pembuat
Ya
Tidak
Klik tombol mengenai pembuat
Input kunci secara manual ?
Gambar 5. Activity Diagram dari Mengenai Pembuat
3. Hasil dan Pembahasan
Untuk menggunakan perangkat lunak ini, jalankan file ”Program_Mengacak_Citra.EXE”, maka akan ditampilkan tampilan utama dari program seperti terlihat pada gambar berikut:
Gambar 6. Tampilan Utama
Pada tampilan utama ini terdapat beberapa tombol yang berfungsi untuk mengakses form-form yang terdapat dalam sistem. Berikut perincian dari tombol yang terdapat dalam sistem:
1. Tombol ‘Scrambling’ yang berfungsi
untuk menampilkan form Scrambling.
2. Tombol ‘Anti Scrambling’ yang berfungsi
untuk menampilkan form Anti-Scrambling. 3. Link ‘Mengenai Pembuat’ yang berfungsi
untuk menampilkan form Mengenai. 4. Link ‘Teori’ yang berfungsi untuk
menampilkan teori pendukung mengenai perangkat lunak.
Untuk melakukan pengacakan terhadap sebuah citra input, maka dapat mengklik tombol ‘Scrambling’, sehingga akan ditampilkan form Scrambling Tahap 1 berikut:
1. Tampilan Form Scrambling Tahap
5
Gambar 7. Tampilan Form Scrambling Tahap Pertama
Langkah pertama dari proses pengacakan citra adalah memilih citra input, yaitu dengan mengklik tombol ‘…’ sehingga akan muncul kotak dialog Open yang akan digunakan untuk mencari dan memilih file yang diinginkan. Tampilan kotak dialog Open dapat dilihat pada gambar berikut:
Gambar 8. Tampilan Kotak Dialog Open Pilihlah file yang ingin diacak. Misalkan dipilih file ‘5k.jpg’, kemudian kliklah tombol ‘Open’ sehingga sistem akan membaca dan menampilkan gambar tersebut, seperti terlihat pada tampilan berikut ini:
Gambar 9. Tampilan Form Scrambling Setelah Pemilihan File Citra
Setelah itu, tentukan jenis algoritma yang akan dipakai. Apabila ingin menggunakan deretan Fibonacci, maka kliklah radiobutton ‘Fibonacci Sequence’, sedangkan apabila ingin menggunakan deretan Lucas, maka kliklah radiobutton ‘Lucas Sequence’. Proses dilanjutkan lagi dengan menentukan kunci yang akan digunakan. Apabila
pemakai menginginkan agar sistem yang
menentukan kuncinya secara otomatis berdasarkan pada ukuran citra input, maka kliklah checkbox ‘Set secara Otomatis’ sehingga sistem akan menentukan
semua data input kunci secara otomatis. Demikian juga halnya dengan nilai r yang akan digunakan. Apabila pemakai ingin ditentukan secara otomatis, maka dapat mengklik tombol ‘Acak’ sehingga sistem akan mengambil sebuah nilai acak sebagai nilai r.
Setelah semua data dimasukkan, maka kliklah tombol ‘Proses’ sehingga sistem akan menampilkan form Scrambling Tahapan Kedua apabila semua data input valid. Jika tidak, maka sistem akan menampilkan pesan kesalahan. Tampilan form Scrambling Tahapan Kedua dapat dilihat pada gambar berikut:
Gambar 10. Tampilan Form Scrambling Setelah Semua Data Dimasukkan
Gambar 11. Tampilan Form Scrambling Tahapan Kedua
Pada form Scrambling Tahapan Kedua ini akan ditampilkan citra hasil pengacakan dan juga lama waktu eksekusi yang diperlukan. Selain itu, pada form ini juga disediakan dua buah fasilitas yaitu:
1. Tombol ‘Generate Laporan’ yang
digunakan untuk menghasilkan laporan
detail perhitungan mengenai proses
scrambling terhadap citra input yang telah dilakukan. Tampilan form Laporan dapat dilihat pada gambar berikut:
6
Gambar 12. Tampilan Form Laporan
2. Tombol Simpan yang berfungsi untuk
menyimpan citra hasil pengacakan ke dalam sebuah file citra digital. Tampilan kotak dialog Save dapat dilihat pada gambar berikut:
Gambar 13. Tampilan Kotak Dialog Save
Setelah selesai melakukan proses
pengacakan citra, maka proses dapat dilanjutkan dengan merekonstruksi kembali citra teracak tersebut. Proses tersebut dapat dilakukan dengan mengklik tombol ‘Anti Scrambling’ yang terdapat pada form ‘Main’. Tampilan yang muncul pertama kali adalah form ‘Proses Anti Scrambling-Input Data’ seperti terlihat pada gambar berikut:
Gambar 14. Tampilan Form ‘Proses Anti Scrambling-Input Data’
Isikan semua nilai yang diperlukan untuk merekonstruksi kembali citra semula, seperti jenis algoritma yang dipakai dan besar nilai kunci yang digunakan. Tampilan output sistem setelah mengisi
semua data yang diperlukan dapat dilihat pada gambar berikut:
Gambar 15. Tampilan Form ‘Proses Anti Scrambling-Input Data’ Setelah Memilih File Citra
Klik tombol ‘Proses’ untuk memulai proses anti-scrambling. Setelah proses selesai, sistem akan menampilkan form ‘Hasil Proses Anti Scrambling’ berikut:
Gambar 16. Tampilan Form ‘Hasil Proses Anti Scrambling’
4. Penutup
Setelah menyelesaikan pembuatan
perangkat lunak ini, penulis dapat menarik beberapa kesimpulan sebagai berikut:
1. Perangkat lunak dapat membandingkan
metode transformasi Fibonacci dan Lucas dalam melakukan pengacakan citra, sehingga dapat diketahui kinerja dari metode transformasi Fibonacci dan Lucas dalam mengamankan citra digital.
2. Metode transformasi Fibonacci memiliki
waktu eksekusi yang lebih cepat
daripada metode transformasi Lucas.
3. Metode transformasi Fibonacci dan
Lucas dapat melakukan pengacakan terhadap citra digital sehingga dapat meningkatkan keamanan dari citra digital rahasia.
4. Metode transformasi Fibonacci dan
Lucas menghasilkan citra teracak yang memiliki ukuran lebih besar daripada ukuran citra asli.
5. Aplikasi dapat digunakan untuk menguji
kinerja dari metode transformasi
7
5. Daftar Pustaka
[1] Anton, H. dan C. Rorres. (2005).
Aljabar Linear Elementer, Edisi Kedelapan – Jilid 2, Versi Aplikasi, Penerbit Erlangga.
[2] Canaan, C., M. S., Garai dan M. Daya, (2011). All About Fibonacci: A python
approach, World Applied Programming
Vol (1), No (1), ISSN 2222-2510.
[3] Chandrasekhar, A., D. Chaya Kumari,
CH. Pragathi dan Ashok Kumar, (2016).
Multiple Encryption of Independent Ciphers, International Journal of Mathematical Archive-7(2), ISSN 2229-5046.
[4] El Abbadi, N. K., S. T. Abaas dan A. A.
Alaziz, (2016). New Image Encryption
Algorithm Based on Diffie-Hellman dan Singular Value Decomposition,
International Journal of Advanced
Research in Computer and
Communication Engineering, Vol.5,
Issue 1, ISSN 2319-5940.
[5] Jiancheng Zou, Rabab K. Ward dan
Dongxu Qi (2004). The Generalized
Fibonacci Tranformations and Application to Image Scrambling. IEEE.
Alamat URL :
ispl.korea.ac.kr/conference/ICASSP2004 /pdfs/0300385.pdf
[6] Kiran Singh Sisodiya, Bijendra Singh,
Kiran Sisodiya, 2014, On Lucas
Sequence Formula for Solving the Missing Terms of a Recurrence Sequence, International Journal Of
Technology Enhancements And
Emerging Engineering Research, Vol 2, Issue 5 142 ISSN 2347-4289
[7] Murni, A., 2011, Pengantar
Pengolahan Citra, PT. Elex Media
Komputindo, Jakarta.
[8] Purnamayanti, Thresye, Na’imah
Hijriati, 2012, Formula Biner dan
Jumlah n Suku Pertama pada Generalisasi Bilangan Fibonacci dengan Metode Matriks, Jurnal Matematika Murni dan Terapan, Vol. 6, No. 1 Juni 2012: 38-46.
[9] Rahmat Putra, 2011, The Best Source
Code Visual Basic, PT. Elex Media
Komputindo.
[10] Rinaldi Munir, 2004, Pengantar
Pengolahan Citra, PT. Elex Media
Komputindo, Jakarta.
[11] Sadeli, M., 2012, Visual Basic.net 2008,
Maxikom.
[12] T. Sutoyo, Edy Mulyanto, Dr.Vincent
Suhartono, Oky Dwi Nurhayati,
Wijanarto, 2009, Teori Pengolahan
Citra Digital, Penerbit Andi Offset,