Analisis Sistem ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem merupakan tahapan yang dilakukan untuk menghasilkan pemahaman yang menyeluruh terhadap kebutuhan sistem sehingga diperoleh tugas-tugas yang akan dikerjakan sistem. Analisis sistem terdiri dari fase-fase berbeda yang mendeskripsikan pengembangan sistem. Dalam tugas akhir ini, ada tiga fase analisis yaitu: analisis masalah, analisis persyaratan dan analisis proses. Analisis masalah bertujuan untuk memahami kelayakan masalah. Analisis persyaratan dilakukan untuk menjelaskan fungsi-fungsi yang ditawarkan dan mampu dikerjakan sistem. Sedangkan analisis proses untuk memodelkan tingkah laku sistem. 3.1.1 Analisis Masalah Masalah yang akan diselesaikan dengan menggunakan sistem ini adalah perbaikan pada citra digital yang terkena Gaussian Noise, Salt and Pepper Noise, Speckle Noise, dan Exponential Noise menjadi citra yang lebih bagus dengan melakukan filtering pada citra tersebut. Dalam sistem ini citra yang terkena noise-noise tersebut akan direduksi dengan menggunakan teknik kombinasi dari Mean Filter dan Median filter. Untuk mengidentifikasi masalah tersebut digunakan diagram Ishikawa fishbone diagram. Diagram Ishikawa adalah sebuah alat grafis yang digunakan untuk mengeksplorasi dan menampilkan pendapat tentang komponen inti suatu kondisi di dalam organisasi. Diagram ini juga dapat menyusuri sumber-sumber penyebab atas suatu masalah. Diagram Ishikawa pada sistem ini dapat dilihat pada gambar 3.1. Gambar 3.1 Diagram Ishikawa 3.1.2 Analisis Persyaratan Analisis persyaratan terbagi dua bagian, yaitu persyaratan fungsional dan persyaratan nonfungsional. Persyaratan fungsional mendeskripsikan aktivitas yang disediakan suatu sistem. Sedangkan Persyaratan nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya. 3.1.2.1 Persyaratan Fungsional Dalam sistem perbaikan citra yang terkena noise pada citra digital dengan metode kombinasi Mean Filter dan Median Fiter ini terdapat beberapa hal yang menjadi persyaratan fungsional yang harus dipenuhi, antara lain : 1. Citra digital yang digunakan adalah Citra berwarna dan menggunakan format .BMP dengan ukuran dimensi maksimal 300 x 300 pixel. 2. Noise yang digunakan untuk perbandingan adalah Gaussian Noise, Salt and Pepper Noise, Speckle Noise dan Exponential Noise, dengan probabilitas noise 1 - 50. 3. Parameter untuk analisis adalah Mean Squared Error MSE, Peak Signal to Noise Rasio PSNR sebelum terkena noise dan setelah mengalami reduksi noise dan Running Time pada saat reduksi noise. 4. Menggunakan kernel 3x3 dari matriks nilai pixel citra. 5. Aplikasi yang digunakan adalah Matlab R2012b. 3.1.2.2 Persyaratan Nonfungsional Kebutuhan nonfungsional mencakup karakteristik berikut: 1. Performa Sistem yang akan dibangun harus dapat menunjukkan hasil dari proses pembangkitan noise pada citra dan proses reduksi noise pada citra digital yang terkena noise. 2. Mudah dipelajari dan digunakan Sistem yang akan dibangun memiliki tampilan yang user friendly sehingga pengguna dapat mengakses sistem dengan mudah. 3. Hemat biaya Sistem yang dibangun tidak memerlukan perangkat tambahan ataupun perangkat pendukung lainnya yang dapat mengeluarkan biaya. 4. Dokumentasi Sistem yang dibangun dapat menyimpan citra digital yang merupakan hasil reduksi noise dari citra yang memiliki noise dengan format file .bmp. 5. Kontrol Sistem yang akan dibangun memiliki kontrol berupa enable and disable, yaitu ketika citra belum di-input maka tombol fungsi pada sistem dalam keadaan tidak aktif atau disable, setelah citra di-input, maka tombol fungsi tertentu yang merupakan bagian dari fungsi generate noise ataupun reduksi noise akan aktif. 3.1.3 Analisis Proses Dalam sistem ini, teknik filtering yang digunakan untuk mereduksi noise pada citra digital adalah metode kombinasi Mean Filter dan Median Filter. Terdapat 4 jenis noise yang akan di-generate pada sistem ini diantaranya Gaussian Noise, Salt and Pepper Noise, Speckle Noise, dan Exponential Noise. Pada sistem ini juga terdapat perbandingan antara metode kombinasi Mean Filter dan Median Filter yang dibandingkan dengan Mean Filter atau Median Filter sebelum dikombinasikan. Proses Mean Filter mencari nilai rata-rata matriks 3x3 dari nilai pixel citra, kemudian mengganti nilai pusat pixel dengan nilai rata-rata dari nilai intensitas pixel citra tersebut. Proses Median Filter mencari nilai median matriks 3x3 dari nilai pixel citra, kemudian mengganti nilai pusat pixel dengan nilai median dari nilai intensitas pixel citra yang telah diurutkan. Proses metode kombinasi Mean Filter dan Median Filter mencari nilai tengah antara Mean dan Median Filter , kemudian mengganti nilai pusat pixel dengan nilai hasil dari perhitungan tersebut. 1. Use Case Diagram Use Case Diagram adalah sebuah diagram yang dapat merepresentasikan interaksi yang terjadi antara user dengan sistem. Use Case Diagram mendeskripsikan interaksi tipikal antara pengguna sistem dengan sistem itu sendiri, dengan member sebuah narasi tentang bagaimana sistem tersebut digunakan. Use Case Diagram dari sistem yang akan dibangun dapat ditunjukkan pada Gambar 3.2. Gambar 3.2 Use Case Diagram system 2. Squance Diagram Squence Diagram merupakan diagram yang menunjukkan bagaimana kelompok- kelompok objek saling berkolaborasi dalam beberapa behavior. Squence diagram secara khusus, menjabarkan behavior sebuah skenario tunggal. Diagram tersebut menunjukkan sejumlah objek contoh dan pesan-pesan yang melewat objek-objek tersebut didalam use case [8]. Gambar 3.3 berikut ini merupakan Sequence Diagram tahap pertama dari sistem yang akan dibangun. Gambar 3.3 Squence Diagram Tahap Pertama Pada tahap pertama proses yang berlangsung adalah implementasi metode kombinasi Mean Filter dan Median Filter dalam mereduksi Gaussian Noise, Salt and Pepper Noise, Speckle Noise, dan Exponential Noise. Pada tahap ini, proses pertama yang dilakukan adalah meng-input citra, kemudian men-generate noise pada citra yang di-inputkan, setelah itu melakukan filtering untuk mereduksi noise pada citra. Setelah hasil reduksi noise pada citra ditampilkan, dihitung nilai MSE dan PSNR lalu tampilkan. Pada tahap kedua proses yang berlangsung adalah perbandingan metode kombinasi Mean Filter dan Median Filter dengan Mean Filter atau Median Filter sebelum dikombinasikan dalam mereduksi Gaussian Noise, Salt and Pepper Noise, Speckle Noise, dan Exponential Noise. Gambar 3.4 berikut ini merupakan Sequence Diagram tahap kedua dari sistem yang akan dibangun. Gambar 3.4 Squence Diagram Tahap Kedua 3. Activity Diagram Activity Diagram adalah teknik untuk menggambarkan logika procedural atau jalur kerja sistem. Diagram ini menggambarkan berbagai alur kerja dalam sistem yang sedang dirancang, bagaimana masing-masing alur kerja berawal, decision yang mungkin terjadi, dan bagaimana aktifitas atau alur kerja berakhir. Activity Diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Dalam beberapa hal, diagram ini memainkan peran mirip sebuah diagram alir. Activity Diagram memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain diagram hanya menyebutkan aturan-aturan rangkaian dasar yang harus diikuti [8]. Gambar 3.5 berikut ini merupakan Activity Diagram dari sistem yang akan dibangun. Perbandingan Implementasi Citra Bernoise Citra Tanpa Noise Input Citra Input Citra Generate Noise Filtering Gaussian Noise Salt and Pepper Speckle Noise Exponential Noise Tampil Citra terkena Noise Mean Filter Median Filter Kombinasi Mean dan Median Filter Hitung MSE danPSNR Hitung MSE danPSNR Tampil nilai MSE dan PSNR Tampil nilai MSE dan PSNR Tampil hasil filtering Generate Noise Gaussian Noise Salt and Pepper Speckle Noise Exponential Noise Tampil Citra terkena Noise Hitung MSE danPSNR Tampil nilai MSE dan PSNR Tampil hasil filtering Hitung MSE danPSNR Tampil nilai MSE dan PSNR Kombinasi Mean dan Median Filter I = gaussian I = no gaussian I = salt pepper I = no salt pepper I = speckle I = no speckle I = exponential switch noise I = no noise I = noise switch inputan switch noise I = no gaussian I = no salt pepper I = no speckle I = gaussian I = salt pepper I = speckle I = exponential Switch Menu Gambar 3.5 Activity Diagram 4. Flowchart Sistem Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Gambar 3.6 berikut ini merupakan Flowchart dari sistem yang akan dibangun. Input Citra Tanpa Noise .bmp Generate Gaussian, Salt Pepper, Speckle, dan Exponential Noise Citra dengan Noise Hitung MSE dan PSNR Citra dengan Noise Mean Filter Proses Mean Filter Citra dengan noise tereduksi Hitung MSE dan PSNR Citra dengan noise Tereduksi Selesai Median Filter Proses Median Filter Kombinasi Mean dan Median Filter Proses Kombinasi Mean dan Median Filter yes no yes yes no Tampilkan nilai MSE dan PSNR Tampilkan nilai MSE dan PSNR Input Citra Bernoise? Input Citra Bernoise .bmp Filtering yes no no Pilih Form Perbandingan? Mulai Perbandingan Implementasi Input Citra Tanpa Noise .bmp Generate Gaussian, Salt Pepper, Speckle, dan Exponential Noise Citra dengan Noise Hitung MSE dan PSNR Citra dengan Noise Tampilkan nilai MSE dan PSNR Proses KombinasiMean dan Median Filter Citra dengan noise tereduksi Hitung MSE dan PSNR Citra dengan noise Tereduksi Tampilkan nilai MSE dan PSNR yes no Gambar 3.6 Flowchart Sistem 3.2 Pseudocode Program Pseudocode merupakan algoritma yang diterjemahkan dari bahasa pemrograman yang sulit dimengerti manusia menjadi bahasa yang lebih mudah dimengerti manusia. Pseudocode bertujuan untuk memudahkan manusia dalam memahami prinsip-prinsip dari suatu algoritma pada bahasa pemrograman. Berikut adalah pseudocode dari Gaussian Noise, Salt and Pepper Noise, Speckle Noise, Exponential Noise, Mean Filter, Median Filter, kombinasi Mean dengan Median Filter, MSE dan PSNR. 3.2.1 Pseudocode Gaussian Noise Gaussian Noise merupakan jenis noise yang mengikuti distribusi normal standar dengan rata-rata 0 dan standar deviasi 1. Gaussian Noise dibangkitkan dengan cara membangkitkan bilangan acak dengan nilai berkisar antara 0 dan 1. Gaussian noise diperoleh dengan menambahkan citra asli dengan rumus pembangkit Gaussian Noise. Pseudocode Gaussian Noise dapat dilihat pada gambar 3.7. Gambar 3.7 Pseudocode Gaussian Noise Keterangan: 1. Menginisialisasi inpu-tan citra dengan nama yang berbeda 2. Menetapkan nilai deviasi yang digunakan untuk men-generate noise 3. Menetapkan nilai mean yang digunakan untuk men-generate noise 4. Membaca matriks pada citra yang di-input-kan 5. Men-generate Gaussian noise 1. citra - citraAsli 2. deviasi - 0.1; 3. mean - 0; 4. citra -im2doublecitra; 5. generate_gaussian - citra + sqrtdeviasirandnsizecitra+mean; 3.2.2 Pseudocode Salt And Pepper Noise Salt and Pepper Noise dapat dibangkitkan dengan cara membangkitkan bilangan 255 warna putih dan bilangan 0 warna hitam pada titik-titik yang secara probabilitas lebih kecil dari nilai probabilitas noise. Pseudocode Salt and Pepper Noise dapat dilihat pada gambar 3.8. Gambar 3.8 Pseudocode Salt and Pepper Noise Keterangan: 1. Menginisialisasi input-an citra dengan nama yang berbeda 2. Menetapkan nilai probabilitas yang digunakan untuk men-generate noise 3. Membaca matriks pada citra yang di-input-kan 4. Menginisialisasi citra yang telah diinisialisasi sebelumnya 5. Membangkitkan bilangan acak pada nilai matriks citra 6. Men-generate noise Pepper berwarna hitam 7. Men-generate noise Salt berwarna Putih 3.2.3 Pseudocode Speckle Noise Speckle Noise merupakan model noise yang memberikan warna hitam pada titik yang terkena noise. Proses pembangkitan Speckle noise sangat bergantung pada probabilitas noise dan bilangan acak. Pseudocode Speckle Noise dapat dilihat pada gambar 3.9. Gambar 3.9 Pseudocode Speckle Noise 1. citra - citraAsli 2. probabilitas - 0.1; 3. citra -im2doublecitra; 4. Generate - citra; 5. bilAcak - randsizecitra; 6. GeneratebilAcak probabilitas2 - 0; 7. GeneratebilAcak = probabilitas2 bilAcak probabilitas - 255; 1. citra - citraAsli 2. probabilitas - 0.1; 3. citra - im2doublecitra; 4. Noise - citra + sqrt12probabilitascitra.randsizecitra-.5; Keterangan: 1. Menginisialisasi input-an citra dengan nama yang berbeda 2. Menetapkan nilai probabilitas yang digunakan untuk men-generate noise 3. Membaca matriks pada citra yang di-input-kan 4. Men-generate Speckle noise 3.2.4 Pseudocode Exponential Noise Exponential Noise merupakan noise yang diperoleh dengan menambahkan citra asli dengan rumus pembangkit Speckle noise. Proses pembangkitan Exponential noise sangat bergantung pada probabilitas noise dan bilangan acak. Pseudocode Exponential Noise dapat dilihat pada gambar 3.10. Gambar 3.10 Pseudocode Exponential Noise Keterangan: 1. Menginisialisasi input-an citra dengan nama yang berbeda 2. Menetapkan nilai probabilitas yang digunakan untuk men-generate noise 3. Membaca matriks pada citra yang di-input-kan 4. Men-generate Exponential noise 3.2.5 Pseudocode Mean Filter Mean Filter adalah nilai intensitas pada beberapa pixel lokal dimana setiap pixel akan digantikan nilainya dengan mean dari nilai intensitas pixel tersebut dengan pixel-pixel tetangganya. Pseudocode Mean Filter dapat dilihat pada gambar 3.11. citra - citraAsli probabilitas - 0.1; citra - im2doublecitra; Noise - citra + -1probabilitaslog1 - randsizecitra; Gambar 3.11 Pseudocode Mean Filter Keterangan: 1. Menginisialisasi citra dengan nama yang berbeda 2. Membaca nilai matriks berdasarkan size pixel pada citra 3. Mendeklarasikan matriks kernel dan melakukan perhitungan Mean Filtering 1. pixel - citra_asli; 2. [r, g, b] -size pixel; 3. for x - 1:1:r for y - 1:1:g for z - 1:1:b try nilaipixel1,1 - pixelx-1,y-1,z; catch nilaipixel1,1 - 0; end try nilaipixel1,2 - pixelx-1,y,z; catch nilaipixel1,2 - 0; end try nilaipixel1,3 - pixelx-1,y+1,z; catch nilaipixel1,3 - 0; end try nilaipixel2,1 - pixelx,y-1,z; catch nilaipixel2,1 - 0; end try nilaipixel2,2 - pixelx,y,z; catch nilaipixel2,2 - 0; end try nilaipixel2,3 - pixelx,y+1,z; catch nilaipixel2,3 - 0; end try nilaipixel3,1 - pixelx+1,y-1,z; catch nilaipixel3,1 - 0; end try nilaipixel3,2 - pixelx+1,y,z; catch nilaipixel3,2 - 0; end try nilaipixel3,3 - pixelx+1,y+1,z; catch nilaipixel3,3 - 0; end filterx,y,z - meanmeannilaipixel; end end end 3.2.6 Pseudocode Median Filter Median Filter adalah nilai intensitas pada beberapa pixel lokal dimana setiap pixel akan digantikan nilainya dengan median dari nilai intensitas pixel tersebut dengan pixel-pixel tetangganya. Pseudocode Median Filter dapat dilihat pada gambar 3.12. Gambar 3.12 Pseudocode Median Filter 1. pixel - citra_asli; 2. [r, g, b] -size pixel; 3. for x - 1:1:r for y - 1:1:g for z - 1:1:b try nilaipixel1,1 - pixelx-1,y-1,z; catch nilaipixel1,1 - 0; end try nilaipixel1,2 - pixelx-1,y,z; catch nilaipixel1,2 - 0; end try nilaipixel1,3 - pixelx-1,y+1,z; catch nilaipixel1,3 - 0; end try nilaipixel2,1 - pixelx,y-1,z; catch nilaipixel2,1 - 0; end try nilaipixel2,2 - pixelx,y,z; catch nilaipixel2,2 - 0; end try nilaipixel2,3 - pixelx,y+1,z; catch nilaipixel2,3 - 0; end try nilaipixel3,1 - pixelx+1,y-1,z; catch nilaipixel3,1 - 0; end try nilaipixel3,2 - pixelx+1,y,z; catch nilaipixel3,2 - 0; end try nilaipixel3,3 - pixelx+1,y+1,z; catch nilaipixel3,3 - 0; end filterx,y,z - medianmediannilaipixel; end end end Keterangan: 1. Menginisialisasi citra dengan nama yang berbeda 2. Membaca nilai matriks pada citra 3. Mendeklarasikan matriks kernel dan melakukan perhitungan Median Filtering 3.2.6 Pseudocode Kombinasi Mean Filter dan Median Filter Pseudocode Median Filter dapat dilihat pada gambar 3.13. Gambar 3.13 Pseudocode Kombinasi dari Mean dan Median Filter pixel - citra_asli; [r, g, b] -size pixel; for x - 1:1:r for y - 1:1:g for z - 1:1:b try nilaipixel1,1 - pixelx-1,y-1,z; catch nilaipixel1,1 - 0; end try nilaipixel1,2 - pixelx-1,y,z; catch nilaipixel1,2 - 0; end try nilaipixel1,3 - pixelx-1,y+1,z; catch nilaipixel1,3 - 0; end try nilaipixel2,1 - pixelx,y-1,z; catch nilaipixel2,1 - 0; end try nilaipixel2,2 - pixelx,y,z; catch nilaipixel2,2 - 0; end try nilaipixel2,3 - pixelx,y+1,z; catch nilaipixel2,3 - 0; end try nilaipixel3,1 - pixelx+1,y-1,z; catch nilaipixel3,1 - 0; end try nilaipixel3,2 - pixelx+1,y,z; catch nilaipixel3,2 - 0; end try nilaipixel3,3 - pixelx+1,y+1,z; catch nilaipixel3,3 - 0 end mean_filterx,y,z - meanmeannilaipixel; median_filterx,y,z - medianmediannilaipixel; combine - mean_filter + median_filter2; end end end Keterangan: 1. Menginisialisasi citra dengan nama yang berbeda 2. Membaca nilai matriks berdasarkan size pixel pada citra 3. Mendeklarasikan matriks kernel dan melakukan perhitungan kombinasi Mean dan Median Filtering 3.2.6 Pseudocode MSE MSE adalah rata-rata kuadrat nilai kesalahan antara citra asli dengan citra hasil pengolahan. MSE bertujuan untuk mendapatkan selisih nilai antara keduanya, apabila selisih nilainya kecil maka metode tersebut sangat baik dalam mereduksi noise. Pseudocode MSE dapat dilihat pada gambar 3.14. Gambar 3.14 Pseudocode MSE Keterangan: 1. Mendeklarasikan rumus perhitumgan MSE 2. Membaca nilai matriks berdasarkan size pixel pada citra 3. Melakukan perhitungan nilai MSE 3.2.6 Pseudocode PSNR PSNR merupakan nilai perbandingan antara harga maksimum warna pada citra hasil filtering dengan akar rata-rata kuadrat nilai kesalahan MSE . Pseudocode PSNR dapat dilihat pada gambar 3.15. Gambar 3.15 Pseudocode PSNR 1. mse - doublecitra_asli- doublecitra_hasil . 2; 2. [b, k, c] - sizecitra_hasil; 3. Nilai_mse - summse: b k c; 1. mse - doublecitra_asli- doublecitra_hasil . 2; 2. [b, k, c] - sizecitra_hasil; 3. nilai_mse - summse: b k c; 4. psnr - 10 log10 2552 nilai_mse; Keterangan: 1. Mendeklarasikan rumus perhitumgan MSE 2. Membaca nilai matriks berdasarkan size pixel pada citra 3. Melakukan perhitungan nilai MSE 4. Melakukan perhitungan nilai PSNR

3.3 Perancangan Sistem