BAB II LANDASAN TEORI 2.1 Citra Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpan. (Sutoyo, 2009) 2.2 Pengolahan citra Pengolahan citra merupakan suatu sistem dimana proses dilakukan dengan masukan berupa citra(image) dan hasilnya juga berupa citra(image). (Basuki, Fatchurrochman, rochman, & Palandi, 2005) Aspek-aspek dalam pengolahan citra dibagi menjadi beberapa sub kelas. (Wahana a Komputer, 2013) Adapun pembagian kelas dari image processing adalah sebagai berikut : Image enhancement, perbaikan kualitas citra misalnya gelap terang sebuah citra. Image restoration, mengembalikan keadaan sebuah gambar yang telah rusak. Image segmentation, mengisolasi aspek tertentu dari sebuah gambar. 2.3 Restorasi Citra Restorasi citra merupakan proses untuk membuat citra yang kualitasnya turun akibat adanya tambahan derau, agar menjadi mirip dengan keadaan aslinya. Tujuan dari restorasi citra adalah penghilangan noise ( sensor noise, blur, dll ) dari gambar. Pendekatan paling sederhana untuk menghilangkan derau adalah berbagai jenis filter seperti filter low-pass atau filter median (Anantharajan, Ganesh, Kumar, & Balasubramanian, 2012) 7
8 2.4 Derau dalam citra Pada saat proses capture (pengambilan gambar), beberapa gangguan mungkin terjadi, seperti kamera tidak focus atau munculnya bintik-bintik yang mungkin disebabkan oleh proses capture tidak sempurna. Setiap gangguan pada citra disebut Noise. (Sigit & Basuki, 2005) Dalam praktik, kehadiran derau tidak dapat dihindari. Sebagai contoh derau Gaussian biasa muncul pada sembarang isyarat. Derau putih (white noise) biasa menyertai pada siaran televisi yang berasal dari stasiun pemancar yang lemah. Derau butiran biasa muncul dalam film-film fotografi. Derau garam dan merica (salt and pepper noise) sering mewarnai citra (derau garam yang berwarna putih dan derau merica yang berwarna hitam). (Kadir & Susanto, 2013) 2.4.1 Derau Gaussian Derau gaussian adalah model derau yang memiliki fungsi kerapatan probabilitas bilitas (probability density function / PDF) yang diberikan oleh kurva Gaussian. (Basuki, Fatchurrochman, & Palandi, 2005) Noise Gaussian muncul ul oleh factor elektronik, kurangnya pencahayaan, dana tau akibat suhu yang terlalu tinggi. (Sutoyo, 2009).PDF yang mewakili sifat paling acak dalam bentuk satu dimensi seperti berikut :... (1)
9 Dalam hal ini, adalah nilai rerata dan adalah deviasi standar (atau akar varians) variabel random. PDF-nya ditunjukan di gambar 1.2 p(z) z Gambar 2.1 Fungsi kepadatan probabilitas derau Gaussian Sumber: Buku Teori dan Aplikasi Pengolahan Citra, 2013 2.4.2 Derau Garam dan Merica (salt and pepper noise) Derau garam dan merica biasa dinamakan sebagai derau impuls positif dan negatif, derau tembakan, atau biner. Derau ini biasa disebabkan oleh gangguan yang tiba-tiba dan tajam pada proses perolehan isyarat citra. Bentuknya berupa bintik-bintik hitam atau putih di dalam citra. Derau garam dan merica sering muncul pada citra yang diperoleh melalui kamera. 2.5 Tapis (Filter) Tapis (Filter) merupakan suatu proses yang mengambil fungsi citra pada frekuensi-frekuensi tertentu dan membuang fungsi citra pada frekuensi-frekuensi lain. Citra yang akan diproses seringkali dalam keadaan terdistorsi atau mengandung derau. Dalam pengolahan citra terdapat filter yang dipakai untuk keperluan tersebut. 2.5.1 Filter Lolos Rendah Filter lolos rendah adalah filter dengan sifat dapat meloloskan bagian berfrekuensi rendah dan menghilangkan yang berfrekuensi tinggi. Efek filter ini membuat perubahan aras keabuan menjadi lebih lembut.
10 Operasi penapisan lolos rendah dilaksanakan melalui konvolusi atau tanpa konvolusi. Contoh yang tidak menggunakan konvolusi yaitu filter median. Konvolusi merupakan proses untuk memperoleh suatu piksel didasarkan pada nilai piksel itu sendiri dan tetangganya, dengan melibatkan suatu matriks yang disebut kernel yang merepresentasikan pembobotan. Wujud kernel umumnya bujur sangkar dan ukurannya biasanya ganjil (3 3, 5 5 dsb). Operasi konvolusi antara citra f(x,y) dengan matriks mask h(x,y) dapat dituliskan dengan menggunakan persamaan: h (2) Adapun representasi dari matriks konvolusi untuk kernel 3 3, 5 5 sebagai berikut (x-1,y-1) (x-1,y) (x-1,y+1) (x,y-1) (x,y) (x,y+1) (x+1,y-1) (x+1,y) (x+1,y+1) Gambar 2.2 Representasi Matriks Mask 3 3 (x-2,y-2) (x-2,y-1) (x-2,y) (x-2,y+1) (x-2,y+2) (x-1,y-2) (x-1,y-1) (x-2,y) (x-1,y+1) (x-1,y+2) (x,y-2) (x,y-1) (x,y) (x,y+1) (x,y+2) (x+1,y-2) (x+1,y-1) (x+1,y) (x+1,y+1) (x+1,y+2) (x+2,y-2) (x+2,y-1) (x+2,y) (x+2,y+1) (x+2,y+2) Gambar 2.3 Representasi Matriks Mask 5 5
11 Adapun yang melibatkan konvolusi menggunakan kernel sebagai berikut 0 1 0 1 1 1 1 2 1 1 1 1 0 1 0 1 1 1 #1 #2 1 1 1 1 2 1 1 2 1 2 4 2 1 1 1 1 2 1 #3 #4 Gambar 2.4 Contoh Kernel Untuk Filter Lolos Rendah Pada pelaksanaan konvolusi, kernel digeser sepanjang baris dan kolom dalam citra sehingga diperoleh nilai baru pada citra keluaran. Kernel digerakan di sepanjang baris dan kolom citra Gambar 2.5 Ilustrasi proses konvolusi
12 Pada proses konvolusi terdapat problem apabila kernel tidak punya pasangan/tidak mempunyai nilai ketetanggaan yang lengkap Tidak ada pasangan Gambar 2.6 Ilustrasi Problem Konvolusi Untuk mengatasi keadaan seperti itu, terdapat beberapa solusi yaitu : 1. Abaikan piksel pada bagian tepi, sehingga ukuran citra menjadi kecil karena nilai piksel bagian tepi tidak di gunakan 2. Buat baris tambahan pada bagian tepi, sehingga hasil citra seperti ada bingkai berwarna hitam karena nilai piksel diisi dengan nilai 0 3. Ambil bagian yang tidak mempunyai pasangan dengan bagian dari citra, sehingga hasil citra pada tepi seperti tercermin 2.5.2 Filter Median Filter median sangat populer dalam pengolahan citra. Filter ini dapat dipakai untuk menghilangkan derau bintik-bintik. Nilai yang lebih baik digunakan untuk suatu piksel ditentukan oleh nilai median dari setiap piksel dan kedelapan piksel tetangga pada 8-ketetanggaan. Secara matematis, filter dapat dinotasikan sebagai berikut : g(y,x) = median (f (y-1, x-1),f (y-1, x), f (y-1, x+1),f (y, x-1),f (y, x), f (y, x+1),f (y+1, x-1),f (y+1, x), f (y+1, x+1),. (3)
13 Filter median menggunakan nilai median piksel-piksel di dalam jendela keluaran. Filter median dapat ditulis sebagai berikut : (y, x) = (g(p,q)). (4) Contoh untuk satu piksel ditunjukan pada gambar bawah ini g X X Y 7 5 7 3 2 1 4 Pengurutan 1, 2, 3, 4, Gambar 2.7 Ilustrasi Proses Perhitungan Median 2.6 Ukuran Keberhasilan Penghilangan Derau Untuk mengukur sebuah keberhasilan pada citra yang terkena derau penulis menggunakan nakan nilai MSE dan PSNR. 2.6.1 MSE (Mean Squared Error) MSE yaitu sigma dari jumlah error antara citra hasil kompresi dan citra asli. MSE digunakan untuk mengukur kinerja prosedur perbaikan citra. Di nyatakan dengan persamaan sebagai berikut:.(5) Keterangan : M dan N adalah ukuran panjang dan lebar citra
14 S xy = intensitas citra di titik x,y sebelum terkena noise(sebelum citra berubah) C xy = intensitas citra di titik x,y setelah noise dihilangkan Semakin kecil nilai MSE, semakin bagus prosedur perbaikan citra yang digunakan. Artinya, kualitas citra setelah mengalami perbaikan noise hampir sama dengan kualitas citra asalnya (sutoyo,2009) 2.6.2 PSNR (Peak Signal to Noise Ratio) PSNR adalah perbandingan antara nilai maksimum dari sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal tersebut. PSNR biasanya diukur dalam satuan decibel (db). PSNR digunakan untuk mengetahui perbandingan kualitas citra cover sebelum dan sesudah disisipkan pesan. ( Kaur & Singh, 2011) Di nyatakan dengan persamaan sebagai berikut:..(6) Keterangan : C 2 max = nilai maksimal dari sebuah citra Peak Signal to Noise Ratio (PSNR). Nilai PSNR yang lebih tinggi menyiratkan kemiripan yang lebih erat antara hasil rekonstruksi dan gambar asli. Jadi nilai MSE yang rendah dan nilai PSNR yang tinggi akan lebih baik dalam hasil pemrosesan citra yang terkena derau.
15 2.7 Matlab Gambar 2.8 Gambar Aplikasi Matlab Matlab(mathematics laboratory) merupakan Bahasa pemrograman yang digunakan an untuk mengerjakan operasi matematika atau operasi aljabar matriks. (Hasan, 2005) Gambar 2.9 Tampilan Awal Aplikasi Matlab Untuk pengembangan algoritma, matlab menyediakan antarmuka command line, sebuah fungsi manipulasi string dan bilangan, 2D dan 3D plooting function dan kemampuan untuk membuat tampilan GUI (graphical user interface). (Wahana Komputer, 2013) GUIDE atau GUI builder merupakan sebuah graphical user interface (GUI) yang dibangun dengan obyek grafis seperti tombol (button), kotak teks, slider, sumbu (axes), maupun menu. Sebagai contoh, ketika menggerakkan slider, maka kita dapat melihat perubahan sebuah nilai. Kemudian, ketika kita menekan tombol OK, maka aplikasi kita akan dijalankan.
16 Gambar 2.10 Tampilan GUI Aplikasi Matlab Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimana perintah bekerja. Tidak seperti Bahasa pemrograman lainnya, GUIDE matlab memiliki banyak keunggulan tersendiri, antara lain : 1. GUIDE matlab banyak digunakan dan cocok untuk aplikasi-aplikasi berorientasi sains, sehingga banyak peneliti atau mahasiswa, baik S1, S2 maupun S3, menggunakan GUIDE matlab untuk menyelesaikan riset atau tugas akhirnya. a. 2. Matlab memiliki banyak fungsi built in yang siap digunakan dan pemakai tidak perlu repot membuatnya sendiri. 3. Ukuran file, baik FIG-file maupun M-file, yang dihasilkan relatif kecil. 4. Kemampuan grafisnya cukup andal dan tidak kalah dibandingkan Bahasa pemrograman lainnya. (Sugiharto, 2006) 2.8 Rekayasa Perangkat Lunak Rekayasa perangkat lunak merupakan pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip-prinsip rekayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efektif dan efisien untuk pengguna nya. (Pujiono & Shabrina, 2015)
17 2.8.1 Metode Waterfall Model ini dilakukan secara terurut berdasarkan panduan proses mulai dari komunikasi kepada client atau pelanggan sampai dengan aktifitas sampai pengorderan setelah masalah dipahami secara lengkap dan berjalan stabil sampai selesai. Ada 2 fase-fase dalam Waterfall model: Menurut referensi Pressman System/infor Analysis Design Code Test Gambar 2.11 Waterfall Model Pressman Menurut referensi Sommerville Requirements System and Implementation Operation and maintenance Gambar 2.12 Waterfall Model Sommerville Kelebihan Waterfall Model: Mudah diaplikasikan, memberikan template tentang metode analisis, desain,pengkodean, pengujian, dan pemeliharaan. Digunakan untuk produk software yang sudah jelas kebutuhannya di awal
18 Kekurangan Waterfall model: Waterfall model bersifat kaku sehingga Penanganan perubahan pada saat proses sedang berlangsung menjadi lebih sulit. Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses. Customer harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap,menyelesaikan tahap awal baru bisa ke tahap selanjutnya. Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk. Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya. Semua kebutuhan sudah terdefinisi sejak awal dan Software yang diberikan adalah versi terakhir dari setiap tahap. 2.8.2 Flowchart Flowchart adalah diagram alur yang digunakan dalam menganalisis, merancang, mendokumentasikan atau mengelola proses atau program di berbagai bidang (Wikipedia) Tabel 2.1 Flowchart No Simbol Nama Fungsi 1 Flow Line Arah aliran program 2 Terminator Permulaan/ akhir program 3 Proses Proses perhitungan/proses pengolahan data 4 Input/output data Proses input/output data, parameter, informasi
19 5 Decision Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya 6 Preparation Proses inisialisasi/ pemberian harga awal 7 Predefined process (sub Permulaan sub program/ proses program) menjalankan sub program 8 Annotation Komentar pada flowchart 9 On page connector Penghubung bagian-bagian flowchart yang berada pada satu halaman 10 Off page connector Penghubung bagian-bagian flowchart yang berada pada halaman yang berbeda 2.8.3 Metode Pengujian 1. White-box testing Dalam White-box testing, kita membuat test cases dengan melihat source code untuk mencari adanya kesalahan pada program yang dilakukan oleh Software Engineer. Keuntungan ngan White-box testing: Sebagai Software engineer yang memiliki akses ke source code, hal ini menjadi sangat mudah untuk melakukan skenario pengujian secara efektif. Membantu Software engineer untuk mengoptimalkan source code. Baris kode yang tidak efisien dapat dihilangkan agar mencegah bugs pada program.
20 Kerugian White-box testing: mengeluarkan biaya tambahan. Terkadang sangat sulit melihat setiap baris kode untuk mencari bugs pada program yang akan diuji. 2. Black-box testing Dalam Black-box testing Software Tester tidak memiliki akses source code atau mengetahui implementasi dari program tersebut untuk mencari adanya kesalahan pada program dan juga tidak diharuskan memiliki pengetahuan tentang programming dan implementasinya. Ketika melakukan Black-box testing, tester akan berinteraksi dengan user interface yang menyediakan input dan memeriksa outputnya, juga menguji performa rma program atau menguji function-function yang tidak bekerja dengan benar. Keuntungan Black-box testing: Cocok dan efisien untuk source code dengan skala besar. Menguji program dari sudut pandang user. Software tester dalam jumlah yang banyak dapat menguji program tersebut tanpa harus memiliki pengetahuan tentang programming. Kerugian Black-box testing: Software tester hanya menjalankan beberapa skenario pengujian yang dipilih. Pengujian yang tidak efisien karena Software tester memiliki pengetahuan yang terbatas tentang program. Pengujian yang tidak spesifik karena Software tester tidak memiliki akses ke source code.