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