Analisis Sistem Kode Program Class FFTN Wiener Filter :

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Analisis sistem bertujuan untuk memecah sistem ke dalam komponen-komponen subsistem yang lebih kecil untuk mengetahui hubungan setiap komponen tersebut dalam mencapai tujuan Whitten, 2004. 3.1.1 Analisis masalah Masalah yang akan diselesaikan dengan menggunakan sistem ini adalah bagaimana melakukan perbaikan citra digital yang memiliki noise asli dan impulse noise menjadi citra yang lebih baik, dimana noise dihilangkan melalui suatu proses filtering yang dilakukan pada citra berformat .bmp. Metode yang digunakan untuk perbaikan citra pada penelitian ini adalah Wiener Filter, Adaptive Median Filter dan gabungan Wiener Filter dengan Adaptive Median Filter. Analisis masalah ini secara spesifik diilustrasikan pada gambar 3.1 yang dirancang dalam bentuk Diagram Ishikawa. Universitas Sumatera Utara Gambar 3.1. Diagram Ishikawa Bagian penyebab suatu masalah tulang ikan terdiri atas 4 aspek yaitu Materials, Methode, Machine, dan Man. Materials merupakan aspek permasalahan yang bersumber dari bahan-bahan penyebab suatu masalah atau dampak. Method merupakan aspek permasalahan yang bersumber dari cara yang digunakan dalam mengatasi dampak. Man merupakan aspek permasalahan yang berasal dari sumber daya manusia. Dan machine merupakan aspek permasalahan yang berasal dari perangkat yang digunakan dalam proses penyebab suatu masalah. Pada sistem ini, permasalahan pada aspek materials adalah citra yang memiliki noise asli dan impulse noise, permasalahan pada aspek method adalah kesalahan dalam penerapan metode filtering, permasalahan pada aspek machine adalah kesalahan dalam penggunaan alat pada saat akuisisi citra, dan permasalahan pada aspek man adalah kesalahan pada saat pengambilan dan capturing gambar. 3.1.2 Analisis persyaratan Analisis persyaratan merupakan proses melibatkan semua kegiatan yang dibutuhkan untuk membuat dan memelihara sistem. Analisis persyaratan terbagi menjadi dua bagian penting, yaitu persyaratan fungsional dan persyaratan non-fungsional. Universitas Sumatera Utara 3.1.2.1 Persyaratan fungsional Persyaratan fungsional merupakan jenis persyaratan yang berisi proses – proses apa saja yang nantinya akan dilakukan oleh sistem, persyaratan fungsional juga berisi informasi apa saja yang dihasilkan oleh sistem. Adapun persyaratan fungsional yang digunakan dalam sistem perbaikan citra yang berisi noise asli dan impulse noise pada citra digital dengan metode Wiener Filter, Adaptive Median Filter dan gabungan Wiener Filter dengan Adaptive Median Filter adalah sebagai berikut: 1. Citra yang digunakan adalah citra true color dengan format bitmap .bmp dengan ukuran dimensi sama dengan 256x256 atau 512x512 piksel. 2. Sistem mengambil citra inputan berupa citra yang memiliki noise asli dan citra dengan impulse noise. 3. Sistem menggunakan konstanta bernilai 100 pada Wiener Filter dan window maksimum yang bernilai 5 pada Adaptive Median Filter. 4. Sistem melakukan perhitungan Mean Squared Error MSE, Peak Signal to Noise Ratio PSNR dan running time sebagai parameter pembanding kualitas citra. 5. Citra hasil proses filtering disimpan dengan format file asalnya yaitu .bmp. 3.1.2.2 Persyaratan non-fungsional Persyaratan non-fungsional merupakan persyaratan yang berisi property prilaku yang dimiliki suatu sistem. Adapun persyaratn non-fungsional pada sistem yang harus terpenuhi adalah sebagai berikut: 1. Performa Performance Sistem yang dibangun harus dapat memperbaiki citra yang berisi noise asli dan impulse noise, dan menunjukkan proses perubahan noise pada citra hasil. 2. Informasi Information Sistem yang akan dibangun harus mudah dimengerti oleh pengguna agar informasi yang dibutuhkan oleh user tersampaikan dengan baik. 3. Hemat biaya Economy Sistem yang dibangun tidak membutuhkan perangkat tambahan untuk implementasinya sehingga tidak menambah biaya. 4. Dokumentasi Sistem yang dibangun harus dapat menyimpan citra degan format .bmp, serta sistem juga harus mampu menyimpan citra hasil filtering. Universitas Sumatera Utara 5. Manajemen kualitas Sistem yang dibangun harus memiliki kualitas yang baik, dimana sistem dapat memperbaiki citra yang berisi noise asli dan impulse noise untuk menghasilkan citra yang lebih baik dari citra aslinya dan dapat menghitung nilai MSE dan PSNR secara tepat serta dapat menghitung nilai running time. 6. Kontrol Sistem yang akan dibangun harus dapat menampilkan kotak dialog error ketika user salah dalam melakukan penginputan. 3.1.3 Analisis proses Sistem ini dibuat menggunakan teknik filtering yaitu Wiener Filter, Adaptive Median Filter dan gabungan Wiener Filter dengan Adaptive Median Filter. Dimana noise yang digunakan merupakan noise asli yang bukan melalui proses bangkitan dari sistem, melainkan noise yang memang sudah terdapat dalam citra itu sendiri dan ditambah citra dengan impulse noise. Sistem ini hanya memiliki 1 proses saja, yaitu hanya proses filtering. Dimana pada proses Wiener Filter dilakukan pada kawasan frekuensi yang memerlukan transformasi Fourier untuk dapat mentransfer fungsi filter dari kawasan spasial ke kawasan frekuensi. Sedangkan pada proses Adaptive Median Filter dilakukan pada kawasan spasial. Untuk proses kombinasi Wiener Filter dengan Adaptive Median Filter diambil dari hasil pemrosesan filter Wiener Filter yang kemudian dilakukan lagi pemfilteran Adaptive Median Filter. 3.1.3.1 Use Case diagram Sebuah use-case diagram adalah sebuah urutan aksi yang dilakukan oleh sistem dan menghasilkan hasil nilai kepada seorang pengguna. Use-case menggambarkan sekumpulan interaksi antara pengguna dengan sistem. Use Case Diagram dari sistem yang akan dibangun dapat ditunjukkan pada gambar 3.2 Universitas Sumatera Utara extends Filter Citra Pilih citra Wiener Filter Adaptive Median Filter Kombinasi Wiener Filter dan Adaptive Median Filter Simpan citra hasil System User Hitung MSE, PSNR, dan running time includes includes in clud es in cl ud es includes Gambar 3.2. Use Case Diagram Diagram pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh user. User membuka aplikasi Filtering, kemudian melakukan input citra awal yang berisikan noise asli atau impulse noise, setelah citra berhasil diinput user dapat melakukan langsung proses filtering menggunakan metode Wiener Filter, Adaptive Median Filter dan kombinasi Wiener Filter dengan Adaptive Median Filter. Setelah dilakukan filtering maka akan muncul citra hasil beserta parameternya MSE, PSNR, dan running time. Kemudian, user dapat menyimpan citra hasil filtering. Berikut ini merupakan spesifikasi Use Case untuk Pilih Citra dapat dilihat pada Tabel 3.1. Tabel 3.1. Spesifikasi Use Case Pilih Citra Use Case Pilih Citra Actors User Preconditions User memulai mengakses menu Filtering Postconditions Sistem akan menampilkan citra awal yang telah dipilih dari direktori yang berformat .bmp Main Flow Of Event User System Response 1. Mengeksekusi tombol ambil citra 2. Menampilkan pop-up window open untuk menampilkan lokasi Universitas Sumatera Utara penyimpanan gambar 3. Pengguna memilih file citra yang berformat .bmp 4. Menampilkan file citra yang telah dipilih Alternative Flow - Berikut ini merupakan spesifikasi Use Case Filtering Citra dapat dilihat pada Tabel 3.2. Tabel 3.2. Spesifikasi Use Case Filtering Citra Use Case Pilih Metode Filtering Actors User Preconditions User mengakses menu Filtering kemudian menekan tombol Filtering Citra Postconditions Sistem menampilkan citra hasil filtering Main Flow Of Event User System Response 1. Mengakses menu filtering 2. Menampilkan halaman beberapa metode filtering 3. Memilih satu per satu button filtering 4. Menampilkankan citra hasil filtering dari metode Wiener Filter, Adaptive Median Filter dan kombinasi Wiener Filter dengan Adaptive Median Filter beserta parameternya yakni MSE, PSNR, dan running time. Alternative Flow - Tabel 3.3. Spesifikasi Use Case Wiener Filter Use Case Wiener Filter Actors User Preconditions User mengakses menu filtering Postconditions Sistem akan menampilkan citra hasil perbaikan dari Wiener Filter Main Flow Of Event User System Response 1. Memilih menu filtering 2. Menampilkan halaman pilihan metode filtering 3. Pilih metode Wiener Filter 4. Menampilkan halaman kerja citra hasil dengan Wiener Filter Universitas Sumatera Utara 5. Lakukan filtering 6. Menampilkan citra hasil perbaikan Wiener Filter 7. - 8. Menghitung dan menampilkan nilai MSE, PSNR, dan running time Alternative Flow - Berikut ini merupakan spesifikasi Use Case Adaptive Median Filter dapat dilihat pada Tabel 3.4. Tabel 3.4. Spesifikasi Use Case Adaptive Median Filter Use Case Adaptive Median Filter Actors User Preconditions User mengakses menu filtering Postconditions Sistem akan menampilkan citra hasil perbaikan dari Adaptive Median Filter Main Flow Of Event User System Response 1. Mengakses menu filtering 2. Menampilkan halaman pilihan metode filtering 3. Memilih metode Adaptive Median Filter 4. Menampilkankan halaman kerja proses Adaptive Median Filter 5. Lakukan filtering 6. Menampilkan citra hasil perbaikan Adaptive Median Filter 7. - 8. Menghitung dan menampilkan nilai MSE, PSNR, dan running time Alternative Flow - Berikut ini merupakan spesifikasi Use Case kombinasi Wiener Filter dan Adaptive Median Filter dapat dilihat pada Tabel 3.5. Universitas Sumatera Utara Tabel 3.5. Spesifikasi Use Case kombinasi Wiener Filter dan Adaptive Median Filter Use Case Kombinasi Wiener Filter dan Adaptive Median Filter Actors User Preconditions User mengakses menu filtering Postconditions Sistem akan menampilkan citra hasil perbaikan dari kombinasi Wiener Filter dan Adaptive Median Filter Main Flow Of Event User System Response 1. Mengakses menu filtering 2. Menampilkan halaman pilihan metode filtering 3. Memilih metode kombinasi Wiener Filter dan Adaptive Median Filter 4. Menampilkankan halaman kerja proses kombinasi Wiener Filter dan Adaptive Median Filter 5. Lakukan filtering 6. Menampilkan citra hasil perbaikan Adaptive Median Filter 7. - 8. Menghitung dan menampilkan nilai MSE, PSNR, dan running time Alternative Flow - Berikut ini merupakan spesifikasi Use Case hitung MSE, PSNR dan running time dapat dilihat pada Tabel 3.6. Tabel 3.6. Spesifikasi Use Case hitung MSE, PSNR dan running time Use Case Hitung MSE, PSNR dan running time Actors User Preconditions User memilih salah satu button filtering Postconditions Sistem menampilkan nilai MSE, PSNR dan running time Main Flow Of Event User System Response 1. Menekan tombol filtering 2. Memunculkan citra hasil perbaikan yang telah difiltering 3. - 4. Memunculkan nilai MSE, PSNR dan running time Alternative Flow - Universitas Sumatera Utara Berikut ini merupakan spesifikasi Use Case Simpan Citra dapat dilihat pada Tabel 3.7. Tabel 3.7. Spesifikasi Use Case Simpan Citra Hasil Use Case Simpan Citra Hasil Actors User Preconditions User mengeksekusi button simpan citra Postconditions Sistem akan menyimpan citra hasil yang telah difiltering ke direktori penyimpanan citra Main Flow Of Event User System Response 1. Mengeksekusi button simpan citra 2. Menampilkan pop-up window save untuk menampilkan lokasi penyimpanan gambar Alternative Flow - 3.1.3.2. Activity diagram Activity diagram menggambarkan proses kerja dalam sebuah sistem yang sedang berjalan. Berikut ini akan dijelaskan Activity Diagram dari sistem yang dibuat yaitu Activity Diagram Wiener Filter, Adaptive Median Filter dan kombinasi Wiener Filter dengan Adaptive Median Filter. Universitas Sumatera Utara Gambar 3.3 berikut ini merupakan activity diagram filtering dari sistem yang akan dibangun. Gambar 3.3. Activity Diagram Filtering Universitas Sumatera Utara 3.1.3.2 Sequence diagram Sequence diagram diagram urutan adalah suatu diagram yang memperlihatkan interaksi-interaksi antar objek di dalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Sequence diagram diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan keluaran yang dihasilkan Whitten, 2004. Untuk sistem ini, sequence diagram filtering terbagi menjadi tiga bagian yaitu Wiener Filter, Adaptive Median Filter, dan kombinasi Wiener Filter dengan Adaptive Median Filter. Berikut ini akan di jelaskan Sequence Diagram dari sisem yang dibuat yaitu Sequence Diagram Wiener Filter. Untuk sequence diagram Wiener Filter dapat dilihat pada gambar 3.4. Gambar 3.4. Sequence Diagram Wiener Filter Pada tahap ini proses yang berlangsung adalah proses Wiener Filter. Dimana metode tersebut akan melakukan filtering langsung terhadap citra noise asli dan impulse noise. Pada tahap pertama, proses yang akan dilakukan pertama dengan menggunakan metode Wiener Filter adalah melakukan open file image, disini citra yang diambil merupakan citra yang berisi noise asli dan impulse noise. Kemudian setelah muncul Universitas Sumatera Utara citra dengan noise lakukan filtering langsung untuk memperbaiki citra dan memunculkan nilai MSE, PSNR, running time citra setelah difiltering. Berikut ini merupakan Sequence Diagram Adaptive Median Filter dapat dilihat pada gambar 3.5. Gambar 3.5. Sequence Diagram Adaptive Median Filter Tahap kedua, proses yang akan dilakukan untuk mereduksi noise asli dengan menggunakan metode Adaptive Median Filter adalah melakukan open file image, disini citra yang diambil merupakan citra yang berisi noise asli dan impulse noise. Kemudian setelah muncul citra dengan noise, lakukan filtering langsung untuk memperbaiki citra dan memunculkan nilai MSE, PSNR, running time citra setelah difiltering. Universitas Sumatera Utara Berikut ini merupakan Sequence Diagram kombinasi Wiener Filter dan Adaptive Median Filter pada gambar 3.6. Gambar 3.6. Sequence Diagram Kombinasi Wiener Filter dan Adaptive Median Filter Pada tahap ini, proses yang berlangsung adalah kombinasi Wiener Filter dengan Adaptive Median Filter untuk memperbaiki citra yang memilki noise asli dan impulse noise. 3.1.3.4. Flowchart sistem Flowchart merupakan suatu bagan atau gambar yang menunjukan urutan serta hubungan proses dengan intruksinya. Gambar pada Flowchart dinyatakan dengan menggunakan simbol–simbol yang menandakan atau menggambarkan suatu proses. Sedangkan hubungan yang terjadi tiap–tiap proses bisa divisualkan dengan menggunakan garis penghubung. Gambar 3.7 berikut ini merupakan Flowchart dari sistem yang akan dibangun. Universitas Sumatera Utara Gambar 3.7. Flowchart keseluruhan sistem Sub-flowchart yang menggambarkan proses pada Wiener Filter, Adaptive Median Filter, dan Kombinasi Wiener Filter dan Adaptive Median Filter dapat dilihat pada Gambar 3.8, Gambar 3.9, dan Gambar 3.10. Universitas Sumatera Utara Gambar 3.8. Flowchart Wiener Filter Universitas Sumatera Utara Gambar 3.9. Flowchart Adaptive Median Filter Universitas Sumatera Utara Gambar 3.10. Flowchart Kombinasi Wiener Filter dan Adaptive Median Filter 3.1.3.5. Pseudocode Pseudocode merupakan sebuah kode yang digunakan untuk menulis sebuah algoritma dengan cara yang bebas yang tidak terikat dengan bahasa pemrograman tertentu. Pseudocode berisikan langkah–langkah untuk menyelesaikan suatu permasalahan, hanya saja bentuknya sedikit berbeda dari algoritma. Tujuan dari penggunaan pseudocode adalah untuk mempermudah manusia dalam pemahaman dibandingkan Universitas Sumatera Utara menggunakan bahasa pemrograman yang umum digunakan, terlebih aspeknya yang ringkas serta tidak bergantung pada suatu sistem tertentu merupakan prinsip utama dalam suatu algoritma. Berikut adalah pseudocode dari Wiener Filter dan Adaptive Median Filter. 3.1.3.5.1. Pseudocode Wiener Filter Wiener Filter dibuat dalam sebuah kelas FFT Fast Fourier Transform. Karena kinerja dari filtering ini berada dalam kawasan frekuensi sehingga tak lepas dari transformasi Fourier. 3.1.3.4.1. Pseudocode Rayleigh Noise public class FFTN { public struct Complex{ public double real public double imag } Bitmap gbrhasil Complex [][] R,G,Bgambar int nx,ny int [,] R,G,B public FFTNImage sourceImage { gbrhasil  new BitmapsourceImage.Width,sourceImage.Height nx  sourceImage.Width ny  sourceImage.Height R,G,Bgambar  new Complex[sourceImage.Width][] shiftR,G,B  new Complex[sourceImage.Width][] for I  0 to isourceImage.Width { R,G,Bgambar[i]  new Complex[sourceImage.Height] shiftR,G,B[i]  new Complex[sourceImage.Height] for j  0 to jsourceImage.Height;j++{ R,G,Bgambar[i][j].real  BitmapsourceImage. GetPixel i,j.R,G,B R,G,Bgambar[i][j].imag  0 } } } void ForwardFFTComplex [][] gambar{ double [] real  new double[gambar.Length] double [] imag  new double[gambar.Length] for i  0 to igambar[0].Length { for j  0 to jgambar.Length { real[j]  gambar[j][i].real imag[j]  gambar[j][i].imag } FFT1D real,imag transform the rows for j  0 to jnx { gambar[j][i].real  real[j] gambar[j][i].imag  imag[j] } Universitas Sumatera Utara Gambar 3.7. Pseudocode Uniform Noise 3.1.3.4.3. Pseudocode Contraharmonic Mean Filter Metode Contraharmonic Mean Filter adalah menjumlahkan semua nilai piksel berpangkat Q+1 dibagi dengan jumlah semua nilai piksel berpangkat Q. Nilai yang menjadi nilai piksel baru pada citra hasil filtering. Pseudocode Contraharmonic Mean Filter dapat dilihat pada Gambar 3.8. Gambar 3.8. Pseudocode Contraharmonic Mean Filter real  new double[gambar[0].Length] imag  new double[gambar[0].Length] for i  0 to igambar.Length { for j  0 to jgambar[0].Length { real[j]  gambar[i][j].real imag[j]  gambar[i][j].imag } FFT1Dreal,imag transform the columns for j  0 to jny { gambar[i][j].real  real[j] gambar[i][j].imag  imag[j] } } } void FFT1Ddouble[] real, double[] imag { pemrosesan FFT int length  real.Length, n double Theta  3.14length Nilai phi double real2  Math.CosTheta Nilai cos phi double imag2  Math.SinTheta Nilai sin phi int k  length double temp while k 1{ n  k k = 1 temp  real2 real2  real2real2 - imag2imag2 imag2  imag2temp + tempimag2 double real1  1 double imag1  0 for l  0 to lk { for a  l to alength { int b  a + k double real3  real[a] - real[b] double imag3  imag[a] - imag[b] real[a] += real[b] imag[a] += imag[b] real[b]  real3 real1-imag3 imag1 imag[b]  imag3 real1+real3 imag1 } temp  real1 real1  real1 real2 - imag1 imag2 imag1  imag1 real2 + temp imag2 } } void Hitung{ proses Wiener Filter for i  0 to inx { for j  0 to jny { R,G,Bgambar[i][j].real R,B,Ggambar[i][j].real R,G,B[i,j] R,G,B[i,j] + 100 R,G,Bgambar[i][j].imag R,G,Bgambar[i][j].imag R,G,B[i,j] R,G,B[i,j] + 100 } } } Universitas Sumatera Utara Pada pseudocode terlihat bahwa dalam kelas FFT terdapat fungsi-fungsi yang digunakan untuk proses pemfilteran. Pemrosesan Wiener Filter pada citra terdapat pada fungsi Hitung, sedangkan fungsi selainnya merupakan fungsi untuk membantu pemrosesan FFT itu sendiri. 3.1.3.5.2. Pseudocode Adaptive Median Filter Gambar 3.10. Pseudocode Mean Square Error MSE 3.1.3.4.6. Pseudocode Peak Signal to Noise Ratio PSNR PSNR merupakan parameter kinerja metode filter yang berbanding terbalik dengan MSE. PSNR membandingkan maksimum warna citra dengan akar MSE. Pseudocode PSNR dapat dilihat pada Gambar 3.11. Gambar 3.11. Pseudocode Peak Signal to Noise Ratio PSNR

3.1. Perancangan Sistem