pengenalan nilai nominal uang logam rupiah

advertisement
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
TUGAS AKHIR
PENGENALAN NILAI NOMINAL
UANG LOGAM RUPIAH
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Jurusan Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
Oleh :
SODIPTA BADIA BANUREA
NIM : 135114045
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2017
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINAL PROJECT
NOMINAL VALUE RECOGNITION OF
RUPIAH COIN
In a partial fulfilment of the requirements
for the degree of Sarjana Teknik
in Electrical Engineering Study Program
Department of Electrical Engineering
Faculty of Science and Technology, Sanata Dharma University
By :
SODIPTA BADIA BANUREA
NIM : 135114045
ELECTRICAL ENGINEERING STUDY PROGRAM
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2017
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN
Twinkle Twinkle Liltle Star
How I Wonder What You Are
see, it’s a happy game, after all.
c20911d8cb4e3c94c63e532f72c090d9
Avos00
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
INTISARI
Pengolahan citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasi oleh
manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra
mentransformasikan citra menjadi citra lain. Salah satu penerapan dari teknologi
pengolahan citra adalah pengenalan nilai nominal uang kertas rupiah.
Sistem pengenalan nilai nominal uang logam rupiah yang dibuat ini adalah
pengenalan nilai nominal dengan nilai nominal Rp.100,00 perak, Rp.200,00 perak,
Rp.500,00 perak, Rp.500,00 kuningan, Rp.1000,00 perak-kuningan, Rp.1000,00 perak,
dengan 2 variasi kondisi uang logam. Secara garis besar proses kerja dari sistem ini ialah
mengambil citra uang logam berupa citra Red, Green, and Blue (RGB), diresizing,
konversi citra RGB ke citra Hue Saturation Value (HSV), segmentasi HSV dengan
mengambil nilai saturasi dan value, menentukan nilai threshold untuk saturasi dan value,
Hitung Nilai Warna Foreground dari Background Berdasarkan nilai Threshold S&V,
Hitung Nilai Luasan Foreground dari Background Berdasarkan Fungsi Imfill Pada
Threshold Value, Proses Pengenalan Look-Up Table serta penentuan keluaran nilai
pengenalan nominal dengan keluaran teks.
Pada hasil data pengujian secara menyuluruh baik secara real time dan non real time
dengan variabel penelitian yang telah ditentukan. Pengujian dengan kondisi koin bagus
menghasilkan tingkat penilaian 100 % dibandingkan variasi kondisi lainnya.
Kata Kunci : Pengolahan Citra, RGB, HSV, Look Up Table, Pengenalan uang logam
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
Image processing aims to improve image quality for easy interpretation by humans or
machines (in this case the computer). Image processing techniques transform images into
other imagery. One application of image processing technology is the introduction of the
nominal value of rupiah.
The recognition system of nominal value of rupiah coin made this is the introduction
of nominal value with nominal value Rp.100.00 silver, Rp.200,00 silver, Rp.500,00 silver,
Rp.500,00 brass, Rp.1000,00 Silver-brass, Rp.1000.00 silver, with 2 variations of coin
condition. Broadly speaking the work process of this system is to take the image of coin in
the form of Red, Green, and Blue (RGB) image, diresizing, RGB image conversion to Hue
Saturation Value (HSV) image, HSV segmentation by taking saturation and value value,
Threshold for saturation and value, Calculate Foreground Color Value from Background
Based on S & V Threshold value, Calculate Foreground Value of Background Based on
Imfill Function in Threshold Value, Look-Up Table Introduction process and output value
determination of nominal introduction with text output.
On the results of the test data in real time both in real time and non real time with
research variables that have been determined. Testing with good coin conditions results in
a 100% appraisal rate compared to other condition variations.
Keywords: Image Processing, RGB, HSV, Look Up Table, Recognition of coins
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yesus Kristus karena atas berkat dan penyertaannya,
tugas akhir ini dapat diselesaikan dengan baik.
Tugas akhir ini merupakan salah satu syarat bagi mahasiswa Jurusan Teknik Elektro
untuk memperoleh gelar Sarjana Teknik di Universitas Sanata Dharma Yogyakarta. Tugas
akhir ini dapat diselesaikan dengan baik atas bantuan, gagasan, dan dukungan dari berbagai
pihak. Oleh karena itu, penulis ingin mengucapkan terima kasih kepada :
1. Sudi Mungkasi, S.Si, M.Math.Sc., Ph.D., selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma.
2. Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elektro
Universitas Sanata Dharma.
3. Dr. Linggo Sumarno, selaku Dosen Pembimbing tugas akhir yang selalu sabar
membimbing dan mendorong untuk cepat menyelesaikan tugas akhir ini.
4. Wiwien Widyastuti, S.T., M.T. dan Dr. Iswanjono, selaku dosen penguji yang
telah memberikan bimbingan, saran, dan merevisi tugas akhir ini.
5. Ir. Theresia Prima Ari Setiyani, M.T., selaku dosen pembimbing akademik yang
telah mendampingi dan membimbing penulis selama menempuh pendidikan di
Universitas Sanata Dharma.
6. Bapak dan Ibu dosen yang telah mengajarkan banyak ilmu yang bermanfaat
selama menempuh pendidikan di Universitas Sanata Dharma.
7. Ayah, Ibu, dan Kakak-Adik serta semua keluarga yang selalu mendoakan,
mendukung, dan membantu segala sesuatunya mulai dari awal hingga akhir studi
di jenjang perkuliahan.
8. Segenap staff sekretariat dan laboran Teknik Elektro yang secara tidak langsung
telah memberikan bantuan dan dukungan dalam kelancaran penyelesaian tugas
akhir ini.
9. Teman-teman kelompok skripsi Almedio, Andre, Zemmy, Dirga, Oyen, Odip,
Valdi, Sandy yang selalu mendukung dan mengingatkan untuk rajin bimbingan.
10. Seluruh teman-teman Teknik Elektro 2013 yang telah membantu, menemani, dan
memberikan semangat pada saat menempuh pendidikan di Universitas Sanata
Dharma.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
HALAMAN JUDUL ...................................................................................................
i
HALAMAN PERSETUJUAN ...................................................................................
iii
PERNYATAAN KEASLIAN KARYA.....................................................................
iv
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP .........................................
v
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS ..................................................................
vi
INTISARI ....................................................................................................................
vii
ABSTRACT ................................................................................................................
viii
KATA PENGANTAR ................................................................................................
ix
DAFTAR ISI ...............................................................................................................
x
DAFTAR GAMBAR ..................................................................................................
xiii
DAFTAR TABEL .......................................................................................................
xv
BAB I PENDAHULUAN ...........................................................................................
1
1.1. Latar Belakang.......................................................................................................
2
1.2. Tujuan dan Manfaat ...............................................................................................
2
1.3. Batasan Masalah ....................................................................................................
2
1.4. Metodologi Penelitian ...........................................................................................
3
BAB II DASAR TEORI .............................................................................................
4
2.1. Uang Logam Rupiah Indonesia .............................................................................
4
2.2. Pengolahan Citra ...................................................................................................
11
2.2.1.Pengertian Pengolahan Citra Digital ............................................................
11
2.2.2.Aplikasi Pengolahan Citra ............................................................................
12
2.2.3. Prinsip Dasar dalam Pengolahan Citra ........................................................
12
2.2.3.1. Peningkatan Kecerahan dan Kontras……………………………..
12
2.2.3.2. Resizing Citra……………………………………………………..
13
2.2.4. Pengenalan Dasar Citra……………………………………………………
13
2.2.4.1. Representasi Citra Digital………………………………………… 13
2.2.4.2. Mengenal Jenis Citra……………………………………………...
13
2.2.4.2.1. Citra Berwarna (RGB)…………………………………
14
2.2.4.3.2. Citra Biner ……………………………… .....................
14
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.2.5. Ciri Suatu Citra…………………………………………………… ....……
15
2.2.6. Model Warna…………………………………………………… .......……
15
2.2.7. Ruang Warna HSV………………………………………………………… 16
2.2.8. Look-Up Table…………………………………………………… .....……
19
BAB III PERANCANGAN ........................................................................................
20
3.1.Proses Kerja dan Mekanisme Sistem .....................................................................
20
3.2. Perancangan Perangkat Keras (Hardware) ...........................................................
21
3.2.1. Desain Dudukan Untuk Webcam………………………………………… .
21
3.2.1. Refocus Ulang Webcam Logitech Series C270………………………… … 22
3.3. Perancangan Perangkat Lunak (Software) ............................................................
23
3.3.1. Akuisisi Citra Koin………………………………………………………...
24
3.3.2. Preprocessing……………………………………………………………… 25
3.3.3. Look Up Table (LUT)……………………………………………………..
31
3.4. Pengujian Pengenalan Koin ...................................................................................
33
3.4.1. Pengujian Secara Real Time……………………………………………….
33
3.4.2. Pengujian Secara Non Real Time………………………………………….
34
3.5. Analisis Data Pengujian ........................................................................................
35
BAB IV HASIL DAN PEMBAHASAN ....................................................................
36
4.1. Menjalankan Program Pengenalan Uang Logam Rupiah......................................
37
4.1.1. Non Real-Time…………………………………………………………….. 37
4.1.2. Real-Time………………………………………………………………….. 40
4.2. Penjelasan Listing Program………………………………………………………
43
4.2.1. Penjelasan Listing Program Secara Non Real_Time……………………...
43
4.2.2. Penjelasan Listing Program Secara Real_Time……………………………
55
4.3. Analisis Hasil Data Pengujian ...............................................................................
74
4.3.1. Analisis Hasil Data Pengujian Secara Real-Time…………………………. 74
4.3.2. Analisis Hasil Data Pengujian Secara Non Real-Time…………………….
75
4.3.3. Analisis Hasil Data Pengujian Secara Keseluruhan……………………….
77
BAB V KESIMPULAN DAN SARAN .....................................................................
80
5.1. Kesimpulan ............................................................................................................
80
5.2. Saran ......................................................................................................................
80
DAFTAR PUSTAKA .................................................................................................
51
LAMPIRAN
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
Gambar 2.1. Uang Logam Rupiah Pecahan Rp. 1000 Tahun Emisi 2010 ...................
5
Gambar 2.2. Uang Logam Rupiah Pecahan Rp. 1000 Tahun Emisi 1993 ...................
6
Gambar 2.3. Uang Logam Rupiah Pecahan Rp. 500 Tahun Emisi 2003. ....................
7
Gambar 2.4. Uang Logam Rupiah Pecahan Rp. 500 Tahun Emisi 1997 .....................
8
Gambar 2.5. Uang Logam Rupiah Pecahan Rp. 200 Tahun Emisi 2003 .....................
9
Gambar 2.6. Uang Logam Rupiah Pecahan Rp. 100 Tahun Emisi 1999. ....................
10
Gambar 2.7. Empat Contoh Alat yang Menghasilkan Citra Digital .............................
11
Gambar 2.8. Pengolahan Citra Memungkinkan Pengubahan Kontras pada Citra........
12
Gambar 2.9. Pengolahan Citra Memungkinkan Untuk Resizing pada Citra. ...............
13
Gambar 2.10. Tabel Warna dan Nilai Penyusun Warna pada Citra Berwarna. ...........
14
Gambar 2.11. Contoh Konversi Citra HSV Komponen Saturasi (Kiri) ke Citra Biner
(Kanan) .........................................................................................................................
14
Gambar 2.12. Spektrum Warna ....................................................................................
15
Gambar 2.13. Model Warna HSV ................................................................................
16
Gambar 2.14. Representatif Gambar RGB ke Gambar H,S,V .....................................
18
Gambar 2.15. Perbandingan Warna R,G,B terhadap Warna H,S,V pada Gambar Original
......................................................................................................................................
18
Gambar 3.1. Diagram Alir Sistem ................................................................................
21
Gambar 3.2. Dudukan Webcam yang sudah dibuat ......................................................
22
Gambar 3.3. Proses Pengambilan Gambar Sebelum dan Sesudah Refocus Ulang…...
23
Gambar 3.4. Diagram Alir Perancangan Perangkat Lunak ..........................................
23
Gambar 3.5. Flowchart Inisialisasi Webcam di MATLAB............................................
24
Gambar 3.6. Flowchart Proses Membaca Citra Gambar Koin di MATLAB ................
26
Gambar 3.7. Flowchart Proses Resizing Citra Gambar Koin di MATLAB...................
27
Gambar 3.8. Flowchart Proses Konversi Citra RGB ke HSV di MATLAB .................
28
Gambar 3.9. Flowchart Proses Nilai Rasio S&V Foreground Koin di MATLAB .......
29
Gambar 3.10. Flowchart Proses Mencari Nilai Luasan Foreground Koin di MATLAB 30
Gambar 3.11. Flowchart Proses Mencari Nilai Look Up Table di MATLAB...............
32
Gambar 3.12. Tampilan GUI Sistem Pengenalan Uang Logam Rupiah ......................
33
Gambar 3.13. Flowchart Pengujian Secara Real Time .................................................
34
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.1. Contoh Perbandingan Kondisi Uang Logam 100 Rupiah .......................
36
Gambar 4.2. Opsi Menjalankan Program Non Real-Time Pada MATLAB ...................
38
Gambar 4.3. Citra Bagian Depan Koin Hasil Program koin2.m ..................................
38
Gambar 4.4. Citra Bagian Belakang Koin Hasil Program koin2.m .............................
39
Gambar 4.5. Hasil Keluaran Teks pada Command Window MATLAB Hasil Program
koin2.m .........................................................................................................................
39
Gambar 4.6. Hasil Keluaran Teks pada Command Window MATLAB Hasil Program
pkoin2.m .......................................................................................................................
38
Gambar 4.7. Opsi Menjalankan Program Real-Time Pada MATLAB ..........................
41
Gambar 4.8. Tampilan GUI Program Real-Time .........................................................
41
Gambar 4.9. Contoh Ketika GUI dijalankan untuk Pengujian Koin 100 Rupiah ........
43
Gambar 4.10. Logitech Webcam Software tampilan Pengambilan Gambar Koin........
44
Gambar 4.11. Listing Program Koin2.m Untuk Membaca dan Resizing Gambar pada
MATLAB………………………………………………………………………………. 45
Gambar 4.12. Listing Program Koin2.m Untuk Konversi Citra RGB ke HSV………. 45
Gambar 4.13. Listing Program Koin2.m Untuk Pre-Processing Foreground Untuk S&V
Koin…………………………………………………………………………………….. 46
Gambar 4.14 Listing Program Koin2.m Untuk Pre-Processing Foreground Untuk Luasan
Koin ..............................................................................................................................
47
Gambar 4.15. Penjelasan fungsi Imfill Jika Ditinjau Dari Matriks ..............................
48
Gambar 4.16. Contoh Penerapan Fungsi Imfill Pada Koin Bagian Depan ..................
48
Gambar 4.17. Contoh Penerapan Fungsi Imfill Pada Koin Bagian Belakang ..............
49
Gambar 4.18. Output Figure Program Koin2.m Untuk Koin Bagian Depan ...............
49
Gambar 4.19. Output Figure Program Koin2.m Untuk Koin Bagian Belakang ..........
50
Gambar 4.20. Output Command Window Program Koin2.m ......................................
50
Gambar 4.21. Listing Program Pkoin2.m Untuk Look-Up Table.................................
54
Gambar 4.22. Sintaks Program Pkoin2.m Untuk Look-Up Table ................................
54
Gambar 4.23. Output Program Pkoin2.m .....................................................................
55
Gambar 4.24. Listing Program Real_Time.m Untuk Push Button “Atur Kamera” ......
56
Gambar 4.25. Sintaks Imaqhwinfo ...............................................................................
57
Gambar 4.26. Informasi dari Winvideo ........................................................................
57
Gambar 4.27. Informasi Webcam pada MATLAB ........................................................
58
Gambar 4.28. Informasi Supported Formats Webcam .................................................
59
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.29. Tampilan Imaqhinfo.InstalledAdaptor Pada GUI MATLAB .................
59
Gambar 4.30. Tampilan Imaqhinfo.DeviceIDs Pada GUI MATLAB ............................
60
Gambar 4.31. Tampilan Imaqhinfo.SupportedFormats Pada GUI MATLAB...............
61
Gambar 4.32. Tampilan Message Box Pada GUI MATLAB Untuk Push Button “Atur
Kamera” ........................................................................................................................
62
Gambar 4.33. Tampilan Warning Box Pada GUI MATLAB Untuk Push Button “Atur
Kamera” ........................................................................................................................
62
Gambar 4.34. Listing Program Real_Time.m Untuk Push Button “Hidupkan Kamera”
......................................................................................................................................
62
Gambar 4.35. Tampilan Message Box Untuk Push Button “Hidupkan Kamera” ........
63
Gambar 4.36. Listing Program Real_Time.m Untuk Push Button “Ambil Gambar 1”
63
Gambar 4.37. Listing Program Real_Time.m Untuk Push Button “Ambil Gambar 2”
64
Gambar 4.38. Listing Program Real_Time.m Untuk Push Button “Resizing_1” .........
65
Gambar 4.39. Listing Program Real_Time.m Untuk Push Button “Resizing_2” .........
66
Gambar 4.40. Listing Program Real_Time.m Untuk Push Button “Proses” ................
66
Gambar 4.41. Listing Program Real_Time.m Untuk Panel Group “Pilih Gambar”....
68
Gambar 4.42. Listing Program Real_Time.m Untuk Push Button “Reset” .................
70
Gambar 4.43. Listing Program Real_Time.m Untuk Push Button “Exit”....................
71
Gambar 4.44. Listing Program Real_Time.m Untuk Push Button “Save 1 .................
72
Gambar 4.45. Listing Program Real_Time.m Untuk Push Button “Save 2” ...............
72
Gambar 4.46. Listing Program Real_Time.m Untuk Push Button “Save 3” ...............
73
Gambar 4.47. Listing Program Real_Time.m Untuk Push Button “Save 4” ...............
73
Gambar 4.48. Grafik Tingkat Pengenalan Koin Program Real Time ...........................
75
Gambar 4.49. Grafik Tingkat Pengenalan Koin Program Non Real Time ...................
76
Gambar 4.50. Posisi Webcam dan Tempat Posisi Koin ...............................................
78
Gambar 4.51. Kondisi Pengaturan Pencahayaan ..........................................................
79
Gambar 4.52. Percobaan Program Pengenalan ............................................................
79
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
Tabel 4.1. Hasil pengambilan data uang koin bagian depan .......................................
52
Tabel 4.2. Hasil pengambilan data uang koin bagian belakang ..................................
53
Tabel 4.3. Tingkat Pengenalan Koin Program Real Time ............................................
74
Tabel 4.4. Tingkat Pengenalan Koin Program Non Real Time. ...................................
76
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I
PENDAHULUAN
1.1. Latar Belakang
Perkembangan teknologi yang semakin canggih dan maju, telah membawa
kemajuan juga dalam segala aspek kehidupan manusia terutama dalam memudahkan
berbagai pekerjaan ataupun aktifitas yang dilakukan manusia dalam kehidupan sehari-hari.
Perkembangan ini tentu didukung pula dengan perkembangan perangkat keras dan lunak
yang semakin maju seiring perkembangan zaman.
Salah satu perkembangan teknologi yang cukup berkembang pesat adalah teknologi
informasi di bidang pengolahan citra digital. Pengolahan citra digital digunakan untuk
mengenali suatu objek citra, memperbaiki kualitas citra, kompresi, ataupun mendapatkan
ciri dari suatu objek citra yang ingin diketahui. Banyak peralatan elektronika yang dibuat
untuk memudahkan proses pekerjaan maupun aktifitas manusia dalam bidang pengolahan
citra seperti webcam, scanner, kamera digital, dan masih banyak lagi. Perangkat lunak
untuk pengolahan citra digital pun terus dikembangkan sebagai penunjang perangkat keras
yang dipakai untuk mengolah citra untuk keperluan di bidang tertentu seperti di bidang
kesehatan,keamanan,visual,pendidikan dan masih banyak lagi.
Salah satu contoh pengolahan citra digital adalah pengenalan koin. Sudah banyak
dilakukan penelitian mengenai pengenalan koin yang dilakukan peneliti dari suatu lembaga
ataupun civika akademisi dari universitas. Contoh penelitian mengenai pengenalan koin
khususnya untuk koin uang logam rupiah Indonesia dengan menggunakan metode
euclidean untuk mendeteksi uang logam rupiah berbasis pengolahan citra. Metode
euclidean yang dipakai dalam penelitian ini menggunakan fitur jarak antar piksel pada citra
koin uang logam rupiah untuk membandingkan jarak suatu citra dengan citra lainnya yang
bertujuan untuk mencari kemiripan antar citra. [1]
Contoh aplikasi penerapan pengolahan citra digital terutama dalam pengenalan koin
adalah mesin penjual minuman ringan maupun makanan ringan otomatis. Mesin ini dibuat
untuk mendeteksi koin secara otomatis. Mesin ini menerapkan teknologi pengolahan citra
digital untuk mendeteksi uang logam berdasarkan bentuk citra dari koin tersebut. Jika koin
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
yang dimasukkan sesuai dengan data koin yang di basis data mesin itu maka makanan
ataupun minuman yang diinginkan akan keluar dari mesin tersebut. [2]
Pada penulisan tugas akhir ini, akan dilakukan pengenalan koin uang logam rupiah
dengan menggunakan metode warna dan ukuran untuk mendeteksi koin uang logam rupiah
berbasis pengolahan citra digital. Pada metode ini, koin uang logam rupiah akan dikenali
berdasarkan warna dari tiap-tiap objek koin uang logam rupiah dan ukuran citra dari tiaptiap objek koin uang logam rupiah yang diukur luasan dari koin yang akan diukur.
1.2. Tujuan dan Manfaat
Tujuan dari penulisan tugas akhir ini adalah untuk menghasilkan salah satu cara
untuk mengenali nilai nominal koin uang logam rupiah dengan membuat aplikasi yang
dapat digunakan untuk pengenalan nilai nominal koin uang logam rupiah dengan
menggunakan metode pengenalan warna dan ukuran pada pengolahan citra digital.
Manfaat dari penulisan tugas akhir ini adalah untuk menjadi salah satu referensi
dalam mempelajari cara-cara mengenali nilai nominal uang nominal koin uang logam
Rupiah.
1.3. Batasan Masalah
Pada Penulisan tugas akhir ini, penulis berfokus pada pembuatan aplikasi
pengenalan nilai nominal koin uang logam rupiah dengan menggunakan metode
pengenalan warna dan ukuran dengan beberapa batasan masalah pada aplikasi yang akan
dibuat yaitu sebagai berikut :
1) Input berupa koin uang logam rupiah dengan nilai nominal 100,200,500, dan 1000
rupiah yang masih berlaku di Indonesia maksimal tahun emisi 2016 yang ditetapkan
oleh Bank Indonesia.
2) Ketinggian kamera webcam yang ditetapkan adalah 15 cm untuk mendapatkan hasil
yang optimal.
3) Kondisi cahaya pada ruangan yang dipakai diatur sedemikian rupa agar mendapatkan
hasil keluaran yang optimal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
4) Menggunakan software MATLAB untuk melakukan komputasi dan pengenalan koin
uang logam rupiah.
5) Menggunakan hardware webcam C270h untuk melakukan proses pengambilan gambar
koin uang logam rupiah.
6) Uji coba menggunakan warna latar hitam.
7) Menggunakan metode HSV untuk deteksi warna dan metode Look Up Table untuk
identifikasi luasan dari pengenalan koin uang logam rupiah.
1.4 Metodologi Peneltian
Langkah-langkah dalam pengerjaan tugas akhir ini adalah sebagai berikut :
1) Pengumpulan bahan-bahan referensi dari berbagai sumber referensi berupa buku, jurnal
ilmiah, ataupun dari internet yang membahas mengenai pengolahan citra khususnya
pengenalan koin dengan software MATLAB.
2) Pengambilan data dilakukan untuk melihat karakteristik tiap-tiap koin uang logam
rupiah serta melihat tanggapan sistem aplikasi yang sudah dibuat dan diprogram dengan
menggunakan MATLAB.
4) Analisa dan pengambilan kesimpulan hasil percobaan dari pengambilan data yang sudah
dilakukan dapat dibuat dengan melihat persentase kesalahan aplikasi sistem yang sudah
dibuat serta seberapa besar tingkat keberhasilan sistem aplikasi yang dibuat dalam
melakukan pengenalan dan pendeteksian koin uang logam rupiah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II
DASAR TEORI
Pada bab ini akan dibahas mengenai landasan-landasan teori yang akan digunakan
dalam pembuatan tugas akhir “Pengenalan Nilai Nominal Uang Logam Rupiah”.
2.1. Uang Logam Rupiah Indonesia
Uang dapat didefinisikan sebagai alat tukar yang dapat diterima secara umum. Alat
tukar itu dapat berupa benda apapun yang dapat diterima oleh setiap orang
di masyarakat dalam proses pertukaran barang dan jasa. Uang didefinisikan sebagai
sesuatu yang tersedia dan secara umum diterima sebagai alat pembayaran bagi pembelian
barang-barang
dan
jasa-jasa
serta
kekayaan
berharga
lainnya
serta
untuk
pembayaran hutang. Secara kesimpulan, uang adalah suatu benda yang diterima secara
umum oleh masyarakat untuk mengukur nilai, menukar, dan melakukan pembayaran atas
pembelian barang dan jasa.
Di negara Republik Indonesia, rupiah adalah mata uang resmi Indonesia. Mata uang
ini dicetak dan diatur penggunaannya oleh Bank Indonesia. Ada 2 buah instrument alat
pembayaran yang sah yang sering dipakai dalam sistem pembayaran uan tunai, yaitu uang
kertas dan uang logam. Uang logam rupiah biasanya terbuat dari bahan alumminium atau
nikel. Setiap kepingnya dilengkapi dengan tekstur pada setiap sisi uang untuk membedakan
tiap pecahan. Setiap kepingnya juga dilengkapi dengan gambar-gambar timbul di bagian
depan dan belakang yang mewakili ciri khas kebudayaan dan kekayaan Indonesia [3]. Saat
ini uang logam rupiah yang masih berlaku sesuai ketentuan Bank Indonesia adalah sebagai
berikut :
4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
1) Uang Logam Rupiah Pecahan Rp. 1000 Tahun Emisi 2010 [3]
Gambar 2.1. Uang Logam Rupiah Pecahan Rp. 1000 Tahun Emisi 2010 [3]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
2) Uang Logam Rupiah Pecahan Rp. 1000 Tahun Emisi 1993 [3]
Gambar 2.2. Uang Logam Rupiah Pecahan Rp. 1000 Tahun Emisi 1993 [3]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
3) Uang Logam Rupiah Pecahan Rp. 500 Tahun Emisi 2003 [3]
Gambar 2.3. Uang Logam Rupiah Pecahan Rp. 500 Tahun Emisi 2003 [3]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
4) Uang Logam Rupiah Pecahan Rp. 500 Tahun Emisi 1997 [3]
Gambar 2.4. Uang Logam Rupiah Pecahan Rp. 500 Tahun Emisi 1997 [3]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
5) Uang Logam Rupiah Pecahan Rp. 200 Tahun Emisi 2003 [3]
Gambar 2.5. Uang Logam Rupiah Pecahan Rp. 200 Tahun Emisi 2003 [3]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
6) Uang Logam Rupiah Pecahan Rp. 100 Tahun Emisi 1999 [3]
Gambar 2.6. Uang Logam Rupiah Pecahan Rp. 100 Tahun Emisi 1999 [3]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
2.2. Pengolahan Citra
2.2.1. Pengertian Pengolahan Citra Digital
Istilah citra digital sangat populer pada masa sekarang ini. Banyak alat elektronik
yang menghasilkan citra digital; contohnya scanner, kamera digital, mikroskop digital, dan
fingerprint reader (pembaca sidik jari). Perangkat lunak untuk mengolah citra digital juga
sangat populer digunakan oleh pengguna untuk mengolah foto atau untuk berbagai
keperluan lain. Sebagai contoh, Adobe Photoshop dan MATLAB yang menyajikan berbagai
fitur untuk memanipulasi citra digital. Pengolahan citra juga biasanya dipakai untuk
berbagai teknik memanipulasi dan memodifikasi citra dengan berbagai cara. Foto adalah
contoh citra berdimensi dua yang bisa diolah dengan mudah. Setiap foto dalam bentuk citra
digital (misalnya berasal dari kamera digital) dapat diolah melalui perangkat-lunak
tertentu. Sebagai contoh, apabila hasil bidikan kamera terlihat agak gelap, citra dapat
diolah agar menjadi lebih terang. Dimungkinkan pula untuk memisahkan foto orang dari
latar belakangnya. Gambaran tersebut menunjukkan hal sederhana yang dapat dilakukan
melalui pengolahan citra digital [4].
Gambar 2.7. Empat Contoh Alat yang Menghasilkan Citra Digital [4]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
2.2.2. Aplikasi Pengolahan Citra
Pengolahan citra merupakan bagian penting yang mendasari berbagai aplikasi
nyata, seperti pengenalan pola, penginderaan jarak-jauh melalui satelit atau pesawat udara,
dan machine vision. Pada pengenalan pola, pengolahan citra antara lain berperan untuk
memisahkan objek dari latar belakang secara otomatis. Selanjutnya, objek akan diproses
oleh pengklasifikasi pola. Sebagai contoh, sebuah objek buah bisa dikenali sebagai jeruk,
apel, atau pepaya. Pada penginderaan jarak jauh, tekstur atau warna pada citra dapat
dipakai untuk mengidentifikasi objek-objek yang terdapat di dalam citra. Pada machine
vision (sistem yang dapat “melihat” dan “memahami” yang dilihatnya), pengolahan citra
berperan dalam mengenali bentuk-bentuk khusus yang dilihat oleh mesin. Penggunaan
kamera pemantau ruangan merupakan contoh bagian aplikasi pemrosesan citra. Perubahan
gerakan yang ditangkap melalui citra dapat menjadi dasar untuk melakukan pelaporan
situasi yang terekam. [4]
2.2.3. Prinsip Dasar dalam Pengolahan Citra
2.2.3.1. Peningkatan Kecerahan dan Kontras
Citra yang tidak jelas akibat sinar yang kurang atau ruangan yang gelap ketika
objek dibidik melalui kamera digital dapat diperbaiki kualitas gambarnya dengan
menggunakan pengolahan citra digital yaitu dengan peningkatan kecerahan dan kontras
Gambar 2.8. Pengolahan Citra Memungkinkan Pengubahan Kontras pada Citra [4]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
2.2.3.2. Resizing Citra
Resizing citra adalah mengubah besar atau kecilnya ukuran citra dalam piksel.
Tampilan citra tidak ada yang berubah tetapi hanya ukuran piksel dan matriksnya yang
dirubah. Misalnya ukuran suatu citra adalah sebesar m x n piksel dapat diubah ukurannya
menjadi p x q piksel tergantung pada penggunaannya. Jumlah piksel yang digunakan
mempengaruhi kualitas citra yang akan diproses [4].
Citra berukuran 1536x2048 piksel
Citra berukuran 32x32 piksel
Gambar 2.9. Pengolahan Citra Memungkinkan Untuk Resizing pada Citra
2.2.4. Pengenalan Dasar Citra
2.2.4.1. Representasi Citra Digital
Citra digital dipresentasi oleh kumpulan-kumpulan titik yang dinamakan piksel (pixel
atau “picture element”). Setiap piksel digambarkan sebagai satu kotak kecil dan setiap
piksel mempunyai koordinat posisi.
2.2.4.2. Mengenal Jenis Citra
Ada beberapa jenis citra yang biasanya digunakan dalam pengolahan citra contohnya
yaitu citra berwarna, dan citra biner.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
2.2.4.2.1. Citra Berwarna (RGB)
Citra berwarna atau citra RGB merupakan jenis citra yang menyajikan warna dalam
bentuk komponen R (merah), G (hijau), dan B (biru). Setiap komponen warna
menggunakan 8 bit (dengan rentang nilai 0 sampai dengan 255). Oleh karena itu,
kemungkinan warna yang bisa terjadi mencapai 255 x 255 x 255 atau 16.581.375 warna.
Gambar 2.1- menunjukkan contoh warna dan nilai R,G, dan B. [4]
Gambar 2.10. Tabel Warna dan Nilai Penyusun Warna pada Citra Berwarna [4]
2.2.4.2.2. Citra Biner
Citra biner merupakan citra dengan nilai piksel yang dinyatakan dengan nilai 0 dan
nilai 1. Nilai 0 menyatakan warna hitam dan nilai 1 menyatakan warna putih. Citra jenis ini
banyak dipakai dalam pengolahan citra, contohnya misalnya untuk kepentingan
memperoleh tepi bentuk suatu objek [4].
Gambar 2.11. Contoh Konversi Citra HSV Komponen Saturasi (Kiri) ke Citra Biner
(Kanan)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
2.2.5. Ciri Suatu Citra
Ciri merupakan karakteristik yang khas, yang membedakan antara satu dengan yang
lain. Hal ini juga berlaku pada sebuah citra, citra juga memiliki ciri yang dapat
membedakannya dengan citra yang lain. Ciri-ciri dasar dari citra adalah warna, bentuk, dan
ukuran [5].
2.2.6. Model Warna
Warna yang dilihat sebenarnya adalah spektrum cahaya yang dipantulkan oleh benda
yang kemudian ditangkap oleh indra penglihatan (yakni mata) lalu diterjemahkan oleh otak
sebagai sebuah warna tertentu. Sebagai contoh ketika melihat warna hijau yang terdapat
pada daun karena cahaya yang datang (umumnya cahaya matahari yang punya spektrum
cahaya yang cukup komplit) diserap oleh daun selain warna hijau yang dipantulkan, dan
cahaya hijau yg terpantul inilah yang
ditangkap sehingga dapat terlihat bahwa daun
berwana hijau. jadi sebenarnya faktor penting untuk melihat sebuah warna dengan baik
adalah cahaya yang mengenai benda tersebut. Karena terkait dengan cahaya maka tidak
semua spektrum cahaya dapat ditangkap oleh indra penglihatan manusia, karena itu
kemudian timbul istilah spektrum cahaya tampak (visible spectrum) yang range-nya cukup
besar. range inilah yang menjadi penyebab seseorang dapat melihat beraneka ragam warna
yang secara umum dipisahkan menjadi beberapa spektrum dasar [5].
Gambar 2.12. Spektrum Warna [5]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
2.2.7. Ruang Warna HSV
Ruang warna HSV mendefinisikan warna dalam terminologi Hue, Saturation dan
Value. Hue menyatakan warna sebenarnya, seperti merah, ungu, dan kuning. Hue
digunakan untuk membedakan warna-warna dan menentukan kemerahan (redness),
kehijauan (greeness), dsb, dari cahaya. Hue berasosiasi dengan panjang gelombang cahaya.
Saturation menyatakan tingkat kemurnian suatu warna, yaitu mengindikasikan seberapa
banyak warna putih diberikan pada warna. Value adalah atribut yang menyatakan
banyaknya cahaya yang diterima oleh mata tanpa memperdulikan warna [5].
Gambar 2.13. Model Warna HSV [5]
Karena ruang warna HSV merupakan ruang warna yang diturunkan dari ruang warna
RGB maka untuk mendapatkan warna HSV ini , harus dilakukan proses konversi warna
dari RGB ke HSV. HSV merupakan salah satu cara untuk mendefinisikan warna yang
didasarkan pada roda warna. Hue mengukur sudut sekitar roda warna (merah pada 0
derajat, 120 derajat di hijau, biru, di 240 derajat). Saturation yang menunjukkan pada
radius roda warna sehingga menunjukkan proporsi antara gelap (pusat) untuk warna ke
putih murni (di luar).Value Menunjukkan nilai kecerahan. Hue memiliki nilai antara 0
hingga 360 (derajat), Saturation and Value berkisar dari 0 hingga 100%. [5]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Untuk mendapatkan nilai H, S, V berdasarkan R, G, dan B, terdapat beberapa cara.
Cara tersederhana [1] adalah sebagai berikut :
(
((
)
) (
(
)
)
)
(2.1)
(2.2)
(2.3)
Kemudahan cara pertama ternyata menimbulkan permasalahan, cara pertama
membuat hue tidak terdefinisi jika saturation bernilai 0. Solusi kedua untuk mendapatkan
setiap nilai HSV adalah menggunakan rumus kedua [1] berikut :
(
)
(
)
(
)
(
{
(
(
{
(2.4)
(2.5)
(2.6)
)
(2.7)
(2.8)
)
)
*
+
*
+
(2.9)
(2.10)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Gambar 2.14. Representatif Gambar RGB ke Gambar H,S,V [6]
Gambar 2.15. Perbandingan Warna R,G,B terhadap Warna H,S,V pada Gambar Original
[7]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
2.2.8. Look Up Table (LUT)
Look Up Table atau LUT biasa digunakan untuk mempercepat perhitunganperhitungan kompleks yang biasanya dipakai ketika melakukan operasi-operasi
perhitungan dengan jumlah data perhitungan yang sangat banyak sehingga dapat
mempersingkat waktu untuk melakukan proses perhitungan dengan data yang sangat
banyak dibandingkan dengan memakai perhitungan secara langsung. Sesuai dengan
namanya, cara memakai metode ini adalah dengan membuat tabel hasil perhitungan lalu
data hasil perhitungan yang terdapat pada data tersebut nantinya akan menjadi acuan untuk
proses perhitungan data selanjutnya. Pada pemrosesan citra biasanya dipakai sebagai
referensi untuk melakukan pencocokkan data antara data citra masukkan dengan data tabel
hasil pemrosesan citra sebelumnya yang sudah ditabelkan pada tabel hasil perhitungan.
Contoh penggunaan Look Up Table adalah untuk melakukan pengenalan pada suatu nada
suara dan lain sebagainya [8].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III
PERANCANGAN PENELITIAN
Dalam BAB III ini akan dibahas mengenai perancangan perangkat keras dan
perangkat lunak. Pembahasan meliputi :
1. Proses kerja dan mekanisme sistem
2. Perancangan Perangkat keras (Hardware)
3. Perancangan Perangkat lunak (Software)
3.1. Proses Kerja dan Mekanisme Sistem
Sistem yang dirancang menggunakan perangkat keras yang dipakai berupa dudukan
berbahan dasar akrilik sebagai tempat dudukan webcam yang akan dipakai, satu buah
webcam Logitech Series C270 untuk mengambil gambar koin uang logam rupiah , dan satu
buah laptop untuk menulis dan menjalankan kode program yang dibuat. Sedangkan
perangkat lunak yang dipakai adalah perangkat lunak CorelDraw Graphics Suite X6 yang
digunakan untuk mendesain dudukan untuk webcam dan MATLAB sebagai sarana program
perangkat lunak yang ada di komputer untuk tempat penulisan dan pengeksekusian
program yang dibuat. Secara sederhana, Proses kerja dan mekanisme sistem yang dibuat
diawali dengan meletakkan webcam ke dudukan khusus yang dibuat sebagai tempat
peletakkan webcam dengan posisi webcam menghadap ke arah bawah atau ke arah tempat
peletakkan uang koin (alas) yang juga didesain di tempat dudukan yang sudah dibuat. Alas
tadi lalu diberi background
hitam atau warna bebas yang bukan merupakan warna
dominan dari koin yang ingin dideteksi. Langkah selanjutnya koin diletakkan di alas yang
sudah disiapkan yang berada tepat dibawah webcam. Webcam yang ada dihubungkan ke
laptop melalui sambungan USB dari webcam ke laptop. Setelah itu proses mengambil
gambar uang koin, penyimpanan gambar ke laptop dan deteksi uang koin dilakukan
melalui perangkat lunak MATLAB yang sudah diinstal di laptop. Proses kerja dan
mekanisme sistem dapat dilihat diagram alirnya pada gambar 3.1.
20
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Baca
Gambar
Resizing
Gambar
Konversi Citra
RGB ke HSV
Hitung Rasio S&V
Foreground koin
Hitung Luasan
Foreground koin
100 RUPIAH
Look Up Table
(keluaran)
Gambar 3.1. Diagram Alir Sistem
3.2. Perancangan Perangkat Keras (Hardware)
Pada Subbab ini akan dijelaskan mengenai :
1. Desain dudukan untuk webcam
2. Refocus ulang webcam Logitech Series C270
3.2.1. Desain Dudukan Untuk Webcam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Desain tempat yang akan dipakai untuk meletakkan webcam didesain menjadi 3
bagian yaitu bagian alas dudukan, tiang dudukan, dan tempat dudukan webcam itu sendiri.
Tempat yang sudah jadi dapat dilihat pada gambar 3.2.
Gambar 3.2. Dudukan Webcam yang sudah dibuat
3.2.2. Refocus ulang Webcam Logitech Series C270
Webcam Logitech Series C270 tidak memiliki fitur auto focus dan hanya memiliki
fitur manual focus sehingga fokus kamera disetting ke pengaturan default atau pengaturan
fokusnya di atur untuk pengambilan gambar ataupun video dengan luas bidang
pengambilan gambar yang luas atau untuk pengambilan gambar dengan banyak objek
yang berarti webcam ini tidak diatur fungsi fokusnya untuk pengambilan gambar yang
diambil dengan jarak dekat dan hanya berfokus pada satu objek saja. Oleh karena itu,
dilakukan sedikit penyesuaian dengan menghilangkan perekat kering yang tertempel di
dalam bukaan gear yang terhubung ke lensa yang terpasang pada papan sirkuit. Setelah
perekat kering tadi dihilangkan, barulah bukaan gear yang terhubung ke lensa bisa diputar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
searah atau berlawanan arah jarum jam untuk menyesuaikan fokus yang diinginkan untuk
proses pengambilan gambar atau video. Gambar proses pengambilan gambar koin sebelum
dan sesudah penyesuaian fokus dapat dilihat pada gambar 3.3.
Gambar 3.3. Proses Pengambilan Gambar Sebelum dan Sesudah Refocus Ulang
3.3. Perancangan Perangkat Lunak (Software)
Pada subbab ini akan dijelaskan mengenai algoritma pemograman perancangan
perangkat lunak yang akan diaplikasikan ke sistem pengenalan citra koin uang logam
rupiah dengan menggunakan perangkat lunak MATLAB. Proses perancangan perangkat
lunak dapat dilihat diagram alirnya pada gambar 3.4.
Akuisisi Citra
Gambar Koin
(Input Citra
RGB)
Preprocessing
Look Up Table
(LUT)
Pengenalan
Koin
(Output)
Gambar 3.4. Diagram Alir Perancangan Perangkat Lunak
3.3.1. Akuisisi Citra Koin
1. Inisialisasi Webcam di MATLAB
Pada Proses Pengambilan citra koin, pertama-tama webcam yang akan dipakai
harus dikenali dulu di laptop/komputer yang akan dipakai terutama harus dikenali dan
disinkronkan dengan perangkat lunak MATLAB karena semua proses pengenalan yang
akan dilakukan akan menggunakan MATLAB. Oleh karena itu harus dilakukan inisialisasi
webcam di MATLAB dan beberapa pengaturan yang akan dipakai dalam proses
pengambilan citra koin. Proses ini hanya dilakukan satu kali pada saat ingin mencoba
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
driver kamera webcam baru yang belum pernah diinstal di laptop. Flowchart inisialisasi
webcam di MATLAB dapat dilihat pada gambar 3.5.
Mulai
Cek Informasi Driver Kamera
Apa Saja yang dikenali
Cek Informasi Nomor ID
Driver Kamera yang Terdapat
pada Fitur Fungsi Winvideo
Cek Informasi Nomor
ID Driver Kamera
yang diinginkan
Cek Informasi Format Akuisisi
Citra yang Bisa Dipakai dari
Driver Kamera yang diinginkan
Inisialisasi Driver kamera yang diinginkan dengan
Format Akuisisi Citra Gambar pada Mode Default
A
Gambar 3.5. Flowchart Inisialisasi Webcam di MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
A
Testing Kamera
Selesai
Gambar 3.5. (Lanjutan) Flowchart Inisialisasi Webcam di MATLAB
3.3.2. Preprocessing
Pada Proses ini, citra uang koin yang sudah diambil gambarnya diproses terlebih
dahulu untuk bisa diketahui karakteristik yang terdapat pada masing-masing uang koin
yang akan dideteksi. Ada beberapa tahapan yang dilakukan pada tahap ini untuk
mendapatkan citra gambar koin yang diinginkan yang dibagi menjadi tahapan-tahapan
berikut ini.
1. Membaca Citra Gambar Koin yang diinginkan di MATLAB
Pada tahapan ini, Citra gambar yang diambil harus dikenali terlebih dahulu pada
MATLAB. Gambar citra yang diambil, ekstensi file yang bisa dikenali oleh bermacammacam bisa gambar dengan ekstensi file .JPG, .bmp, dan masih banyak lagi. File gambar
yang diambil akan dibaca pada MATLAB akan diubah dan disimpan dalam bentuk yang
berupa matriks. Flowchart membaca citra gambar koin di MATLAB dapat dilihat pada
gambar 3.6.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Mulai
Simpan File di Folder
Sistem MATLAB
Baca Citra Gambar
Koin
Tampilkan Hasil Baca Citra Gambar
Koin
Selesai
Gambar 3.6. Flowchart Proses Membaca Citra Gambar Koin di MATLAB
2. Proses Resizing
Pada tahapan ini, gambar yang sudah dibaca dan disimpan hasilnya di MATLAB akan
di atur ulang ukurannya dengan tujuan untuk mendapat ukuran gambar yang sesuai agar
hasil pemrosesan yang akan dilakukan diharapkan mendapatkan hasil yang optimal. Proses
rezising akan menggunakan fungsi built in MATLAB. Flowchart proses resizing dapat
dilihat pada gambar 3.7.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Mulai
Input: Hasil
Baca Citra Koin
Resizing Citra Gambar
Koin
Input: Hasil
Resizing Citra
Koin
Selesai
Gambar 3.7. Flowchart Proses Resizing Citra Gambar Koin di MATLAB
3. Proses Konversi Citra RGB ke HSV
Pada proses ini, citra gambar yang diambil dari kamera webcam berupa citra gambar
yang berformat citra RGB sehingga perlu diubah dulu menjadi citra gambar berformat
HSV. Proses konversi citra RGB ke HSV akan menggunakan fungsi built in MATLAB.
Flowchart konversi citra RGB ke HSV dapat dilihat pada gambar 3.8.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Mulai
Input :
Citra RGB
Ubah Nilai R,G,B ke H,S,V
Output :
Citra HSV
Selesai
Gambar 3.8. Flowchart Proses Konversi Citra RGB ke HSV di MATLAB
4. Segmentasi Citra Koin Bagian Foreground
Pada proses ini, segmentasi dilakukan untuk mencari karakteristik dari tiap-tiap koin
yang gambarnya sudah diambil dengan menggunakan webcam. Pada proses ini, segmentasi
bertujuan untuk memisahkan gambar objek yang diinginkan (foreground) dari gambar latar
(background) agar bisa dicari nilai HSV dan luasan pada gambar foreground. Nilai format
HSV yang sudah dikonversi tadi nantinya yang akan dipakai dalam penelitian ini adalah
nilai saturasi dan value-nya saja karena menyesuaikan dengan warna dari uang koin dalam
data penelitian yang akan digunakan. Pada Proses ini terdapat dua proses penting untuk
mendapatkan nilai karakteristik yang diinginkan yaitu proses mencari nilai rasio
foreground S&V citra koin serta nilai luasan foreground citra koin. Kedua Proses ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
menggunakan fungsi built in MATLAB. Flowchart dari kedua proses segmentasi citra koin
bagian foreground dapat dilihat pada gambar 3.9 dan 3.10.
Mulai
Input :
Citra HSV
Aplikasikan Threshold
Saturasi (T0) Citra koin
Aplikasikan Threshold
Value (T1) Citra Koin
))
Hitung Nilai Rasio S&V
Foreground Koin
Output : Nilai Rasio
S&V Foreground
Koin
Selesai
Gambar 3.9. Flowchart Proses Nilai Rasio S&V Foreground Koin di MATLAB
Nilai threshold saturasi (T0) citra koin dan nilai threshold value (T1) citra koin
akan di evaluasi nilai-nilainya pada bab 4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Mulai
Input :
Citra HSV
Aplikasikan Threshold
Value (T2) Citra Koin
Seleksi Objek Foreground dari
Background Berdasarkan Nilai T2
Hitung Luasan Objek
Foreground Citra Koin
Output : Luasan
Foreground Koin
Selesai
Gambar 3.10. Flowchart Proses Mencari Nilai Luasan Foreground Koin di MATLAB
Nilai threshold value (T2) citra koin akan di evaluasi nilainya pada bab 4.
Untuk mencari nilai luasan foreground koin, citra koin yang berupa citra HSV
diambil nilai threshold value (T2) dan diaplikasikan ke citra koin. Hasil dari proses ini
akan membuat citra koin menjadi citra biner yang dimana citra koin akan berubah menjadi
citra gambar yang terdiri dari warna hitam dengan nilai piksel 0 dan warna putih dengan
nilai piksel 1. Proses seleksi objek foreground dari background yaitu dengan mengubah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
nilai piksel 0 menjadi piksel 1 pada area warna hitam yang dikelilingi oleh warna putih.
Hasil dari proses ini yaitu warna hitam digambarkan sebagai background dan warna putih
digambarkan sebagai objek foreground. Setelah itu, luasan dari objek foreground dapat
dihitung dengan menjumlahkan nilai-nilai piksel yang terdapat dalam citra koin yang
sudah melalui proses seleksi objek foreground dari background sehingga didapatkan nilai
luasan objek foreground citra koin untuk setiap jenis-jenis uang logam rupiah yang ingin
dicari luasannya.
3.3.3. Look Up Table (LUT)
Pada proses ini akan dilakukan untuk melakukan pencocokkan data citra input citra
koin uang logam rupiah dengan data citra input koin uang logam rupiah yang sudah di
pre-processing dengan melakukan perbandingan jangkauan nilai rasio S&V foreground
(R) koin dan nilai luasan (L) foreground koin.
Jika data nilai karakteristik input citra koin berada pada jangkauan nilai karakteristik
tiap masing-masing jenis citra koin yang ada maka output yang akan dihasilkan dari proses
ini ialah berupa keluaran dalam bentuk teks nilai nominal uang logam rupiah, jika
sebaliknya maka output yang dihasilkan berupa teks error. Penentuan hasil output ini
sendiri dapat ditentukan dengan penentuan nilai karakteristik unik dari tiap-tiap jenis uang
logam rupiah yang nilai-nilainya akan dievaluasi di bab berikutnya. Flowchart Look Up
Table (LUT) dapat dilihat pada gambar 3.11.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Mulai
Input : Citra
Pre-Processing
Perbandingan Range Data
Nilai R dan L Foreground
Citra Koin
Jika Nilai R&L Data
Input Berada Pada
Range Uang 1000?
Ya
Uang
Koin
1000
Tidak
Jika Nilai R&L Data
Input Berada Pada
Range Uang 500?
Ya
Uang
Koin 500
Output :
Hasil (Teks)
Tidak
Jika Nilai R&L Data
Input Berada Pada
Range Uang 200?
Ya
Uang
Koin 200
Tidak
Jika Nilai R&L Data
Input Berada Pada
Range Uang 100?
Uang
Koin 100
Ya
Tidak
Data Tidak Dikenali
atau Error
Gambar 3.11. Flowchart Proses Mencari Nilai Look Up Table di MATLAB
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
3.4. Pengujian Pengenalan Koin
3.4.1. Pengujian Secara Real Time
Untuk pengujian secara real time, nantinya akan diakses melalui GUI (Graphical
User Interface) yang dimana dapat dilihat bentuk perancangannya pada sub-bab
selanjutnya. Untuk memulai pengujian, pertama-tama dengan menekan tombol “Aktifkan
Kamera” untuk mengaktifkan kamera webcam lalu setelah itu dengan menekan tombol
“Ambil Gambar” untuk mengambil gambar citra koin, setelah itu dengan menekan tombol
“Resize” untuk mengatur ulang ukuran gambar citra koin. Terakhir dengan menekan
tombol “Proses” untuk melakukan proses pengenalan koin dengan melakukan prosesproses pengenalan yang sudah dijelaskan diatas dan tombol keluar untuk menghentikan
program yang telah berjalan. Hasil output dari GUI ini berupa proses siap pengambilan
gambar pada jendela “kamera”, hasil pengambilan gambar kamera webcam pada jendela
“Hasil Capture”, hasil ubah ukuran gambar yang telah diambil pada jendela “Resizing”,
dan terakhir hasil keluaran pengenalan koin dalam bentuk teks pada jendela “Pengenalan
Koin (Teks)”. Direncanakan pada pengujian ini akan diambil 40 kali sample pengujian
data (untuk uang logam rupiah kondisi bagus dan kondisi lecet pada posisi bolak-balik ).
Perancangan Tampilan GUI
Contoh perancangan tampilan GUI pada MATLAB yang akan dibuat dapat dilihat
pada gambar 3.12.
Gambar 3.12. Tampilan GUI Sistem Pengenalan Uang Logam Rupiah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Flowchart Pengujian Secara Real Time
Mulai
Aktifkan Kamera
Ambil Gambar
Rezise
Proses
Pengenalan
Koin (Teks)
Selesai
Gambar 3.13. Flowchart Pengujian Secara Real Time
3.4.2. Pengujian Secara Non Real Time
Untuk pengujian secara non-real time, pada prinsipnya proses-proses yang dilalui
sama dengan pengujian secara real time. Namun proses hasil Pre-processing dan LUT
akan ditampilkan secara manual melalui figure pada MATLAB. Direncanakan pada
pengujian ini akan diambil 40 kali sample pengujian data (untuk uang logam rupiah
kondisi bagus dan kondisi lecet pada posisi bolak-balik).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
3.5. Analisis Data Pengujian
Dalam menghitung besar tingkat pengenalannya, pola persamaan yang digunakan
ialah sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV
HASIL DAN PEMBAHASAN
Pada bab ini akan membahas mengenai hasil pengamatan dari pengenalan nominal
uang logam rupiah (bagian depan dan bagian belakang) berdasarkan komponen warna
saturasi dan value dari HSV dan luasannya berdasarkan program yang telah dibuat dan
diambil datanya. Data yang telah diambil tadi dianalisa untuk dijadikan acuan untuk proses
pengenalan uang logam rupiah. Kemudian hasilnya akan dianalisa apakah sudah sesuai
dengan hasil perancangan atau tidak. Program yang dibuat dikategorikan menjadi 2 bagian
yaitu program pengenalan nilai nominal uang logam rupiah secara non real-time dan realtime. Program pengenalan nilai nominal uang logam rupiah secara non-real time ini sendiri
merupakan program yang dibuat sebagai landasan dalam pembuatan program pengenalan
nilai nominal uang logam rupiah secara real-time, dan dibagi menjadi 2 program utama
yakni pertama program yang dibuat untuk mengumpulkan data referensi citra uang logam
rupiah dan program kedua yang dipakai untuk pengenalan nilai nominal uang logam rupiah
secara non-real time dalam menentukan nilai nominal uang logam rupiah. Dalam
penelitian ini, objek yang dipakai sebagai bagian dari penelitan yaitu uang logam rupiah
dengan kondisi bagus dan kondisi lecetyang dapat dilihat salah satu contohnya pada
gambar 4.1.
Kondisi bagus
Kondisi lecet
Gambar 4.1. Contoh Perbandingan Kondisi Uang Logam 100 Rupiah
36
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Spesifikasi laptop yang digunakan dalam pengujian software pengenalan nilai
nominal uang logam rupiah ini adalah sebagai berikut :
1. Merk dan Tipe Laptop
: Asus A456UR Series
2. Prosesor
: Intel Core i5-7200U, up to 3.18 Ghz
3. RAM
: 12 GB
4. Versi Matlab
: R2012a 64 bit
5. Sistem Operasi
: Windows 10 Pro 64 bit
4.1. Menjalankan Program Pengenalan Uang Logam Rupiah
4.1.1 Non Real-Time
Pada program non real-time yang sudah dibuat yakni program untuk mengumpulkan
data referensi citra uang logam rupiah dan program yang dipakai untuk pengenalan nilai
nominal uang logam rupiah secara non-real time ini pada dasarnya untuk menjalankan
kedua program ini mempunyai cara yang sama, tetapi yang menjadi perbedaan hanya pada
nama file kedua program untuk mengeksekusi kode program yang sudah dibuat tersebut
yakni program non real-time untuk mengumpulkan data referensi citra uang logam rupiah
pada tugas akhir ini diberi nama koin2.m sedangkan program yang dipakai untuk
pengenalan nilai nominal uang logam rupiah secara non-real time diberi nama pkoin2.m.
Proses untuk menjalankan program pengenalan uang logam rupiah secara non real-time
adalah sebagai berikut :
1.
Setelah lokasi program sudah ditentukan, untuk menjalankan program yang sudah
dibuat bisa melalui box current folder yang terdapat pada sisi sebelah kiri tampilan
utama MATLAB dengan mengklik mouse kiri 1 kali
nama program yang akan
dijalankan yakni koin2.m dan pkoin2.m lalu dengan menekan tombol f9 pada
keyboard untuk menjalankan program ataupun menuliskan kata koin2 dan pkoin2
melalui box command prompt pada tampilan utama MATLAB untuk menjalankan
program. Proses ini dapat dilihat pada gambar 4.5 berikut ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Gambar 4.2. Opsi Menjalankan Program Non Real-Time Pada MATLAB
2.
Setelah melakukan langkah nomor 4 diatas, maka program yang sudah dibuat akan
running setelah beberapa detik. Berikut ini merupakan contoh hasil output proses
program non real-time koin2.m dan pkoin2.m yang sudah dibuat yang ditampilkan
pada figure MATLAB dan hasil keluaran teks yang ditampilkan pada command
window MATLAB yang bisa dilihat pada gambar 4.3 sampai gambar 4.6.
Gambar 4.3. Citra Bagian Depan Koin Hasil Program koin2.m
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Gambar 4.4. Citra Bagian Belakang Koin Hasil Program koin2.m
Gambar 4.5. Hasil Keluaran Teks pada Command Window MATLAB Hasil Program
koin2.m
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Gambar 4.6. Hasil Keluaran Teks pada Command Window MATLAB Hasil Program
pkoin2.m
Pada gambar 4.5 dan gambar 4.6 diatas, gambar citra pada baris pertama menyatakan
gambar citra asli dari hasil pengambilan gambar, baris kedua menyatakan gambar citra asli
hasil konversi HSV pada bagian saturasi, baris ketiga menyatakan gambar citra asli hasil
konversi HSV pada bagian value, baris keempat menyatakan gambar citra threshold dari
bagian saturasi HSV, baris kelima menyatakan gambar citra threshold dari bagian value
HSV, baris keenam menyatakan gambar hasil perbandingan antara threshold saturasi dan
threshold value, sedangkan baris ketujuh menyatakan gambar hasil segmentasi luasan citra
uang logam rupiah.
4.1.2 Real-Time
1.
Pertama ulangi langkah 1 sampai 4 sama seperti langkah-langkah untuk menjalankan
program secara non real-time, namun nama program yang dipakai untuk
menjalankan program secara non real-time, memakai program dengan nama
Real_Time.m. Proses ini dapat dilihat pada gambar 4.7 berikut ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Gambar 4.7. Opsi Menjalankan Program Real-Time Pada MATLAB
2.
Setelah melakukan langkah diatas, maka program yang sudah dibuat akan running
setelah beberapa detik dan GUI untuk program real-time yang sudah dibuat akan
tertampil pada pop-up window baru di MATLAB dan siap untuk digunakan. Berikut
ini merupakan tampilan GUI program real-time pada gambar 4.8.
Gambar 4.8. Tampilan GUI Program Real-Time
Pada gambar 4.8 diatas, GUI yang dibuat memakai beberapa axes, push button serta
radio button untuk menjalankan kode fungsi program real-time yang sudah dibuat. Berikut
ini merupakan penjelasan singkat mengenai fungsi-fungsi tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
a)
Push button “Atur Kamera” berfungsi untuk mengecek status kamera dan memilih
jenis serta resolusi dari kamera yang akan dipakai.
b)
Push button “Hidupkan Kamera” berfungsi untuk menghidupkan kamera yang sudah
ditentukan yang akan dipakai dan nanti akan ditampilkan axes “Kamera”.
c)
Push button “Ambil Gambar 1” dan “Ambil Gambar 2” berfungsi untuk mengambil
snapshot gambar dari kamera dan nanti akan ditampilkan pada axes “Gambar 1” dan
axes “Gambar 2”
d)
Push Button “Resizing_1” dan “Resizing_2” berfungsi untuk mengecilkan ukuran
gambar 1 dan gambar 2 menjadi ukuran yang sudah ditentukan dan hasilnya akan
ditampilkan pada axes “Resizing gambar 1” dan axes “Resizing gambar 2”.
e)
Push button “save 1”, “save 2”, “save 3”, dan “save 4” berfungsi untuk menyimpan
gambar yang sudah diproses dalam bentuk ekstensi file .jpg ke storage utama
perangkat yang dipakai agar bisa dipakai untuk mengecek apakah proses yang sudah
dilakukan bernilai benar atau salah, juga, serta gambar yang sudah disimpan dapat
dipakai untuk proses program non real-time yang sudah dibuat. Gambar yang diambil
untuk disimpan sesuai dengan letak posisi push button untuk setiap axes dibawah
posisi push button tersebut pada tampilan GUI yang sudah dibuat.
f)
Push button “Proses” berfungsi untuk menjalankan kode program pemrosesan utama
pengenalan uang logam rupiah secara real-time.
g)
Radio button “Gambar 1” dan radio button “Gambar 2” berfungsi untuk menjalankan
kode program look-up table untuk menentukan nilai uang logam rupiah yang akan
diproses untuk dikenali nilainya.
h)
Push button “Reset” berfungsi untuk mengembalikkan status GUI ke kondisi awal
ketika GUI baru dijalankan pertama kali.
i)
Push button “Exit” berfungsi untuk keluar dari GUI dan kembali ke tampilan utama
MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Gambar 4.9. Contoh Ketika GUI dijalankan untuk Pengujian Koin 100 Rupiah
4.2. Penjelasan Listing Program
4.2.1. Penjelasan Listing Program Secara Non Real-Time
Pada pengenalan nilai nominal uang logam rupiah secara non real-time, ada 2
program yang dibuat yakni pertama program yang dibuat untuk mengumpulkan data
referensi citra uang logam rupiah dengan nama program koin2.m dan program kedua yang
dipakai untuk pengenalan nilai nominal uang logam rupiah secara non-real time dalam
menentukan nilai nominal uang logam rupiah dengan nama program pkoin2.m.
Pengambilan data citra uang logam rupiah menggunakan kamera webcam logitech HD
webcam C270 dengan perangkat lunak logitech webcam software untuk mengambil data
citra uang logam rupiah. Semua hasil proses yang sudah dilakukan akan ditampilkan pada
fiture dan command window yang terdapat di MATLAB. Berikut ini merupakan jenis
webcam yang dipakai untuk pengambilan citra uang logam rupiah yang ditunjukkan pada
gambar 4.10.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Gambar 4.10. Logitech Webcam Software tampilan Pengambilan Gambar Koin
Pada proses pengambilan gambar yang ditunjukkan pada gambar 4.10 diatas yang
sudah dilakukan menggunakan software logitech webcam, pengaturan yang dipakai untuk
pengambilan gambar yaitu menggunakan mode standard dan resolusi high. Berikut ini
merupakan penjelasan sintaks program pengenalan nilai nominal uang logam rupiah secara
non real time.
Koin2.m
a.
Membaca Citra Gambar Koin dan Proses Resizing pada MATLAB
Sintaks program pada gambar 4.11 berikut ini mengacu pada gambar 3.9 dan 3.10
yang terdapat pada BAB III.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Gambar 4.11. Listing Program Koin2.m Untuk Membaca dan Resizing Gambar pada
MATLAB
Pada gambar 4.11 diatas, kode program imread merupakan kode fungsi bawaan
MATLAB yag dipakai untuk membaca gambar yang sudah diambil untuk bisa dikenali oleh
MATLAB dalam bentuk matriks sehingga dapat diproses lebih lanjut. Gambar koin yang
diambil adalah gambar dengan format gambar berjenis RGB (Red, Green, dan Blue)
Sedangkan kode program imresize juga merupakan kode fungsi bawaan MATLAB yang
berfungsi untuk mengubah ukuran gambar. Imresize digunakan untuk mengubah nilai data
yang dibaca agar mudah untuk diproses. Pada proses Imresize ini, ditetapkan nilai sebesar
0,25 yang artinya bahwa gambar yang dibaca diperkecil ukurannya ¼ kali dari ukuran
gambar yang sebenarnya.
b.
Proses Konversi Citra RGB ke HSV
Sintaks program pada gambar 4.12 berikut ini mengacu pada gambar 3.11 yang
terdapat pada BAB III.
Gambar 4.12. Listing Program Koin2.m Untuk Konversi Citra RGB ke HSV
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Pada gambar 4.12 diatas, terdapat kode program rgb2hsv yang merupakan kode
fungsi bawaan MATLAB yag dipakai untuk mengkonversi format gambar RGB menjadi
format gambar HSV.
c.
Segmentasi Citra Koin Bagian Foreground
Sintaks program pada gambar 4.13 berikut ini mengacu pada gambar 3.12 yang
terdapat pada BAB III.
Gambar 4.13. Listing Program Koin2.m Untuk Pre-Processing Foreground Untuk S&V
Koin
Pada gambar 4.13 diatas, format gambar HSV yang sudah dikonversi terdiri dari 3
komponen ruang warna yakni hue,saturation, dan value. Pada MATLAB, untuk mengambil
salah satu komponen warna tersebut yang ingin diproses dapat dilakukan dengan format
syntax hsv(:,:,1) untuk mengambil nilai komponen warna hue, hsv(:,:,2) untuk mengambil
nilai komponen warna saturation atau saturasi, dan hsv(:,:,3) untuk mengambil nilai
komponen warna value. Pada proses ini, hanya diambil nilai komponen warna saturasi dan
value-nya saja karena komponen warna hue adalah kombinasi dari warna-warna dasar
yakni warna merah,kuning,magenta,biru,cyan,dan hijau yang tidak terdapat pada warna
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
perak yang terdapat pada uang logam rupiah dengan komponen warna dasar perak
sehingga nantinya tidak terdefinisi atau tidak terdeteksi nilai hue-nya sehingga komponen
warna hue tidak digunakan. Nilai tsat dan tval merupakan threshold dari nilai saturasi dan
value dengan nilai threshold yang ditetapkan untuk pengambilan data yaitu dengan nilai
threshold saturasi dan threshold value yaitu sebesar 0,2 dan 0,3 untuk mendapatkan hasil
yang optimal. Kode depan=and(tsat,tval); digunakan untuk memisahkan gambar bagian
foreground dengan background. Fungsi kode sum merupakan fungsi bawaan MATLAB
yang dipakai untuk proses penjumlahan, yang dimana dipakai untuk menjumlahkan
matriks dari nilai yang akan dicari. Penggunaan kode sum(sum(objek yang dicari)) dipakai
untuk menjumlahkan matriks dengan hasil keluaran matriks 1x1 agar memudahkan proses
dalam pengambilan referensi data untuk pengenalan nilai nominal uang logam rupiah.
Hasil penentuan nilai tsat dan tval secara lengkap dapat dilihat di halaman lampiran.
d.
Segmentasi Luasan Citra Koin
Sintaks program pada gambar 4.14 berikut ini mengacu pada gambar 3.13 yang
terdapat pada BAB III.
Gambar 4.14 Listing Program Koin2.m Untuk Pre-Processing Foreground Untuk Luasan
Koin
Pada gambar 4.14 diatas, untuk mencari nilai luasan koin, nilai threshold yang
dipakai adalah sebesar 0,35 dari nilai value-nya untuk mendapatkan hasil yang optimal.
Kode imfill merupakan kode fungsi bawaan matlab untuk merekonstruksi kembali citra
yang akan diproses. Kode imfill pada mode „holes‟ dipakai karena gambar yang ingin
direkonstruksi nantinya berupa gambar yang berbentuk lingkaran. Cara kerja dari imfill
holes yaitu gambar koin yang sudah direkonstruksi akan diseleksi objek foreground dari
background-nya. Proses seleksi objek foreground dari background yaitu dengan mengubah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
nilai piksel 0 menjadi piksel 1 pada area warna hitam yang dikelilingi oleh warna putih.
Hasil dari proses ini yaitu warna hitam digambarkan sebagai background dan warna putih
digambarkan sebagai objek foreground. Setelah itu, luasan dari objek foreground dapat
dihitung dengan menjumlahkan nilai-nilai piksel yang terdapat dalam citra koin yang
sudah melalui proses seleksi objek foreground dari background menggunakan fungsi sum
sehingga didapatkan nilai luasan objek foreground citra koin untuk setiap jenis-jenis uang
logam rupiah yang ingin dicari luasannya. Kode fungsi round merupakan kode fungsi
bawaan MATLAB yang dipakai untuk membulatkan nilai yang didapat agar mudah untuk
diambil datanya. Hasil penentuan nilai tval untuk mencari luasan koin secara lengkap dapat
dilihat di halaman lampiran. Berikut ini merupakan penjelasan proses kode program imfill
yang ditunjukkan pada gambar 4.15 dan penerapan fungsi imfill yang ditunjukkan pada
gambar 4.16 dan gambar 4.17.
Gambar 4.15. Penjelasan fungsi Imfill Jika Ditinjau Dari Matriks
Gambar 4.16. Contoh Penerapan Fungsi Imfill Pada Koin Bagian Depan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Gambar 4.17. Contoh Penerapan Fungsi Imfill Pada Koin Bagian Belakang
Berikut ini merupakan output dari figure dan output dari command window program
koin2.m yang terdapat di MATLAB untuk pre-processing foreground untuk s&v koin
dengan nilai threshold saturasi dan threshold value yaitu sebesar 0,2 dan 0,3 dan preprocessing foreground untuk luasan koin dengan nilai threshold value yaitu sebesar 0,35
yang ditunjukkan pada gambar 4.18, gambar 4.19 dan gambar 4.20 yang sudah diberi
batasan pengenalan.
Gambar 4.18. Output Figure Program Koin2.m Untuk Koin Bagian Depan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Gambar 4.19. Output Figure Program Koin2.m Untuk Koin Bagian Belakang
Gambar 4.20. Output Command Window Program Koin2.m
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Keterangan untuk gambar 4.18, gambar 4.19 diatas untuk urutan nilai koin dari kiri
ke kanan berdasarkan gambar diatas yakni uang logam rupiah 100 rupiah perak, 200 rupiah
perak, 500 rupiah perak, 500 rupiah kuningan, 1000 rupiah perak-kuningan dan 1000
rupiah perak adalah sebagai berikut :
ï‚·
Pada gambar 1 sampai 6 terdiri dari 6 citra koin berformat RGB
ï‚·
Pada gambar 7 sampai 12 terdiri dari 6 citra koin dengan komponen warna saturasi dari
HSV
ï‚·
Pada gambar 13 sampai 18 terdiri dari 6 citra koin dengan komponen warna value dari
HSV
ï‚·
Pada gambar 19 sampai 24 terdiri dari 6 citra koin dengan nilai threshold saturasi 0.2
ï‚·
Pada gambar 25 sampai 30 terdiri dari 6 citra koin dengan nilai threshold value 0.3
ï‚·
Pada gambar 31 sampai 36 terdri dari 6 citra koin dengan nilai rasio antara foreground
dan background
ï‚·
Pada gambar 37 sampai 42 terdiri dari 6 citra koin dengan dengan hasil aplikasi fungsi
imfill
Hasil Data Referensi Citra Koin Untuk Look-Up Table
Dari pemrosesan program gambar koin uang logam rupiah yang sudah dilakukan
sebanyak 40 kali pengambilan data (20 kali koin bagian depan dan 20 kali koin bagian
belakang), dengan ketinggian kamera webcam pengambilan data yang sudah ditetapkan
yakni setinggi 15 cm dari atas bidang pengambilan data, didapatkan data-data yang
nantinya akan dipakai sebagai acuan untuk look up table dalam proses pengenalan nominal
uang logam rupiah. Tabel lengkap hasil data referensi citra koin yang sudah didapatkan
dapat dilihat pada halaman lampiran. Berikut ini merupakan salah satu contoh tabel hasil
data referensi citra koin yang sudah didapat yang ditunjukkan pada tabel 4.1 dan tabel 4.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Tabel 4.1. Hasil pengambilan data uang koin bagian depan
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-1
data ke-2
data ke-3
data ke-4
data ke-5
100
0,9230
0,9436
0,7841
0,7017
0,8893
Rupiah
&
&
&
&
&
29,6800
29,7000
29,5400
28.8900
28.8000
200
0,9171
0,9151
0,9203
0,7120
0,8663
Rupiah
&
&
&
&
&
31,2900
31,0700
31,8900
31,0200
31,2200
500
0,9108
0,9177
0,8906
0,8985
0,8795
Rupiah
&
&
&
&
&
(Perak)
34,1900
34,2000
34,1200
34,2000
34,2500
500
0,4694
0,4358
0,4198
0,4596
0,4493
Rupiah
&
&
&
&
&
(Kuningan)
30,7800
30,0100
30,6900
30,5300
30,6400
1000
0,6466
0,6399
0,6512
0,5502
0,5577
Rupiah
&
&
&
&
&
(Perak)
30,7500
30,5900
30,3100
30,3000
30,2100
1000
0,4917
0,4786
0,4171
0,4228
0,4185
Rupiah
&
&
&
&
&
(Kuningan-
31,8600
31,8100
32,2600
32,2000
31,8900
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Tabel 4.2. Hasil pengambilan data uang koin bagian belakang
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-1
data ke-2
data ke-3
data ke-4
data ke-5
0,9230
0,9436
0,7841
0,7217
0,7893
&
&
&
&
&
29,6800
29,7000
29,5400
28,8820
28,8210
0,9171
0,9151
0,9203
0,7120
0,8863
&
&
&
&
&
31,2900
31,0700
31,8900
31,1200
31,2240
500 Rupiah
0,9108
0,9177
0,8906
0,9985
0,8825
(Perak)
&
&
&
&
&
34,1900
34,2000
34,1200
34,2124
34,3450
500 Rupiah
0,4694
0,4358
0,4198
0,4596
0,4493
(Kuningan)
&
&
&
&
&
30,7800
30,0100
30,6900
30,5300
30,6400
1000 Rupiah
0,6466
0,6399
0,5512
0,5702
0,5377
(Perak)
&
&
&
&
&
30,7500
30,5900
30,3100
30,3000
30,2100
1000 Rupiah
0,4917
0,4786
0,4121
0,4128
0,4185
(Kuningan-
&
&
&
&
&
Perak)
31,8600
31,8100
32,2600
32,2000
31,8900
100 Rupiah
200 Rupiah
Dari tabel 4.1 dan tabel 4.2 diatas, untuk uang koin 100 perak memiliki batasan nilai
rdv antara 0,7000 sampai 0,9799 sedangkan batasan nilai luasan antara 28,8000 sampai
29,9999. Untuk uang koin 200 perak memiliki batasan nilai rdv antara 0,7000 sampai
0,8100 sedangkan batasan nilai luasan antara 31,0000 sampai 32,5555. Untuk uang koin
500 perak memiliki batasan nilai rdv antara 0,8555 sampai 0,9555 sedangkan batasan nilai
luasan antara 33,9000 sampai 34,9999. Untuk uang koin 500 kuningan memiliki batasan
nilai rdv antara 0,4000 sampai 0,4999 sedangkan batasan nilai luasan antara 30,0000
sampai 30,9999. Untuk uang koin 1000 perak memiliki batasan nilai rdv antara 0,5000
sampai 0,8100 sedangkan batasan nilai luasan antara 30,0000 sampai 30,9999. Untuk uang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
koin 1000 perak-kuningan memiliki batasan nilai rdv antara 0,4000 sampai 0,4999
sedangkan batasan nilai luasan antara 32,0000 sampai 32,9999.
Pkoin2.m
Pada program pkoin2.m, sintaks program yang digunakan hampir mirip seperti kode
program koin2.m hanya saja pada program pkoin2.m hanya berfokus pada output teks hasil
pengenalan nilai nominal uang logam rupiah yang ditampilkan pada tampilan command
window.
a.
Listing Program Pkoin2.m Untuk Look-Up Table
Gambar 4.21. Listing Program Pkoin2.m Untuk Look-Up Table
Pada gambar 4.22 diatas, listing program yang digunakan untuk look-up table
menggunakan sintaks statement if…elseif…else untuk memilih salah satu dari beberapa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
blok kode pernyataan yang akan dieksekusi. Berikut ini merupakan sintaks dari statement
if…elseif…else yang ditunjukkan pada gambar 4.22.
Gambar 4.22. Sintaks Program Pkoin2.m Untuk Look-Up Table
Berikut ini merupakan contoh output dari program pkoin2.m yang ditunjukkan pada
gambar 4.23.
Gambar 4.23. Output Program Pkoin2.m
4.2.2. Penjelasan Listing Program Secara Real-Time
Pada program pengenalan nilai nominal uang logam rupiah secara real-time, program
yang digunakan bernama “Real_Time.m” dengan nama GUI yang sudah dibuat dengan
nama “Real_Time.fig”. Untuk membuat GUI pada MATLAB menggunakan bantuan fungsi
guide yang terdapat di MATLAB. Pada GUI yang sudah dibuat, terdapat 13 push button
untuk menjalankan program yang dibuat ketika ditekan, 5 axes untuk menampilkan gambar
ataupun video hasil output program, 1 static text untuk menampilkan karakter kata ataupun
kalimat hasil output program, serta 2 radio button untuk menjalankan program ketika saat
kondisi “di-switch-kan” yang dipakai untuk ketika program Real_Time.m dijalankan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Berikut ini merupakan penjelasan keseluruhan dari GUI yang sudah dibuat untuk
menjalankan program pengenalan nilai nominal uang logam rupiah secara real-time.
a.
Push Button “Atur Kamera”
%Menjalankan program tombol button "Atur Kamera"
% --- Executes on button press in pushbutton1.
function pushbutton10_Callback(hObject, eventdata,
handles)
% hObject
handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
% handles
structure with handles and user data
(see GUIDATA)
global IA DeviceID Format
IAHI=imaqhwinfo;
IA=(IAHI.InstalledAdaptors);
D=menu('Pilih Perangkat Anda:',IA);
if isempty(IA)||D==0
msgbox({'Tidak Ada Perangkat Yang terinstal atau
yang terdeteksi',...
'Coba',...
'pasang dulu perangkat anda sebelum
menyalakan MATLAB'})
return
end
IA=char(IA);
IA=IA(D,:);
IA(IA==' ')=[];
x=imaqhwinfo(IA);
try
DeviceID=menu('Pilih ID Perangkat
Anda',x.DeviceIDs);
F=x.DeviceInfo(DeviceID).SupportedFormats;
nF=menu('Pilih Format Video Anda',F);
Format=F{nF};
catch
warndlg({'Coba Pilih ID Perangkat Lain ';...
'ID Perangkat Ini Tidak Dikenali
MATLAB)'})
return
end
Gambar 4.24. Listing Program Real_Time.m Untuk Push Button “Atur Kamera”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Pada gambar 4.24 diatas mengacu pada gambar 3.5 yang terdapat pada bab III. Pada
push
button
ini
terdapat
sintaks
imaqhinfo,
InstalledAdaptors,
isempty,DeviceIDs,SupportedFormats, serta warndlg. Sintaks imaqhinfo berfungsi untuk
menampilkan informasi hardware yang dapat dipakai pada MATLAB. Berikut ini
merupakan tampilan informasi yang dapat dilihat pada sintaks imaqhwinfo yang
ditunjukkan pada gambar 4.25.
Gambar 4.25. Sintaks Imaqhwinfo
Pada gambar 4.25 diatas, pada bagian InstalledAdaptors terdapat dua informasi untuk
melihat ketersediaan hardware yang aktif pada MATLAB. Untuk melihat ketersediaan
informasi pada hardware yang bisa dipakai untuk mengambil gambar ataupun video maka
dipilih opsi winvideo untuk untuk melihat informasi yang dimaksud. Berikut ini merupakan
tampilan informasi dari sintaks yang dimaksud yang ditunjukkan pada gambar 4.26.
Gambar 4.26. Informasi dari Winvideo
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Pada gambar 4.26 diatas, terdapat 6 perangkat yang teridentifikasi oleh MATLAB.
Untuk mengakses informasi dari tiap-tiap ID perangkat tersebut, dapat dilakukan dengan
mengakses sintaks DeviceInfo. Pada penelitian ini webcam yang dipakai teridentifikasi
pada perangkat ID nomor 1. Berikut ini merupakan informasi yang dimaksud yang
ditunjukkan pada gambar 4.27.
Gambar 4.27. Informasi Webcam pada MATLAB
Pada gambar 4.27 diatas, default format pengambilan gambar dari perangkat webcam
yang dipakai yaitu RGB24_640x480. Untuk mengakses keseluruhan informasi tentang
berbagai pilihan format yang didukung yang disediakan oleh perangkat webcam dapat
diakses dengan menggunakan sintaks SupportedFormats. Berikut ini merupakan tampilan
informasi mengenai informasi yang dimaksud yang ditunjukkan pada gambar 4.28.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Gambar 4.28. Informasi Supported Formats Webcam
Pada gambar 4.28 diatas, terlihat bahwa ada beberapa pilihan format yang didukung
yang dapat dipakai untuk pengambilan gambar maupun video. Pada penelitian ini
menggunakan menggunakan format RGB24_1280x960. Berikut ini merupakan tampilan
yang terdapat pada GUI sesuai dengan penjelasan diatas yang ditunjukkan pada gambar
4.29,4.30,4.31,4.32 dan gambar 4.33.
Gambar 4.29. Tampilan Imaqhinfo.InstalledAdaptor Pada GUI MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
Gambar 4.30. Tampilan Imaqhinfo.DeviceIDs Pada GUI MATLAB
Gambar 4.31. Tampilan Imaqhinfo.SupportedFormats Pada GUI MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Gambar 4.32. Tampilan Message Box Pada GUI MATLAB Untuk Push Button “Atur
Kamera”
Gambar 4.33. Tampilan Warning Box Pada GUI MATLAB Untuk Push Button “Atur
Kamera”
b.
Push Button “Hidupkan Kamera”
%Menjalankan program tombol button "Hidupkan Kamera"
% --- Executes on button press in pushbutton14.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version
of MATLAB
% handles
structure with handles and user data (see
GUIDATA)
global IA DeviceID Format
try
VidObj= videoinput(IA, DeviceID, Format);
handles.VidObj=VidObj;
vidRes = get(handles.VidObj, 'VideoResolution');
nBands = get(handles.VidObj, 'NumberOfBands');
axes(handles.axes1)
hImage = image( zeros(vidRes(2), vidRes(1), nBands) );
preview(handles.VidObj, hImage)
catch
msgbox({'Tolong
Atur Kamera
Anda
Terlebih
Dahulu.','
'})
Gambar 4.34. Listing Program
Real_Time.m
Untuk
Push Button
“Hidupkan Kamera”
end
guidata(hObject, handles);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Pada gambar 4.34 diatas, terdapat sintaks program global yang menyatakan bahwa
nilai-nilai yang ditandai dapat dijalankan pada seluruh frame GUI program Real_Time.fig.
Program Push Button “Hidupkan Kamera” ini disisipkan pada sintaks try and catch yang
artinya jika sintaks program yang terdapat pada sintaks try bernilai benar maka output
program yang ditampilkan juga berasal dari sintaks try. Sintaks program di dalam sintaks
try merupakan sintaks yang sesuai dengan pengaturan default bagian dokumentasi help
dari MATLAB. Dalam hal ini output program akan ditampilkan pada tampilan axes1 yang
diberi nama “kamera”. Sedangkan jika sintaks program yang pada sintaks try bernilai salah
maka sintaks program yang terdapat pada sintaks catch yang akan dijalankan dan
ditampilkan. Output program yang terdapat pada sintaks catch berupa tampilan box pesan.
Berikut ini tampilan dari box pesan yang dimaksud yang ditunjukkan pada gambar 4.35.
Gambar 4.35. Tampilan Message Box Untuk Push Button “Hidupkan Kamera”
c.
Push Button “Ambil Gambar 1” dan “Ambil Gambar 2”
%Menjalankan program tombol button "Ambil Gambar
1"
% --- Executes on button press in pushbutton5.
function pushbutton2_Callback(hObject, eventdata,
handles)
% hObject
handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
% handles
structure with handles and user data
(see GUIDATA)
clear global s1;
clear global video;
global s1
global video
try 4.36. Listing Program Real_Time.m Untuk Push Button “Ambil Gambar 1”
Gambar
video=handles.VidObj;
s1=getsnapshot(video);
axes(handles.axes2)
imshow(s1);
catch
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
global video
try
video=handles.VidObj;
s1=getsnapshot(video);
axes(handles.axes2)
imshow(s1);
catch
end
(Lanjutan) Gambar 4.36. Listing Program Real_Time.m Untuk Push Button “Ambil
Gambar 1”
%Menjalankan program tombol button "Ambil Gambar
2"
% --- Executes on button press in pushbutton5.
function pushbutton3_Callback(hObject, eventdata,
handles)
% hObject
handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
% handles
structure with handles and user data
(see GUIDATA)
clear global s2
global video s2
try
video=handles.VidObj;
s2=getsnapshot(video);
axes(handles.axes3)
imshow(s2);
catch
end
Gambar 4.37. Listing Program Real_Time.m Untuk Push Button “Ambil Gambar 2”
Pada gambar 4.36 dan gambar 4.37 diatas, terdapat pada sintaks program getsnapshot
untuk mengambil cuplikan gambar dari video yang sedang berjalan. Gambar yang diambil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
akan ditampilkan pada tampilan axes2 dengan nama tampilan “Gambar 1” dan tampilan
axes3 dengan nama tampilan “Gambar 2” dengan menggunakan sintaks program imshow.
d.
Push Button “Resizing_1” dan “Resizing_2”
%Menjalankan program tombol button
"Resizing_1"
% --- Executes on button press in
pushbutton5.
function pushbutton4_Callback(hObject,
eventdata, handles)
% hObject
handle to pushbutton5 (see
GCBO)
% eventdata reserved - to be defined in a
future version of MATLAB
% handles
structure with handles and user
data (see GUIDATA)
global resize_1
global s1
try
resize_1=imresize(s1,0.25);
axes(handles.axes4)
imshow(resize_1);
catch
end
Gambar 4.38. Listing Program Real_Time.m Untuk Push Button “Resizing_1”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
%Menjalankan program tombol button "Resizing_2"
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata,
handles)
% hObject
handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
% handles
structure with handles and user data (see
GUIDATA)
global resize_2
global s2
try
resize_2=imresize(s2,0.25);
axes(handles.axes5)
imshow(resize_2);
catch
end
Gambar 4.39. Listing Program Real_Time.m Untuk Push Button “Resizing_2”
Pada gambar 4.38 dan gambar 4.39 diatas, terdapat sintaks program imresize yang
berfungsi untuk mengubah ukuran gambar. Pada penelitian ini gambar yang diambil
diubah ukurannya menjadi ¼ kali ukuran yang sebenarnya.
e.
Push Button”Proses”
%Menjalankan program tombol button "Proses"
global resize_1
global resize_2
global rdv1
global rdv2
global akoin1
global akoin2
%preprosesing gambar 1
hsv1=rgb2hsv(resize_1);
sat1=hsv1(:,:,2);
tsat1=sat1<0.1;
Gambar 4.40. Listing Program Real_Time.m Untuk Push Button “Proses”
val1=hsv1(:,:,3);
tval1=val1>0.3;
depan1=and(tsat1,tval1);
sum1=sum(sum(depan1));
sum2=sum(sum(tval1));
rdv1=sum1/sum2;
skoin1=val1>0.3;
skoin1=imfill(skoin1,'holes');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
tsat1=sat1<0.1;
val1=hsv1(:,:,3);
tval1=val1>0.3;
depan1=and(tsat1,tval1);
sum1=sum(sum(depan1));
sum2=sum(sum(tval1));
rdv1=sum1/sum2;
skoin1=val1>0.3;
skoin1=imfill(skoin1,'holes');
akoin1=sum(sum(skoin1));
akoin1=round(akoin1/100);
%preprosing gambar2
hsv2=rgb2hsv(resize_2);
sat2=hsv2(:,:,2);
tsat2=sat2<0.1;
val2=hsv2(:,:,3);
tval2=val2>0.3;
depan2=and(tsat2,tval2);
sum3=sum(sum(depan2));
sum4=sum(sum(tval2));
rdv2=sum3/sum4;
skoin2=val2>0.3;
skoin2=imfill(skoin2,'holes');
akoin2=sum(sum(skoin2));
akoin2=round(akoin2/100);
Gambar 4.40. (Lanjutan) Listing Program Real_Time.m Untuk Push Button “Proses”
Pada gambar 4.40 diatas, proses dari push button “Proses” memiliki fungsi yang
sama dengan proses yang terdapat pada program non real-time koin2.m. preprosesing
gambar 1 untuk memproses gambar koin bagian depan dan preprosesing gambar 2 untuk
memproses gambar koin bagian belakang. Nilai-nilai global nantinya akan dipakai untuk
proses tahap selanjutnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
f.
Panel Group”Pilih Gambar”
%Panel Group Button "Pilih Gambar"
% --- Executes when selected object is changed in
uipanel10.
function uipanel10_SelectionChangeFcn(hObject,
eventdata, handles)
% hObject
handle to the selected object in uipanel10
% eventdata structure with the following fields (see
UIBUTTONGROUP)
%
EventName: string 'SelectionChanged' (read only)
%
OldValue: handle of the previously selected object
or empty if none was selected
%
NewValue: handle of the currently selected object
% handles
structure with handles and user data (see
GUIDATA)
global
global
global
global
rdv1
akoin1
rdv2
akoin2
switch get(eventdata.NewValue, 'Tag');
case 'radiobutton1'
rdv_1=rdv1
bkoin_1=akoin1
if rdv_1>=0.8555
if bkoin_1>=29.0000 && bkoin_1<=29.9999
nkoin='100';
elseif bkoin_1>=31.0000 && bkoin_1<=32.5555
nkoin='200';
elseif bkoin_1>=33.9000 && bkoin_1<=34.9999
nkoin='500';
else
nkoin='error1';
end
elseif rdv_1>=0.7000 && rdv_1<=0.8100
if bkoin_1>=28.8000 && bkoin_1<=29.9999
nkoin='100';
elseif bkoin_1>=30.0000 && bkoin_1<=30.9999
nkoin='1000';
elseif bkoin_1>=31.0000 && bkoin_1<=31.9999
Gambar 4.41. Listing Program
Real_Time.m Untuk Panel Group “Pilih Gambar”
nkoin='200';
else
nkoin='error2';
end
elseif rdv_1>=0.6000 && rdv_1<=0.6999
if bkoin_1>=30.0000 && bkoin_1<=30.9999
nkoin='1000';
else
nkoin='error3';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
switch get(eventdata.NewValue, 'Tag');
case 'radiobutton2'
rdv_2=rdv2
bkoin_2=akoin2
if rdv_2>=0.8555
if bkoin_2>=29.0000 && bkoin_2<=29.9999
nkoin='100';
elseif bkoin_2>=31.0000 &&
bkoin_2<=32.5555
nkoin='200';
elseif bkoin_2>=33.9000 &&
bkoin_2<=34.9999
nkoin='500';
else
nkoin='error1';
end
elseif rdv_2>=0.7000 && rdv_2<=0.8100
if bkoin_2>=28.8000 && bkoin_2<=29.9999
nkoin='100';
elseif bkoin_2>=30.0000 &&
bkoin_2<=30.9999
nkoin='1000';
elseif bkoin_2>=31.0000 &&
bkoin_2<=31.9999
nkoin='200';
else
nkoin='error2';
end
elseif rdv_2>=0.6000 && rdv_2<=0.6999
if bkoin_2>=30.0000 && bkoin_2<=30.9999
nkoin='1000';
else
nkoin='error3';
end
elseif rdv_2>=0.5000 && rdv_2<=0.5999
if bkoin_2>=30.0000 && bkoin_2<=32.9999
nkoin='1000';
else
nkoin='error4';
end
elseif rdv_2>=0.4000 && rdv_2<=0.4999
Gambar 4.41. (Lanjutan)
Listing Program Real_Time.m
Untuk Panel Group “Pilih
if bkoin_2>=30.0000
&& bkoin_2<=30.9999
nkoin='500';
Gambar”
elseif bkoin_2>=32.0000 &&
bkoin_2<=32.9999
nkoin='1000';
else
nkoin='error5';
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Pada gambar 4.41 diatas, sintaks program yang dipakai berupa sintaks program lookup table yang dipakai pada program koin2.m. Pada gambar diatas juga terdapat sintaks
switch-case radio button yang dipakai untuk menjalankan program secara bergantian
ketika salah satu radio button dipilih. Perintah switch akan mengecek masukkan yang
diberikan apakah memenuhi kondisi atau tidak. Perintah case dipakai ketika user
memberikan masukkan maka akan masuk terlebih dahulu ke perintah switch lalu akan di
cek satu persatu di tiap case yang ada didalam switch. jika memenuhi syarat maka program
akan berjalan pada salah satu case yang syarat nya sudah terpenuhi tersebut. Output yang
dihasilkan akan ditampilkan pada static text yang sudah tersedia.
g.
Panel Group Button”Reset dan Exit”
%Menjalankan program tombol button "Reset"
try
delete(handles.VidObj)
global rdv1 rdv2 akoin1 akoin2
clear rdv1 rdv2 akoin1 akoin2
catch
end
axes(handles.axes1)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes2)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes3)
claGambar
reset4.42. Listing Program Real_Time.m Untuk Push Button “Reset”
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes4)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes5)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
axes(handles.axes3)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes4)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes5)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
set(handles.text1,'string','')
Gambar 4.42 (Lanjutan). Listing Program Real_Time.m Untuk Push Button “Reset”
%Menjalankan program tombol button "Exit"
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata,
handles)
% hObject
handle to pushbutton9 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
% handles
structure with handles and user data
Gambar
4.43. Listing Program Real_Time.m Untuk Push Button “Exit”
(see
GUIDATA)
close;
Pada gambar 4.42 diatas, fungsi push button “Reset” dipakai untuk mengulang
kembali proses pengenalan nilai nominal uang logam rupiah dari awal. Sedangkan pada
gambar 4.43 diatas fungsi push button “Exit” untuk keluar dari figur program
Real_Time.fig.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
h.
Push button “save 1”, “save 2”, “save 3”, dan “save 4”
%Menjalankan program tombol button "save 1"
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata,
handles)
% hObject
handle to pushbutton14 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
% handles
structure with handles and user data
(see GUIDATA)
[a,~,NotGet]=imputfile;
S=getimage(handles.axes2);
if(NotGet==0)
imwrite(S,a)
msgbox(strcat('Gambar Disimpan di :',a))
else
msgbox('Gambar Tidak Disimpan')
end
Gambar 4.44. Listing Program Real_Time.m Untuk Push Button “Save 1
%Menjalankan program tombol button "save 2"
[a,~,NotGet]=imputfile;
S=getimage(handles.axes3);
if(NotGet==0)
imwrite(S,a)
msgbox(strcat('Gambar Disimpan di :',a))
else
msgbox('Gambar Tidak Disimpan')
end
Gambar 4.45. Listing Program Real_Time.m Untuk Push Button “Save 2”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
%Menjalankan program tombol button "save 3"
[a,~,NotGet]=imputfile;
S=getimage(handles.axes4);
if(NotGet==0)
imwrite(S,a)
msgbox(strcat('Gambar Disimpan di :',a))
else
msgbox('Gambar Tidak Disimpan')
end
Gambar 4.46. Listing Program Real_Time.m Untuk Push Button “Save 3”
%Menjalankan program tombol button "save 4"
[a,~,NotGet]=imputfile;
S=getimage(handles.axes5);
if(NotGet==0)
imwrite(S,a)
msgbox(strcat('Gambar Disimpan di :',a))
else
msgbox('Gambar Tidak Disimpan')
end
Gambar 4.47. Listing Program Real_Time.m Untuk Push Button “Save 4”
Pada gambar 4.44 sampai gambar 4.47 diatas, fungsi push button save 1 sampai
save 4 digunakan untuk menyimpan data gambar dengan format .jpg atau format gambar
lainnya untuk dipakai pada program non real-time yang sudah dibuat dan juga dipakai
sebagai pengecekan hasil proses gambar yang sudah dilakukan, apakah sudah sesuai
dengan proses yang diinginkan atau tidak. Push button “save 1” dipakai untuk menyimpan
gambar yang terdapat pada axes2, Push button “save 2” dipakai untuk menyimpan gambar
yang terdapat pada axes3, Push button “save 3” dipakai untuk menyimpan gambar yang
terdapat pada axes4, dan Push button “save 4” dipakai untuk menyimpan gambar yang
terdapat pada axes5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
4.3. Analisis Hasil Data Pengujian
Dalam pengujian program secara real-time dan secara non real-time, seperti yang
telah disebutkan pada BAB III, pada pengujian ini telah diambil 40 kali sample pengujian
data (untuk uang logam rupiah kondisi bagus dan kondisi lecet pada posisi bolak-balik),
dengan 6 variasi jenis uang logam rupiah.
4.3.1. Analisis Hasil Data Pengujian Secara Real-Time
Dalam pengujian secara real time, data pengujian mengacu pada halaman lampiran.
Berikut ini hasil data yang diperoleh dari pengujian secara real time dari 6 variasi nilai
nominal uang logam rupiah, yaitu Rp.100,00 perak, Rp.200,00 perak, Rp.500,00 perak,
Rp.500,00 kuningan, Rp.1000,00 kuningan-perak, dan Rp.1000,00 perak, 2 variasi kondisi
uang kertas rupiah, dan 2 posisi peletakan uang kertas rupiah, besar tingkat pengenalan,
serta grafik besar tingkat pengenalannya.
Tabel 4.3. Tingkat Pengenalan Koin Program Real Time
Nominal Uang Logam Rupiah
Rp.100,00 Perak
Rp.200,00 Perak
Rp.500,00 Perak
Rp.500,00 Kuningan
Rp.1000,00 Kuningan-Perak
Rp.1000,00 Perak
Tingkat Pengenalan
Koin Bagus (%)
100
100
100
100
100
100
Tingkat Pengenalan Koin
Kurang Bagus(%)
80
95
90
95
85
75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
Tingkat Pengenalan Koin (%)
Tingkat Pengenalan Koin Program Real Time
120
100
80
60
40
20
0
Tingkat Pengenalan Koin Bagus (%)
Nominal Uang Logam Rupiah
Tingkat Pengenalan Koin Kurang
Bagus(%)
Gambar 4.48. Grafik Tingkat Pengenalan Koin Program Real Time
Berdasarkan grafik (Gambar 4.47) dan tabel hasil tingkat pengenalan secara real time
(Tabel 4.3) diatas, dapat dilihat bahwa program Real_Time.m untuk pengenalan nilai
nominal uang logam rupiah ini secara real-time ini mampu mengenali uang logam rupiah
dengan baik pada untuk variasi jenis koin yang dalam kondisi bagus yakni sebesar 100%
tingkat keberhasilan pengenalan, walaupun untuk variasi jenis koin yang dalam kondisi
kurang bagus masih memiliki beberapa kesalahan pada pengenalan koin dengan nilai
nominal 100 rupiah perak, 200 rupiah perak, 500 rupiah perak, dan 1000 rupiah perak. Dari
tabel dan grafik yang ada menunjukkan bahwa pencahayaan yang tepat dan stabil juga
dapat meminimalisir resiko kesalahan dalam pengenalan nilai nominal uang logam rupiah
sehingga proses pengenalan yang akan dilakukan lebih terjamin kebenarannya.
4.3.2. Analisis Hasil Data Pengujian Secara Non Real-Time
Dalam pengujian secara non real time, data pengujian mengacu pada halaman
lampiran dan data gambar yang dipakai untuk dianalisa diambil dari image acquisition
toolbox pada MATLAB. Berikut ini hasil data yang diperoleh dari pengujian secara non real
time dari 6 variasi nilai nominal uang logam rupiah, yaitu Rp.100,00 perak, Rp.200,00
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
perak, Rp.500,00 perak, Rp.500,00 kuningan, Rp.1000,00 kuningan-perak, dan Rp.1000,00
perak, 2 variasi kondisi uang kertas rupiah, dan 2 posisi peletakan uang kertas rupiah, besar
tingkat pengenalan, serta grafik besar tingkat pengenalannya.
Tabel 4.4. Tingkat Pengenalan Koin Program Non Real Time
Nominal Uang Logam Rupiah
Rp.100,00 Perak
Rp.200,00 Perak
Rp.500,00 Perak
Rp.500,00 Kuningan
Rp.1000,00 Kuningan-Perak
Rp.1000,00 Perak
Tingkat Pengenalan
Koin Bagus (%)
100
100
100
100
100
100
Tingkat Pengenalan Koin
Kurang Bagus(%)
80
95
90
95
85
75
Tingkat Pengenalan Koin (%)
Tingkat Pengenalan Koin Program Non Real Time
120
100
80
60
40
20
0
Tingkat Pengenalan Koin Bagus (%)
Nominal Uang Logam Rupiah
Tingkat Pengenalan Koin Kurang
Bagus(%)
Gambar 4.49. Grafik Tingkat Pengenalan Koin Program Non Real Time
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
Berdasarkan grafik (Gambar 4.48) dan tabel hasil tingkat pengenalan secara non real
time (Tabel 4.4) diatas, dapat dilihat bahwa program pkoin2.m untuk pengenalan nilai
nominal uang logam rupiah ini secara non real-time ini mampu mengenali uang logam
rupiah dengan baik pada untuk variasi jenis koin yang dalam kondisi bagus yakni sebesar
100% tingkat keberhasilan pengenalan, walaupun untuk variasi jenis koin yang dalam
kondisi kurnag bagus masih memiliki beberapa kesalahan pada pengenalan koin dengan
nilai nominal 100 rupiah perak, 200 rupiah perak, 500 rupiah perak, dan 1000 rupiah perak.
Dari tabel dan grafik yang ada menunjukkan bahwa pencahayaan yang tepat dan stabil juga
dapat meminimalisir resiko kesalahan dalam pengenalan nilai nominal uang logam rupiah
sehingga proses pengenalan yang akan dilakukan lebih terjamin kebenarannya.
4.3.3. Analisis Hasil Data Pengujian Secara Keseluruhan
Berdasarkan hasil pengujian data secara real-time maupun non real-time yang sudah
dilakukan, dapat dilihat bahwa program yang sudah dbuat sudah bekerja dengan baik
dengan tingkat pengenalan koin lebih dari 80% tingkat keberhasilan. Kondisi ruangan yang
dibuat yaitu box khusus sebagai tempat pengambilan data yang didesain agar pencahayaan
dari lampu LED yang telah disediakan tetap stabil dalam pencahayaan dan tidak terganggu
dengan cahaya yang berasal dari luar karena berada dalam tempat yang tertutup sehingga
dapat diambil data citra dengan kondisi parameter yang stabil dan dapat diukur dan hasil
pengenalan program yang lebih akurat. Jarak pengambilan data dengan ketinggian yang
tetap juga berpengaruh dalam mengkondisikan parameter yang stabil dan dapat diukur.
Kamera webcam logitech C270 yang dipakai juga memberikan hasil gambar dengan
kualitas yang baik sehingga berpengaruh dalam keakuratan pengenalan nilai koin. Kondisi
fisik uang logam rupiah juga mempengaruhi tingkat pengenalan.
Berdasarkan 480 kali pengujian data yang dilakukan dengan 20 kali pengujian per
uang logam terhadap 6 buah uang logam yaitu Rp.100 perak, Rp.200 perak, Rp.500 perak,
Rp.500 kuningan, Rp.1000 perak-kuningan, dan Rp.1000 perak, dengan 2 varian kondisi
uang logam, baik real-time maupun non real-time, persentase keberhasilan program yang
sudah dibuat baik secara real-time maupun yang non real-time ini dapat mendeteksi uang
logam yang diujikan dengan benar dengan tingkat keberhasilan sebesar 100% untuk uang
koin dengan kondisi bagus dan 88.3% untuk uang koin dengan kondisi lecet dengan total
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
sebanyak 452 kali program pengenalan nominal uang logam rupiah ini mengenali uang
logam yang diujikan dengan benar, dan sebanyak 28 kali program pengenalan nominal
uang logam rupiah ini salah dalam mendeteksi uang logam yang diujikan.
Melihat kembali penelitian sebelumnya dengan judul penelitian “Perancangan Dan
Pembuatan Aplikasi Untuk Mendeteksi Uang Logam Dengan Metode Euclidean”, jika
dilihat dari tingkat pengenalan uang logam rupiah yang berada pada kondisi cahaya
“terang” dengan tingkat pencahayaan yang sudah diatur, tingkat keberhasilan untuk
metode ini lebih baik dibandingkan penelitian sebelumya. Oleh karena itu , dapat dikatakan
bahwa hasil dari penelitian ini sudah cukup lebih baik daripada penelitian sebelumnya.
Berikut ini merupakan gambar pada saat melakukan percobaan yang ditunjukkan
pada gambar 4.50, 4.51 dan gambar 4.52.
Gambar 4.50. Tempat Posisi Koin
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
Gambar 4.51. Kondisi Pengaturan Pencahayaan
Gambar 4.52. Sumber Tegangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan penelitian yang telah dilakukan, dimulai dari tahap perancangan sistem,
implementasi, pengujian sistem, hasil pengujian, serta pembahasan, maka dapat ditarik
kesimpulan, antara lain :
1. Sistem pengenalan nilai nominal uang logam rupiah sudah dapat berjalan dengan
baik.
2. Berdasarkan pengujian secara non real time dan non real time yang telah
dilakukan, nilai threshold saturasi dan threshold value untuk pengenalan warna
koin adalah 0.2 dan 0.3, sedangkan nilai threshold value untuk pengenalan luasan
koin adalah 0.35.
3. Penelitian yang telah dilakukan telah memenuhi batasan masalah yang telah
ditentukan pada BAB I .
4. Penelitian yang telah dilakukan telah memenuhi tujuan dan manfaat penulisan
tugas akhir yang telah ditentukan pada BAB I.
5.2. Saran
1. Disarankan untuk membuat look-up table baru untuk setiap variasi kondisi
maupun jarak serta pencahayaan sehingga tingkat pengenalan akan lebih akurat.
2. Mencoba untuk mengembangkan alat yang dapat melakukan pengenalan uang
logam rupiah tanpa menggunakan laptop sebagai media pengenalan utama.
80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
[1]
Wibawa, W.A., Sari, J.N., Ananda, 2012, Perancangan dan Pembuatan Aplikasi
Untuk Mendeteksi Uang Logam Dengan Metode Euclidean, Jurnal Teknik
Informatika., Vol. 1
[2]
Richason IV, O.E., 2007, Step-by-Step Process of How a Vending Machine
Works,
http://smallbusiness.chron.com/step-by-step-process-vending-machine-
works-5180.html, diakses pada tanggal 25 September 2016
[3]
-----,
2015,
Data
uang,
http://www.bi.go.id/id/sistem-
pembayaran/instrumen/datauang/Contents/Default.aspx , diakses pada tanggal 25
September 2016
[4]
Kadir, A., Susanto, A., 2013, Teori dan Aplikasi Pengolahan Citra, ANDI,
Yogyakarta
[5]
Mahsun, M.N.H., 2009, Implementasi Pengolahan Citra Untuk Identifikasi
Produk Kemasan Berdasarkan Label Kemasannya, Proyek Akhir, Jurusan Teknik
Informatika, Politeknik Elektronika Negeri Surabaya, Institut Teknologi Sepuluh
Nopember, Surabaya
[6]
------,
2016,
Convert
from
HSV
to
RGB
Color
Space,
https://www.mathworks.com/help/images/convert-from-hsv-to-rgb-colorspace.html?searchHighlight=HSV%20imshow, diakses pada tanggal 3 September
2016
[7]
------,
2007,
Displaying
HSV
Image
by
Imshow,
https://www.mathworks.com/matlabcentral/newsreader/view_thread/155835,
diakses pada tanggal 3 September 2016
[8]
Indriani, Y.H., 2015, Pengenalan Nada Belira Menggunakan Analisis Amplitudo
Pada Ranah Frekuensi, Tugas Akhir, Jurusan Teknik Elektro, FST, Universitas
Sanata Dharma, Yogyakarta
81
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-1
Listing Program Real-Time
Real_Time.m
function varargout = Real_Time(varargin)
% REAL_TIME MATLAB code for Real_Time.fig
%
REAL_TIME, by itself, creates a new REAL_TIME or raises the
existing
%
singleton*.
%
%
H = REAL_TIME returns the handle to a new REAL_TIME or the
handle to
%
the existing singleton*.
%
%
REAL_TIME('CALLBACK',hObject,eventData,handles,...) calls
the local
%
function named CALLBACK in REAL_TIME.M with the given input
arguments.
%
%
REAL_TIME('Property','Value',...) creates a new REAL_TIME
or raises the
%
existing singleton*. Starting from the left, property
value pairs are
%
applied to the GUI before Real_Time_OpeningFcn gets called.
An
%
unrecognized property name or invalid value makes property
application
%
stop. All inputs are passed to Real_Time_OpeningFcn via
varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows
only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Real_Time
% Last Modified by GUIDE v2.5 09-May-2017 13:14:45
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Real_Time_OpeningFcn, ...
'gui_OutputFcn', @Real_Time_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-2
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before Real_Time is made visible.
function Real_Time_OpeningFcn(hObject, eventdata, handles,
varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to Real_Time (see VARARGIN)
% Choose default command line output for Real_Time
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Real_Time wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Real_Time_OutputFcn(hObject, eventdata,
handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
%Menjalankan program tombol button "Hidupkan Kamera"
% --- Executes on button press in pushbutton14.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
global IA DeviceID Format
try
VidObj= videoinput(IA, DeviceID, Format);
handles.VidObj=VidObj;
vidRes = get(handles.VidObj, 'VideoResolution');
nBands = get(handles.VidObj, 'NumberOfBands');
axes(handles.axes1)
hImage = image( zeros(vidRes(2), vidRes(1), nBands) );
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-3
preview(handles.VidObj, hImage)
catch
msgbox({'Tolong Atur Kamera Anda Terlebih Dahulu.',' '})
end
guidata(hObject, handles);
%Menjalankan program tombol button "Ambil Gambar 1"
% --- Executes on button press in pushbutton5.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
clear global s1;
clear global video;
global s1
global video
try
video=handles.VidObj;
s1=getsnapshot(video);
axes(handles.axes2)
imshow(s1);
catch
end
%Menjalankan program tombol button "Ambil Gambar 2"
% --- Executes on button press in pushbutton5.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
clear global s2
global video s2
try
video=handles.VidObj;
s2=getsnapshot(video);
axes(handles.axes3)
imshow(s2);
catch
end
%Menjalankan program tombol button "Resizing_1"
% --- Executes on button press in pushbutton5.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
global resize_1
global s1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-4
try
resize_1=imresize(s1,0.25);
axes(handles.axes4)
imshow(resize_1);
catch
end
%Menjalankan program tombol button "Resizing_2"
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
global resize_2
global s2
try
resize_2=imresize(s2,0.25);
axes(handles.axes5)
imshow(resize_2);
catch
end
function edit1_Callback(hObject, eventdata, handles)
% hObject
handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
%
str2double(get(hObject,'String')) returns contents of
edit1 as a double
% --- Executes during object creation, after setting all
properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject
handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
empty - handles not created until after all
CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-5
%Menjalankan program tombol button "Reset"
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
clc
try
delete(handles.VidObj)
global rdv1 rdv2 akoin1 akoin2
clear rdv1 rdv2 akoin1 akoin2
catch
end
axes(handles.axes1)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes2)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes3)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes4)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
axes(handles.axes5)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
set(handles.text1,'string','')
%Menjalankan program tombol button "Exit"
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton9 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
close;
%Menjalankan program tombol button "Atur Kamera"
% --- Executes on button press in pushbutton1.
function pushbutton10_Callback(hObject, eventdata, handles)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-6
% hObject
% eventdata
MATLAB
% handles
handle to pushbutton1 (see GCBO)
reserved - to be defined in a future version of
structure with handles and user data (see GUIDATA)
global IA DeviceID Format
IAHI=imaqhwinfo;
IA=(IAHI.InstalledAdaptors);
D=menu('Pilih Perangkat Anda:',IA);
if isempty(IA)||D==0
msgbox({'Tidak Ada Perangkat Yang terinstal atau yang
terdeteksi',...
'Coba',...
'pasang dulu perangkat anda sebelum menyalakan
MATLAB'})
return
end
IA=char(IA);
IA=IA(D,:);
IA(IA==' ')=[];
x=imaqhwinfo(IA);
try
DeviceID=menu('Pilih ID Perangkat Anda',x.DeviceIDs);
F=x.DeviceInfo(DeviceID).SupportedFormats;
nF=menu('Pilih Format Video Anda',F);
Format=F{nF};
catch
warndlg({'Coba Pilih ID Perangkat Lain ';...
'ID Perangkat Ini Tidak Dikenali MATLAB)'})
return
end
%Menjalankan program tombol button "save 1"
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton14 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
[a,~,NotGet]=imputfile;
S=getimage(handles.axes2);
if(NotGet==0)
imwrite(S,a)
msgbox(strcat('Gambar Disimpan di :',a))
else
msgbox('Gambar Tidak Disimpan')
end
%Menjalankan program tombol button "save 3"
% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton12 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-7
% handles
structure with handles and user data (see GUIDATA)
[a,~,NotGet]=imputfile;
S=getimage(handles.axes4);
if(NotGet==0)
imwrite(S,a)
msgbox(strcat('Gambar Disimpan di :',a))
else
msgbox('Gambar Tidak Disimpan')
end
% --- Executes during object creation, after setting all
properties.
function uipanel8_CreateFcn(hObject, eventdata, handles)
% hObject
handle to uipanel8 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
empty - handles not created until after all
CreateFcns called
%Menjalankan program tombol button "Proses"
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
global
global
global
global
global
global
resize_1
resize_2
rdv1
rdv2
akoin1
akoin2
%preprosesing gambar 1
hsv1=rgb2hsv(resize_1);
sat1=hsv1(:,:,2);
tsat1=sat1<0.1;
val1=hsv1(:,:,3);
tval1=val1>0.3;
depan1=and(tsat1,tval1);
sum1=sum(sum(depan1));
sum2=sum(sum(tval1));
rdv1=(sum1/sum2);
skoin1=val1>0.3;
skoin1=imfill(skoin1,'holes');
akoin1=sum(sum(skoin1));
akoin1=(akoin1/100);
%preprosing gambar2
hsv2=rgb2hsv(resize_2);
sat2=hsv2(:,:,2);
tsat2=sat2<0.1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-8
val2=hsv2(:,:,3);
tval2=val2>0.3;
depan2=and(tsat2,tval2);
sum3=sum(sum(depan2));
sum4=sum(sum(tval2));
rdv2=(sum3/sum4);
skoin2=val2>0.3;
skoin2=imfill(skoin2,'holes');
akoin2=sum(sum(skoin2));
akoin2=(akoin2/100);
%Panel Group Button "Pilih Gambar"
% --- Executes when selected object is changed in uipanel10.
function uipanel10_SelectionChangeFcn(hObject, eventdata, handles)
% hObject
handle to the selected object in uipanel10
% eventdata structure with the following fields (see
UIBUTTONGROUP)
%
EventName: string 'SelectionChanged' (read only)
%
OldValue: handle of the previously selected object or empty if
none was selected
%
NewValue: handle of the currently selected object
% handles
structure with handles and user data (see GUIDATA)
global
global
global
global
rdv1
akoin1
rdv2
akoin2
switch get(eventdata.NewValue, 'Tag');
case 'radiobutton1'
rdv_1=rdv1
bkoin_1=akoin1
if rdv_1>=0.8555
if bkoin_1>=29.0000 && bkoin_1<=29.9999
nkoin='100';
elseif bkoin_1>=31.0000 && bkoin_1<=32.5555
nkoin='200';
elseif bkoin_1>=33.9000 && bkoin_1<=34.9999
nkoin='500';
else
nkoin='error1';
end
elseif rdv_1>=0.7000 && rdv_1<=0.8100
if bkoin_1>=28.8000 && bkoin_1<=29.9999
nkoin='100';
elseif bkoin_1>=30.0000 && bkoin_1<=30.9999
nkoin='1000';
elseif bkoin_1>=31.0000 && bkoin_1<=31.9999
nkoin='200';
else
nkoin='error2';
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-9
elseif rdv_1>=0.6000 && rdv_1<=0.6999
if bkoin_1>=30.0000 && bkoin_1<=30.9999
nkoin='1000';
else
nkoin='error3';
end
elseif rdv_1>=0.50 && rdv_1<=0.5999
if bkoin_1>=30.0000 && bkoin_1<=32.9999
nkoin='1000';
else
nkoin='error4';
end
elseif rdv_1>=0.4000 && rdv_1<=0.4999
if bkoin_1>=30.0000 && bkoin_1<=30.9999
nkoin='500';
elseif bkoin_1>=32.0000 && bkoin_1<=32.9999
nkoin='1000';
else
nkoin='error5';
end
else
nkoin='error';
end
set(handles.text1, 'string',nkoin);
end
switch get(eventdata.NewValue, 'Tag');
case 'radiobutton2'
rdv_2=rdv2
bkoin_2=akoin2
if rdv_2>=0.8555
if bkoin_2>=29.0000 && bkoin_2<=29.9999
nkoin='100';
elseif bkoin_2>=31.0000 && bkoin_2<=32.5555
nkoin='200';
elseif bkoin_2>=33.9000 && bkoin_2<=34.9999
nkoin='500';
else
nkoin='error1';
end
elseif rdv_2>=0.7000 && rdv_2<=0.8100
if bkoin_2>=28.8000 && bkoin_2<=29.9999
nkoin='100';
elseif bkoin_2>=30.0000 && bkoin_2<=30.9999
nkoin='1000';
elseif bkoin_2>=31.0000 && bkoin_2<=31.9999
nkoin='200';
else
nkoin='error2';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-10
end
elseif rdv_2>=0.6000 && rdv_2<=0.6999
if bkoin_2>=30.0000 && bkoin_2<=30.9999
nkoin='1000';
else
nkoin='error3';
end
elseif rdv_2>=0.5000 && rdv_2<=0.5999
if bkoin_2>=30.0000 && bkoin_2<=32.9999
nkoin='1000';
else
nkoin='error4';
end
elseif rdv_2>=0.4000 && rdv_2<=0.4999
if bkoin_2>=30.0000 && bkoin_2<=30.9999
nkoin='500';
elseif bkoin_2>=32.0000 && bkoin_2<=32.9999
nkoin='1000';
else
nkoin='error5';
end
else
nkoin='error';
end
set(handles.text1, 'string',nkoin);
end
set(hObject,'Value',0);
%Menjalankan program tombol button "save 2"
% --- Executes on button press in pushbutton13.
function pushbutton13_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton14 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see GUIDATA)
[a,~,NotGet]=imputfile;
S=getimage(handles.axes3);
if(NotGet==0)
imwrite(S,a)
msgbox(strcat('Gambar Disimpan di :',a))
else
msgbox('Gambar Tidak Disimpan')
end
%Menjalankan program tombol button "save 4"
% --- Executes on button press in pushbutton14.
function pushbutton14_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton14 (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-11
% eventdata
MATLAB
% handles
reserved - to be defined in a future version of
structure with handles and user data (see GUIDATA)
[a,~,NotGet]=imputfile;
S=getimage(handles.axes5);
if(NotGet==0)
imwrite(S,a)
msgbox(strcat('Gambar Disimpan di :',a))
else
msgbox('Gambar Tidak Disimpan')
end
Listing Program Non Real-Time
Koin2.m
function koin2
% Menampilkan proses analisis citra koin menggunakan S&V
clc
% -------------------------------------------------------% Baca file jpg dan analisis citra koin (muka 1)
c1=imread('100A1.jpg');c1=imresize(c1,0.25);
[s1,v1,ts1,tv1,d1,k1,rd1,ak1]=ackoin(c1);
c2=imread('200A1.jpg');c2=imresize(c2,0.25);
[s2,v2,ts2,tv2,d2,k2,rd2,ak2]=ackoin(c2);
c3=imread('500A1.jpg');c3=imresize(c3,0.25);
[s3,v3,ts3,tv3,d3,k3,rd3,ak3]=ackoin(c3);
c4=imread('500B1.jpg');c4=imresize(c4,0.25);
[s4,v4,ts4,tv4,d4,k4,rd4,ak4]=ackoin(c4);
c5=imread('1000A1.jpg');c5=imresize(c5,0.25);
[s5,v5,ts5,tv5,d5,k5,rd5,ak5]=ackoin(c5);
c6=imread('1000B1.jpg');c6=imresize(c6,0.25);
[s6,v6,ts6,tv6,d6,k6,rd6,ak6]=ackoin(c6);
Rasio_depan_val1=[rd1 rd2 rd3 rd4 rd5 rd6];
Luasan_koin1=[ak1 ak2 ak3 ak4 ak5 ak6];
% Plot
figure(1)
% Citra koin
subplot(7,7,1);imshow(c1); title ('1')
subplot(7,7,2);imshow(c2); title ('2')
subplot(7,7,3);imshow(c3); title ('3')
subplot(7,7,4);imshow(c4); title ('4')
subplot(7,7,5);imshow(c5); title ('5')
subplot(7,7,6);imshow(c6); title ('6')
% Bagian saturation
subplot(7,7,8);imshow(s1); title ('7')
subplot(7,7,9);imshow(s2); title ('8')
subplot(7,7,10);imshow(s3); title ('9')
subplot(7,7,11);imshow(s4); title ('10')
subplot(7,7,12);imshow(s5); title ('11')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-12
subplot(7,7,13);imshow(s6); title ('12')
% Bagian value
subplot(7,7,15);imshow(v1); title ('13')
subplot(7,7,16);imshow(v2); title ('14')
subplot(7,7,17);imshow(v3); title ('15')
subplot(7,7,18);imshow(v4); title ('16')
subplot(7,7,19);imshow(v5); title ('17')
subplot(7,7,20);imshow(v6); title ('18')
% Bagian threshold untuk saturation
subplot(7,7,22);imshow(ts1); title ('19')
subplot(7,7,23);imshow(ts2); title ('20')
subplot(7,7,24);imshow(ts3); title ('21')
subplot(7,7,25);imshow(ts4); title ('22')
subplot(7,7,26);imshow(ts5); title ('23')
subplot(7,7,27);imshow(ts6); title ('24')
% Bagian threshold untuk value
subplot(7,7,29);imshow(tv1); title ('25')
subplot(7,7,30);imshow(tv2); title ('26')
subplot(7,7,31);imshow(tv3); title ('27')
subplot(7,7,32);imshow(tv4); title ('28')
subplot(7,7,33);imshow(tv5); title ('29')
subplot(7,7,34);imshow(tv6); title ('30')
% Bagian depan
subplot(7,7,36);imshow(d1); title ('31')
subplot(7,7,37);imshow(d2); title ('32')
subplot(7,7,38);imshow(d3); title ('33')
subplot(7,7,39);imshow(d4); title ('34')
subplot(7,7,40);imshow(d5); title ('35')
subplot(7,7,41);imshow(d6); title ('36')
% Segmentasi area koin
subplot(7,7,43);imshow(k1); title ('37')
subplot(7,7,44);imshow(k2); title ('38')
subplot(7,7,45);imshow(k3); title ('39')
subplot(7,7,46);imshow(k4); title ('40')
subplot(7,7,47);imshow(k5); title ('41')
subplot(7,7,48);imshow(k6); title ('42')
% -------------------------------------------------------% Baca file jpg dan analisis citra koin (muka 1)
c1=imread('100A2.jpg');c1=imresize(c1,0.25);
[s1,v1,ts1,tv1,d1,k1,rd1,ak1]=ackoin(c1);
c2=imread('200A2.jpg');c2=imresize(c2,0.25);
[s2,v2,ts2,tv2,d2,k2,rd2,ak2]=ackoin(c2);
c3=imread('500A2.jpg');c3=imresize(c3,0.25);
[s3,v3,ts3,tv3,d3,k3,rd3,ak3]=ackoin(c3);
c4=imread('500B2.jpg');c4=imresize(c4,0.25);
[s4,v4,ts4,tv4,d4,k4,rd4,ak4]=ackoin(c4);
c5=imread('1000A2.jpg');c5=imresize(c5,0.25);
[s5,v5,ts5,tv5,d5,k5,rd5,ak5]=ackoin(c5);
c6=imread('1000B2.jpg');c6=imresize(c6,0.25);
[s6,v6,ts6,tv6,d6,k6,rd6,ak6]=ackoin(c6);
Rasio_depan_val2=[rd1 rd2 rd3 rd4 rd5 rd6];
Luasan_koin2=[ak1 ak2 ak3 ak4 ak5 ak6];
% Plot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-13
figure(2)
% Citra koin
subplot(7,7,1);imshow(c1); title ('1')
subplot(7,7,2);imshow(c2); title ('2')
subplot(7,7,3);imshow(c3); title ('3')
subplot(7,7,4);imshow(c4); title ('4')
subplot(7,7,5);imshow(c5); title ('5')
subplot(7,7,6);imshow(c6); title ('6')
% Bagian saturation
subplot(7,7,8);imshow(s1); title ('7')
subplot(7,7,9);imshow(s2); title ('8')
subplot(7,7,10);imshow(s3); title ('9')
subplot(7,7,11);imshow(s4); title ('10')
subplot(7,7,12);imshow(s5); title ('11')
subplot(7,7,13);imshow(s6); title ('12')
% Bagian value
subplot(7,7,15);imshow(v1); title ('13')
subplot(7,7,16);imshow(v2); title ('14')
subplot(7,7,17);imshow(v3); title ('15')
subplot(7,7,18);imshow(v4); title ('16')
subplot(7,7,19);imshow(v5); title ('17')
subplot(7,7,20);imshow(v6); title ('18')
% Bagian threshold untuk saturation
subplot(7,7,22);imshow(ts1); title ('19')
subplot(7,7,23);imshow(ts2); title ('20')
subplot(7,7,24);imshow(ts3); title ('21')
subplot(7,7,25);imshow(ts4); title ('22')
subplot(7,7,26);imshow(ts5); title ('23')
subplot(7,7,27);imshow(ts6); title ('24')
% Bagian threshold untuk value
subplot(7,7,29);imshow(tv1); title ('25')
subplot(7,7,30);imshow(tv2); title ('26')
subplot(7,7,31);imshow(tv3); title ('27')
subplot(7,7,32);imshow(tv4); title ('28')
subplot(7,7,33);imshow(tv5); title ('29')
subplot(7,7,34);imshow(tv6); title ('30')
% Bagian depan
subplot(7,7,36);imshow(d1); title ('31')
subplot(7,7,37);imshow(d2); title ('32')
subplot(7,7,38);imshow(d3); title ('33')
subplot(7,7,39);imshow(d4); title ('34')
subplot(7,7,40);imshow(d5); title ('35')
subplot(7,7,41);imshow(d6); title ('36')
% Segmentasi area koin
subplot(7,7,43);imshow(k1); title ('37')
subplot(7,7,44);imshow(k2); title ('38')
subplot(7,7,45);imshow(k3); title ('39')
subplot(7,7,46);imshow(k4); title ('40')
subplot(7,7,47);imshow(k5); title ('41')
subplot(7,7,48);imshow(k6); title ('42')
% -------------------------------------------------------Rasio_depan_val=[Rasio_depan_val1;Rasio_depan_val2]
Luasan_koin=[Luasan_koin1;Luasan_koin2]
% ========================================================
% Internal Function
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-14
% ========================================================
function [sat,val,tsat,tval,depan,skoin,rdv,akoin]=ackoin(img0)
% Analisis citra koin
% -------------------------------------------------------% Konversi RGB ke HSV
hsv=rgb2hsv(img0);
% -------------------------------------------------------% Segmentasi bagian depan (foreground)
sat=hsv(:,:,2);
% Ambil bagian saturation
tsat=sat<0.2;
% Threshold saturation
val=hsv(:,:,3);
% Ambil bagian value
tval=val>0.3;
% Threshold Value
depan=and(tsat,tval);
% -------------------------------------------------------% Perbandingan bagian depan dengan value
sum1=sum(sum(depan));
sum2=sum(sum(tval));
rdv=sum1/sum2;
% -------------------------------------------------------% Segmentasi luasan citra koin
skoin=val>0.35;
skoin=imfill(skoin,'holes');
% Fill holes
% -------------------------------------------------------% Luasan terskala untuk perak, kuningan, dan koin
akoin=sum(sum(skoin));
akoin=(akoin/100);
% ========================================================
Pkoin2.m
function pkoin2
% Menampilkan proses pengenalan koin versi 2
% Lookup Table berdasar perbandingan saturasi dan luasan
clc
% Baca file jpg dan proses warna koin
s1=imread('100A1.jpg');s1=imresize(s1,0.25);[r(1),a(1),n{1}]=prkoi
n(s1);
s1=imread('100A2.jpg');s1=imresize(s1,0.25);[r(2),a(2),n{2}]=prkoi
n(s1);
s1=imread('200A1.jpg');s1=imresize(s1,0.25);[r(3),a(3),n{3}]=prkoi
n(s1);
s1=imread('200A2.jpg');s1=imresize(s1,0.25);[r(4),a(4),n{4}]=prkoi
n(s1);
s1=imread('500A1.jpg');s1=imresize(s1,0.25);[r(5),a(5),n{5}]=prkoi
n(s1);
s1=imread('500A2.jpg');s1=imresize(s1,0.25);[r(6),a(6),n{6}]=prkoi
n(s1);
s1=imread('500B1.jpg');s1=imresize(s1,0.25);[r(7),a(7),n{7}]=prkoi
n(s1);
s1=imread('500B2.jpg');s1=imresize(s1,0.25);[r(8),a(8),n{8}]=prkoi
n(s1);
s1=imread('1000A1.jpg');s1=imresize(s1,0.25);[r(9),a(9),n{9}]=prko
in(s1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-15
s1=imread('1000A2.jpg');s1=imresize(s1,0.25);[r(10),a(10),n{10}]=p
rkoin(s1);
s1=imread('1000B1.jpg');s1=imresize(s1,0.25);[r(11),a(11),n{11}]=p
rkoin(s1);
s1=imread('1000B2.jpg');s1=imresize(s1,0.25);[r(12),a(12),n{12}]=p
rkoin(s1);
Rasio_depan_value=r
Luasan_koin_terskala=a
Nilai_koin=n
% ========================================================
% Internal Function
% ========================================================
function [rdv,akoin,nkoin]=prkoin(img0)
% Pengenalan koin
% -------------------------------------------------------% Konversi RGB ke HSV
hsv=rgb2hsv(img0);
% -------------------------------------------------------% Segmentasi bagian depan (foreground)
sat=hsv(:,:,2);
% Ambil bagian saturation
tsat=sat<0.2;
% Original: 0.1
val=hsv(:,:,3);
% Ambil bagian value
tval=val>0.3;
% Original: 0.3
depan=and(tsat,tval);
% -------------------------------------------------------% Perbandingan bagian depan dengan value
sum1=sum(sum(depan));
sum2=sum(sum(tval));
rdv=sum1/sum2;
% -------------------------------------------------------% Segmentasi citra koin
skoin=val>0.35;
skoin=imfill(skoin,'holes');
% Fill holes
% -------------------------------------------------------% Luasan terskala untuk perak, emas, dan koin
akoin=sum(sum(skoin));
akoin=(akoin/100);
% -------------------------------------------------------% Look-up Table
if rdv>=0.8555
if akoin>=29.0000 && akoin<=29.9999
nkoin='100';
elseif akoin>=31.0000 && akoin<=32.5555
nkoin='200';
elseif akoin>=33.9000 && akoin<=34.9999
nkoin='500';
else
nkoin='error1';
end
elseif rdv>=0.7000 && rdv<=0.8100
if akoin>=28.8000 && akoin<=29.9999
nkoin='100';
elseif akoin>=30.0000 && akoin<=30.9999
nkoin='1000';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-16
elseif akoin>=31.0000 && akoin<=31.9999
nkoin='200';
else
nkoin='error2';
end
elseif rdv>=0.6000 && rdv<=0.6999
if akoin>=30.0000 && akoin<=30.9999
nkoin='1000';
else
nkoin='error3';
end
elseif rdv>=0.5000 && rdv<=0.5999
if akoin>=30.0000 && akoin<=32.9999
nkoin='1000';
else
nkoin='error4';
end
elseif rdv>=0.4000 && rdv<=0.4999
if akoin>=30.0000 && akoin<=30.9999
nkoin='500';
elseif akoin>=32.0000 && akoin<=32.9999
nkoin='1000';
else
nkoin='error5';
end
else
nkoin='error';
end
% ========================================================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-17
Objek Koin yang dipakai Dalam Percobaan
Koin Bagian Depan
Koin Bagian Belakang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-18
Tabel Referensi Data Uang Logam Rupiah
Koin Bagian Depan
Tabel Hasil pengambilan data uang koin bagian depan Pengambilan Data ke 1-5
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-1
data ke-2
data ke-3
data ke-4
data ke-5
100
0,9230
0,9436
0,8841
0,9017
0,8893
Rupiah
&
&
&
&
&
29,6800
29,7000
29,5400
29,5900
29,6000
200
0,9171
0,9151
0,9203
0,9120
0,8663
Rupiah
&
&
&
&
&
31,2900
31,0700
31,8900
31,0200
31,2200
500
0,9108
0,9177
0,8906
0,8985
0,8795
Rupiah
&
&
&
&
&
(Perak)
34,1900
34,2000
34,1200
34,2000
34,2500
500
0,4694
0,4358
0,4198
0,4596
0,4493
Rupiah
&
&
&
&
&
(Kuningan)
30,7800
30,0100
30,6900
30,5300
30,6400
1000
0,6466
0,6399
0,6512
0,6702
0,6377
Rupiah
&
&
&
&
&
(Perak)
30,7500
30,5900
30,3100
30,3000
30,2100
1000
0.4917
0,4786
0,5171
0,5228
0,5185
Rupiah
&
&
&
&
&
(Kuningan-
31,8600
31,8100
32,2600
32,2000
31,8900
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-19
Tabel Hasil pengambilan data uang koin bagian depan Pengambilan Data ke 6-10
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-6
data ke-7
data ke-8
data ke-9
data ke-10
100
0,9230
0,9436
0,8841
0,9017
0,8893
Rupiah
&
&
&
&
&
29,6800
29,7000
29,5400
29,5900
29,6000
200
0,9171
0,9151
0,9203
0,9120
0,8663
Rupiah
&
&
&
&
&
31,2900
31,0700
31,8900
31,0200
31,2200
500
0,9108
0,9177
0,8906
0,8985
0,8795
Rupiah
&
&
&
&
&
(Perak)
34,1900
34,2000
34,1200
34,2000
34,2500
500
0,4694
0,4358
0,4198
0,4596
0,4493
Rupiah
&
&
&
&
&
(Kuningan)
30,7800
30,0100
30,6900
30,5300
30,6400
1000
0,6466
0,6399
0,6512
0,6702
0,6377
Rupiah
&
&
&
&
&
(Perak)
30,7500
30,5900
30,3100
30,3000
30,2100
1000
0,4917
0,4786
0,5171
0,5228
0,5185
Rupiah
&
&
&
&
&
(Kuningan-
31,8600
31,8100
32,2600
32,2000
31,8900
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-20
Tabel Hasil pengambilan data uang koin bagian depan Pengambilan Data ke 11-15
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-11
data ke-12
data ke-13
data ke-14
data ke-15
100
0.9230
0,9436
0,8841
0,9017
0,8893
Rupiah
&
&
&
&
&
29,6800
29,7000
29,5400
29,5900
29,6000
200
0.9171
0.9151
0.9203
0.9120
0.8663
Rupiah
&
&
&
&
&
31.2900
31.0700
31.8900
31.0200
31.2200
500
0.9108
0.9177
0.8906
0.8985
0.8795
Rupiah
&
&
&
&
&
(Perak)
34.1900
34.2000
34.1200
34.2000
34.2500
500
0.4694
0,4358
0,4198
0,4596
0,4493
Rupiah
&
&
&
&
&
(Kuningan)
30,7800
30,0100
30,6900
30,5300
30,6400
1000
0,6466
0,6399
0,6512
0,6702
0,6377
Rupiah
&
&
&
&
&
(Perak)
30,7500
30,5900
30,3100
30,3000
30,2100
1000
0,4917
0,4786
0,5171
0,5228
0,5185
Rupiah
&
&
&
&
&
(Kuningan-
31,8600
31,8100
32,2600
32,2000
31,8900
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-21
Tabel Hasil pengambilan data uang koin bagian depan Pengambilan Data ke 16-20
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-16
data ke-17
data ke-18
data ke-19
data ke-20
100
0,9230
0,9436
0,8841
0,9017
0,8893
Rupiah
&
&
&
&
&
29,6800
29,7000
29,5400
29,5900
29,6000
200
0,9171
0,9151
0,9203
0,9120
0,8663
Rupiah
&
&
&
&
&
31,2900
31,0700
31,8900
31,0200
31,2200
500
0,9108
0,9177
0,8906
0,8985
0,8795
Rupiah
&
&
&
&
&
(Perak)
34,1900
34,2000
34,1200
34,2000
34,2500
500
0,4694
0,4358
0,4198
0,4596
0,4493
Rupiah
&
&
&
&
&
(Kuningan)
30,7800
30,0100
30,6900
30,5300
30,6400
1000
0,6466
0,6399
0,6512
0,6702
0,6377
Rupiah
&
&
&
&
&
(Perak)
30,7500
30,5900
30,3100
30,3000
30,2100
1000
0,4917
0,4786
0,5171
0,5228
0,5185
Rupiah
&
&
&
&
&
(Kuningan-
31,8600
31,8100
32,2600
32,2000
31,8900
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-22
Koin Bagian Belakang
Tabel Hasil pengambilan data uang koin bagian Belakang Pengambilan Data ke 1-5
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-1
data ke-2
data ke-3
data ke-4
data ke-5
100
0,9549
0,9434
0,9177
0,9023
0,9515
Rupiah
&
&
&
&
&
28,6400
28,6300
28,7000
28,6700
28,6600
200
0,9510
0,9584
0,9563
0,9502
0,9451
Rupiah
&
&
&
&
&
31,0300
31,0400
30,8900
30,9300
31,0700
500
0,9621
0,9474
0,9041
0,9193
0,9490
Rupiah
&
&
&
&
&
(Perak)
34,0500
34,0200
33,8100
33,7300
33,9800
500
0,4539
0,4684
0,4634
0,4567
0,4598
Rupiah
&
&
&
&
&
(Kuningan)
29,4900
29,5800
29,5500
29,7200
29,6100
1000
0,6768
0,7009
0,5591
0,7187
0,6913
Rupiah
&
&
&
&
&
(Perak)
29,3400
29,4000
29,2500
29,4800
29,4600
1000
0,5168
0,5101
0,4994
0,5159
0,4909
Rupiah
&
&
&
&
&
(Kuningan-
32,4900
32,3200
32,1200
32,1300
32,2400
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-23
Tabel Hasil pengambilan data uang koin bagian belakang Pengambilan Data ke 6-10
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-6
data ke-7
data ke-8
data ke-9
data ke-10
100
0,9549
0,9434
0,9177
0,9023
0,9515
Rupiah
&
&
&
&
&
28,6400
28,6300
28,7000
28,6700
28,6600
200
0,9510
0,9584
0,9563
0,9502
0,9451
Rupiah
&
&
&
&
&
31,0300
31,0400
30,8900
30,9300
31,0700
500
0,9621
0,9474
0,9041
0,9193
0,9490
Rupiah
&
&
&
&
&
(Perak)
34,0500
34,0200
33,8100
33,7300
33,9800
500
0,4539
0,4684
0,4634
0,4567
0,4598
Rupiah
&
&
&
&
&
(Kuningan)
29,4900
29,5800
29,5500
29,7200
29,6100
1000
0,6768
0,7009
0,5591
0,7187
0,6913
Rupiah
&
&
&
&
&
(Perak)
29,3400
29,4000
29,2500
29,4800
29,4600
1000
0,5168
0,5101
0,4994
0,5159
0,4909
Rupiah
&
&
&
&
&
(Kuningan-
32,4900
32,3200
32,1200
32,1300
32,2400
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-24
Tabel Hasil pengambilan data uang koin bagian belakang Pengambilan Data ke 11-15
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-11
data ke-12
data ke-13
data ke-14
data ke-15
100
0,9549
0,9434
0,9177
0,9023
0,9515
Rupiah
&
&
&
&
&
28,6400
28,6300
28,7000
28,6700
28,6600
200
0,9510
0,9584
0,9563
0,9502
0,9451
Rupiah
&
&
&
&
&
31,0300
31,0400
30,8900
30,9300
31,0700
500
0,9621
0,9474
0,9041
0,9193
0,9490
Rupiah
&
&
&
&
&
(Perak)
34,0500
34,0200
33,8100
33,7300
33,9800
500
0,4539
0,4684
0,4634
0,4567
0,4598
Rupiah
&
&
&
&
&
(Kuningan)
29,4900
29,5800
29,5500
29,7200
29,6100
1000
0,6768
0,7009
0,5591
0,7187
0,6913
Rupiah
&
&
&
&
&
(Perak)
29,3400
29,4000
29,2500
29,4800
29,4600
1000
0,5168
0,5101
0,4994
0,5159
0,4909
Rupiah
&
&
&
&
&
(Kuningan-
32,4900
32,3200
32,1200
32,1300
32,2400
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-25
Tabel Hasil pengambilan data uang koin bagian belakang Pengambilan Data ke 16-20
Nilai Koin
Nilai Data Referensi Saturasi & Value Serta Luasan Uang Koin
Pengambilan Pengambilan Pengambilan Pengambilan Pengambilan
data ke-16
data ke-17
data ke-18
data ke-19
data ke-20
100
0,9549
0,9434
0,9177
0,9023
0,9515
Rupiah
&
&
&
&
&
28,6400
28,6300
28,7000
28,6700
28,6600
200
0,9510
0,9584
0,9563
0,9502
0,9451
Rupiah
&
&
&
&
&
31,0300
31,0400
30,8900
30,9300
31,0700
500
0,9621
0,9474
0,9041
0,9193
0,9490
Rupiah
&
&
&
&
&
(Perak)
34,0500
34,0200
33,8100
33,7300
33,9800
500
0,4539
0,4684
0,4634
0,4567
0,4598
Rupiah
&
&
&
&
&
(Kuningan)
29,4900
29,5800
29,5500
29,7200
29,6100
1000
0,6768
0,7009
0,5591
0,7187
0,6913
Rupiah
&
&
&
&
&
(Perak)
29,3400
29,4000
29,2500
29,4800
29,4600
1000
0,5168
0,5101
0,4994
0,5159
0,4909
Rupiah
&
&
&
&
&
(Kuningan-
32,4900
32,3200
32,1200
32,1300
32,2400
Perak)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-26
Tabel Hasil Pengujian Data
Real-Time
Tabel Tingkat Pengenalan Koin Program Real Time Kondisi Koin Bagus
Nominal Uang Logam
Rupiah
Rp,100,00 Perak
Rp,200,00 Perak
Rp,500,00 Perak
Rp,500,00 Kuningan
Rp,1000,00 KuninganPerak
Rp,1000,00 Perak
Total Pengujian
Total Keberhasilan
20
20
20
20
20
20
20
20
20
20
20
20
Persentase Total
Keberhasilan (%)
100
100
100
100
100
100
Tabel Tingkat Pengenalan Koin Program Real Time Kondisi Koin Lecet
Nominal Uang Logam
Rupiah
Rp,100,00 Perak
Rp,200,00 Perak
Rp,500,00 Perak
Rp,500,00 Kuningan
Rp,1000,00 KuninganPerak
Rp,1000,00 Perak
Total Pengujian
Total Keberhasilan
20
20
20
20
20
16
20
20
19
20
20
15
Persentase Total
Keberhasilan (%)
80
100
100
95
100
75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-27
Non Real-Time
Tabel Tingkat Pengenalan Koin Program Non Real Time Kondisi Koin Bagus
Nominal Uang Logam
Rupiah
Rp,100,00 Perak
Rp,200,00 Perak
Rp,500,00 Perak
Rp,500,00 Kuningan
Rp,1000,00 KuninganPerak
Rp,1000,00 Perak
Total Pengujian
Total Keberhasilan
20
20
20
20
20
20
20
20
20
20
20
20
Persentase Total
Keberhasilan (%)
100
100
100
100
100
100
Tabel Tingkat Pengenalan Koin Program Non Real Time Kondisi Koin Kurang Bagus
Nominal Uang Logam
Rupiah
Rp,100,00 Perak
Rp,200,00 Perak
Rp,500,00 Perak
Rp,500,00 Kuningan
Rp,1000,00 KuninganPerak
Rp,1000,00 Perak
Total Pengujian
Total Keberhasilan
20
20
20
20
20
16
19
18
19
17
20
15
Persentase Total
Keberhasilan (%)
80
95
90
95
85
75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-28
Hasil Program Real-Time
Gambar Pengenalan Uang Logam 100 Rupiah
Gambar Pengenalan Uang Logam 200 Rupiah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-29
Gambar Pengenalan Uang Logam 500 Rupiah Perak
Gambar Pengenalan Uang Logam 500 Rupiah Kuningan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-30
Gambar Pengenalan Uang Logam 1000 Rupiah Perak
Gambar Pengenalan Uang Logam 1000 Rupiah Kuningan Perak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-31
Proses Menyeluruh yang Dicerminkan Dalam Bentuk Flowchart
Mulai
Input:
Citra RGB
Resizing Citra
RGB
Konversi RGB Ke
HSV
Pilih Komponen Warna
Saturasi dari HSV
A
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-32
A
Pilih Threshold Saturasi
Pilih Komponen Warna
Value dari HSV
Pilih Threshold Value
Hitung Nilai Warna Foreground dari
Background Berdasarkan nilai
Threshold S&V
B
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-33
B
Hitung Nilai Luasan Foreground dari
Background Berdasarkan Fungsi Imfill
Pada Threshold Value
Proses Pengenalan
Look-Up Table
Output:
Keluaran Teks
Selesai
Download