ANALISIS DAN PERANCANGAN
3.2. Perancangan Sistem
3.2.1. Unified Modeling Language (UML)
UML adalah pemodelan suatu sistem yang menentukan visualisasi, konstruksi, dan mendokumentasikan bagian dari informasi yang digunakan atau dihasilkan dalam suatu proses pembuatan perangkat lunak (software).
UML mendefinisikan diagram-diagram untuk menjelaskan pembuatan perangkat lunak (software) pada skripsi ini, sebagai berikut :
1. Use case diagram 2. Activity diagram 3. Sequence diagram
3.2.1.1. Use case diagram
Use case diagram adalah suatu diagram yang mendeskripsikan interaksi antara user (pengguna) sebuah sistem dengan suatu sistem tersendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Use case diagram terdiri dari sebuah aktor dan interaksi yang dilakukannya, aktor tersebut dapat berupa manusia, perangkat keras, sistem lain, ataupun yang berinteraksi dengan sistem. Use case diagram sistem ini dapat dilihat pada gambar 3.12.
System
reduksi citra awal bernoise atau tidak
bernoise User <<depends on>> mengambil citra bernoise/tidak benoise menambahkan exponential noise mereduksi noise «uses» <<depends on>> menyimpan citra hasil reduksi membandingkan hasil MSE dan PSNR «uses» «uses» <<depends on>> <<depends on>> «uses» «uses»
1. Spesifikasi use casereduction undefined noise + exponential noise
Spesifikasi use case untuk reduksi dengan noise bebas dan exponential noise dapat dilihat pada tabel 3.1.
Tabel 3.1 Spesifikasi Use CaseReduction Undefined Noise + Exponential Noise
Name Reduction with Undefined Noise + Exponential noise
Actors User
Trigger User memilih menu Reduction with Undefined Noise +
Exponential noise
Preconditions User menggunakan aplikasi reduksi noise menggunakan metode geometric mean filter dan alpha-trimmed mean filter
Post Conditions
User mendapatkan citra hasil reduksi, nilai MSE, PSNR, menyimpan citra hasil reduksi dan membandingkan kedua metode berdasarkan nilai MSE dan PSNR.
Success Scenario
1. User memilih menu Reduction with Undefined Noise + Exponential noise.
2. Sistem menampilkan halaman Reduction with Undefined Noise + Exponential noise untuk kedua metode.
3. User mengisi form metode geometric mean filter terlebih dahulu.
4. User mengeksekusi tombol browse dan memilih citra yang telah bernoise.
5. Sistem menampilkan citra awal dan meng-enable-kan tombol generate noise.
6. User memilih probabilitas noise dan mengeksekusi tombol generate noise.
7. Sistem menampilkan citra dengan noise yang di-generate dan meng-enable-kantombol reduce noise.
8. User mengeksekusi tombol reduce noise.
9. Sistem menampilkan citra hasil reduksi noise, nilai MSE, PSNR, running time, meng-enable-kan tombol save.
Tabel 3.1 Spesifikasi Use CaseReduction Undefined Noise + Exponential Noise
(Lanjutan)
Success Scenario 10. User menyimpan citra yang telah direduksi.
11. User memilih probabilitas noise dan mengeksekusi tombol generate noise.
12. Sistem menampilkan citra dengan noise yang di-generate dan meng-enable-kantombol reduce noise.
13. User memilih nilai d dan mengeksekusi tombol reduce noise.
14. Sistem menampilkan citra hasil reduksi noise, nilai MSE, PSNR, running time, meng-enable-kan tombol save.
15. User menyimpan citra yang telah direduksi.
16. User membandingkan kedua metode berdasarkan nilai MSE dan PSNR.
Alternative Flows -
2. Spesifikasi use casereduction exponential noise
Spesifikasi use case untuk reduksi exponential noise dapat dilihat pada tabel 3.2.
Tabel 3.2 Spesifikasi Use CaseReduction Exponential Noise
Name Reduction Exponential noise
Actors User
Trigger User memilih menu Reduction Exponential noise
Preconditions User menggunakan aplikasi reduksi noise menggunakan metode geometric mean filter dan alpha-trimmed mean filter
Post Conditions
User mendapatkan citra hasil reduksi, nilai MSE, PSNR, menyimpan citra hasil reduksi dan membandingkan kedua metode berdasarkan nilai MSE dan PSNR.
Success Scenario
1. User memilih menu Reduction Exponential Noise.
2. Sistem menampilkan halaman Reduction Exponential Noise untuk kedua metode.
Tabel 3.2 Spesifikasi Use CaseReduction Exponential Noise (Lanjutan)
Success Scenario
3. User mengisi form metode geometric mean filter terlebih dahulu.
4. User mengeksekusi tombol browse dan memilih citra yang tidak bernoise.
5. Sistem menampilkan citra awal dan meng-enable-kan tombol generate noise.
6. User memilih probabilitas noise dan mengeksekusi tombol generate noise.
7. Sistem menampilkan citra dengan noise yang di-generate dan meng-enable-kantombol reduce noise.
8. User mengeksekusi tombol reduce noise.
9. Sistem menampilkan citra hasil reduksi noise, nilai MSE, PSNR, running time, meng-enable-kan tombol save. 10. User menyimpan citra yang telah direduksi.
11. User memilih probabilitas noise dan mengeksekusi tombol generate noise.
12. Sistem menampilkan citra dengan noise yang di-generate dan meng-enable-kantombol reduce noise.
13. User memilih nilai d dan mengeksekusi tombol reduce noise.
14. Sistem menampilkan citra hasil reduksi noise, nilai MSE, PSNR, running time, meng-enable-kan tombol save. 15. User menyimpan citra yang telah direduksi.
16. User membandingkan kedua metode berdasarkan nilai MSE dan PSNR.
Alternative Flows -
3.2.1.2. Activity diagram
Activity diagram mendeskripsikan proses mengenai alur kerja atau aktivitas dalam sistem yang sedang dirancang, dimana sebagian besar state adalah action dan sebagian besar transisi di-trigger, atau dengan kata lain menggambarkan jalur aktivitas dari proses yang berjalan.
1. Activity diagramreduction undefined noise + exponential noise
Activity diagramreduction undefined noise + exponential noise dapat dilihat pada gambar 3.13.
Reduction anonymous noise + exponential noise
memilih citra bernoise(*.bmp) geometric mean filter
membandingkan niai MSE dan PSNR memilih probabilitas noise
alpha-trimmed mean filter
selesai
Kembali ke home
menambahkan exponential noise
menampilkan citra hasil reduksi, MSE, PSNR, runtime mereduksi noise
menyimpan citra hasil reduksi
USER SYSTEM
menampilkan citra bernoise
menampilkan citra bernoise+exponential noise
Gambar 3.13 Activity DiagramReduction Undefined Noise + Exponential Noise
Penjelasan alur aktivitasnya adalah sebagai berikut :
1. User memilih menu reduction undefined noise + exponential noise.User menggunakan metode geometric mean filter atau alpha-trimmed mean filter untuk melakukan reduksi noise.User memilih citra bernoise (*.bmp).
3. User memilih probabilitas noise. User menambahkan exponential noise. User melakukan reduksi noise.
4. System menampilkan citra hasil reduksi noise, nilai MSE, PSNR, dan running time.
5. User membandingkan metode yang paling bagus dengan melihat nilai MSE dan PSNR. User menyimpan citra hasil reduksi.
2. Activity diagramreduction exponential noise
Activity diagramreduction exponential noise dapat dilihat pada gambar 3.14.
Reduction exponential noise
memilih citra tanpa noise(*.bmp) geometric mean filter
membandingkan niai MSE dan PSNR memilih probabilitas noise
alpha-trimmed mean filter
selesai
Kembali ke home
menambahkan exponential noise
menampilkan citra hasil reduksi, MSE, PSNR, runtime mereduksi noise
menyimpan citra hasil reduksi
USER SYSTEM
menampilkan citra
menampilkan citra dengan exponential noise
Penjelasan alur aktivitasnya adalah sebagai berikut :
1. User memilih menu reduction exponential noise.User menggunakan metode geometric mean filter atau alpha-trimmed mean filter untuk melakukan reduksi noise.User memilih citra tanpa noise (*.bmp).
2. System menampilkan citra.
3. User memilih probabilitas noise. User menambahkan exponential noise. User melakukan reduksi noise.
4. System menampilkan citra hasil reduksi noise, nilai MSE, PSNR, dan running time.
5. User membandingkan metode yang paling bagus dengan melihat nilai MSE dan PSNR. User menyimpan citra hasil reduksi.
3.2.1.3. Sequence diagram
Diagram yang menggambarkan interaksi objek dengan objek lainnya melalui pesan yang dieksekusi berdasarkan kasusnya. Diagram ini mengilustrasikan bagaimana pesan dikirim dan diterima antara objek-objek secara berurutan.
1. Sequence diagramreduction undefined noise + exponential noise
Sequence diagram untuk reduction undefined noise + exponential noise dapat dilihat pada gambar 3.15.
Reduksi noise () Input citra bernoise(*.bmp)
Tampil citra bernoise Browse Image
Citra hasil Top Package::UserPengguna
Generate exponential noise () Citra bernoise+exponential noise
Hitung MSE ()
Nilai PSNR
Tambah Exponential Noise Reduksi Noise Hitung MSE Hitung PSNR Hitung Runtime Simpan Citra Hasil
Nilai MSE Hitung PSNR ()
Hitung Runtime () Nilai Runtime
Simpan Citra Hasil Reduksi () Sukses tersimpan
Gambar 3.15 Sequence DiagramReduction Undefined Noise + Exponential Noise Penjelasan sequence diagram reduction undefined noise and exponential noiseadalah sebagai berikut :
1. Pengguna melakukan reduksi citra bernoise ditambah exponential noise dengan menginput citra bernoise (*.bmp).
2. Sistem akan melakukan browse dan mengirim feedback dengan menampilkan citra.
3. Pengguna men-generateexponentialnoise dengan probabilitas noise.
4. Sistem men-generate exponential noise dan menampilkan citra bernoise + exponential noise.
5. Pengguna melakukan reduksi noise, menghitung MSE, PSNR dan runtime. 6. Sistem melakukan reduksi dan mengirim feedback dengan menampilkan citra
hasil reduksi, nilai MSE, nilai PSNR, dan runtime. 7. Pengguna menyimpan citra hasil reduksi.
8. Sistem menyimpan citra dan Sistem menampilkan feedback berupa pesan sukses disimpan.
2. Sequence diagramreduction exponential noise
Sequence diagramreduction exponential noise dapat dilihat pada gambar 3.16.
Reduksi noise () Input citra tanpa noise(*.bmp)
Tampil citra tanpa noise Browse Image
Citra hasil Top Package::UserPengguna
Generate exponential noise ()
Citra dengan exponential noise
Hitung MSE ()
Nilai PSNR
Tambah Exponential Noise Reduksi Noise Hitung MSE Hitung PSNR Hitung Runtime Simpan Citra Hasil
Nilai MSE Hitung PSNR ()
Hitung Runtime () Nilai Runtime
Simpan Citra Hasil Reduksi () Sukses tersimpan
Gambar 3.16 Sequence DiagramReduction Exponential Noise
Penjelasan sequence diagramreduction exponential noiseadalah sebagai berikut : 1. Pengguna melakukan reduksi citra tanpa noise yang ditambah exponential
noise dengan menginput citra bernoise (*.bmp).
2. Sistem akan melakukan browse dan mengirim feedback dengan menampilkan citra.
3. Pengguna men-generateexponentialnoise dengan probabilitas noise.
4. Sistem men-generateexponentialnoise dan menampilkan exponential noise. 5. Pengguna melakukan reduksi noise, menghitung MSE, PSNR dan runtime. 6. Sistem melakukan reduksi dan mengirim feedback dengan menampilkan citra
hasil reduksi, nilai MSE, nilai PSNR, dan runtime. 7. Pengguna menyimpan citra hasil reduksi.
8. Sistem menyimpan citra dan Sistem menampilkan feedback berupa pesan sukses disimpan.
3.2.2. Pseudocode
Pseudocode adalah penjelasan dari algoritma pemrograman komputer yang menggunakan struktur sederhana dari beberapa bahasa pemograman. Biasanya yang ditulis dari pseudocode adalah variabel dan fungsi. Tujuan penggunaan utama dari pseudocode adalah untuk memudahkan dalam memahami prinsip-prinsip dari suatu algoritma suatu metode.
1. Pseudocode membangkitkan exponential noise
Pada sistem ini untuk melakukan perbandingan kedua metode ditambahkan terlebih dahulu exponential noise. Berikut ini pseudocode untuk membangkitkan exponential noise pada citra :
Pada pseudocode diawali dengan dengan inisialisasi piksel berdasarkan baris dan kolomnya. Kemudian dilakukan pembangkitan noise. Kemudian dilakukan penambahan noise dengan nilai piksel yang telah diinisialisasi dan dilakukan pembulatan nilai piksel. Apabila nilai pembulatan lebih besar dari intensitas piksel 255 maka akan dilakukan pembulatan menjadi 255.
Masukan :
• A = Citra awal berukuran mxn
• a = probabilitas pembangkitan noise (0.01 s/d 0.05) Keluaran :
• B = Citra yang telah ditambah noise
Exponential_noise(A, a): B ← A
for i ←1 TO m
for j ←1 TO n
noise ← -1/a*log(1-rand) B(i,j) ← round(A(i,j)+ noise) if B(i,j) > 255
B(i,j) ← 255 end
end end
2. Pseudocode proses geometric mean filter
Berikut pseudocode untuk proses geometric mean filter dengan ukuran 3x3:
Pada pseudocode proses diawali dengan perhitungan dimensi citra. Kemudian dilakukan inisialisasi nilai piksel terhadap baris dan kolom citra yaitu sebagai A dan B. Kemudian dilakukan perulangan untuk proses perkalian piksel berdasarkan nilai i, j, p, dan q yang telah ditentukan. Seluruh hasil jumlah perkalian nilai piksel dilakukan pemangkatan dengan nilai (1/kernel) dan dimasukkan ke dalam nilai B. Kemudian akan dilakukan penggantian nilai piksel A menjadi B.
3. Pseudocode proses alpha-trimmed mean filter
Berikut pseudocode untuk proses alpha-trimmed mean filter dengan ukuran 3x3:
function [B] ← geometric(A,ukuran) [m,n]← size(A)
cons ← ukuran/2 A ← A
B ← A
for i ←1+cons To m-cons for j ←1+cons To n-cons
jumlah ← 1
for p ← -cons To cons for q ← -cons To cons
jumlah ← jumlah * A(i+p, j+q); end
end
B(i, j)← jumlah ^ (1/(ukuran * ukuran)); end
end Return B
function [B] ← alphatrimmed(A, ukuran, d) [m, n]← size(A)
cons ← ukuran / 2 A ← A
B ← A
for i ← 1+cons To m-cons
for j ← 1+cons To n-cons index ← 1
for p ← -cons To cons for q ← -cons To cons Nilai(index) ← A(i+p, j+q) index ← index + 1 end end index ← index - 1 for p ← 2 To index x ← Nilai(p) q ← p - 1 ketemu ← 0
while ((q >= 1) && (~ketemu)) if (x < Nilai(q)) Nilai(q+1) ← Nilai(q) q ← q - 1 else ketemu ← 1 end Nilai(q+1) ← x end end if (d==0)
B(i, j) ← sum(Nilai(2:8)) * (1/((ukuran*ukuran)-d)) elseif (d == 1||d == 2||d== 3||d==4||d==5||d==6||d==7) B(i, j) ← sum(Nilai(2:8)) * (1/((ukuran*ukuran)-d)) elseif (d==8)
B(i, j) ← Nilai(floor(ukuran * ukuran/2) + 1) end
end end Return B
Pada pseudocode proses diawali perhitungan dimensi citra. Kemudian dilakukan inisialisasi nilai piksel terhadap baris dan kolom citra yaitu sebagai A dan B. Kemudian dilakukan perulangan untuk proses pengurutan nilai piksel berdasarkan nilai i, j, p, dan q yang telah ditentukan. Proses pengurutan dilakukan dari intensitas piksel terkecil hingga terbesar. Apabila proses pengurutan selesai maka dilakukan proses reduksi dengan menggunakan berdasarkan nilai d. apabila d = 0, maka proses dilakukan dengan rumus metode arithmetic filter. Apabila d = 1 - 7, maka proses dilakukan dengan menggunakan rumus seperti arithmetic filter juga namun nilai kernel telah dikurangi dengan nilai d. Apabila d = 8, maka proses dilakukan dengan menggunakan rumus metode median filter. Pada proses reduksi dilakukan penghilangan terhadap intensitas piksel terkecil dan intensitas piksel terbesar yang telah diurutkan sebelumnya. Hasil proses reduksi dimasukkan ke dalam nilai B. Kemudian akan dilakukan penggantian nilai piksel A menjadi B.
4. Pseudocode menghitung MSE dan PSNR
Berikut pseudocode untuk menghitung MSE dan PSNR :
Pada pseudocode diawali dengan pengurangan intensitas piksel citra asal dengan citra hasil reduksi yang kemudian dipangkatkan 2 yang digunakan untuk menghitung selisih nilai pikselnya. Tiap intensitas piksel diambil berdasarkan baris dan kolom ( x, y) dengan tipe double. Kemudian dilakukan inisialisasi nilai piksel tinggi dan lebar citra asal. Perhitungan nilai MSE dilakukan dengan penjumlahan dari seluruh selisih nilai piksel citra asal dengan citra hasil reduksi dan kemudian dibagi dengan hasil perkalian tinggi dan lebar citra. Setelah proses perhitungan MSE dilakukan, maka dilakukan proses perhitungan nilai
function [NilaiMSE PSNR] ← HitungMSE(Citraasal,Citrahasil) NilaiMSE ← (double(Citraasal)- double(Citrahasil)).^2 [tinggi lebar] ← size(Citraasal)
NilaiMSE ← (sum(NilaiMSE(:))/(tinggi*lebar)) PSNR ← 20*log10(255/sqrt(NilaiMSE))
end
Return NilaiMSE Return PSNR
PSNR berdasarkan rumus menghitung nilai PSNR. Kemudian dihasilkan nilai MSE dan nilai PSNR.
3.2.3. Flowchart sistem
Flowchart adalah representasi grafik dari langkah-langkah yang harus dilakukan dalam menyelesaikan suatu permasalahan. Flowchart terdiri atas sekumpulan simbol, dimana masing-masing simbol merepresentasikan suatu kegiatan tertentu. Flowchart diawali dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output. Flowchart menggambarkan suatu aliran kegiatan dari awal hingga akhir mengenai suatu langkah-langkah dalam penyelesaian suatu masalah. Masalah tersebut bisa bermacam-macam, mulai dari masalah yang sederhana sampai masalah yang kompleks. Masalah yang dihadapai tentunya masalah pemrograman.
Sistem ini terdiri dari beberapa proses, yaitu proses untuk mereduksi noise yang dilakukan dengan 2 metode yaitu metode geometric mean filter dan alpha- trimmed mean filter. Pada form pertama, noise yang akan direduksi adalah noise yang telah ada pada citra ditambah dengan exponential noise yang dibangkitkan dari sistem. Sedangkan pada form kedua, noise yang akan direduksi adalah exponentialnoise yang dibangkitkan dari sistem.
1. Flowchart metode geometric mean filter
Mulai
Input citra asli ekstensi (*.bmp)
Inisialisasi nilai piksel citra asli
Hitung nilai piksel m x n
Baca nilai piksel
Hitung nilai RGB
Penambahan exponential noise
Konvolusi matriks dengan metode geometric mean filter kernel 3x3
Nilai piksel = B(i,j)
Hitung MSE
Hitung running time
Citra hasil reduksi, MSE, PSNR, dan
running time
Selesai Hitung PSNR
Gambar 3.17 Flowchart Metode Geometric Mean Filter
Keterangan Gambar 3.17 :
1. Proses diawali dengan input citra. 2. Menginisialisasi nilai piksel citra. 3. Menghitung nilai piksel mxn. 4. Membaca nilai piksel citra. 5. Menghitung nilai RGB citra. 6. Penambahan exponential noise. 7. Konvolusi matriks dengan filter. 8. Hasil nilai piksel citra B(i,j). 9. Hitung MSE.
10. Hitung PSNR. 11. Hitung running time.
12. Tampil citra, MSE, PSNR, running time.
2. Flowchart metode alpha-trimmed mean filter
Mulai
Input citra asli ekstensi (*.bmp),
input nilaid
Inisialisasi nilai piksel citra asli
Hitung nilai piksel m x n
Baca nilai piksel
Hitung nilai RGB
Penambahan exponential noise
Konvolusi matriks dengan metode alpha-trimmed mean filter kernel
3x3 berdasarkan nilai d
Nilai piksel = B(i,j)
Hitung MSE
Hitung running time
Citra hasil reduksi, MSE, PSNR, dan
running time
Selesai Hitung PSNR
Gambar 3.18 Flowchart Metode Alpha-Trimmed Mean Filter
Keterangan Gambar 3.18:
1. Proses diawali dengan input citra dan input nilai d.
2. Menginisialisasi nilai piksel citra. 3. Menghitung nilai piksel mxn. 4. Membaca nilai piksel citra. 5. Menghitung nilai RGB citra. 6. Penambahan exponential noise.
7. Konvolusi matriks dengan filter berdasarkan nilai d.
8. Hasil nilai piksel citra B(i,j). 9. Hitung MSE.
10. Hitung PSNR. 11. Hitung running time.
12. Tampil citra, MSE, PSNR, running time.
3.2.4. Perancangan antarmuka
Berdasarkan hasil analisis untuk mempermudah programmer mengimplementasikan sistemnya maka dibuat suatu perancangan antarmuka sistem. Perancangan antarmuka dari sistem ini terdiri dari 5 (lima) form, yaitu :
1. Form Menu Utama
2. FormReduction Undefined Noise + Exponential Noise 3. FormReduction Exponential Noise
4. FormHelp 5. FormAbout
3.2.4.1. Form menu utama
Pada saat sistem dijalankan maka akan muncul tampilan pertama kali, yaitu tampilan rancangan halaman menu utama, yang dapat dilihat pada gambar 3.19:
Gambar 3.19 Rancangan Form Menu Utama
Keterangan Gambar 3.19:
1. Menu Editor untuk reduksi noise bebas ditambah dengan exponentialnoise. 2. Menu Editor untuk reduksi exponentialnoise.
3. Menu Editor yang berisi petunjuk penggunaan.
4. Menu Editor yang berisi tentang info pembuat perangkat lunak. 5. Menu Editor Exit untuk keluar dari sistem.