Implementasi Harmonic Mean Filter Untuk Mereduksi Noise Pada Citra BMP Dan PNG
IMPLEMENTASI HARMONIC MEAN FILTER UNTUK MEREDUKSI
NOISE PADA CITRA BMP DAN PNG
SKRIPSI
Gamal Nasir 091401056
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
(2)
IMPLEMENTASI HARMONIC MEAN FILTER UNTUK MEREDUKSI NOISE PADA CITRA BMP DAN PNG
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
GAMAL NASIR 091401056
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
(3)
PERSETUJUAN
Judul : IMPLEMENTASI HARMONIC MEAN FILTER
UNTUK MEREDUKSI NOISE PADA CITRA BMP DAN PNG
Kategori : SKRIPSI
Nama : GAMAL NASIR
Nomor Induk Mahasiswa : 091401056
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI Diluluskan di Medan, April 2014 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Syahriol Sitorus, S.Si., M.IT Dr. Syahril Efendi, S.Si, M.IT
NIP. 19710310 199703 1 004 NIP. 19671110 199602 1 001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
(4)
PERNYATAAN
IMPLEMENTASI HARMONIC MEAN FILTER UNTUK MEREDUKSI NOISE PADA CITRA BMP DAN PNG
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, April 2014
Gamal Nasir 091401056
(5)
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya, sehingga Penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar– besarnya kepada :
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1
Ilmu Komputer Universitas Sumatera Utara.
5. Bapak Dr. Syahril Efendi, S.Si, M.IT selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran, dan masukan kepada penulis dalam pengerjaan skripsi ini.
6. Bapak Syahriol Sitorus, S.Si, M.IT selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran, dan masukan kepada penulis dalam pengerjaan skripsi ini.
7. Bapak Herriyance, S.T, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
8. Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, seluruh tenaga pengajar serta pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
9. Almarhum ayahanda Drs. Indera Afkhar M. Hum dan Ibunda Syahriza yang selalu memberikan doa dan dukungan serta kasih sayang kepada
(6)
Bram Adha yang terus memberikan dukungan dan dorongan bagi penulis untuk menyelesaikan skripsi ini.
10.Dewi Ayu Pratami, S.Kom atas semangat, dukungan, perhatian, kasih sayang, pengertian, dan kesabaran terhadap penulis selama proses penyelesaian skripsi ini.
11.Teman-teman terdekat, terutama Muhammad Ican, Azhar Indra Rifangi, M. Febri Rahmansyah, Mustika Agung Maulana, S.Kom, Rima Mustika, Rudi Afriansyah, Ismail Fata Lubis, Fithri Rizqi Khairani Nst, S.Kom, serta teman-teman yang sedang menyelesaikan skripsi terutama stambuk 2009 dan teman-teman Pengurus IMILKOM tahun 2012-2013 atas semangat dan dorongannya sehingga penulis dapat menyelesaikan skripsi ini.
12.Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan satu-persatu.
Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan pahala yang melimpah dari Allah SWT.
Medan, April 2014
(7)
ABSTRAK
Reduksi noise merupakan suatu proses untuk mengurangi noise pada sebuah citra digital untuk meningkatkan kualitas citra yang merupakan langkah awal dalam citra digital. Dalam mengurangi noise tersebut diperlukan suatu metode untuk mereduksi noise yaitu dengan metode Harmonic Mean Filter. Dalam Harmonic Mean Filter nilai warna setiap piksel diganti dengan nilai warna pada setiap piksel diwilayah terdekat. Pada proses reduksi noise ini objek yang digunakan adalah citra berwarna yang berformat .bmp dan .png, dimana sistem akan menambahkan noise yang terdapat pada sistem tersebut, yaitu Gaussian Noise atau Salt and Pepper Noise dengan nilai persentase noise yang berkisar antara 1-100%. Dalam mengukur nilai perbandingan kualitas citra hasil reduksi noise tersebut digunakan perhitungan nilai MSE, PSNR, dan Running Time. Berdasarkan dari hasil pengujian pada citra hasil reduksi noise dengan Harmonic Mean Filter berformat .bmp dan .png, nilai Running Time terkecil dimiliki oleh citra hasil reduksi noise Salt and Pepper. Harmonic Mean Filter juga sangat baik digunakan pada citra dengan Gaussian Noise karena menghasilkan nilai MSE dan PSNR lebih baik dibandingkan dengan citra dengan Salt and Pepper Noise.
Kata kunci : Harmonic Mean Filter, Reduksi Noise, Gaussian Noise, Salt and Pepper Noise
(8)
IMPLEMENTATION OF HARMONIC MEAN FILTER TO REDUCE NOISE ON BMP AND PNG IMAGE
ABSTRACT
Noise reduction is a process to reducing noise in a digital image to enhance the image quality that is the first step in the digital image. In reducing the noise we need a method for reducing noise named by Harmonic Mean Filter method. In Harmonic Mean Filter color values of each pixel is replaced by the value of the color at each pixel in the region nearby. In this noise reduction process the object that is used is the .bmp and. png format of true color image, which will add noise to the system contained in the system, namely Gaussian Noise or Salt and Pepper Noise with noise percentage values ranging from 1-100%. In measuring the value of image quality comparison of the image results of noise reduction used the calculation of MSE, PSNR, and Running Time. Based on the test results in image results of noise reduction with Harmonic Mean Filter to the image with .bmp and. png format, the smallest value of running time owned by the image of the Salt and Pepper noise reduction. Harmonic Mean Filter is also very good to use for the image with Gaussian noise because producing the value of MSE and PSNR better than the image with Salt and Pepper Noise.
Keywords: Harmonic Mean Filter, Noise Reduction, Gaussian Noise, Salt and Pepper Noise
(9)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Daftar Lampiran xiv
Bab 1 Pendahuluan
1.1Latar Belakang 1
1.2Perumusan Masalah 2
1.3Batasan Masalah 2
1.4Tujuan Penelitian 2
1.5Manfaat Penelitian 3
1.6Metode Penelitian 3
1.7Sistematika Penulisan 4
Bab 2 Landasan Teori
2.1 Citra 5
2.2 Citra Digital 5
2.3 Representasi Citra Digital 6
2.4 Pengolahan Citra Digital 7
2.4.1 Kategori Pengolahan Citra 8
2.4.2 Penerapan Pengolahan Citra 9
2.5 Jenis-jenis Citra Digital 9
2.5.1 Citra Biner 10
2.5.2 Citra Grayscale 10
2.5.3 Citra Warna 11
2.6 Format File Citra 12
2.6.1 BMP (Bitmap) 12
2.6.2 PNG 13
2.7 Noise 14
2.7.1 Salt and Pepper Noise (Impulse Noise) 15
2.7.2 Gaussian Noise 16
2.8 Harmonic Mean Filter 17
(10)
2.9.3 Running Time 18
2.10 Penelitian yang Relevan 18
Bab 3 Analisis dan Perancangan Sistem
3.1 Analisis Sistem 20
3.1.1 Analisis Masalah 20
3.1.2 Analisis Persyaratan 21
3.1.2.1 Persyaratan Fungsional 21
3.1.2.2 Persyaratan Non-Fungsional 22
3.1.3 Analisis Proses 22
3.1.3.1 Use Case Diagram 23
3.1.3.1.1 Use Case Tambah Noise 24 3.1.3.1.2 Use Case Buka Citra Awal 25 3.1.3.1.3 Use Case Input Persentase Noise 26
3.1.3.1.4 Use Case Pilih Noise 26
3.1.3.1.5 Use CaseGaussian Noise 27 3.1.3.1.6 Use Case Salt and Pepper Noise 28 3.1.3.1.7 Use Case Simpan Citra Bernoise 29 3.1.3.1.8 Use Case Reduksi Noise 29 3.1.3.1.9 Use Case Buka Citra Bernoise 30 3.1.3.1.10 Use Case Harmonic Mean Filter 31 3.1.3.1.11 Use Case Hitung MSE, PSNR, dan
Running Time 32
3.1.3.1.12 Use Case Simpan Citra Hasil Reduksi 32
3.1.3.2 Activity Diagram 33
3.1.3.3 Sequence Diagram 35
3.1.3.4 Analisis Proses Reduksi Noise dengan Harmonic Mean
Filter 35
3.2 Pseudocode 37
3.2.1 Pseudocode Proses Tambah Noise Gaussian 37 3.2.2 Pseudocode Proses Tambah Noise Salt and Pepper 38 3.2.3 Pseudocode Proses Reduksi Noise 38
3.3 Perancangan Sistem 40
3.3.1 Flowchart Perancangan Sistem 40
3.3.2 Perancangan Antarmuka Sistem (Interface) 41
3.3.2.1 Halaman Menu Utama 41
3.3.2.2 Halaman Menu Tambah Noise 42
3.3.2.3 Halaman Menu Reduksi Noise 44
3.3.2.4 Halaman Menu Tentang 46
3.3.2.5 Halaman Menu Bantuan 47
Bab 4 Implementasi dan Pengujian
4.1Implementasi 49
4.1.1 Tampilan Halaman Menu Utama 49
4.1.2 Tampilan Halaman Menu Tambah Noise 50 4.1.3 Tampilan Halaman Menu Reduksi Noise 51
(11)
4.2.1 Pengujian Proses Tambah Noise 54
4.2.2 Pengujian Proses Reduksi Noise 59
4.2.3 Pengujian Proses Reduksi Noise dengan Harmonic Mean Filter dengan Gaussian Noise pada Citra Berformat BMP dan PNG 63 4.2.4 Pengujian Proses Reduksi Noise dengan Harmonic Mean Filter
dengan Salt and Pepper Noise pada Citra Berformat BMP dan
PNG 65
4.2.5 Perbandingan Rata-rata Nilai MSE, PSNR, dan Running Time pada Citra Hasil Reduksi Noise dengan Gaussian Noise 67 4.2.6 Perbandingan Rata-rata Nilai MSE, PSNR, dan Running Time pada Citra Hasil Reduksi Noise dengan Salt and Pepper Noise 68 4.2.7 Grafik Nilai MSE, PSNR, dan Running Time pada Citra Hasil
Reduksi Noise dengan Gaussian Noise dan Salt and Pepper
Noise 70
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 73
5.2 Saran 74
(12)
DAFTAR TABEL
Nomor
Tabel Nama Tabel Halaman
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10
Spesifikasi Use Case Tambah Noise Spesifikasi Use Case Buka Citra Awal Spesifikasi Use Case Input Persentase Noise Spesifikasi Use Case Pilih Noise
Spesifikasi Use Case Gaussian Noise Spesifikasi Use Case Salt and Pepper Noise Spesifikasi Use Case SimpanCitra Bernoise Spesifikasi Use Case Reduksi Noise
Spesifikasi Use Case Buka Citra Bernoise Spesifikasi Use Case Harmonic Mean Filter
Spesifikasi Use Case Hitung MSE, PSNR, dan Running Time Spesifikasi Use Case Simpan Hasil Reduksi
Perbandingan Nilai MSE, PSNR, dan Running Time pada Citra dengan Gaussian Noise dan Citra Hasil Reduksi dengan Harmonic Mean Filter dengan Format BMP
Perbandingan Nilai MSE, PSNR, dan Running Time pada Citra dengan Gaussian Noise dan Citra Hasil Reduksi dengan
Harmonic Mean Filter dengan Format PNG
Perbandingan Nilai MSE, PSNR, dan Running Time pada Citra dengan Salt and Pepper Noise dan Citra Hasil Reduksi dengan Harmonic Mean Filter dengan Format BMP
Perbandingan Nilai MSE, PSNR, dan Running Time pada Citra dengan Salt and Pepper Noise dan Citra Hasil Reduksi dengan Harmonic Mean Filter dengan Format PNG
Nilai Rata-rata MSE, PSNR, dan Running Time pada Citra Hasil Reduksi Noise dengan Gaussian Noise Berformat BMP Nilai Rata-rata MSE, PSNR, dan Running Time pada Citra Hasil Reduksi Noise dengan Gaussian Noise Berformat PNG Nilai Rata-rata MSE, PSNR, dan Running Time pada Citra Hasil Reduksi Noise dengan Salt and Pepper Noise Berformat BMP
Nilai Rata-rata MSE, PSNR, dan Running Time pada Citra Hasil Reduksi Noise dengan Salt and Pepper Noise Berformat PNG
Nilai Rata-rata MSE, PSNR, dan Running Time pada Citra Hasil Reduksi Noise dengan Gaussian Noise dan Salt and Pepper Noise pada Citra Berformat BMP
Nilai Rata-rata MSE, PSNR, dan Running Time pada Citra Hasil Reduksi Noise dengan Gaussian Noise dan Salt and Pepper Noise pada Citra Berformat PNG
24 25 26 27 27 28 29 30 30 31 32 32 63 64 65 66 67 67 68 69 69 70
(13)
DAFTAR GAMBAR
Nomor
Gambar Nama Gambar Halaman
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16
Koordinat Kartesius 2D dari Sebuah Citra Digital MxN Contoh Citra Biner
Contoh Citra Grayscale Contoh Citra Warna Citra Dalam Format BMP Citra Dalam Format PNG Citra Tanpa Noise
Citra dengan Salt and Pepper Noise Citra Tanpa Noise
Citra dengan Gaussian Noise Ishikawa Diagram
Use Case Diagram Activity Diagram Sequence Diagram
Flowchart Rancangan Sistem
Rancangan Antarmuka Halaman Menu Utama
Rancangan Antarmuka Halaman Menu Tambah Noise Rancangan Antarmuka Halaman Menu Reduksi Noise Rancangan Antarmuka Halaman Menu Tentang Rancangan Antarmuka Halaman Menu Bantuan Tampilan Menu Utama
Tampilan Halaman Menu Tambah Noise Tampilan Halaman Menu Reduksi Noise Tampilan Halaman Menu Tentang Tampilan Halaman Menu Bantuan Tampilan Pemilihan Citra
Tampilan File Citra Berformat BMP yang Telah Dipilih Tampilan File Citra Berformat PNG yang Telah Dipilih Tampilan File Citra Berformat BMP dengan Gaussian Noise Tampilan File Citra Berformat PNG dengan Gaussian Noise Tampilan File Citra Berformat BMP dengan Salt and Pepper Noise
Tampilan File Citra Berformat PNG dengan Salt and Pepper Noise
Tampilan Buka File Citra Bernoise
Tampilan Hasil Reduksi Noise dengan Gaussian Noise Berformat BMP
Tampilan Hasil Reduksi Noise dengan Gaussian Noise Berformat PNG
Tampilan Hasil Reduksi Noise dengan Salt and Pepper Noise Berformat BMP 7 10 11 12 13 14 15 16 16 17 21 24 34 35 40 41 43 45 47 48 50 51 52 53 54 55 56 56 57 58 58 59 60 61 61 62
(14)
4.18 4.19 4.20 4.21
Grafik nilai MSE, PSNR, dan Running Time pada Citra Hasil Reduksi noise dengan Gaussian Noise pada Format BMP Grafik nilai MSE, PSNR, dan Running Time pada Citra Hasil Reduksi noise dengan Gaussian Noise pada Format PNG Grafik nilai MSE, PSNR, dan Running Time pada Citra Hasil Reduksi noise dengan Salt and Pepper Noise pada Format BMP Grafik nilai MSE, PSNR, dan Running Time pada Citra Hasil Reduksi noise dengan Salt and Pepper Noise pada Format PNG
71 71 72 72
(15)
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1
(16)
ABSTRAK
Reduksi noise merupakan suatu proses untuk mengurangi noise pada sebuah citra digital untuk meningkatkan kualitas citra yang merupakan langkah awal dalam citra digital. Dalam mengurangi noise tersebut diperlukan suatu metode untuk mereduksi noise yaitu dengan metode Harmonic Mean Filter. Dalam Harmonic Mean Filter nilai warna setiap piksel diganti dengan nilai warna pada setiap piksel diwilayah terdekat. Pada proses reduksi noise ini objek yang digunakan adalah citra berwarna yang berformat .bmp dan .png, dimana sistem akan menambahkan noise yang terdapat pada sistem tersebut, yaitu Gaussian Noise atau Salt and Pepper Noise dengan nilai persentase noise yang berkisar antara 1-100%. Dalam mengukur nilai perbandingan kualitas citra hasil reduksi noise tersebut digunakan perhitungan nilai MSE, PSNR, dan Running Time. Berdasarkan dari hasil pengujian pada citra hasil reduksi noise dengan Harmonic Mean Filter berformat .bmp dan .png, nilai Running Time terkecil dimiliki oleh citra hasil reduksi noise Salt and Pepper. Harmonic Mean Filter juga sangat baik digunakan pada citra dengan Gaussian Noise karena menghasilkan nilai MSE dan PSNR lebih baik dibandingkan dengan citra dengan Salt and Pepper Noise.
Kata kunci : Harmonic Mean Filter, Reduksi Noise, Gaussian Noise, Salt and Pepper Noise
(17)
IMPLEMENTATION OF HARMONIC MEAN FILTER TO REDUCE NOISE ON BMP AND PNG IMAGE
ABSTRACT
Noise reduction is a process to reducing noise in a digital image to enhance the image quality that is the first step in the digital image. In reducing the noise we need a method for reducing noise named by Harmonic Mean Filter method. In Harmonic Mean Filter color values of each pixel is replaced by the value of the color at each pixel in the region nearby. In this noise reduction process the object that is used is the .bmp and. png format of true color image, which will add noise to the system contained in the system, namely Gaussian Noise or Salt and Pepper Noise with noise percentage values ranging from 1-100%. In measuring the value of image quality comparison of the image results of noise reduction used the calculation of MSE, PSNR, and Running Time. Based on the test results in image results of noise reduction with Harmonic Mean Filter to the image with .bmp and. png format, the smallest value of running time owned by the image of the Salt and Pepper noise reduction. Harmonic Mean Filter is also very good to use for the image with Gaussian noise because producing the value of MSE and PSNR better than the image with Salt and Pepper Noise.
Keywords: Harmonic Mean Filter, Noise Reduction, Gaussian Noise, Salt and Pepper Noise
(18)
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontinu menjadi gambar diskrit melalui proses sampling.Di dalam sebuah citra terdapat banyak informasi dan sering kali citra yang dimiliki mengalami penurunan kualitas citra misalnya terdapat noise. Dengan adanya noise juga dapat mengakibatkan kualitas citra menjadi lebih buruk oleh karena itu diperlukan metode dalam memperbaiki kualitas citra tersebut agar tampilan citra menjadi lebih baik.
Pengurangan noise merupakan suatu proses untuk mereduksi noise pada sebuah citra digital untuk meningkatkan kualitas citra yang merupakan langkah awal dalam image processing. Ada beberapa jenis tipe noise yang sering kita jumpai pada citra digital yakni, Salt and Pepper Noise, Speckle Noise, Gaussian Noise, Gamma, Eksponensial, Rayleigh, dan Uniform. Noise-noise tersebut merupakan gangguan pada citra yang memerlukan teknik perbaikan.[5]
Dalam mengatasi noise tersebut perlu dilakukan usaha untuk memperbaiki kualitas citra itu dengan teknik filtering. Adapun teknik filtering yang digunakan adalah Harmonic Mean Filter.
(19)
Dalam metode harmonic mean filter, nilai warna setiap piksel diganti dengan nilai warna harmonic mean filter pada setiap piksel di wilayah terdekat. Harmonic Mean Filter lebih baik digunakan untuk menghilangkan jenis noise Gaussian dan membuat garis tepi dari pada arithmetic mean filter. Harmonic Mean Filter sangat baik untuk menghilangkan outlier positif.
Berdasarkan latar belakang yang telah penulis uraikan, maka dilakukan penelitian dengan judul “Implementasi Harmonic Mean Filter untuk Mereduksi Noise pada Citra BMP dan PNG”.
1.2 Perumusan Masalah
Berdasarkan uraian pada latar belakang di atas, rumusan masalah yang akan dibahas adalah bagaimana menerapkan metode Harmonic Mean Filter untuk mereduksi noise pada citra BMP dan PNG.
1.3 Batasan Masalah
Adapun batasan masalah yang diangkat adalah sebagai berikut:
1. Jenis noise yang digunakan ada 2, yaitu Salt and Pepper Noise dan Gaussian Noise.
2. Format citra merupakan citra berwarna dalam format BMP dan PNG. 3. Perangkat lunak dibuat dengan menggunakan bahasa pemrograman C#.
4. Parameter yang digunakan untuk membandingkan kualitas citra adalah Mean Square Error (MSE), Peak Signal to Noise Ratio (PSNR), dan running time (waktu akses).
(20)
1.4 Tujuan Penelitian
Penelitian ini bertujuan untuk membuat sebuah perangkat lunak untuk mereduksi noise pada citra digital dengan metode Harmonic Mean Filter pada citra BMP dan PNG.
1.5 Manfaat Penelitian
Manfaat penelitian ini adalah menghasilkan perangkat lunak untuk mereduksi noise pada citra digital dengan menggunakan metode Harmonic Mean Filter.
1.6 Metode Penelitian
Tahapan yang dilakukan dalam penelitian ini adalah: 1. Studi Literatur
Pada tahap studi literatur dilakukan pengumpulan buku, jurnal, artikel, makalah, maupun situs internet yang membahas reduksi noise pada citra digital dengan metode Harmonic Mean Filter untuk dipelajari lebih lanjut. 2. Analisis dan Perancangan Sistem
Pada tahap analisis dan perancangan sistem akan dilaksanakan perancangan flowchart, antar muka, UML dan perancangan sistem reduksi noise pada citra digital dengan menggunakan metode Harmonic Mean filter.
3. Implementasi Sistem
Pada tahap implementasi sistem ini dilakukan implementasi terhadap hasil analisis dan perancangan dengan cara melakukan penulisan program reduksi noise pada citra digital (coding).
4. Pengujian Sistem
Dalam tahap pengujian sistem dilakukan pengujian terhadap sistem yang telah dibangun.
5. Dokumentasi
Dalam tahap dokumentasi dilakukan penyusunan laporan dari hasil analisis dan perancangan sistem dalam format penulisan penelitian.
(21)
1.7 Sistematika Penulisan
Dalam penulisan skripsi ini penulis membagi membuat sistematika penulisan terbagi menjadi lima bab dengan susunan sebagai berikut:
BAB 1 PENDAHULUAN
Bab ini membahas tentang latar belakang pemilihan judul, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini membahas tentang teori-teori yang berhubungan dengan citra, representasi citra digital, pengolahan citra digital, kategori pengolahan citra digital, penerapan citra digital, jenis-jenis citra, format file citra, noise, Harmonic Mean Filter, MSE, PSNR, Running Time dan sebagainya.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas mengenai analisis proses reduksi noise pada citra BMP dan PNG dengan metode Harmonic Mean Filter, flowchart sistem, UML, serta perancangan antar muka pengguna.
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini membahas tentang hasil implementasi dan pengujian sistem serta pembahasan dari hasil yang diperoleh.
BAB 5 KESIMPULAN DAN SARAN
Bab ini membahas tentang kesimpulan yang diperoleh dari hasil penelitian serta saran-saran yang ditujukan bagi para pembaca dan pengembang sistem selanjutnya.
(22)
BAB 2
LANDASAN TEORI
2.1 Citra
Citra atau gambar adalah sebuah fungsi dua dimensi, f(x,y), dimana x dan y koordinat bidang datar dan f di setiap pasangan koordinat disebut intensitas atau level keabuan dari gambar dititik itu. Pada bidang pemprosesan citra akan berfokus pada sebuah gambar atau lebih disebut dengan pemandangan visual.[1]
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 penyimpanan.[10]
2.2 Citra Digital
Komputer digital bekerja dengan angka-angka presisi terhingga, dengan demikian hanya citra dari kelas dikrit yang dapat diolah dengan komputer. Citra dari kelas tersebut lebih dikenal sebagai citra digital. Citra digital dinyatakan dalam suatu array dua dimensi atau suatu matriks yang elemen-elemennya menyatakan tingkat keabuan (grayscale) dari warna masing-masing pixel. Pixel merupakan elemen terkecil dari suatu citra, yakni berupa titik-titik warna yang membentuk citra.[8]
Pengolahan citra digital adalah teknologi yang menerapkan sejumlah algoritma komputer untuk memproses gambar digital. Pengolahan citra digital
(23)
secara langsung berkaitan dengan gambar, yang terdiri dari titik-titik gambar. Titik-titik gambar ini disebut dengan piksel, yang merupakan koordinat spasial yang menunjukkan posisi titik dalam gambar dan nilai intensitas (level keabuan).[12]
Jumlah pixel per unit panjang dari sebuah citra dikenal sebagai resolusi citra, biasanya dalam satuan pixel per inchi (ppi). Sebuah citra dengan resolusi tinggi terdiri atas banyak pixel kecil daripada citra dengan resolusi rendah. Citra digital ukuran 1 inchi x 1 inchi dengan resolusi 72 ppi memiliki total pixel 72 x 72 atau 5184 pixel. Citra digital dengan ukuran yang sama dan resolusinya 300ppi memiliki total pixel 90000 pixel.[7]
2.3 Representasi Citra Digital
Misalkan sebuah citra f(x,y) disampling sehingga menghasilkan gambar digital dengan M baris dan N kolom. Nilai dari koordinat (x,y) sekarang menjadi digital dengan M baris dan N kolom. Nilai dari koordinat (x,y) sekarang menjadi kuantitas diskrit, yang biasanya dinyatakan dengan bilangan bulat. Nilai Koordinat dititik asal (origin) adalah (x,y) = (0,0). Nilai koordinat berikutnya sepanjang baris pertama dari citra dinyatakan sebagai (x,y) = (0,1). Sebuah Citra Digital lengkpa ukuran MxN dapat ditulis dalam bentuk matriks berikut ini :
�(�,�) =�
�(0,0) �(0,1) … �(0,� −1) �(1,0) � (1,1) … �(1,� −1)
… … … …
�(� −1,0) �(� −1,1) … �(� −1,� −1)
�…………(1)
Dalam proses dijitisasi perlu ditetapkan nilai M,N dan L (level keabuan yang diperbolehkan untuk tiap piksel). Nilai M dan N bebas tetapi berupa bilangan bulat positif. Dengan mempertimbangkan penggunaan perangkat keras untuk pengolahan, penyimpanan dan sampling, jumlah gray level merupakan 2 pangkat bilangan bulat (L=2k). Ini berarti nilai level dari elemen citra (piksel)
(24)
mempunyai range antara [0,L-1]. Sebagai contoh, sebuah citra yang mempunyai level keabuan L = 8, berarti nilai intensitas keabuan dari setiap pikselnya mempunyai range antara 0 – 7. Jumlah bit yang dibutuhkan untuk menyimpan gambar digital adalah b=MxNxk. Dimana M = jumlah baris citra, N=jumlah kolom citra dan k=jumlah bit yang dibutuhkan untuk menyatakan sebuah nilai keabuan.[1]
Lokasi piksel citra pada (M,N) yang dinotasikan dengan I(M,N)
Gambar 2.1 Koordinat Kartesius 2D dari Sebuah Citra Digital MxN
2.4 Pengolahan Citra Digital
Pengolahan citra digital merupakan suatu disiplin ilmu yang mempelajari hal-hal yang berkaitan dengan perbaikan kualitas gambar (peningkatan kontras, transformasi warna, restorasi citra), transformasi gambar (rotasi, translasi, transformasi geometrik, skala), agar mudah diinterpretasi oleh manusia/mesin (komputer). Masukannya adalah citra dan keluarannya juga citra tapi dengan kualitas lebih baik daripada citra masukan misal citra warnanya kurang tajam, kabur (blurring), dan mengandung noise (misal bintik-bintik putih) sehingga perlu
(25)
ada pemrosesan untuk memperbaiki citra karena citra tersebut menjadi sulit diinterpretasikan karena informasi yang disampaikan menjadi berkurang.[5]
Adapun tujuan pengolahan citra digital, yakni:
1. Memperbaiki kualitas gambar dilihat dari aspek radiometrik (peningkatan kontras, transformasi warna, restorasi citra) dan dari aspek geometrik (rotasi, translasi, skala, transformasi geometrik).
2. Melakukan proses penarikan informasi atau deskripsi objek atau pengenalan objek yang terkandung pada citra.
3. Melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data.[1]
2.4.1 Kategori Pengolahan Citra
Pengolahan citra dapat dibagi ke dalam tiga kategori, yakni: 1. Kategori Rendah (Low-level Process)
Kategori ini melibatkan operasi-operasi sederhana seperti prapengolahan citra untuk mengurangi derau (noise), pengaturan kontras, dan pengaturan ketajaman citra. Pengolahan citra ketegori rendah ini memiliki input dan output berupa citra.
2. Kategori Menengah (Mid-level Process)
Pengolahan kategori menengah melibatkan operasi-operasi seperti segmentasi dan klasifikasi citra. Proses pengolahan citra menengah ini melibatkan input berupa citra dan output berupa atribut (fitur) citra yang dipisahkan dari citra input, misalnya edge, counters dan identitas dari objek tertentu.[6]
3. Kategori Tinggi (High-level Process)
Pengolahan citra kategori tinggi melibatkan proses pengenalan dan deskripsi citra. Kategori ini juga meliputi pemberian arti dari suatu rangkaian objek-objek yang dikenali dan akhirnya menampilkan fungsi-fungsi kognitif secara normal sehubungan dengan penglihatan.[1]
(26)
2.4.2 Penerapan Pengolahan Citra
Berikut beberapa penerapan dari pengolahan citra [6]: 1. Bidang Biomedis
Pengolahan citra digital pada bidang ini digunakan untuk deteksi tumor atau kanker rahim, identifikasi penyakit paru-paru, identifikasi penyakit hati, identifikasi penyakit tulang, segmentasi tulang dari otot yang lainnya, klasifikasi gigi, dan analisis citra mikroskopis.
2. Bidang Penginderaan Jarak Jauh
Pengolahan citra digital pada bidang ini digunakan dengan menganalisis citra satelit dari pencemaran air laut, kerusakan wilayah, atau polusi udara. Aplikasi yang lain adalah identifikasi kapal laut melalui citra satelit.
3. Bidang Biometrika
Contoh penerapan citra digital pada bidang ini adalah pemanfaatan sidik jari, iris mata, wajah, dan biometrika yang lainnya untuk sistem identifikasi seseorang.
4. Bidang Fotografi
Contoh penerapan citra digital pada bidang ini yaitu dilakukan pengukuran terhadap posisi dan jarak suatu bintang dari foto udara oleh para astronom. Dan para fisikawan menggunakan citra dari gelembung hydrogen untuk melakukan penelitian dan telah mengantarkan kepada penemuan berbagai partikel dasar. 5. Bidang Volumetrik
Salah satu kemajuan penting dalam dunia komputer grafis adalah bidang volumetrik yaitu kemampuan untuk merekonstruksi suatu citra 3 dimensi dari citra 2 dimensi.
2.5 Jenis-jenis Citra Digital
Pilihan format gambar yang digunakan sangat ditentukan oleh tidak hanya isi gambar, tetapi juga tipe citra data aktual yang diperlukan untuk penyimpanan. Selain sedikit resolusi citra yang diberikan, sejumlah jenis citra digital yang
(27)
berbeda yang sering digunakan diantaranya adalah citra biner, citra grayscale, dan citra warna.
2.5.1 Citra Biner
Gambar biner adalah array dua dimensi yang menetapkan satu nilai numerik dari set {0,1} untuk setiap piksel dalam gambar. Gambar ini juga dapat disebut sebagai gambar logika: hitam disesuaikan ke nol (‘off’ atau piksel 'background') dan putih dapat disesuaikan ke satu (‘on’ atau piksel ‘foreground’ ). Karena tidak ada nilai-nilai lain yang diperbolehkan, gambar ini dapat direpresentasikan sebagai bit-stream sederhana, tetapi dalam prakteknya dapat direpresentasikan sebagai gambar 8-bit pada format gambar secara umum . Sebuah fax (atau gambar faksimili adalah contoh dari citra biner.[9]
Gambar 2.2 Contoh Citra Biner
2.5.2 Citra Grayscale
Citra grayscale merupakan citra digital yang hanya memiliki satu nilai kanal pada setiap pixelnya, dengan kata lain nilai bagian Red = Green = Blue. Nilai tersebut digunakan untuk menunjukkan tingkat intensitas. Warna yang dimiliki adalah warna dari hitam, keabuan, dan putih. Tingkatan keabuan di sini merupakan warna abu dengan berbagai tingkatan dari hitam hingga mendekati putih.[7]
(28)
Citra grayscale adalah gambar array dua dimensi yang menetapkan satu nilai numerik untuk setiap piksel yang merepresentasikan intensitas dari sebuah titik. Seperti yang dibahas sebelumnya, kisaran nilai piksel dibatasi oleh resolusi bit gambar dan gambar tersebut disimpan sebagai gambar N-bit integer sesuai dengan format yang diberikan.[9]
Gambar 2.3 Contoh Citra Grayscale
2.5.3 Citra Warna
Gambar berwarna adalah array tiga dimensi yang menetapkan tiga nilai numerik untuk setiap piksel, setiap nilai disesuaikan pada setiap komponen gambar pada masing-masing warna yaitu merah, hijau dan biru (RGB). Secara umum, gambar tersebut disimpan sebagai bilangan bulat berurut dalam kerangka saluran berturut-turut (misalnya R0G0B0, R1G1B1, ...) yang kemudian diakses (seperti dalam Matlab) oleh I (C, R, channel) koordinat dalam array tiga dimensi.[9]
Citra yang direpresentasikan dalam model warna RGB terdiri dari 3 komponen citra,masing-masing untuk setiap warna primer (R,G,B). Ketika ditampilkan di monitor RGB, tiga kombinasi citra ini berada di layar fosfor untuk menghasilkan warna citra komposit. Jumlah bit yang digunakan untuk merepresentasikan setiap piksel dalam space RGB disebut pixel depth.[4]
(29)
Gambar 2.4 Contoh Citra Warna
2.6 Format File Citra
Dari sudut pandang matematika, setiap array 2 D dapat dianggap sebagai gambar. Dalam dunia nyata, kita perlu secara efektif menampilkan gambar, menyimpannya, mengirimkan gambar tersebut melalui jaringan dan mengenali bentuk data numerik sesuai dengan gambar. Hal ini telah menyebabkan pengembangan format gambar digital standar. Dalam istilah sederhana, format gambar terdiri dari file header (berisi informasi tentang bagaimana sebenarnya data gambar disimpan) dan pixel numerik yang sebenarnya nilai-nilai sendiri. Format gambar yang berbeda umumnya cocok untuk aplikasi yang berbeda.[9]
Beberapa format file gambar yang dapat digunakan untuk menyimpan file gambar adalah BMP dan PNG.
2.6.1 BMP (Bitmap)
Format file microsoft windows bitmap (BMP) adalah format file dasar untuk gambar digital di jendela dunia microsoft. File BMP memiliki file header, header bitmap, tabel warna, dan data citra. File header menempati 14 byte pertama dari semua file BMP.[2] Citra bitmap direpresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain. Citra ini
(30)
memiliki kelebihan untuk memanipulasi warna, tetapi untuk mengubah objek lebih sulit. Tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna dari sebuah gambar. Oleh karena itu, bitmap merupakan media elektronik yang paling tepat untuk gambar-gambar dengan perpaduan gradasi warna yang rumit, seperti foto dan lukisan digital.
Format .bmp adalah format penyimpanan standart tanpa kompresi yang umum dapat digunakan untuk menyimpan citra biner hingga citra warna. Format ini terdiri dari beberapa jenis yang setiap jenisnya ditentukan dengan jumlah bit yang digunakan untuk menyimpan sebuah nilai piksel.[6] Format ini juga memiliki ukuran yang jauh lebih besar dibandingkan dengan format yang lain.
Gambar 2.5 Citra Dalam Format BMP
2.6.2 PNG
PNG merupakan singkatan dari Portable Network Graphics. PNG adalah format gambar bitmap yang menggunakan kompresi data lossless. PNG diciptakan untuk memperbaiki dan menggantikan format GIF. Format file PNG dianggap, dan dibuat sebagai penerus gratis dan open source ke format file GIF. Format file PNG mendukung true color (16 juta warna), sedangkan format file GIF hanya memungkinkan 256 warna. PNG unggul ketika gambar memiliki area besar warna
(31)
yang seragam. Format PNG lossless paling cocok untuk mengedit gambar, sedangkan format PNG lossy seperti JPG baik digunakan untuk distribusi final foto-tipe gambar karena ukuran file yang lebih kecil. Namun banyak browser sebelumnya sepenuhnya mendukung format file PNG, namun dengan merilis internet explorer 7 semua browser modern yang populer tidak mendukung PNG. Fitur khusus dari file PNG mendukung hingga 48 bit informasi warna. Format PNG memanfaatkan skema interlacing 2D, yang semakin menampilkan gambar jauh lebih cepat dari file gambar GIF. Gamma koreksi memungkinkan nilai-nilai yang ditampilkan pada platform apapun menjadi sama dengan yang asli.
Fitur penting dari gambar PNG adalah sebagai berikut [2]: 1. Gambar PNG menggunakan skema kompresi lossless. 2. Gambar PNG merupakan gambar yang saling berhubungan. 3. Gambar PNG mendukung 8-bit transparansi.
Gambar 2.6 Citra Dalam Format PNG
2.7 Noise
Noise adalah bintik-bintik atau kotoran yang menempel pada citra. Noise merupakan gangguan yang sering terjadi pada citra digital. Sumber noise pada citra digital bisa terjadi sejak pengambilan dan atau transmisi citra. Kinerja dari sensor citra dipengaruhi oleh banyak faktor seperti kondisi lingkungan selama pengambilan citra dan oleh kualitas sensitivas elemen itu sendiri.[7]
(32)
2.7.1 Salt and PepperNoise (Impulse Noise)
Salt and Pepper noise merupakan salah satu noise yang terjadi karena adanya karakteristik dari derajat keabu-abuan (gray-level) atau dikarenakan adanya variabel acak yang terjadi karena karakteristik Fungsi Probabilitas Kepadatan (Probability Density Function (PDF)).
PDF noise (bipolar) impulse adalah:
�(�) =����� 0
………...(2)
Di mana Pa untuk z = a, Pb untuk z = b, dan 0 untuk yang lainnya.
Jika b > a, tingkat keabu-abuan b akan muncul sebagai titik terang pada citra. Sebaliknya, tingkat keabu-abuan a akan muncul seperti titik gelap. Jika kedua Pa ataupun Pb adalah nol, noise impulse tersebut disebut unipolar. Apabila
tidak ada probabilitas yang bernilai nol dan khususnya apabila nilai keduanya hampir sama maka impuls dari noise akan membentuk butiran-butiran halus seperti garam (salt and pepper) pada citra.[10]
(33)
Gambar 2.8 Citra dengan Salt and Pepper Noise
2.7.2 Gaussian Noise
Karena noise ini mathematical tractability dalam domain spasial dan domain frekuensi, model noise Gaussian (disebut juga normal) yang paling sering digunakan dalam prakteknya. Faktanya, tractability ini tepat dan sering menghasilkan model Gaussian yang digunakan dalam situasi di mana secara garis besar dapat diaplikasikan dengan paling baik.
Probability Density Function ( PDF) variabel random Gaussian z, diberikan oleh: �(�) = 1
√2���−
(�−�)2/2�2……….(3)
di mana z merepresentasikan intensitas, ź adalah nilai rata-rata z dan � adalah standar deviasi. Kuadrat dari standar deviasi disebut varian dari z.[4]
(34)
Gambar 2.10 Citra dengan Gaussian Noise
2.8 Harmonic Mean Filter
Operasi dari harmonic mean filter diberikan oleh persamaan berikut : [1]
�(�,�) = ��
∑(�,�)∈����(1�,�)
……….(4)
2.9 MSE, PSNR, dan Running Time
2.9.1 Mean Square Error (MSE)
MSE adalah rata-rata kuadrat nilai kesalahan antara citra asli dengan citra hasil pengolahan yang secara matematis dapat dirumuskan sebagai berikut:[11]
��� = ��1 ∑ ∑� �[� (�,�)− �′(�,�)]2 ………(5) X = lebar citra dalam piksel
Y = tinggi citra dalam piksel
I = nilai piksel citra sebelum reduksi noise I’ = nilai piksel citra sesudah reduksi noise x,y = koordinat piksel
(35)
2.9.2 Peak Signal to Noise Ratio (PSNR)
Peak Signal to Noise Ratio (PSNR) adalah sebuah perhitungan yang menentukan nilai dari sebuah citra yang dihasilkan. Nilai PSNR ditentukan oleh besar atau kecilnya nilai MSE yang terjadi pada citra. Semakin besar nilai PSNR, semakin baik pula hasil yang diperoleh pada tampilan citra hasil. Sebaliknya, semakin kecil nilai PSNR, maka semakin buruk pula hasil yang diperoleh pada tampilan citra hasil. PSNR dihitung dengan menggunakan rumus: [3]
���� = 10 log255
2
��� Atau:
����= 10 log 1 2552
MN∑i=0M−1∑N−1j=0(( x[i,j]−y[i,j])2)
...(6)
dimana: M x N adalah ukuran panjang dan lebar citra, x[i,j] adalah citra asal dengan dimensi M x N,
y[i,j] adalah citra hasil yang telah mengalami proses.
2.9.3 Running Time
Proses waktu dari awal sampai akhir waktu biasa disebut dengan running time. Jika nilai running-time semakin kecil maka waktu yang digunakan untuk proses akan semakin cepat, dan sebaliknya jika nilai running time semakin besar waktu yang digunakan untuk proses akan semakin lama.
2.10 Penelitian yang Relevan
Beberapa penelitian yang telah dilakukan sebelumnya yang berkaitan dengan penelitian ini adalah:
(36)
1. Penelitian yang dilakukan oleh Wiliyana membahas tentang reduksi noise dengan menggunakan algoritma Arithmetic Mean Filter (AMF) dan Geometric Mean Filter (GMF) yang melakukan reduksi pada noise dengan cara mengganti nilai piksel dengan nilai tengah (rata-rata) intensitas piksel citra yang mengandung noise.[11]
2. Tuti Adi Prihatini melakukan penelitian untuk mereduksi noise dengan menggunakan metode Low Pass Filter (LPF) dengan fungsi filter rata-rata. Pengujian penggunaan LPF untuk mereduksi Gaussian Noise, Speckle Noise, dan Salt and Pepper Noise dilakukan dengan membangkitkan ketiga jenis noise tersebut dengan menggunakan beberapa probabilitas noise.[5] 3. Isman Santoso melakukan reduksi noise dengan menggunakan metode
Optimum Notch Filter dan Band Reject Filter yang keduanya merupakan jenis dari selective filter. Noise yang digunakan berupa periodic noise.[7]
(37)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem merupakan tahapan awal yang dilakukan dalam memahami suatu sistem. Tahapan ini menjelaskan permasalahan-permasalahan yang akan membantu proses perancangan model sistem yang nantinya akan diimplementasikan.
3.1.1 Analisis Masalah
Permasalahan yang akan diangkat dari penelitian ini adalah bagaimana cara mereduksi gaussian noise dan salt and pepper noise pada citra BMP dan PNG. Format file citra didalam penelitian ini adalah citra berwarna. Ukuran citra yang digunakan dalam penelitian ini adalah 250 x 250 pixel. Didalam sistem akan dilakukan penambahan noise sesuai dengan jenis noisenya, yaitu gaussian noise dan salt and pepper noise. Setelah ditambah noise, maka sistem akan melakukan proses reduksi noise dengan menggunakan metode harmonic mean filter. Masalah pada penelitian ini secara umum ditunjukkan dengan menggunakan diagram Ishikawa pada Gambar 3.1.
(38)
Material Metode
User Sistem
Citra dengan format .bmp atau
.png
Gaussian Noise
Salt and Pepper Noise
Harmonic Mean Filter
Reduksi Noise Menambahkan
noise pada citra
Melakukan reduksi noise Menginputkan nilai
persentase noise
Gambar 3.1 Ishikawa Diagram
3.1.2 Analisis Persyaratan
Terdapat dua bagian pada analisis persyaratan, yaitu persyaratan fungsional dan persyaratan non-fungsional.
3.1.2.1 Persyaratan Fungsional
Analisis fungsional disini mendekripsikan tentang sistem yang disediakan. sistem ini mereduksi noise pada citra berwarna menggunakan Harmonic Mean Filter, terdapat beberapa persyaratan fungsional antara lain :
1. Jenis noise yang digunakan ada 2, yaitu Salt and Pepper Noise dan Gaussian Noise.
2. Format citra merupakan citra berwarna dalam format BMP dan PNG. 3. Ukuran citra yang digunakan adalah 250 x 250 pixel.
4. Metode yang digunakan untuk mereduksi noise adalah harmonic mean filter. 5. Parameter yang digunakan untuk membandingkan kualitas citra adalah Mean
Square Error (MSE), Peak Signal to Noise Ratio (PSNR), dan running time (waktu akses).
(39)
3.1.2.2 Persyaratan Non-Fungsional
Kebutuhan non-fungsional adalah kebutuhan yang berisi kinerja operasional dan performance dari suatu sistem. Terdapat beberapa persyaratan non-fungsional yang harus dipenuhi diantaranya :
1. Performa
Perangkat lunak yang akan dibangun harus dapat menunjukkan hasil dari proses reduksi noise pada citra.
2. Mudah digunakan
Sistem yang akan dibangun harus mudah digunakan (user friendly), artinya sistem ini akan mudah digunakan oleh user dengan tampilan yang sederhana dan dapat dimengerti.
3. Hemat Biaya
Sistem atau perangkat lunak yang digunakan tidak memerlukan perangkat tambahan yang dapat mengeluarkan biaya.
4. Dokumentasi
Sistem yang akan dibangun harus bisa menyimpan citra hasil proses reduksi noise pada citra.
5. Kontrol
Sistem yang akan dibangun harus dapat menampilkan kotak dialog eror ketika user salah dalam melakukan penginputan.
6. Manajemen Kualitas
Sistem atau perangkat lunak yang akan dibangun harus memiliki kualitas yang baik yaitu dapat menghitung nilai MSE dan PSNR secara tepat serta dapat menghitung nilai running time.
3.1.3 Analisis Proses
Sistem ini memiliki 2 proses, yaitu proses tambah noise dan proses reduksi noise dengan metode harmonic mean filter. Dalam proses tambah noise terdapat dua noise yang akan ditambahkan, yaitu Gaussian Noise dan Salt and Pepper Noise
(40)
dan user harus memilih salah satu noise tersebut. Selanjutnya akan dilakukan proses reduksi dengan menggunakan metode harmonic mean filter.
3.1.3.1 Use Case Diagram
Use case diagram menggambarkan interaksi antara sistem dengan pelaku. Diagram use case ini mendeskripsikan siapa saja yang menggunakan sistem dan bagaimana cara mereka berinteraksi dengan sistem. Pemodelan use case merupakan pemodelan yang baik untuk menentukan, mendokumentasikan dan memahami persyaratan fungsional.sehingga pengguna sistem dapat mengerti mengenai kegunaan sistem yang akan dirancang.
(41)
Tambah Noise
Reduksi Noise
Gaussian Noise
Salt and Pepper Noise Buka Citra Awal Input Persentase Noise Pilih Noise Simpan Citra Bernoise Buka Citra Bernoise Harmonic Mean Filter Hitung MSE,PSNR,dan Running Time Simpan Citra Hasil Reduksi <<uses>> <<extends>> <<uses>> <<uses>> <<uses>> <<uses>> <<extends>> <<extends>> <<extends>> <<extends>> user
Syst e m
Gambar 3.2 Use Case Diagram
3.1.3.1.1 Use Case Tambah Noise
Spesifikasi use case tambah noise dapat dilihat pada Tabel 3.1.
Tabel 3.1 Spesifikasi Use Case Tambah Noise
Name Tambah Noise
Actors Pengguna
(42)
Preconditions Pengguna menggunakan aplikasi reduksi noise pada citra.
Post Conditions Sistem akan menampilkan citra bernoise yang telah dipilih.
Success Scenario 1. Pengguna mengeksekusi menu Tambah Noise. 2. Sistem akan menampilkan halaman Tambah Noise. 3. Pengguna memilih citra awal yang berformat BMP atau PNG yang akan ditambah noisenya.
4. Pengguna menginputkan persentase noise berkisar 1-100%.
5. Pengguna memilih noise sesuai yang terdapat pada menu Tambah Noise.
6. Sistem akan melakukan proses penambahan noise sesuai noise yang dipilih dan sistem menampilkan hasil citra bernoise.
7. Pengguna dapat melihat hasil citra bernoise. Alternative Flows -
3.1.3.1.2 Use Case Buka Citra Awal
Spesifikasi use case buka citra awal dapat dilihat pada Tabel 3.2.
Tabel 3.2 Spesifikasi Use Case Buka Citra Awal
Name Buka citra awal
Actors Pengguna
Trigger Pengguna memilih menu Tambah Noise. Preconditions Pengguna mengakses menu Tambah Noise.
Post Conditions Sistem akan menampilkan citra awal yang telah dipilih dari direktori yang berformat BMP atau PNG. Success Scenario 1. Pengguna mengeksekusi tombol Buka File.
(43)
untuk menampilkan lokasi penyimpanan gambar. 3. Pengguna memilih file citra yang berformat BMP atau PNG.
4. Sistem akan menampilkan file citra yang telah dipilih.
5. Pengguna dapat melihat file citra yang telah dipilih. Alternative Flows -
3.1.3.1.3 Use Case Input Persentase Noise
Spesifikasi use case Input Persentase Noise dapat dilihat pada Tabel 3.3.
Tabel 3.3 Spesifikasi Use Case Input Persentase Noise
Name Input Persentase Noise
Actors Pengguna
Trigger Pengguna telah memilih file citra awal. Preconditions Pengguna mengakses menu Tambah Noise.
Post Conditions Sistem menampilkan nilai Persentase Noise yang telah diinputkan.
Success Scenario 1. Penguna telah memilih file citra awal.
2. Pengguna menginputkan nilai persentase noise yang berkisar dari 1-100%.
3. Sistem akan menampilkan nilai persentase noise yang telah di inputkan.
4. Pengguna dapat melihat nilai Persentase Noise yang telah diinputkan.
Alternative Flows -
3.1.3.1.4 Use Case Pilih Noise
(44)
Tabel 3.4 Spesifikasi Use Case Pilih Noise
Name Pilih Noise
Actors Pengguna
Trigger Pengguna telah menginputkan nilai Persentase Noise. Preconditions Pengguna mengakses menu Tambah Noise.
Post Conditions Pengguna memilih salah satu noise yang terdapat pada menu Tambah Noise.
Success Scenario 1. Pengguna telah memilih file citra awal.
2. Pengguna menginputkan nilai persentase noise berkisar dari 1-100%.
3. Sistem akan menampilkan nilai persentase noise yang telah di inputkan.
4. Pengguna dapat melihat nilai persentase noise yang telah diinputkan.
5. Pengguna memilih salah satu noise. Alternative Flows -
3.1.3.1.5 Use Case Gaussian Noise
Spesifikasi use case Gaussian Noise dapat dilihat pada Tabel 3.5.
Tabel 3.5 Spesifikasi Use Case Gaussian Noise
Name Gaussian Noise
Actors Pengguna
Trigger Pengguna telah menginputkan nilai persentase noise. Preconditions Pengguna mengakses menu Tambah Noise.
Post Conditions Sistem akan menampilkan citra hasil Gaussian Noise. Success Scenario 1. Pengguna mengeksekusi menu Tambah Noise.
2. Pengguna memilih file citra awal.
3. Pengguna menginputkan nilai persentase noise berkisar dari 1-100%.
(45)
4. Sistem akan menampilkan nilai persentase noise yang telah diinputkan.
5. Pengguna dapat melihat nilai persentase noise yang telah diinputkan.
6. Pengguna memilih Gaussian Noise dan mengeksekusi tombol Gaussian Noise.
7. Sistem akan melakukan proses tambah noise dan menampilkan citra hasil tambah noise.
8. Pengguna dapat melihat citra hasil Gaussian Noise. Alternative Flows -
3.1.3.1.6 Use Case Salt and Pepper Noise
Spesifikasi use case Salt and Pepper Noise dapat dilihat pada Tabel 3.6.
Tabel 3.6 Spesifikasi Use Case Salt and Pepper Noise
Name Salt and Pepper Noise
Actors Pengguna
Trigger Pengguna telah menginputkan nilai persentase noise. Preconditions Pengguna mengakses menu tambah noise.
Post Conditions Sistem akan menampilkan citra hasil Salt and Pepper Noise.
Success Scenario 1. Pengguna mengeksekusi menu Tambah Noise. 2. Pengguna memilih file citra awal.
3. Pengguna menginputkan nilai persentase noise berkisar dari 1-100%.
4. Sistem akan menampilkan nilai persentase noise yang telah di inputkan.
5. Pengguna dapat melihat nilai persentase noise yang telah diinputkan.
(46)
mengeksekusi tombol Salt and Pepper Noise. 7. Sistem akan melakukan proses tambah noise dan menampilkan citra hasil tambah noise.
8. Pengguna dapat melihat citra hasil Salt and Pepper Noise.
Alternative Flows -
3.1.3.1.7 Use Case Simpan Citra Bernoise
Spesifikasi use case Simpan Citra Bernoise dapat dilihat pada Tabel 3.7.
Tabel 3.7 Spesifikasi Use Case SimpanCitra Bernoise Name Simpan Citra Bernoise
Actors Pengguna
Trigger Pengguna telah melakukan proses tambah noise. Preconditions Pengguna mengakses menu tambah noise.
Post Conditions Sistem menyimpan citra bernoise yang sebelumnya telah ditambahkan.
Success Scenario 1. Pengguna mengeksekusi tombol Simpan Gambar. 2. Sistem akan menampilkan pop-up window Save As untuk menampilkan lokasi penyimpanan gambar. 3. Pengguna menyimpan gambar yang telah ditambah noisenya.
4. Sistem akan menyimpan gambar yang telah ditambah noisenya.
Alternative Flows -
3.1.3.1.8 Use Case Reduksi Noise
(47)
Tabel 3.8 Spesifikasi Use Case Reduksi Noise
3.1.3.1.9 Use Case Buka Citra Bernoise
Spesifikasi use case Buka Citra Bernoise dapat dilihat pada Tabel 3.9.
Tabel 3.9 Spesifikasi Use Case Buka Citra Bernoise
Name Buka Citra Bernoise
Actors Pengguna
Trigger Pengguna memilih menu Reduksi Noise. Preconditions Pengguna mengeksekusi menu reduksi noise. Post Conditions Sistem akan menampilkan file citra bernoise.
Name Reduksi Noise
Actors Pengguna
Trigger Pengguna memilih menu Reduksi Noise.
Preconditions Pengguna menggunakan aplikasi reduksi noise pada citra.
Post Conditions Sistem akan menampilkan citra hasil reduksi noise dengan metode Harmonic Mean Filter.
Success Scenario 1. Pengguna mengeksekusi menu Reduksi Noise. 2. Sistem akan menampilkan halaman Reduksi Noise. 3. Pengguna memilih citra bernoise yang berformat BMP atau PNG.
4. Pengguna mengeksekusi tombol Harmonic Mean Filter.
5. Sistem melakukan proses reduksi noise dengan metode Harmonic Mean Filter dan menampilkan citra hasil reduksi..
6. Pengguna dapat melihat citra hasil reduksi noise dengan metode Harmonic Mean Filter.
(48)
Success Scenario 1. Pengguna mengeksekusi tombol Buka File. 2. Sistem akan menampilkan pop-up window open untuk menampilkan lokasi penyimpanan gambar. 3. Pengguna memilih file citra bernoise yang berformat BMP atau PNG.
4. Sistem akan menampilkan file citra bernoise yang telah dipilih.
5. Pengguna dapat melihat file citra bernoise yang telah dipilih.
Alternative Flows -
3.1.3.1.10 Use Case Harmonic Mean Filter
Spesifikasi use case Harmonic Mean Filter dapat dilihat pada Tabel 3.10.
Tabel 3.10 Spesifikasi Use Case Harmonic Mean Filter
Name Harmonic Mean Filter
Actors Pengguna
Trigger Pengguna telah memilih citra bernoise. Preconditions Pengguna mengeksekusi menu reduksi noise.
Post Conditions Sistem akan menampilkan citra hasil reduksi dengan metode Harmonic Mean Filter.
Success Scenario 1. Pengguna telah memilih file citra bernoise. 2. Pengguna mengeksekusi tombol Harmonic Mean Filter.
3. Sistem melakukan proses reduksi noise dengan metode Harmonic Mean Filter.
4. Pengguna dapat melihat citra hasil reduksi noise dengan metode Harmonic Mean Filter.
(49)
3.1.3.1.11 Use Case Hitung MSE, PSNR, dan Running Time
Spesifikasi use case Hitung MSE, PSNR, dan Running Time dapat dilihat pada Tabel 3.11.
Tabel 3.11 Spesifikasi Use Case Hitung MSE, PSNR, dan Running Time
Name Hitung MSE, PSNR, dan Running Time
Actors Pengguna
Trigger Pengguna telah melakukan proses reduksi noise dengan metode Harmonic Mean Filter.
Preconditions Pengguna mengeksekusi menu reduksi noise.
Post Conditions Sistem akan menampilkan nila MSE, PSNR, dan Running Time.
Success Scenario 1. Pengguna telah melakukan proses reduksi noise dengan metode Harmonic Mean Filter.
2. Pengguna mengeksekusi tombol Harmonic Mean Filter.
3. Sistem melakukan proses perhitungan nilai MSE, PSNR, dan Running Time.
4. Pengguna dapat melihat hasil perhitungan nilai MSE, PSNR, dan Running Time.
Alternative Flows -
3.1.3.1.12 Use Case Simpan Citra Hasil Reduksi
Spesifikasi use case Simpan Citra Hasil Reduksi dapat dilihat pada Tabel 3.12.
Tabel 3.12 Spesifikasi Use Case Simpan Hasil Reduksi Name Simpan Citra Bernoise
Actors Pengguna
(50)
PSNR, dan Running Time.
Preconditions Pengguna mengakses menu Reduksi Noise.
Post Conditions Sistem menyimpan citra hasil reduksi noise dengan metode Harmonic Mean Filter.
Success Scenario 1. Pengguna mengeksekusi tombol Simpan Gambar. 2. Sistem akan menampilkan pop-up window Save As untuk menampilkan lokasi penyimpanan gambar. 3. Pengguna menyimpan citra hasil reduksi noise. 4. Sistem akan menyimpan citra hasil reduksi noise. Alternative Flows -
3.1.3.2 Activity Diagram
Activity diagram adalah diagram aktivitas yang mendeskripsikan proses kerja dalam sebuah sistem yang sedang berjalan. Activity diagram bertujuan untuk membantu memahami keseluruhan proses dan menggambarkan interaksi antara beberapa use case. Activity diagram sistem ini dapat dilihat pada Gambar 3.3.
(51)
User Sistem
Pilih Menu
Buka Citra Awal Tambah Noise
Buka Citra Awal
Input Persentase Noise Menampilkan Citra Awal Menampilkan nilai persentase noise Pilih Noise Tambah Noise
Simpan Citra Menampilkan citra
bernoise Menyimpan citra bernoise Buka Citra Bernoise Baca Citra Menampilkan citra bernoise Reduksi Noise dengan Harmonic Mean Filter
Menampilkan Citra hasil reduksi Harmonic Mean
Filter
Hitung Nilai MSE,PSNR,dan Running Time != Tambah Noise
Menampilkan Nilai MSE,PSNR,dan Running Time Reduksi Noise
.bmp
.png
Simpan Citra Hasil Reduksi Noise
Menyimpan file citra hasil reduksi noise
Tentang Bantuan Menampilkan tentang program Menampilkan petunjuk penggunaan program != Reduksi Noise
*.bmp
*.png
Gaussian Noise
Salt and Pepper Noise
!=Tentang
!=Bantuan
Bantuan Tentang
(52)
3.1.3.3 Sequence Diagram
Sequence diagram merupakan suatu diagram yang menampilkan interaksi-interkasi yang ada pada sistem secara berurutan. Sequence diagram sistem ini dapat dilihat pada Gambar 3.4.
Input Citra Tambah Noise Reduksi Noise Hitung MSE, PSNR, dan Running Time Simpan Citra Hasil Reduksi Noise
Penginputan Citra
Proses Penambahan Noise dengan Menginput
Nilai Persentase Noise
Proses Reduksi Noise dengan Metode Harmonic Mean Filter
Perhitungan Nilai MSE, PSNR, dan Running
Time
Menampilkan Citra Bernoise, Citra Hasil Reduksi Noise, Nilai MSE, PSNR, dan Running Time
Gambar 3.4 Sequence Diagram
3.1.3.4 Analisis Proses Reduksi Noise dengan Harmonic Mean Filter
Berikut ini merupakan contoh penggunaan metode Harmonic Mean Filter. Dimisalkan terdapat suatu matriks citra input 5x5 :
⎣ ⎢ ⎢ ⎢
⎡35 12 69 24 36
6 1 10 7 5
8 3 8 8 5
2 5 1 9 4⎦ ⎥ ⎥ ⎥ ⎤
Selanjutnya matriks tersebut dihitung dengan menggunakan rumus Harmonic Mean Filter, yaitu :
�(�,�) = �� ∑(�,�)∈����(�1,�)
(53)
Perhitungan dimulai dari koordinat f(2,2) dan dilakukan dengan mengambil matriks 3x3 dari matriks tetangga piksel yang akan direduksi. Perhitungan ini dilakukan pada setiap nilai piksel pada suatu matriks citra. Contoh penggunaan rumus Harmonic Mean Filter dapat dilihat seperti di bawah ini:
⎣ ⎢ ⎢ ⎢
⎡35 12 69 24 36
6 1 10 7 5
8 3 8 8 5
2 5 1 9 4⎦ ⎥ ⎥ ⎥ ⎤
�(2,2) = 9
1 3+ 1 1+ 1 6+ 1 5+ 1 2+ 1 9+ 1 6+ 1 1+ 1 10
= 9 3,54= 2
�(2,3) = 9
1 1+ 1 6+ 1 2+ 1 2+ 1 9+ 1 4+ 1 1+ 1 10+ 1 7
= 9 3,77= 2
�(2,4) = 9
1 6+ 1 2+ 1 3+ 1 9+ 1 4+ 1 6+ 1 10+ 1 7+ 1 5
= 9 1,97= 5
�(3,2) = 9
1 5+ 1 2+ 1 9+ 1 6+ 1 1+ 1 10+ 1 8+ 1 3+ 1 8
= 9 2,66= 3
�(3,3) = 9
1 2+ 1 9+ 1 4+ 1 1+ 1 10+ 1 7+ 1 3+ 1 8+ 1 8
= 9 2,68= 3
�(3,4) = 9
1 9+ 1 4+ 1 6+ 1 10+ 1 7+ 1 5+ 1 8+ 1 8+ 1 5
= 9 1,34= 6
�(4,2) = 9
1 6+ 1 1+ 1 10+ 1 8+ 1 3+ 1 8+ 1 2+ 1 5+ 1 1
= 9 3,55= 3
�(4,3) = 9
1 1+ 1 10+ 1 7+ 1 3+ 1 8+ 1 8+ 1 5+ 1 1+ 1 9
= 9 3,13= 3
�(4,4) = 9
1 10+ 1 7+ 1 5+ 1 8+ 1 8+ 1 5+ 1 1+ 1 9+ 1 4
= 9 2,25= 4
(54)
Setelah dilakukan perhitungan seperti diatas, maka didapat lah citra output dari matriks 5x5 yang sebelumnya telah disebutkan.
Citra output dapat dilihat pada matriks berikut ini:
⎣ ⎢ ⎢ ⎢
⎡35 12 69 24 36
6 1 10 7 5
8 3 8 8 5
2 5 1 9 4⎦ ⎥ ⎥ ⎥ ⎤ ⎣ ⎢ ⎢ ⎢
⎡35 12 62 25 36 6 3 3 6 5 8 3 3 4 5 2 5 1 9 4⎦
⎥ ⎥ ⎥ ⎤
3.2 Pseudocode
3.2.1 Pseudocode Proses Tambah Noise Gaussian
for (int i = 0; i < Pixels.Length; i+=step) if (i < Pixels.Length - step)
for (int j = 0; j < step; j++) gaussnumber = getGaussianNumber();
newpixel = Convert.ToInt32(gaussnumber*prob)+ Convert.ToInt32(Pixels[i + j]);
if (newpixel < 0) newpixel = 0; if (newpixel > 255) newpixel = 255;
Pixels[i + j] = Convert.ToByte(newpixel);
Pada pseudocode proses tambah Gaussian noise pertama kali dilakukan perulangan dari 0 sampai panjang pixel. Jika i lebih kecil dari panjang pixel – step, maka dilakukan perulangan dari 0 sampai nilai step. Kemudian diambil nilai gaussnumber dari method getGaussianNumber. Setelah itu diambil nilai newPixel dengan cara nilai gaussnumber dikali probabilitas. Jika nilai newpixel lebih kecil dari 0 maka nilai newpixel = 0 tapi jika nilai newpixel lebih besar dari 255 maka nilai newpixel = 255. Kemudian nilai newpixel dimasukkan ke array pixel dengan indeks [i+j].
(55)
3.2.2 Pseudocode Proses Tambah Noise Salt and Pepper
prob = Convert.ToInt32(x * y * (prob/200)); Random rnd = new Random();
while (prob > 0)
widthPos = rnd.Next(0, x - 1); HeightPos = rnd.Next(0, y - 1); randomNumber = rnd.Next(1, 10); if (randomNumber <= 5)
citra.SetPixel(widthPos, HeightPos, Color.FromArgb(255, 0, 0, 0));
else
citra.SetPixel(widthPos, HeightPos, Color.FromArgb(255, 255, 255, 255));
prob--;
Pada pseudocode proses tambah Salt and Pepper Noise pertama kali diambil nilai probabilitas dengan cara x * y * (prob/200). Dimana x adalah lebar citra, dan y adalah panjang citra. Setelah itu diambil nilai random selama nilai prob lebih besar dari 0. Kemudian diambil nilai random untuk widthPos dalam rentang 0 sampai x-1 dan nilai random untuk HeightPos dalam rentang 0 sampai y-1. Untuk nilai random untuk randomNumber dalam rentang 1 sampai 9. Jika randomNumber lebih kecil atau sama dengan 5. Kemudian set Pixel pada posisi widthPos, HeightPos dengan nilai pixel 0,0,0 (noise warna hitam) dan set Pixel pada posisi widthpos, HeightPos, HeightPos dengan nilai pixel 255,255,255 (noise warna putih). Nilai prob = prob – 1.
3.2.3 Pseudocode Proses Reduksi Noise
image = new Bitmap(redcitranoise.Image); int xi = image.Width;
int yi = image.Height;
double red = 0, green = 0, blue = 0, hasilred = 0, hasilgreen = 0, hasilblue = 0;
double redfinal, greenfinal, bluefinal; imagehasil = new Bitmap(xi, yi);
for (int i = 0; i < yi-2; i++) for (int j = 0; j < xi-2; j++)
for (int k = i; k <= i + 2; k++) for (int l = j; l <= j + 2; l++) red = image.GetPixel(l, k).R; if (red == 0)
(56)
red = 255;
green = image.GetPixel(l, k).G; if (green == 0)
green = 255;
blue = image.GetPixel(l, k).B; if (blue == 0)
blue = 255;
hasilred += (1.0 / red); hasilgreen += (1.0 / green); hasilblue += (1.0 / blue); redfinal = 9/hasilred;
double RED = Math.Round(redfinal, 0); greenfinal = 9/hasilgreen;
double GREEN = Math.Round(greenfinal, 0); bluefinal = 9/hasilblue;
double BLUE = Math.Round(bluefinal, 0); imagehasil.SetPixel(j + 1, i + 1,
Color.FromArgb(255, (int)RED, (int)GREEN, (int)BLUE)); hasilred = 0;
hasilgreen = 0; hasilblue = 0;
Pada pseudocode proses reduksi noise dengan metode Harmonic Mean Filter pertama kali dilakukan deklarasi variabel image sebagai bitmap yang diambil dari image picturebox redcitranoise. Set nilai xi sebagai lebar image dan set nilai yi sebagai panjang image. Kemudian set nilai red, green, blue, hasilred, hasilgreen, dan hasilblue masing-masing 0. Kemudian deklarasivariabel redfinal, greenfinal, dan bluefinal. Deklarasi variabel imagehasil sebagai bitmap dengan lebar xi dan panjang yi. Kemudian dilakukan perulangan i mulai dari 0 sampai yi-2 dan perulangan j mulai dari 0 sampai xi-2. Setelah itu dilakukan perulangan k mulai dari i sampai i+2 dan perulangan l mulai dari j sampai j+2. Setelah itu diambil nilai red dari pixel ke (l,k). Jika nilai red = 0 maka nilai red = 255. Kemudian diambil nilai green dari pixel ke (l,k). Jika nilai green = 0 maka nilai green = 255. Diambil lagi nilai blue dari pixel ke (l,k). Jika nilai blue = 0 maka nilai blue = 255. Selanjutnya set nilai variabel hasilred = hasilred + (1/red) (sesuai rumus). Set nilai variabel hasilgreen = hasilgreen + (1/green) (sesuai rumus). Dan set nilai variabel hasilblue = hasilblue + (1/blue) (sesuai rumus). Kemudian set nilai variabel redfinal = 9/hasilred. Nilai redfinal tersebut dibulatkan dan dimasukkan ke variabel RED. Set nilai variabel greenfinal = 9/hasilgreen. Nilai greenfinal tersebut dibulatkan dan dimasukkan ke variabel GREEN. Dan set nilai variabel
(57)
bluefinal = 9/hasilblue. Nilai bluefinal tersebut dibulatkan dan dimasukkan ke variabel BLUE. Kemudian set pixel imagehasil pada posisi (j+1, i+1) dengan nilai RED, GREEN, dan BLUE. Nilai hasilred, hasilgreen, dan hasilblue dikembalikan ke 0.
3.3 Perancangan Sistem
3.3.1 Flowchart Perancangan Sistem
Start Start
Tambah Noise
Tambah Noise Reduksi
Noise Tentang Bantuan Keluar
Halaman Tambah Noise Input Citra Awal Input Persentase Noise Gaussian Noise Salt and Pepper Noise Simpan Gaussian Noise Salt and Pepper Noise Halaman Reduksi Noise Input Citra Bernoise Harmonic Mean Filter Hitung MSE, PSNR, dan Running
Time Simpan End Halaman Tentang Halaman Bantuan Ya Ya Ya Tidak Tidak
Tidak Tidak Tidak Tidak Tidak
Ya Ya Ya Ya
(58)
3.3.2 Perancangan Antarmuka Sistem (Interface)
Perancangan antarmuka digunakan untuk menampilkan antarmuka sistem yang akan digunakan oleh pengguna. Sistem ini dirancang dalam 5 form, yaitu form Utama, form Tambah Noise, form Reduksi Noise, form Tentang, dan form Bantuan.
3.3.2.1 Halaman Menu Utama
Halaman menu utama merupakan halaman yang pertama kali muncul pada saat sistem dijalankan. Halaman ini memiliki beberapa menu bar, yaitu menu utama, menu tambah noise, menu reduksi noise, menu tentang, menu bantuan dan menu keluar. Tampilan rancangan halaman menu utama dapat dilihat pada Gambar 3.6 berikut.
(59)
Keterangan:
1. Merupakan Tool Strip Menu Item Utama.
2. Merupakan Tool Strip Menu Item Tambah Noise. 3. Merupakan Tool Strip Menu Item Reduksi Noise. 4. Merupakan Tool Strip Menu Item Tentang. 5. Merupakan Tool Strip Menu Item Bantuan. 6. Merupakan Tool Strip Menu Item Exit. 7. Merupakan Label Judul Skripsi. 8. Merupakan Label Nama dan NIM. 9. Merupakan Picture Box Logo Fakultas. 10.Merupakan Label Program Studi.
3.3.2.2 Halaman Menu Tambah Noise
Halaman menu Tambah Noise merupakan halaman yang akan digunakan untuk melakukan proses penambahan noise. Tampilan rancangan halaman Menu Tambah Noise dapat dilihat pada Gambar 3.7 berikut :
(60)
Gambar 3.7 Rancangan Antarmuka Halaman Menu Tambah Noise
Keterangan:
1. Merupakan Label citra awal. 2. Merupakan Picture Box citra awal. 3. Merupakan Button Buka File. 4. Merupakan Label Nama File. 5. Merupakan Label Ukuran. 6. Merupakan Label Lokasi.
7. Merupakan Label Panjang x Lebar.
8. Merupakan Text Box untuk menampilkan Nama File. 9. Merupakan Text Box untuk menampilkan Ukuran File. 10. Merupakan Text Box untuk menampilkan Lokasi File. 11. Merupakan Text Box untuk menampilkan Panjang Citra.
(61)
12. Merupakan Text Box untuk menampilkan Lebar Citra. 13. Merupakan Label Kb.
14. Merupakan Label x.
15. Merupakan Group Box untuk Keterangan Gambar. 16. Merupakan Label Persentase Noise.
17. Merupakan Text Box untuk menampilkan Persentase Noise. 18. Merupakan Label %.
19. Merupakan Button Gaussian Noise. 20. Merupakan Button Salt and Pepper Noise.
21. Merupakan Group Box untuk Persentase Noise, Gaussian Noise, dan Salt and Pepper Noise.
22. Merupakan Label Citra Bernoise. 23. Merupakan Picture Box Citra Bernoise. 24. Merupakan Button Hapus Gambar. 25. Merupakan Button Simpan Gambar. 26. Merupakan Button Kembali.
27. Merupakan Group Box Hapus Gambar, Simpan Gambar, dan Kembali.
3.3.2.3 Halaman Menu Reduksi Noise
Halaman Menu Reduksi Noise merupakan Halaman untuk melakukan proses Reduksi Noise dengan Metode Harmonic Mean Filter. Tampilan rancangan halaman Menu Reduksi Noise dapat dilihat pada Gambar 3.8 berikut :
(62)
Gambar 3.8 Rancangan Antarmuka Halaman Menu Reduksi Noise
Keterangan:
1. Merupakan Label Citra Bernoise. 2. Merupakan Picture Box Citra Bernoise. 3. Merupakan Label Jenis Noise.
4. Merupakan Label Persentase Noise.
5. Merupakan Text Box untuk menampilkan Jenis Noise. 6. Merupakan Text Box untuk menampilkan Persentase Noise. 7. Merupakan Label %.
8. Merupakan Group Box untuk Jenis Noise dan Persentase Noise. 9. Merupakan Button Buka File.
10. Merupakan Button Hapus File.
(63)
12. Merupakan Group Box untuk Buka File, Hapus File, dan Harmonic Mean Filter.
13. Merupakan Label Citra Hasil. 14. Merupakan Picture Box Citra Hasil. 15. Merupakan Label MSE.
16. Merupakan Label PSNR.
17. Merupakan Label Running Time.
18. Merupakan Text Box untuk menampilkan nilai MSE. 19. Merupakan Text Box untuk menampilkan nilai PSNR.
20. Merupakan Text Box untuk menampilkan nilai Running Time. 21. Merupakan Label Sekon.
22. Merupakan Group Box untuk MSE, PSNR, dan Running Time. 23. Merupakan Button Simpan.
24. Merupakan Button Kembali.
25. Merupakan Group Box untuk Simpan dan Kembali.
3.3.2.4 Halaman Menu Tentang
Halaman menu Tentang merupakan halaman tentang penulis dan keterangan lainnya. Tampilan rancangan halaman menu Tentang dapat dilihat pada Gambar 3.9 berikut :
(64)
Gambar 3.9 Rancangan Antarmuka Halaman Menu Tentang
Keterangan :
1. Merupakan Label Judul Skripsi.
2. Merupakan Label Nama dan NIM Penulis.
3. Merupakan Picture Box untuk menampilkan Foto Penulis. 4. Merupakan Button Kembali.
3.3.2.5 Halaman Menu Bantuan
Tampilan rancangan halaman Menu Bantuan dapat dilihat pada Gambar 3.10 berikut :
(65)
Gambar 3.10 Rancangan Antarmuka Halaman Menu Bantuan
Keterangan :
1. Merupakan Label Harmonic Mean Filter. 2. Merupakan Label Menu Tambah Noise. 3. Merupakan Label Menu Reduksi Noise.
4. Merupakan Rich Text Box untuk menampilkan Menu Tambah Noise. 5. Merupakan Rich Text Box untuk menampilkan Menu Reduksi Noise. 6. Merupakan Button Kembali.
(66)
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem. Sistem ini dibangun dengan menggunakan bahasa pemrograman C# dan menggunakan Software Microsoft Visual Studio 2010. Pada sistem ini terdapat 5 (lima) tampilan halaman, yaitu Halaman Utama, Halaman Tambah Noise, Halaman Reduksi Noise, Halaman Tentang, dan Halaman Bantuan.
4.1.1 Tampilan Halaman Menu Utama
Halaman utama merupakan tampilan halaman yang muncul pertama sekali pada saat sistem dijalankan. Halaman utama memiliki 5 menu bar, yaitu menu utama, menu tambah noise, menu reduksi noise, menu tentang, dan menu bantuan. Tampilan Halaman menu utama dapat dilihat pada gambar 4.1
(67)
Gambar 4.1 Tampilan Menu Utama
4.1.2 Tampilan Halaman Menu Tambah Noise
Tampilan Halaman Menu Tambah Noise merupakan halaman yang digunakan untuk menambahkan noise pada citra awal. Gambar 4.2 dibawah ini menunjukkan tampilan halaman menu tambah noise.
(68)
Gambar 4.2 Tampilan Halaman Menu Tambah Noise
4.1.3 Tampilan Halaman Menu Reduksi Noise
Tampilan halaman menu reduksi noise merupakan halaman yang digunakan untuk melakukan proses reduksi noise pada citra bernoise dengan menggunakan metode Harmonic Mean Filter. Gambar 4.3 dibawah ini menunjukkan tampilan halaman menu reduksi noise.
(69)
Gambar 4.3 Tampilan Halaman Menu Reduksi Noise
4.1.4 Tampilan Halaman Menu Tentang
Tampilan halaman menu tentang merupakan halaman tentang penulis dan penjelasan lainnya. Gambar 4.4 dibawah ini menunjukkan tampilan halaman menu tentang.
(70)
Gambar 4.4 Tampilan Halaman Menu Tentang
4.1.5 Tampilan Halaman Menu Bantuan
Tampilan halaman menu bantuan merupakan halaman yang menjelaskan cara-cara dalam menggunakan sistem ini. Dan pada halaman ini juga akan dijelaskan bagaimana langkah-langkah dalam melakukan proses tambah noise pada citra awal dan melakukan reduksi noise pada citra bernoise dengan menggunakan metode Harmonic Mean Filter. Gambar 4.5 dibawah ini menunjukkan tampilan halaman menu bantuan.
(1)
hasilgreen = 0; hasilblue = 0; }
}
pictureBox1.Image = imagehasil;
double MSENoise = hitungMSE(imageAwal, image); double MSE = hitungMSE(imageAwal, imagehasil); txtMSE.Text = MSE.ToString();
double persentase = 0;
if (txtNoise.Text.CompareTo("Salt and Pepper Noise") > 0) persentase = ((MSENoise - MSE) / MSENoise) *
Convert.ToInt32(txtPersentase.Text); else
persentase = ((MSE - MSENoise) / MSE) * Convert.ToInt32(txtPersentase.Text);
txtPersen.Text = persentase > 0 ? Math.Round(persentase).ToString() : "0";
txtPSNR.Text = hitungPSNR(MSE).ToString(); sw.Stop();
txtTime.Text =
Math.Round(Convert.ToDecimal(sw.ElapsedMilliseconds) / 1000, 4).ToString();
MessageBox.Show("Proses Reduksi Noise Selesai"); }
private void button1_Click(object sender, EventArgs e) {
try {
OpenFileDialog open = new OpenFileDialog(); open.Filter = "Image Files(*.bmp)|*.bmp|Image Files(*.png)|*.png|All Files(*.*)|*.*";
if (open.ShowDialog() == DialogResult.OK) {
Bitmap bit = new Bitmap(open.FileName); redcitranoise.Image = bit;
string nama = open.FileName.Substring(0, open.FileName.Length - 4) + ".txt";
FileStream fstream = new FileStream(nama, FileMode.Open, FileAccess.ReadWrite);
StreamReader sreader = new StreamReader(fstream); sreader.BaseStream.Seek(0, SeekOrigin.Begin); string Keterangan = sreader.ReadToEnd(); sreader.Close();
string[] info = new string[2]; info = Keterangan.Split('/'); txtPersentase.Text = info[0]; txtNoise.Text = info[1]; }
}
catch (Exception) {
throw new ApplicationException("Failed loading image");
} }
private void button3_Click(object sender, EventArgs e) {
redcitranoise.Image = null; }
(2)
private void button4_Click(object sender, EventArgs e) {
if (pictureBox1.Image != null) {
SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "Image Files|*.bmp|Image Files|*.png";
simpan.FileName = "*.bmp";
if (simpan.ShowDialog() == DialogResult.OK) {
pictureBox1.Image.Save(simpan.FileName, System.Drawing.Imaging.ImageFormat.Bmp);
MessageBox.Show("Citra Hasil telah disimpan", "Simpan", MessageBoxButtons.OK, MessageBoxIcon.Information); }
} else {
MessageBox.Show("Citra Hasil belum ada"); }
}
private void button5_Click(object sender, EventArgs e) {
utama frm1 = new utama(); this.Dispose();
frm1.ShowDialog(); }
private double hitungMSE(Bitmap imageAsli, Bitmap imageHasil) {
double sum = 0;
double r1, r2, g1, g2, b1, b2, MSE;
for (int i = 0; i < imageAsli.Height; i++) {
for (int j = 0; j < imageAsli.Width; j++) {
r1 = imageAsli.GetPixel(j, i).R; r2 = imageHasil.GetPixel(j, i).R; sum += Math.Pow(r1 - r2, 2); g1 = imageAsli.GetPixel(j, i).G; g2 = imageHasil.GetPixel(j, i).G; sum += Math.Pow(g1 - g2, 2); b1 = imageAsli.GetPixel(j, i).B; b2 = imageHasil.GetPixel(j, i).B; sum += Math.Pow(b1 - b2, 2); }
}
MSE = sum / (imageAsli.Height * imageAsli.Width); return MSE;
}
private double hitungPSNR(double MSE) {
double PSNR = Math.Log10(Math.Pow(255, 2) / MSE); return PSNR;
}
private void button6_Click(object sender, EventArgs e) {
(3)
try {
OpenFileDialog open = new OpenFileDialog(); open.Filter = "Image Files(*.bmp)|*.bmp|Image Files(*.png)|*.png|All Files(*.*)|*.*";
if (open.ShowDialog() == DialogResult.OK) {
Bitmap bit = new Bitmap(open.FileName); imgAwal.Image = bit;
} }
catch (Exception) {
throw new ApplicationException("Failed loading image");
} } } }
Kode Program Menu Bantuan:
using System;using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms;
namespace Harmonic_Mean_Filter {
public partial class bantuan : Form {
public bantuan() {
InitializeComponent(); }
private void kembali4_Click(object sender, EventArgs e) {
utama frm1 = new utama(); this.Dispose();
frm1.ShowDialog(); }
} }
(4)
Kode Program Menu Tentang:
using System;using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms;
namespace Harmonic_Mean_Filter {
public partial class tentang : Form {
public tentang() {
InitializeComponent(); }
private void tentang_Load(object sender, EventArgs e) {
}
private void kembali5_Click(object sender, EventArgs e) {
utama frm1 = new utama(); this.Dispose();
frm1.ShowDialog(); }
} }
(5)
DAFTAR RIWAYAT HIDUP
DATA PRIBADI
Nama Lengkap
: Gamal Nasir
Jenis Kelamin
: Laki-laki
Tempat, Tanggal Lahir
: Banda Aceh, 19 Juli 1992
Alamat
: Jl. Binjai Km.10 Gang. Damai No.35 Deli Serdang
Agama
: Islam
: [email protected]
Pendidikan Terakhir
: Universitas Sumatera Utara Medan, Fakultas Ilmu
Komputer dan Teknologi Informasi Jurusan S1
Ilmu Komputer
PENDIDIKAN FORMAL
2009 – 2014
: S1 Ilmu Komputer Universitas Sumatera Utara, Medan
2006 – 2009
: SMA Negeri 15 Medan
2003 – 2006
: SMP Negeri 19 Medan
1997 – 2003
: SD Negeri 101731 Deli Serdang
PENGALAMAN ORGANISASI DAN KEGIATAN ILMIAH
Wakil Ketua OSIS SMP Negeri 19 Medan, 2004-2005
Wakil Ketua PIKIR (Pusat Informasi Reproduksi dan Gender) SMA Negeri 15
Medan 2006-2009
Anggota OSIS SMA Negeri 15 Medan 2007-2009
Anggota Departemen Hubungan Humas Ikatan Mahasiswa S1 Ilmu Komputer
(IMILKOM), 2009-2011
Ketua PORSENI (Pekan Olahraga dan Seni) IMILKOM, 2010-2011
Anggota PEMA Fakultas MIPA 2010-2011
(6)