Pemodelan ANALISIS DAN PERANCANGAN SISTEM

2. Mudah digunakan User friendly Sistem yang akan dibangun harus user friendly, artinya bahwa sistem mudah digunakan oleh user dengan tampilan interface yang sederhana dan mudah 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 perbaikan citra digital dan citra hawsil deteksi tepi. 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 Dalam bagian ini ada 2 proses dasar yaitu filtering dan deteksi tepi. Teknik filter yang digunakan untuk memperbaiki kualitas adalah G eometric Mean Filter setelah citra bitmap diberikan noise Gaussian dan Salt-Pepper . Kemudian dilakukan deteksi tepi dengan operator Sobel , Prewitt dan Robert. Setelah itu dilakukan proses perhitungan MSE, PSNR dan running time pada masing-masing proses.

3.2 Pemodelan

Pada bagian ini digunakan Unified Modeling Language UML sebagai bahasa spesifikasi standar suatu model yang berfungsi untuk membantu merancang sistem. Beberapa jenis UML yang digunakan dalam penelitian ini yaitu use case diagram , sequence diagram dan activity digaram . 3.2.1 Use Case Diagram Use case diagram adalah rangkaianuraian sekelompok yang saling terkait dan membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor. Use case diagram biasanya menggambarkan proses sistem yaitu kebutuhan sistem dari sudut pandang user . Berikut use case diagram dapat dilihat pada Gambar 3.2. Gambar 3.2 Use Case Diagram 3.2.1.1 Use Case Filtering Spesifikasi use case Filtering dapat dilihat pada Tabel 3.1. Tabel 3.1 Spesifikasi Use Case Filtering Name Filtering Actors Pengguna Trigger Pengguna memilih menu Filtering . Preconditions Pengguna menggunakan Aplikasi Analisis Perbandingan Filtering dan Deteksi Tepi. Post Conditions Sistem menampilkan gambar hasil filtering dengan metode Geometric Mean Filter . Success Scenario 1. Pengguna mengeksekusi menu Filtering . 2. Sistem menampilkan halaman Filtering . 3. Pengguna memilih file citra asli. 4. Pengguna menginputkan nilai probabilitas noise. 5. Pengguna memilih noise yang akan diberikan pada citra. 6. Sistem menampilkan cita yang telah terkena noise . 7. Pengguna mengeksekusi tombol Geometric Mean Filter . 8. Sistem melakukan proses filtering dengan metode Geometric Mean Filter dan menampilkan gambar hasil filtering . 9. Pengguna dapat melihat hasil gambar yang telah di filtering dengan metode Geometric Mean Filter . Alternative Flows - 3.2.1.2 Use Case Input File Citra Asli Spesifikasi use case Input File Asli Awal dapat dilihat pada Tabel 3.2. Tabel 3.2 Spesifikasi Use Case Input File Citra Asli Name Input File Citra Asli Actors Pengguna Trigger Pengguna memilih menu Filtering . Preconditions Pengguna menggunakan Aplikasi Analisis Perbandingan Filtering dan Deteksi Tepi. Post Conditions Sistem menampilkan gambar yang telah dipilih untuk di generate . Success Scenario 1. Pengguna memilih menu Filtering . 2. Pengguna mengeksekusi tombol Open Image . 3. Sistem menampilkan pop-up window Open Image untuk menampilkan lokasi penyimpanan gambar. 4. Pengguna memilih gambar yang akan di generate . 5. Sistem akan menampilkan gambar yang telah dipilih untuk di generate . 6. Pengguna dapat melihat gambar yang telah dipilih untuk di generate . Alternative Flows - 3.2.1.3 Use Case Input Presentase Noise Spesifikasi use case Input Presentase Noise dapat dilihat pada Tabel 3.3. Tabel 3.3 Spesifikasi Use Case Input Presentase Noise Name Input Probabilitas Noise Actors Pengguna Trigger Pengguna telah memilih file citra awal yang akan di generate . Preconditions Pengguna memilih menu Filtering . Post Conditions Sistem menampilkan nilai presentase noise yang telah diinputkan. Success Scenario 1. Pengguna telah memilih file citra awal yang akan di generate . 2. Pengguna memilih nilai presentase yang akan digunakan untuk proses generate noise . 3. Sistem akan menampilkan nilai probabilitas yang telah dipilih. 4. Pengguna dapat melihat nilai probabilitas yang telah dipilih. Alternative Flows - 3.2.1.4 Use Case Pilih Noise Spesifikasi use case pilih noise dapat dilihat pada Tabel 3.4. Tabel 3.4 Spesifikasi Use Case Pilih Noise Name Pilih Noise Actors Pengguna Trigger Pengguna telah memilih nilai presentase noise . Preconditions Pengguna memilih menu Filtering . Post Conditions Sistem menampilkan button Gaussian Noise dan Salt- Pepper Noise. Success Scenario 1. Pengguna telah memilih presentase noise. 2. Pengguna dapat melihat button Gaussian Noise dan Salt-Pepper Noise. Alternative Flows - 3.2.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 melihat button Gaussian Noise dan Salt- Pepper Noise . Preconditions Pengguna melihat nilai probabilitas noise yang telah dipilih. Post Conditions Sistem akan menampilkan gambar hasil generate gaussian noise. Success Scenario 1. Pengguna telah melihat button Gaussian Noise dan Salt-Pepper Noise . 2. Pengguna memilih button Gaussian Noise . 3. Sistem akan melakukan proses generate noise dan menampilkan hasil generate noise . 4. Pengguna dapat melihat hasil generate gaussian noise . Alternative Flows - 3.2.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 melihat button Gaussian Noise dan Salt- Pepper Noise . Preconditions Pengguna melihat nilai probabilitas noise yang telah dipilih. Post Conditions Sistem akan menampilkan gambar hasil generate Salt- Pepper Noise . Success Scenario 1. Pengguna telah melihat button Gaussian Noise dan Salt-Pepper Noise . 2. Pengguna memilih button Salt and Pepper Noise . 3. Sistem akan melakukan proses generate noise dan menampilkan hasil generate noise . 4. Pengguna dapat melihat hasil generate Salt and Pepper Noise . Alternative Flows - 3.2.1.7 Use Case Geometric Mean Filter Spesifikasi use case Geometric Mean Filter dapat dilihat pada Tabel 3.7. Tabel 3.7 Spesifikasi Use Case Geometric Mean Filter Name Geometric Mean Filter Actors Pengguna Trigger Pengguna telah melihat citra yang di generate noise . Preconditions Pengguna telah melihat button Gaussian Noise dan Salt- Pepper Noise . Post Conditions Sistem menampilkan hasil gambar yang telah di filtering dengan metode Geometric Mean Filter . Success Scenario 1. Pengguna telah melihat citra yang digenerate noise . 2. Pengguna mengeksekusi tombol Geometric Mean . 3. Sistem melakukan proses filtering dengan metode Geometric Mean Filter . 4. Pengguna dapat melihat hasil gambar yang telah di filtering dengan metode Geometric Mean Filter . Alternative Flows - 3.2.1.8 Use Case Simpan Citra Spesifikasi use case Simpan Citra dapat dilihat pada Tabel 3.8. Tabel 3.8 Spesifikasi Use Case Simpan Citra Name Simpan Citra Actors Pengguna Trigger Pengguna telah melihat hasil citra hasil filtering dengan metode Geometric Mean Filter . Preconditions Pengguna telah melihat citra terkena noise . Post Conditions Sistem menyimpan file citra hasil filtering . Success Scenario 1. Pengguna telah melihat hasil citra hasil filtering dengan metode Geometric Mean Filter . 2. Pengguna mengeksekusi tombol Save . 3. Sistem menampilkan pop-up window Save Image untuk menampilkan lokasi penyimpanan gambar. 4. Pengguna menyimpan citra hasil filtering . 5. Sistem akan menyimpan citra hasil filtering . Alternative Flows - 3.2.1.9 Use Case Deteksi Tepi Spesifikasi use case Deteksi Tepi dapat dilihat pada Tabel 3.9. Tabel 3.9 Spesifikasi Use Case Deteksi Tepi Name Filtering Actors Pengguna Trigger Pengguna memilih menu Deteksi Tepi. Preconditions Pengguna menggunakan Aplikasi Analisis Perbandingan Filtering dan Deteksi Tepi. Post Conditions Sistem menampilkan gambar hasil deteksi tepi. Success Scenario 1. Pengguna mengeksekusi menu Deteksi Tepi. 2. Sistem menampilkan halaman Deteksi Tepi. 3. Pengguna memilih file citra asli. 5. Pengguna memilih salah satu operator deteksi tepi yang tersedia. 7. Sistem melakukan proses deteksi tepi dengan operator yang telah dipilih. 8. Pengguna dapat melihat hasil gambar deteksi tepi. Alternative Flows - 3.2.1.10 Use Case Input Citra Spesifikasi use case Input Citra dapat dilihat pada Tabel 3.10. Tabel 3.10 Spesifikasi Use Case Input Citra Name Input Citra Actors Pengguna Trigger Pengguna memilih menu Deteksi Tepi. Preconditions Pengguna menggunakan aplikasi Analisis Perbandingan Filtering dan Deteksi Tepi. Post Conditions Sistem menampilkan gambar yang telah dipilih untuk proses deteksi tepi. Success Scenario 1. Pengguna memilih menu Deteksi Tepi. 2. Pengguna mengeksekusi tombol Open Image . 3. Sistem menampilkan pop-up window Open Image untuk menampilkan lokasi penyimpanan gambar. 4. Pengguna memilih gambar asli yang akan dideteksi tepi. 5. Sistem akan menampilkan gambar yang telah dipilih untuk proses deteksi tepi. 6. Pengguna dapat melihat gambar yang telah dipilih untuk proses deteksi tepi. Alternative Flows - 3.2.1.11 Use Case Deteksi Tepi Operator Sobel Citra Asli Spesifikasi use case Deteksi Tepi Operator Sobel Citra Asli dapat dilihat pada Tabel 3.11. Tabel 3.11 Spesifikasi Use Case Deteksi Tepi Operator Sobel Citra Asli Name Deteksi Tepi Operator Sobel Citra Asli Actors Pengguna Trigger Pengguna telah melihat citra asli yang dipilih untuk proses deteksi tepi. Preconditions Pengguna memilih menu Deteksi Tepi. Post Conditions Sistem akan menampilkan citra hasil deteksi tepi operator Sobel Success Scenario 1. Pengguna telah melihat citra asli yang dipilih untuk proses deteksi tepi. 2. Pengguna memilih button Deteksi Tepi Operator Sobel Citra Asli. 3. Sistem akan melakukan proses deteksi tepi dengan operator Sobel dan menampilkan hasil deteksi tepi. 4. Pengguna dapat melihat hasil deteksi tepi dengan operator Sobel. Alternative Flows - 3.2.1.12 Use Case Deteksi Tepi Operator Prewitt Citra Asli Spesifikasi use case Deteksi Tepi Operator Prewitt Citra Asli dapat dilihat pada Tabel 3.12. Tabel 3.12 Spesifikasi Use Case Deteksi Tepi Operator Prewitt Citra Asli Name Deteksi Tepi Operator Prewitt Citra Asli Actors Pengguna Trigger Pengguna telah melihat citra asli yang dipilih untuk proses deteksi tepi. Preconditions Pengguna memilih menu Deteksi Tepi. Post Conditions Sistem akan menampilkan citra hasil deteksi tepi operator Prewitt . Success Scenario 1. Pengguna telah melihat citra asli yang dipilih untuk proses deteksi tepi. 2. Pengguna memilih button Deteksi Tepi Operator Prewitt Citra Asli. 3. Sistem akan melakukan proses deteksi tepi dengan operator Prewitt dan menampilkan hasil deteksi tepi. 4. Pengguna dapat melihat hasil deteksi tepi dengan operator Prewitt. Alternative Flows - 3.2.1.13 Use Case Deteksi Tepi Operator Robert Citra Asli Spesifikasi use case Deteksi Tepi Operator Robert Citra Asli dapat dilihat pada Tabel 3.13. Tabel 3.13 Spesifikasi Use Case Deteksi Tepi Operator Robert Citra Asli Name Deteksi Tepi Operator Robert Citra Asli Actors Pengguna Trigger Pengguna telah melihat citra asli yang dipilih untuk proses deteksi tepi. Preconditions Pengguna memilih menu Deteksi Tepi. Post Conditions Sistem akan menampilkan citra hasil deteksi tepi operator Robert . Success Scenario 1. Pengguna telah melihat citra asli yang dipilih untuk proses deteksi tepi. 2. Pengguna memilih button Deteksi Tepi Operator Robert Citra Asli. 3. Sistem akan melakukan proses deteksi tepi dengan operator Robert dan menampilkan hasil deteksi tepi. 4. Pengguna dapat melihat hasil deteksi tepi dengan operator Robert. Alternative Flows - 3.2.1.14 Use Case Input Citra Filtering Spesifikasi use case Input Citra Filtering dapat dilihat pada Tabel 3.14. Tabel 3.14 Spesifikasi Use Case Input File Citra Name Input Citra Filtering Actors Pengguna Trigger Pengguna memilih menu Deteksi Tepi. Preconditions Pengguna menggunakan aplikasi Analisis Perbandingan Filtering dan Deteksi Tepi. Post Conditions Sistem menampilkan citra hasil filtering yang telah dipilih untuk proses deteksi tepi. Success Scenario 1. Pengguna memilih menu Deteksi Tepi. 2. Pengguna mengeksekusi tombol Open Image . 3. Sistem menampilkan pop-up window Open Image untuk menampilkan lokasi penyimpanan gambar. 4. Pengguna memilih citra hasil filtering yang akan dideteksi tepi. 5. Sistem akan menampilkan gambar yang telah dipilih untuk proses deteksi tepi. 6. Pengguna dapat melihat gambar yang telah dipilih untuk proses deteksi tepi. Alternative Flows - 3.2.1.15 Use Case Deteksi Tepi Operator Sobel Citra Filtering Spesifikasi use case Deteksi Tepi Operator Sobel Citra Filtering dapat dilihat pada Tabel 3.15. Tabel 3.15 Spesifikasi Use Case Deteksi Tepi Operator Sobel Citra Filtering Name Deteksi Tepi Operator Sobel Citra Filtering Actors Pengguna Trigger Pengguna telah melihat citra hasil filtering yang dipilih untuk proses deteksi tepi. Preconditions Pengguna memilih menu Deteksi Tepi. Post Conditions Sistem akan menampilkan citra hasil filtering deteksi tepi operator Sobel . Success Scenario 1. Pengguna telah melihat citra filtering yang dipilih untuk proses deteksi tepi. 2. Pengguna memilih button Deteksi Tepi Operator Sobel Citra Filtering . 3. Sistem akan melakukan proses deteksi tepi dengan operator Sobel dan menampilkan hasil deteksi tepi. 4. Pengguna dapat melihat hasil deteksi tepi dengan operator Sobel. Alternative Flows - 3.2.1.16 Use Case Deteksi Tepi Operator Prewitt Citra Filtering Spesifikasi use case Deteksi Tepi Operator Prewitt Citra Filtering dapat dilihat pada Tabel 3.16. Tabel 3.16 Spesifikasi Use Case Deteksi Tepi Operator Prewitt Citra Asli Name Deteksi Tepi Operator Prewitt Citra Asli Actors Pengguna Trigger Pengguna telah melihat citra filtering yang dipilih untuk proses deteksi tepi. Preconditions Pengguna memilih menu Deteksi Tepi. Post Conditions Sistem akan menampilkan citra hasil deteksi tepi operator Prewitt . Success Scenario 1. Pengguna telah melihat citra hasil filtering yang dipilih untuk proses deteksi tepi. 2. Pengguna memilih button Deteksi Tepi Operator Prewitt Citra Filtering . 3. Sistem akan melakukan proses deteksi tepi dengan operator Prewitt dan menampilkan hasil deteksi tepi. 4. Pengguna dapat melihat hasil deteksi tepi dengan operator Prewitt. Alternative Flows - 3.2.1.17 Use Case Deteksi Tepi Operator Robert Citra Filtering Spesifikasi use case Deteksi Tepi Operator Robert Citra Filtering dapat dilihat pada Tabel 3.17. Tabel 3.17 Spesifikasi Use Case Deteksi Tepi Operator Robert Citra Filtering Name Deteksi Tepi Operator Robert Citra Filtering Actors Pengguna Trigger Pengguna telah melihat citra filtering yang dipilih untuk proses deteksi tepi. Preconditions Pengguna memilih menu Deteksi Tepi. Post Conditions Sistem akan menampilkan citra hasil deteksi tepi operator Robert . Success Scenario 1. Pengguna telah melihat citra filtering yang dipilih untuk proses deteksi tepi. 2. Pengguna memilih button Deteksi Tepi Operator Robert Citra Filtering . 3. Sistem akan melakukan proses deteksi tepi dengan operator Robert dan menampilkan hasil deteksi tepi. 4. Pengguna dapat melihat hasil deteksi tepi dengan operator Robert. Alternative Flows - 3.1.2.18 Use Case Simpan Citra Spesifikasi use case Simpan Citra dapat dilihat pada Tabel 3.18. Tabel 3.18 Spesifikasi Use Case Simpan Citra Name Simpan Citra Actors Pengguna Trigger Pengguna telah melihat citra hasil deteksi tepi. Preconditions Pengguna telah melihat nilai MSE, PSNR dan Running Time Post Conditions Sistem menyimpan file citra hasil deteksi tepi. Success Scenario 1. Pengguna telah melihat hasil citra deteksi tepi. 2. Pengguna mengeksekusi tombol Save . 3. Sistem menampilkan pop-up window Save Image untuk menampilkan lokasi penyimpanan gambar. 4. Pengguna menyimpan citra hasil deteksi tepi. 5. Sistem akan menyimpan citra hasil deteksi tepi. Alternative Flows - 3.2.1.19 Use Case Menghitung MSE, PSNR dan Running Time Spesifikasi use case Hitung MSE, PSNR dan Running Time dapat dilihat pada Tabel 3.19. Tabel 3.19 Spesifikasi Use Case Menghitung MSE, PSNR dan Running Time Name Menghitung MSE, PSNR dan Running Time Actors Pengguna Trigger Pengguna telah melihat citra hasil deteksi tepi. Preconditions Pengguna telah melihat citra yang dipilih untuk proses deteksi tepi. Post Conditions Pengguna dapat melihat hasil perhitungan nilai MSE, PSNR dan Running Time . Success Scenario 1. Pengguna telah melihat citra hasil deteksi tepi. 2. Pengguna memlih dan mengeksekusi tombol deteksi tepi. 3. Sistem melakukan proses perhitungan nilai MSE, PSNR dan Running Time . 4. Sistem menampilkan hasil perhitungan nilai MSE, PSNR dan Running Time . 5. Pengguna dapat melihat hasil perhitungan nilai MSE, PSNR dan Running Time . Alternative Flows - 3.2.2 Activity Diagram Activity Diagram menggambarkan berbagai alir aktivitas dalam system yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin tejadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Dalam diagram aktivitas ini akan dijelaskan proses filtering dan deteksi tepi dalam sistem yang sedang dirancang. Berikut Activity Diagram Filtering dapat dilihat pada Gambar 3.3 dan Activity Diagram Deteksi Tepi pada Gambar 3.4. Gambar 3.3 Activity Diagram filtering Gambar 3.4 Activity Diagram Deteksi Tepi 3.2.3 Sequence Diagram Sequence diagram diagram urutan adalah sutau diagram yang memperlihatkan atau menampilkan interaksi-interaksi antar objek di dalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Sequence diagram digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai sebuah respon dari suatu kejadianevent untuk menghasilkan output apa yang dihasilkan. Berikut Sequence Diagram dapat dilihat pada Gambar 3.5. Gambar 3.5 Sequence Diagram 3.3 Pseudocode Program Pseudocode adalah suatu algoritma yang untuk dapat menjelaskannya harus menggunakan bahasa tingkat tinggi. Bahasa tingkat tinggi adalah bahasa yang dimengerti manusia dan dapat digambarkan dengan mudah sehingga dapat dipahami oleh manusia itu sendiri. 3.3.1 Pseudocode Geometric Mean Filter Pseudocode dari Geometric Mean Filter dapat dilihat pada Tabel 3.20. Tabel 3.20 Pseudocode Geometric Mean Filter 1. xi ← image.Width yi ← image.Height 2. red←0, green←0, blue←0, hasilred←1, hasilgreen←1, hasilblue←1 3. imagehasil ← xi, yi 4. for i ← 0 to yi-2 for j ← 0 to xi-2 for k ← i to i + 2 for l ← j to j + 2 5. red ← image.GetPiksell,k.R if red == 0 red - 255 6. green ← image.GetPiksell,k.G if green ==0 green - 255 7. blue ← image.GetPiksell,k.B if blue == 0 blue - 255 8. hasilred ← hasilredred 9. hasilgreen ← hasilgreengreen 10. hasilblue ← hasilblueblue endfor endfor 11. redfinal - hasilred 1 9 red - Math.Roundredfinal greenfinal - hasilgreen 1 9 green - Math.Roundgreenfinal bluefinal - hasilblue19 blue - Math.Roundbluefinal 12. imagehasil.SetPikselj + 1, i + 1, Color.FromArgb255,red,green,blue hasilred - 1 hasilgreen - 1 hasilblue - 1 endfor endfor Keterangan : 1. Set nilai xi sebagai lebar image dan set nilai yi sebagai panjang image 2. set nilai red , green , blue , hasilred, hasilgreen, dan hasilblue masing-masing 0. Kemudian set nilai redfinal, greenfinal, dan bluefinal masing-masing 1. 3. Deklarasi variabel imagehasil sebagai bitmap dengan lebar xi dan panjang yi . 4. perulangan i mulai dari 0 sampai dan perulangan j mulai dari 0 sampai . Setelah itu dilakukan perulangan mulai dari sampai dan perulangan mulai dari sampai . 5. nilai red dari piksel ke . Jika nilai red = 0 maka nilai red = 255. 6. nilai green dari piksel ke Jika nilai green = 0 maka nilai green = 255 7. nilai blue dari piksel ke . Jika nilai blue = 0 maka nilai blue = 255. 8. set nilai variabel hasilred = hasilred red . 9. set nilai variabel hasilgreen = hasilgreen green . 10. set nilai variabel hasilblue = hasilblue blue . 11. set nilai variabel redfinal = Nilai redfinal tersebut dibulatkan dan dimasukkan ke variabel red. Set nilai variabel greenfinal = hasilgreen Nilai greenfinal tersebut dibulatkan dan dimasukkan ke variabel green. set nilai variable bluefinal = hasilblue . Nilai bluefinal tersebut dibulatkan dan dimasukkan ke variabel blue. 12. set piksel imagehasil pada posisi dengan nilai red , green , dan blue . Nilai hasilred, hasilgreen, dan hasilblue dikembalikan ke 1. 3.3.2 Pseudocode Operator Sobel Pseudocede dari operator sobel dapat dilihat pada Tabel 3.21. Tabel 3.21 Pseudocode Operator Sobel 1. sobel  original arr_r  [sobel.Width, sobel.Height] arr_g  [sobel.Width, sobel.Height] arr_b  [sobel.Width, sobel.Height] temp_array [sobel.Width, sobel.Height] 2. for i  1 to sobel.Width – 1 for j  1 to sobel.Height - 1 arr_r  original.GetPikseli, j.R; arr_g  original.GetPikseli, j.G; arr_b  original.GetPikseli, j.B; 3. arr_r  arr_r[i, j] + arr_g[i, j] + arr_b[i, j] 3; endfor endfor 4. for i  1 to sobel.Width - 1 for j  1 to sobel.Height-1 5. x  Math.Abs1arr_r[i-1,j-1]+2arr_r[i- 1,j] + 1arr_r[i-1,j+1] - arr_r[i+1, j-1] - 2 arr_r[i+1, j] - arr_r[i + 1, j + 1] 6. y Math.Abs1arr_r[i-1,j-1]+2arr_r[i,j- 1]+1arr_r[i+1,j-1]-1arr_r[i-1,j+1]- 2arr_r[i,j+1]-1arr_r[i+1,j+1] 7. grad  Math.Sqrtxx+yy if grad 255 grad 255 temp_array grad 8. sobel.SetPikseli,j,Color.FromArgbtemp_array[i, j], temp_array[i, j],temp_array[i,j] endfor endfor Keterangan : 1. deklarasi variabel sobel sebagai bitmap yang diambil dari image original Deklarasi variabel arr_r, arr_g, arr_b, temp_ array sebagai array dengan elemen baris = sobel.width dan kolom = sobel.height . 2. untuk medapatkan warna tiap piksel pada gambar dilakukan perulangan. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai . nilai Red diambil dan diletakkan pada arr_r nilai Green diambil dan diletakkan pada arr_g nilai Blue diambil dan diletakkan pada arr_b 3. setelah diambil nilai RGB ditiap piksel dilakukan proses mendapatkan rata- rata 3 layer warna pada piksel. 4. Perulangan untuk proses deteksi tepi. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai . 5. Memasukan nilai x dari perkalian rumus matriks sobel x dan nilai piksel pada matriks vertikal. 6. Memasukan nilai y dari perkalian rumus matriks sobel y dan nilai piksel pada matriks horizontal. 7. Menentukan nilai gradient dari akar kuadrat perkalian x dan y pada point 5 dan 6 8. Memasukkan nilai akhir piksel. 3.3.3 Pseudocode Operator Prewitt Pseudocode dari operator prewitt dapat dilihat pada Tabel 3.22. Tabel 3.22 Pseudocode Operator Prewitt 1. prewitt  original arr_r  [prewitt.Width, prewitt.Height] arr_g  [prewitt.Width, prewitt.Height] arr_b  [prewitt.Width, prewitt.Height] temp_array [prewitt.Width, prewitt.Height] 2. for i  1 to prewitt.Width – 1 for j  1 to prewitt.Height - 1 arr_r  original.GetPikseli, j.R; arr_g  original.GetPikseli, j.G; arr_b  original.GetPikseli, j.B; 3. arr_r  arr_r[i, j] + arr_g[i, j] + arr_b[i, j] 3; endfor endfor 4. for i  1 to prewitt.Width - 1 for j  1 to prewitt.Height-1 5. x  Math.Abs1arr_r[i-1,j-1]+1arr_r[i- 1,j] + 1arr_r[i-1,j+1] - 1 arr_r[i+1, j-1] - 1 arr_r[i+1, j] - 1arr_r[i + 1, j + 1]; 6. y  Math.Abs1arr_r[i-1,j-1]+1arr_r[i,j- 1]+1arr_r[i+1,j-1]-1arr_r[i-1,j+1]-1arr_r[i,j+1]- 1arr_r[i+1,j+1] 7. grad  Math.Sqrtxx+yy if grad 255 grad 255 temp_array grad 8. prewitt.SetPikseli,j,Color.FromArgbtemp_array[i, j], temp_array[i, j],temp_array[i,j] endfor endfor Keterangan : 1. deklarasi variabel prewitt sebagai bitmap yang diambil dari image original Deklarasi variabel arr_r, arr_g, arr_b, temp_ array sebagai array dengan elemen baris = prewitt.width dan kolom = prewitt.height . 2. untuk medapatkan warna tiap piksel pada gambar dilakukan perulangan. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai . nilai Red diambil dan diletakkan pada arr_r nilai Green diambil dan diletakkan pada arr_g nilai Blue diambil dan diletakkan pada arr_b 3. setelah diambil nilai RGB ditiap piksel dilakukan proses mendapatkan rata- rata 3 layer warna pada piksel. 4. Perulangan untuk proses deteksi tepi. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai . 5. Memasukan nilai x dari perkalian rumus matriks prewitt x dan nilai piksel pada matriks vertikal. 6. Memasukan nilai y dari perkalian rumus matriks prewitt y dan nilai piksel pada matriks horizontal. 7. Menentukan nilai gradient dari akar kuadrat perkalian x dan y pada point 5 dan 6 8. Memasukkan nilai akhir piksel. 3.3.4 Pseudocode Operator Robert Pseudocode dari operator robert dapat dilihat pada Tabel 3.23. Tabel 3.23 Pseudocode Operator Robert 1. robert  original arr_r  [robert.Width, robert.Height] arr_g  [robert.Width, robert.Height] arr_b  [robert.Width, robert.Height] temp_array [robert.Width, robert.Height] 2. for i  1 to robert.Width – 1 for j  1 to robert.Height - 1 arr_r  original.GetPikseli, j.R; arr_g  original.GetPikseli, j.G; arr_b  original.GetPikseli, j.B; 3. arr_r  arr_r[i, j] + arr_g[i, j] + arr_b[i, j] 3; endfor endfor 4. for i  1 to robert.Width - 1 for j  1 to robert.Height-1 5. x  Math.Absarr_r[i, j] - arr_r[i + 1, j + 1] 6. y  Math.Absarr_r[i + 1, j] - arr_r[i, j + 1] 7. grad = x+y; if grad 255 grad 255 temp_array grad 8. robert.SetPikseli,j,Color.FromArgbtemp_array[i, j], temp_array[i, j],temp_array[i,j] endfor endfor Keterangan : 1. deklarasi variabel robert sebagai bitmap yang diambil dari image original Deklarasi variabel arr_r, arr_g, arr_b, temp_ array sebagai array dengan elemen baris = robert.width dan kolom = robert.height . 2. untuk medapatkan warna tiap piksel pada gambar dilakukan perulangan. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai . nilai Red diambil dan diletakkan pada arr_r nilai Green diambil dan diletakkan pada arr_g nilai Blue diambil dan diletakkan pada arr_b 3. setelah diambil nilai RGB ditiap piksel dilakukan proses mendapatkan rata- rata 3 layer warna pada piksel. 4. Perulangan untuk proses deteksi tepi. perulangan i mulai dari 1 sampai dan perulangan j mulai dari 1 sampai . 5. Memasukan nilai x dari perkalian rumus matriks robert x dan nilai piksel pada matriks vertikal. 6. Memasukan nilai y dari perkalian rumus matriks robert y dan nilai piksel pada matriks horizontal. 7. Menentukan nilai gradient dari akar kuadrat perkalian x dan y pada point 5 dan 6 8. Memasukkan nilai akhir piksel.

3.4 Perancangan Sistem