Menurut Teuinsuksa (2009), Dibangun dengan obyek grafik seperti tombol (button), kotak teks, slider, menu dan lain-lain. Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimana kerjanya. Sampai saat ini, jika kita membicarakan pemrograman berorientasi visual, yang ada di benak kita adalah sederetan bahasa pemrograman, seperti visual basic, Delphi, visual C++, visual Fox Pro, dan lainnya yang memang didesai secara khusus untuk itu. Matlab merintis ke arah pemrograman yang menggunakan GUI dimulai dari versi 5, yang terus disempurnkan sampai sekarang. GUIDE Matlab mempunyai kelebihan tersendiri dibandingkan dengan bahasa pemrogram lainnya, diantaranya:
1. GUIDE Matlab banyak digunakan dan cocok untuk aplikasi-aplikasi berorientasi sains, sehingga banyak peneliti dan mahasiswa menggunakan GUIDE Matlab untuk menyelesaikan riset atau tugas akhirnya.
2. GUIDE Matlab mempunyai fungsi built-in yang siap digunakan dan pemakai tidak perlu repot membuatnya sendiri.
3. Ukuran file, baik FIG-file maupun M-file, yang dihasilkan relatif kecil.
4. Kemampuan grafisnya cukup andal dan tidak kalah dibandingkan dengan bahasa pemrograman lainnya.
2.11.1 Membuat GUI dengan MATLAB
Menurut Teuinsuksa (2009), MATLAB mengimplementasikan GUI sebagai sebuah figure yang berisi barbagai obyek UIControl. Selanjutnya kita harus memprogram masing-masing obyek agar dapat bekerja ketika diaktifkan oleh pemakai GUI. Langkah dasar yang harus dikerjakan dalam membuat GUI adalah:
1. Mengatur layout komponen GUI
Setelah kita membuka GUIDE Matlab dan telah menentukan template GUI, langkah selanjutnya adalah adalah mendesai figure dengan menggunakan komponen palet sesuai dengan kebutuhan, seperti push button, radiobutton, chexkboxes, edit
text, static text, slider, frames, popup menu, axes, dan
masing-masing komponen, baik string(caption), font, color, size, dan sebagainya menggunakan property inspector. Jika kita telah selesai mendesain, jangan lupa untuk menyimpan file figure yang secara default akan memiliki ekstensi *.fig. Dari sini, matlab secara otomatis akan membuatkan sebuah m-file dengan nama yang sama, yaitu file berekstensi *.m.
2. Memprogram Komponen GUI
M-file yang telah dibuat pada langkah sebelumnya, akan otomatis terbuka dan kita harus menulis programnya agar komponen kontrol dapat bekerja secara simultan. Untuk membuat program dalam m-file kita cukup memperhatikan fungsi-fungsi matlab bertanda callback dimana perintah disispkan. Dari langah-langkah dasar diatas, secara sederhana sebenarnya GUI Matlab dibentuk oleh dua buah file, yaitu fig-file dan m-fig-file. Matlab User’s Guide, The Math Works inc, 1989.
Pada bab ini akan dijelaskan mengenai proses pembuatan penelitian pengolahan citra digital untuk mengenali tanda air pada uang kertas rupiah asli dan palsu dengan menerapkan segmentasi citra. Proses perancangan aplikasi dalam sub-bab ini akan dibagi menjadi beberapa tahap antara lain : analisis, gambaran aplikasi secara umum, perancangan proses.
3.1 Data Set
Data set diperoleh dari pengambilan gambar uang kertas rupiah asli dan uang rupiah hasil scan yang dicetak sebagai contoh uang palsu. Gambar diambil menggunakan kamera DSLR. Gambar yang diambil berupa tampilan uang kertas tepat di posisi tanda air berada. Dalam hal ini dilakukan 2 (Dua) skenario cara pengambilan gambar uji. Pertama dilakukan tepat di bawah lampu statis di dalam ruangan sebanyak 30 gambar uji. Kedua dilakukan di bawah sinar matahari sebanyak 30 gambar uji. Hasil dari pengambilan gambar dapat dilihat di Tabel 3.1 dan Tabel 3.2.
Tabel 3.1 Data Set Citra Di Dalam Ruangan
No. Gambar Uang Keterangan
1. Asli di dalam ruangan
2. Asli di dalam ruangan
3. Asli di dalam ruangan
5. Asli di dalam ruangan
6. Asli di dalam ruangan
7. Asli di dalam ruangan
8. Asli di dalam ruangan
10. Asli di dalam ruangan
11. Asli di dalam ruangan
12. Asli di dalam ruangan
13. Asli di dalam ruangan
15. Asli di dalam ruangan
16. Palsu di dalam ruangan
17. Palsu di dalam ruangan
18. Palsu di dalam ruangan
19. Palsu di dalam ruangan
21. Palsu di dalam ruangan
22. Palsu di dalam ruangan
23. Palsu di dalam ruangan
24. Palsu di dalam ruangan
25. Palsu di dalam ruangan
Tabel 3.2 Data Set Citra Di Luar Ruangan
27. Palsu di dalam ruangan
28. Palsu di dalam ruangan
29. Palsu di dalam ruangan
30. Palsu di dalam ruangan
No. Gambar Uang Keterangan
2. Asli di luar ruangan
3. Asli di luar ruangan
4. Asli di luar ruangan
5. Asli di luar ruangan
7. Asli di luar ruangan
8. Asli di luar ruangan
9. Asli di luar ruangan
10. Asli di luar ruangan
12. Asli di luar ruangan
13. Asli di luar ruangan
14. Asli di luar ruangan
15. Asli di luar ruangan
16. Palsu di luar ruangan
18. Palsu di luar ruangan
19. Palsu di luar ruangan
20. Palsu di luar ruangan
21. Palsu di luar ruangan
22. Palsu di luar ruangan
24. Palsu di luar ruangan
25. Palsu di luar ruangan
26. Palsu di luar ruangan
27. Palsu di luar ruangan
28. Palsu di luar ruangan
3.2 Analisis Sistem
Penelitian pengolahan citra digital untuk mengenali tanda air pada uang kertas rupiah asli dan palsu dengan menerapkan segmentasi citra menggunakan bahasa pemrograman Matlab. Citra diambil dengan cara memotret uang kertas rupiah tepat di bagian tanda air berada sebagai uang asli, dan men-scan uang rupiah kemudian dicetak sebagai contoh uang palsu, kemudian proses selanjutnya adalah grayscale, binerisasi, dilasi,
erosi, dilasi-erosi, skeleton. Proses awal yang digunakan dalam image
processing adalah mengubah citra berwarna ke grayscale. Grayscale merupakan proses pengolahan citra dengan cara mengubah nilai-nilai piksel awal citra menjadi sebuah citra keabuan. Hasil dari proses grayscale yang telah kita lakukan, selanjutnya akan dijadikan binerisasi yang merupakan proses untuk melakukan konversi dari citra gray menjadi citra yang hanya memiliki dua warna (biner) yaitu hitam dan putih. Setelah itu dilakukan proses dilasi supaya garis yang terputus pada objek akan tersambung setelah garis-garis objek yang tersambung dilakukan proses erosi. Erosi adalah kebalikan dari dilasi. Pada operasi ini, ukuran obyek diperkecil dengan mengikis sekeliling obyek. Pada tahap selanjutnya dilakukan tahap
dilasi-erosi untuk supaya dapat mengisi lubang kecil pada objek, menggabungkan
objek-objek yang berdekatan, untuk tahap selanjutnya dilakukan proses
skeleton, yaitu proses pengikisan sebuah objek sebanyak mungkin dengan
tetap mempertahankan bentuk umum dari polanya, yang terakhir dalam pembuatan aplikasi adalah menampilkan hasil pendeteksian atas ada atau tidaknya tanda air. Dari penelitian tersebut akan dilakukan perhitungan keakuratan sistem dalam mendeteksi tanda air.
3.3. Gambaran Aplikasi Secara Umum
Secara garis besar untuk melakukan pengolahan citra digital pada uang melalui bebarapa proses yaitu meliputi: ( Gambar 3.1)
1. Citra masukan berupa citra berwarna
2. Baca inputan citra yang akan diproses menjadi :
a. Grayscale b. Binerisasi c. Dilasi d. Erosi e. Dilasi-Erosi f. Skeleton 3. Output
Setelah proses grayscale, binerisasi, dilasi, erosi, dilasi-erosi, skelet on. Citra keluaran akan berupa pernyataan ada atau tidak
tanda air dari pengolahan citra digital. Pada implementasinya penelitian ini melakukan pengambilan gambar sample memakai uang asli dan uang hasil scaning.
Untuk mengetahui garis besar dari proses sistem ini maka dibuatlah flowchart alur sistem pada Gambar 3.1
3.3.1 Perancangan Pr oses
Untuk mengetahui proses-proses yang dilakukan maka akan dijelaskan sebagai berikut :
3.3.1.1 Grayscale
Grayscale merupakan proses pengolahan citra dengan
cara mengubah nilai-nilai piksel awal citra menjadi sebuah citra keabuan.(Gambar 3.2)
Gambar 3.2 Flowchart Grayscale
Langkah awal pada flowchart grayscale adalah citra masukan berwarna yang kemudian akan diproses menjadi citra grayscale. Citra keabuan adalah citra yang setiap pikselnya mengandung satu layer dimana nilai intensitasnya berada pada interval 0-255, sehingga nilai-nilai piksel pada citra keabuan tersebut dapat direpresentasikan dalam sebuah matriks yang dapat memudahkan proses perhitungan pada
operasi berikutnya. Di dalam MATLAB untuk menggubah piksel RGB (Red Green Blue) menjadi skala keabu – abuan dengan menggunakan fungsi rgb2gray.
Gray = rgb2gray(I) ... (4) Variabel gray berfungsi untuk menampung hasil konversi citra RGB ke citra abu-abu. Citra yang dikonversi adalah citra uang yang ditampung dalam variable I.
3.3.1.2 Binerisasi
Proses selanjutnya adalah melakukan thresholding pada
image yang diperoleh dari proses grayscale dan pada image
masukan awal.
3.3.1.3 Dilasi
Dilasi merupakan suatu proses menambahkan piksel pada batasan dari objek dalam suatu image sehingga nantinya apabila dilakukan operasi ini maka image hasilnya lebih besar ukurannya dibandingkan dengan image aslinya.. Pengertian penebalan ini dikontrol oleh bentuk strel. Flowchart pada gambar 3.4 adalah proses dari dilasi. Setelah memproses metode binerisasi kemudian akan diproses dilasi. Proses ini menyambung garis pada objek. Berikut adalah potongan baris program dilasi.
b= imdilate(BW,se) ... (5) Variabel b berfungsi untuk menampung hasil dilasi. Citra yang di-dilasi adalah citra dari binerisasi yang ditampung dalam variable I. Variabel se adalah radius dari proses dilasi berlangsung.
Gambar 3.4 Flowchart Dilasi
3.3.1.4 Erosi
Pada proses ini akan di-erosi (Gambar 3.5). Erosi adalah mengecilkan atau menipiskan obyek citra biner, berbeda dengan dilasi yang melakukan penumbuhan atau penebalan. Erosi dapat dianggap sebagai operasi
morphological filtering dimana detail citra yang lebih kecil
dari strel akan difilter (dihilangkan) dari citra. Berbeda dengan dilasi, apabila erosi dilakukan maka yang dikerjakan adalah memindahkan piksel pada batasan-batasan objek yang akan di erosi. Jumlah dari piksel yang ditambah atau dihilangkan bergantung pada ukuran dan bentuk dari
elemen terstruktur yang digunakan untuk memproses citra tersebut. Alur proses Erosi dapat dilihat pada gambar 3.5.
Gambar 3.5 Flowchart Erosi 3.3.1.5 Dilasi-Erosi
Pada proses ini akan di-dilasi-erosi, adalah untuk mendapatkan garis tepi dari objek dengan cara mengurangi hasil dari dilasi dan erosi.
Gambar 3.6 Flowchart Dilasi-Erosi 3.3.1.6 Skeleton
Skeleton adalah kerangka (atau sumbu medial) yang
merepresentasikan sebuah bentuk atau citra biner, dihitung dengan menggunakan operator morfologi. Proses
skeletoning dapat didefinisikan sebagai gabungan dari erosi
dan opening.
3.3.1.7 Deteksi Tanda Air
Pada proses deteksi tanda air ini adalah untuk mengidentifikasi adanya piksel putih atau tidak pada hasil
skeletonizing. Alur proses deteksi tanda air bisa dilihat pada
gambar 3.8 .
Gambar 3.8 Flowchart Deteksi Tanda Air
3.4 Perancangan Tampilan Antar muka
Pada perancangan antar muka yang akan dibuat sedemikia nrupa yang nantinya merupakan suatu halaman untuk berinteraksi bagi pemakai/ pengguna program dan diharapkan dapa tmemahami jalan kerja program dengan mudah. Dalam membuat program akan dirancang tampilan GUI maka akan menghasilkan 2 file yaitu namafile.fig dimana GUI disimpan dan namafile.m dimana eksekusi program terkumpul. Masing-masing fig-file ini menghasilkan m-file dengan nama yang sama. Berikut adalah tabel yang berisi perancangan dalam pembuatan program.
Tabel 3.3 Perancangan Program
File-file Komponen Nama fungsi
PCD Uang
Figure Deteksi Tanda
Air Static text Segmentasi citra untuk deteksi tanda air Judul
Axes 1 Menampilkan citra
Push button Buka Citra Menampilkan
inputan
Pushbutton Process
Menjalankan proses grayscale ,binerisasi,
dilasi, erosi ,dilasi-erosi, skeleton, deteksi tanda air
Axes 2 - Menampilkan Citra
Axes 3 - Menampilkan Citra
Axes 4 - Menampilkan Citra
Axes 5 - Menampilkan Citra
Axes 6 - Menampilkan Citra