pengenalan alat-alat stasioneri menggunakan …
TRANSCRIPT
i
TUGAS AKHIR
PENGENALAN ALAT-ALAT STASIONERI
MENGGUNAKAN EKSTRAKSI CIRI
KODE FREEMAN
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Disusun oleh :
STEFHANI LESTARI RUMISSING
NIM : 145114005
PROGRAM STUDI JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
FINAL PROJECT
STATIONERY EQUIPMENT RECOGNITION USING
FREEMAN CODE FEATURE EXTRACTION
Presented as Fullfillment of the Requirements
To Obtain the Sarjana Teknik Degree
Departement of Electrical Engineering
Constructed By :
STEFHANI LESTARI RUMISSING
NIM : 145114005
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
HALAMAN PERSETUJUAN
TUGAS AKHIR
PENGENALAN ALAT-ALAT STASIONERI
MENGGUNAKAN
EKSTRAKSI CIRI KODE FREEMAN
(STATIONERY EQUIPMENT RECOGNITION USING
FREEMAN CODE
FEATURE EXTRACTION)
Disusun oleh :
STEFHANI LESTARI RUMISSING
NIM : 145114005
Telah disetujui oleh :
Pembimbing
Dr. Linggo Sumarno Tanggal :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
HALAMAN PENGESAHAN
TUGAS AKHIR
PENGENALAN ALAT-ALAT STASIONERI MENGGUNAKAN
EKSTRAKSI CIRI KODE FREEMAN
(STATIONERY EQUIPMENT RECOGNITION USING FREEMAN CODE
FEATURE EXTRACTION)
Disusun oleh :
STEFHANI LESTARI RUMISSING
NIM : 145114005
Telah dipertahankan di depan Panitia Penguji
Pada tanggal 03 Juli 2018
dan dinyatakan memenuhi syarat
Susunan Tim Penguji :
Nama Lengkap Tanda Tangan
Ketua : Augustinus Bayu Primawan, D.Tech, Sc. ……………………………
Sekretaris : Dr. Linggo Sumarno ……………………………
Anggota : Wiwien Widyastuti, S.T.,M.T. ……………………………
Yogyakarta,__ Juli 2018
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
LEMBAR PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini tidak
memuat karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka
sebagaimana layaknya karya ilmiah.
Yogyakarta,
Penulis
Stefhani Lestari Rumissing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN PERSEMBAHAN
MOTTO :
Just Be Brave, girls!!
Presented To…
Tuhan Yesus dan Bunda Maria
Mama dan Papa
Emanuel Febriano Dwi S.
All my friend
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI
KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Stefhani Lestari Rumissing
Nomor Mahasiswa : 145114005
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakan Universitas
Sanata Dharma karya ilmiah saya yang berjudul :
PENGENALAN ALAT-ALAT STASIONERI
MENGGUNAKAN EKSTRAKSI CIRI KODE FREEMAN
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelolahnya dalam bentuk pangkalan data, mendistribusikan secara terbatas,
dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa
perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap
mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 06 Juni 2018
Stefhani Lestari Rumissing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Hingga saat ini perkembangan teknologi robot terus berkembang dengan begitu
pesat. Robot-robot yang diciptakan sebagian besar digunakan untuk membantu pekerjaan
manusia. Salah satu robot yang pernah diciptakan oleh manusia adalah robot vision, robot
vision menggunakan webcam untuk melihat dan mendeteksi objek disekitarnya. Tentunya
robot vision ini sangat membantu pekerjaan manusia dalam memilah objek. Oleh karena itu
pada tugas akhir ini akan dibuat suatu sistem yang menyerupai robot vision, yaitu
pengenalan alat-alat stasioneri.
Pada tugas akhir ini, sistem pengenalan alat-alat stasioneri dibuat dengan
menggunakan webcam dan laptop. Secara garis besar proses kerja dari sistem ini ialah
preprocessing, ekstraksi ciri kode freeman, fungsi jarak Canberra dan kemudian program
akan menampilkan hasil pengenalan ke layar monitor berupa huruf atau text.
Sistem pengenalan alat-alat stasioneri berhasil dibuat dan berjalan dengan baik. Hasil
pengujian nilai koefisien ekstraksi ciri dari kode freeman terkecil dengan tingkat pengenalan
terbaik yaitu sejumlah 64 dengan persentase tingkat pengenalan mencapai 100%.
Kata kunci : Webcam, preprocessing, kode Freeman, jarak Canberra.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
Until now, the development of robot technology continues to grow so rapidly. Robot
are created mostly use to help human’s work. One of robot which is ever created by human
is a vision robot. Vision robot is very helpful for human’s work in sorting the object.
Therefore, in this final project will be made a system that resembles a vision robot. The
system is recognition of stasionary tools.
In this final project, the system of stasionary tool made by using a webcam and
laptop. The outline of work process from this system is preprocessing, extraction of freeman
code feature and Canberra distance. Then the program will be display the results of
recogniotion to the monitor screen in the formof letter or text.
Recognition of tool stasionary system is created successfully and running well.
Testing result show that the smallest value of Freeman code with the best recognition level
is 64 with percentage of 100%.
Keyword : webcam, preprocessing, Freeman code, Canberra distance
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji dan Syukur Penulis panjatkan kepada Tuhan Yesus dan Bunda Maria atas
karunia dan berkat-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir ini
dengan baik. Laporan ini disusun untuk memenuhi syarat untuk memperoleh gelar sarjana.
Selama pembuatan tugas akhir ini, penulis menyadari adanya bantuan dan dukungan
dari berbagai pihak. Oleh karena itu, penulis mengucapkan terima kasih kepada :
1. Tuhan Yesus dan Bunda Maria yang kasih-Nya tidak pernah berkesudahan.
2. Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.
3. Ketua Program Studi Teknik Elektro Universitas Sanat Dharma.
4. Dr. Linggo Sumarno selaku dosen pembimbing yang begitu sabar dan tulus hari
memberika bimbingan, kritik, saran, serta motivasi dalam penulisan skripsi ini.
5. Ibu Wiwien Widyastuti, ST., M.T. dan Bapak Agustinus Bayu Primawan S.T.,
M.Eng. sebagai dosen penguji yang telah memberikan masukan , bimbingan, dan
saran dalam merevisi skrpsi ini.
6. Papa dan Mama yang tidak pernah menyerah dalam mendukung, menasehati dan
mendoakanku.
7. Adik-adikku serta keluarga besar yang selalu mendoakan dari Sulawesi.
8. Emanuel Febriano Dwi Saputra yang selalu ada mendukung, menemani dan
memberi perhatian selama penulisan tugas akhir ini.
9. Adikku Maria Estrella yang selalu mendukung dan menjadi keluarga terdekat
selama di Jogja.
10. Teman-teman Teknik Elektro khususnya angkatan 2014.
11. Seluruh Dosen dan Laboran Program Studi Teknik Elektro, Fakultas Sains dan
Teknologi Universitas Sanata Dharma yang telah membantu dan memberikan
ilmu selama belajar di Teknik Elektro.
12. Seluruh Staff Fakultas Sains dan Teknologi Universitas Sanata Dharma atas
bantuan dalam melayani mahasiswa.
13. Semua pihak yang tidak dapat disebutkan satu persatu atas semua dukungan yang
telah diberikan dalam penyelesaian skripsi ini.
Penulis menyadari bahwa dalam penyusunan tugas akhir ini jauh dari kesempurnaan.
Oleh karena itu, penulis mengharapkan masukan, kritik dan saran yang membangun agar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
skripsi ini menjadi lebih baik. Dan semoga skripsi ini dapat bermanfaat sebagaimana
mestinya. Trima Kasih
Yogyakarta, 06 Juni 2018
Stefhani Lestari Rumissing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
Halaman Sampul (Bahasa Indonesia) ..................................................................................... i
Halaman Sampul (Bahasa Inggris) ........................................................................................ ii
Halaman Persetujuan ............................................................................................................ iii
Halaman Pengesahan ............................................................................................................ iv
Halaman Keaslian Karya ....................................................................................................... v
Halaman Persembahan ......................................................................................................... vi
Lembar Persetujuan Publikasi Karya .................................................................................. vii
Intisari ................................................................................................................................. viii
Abstract ................................................................................................................................. ix
Kata Pengantar ....................................................................................................................... x
Daftar Isi .............................................................................................................................. xii
Daftar Gambar ..................................................................................................................... xv
Daftar Tabel ....................................................................................................................... xvii
BAB I PENDAHULUAN ..................................................................................................... 1
1.1.Latar Belakang ............................................................................................................. 1
1.2 Tujuan dan Manfaat Penelitian .................................................................................... 2
1.3 Batasan Masalah .......................................................................................................... 2
1.4. Metode Peneliatian ..................................................................................................... 3
BAB II DASAR TEORI ........................................................................................................ 5
2.1.Alat-alat Stasioneri ...................................................................................................... 5
2.2. Webcam Logitech C270 ............................................................................................ 6
2.3 Pengolahan Citra Digital ............................................................................................ 6
2.3.1. Pegertian Citra Digital ....................................................................................... 6
2.3.2. Citra RGB .......................................................................................................... 7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.3.3. Citra Biner ......................................................................................................... 8
2.3.4. Mengkonversi Citra RGB ke Biner ................................................................... 9
2.4. Ektraksi Ciri ............................................................................................................. 11
2.4.1. Resizing ........................................................................................................... 11
2.4.2. Kontur Moore ................................................................................................. 11
2.4.3 Kode Freeman. ................................................................................................. 14
2.5. Data Referensi ......................................................................................................... 17
2.6. Jarak ......................................................................................................................... 17
BAB III PERANCANGAN ................................................................................................. 19
3.1. Perancangan Sistem Pengenalan Alat-alat Stasioneri .............................................. 19
3.2. Perancangan Hardware ........................................................................................... 20
3.3. Sistem Pengenalan Citra Alat-alat Stasioneri .......................................................... 20
3.3.1. Pengambilan Citra Alat-alat Stasioneri .......................................................... 21
3.3.2. Tahap Preprocessing ...................................................................................... 22
3.3.3. Tahap Ekstraksi Ciri ....................................................................................... 23
3.3.4. Proses Perhitungan Fungsi Jarak .................................................................... 26
3.3.5. Tahap Penentuan Keluaran ............................................................................. 26
3.4. Pembuatan Data Referensi....................................................................................... 27
3.5 Perancangan Tampilan GUI Matlab ........................................................................ 28
3.6. Pengujian Citra Alat-alat Stasioneri ........................................................................ 29
3.6.2. Pengujian Secara Tidak Langsung ................................................................. 30
3.6.2. Pengujian Secara Langsung ............................................................................ 30
BAB IV PERANCANGAN................................................................................................ 32
4.1. Implementasi Program ............................................................................................. 32
4.1.1. Tombol Camera On ........................................................................................ 32
4.1.2. Tombol Capture ............................................................................................. 33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
4.1.3. Popupmenu ..................................................................................................... 33
4.1.4. Tombol Process .............................................................................................. 34
4.1.4.1. Program Pembanding Data Referensi ................................................... 34
4.1.4.2. Program Konversi RGB ke Biner .......................................................... 35
4.1.4.3. Program Operasi Dilasi ......................................................................... 37
4.1.4.4. Program Resizing ................................................................................... 38
4.1.4.5. Ekstraksi Ciri ......................................................................................... 38
4.1.4.6. Program Pembanding Jarak Canberra ................................................... 39
4.1.4.7. Program Penentuan Keluaran ................................................................ 39
4.1.5 . Tombol Reset ................................................................................................ 40
4.1.6. Tombol End ................................................................................................... 41
4.2. Pengujian Data Tidak Langsung ........................................................................... 41
4.3. Pengujian Data Secara Langsung .......................................................................... 44
4.4. Analisis Hasil Data Pengujian Tidak Langsung .................................................... 46
4.5. Analisis Hasil Data Pengujian Secara Langsung ................................................... 47
4.6. Keterbatasan Metodologi ....................................................................................... 55
BAB V KESIMPULAN DAN SARAN .............................................................................. 56
5.1. Kesimpulan ........................................................................................................... 56
5.2. Saran .................................................................................................................... 56
DAFTAR PUSTAKA .......................................................................................................... 57
LAMPIRAN ................................................................................................................ L1-L29
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
Gambar 2.1. Alat-alat Stasioneri ........................................................................................... 5
Gambar 2.2. Logitech C270 .................................................................................................. 6
Gambar 2.3. Koodinat Citra Digital ...................................................................................... 7
Gambar 2.4. Warna RGB dalam bentuk kubus ..................................................................... 8
Gambar 2.5. Citra Biner ........................................................................................................ 9
Gambar 2.6. Citra Grayscale ............................................................................................... 10
Gambar 2.7. Proses Pelacakan Kontur Moore ..................................................................... 13
Gambar 2.8. Skema 8 arah Mata Angin Kode Freeman ...................................................... 15
Gambar 2.9. Kontur Moore dengan Koordinatnya .............................................................. 16
Gambar 3.1. Gambaran Umum Perancangan Sistem .......................................................... 19
Gambar 3.2. Perancangan Hardware ................................................................................... 20
Gambar 3.3. Blok Diagram Sistem Pengenalan Alat-alat stasioneri ................................... 21
Gambar 3.4. Diagram Alir Pengambilan Citra .................................................................... 21
Gambar 3.5. Diagram Air Tahap Preprocessing ................................................................ 22
Gambar 3.6. Diagram Alir Tahap Ektraksi Ciri .................................................................. 23
Gambar 3.7. Diagram Alir Deteksi Kontur Moore .............................................................. 24
Gambar 3.8. Diagram Alir Kode Freeman .......................................................................... 25
Gambar 3.9. Diagram Alir Fungsi Jarak Canberra ............................................................. 26
Gambar 3.10 Diagram Alir Penentuan Keluaran................................................................. 27
Gambar 3.11. Diagram Alir Pengambilan Data Referensi .................................................. 28
Gambar 3.12. Perancangan GUI .......................................................................................... 29
Gambar 4.1. Program Kamera Aktif ................................................................................... 31
Gambar 4.2. Program Ambil Gambar ................................................................................. 32
Gambar 4.3. Program Popupmenu ...................................................................................... 33
Gambar 4.4. Program Basis Data ........................................................................................ 34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 4.5. Program Konversi Citra RGB ke Biner .......................................................... 35
Gambar 4.6. Konversi Citra RGB ke Biner ......................................................................... 36
Gambar 4.7. Ukuran Elemen Penstruktur ............................................................................ 37
Gambar 4.8. Program Operasi Dilasi .................................................................................. 37
Gambar 4.9. Program Resizing ............................................................................................ 38
Gambar 4.10. Program Ekstraksi Ciri ................................................................................. 40
Gambar 4.11. Program Pembanding Jarak Canberra ......................................................... 40
Gambar 4.12. Program Program Penentuan Keluaran ........................................................ 41
Gambar 4.13. Program Tombol Reset ................................................................................. 42
Gambar 4.14. Program Tombol End ................................................................................... 42
Gambar 4.15. Tampilan GUI Pengujian Tidak Langsung ................................................... 43
Gambar 4.16. Contoh Ketika GUI Dijalankan .................................................................... 44
Gambar 4.17. Tampilan GUI Pengujian Langsung ............................................................. 45
Gambar 4.18. Contoh Ketika GUI Dijalankan .................................................................... 46
Gambar 4.19. Kondisi Pengambilan Data ........................................................................... 46
Gambar 4.20. Posisi Translasi yang dapat Dikenali ............................................................ 52
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR TABEL
Tabel 2.1. Hasil Deteksi Kontur Moore ............................................................................. 14
Tabel 2.2. Indeks dan Kode Rantai Dua Piksel yang Bertetangga ...................................... 16
Tabel 3.1. Keterangan GUI ................................................................................................. 29
Tabel 4.1. Pengaruh Variasi Resizing terhadap Tingkat Pengenalan .................................. 48
Tabel 4.2. Hasil Pengujian Variasi Resizing 10% ............................................................... 50
Tabel 4.3. Hasil Pengujian Variasi Resizing 5% ................................................................. 50
Tabel 4.4. Pengaruh Variasi Resizing Terhadap Tingkat Pengenalan ................................. 51
Tabel 4.5. Pengaruh Variasi Translasi Terhadap Tingkat Pengenalan ................................ 51
Tabel 4.6. Pengaruh Variasi Rotasi ..................................................................................... 53
Tabel 4.7. Pengaruh Variasi Skala ..................................................................................... 54
Tabel 4.8. Rerata Pengaruh Variasi Translasi, Rotasi dan Skala ........................................ 55
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Mata merupakan salah satu penting pada tubuh manusia. Mata atau indera
penglihatan manusia memiliki kemampuan untuk mengenali suatu objek atau bentuk yang
memiliki kemiripan sangat sempurna sekalipun. Manusia akan mengumpulkan benda atau
objek yang terekam oleh lensa mata sesuai dengan kategori jenis yang telah ditentukan oleh
manusia sendiri [1].
Seiring dengan semakin berkembangnya teknologi khususnya pada bidang software,
manusia membuat terobosan baru dalam membuat sebuah aplikasi yang digunakan untuk
mengenali bentuk suatu benda. Sama seperti mata manusia yang bisa membedakan bentuk-
bentuk dari setiap objek yang ditangkap oleh indera penglihatan. Penelitian tentang
pembuatan software pengenalan bentuk atau objek seperti angka, tanda tangan seseorang,
tulisan/abjad, sidik jari bahkan wajah manusia sekalipun telah banyak dilakukan dengan
mencoba berbagai metode. Pangaplikasian software bisa dilakukan pada robot yang
menyerupai manusia yang dapat mengenali atau mengidentisikasi objek yang ada
disekitarnya contohnya pada robot vision. Sehingga dapat membantu manusia dalam
mengambil peralatan.
Pada penelitian ini, peneliti ingin mengembangkan penelitian sebelumnya tentang
pengenalan objek khususnya alat-alat stasioneri. Penelitian yang pernah dilakukan terhadap
pengenalan alat-alat stasioneri dilakukan oleh Febriyanto[1] dimana penelitian tersebut
menggunakan ekstraksi ciri Discrete Sine Transform (DST). Pada penelitian tersebut
menggunakan nilai koefisien DST sejumlah 171 koefisien. Berdasarkan penelitian yang
dilakukan oleh Febriyanto semakin besar koefisien yang digunakan, maka semakin besar
pula nilai fungsi jarak antara citra alat stasioneri satu dengan citra lainnya sehingga makin
mempermudah dalam membedakan citra alat stasioneri yang satu dengan yang lain.
Sehingga disarankan menggunakan ekstraksi ciri yang berbeda agar dapat membuat jumlah
koefisien yang dipakai menjadi lebih sedikit.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Ekstraksi ciri kode Freeman dapat menjadi jawaban dari permasalah tersebut.
Penelitian yang pernah dilakukan dengan ekstraksi ciri kode Freeman dilakukan oleh
Nuryuliani dkk[2] yaitu pengenalan karakter tulisan tangan dimana kode Freeman dapat
mempermudah analisis pengenalan karakter tulisan sehingga mudah diidentifikasi. Selain
itu penelitian lain menggunakan ektraksi ciri kode rantai diakukan oleh Ezy Claudia Nivsky
dkk[3] yaitu pencocokan citra daun telinga berbasis tekstur dan bentuk yang mana pada
penelitian tersebut menggunakan fungsi jarak Canberra, dari hasil penelitian tersebut dapat
dibuktikan bahwa aplikasi biometrika tersebut berfungsi secara optimal dengan persentasi
keberhasilan 100%. Sehingga pada penelitian ini peneliti juga menggunakan fungsi jarak
tersebut selain karena fungsi jarak Canberra digunakan untuk mengukur tingkat kemiripan
dua buah vektor juga fungsi jarak ini sangat peka terhadap sedikit perubahan dengan kedua
koordinat yang mendekati nol.
Pada penelitian ini, peneliti membuat sistem pengenalan alat-alat stasioneri seperti
ballpoint, tipe-x, paper klip, cutter, gunting, stabilo, steples, buku kecil, dan pelubang kertas.
Secara garis besar tahapan pengenalan citra diawali dengan mengambil data berupa gambar
citra dari alat stasioneri menggunakan webcam. Data tersebut kemudian akan diproses
melalui tahap preprocessing dan ekstraksi ciri. Pada tahap ekstraksi ciri diawali dengan
deteksi kontur menggunakan kontur Moore kemudian kode Freeman. Kemudian dengan
menggunakan jarak Canberra akan dicari jarak minimum antara citra pada basis data dengan
citra hasil ekstraksi ciri untuk diperoleh hasil keluaran berupa teks yang akan ditampilkan
pada layer monitor.
1.2 Tujuan dan Manfaat Penelitian
Tujuan dari penulisan penelitian tugas akhir adalah untuk memperbaiki sistem
pengenalan pola bentuk dari alat stasioneri dan memperkecil jumlah koefisien yang
digunakan pada aplikasi pengenalan alat stasioneri menggunakan ekstraksi ciri Freeman.
Manfaat dari penelitian adalah sebagai pengembangan aplikasi robot vision untuk
mengenali alat-alat stasioneri seperti ballpoint, tipe-x, paper klip, cutter, gunting, stabilo,
steples, buku kecil, dan pelubang kertas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.3 Batasan Masalah
Sistem pengenalan alat-alat stasioneri menggunakan metode ekstraksi ciri Freeman
ini terdiri dari perangkat keras (Hardware) dan perangkat lunak (Software). Perangkat keras
terdiri dari webcam dan laptop. Perangkat lunak yang digunakan adalah Matlab. Matlab ini
akan mengatur seluruh proses pengolahan yang di-capture oleh webcam.
Pada perancangan sistem otomatisasi ini, peneliti memfokuskan pada pembuatan
perangkat lunak komputer untuk pengenalan bentuk dari alat-alat stasioneri. Peneliti
menetapkan batasan masalah dalam penelitian ini, antara lain sebagai berikut :
a. Objek yang dikenali adalah alat-alat stasioneri seperti ballpoint, tipe-x, paper clip,
cutter, gunting, stabilo, steples, buku kecil (note), dan pelubang kertas.
b. Warna background yang digunakan adalah berwarna hitam.
c. Menggunakan ekstraksi ciri kode rantai Freeman.
d. Pengambilan citra dengan menggunakan webcam merk Logitech C270h.
e. Tinggi atau jarak pengambilan gambar 48 cm.
f. Keluaran berupa teks pada layar monitor.
1.4 Metode Penelitian
Adapun metode penelitian pada pengerjaan tugas akhir adalah :
a. Peneliti mencari dan mengumpulkan referensi seperti jurnal-jurnal ilmiah, buku-
buku, dan website tentang pengenalan suatu objek, pemorgraman Matlab, image
processing, dan kode rantai Freeman.
b. Pembuatan Software
Pembuatan software pada penelitian ini diawali dengan membuat GUI pada
MATLAB kemudian medesain tampilan interface dari pengenalan alat stasioneri.
Langkah selanjutnya adalah membuat program untuk proses preprocessing,
ekstraksi ciri dan basis data. Sistem otomatisasi akan bekerja jika user atau
pengguna menekan tombol “Camera On” yang ada pada tampilan visual yang
tersedia dalam software. Sistem akan mengolah perintah yang diterima hingga
pengguna menekan tombol “Capture”. Setelah itu, penggunakan memberikan
perintah untuk memulai proses pengolahan gambar dari alat-alat stasioneri .
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
Kemudian hasil keluaran pada layar komputer akan berupa teks dari nama masing-
masing alat stasioneri
c. Pembuatan Basis Data
Pembuatan basis data diawali dengan mengambil data berupa citra dari alat-
alat stasioneri. Kemudian data tersebut diproses pada tahap preprocessing yaitu
mengkonversi citra RGB ke citra biner. Hasil dari tahap preprocessing akan
menjadi masukan pada tahap ekstraksi ciri. Tahap ekstraksi ciri diawali dengan
operasi deteksi kontur menggunakan kontur Moore. Selanjutnya, mencari kode
rantai menggunakan kode Freeman. Tahap berikutnya adalah resizing, dimana
kode rantai akan divariasikan dengan cara mengurangi jumlah piksel sebanyak
90%, 80%, 70%, 60%, 50%,40%,30%,20%, 10% dan 5 %. Hasil dari ekstraksi ciri
disimpan dalam folder dan digunakan sebagai acuan dalam pengenalan alat-alat
stasioneri. Adapun banyaknya data yang disimpan pada basis data yaitu 90 data (
9 alat stasioneri x 10 variasi jumlah kode rantai). Jarak antara webcam dengan alat
stasioneri adalah 48 cm.
d. Pengambilan data
Penelitian ini menggunakan 10 variasi jumlah kode rantai dan 9 alat
stasioneri. 10 variasi kode rantai yang digunakan adalah 90%, 80%, 70%, 60%,
50%,40%,30%,20%, 10% dan 5 % . Masing-masing data kemudian ditambahkan
dan didapatkan data sebanyak 90 data pada penelitian ini. Pengambilan data dibagi
dalam dua keadaan yaitu pengujian secara tidak langsung dan pengujian secara
langsung.
e. Analisis dan penyimpulan
Analisis data yang dilakukan dengan mengamati pengaruh panjang kode
Freeman dalam mengenali suatu objek, khususnya dalam pengenalan alat-alat
stasioneri dengan melihat jumlah koefisien ekstraksi ciri terkecil yang digunakan.
Penyimpulan dilakukan dengan melihat pengaruh kinerja sistem dengan
menggunakan ekstraksi ciri kode Freeman dalam pengenalan objek dan variasi
jumlah kode kode Freeman.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB II
DASAR TEORI
2.1 Alat-alat Stationeri
Menurut Kamus Besar Bahasa Indonesia arti dari kata stasioneri adalah alat-alat
tulis dan peralatan kerja [4]. Contoh alat alat stationeri meliputi peralatan tulis menulis (
ballpoint, penghapus, pensil, penggaris, dan lainnya), alat tulis menulis kantor ( stabilo,
gunting, kertas hvs, pelubang kertas, note (buku catatan) dan lainnya, dan juga souvenir).
Gambar stasioneri yang akan digunakan dalam penelitian dapat dilihat pada Gambar 2.1.
(a) (b) (c) (d) (e)
(f) (g) (h) (i)
Gambar 2.1. Alat-alat stasioneri (a) note (b) pelubang kertas (c) steples (d) stabilo (e)
ballpoint (f) cutter (g) tipe-x (h) paper clip (i) gunting
Alat-alat stasioneri diatas sama dengan peralatan yang digunakan pada penelitian
sebelumnya oleh Febriyanto [1]. Peneliti menggunakan alat yang sama agar bisa melihat
pengaruh kode rantai Freeman dalam mengenali suatu alat-alat stasioneri.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
2.2 Webcam Logitech C270
Webcam atau web camera merupakan camera yang biasanya digunakan untuk
melakukan panggilan video melalui computer dengan cara dihubungkan pada port USB.
Webcam terdiri dari lensa sederhana, cover, dan kabel yang digunakan untuk
menghubungkannya dengan computer. Penggunaan webcam sangat sederhana dengan
menginstall software yang mendukung webcam pada computer, webcam sudah dapat
digunakan untuk melakukan pengambilan gambar/citra. Webcam Logitech C270 memiiliki
resolusi 1280 X 720 piksel dan kualitas gambar yang dihasilkan 3 Megapiksel.
Gambar 2.2 Logitech C270 [5].
2.3 Pengolahan Citra Digital
2.3.1 Pengertian Citra Digital
Citra (image) merupakan gambar dua dimensi yang dihasilkan dari tangkapan alat-
alat optik, misalnya pada mata manusia, kamera, scanner, dan sebagainya. Citra digital
diambil dari pendekatan berdasarkan sampling yang merepresentasikan besar kecilnya
ukuran dari piksel pada citra. Bila dilihat dari sudut pandang sistematis, citra merupakan
fungsi continue dari intensitas cahaya pada bidang dua dimensi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Citra digital merupakan sebuah larik (array) yang berisikan nilai-nilai yang real
maupun komplek yang direpresentasikan dalam deretan bit tertentu[6]. Posisi koordinat
citra digital dapat dilihat pada Gambar 2.3.
Gambar 2.3. Koordinat Citra Digital [7]
Keterangan :
M = Banyak piksel per baris (panjang)
N = Banyak piksel per kolon (lebar)
Citra digital tersusun dalam bentuk grid. Setiap kotak yang terbentuk disebut piksel
dan mempunyai titik koordinat (x,y). Sumbu x (horizontal) merepresentasikan kolom
(column) , sedangkan sumbu y (vertical) merepresentasikan baris (row, line). Setiap piksel
memiliki nilai yang menunjukkan intensitas keabuan pada piksel tersebut.
f(x,y) = [
f(0,0) f(0,1) ⋯ f(0, N - 1)
f(1,0) f(1,1) ⋯ f(1, N - 1) ⋮
f(M - 1,0)⋮
f(M - 1,1) ⋮
⋯ f(M - 1, N - 1)
] (2.1)
Nilai pada posisi (x,y) disebut dengan picture elements atau piksel pada citra digital.
Kumpulan piksel tersebut yang menjadi penyusun suatu objek.
2.3.2 Citra RGB
Citra RGB merupakan citra berwarna yang mengandung informasi warna. Setiap
piksel pada citra RGB merupakan gabungan dari variasi nilai intensitas tiga warna dasar
yaitu merah R (red), hijau G (green), dan biru B (blue). Tiga warna dasar pada umumunya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
dikodekan dengan 8 bit , dengan kata lain total bit dari ketiga warna dasar tersebut adalah 3
x 8 = 24 bit (tiga byte). Sehingga variasi warna maksimum sebanyak 224 = 16.777.216 variasi
warna dalam satu citra [8].
Secara umum, citra berwarna dapat dipresentasikan dalam bentuk kubus tiga dimensi,
dengan tiga warna dasar atau utama yaitu merah, hijau dan biru berada pada ujung sumbu
kubus. Sedangkan sudut-sudut kubus selain pada sudut utama, menunjukkan nilai warna
sekunder yang dihasilkan dai perpaduan dari warna dasar. Warna sekunder tersebut yaitu
cyan, magenta, dan yellow. Pada titik pusat koordinat (0,0,0), merepresentasikan warna
hitam, sedangkan warna putih terletak disudut kubus yang letaknya paling jauh dari titik
pusat koordinat atau letakkan berada pada titik koordinat (1,1,1). Diagonal ruang yang
terbentuk dengan menarik garis putus-putus dari titik koordinat pusat (0,0,0) sampai
koordinat (1,1,1) akan menghasilkan gradasi warna keabuan atau grayscale.
Gambar 2.4 Warna RGB dalam bentuk kubus [9]
2.3.3 Citra Biner
Citra biner merupakan citra yang memiliki warna hitam dan putih saja. Citra biner
hanya mempunyai dua kemungkinan nilai, seperti 1 (on) dan 0 (off) yang disimpan dalam
sebuah mtriks[10]. Citra ini disebut juga sebagai citra B&W (black and white) atau citra
monokrom. Piksel yang bernilai 1 merepresentasikan warna hitam dan piksel bernilai 0
merepresentasikan warna putih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
Citra biner dapat diatur dari nilai ambang (threshold) yang diinginkan jika nilai piksel
lebih kecil daripada batas ambang maka nilai tersebut diubah menjadi 0 (hitam), sedangkan
jika lebih besar atau sama dengan nilai ambang maka nilai tersebut diubah menjadi 1 (putih).
Citra biner dapat dilihat pada Gambar 2.6.
Gambar 2.5. Citra Biner [11]
2.3.4 Mengkonversi Citra RGB ke Biner
Mengkonversi citra RGB ke biner pertama kali diawali dengan proses grayscale,
proses grayscale merupakan proses mengubah citra berwarna (RGB) ke citra berskala
keabuan. Mengkonversi citra RGB ke biner dilakukan dengan menerapkan suatu nilai yang
dikena sebagai nilai ambang (Threshold).
Citra grayscale merupakan citra yang tidak memiliki komponen warna RGB (Red,
Green, Blue). Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu, bervariasi
pada warna hitam pada bagian yang intensitas terlemah dan warna putih pada intensitas
terkuat [12]. Citra grayscale terdiri dari x dan y didalam spasial koordinat dan memiliki
intensitasnya masing-masing. Setiap gambar pada citra grayscale memiliki intensitas antara
0 (hitam) hingga 255 (putih) dalam citra 8 bitnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Gambar 2.6. Citra Grayscale [13]
Secara umum rumus yang dipakai untuk mengubah citra RGB ke citra berskala
keabuan dapat digunakan persamaan [14] :
𝑰 = 𝟎, 𝟐𝟗𝟖𝟗𝒙𝑹 + 𝟎, 𝟓𝟖𝟕𝟎𝒙𝑮 + 𝟎, 𝟏𝟏𝟒𝟏𝒙𝑩
(2.2)
keterangan :
I = Tingkat keabuan
R,G,B = Red, Green, Blue
Proses selanjutnya untuk mengkonversi citra berskala keabuan ke citra biner dapat
mengatur nilai ambang (threshold). Adapun metode yang digunakan untuk mengkonversi
citra berskala keabuan ke citra biner yaitu metode otsu. Pada metode ini secara otomatis nilai
ambang dari tingkat keabu-abuan histrogram melalui analisis diskriminan [15]. Metode otsu
terdiri dari beberapa tahapan. Tahapan pertama, probabilitas nilai intensitas i dihitung
melalui persamaan[15] :
𝒑𝒊 = 𝒏𝒊/𝑵 (2.3)
Keteranan :
𝒏𝒊 = jumlah piksel dengan intensitas i.
N = jumlah semua piksel dalam citra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Untuk menghitung nilai zeroth- cumulative moment, first- order cumulative moment
dan nilai rerata dari gambar original dapat dilihat secara berturut pada persamaan dibawah
[15]:
ω(k) = ∑ 𝑝𝑖𝑘𝑖=1 (2.4)
𝜇(𝑘) = ∑ 𝑖𝑘𝑖=1 𝑝𝑖 (2.5)
𝜇𝑇 = 𝜇(𝐿) = ∑ 𝑖. 𝑝𝑖𝐿𝑖=1 (2.6)
Untuk mendapatkan nilai threshold atau nilai ambang k dapat dihitung menggunakan
persamaan sebagai berikut [15]:
𝜎2
𝐵(𝑘) = max 𝜎
2
𝐵(𝑘) (2.7)
dengan
𝜎2
𝐵(𝑘) =
[𝜇𝑇𝜔(𝑘)−𝜇(𝑘)]2
𝜔(𝑘)[1−𝜔(𝑘)] (2.8)
2.4. Ekstraksi Ciri
Ekstraksi ciri merupakan tahapan yang penting dalam proses pengenalan objek. Hasil
dari tahap ektraksi ciri akan digunakan sebagai acuan untuk membedakan antara objek yang
satu dengan objek yang lainnya melalui beberapa tahapan. Pada penelitian ini tahap ekstraksi
ciri terdiri dari beberapa tahapan yang dibutuhkan yaitu operasi opening, deteksi kontur dan
kode rantai Freeman.
2.4.1 Resizing
Resizing adalah proses untuk mengubah ukuran suatu citra atau objek dalam piksel.
Dengan cara mengurangi atau menambahkan jumlah piksel penyusun dari citra tersebut baik
pada ukuran panjang maupun ukuran lebar. Dalam penelitian ini dilakukan variasi resizing
untuk memvariasikan jumlah kode rantai. Kode rantai bervariasi dari kode yang terpanjang
sampai yang terpendek. Tujuan dari memvariasikan jumlah kode rantai adalah peneliti ingin
melihat pada variasi keberapa system masih akan mengenali objek.
2.4.2 Kontur Moore
Mengikuti bentuk kontur (contour) merupakan suatu metode yang digunakan untuk
mendapatkan batas tepi suatu objek dalam bentuk koordinat. Salah satu cara untuk
mendeteksi tepi suatu objek adalah menggunakan kontur Moore .
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
Algoritma 1 : Memperoleh Kontur Moore [14].
Masukan :
• f (x,y): Citra masukan berukuran x baris dan y kolom
Keluaran :
• kontur : Larik yang berisi piksel-piksel kontur.
1. Dapatkan piksel bernilai 1 pada bagian terkiri dan teratas. Posisi piksel dicatat
pada 𝑏0 dan posisi untuk piksel berikutnya dicatat pada 𝑐0, yang pada awalnya
diisi 4 (arah barat di Gambar 2.8 (c)).
2. Periksa 8 tetangga 𝑏0 searah jarum jam dimulai dari 𝑏0. Piksel pertama yang
bernilai satu dicatat pada 𝑏1. Adapun posisi untuk piksel yang mendahului 𝑏1
dicatat pada 𝑐1.
3. Kontur(1) 𝑏0, kontur(2) 𝑏1, jum 2
4. b 𝑏1 dan c 𝑐1
5. WHILE true
a. Cari piksel pada 8 tetangga yang pertama kali bernilai 1 dengan
pencarian dimulai dari arah c dengan menggunakan pola arah jarum jam.
b. Catat posisi piksel tersebut ke b.
c. Catat posisi yang mendahului piksel tersebut ke c.
d. Tambahkan b sebagai bagian kontur:
Jum jum + 1
Kontur(jum) b
e. if b = 𝑏0
Keluar dari while
end-if
end-while
Berikut penerapan algoritma kontur Moore dilihat pada contoh Gambar 2.8. dibawah ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
(a)
(b)
(c)
(d)
Gambar 2.7 Proses Pelacakan Kontur Moore (a) Objek citra (b) langkah-langkah deteksi
kontur Moore (c) hasil kontur (d) penomoran arah pencarian
Untuk memahami algoritma Moore, dapat dilihat Gambar 2.7. Gambar 2.7(a)
merupakan keadaan objek pada citra. Piksel bernilai 1 merupakan objek citra sedangkan
yang bernilai 0 merupakan latar belakang. Piksel bernilai 1 menyatakan bagian objek dan
yang bernilai 0 adalah bagian latar belakang. Pada contoh tersebut, pelacakan akan dimulai
pad posisi (2,2), yaitu piksel bagian objek yang terletak paling kiri dan paling atas. Adapun
titik pencarian untuk piksel kedua dimulai di arah barat atau kiri piksel (2,2) tersebut.
Pencarian dilakukan searah jarum jam. Pada langkah pertama, diperoleh piksel pada posisi
(2,3). Pencarian berikutnya akan dimulai di posisi (1,3). Pada pencarian kedua, piksel yang
didapat, yaitu posisi (2,4), dengan titik pencarian berikutnya dimulai pada posisi (1,4). Pada
Objek
Piksel objek paling kiri
dan paling atas sebagai
titik awal pelacakan
Kontur
1 2 3 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
pencarian ketiga, piksel yang didapat adalah pada (2,5) dengan titik pencarian berikutnya
dimulai di posisi (1,5). Pada pencarian keempat, piksel yang didapat yaitu (3,4), dengan titik
pencarian berikutnya dimulai di posisi (3,5). Jika langkah seperti it uterus diulang, suatu
ketika akan diperoleh piksel yang sam dengan piksel yang pertama kali menjadi bagian
kontur. [14]
Berdasarkan algoritma 1 dengan menggunakan contoh pada Gambar 2.8(a) hasil
deteksi kontur berupa posisi piksel objek (x,y) dapat dilihat pada Tabel 2.1. hasil deteksi
kontur ini akan menjadi masukan untuk kode Freeman. Hasil dalam tabel dibawah
merupaakn titik koordinat dari tepi objek.
Tabel 2.1. Hasil Deteksi Kontur Moore
x y
2 2
2 3
2 4
2 5
3 4
4 5
5 5
5 4
5 3
5 2
4 3
3 2
2 2
2.4.3 Kode Freeman
Kode Freeman merupakan metode deteksi bentuk yang akan digunakan dalam
penelitian ini. Tak lain karena metode Freeman ini akan bergerak berurutan mengikuti
bentuk dari objek dengan batas pixel berdasarkan 8 konektivitas atau 8 arah mata angin.
Metode ini dikenal sebagai metode yang banyak diguakan dalam pengenalan objek karena
kompresi informasinya yang dianggap cukup baik [3].
Kode Freeman atau kode rantai banyak digunakan dalam pengolahan citra untuk
merepresentasikan garis, kurva atau tepi dari suatu daerah. Penelitian tentang kode rantai
diperkenalkan oleh Freeman pada tahun 1961 (Freeman, 1961) yang digunakan untuk
merepresentasikan kurva digital. Kode Freeman bergerak sepanjang kurva digital atau batas
pixel yang berurutan berdasarkan 8 konektivitas. Arah dari setiap gerakan dikodekan dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
menggunakan skema nomor {i|i=0,1,2,3,4,5,6,7} yang merupakan kelipatan sudut 45 derajat
melawan arah jarum dari posisi sumbu x positif. [2]
Gambar 2.8. Skema 8 arah mata angin kode Freeman [2]
Algoritma 2 : Memperoleh Kode Rantai Freeman :
Masukan :
• Larik yang berisi piksel – piksel kontur Moore yang telah terurutkan
Keluaran :
• Deretan Kode Rantai
1. Dapatkan piksel awal pada bagian terkiri atas sesuai dengan larik piksel dari
kontur Moore.
2. Periksa 8 tetangga dari piksel awal yang bernilai 1 searah jarum jam (lihat
gambar 2.7(b)), piksel selanjutnya yang bernilai 1 dicatat ∆x dan ∆y nya.
3. Hitung indeks
4. Cocokkan indeks dengan kode rantai
5. Catat kode rantai
6. Selesai
Untuk mempermudah perolehan kode rantai piksel yang menjadi tetangga suatu
piksel, perlu pembuatan indeks yang dapat dihitung melalui rumus berikut :
Indeks = 3∆𝑦 + ∆𝑥 + 5 (2.3)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Dalam hal ini, ∆x menyatakan selisih nilai kolom dua piksel yang bertetangga dan
∆y menyatakan selisih nilai baris dua piksel yang menjadi tetangga suatu piksel [14].
Hubungan kode rantai dan indeks pada persamaan 2.3 tersaji di table 2.2.
Tabel 2.2. Indeks dan kode rantai dua piksel yang bertetangga [13]
∆x ∆y Kode Rantai Indeks = 3∆y+∆x + 5
0 +1 6 8
0 -1 2 2
-1 +1 5 7
-1 -1 3 1
+1 +1 7 9
+1 -1 1 3
-1 0 4 4
Pada tabel diatas untuk indeks 5 dan 6 memiliki kode rantai 0. Ditinjau dari model
kode rantai pada gambar 2.9 posisi kode rantai 0 berada disebelah kanan searah jarum jam
3( ) dengan ∆x = +1 dan ∆y = 0 sehingga dapat dihitung indeksnya
3(0) + 1 + 5 = 6
Berdasarkan contoh gambar 2.7 yang sudah dilakukan pelacakan yaitu kontur Moore
pada table 2.1 selanjutnya untuk proses mencari kode rantainya berdasarkan indeks dua
piksel yang bertetangga akan dijelaskan sebagai berikut :
Gambar 2.9. kontur Moore dengan koordinatnya
Piksel paling kiri dan paling atas menjadi titik awal pelacakan kontur, yaitu pada
koordinat (2,2) kemudian akan melacak searah jarum jam mengikuti bentuk dari objek.
Berikut penjelasannya.
a. Piksel dengan koordinat(2,2) ke (2,3) ke (2,4) ke (2,5) memiliki kode rantai 0
b. Piksel dengan koordinat (2,5) ke (3,4) memiliki kode rantai 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
c. Piksel dengan koordinat (3,4) ke (4,5) memiliki kode rantai 7
d. Piksel dengan koordinat (4,5) ke (5,5) memiliki kode rantai 6
e. Piksel dengan koordinat (5,5) ke (5,4) ke (5,3) ke (5,2) memiliki kode rantai 4
f. Piksel dengan koordinat (5,2) ke (4,3) memiliki kode rantai 1
g. Piksel dengan koordinat (4,3) ke (3,2) memiliki kode rantai 3
h. Piksel dengan koordinat (3,2) ke (2,2) memiliki kode rantai 2
Jadi kode rantai untuk gambar 2.9. yaitu 000576444132.
2.5. Basis Data
Basis Data merupakan sekumpulan informasi yang akan menjadi acuan dan disimpan
dalam suatu folder komputer secara sistematik sehingga dapat diperiksa menggunakan suatu
program komputer untuk mendapatkan informasi dari basis data tersebut. Semakin banyak
informasi yang diperlukan maka akan semakin banyak basis data dari objek referensi yang
akan disimpan didalamnya. Dalam peneitian ini basis data objek referensi diperlukan dalam
proses perhitungan jarak. Pembuatan basis data objek menggunakan 10 variasi jumlah kode
rantai dan penulis akan mengambil 9 gambar dari masing-masing alat stasioneri. Jenis basis
data yang digunakan pada penelitian ini adalah Cell Array yang biasanya menggunakan
kurung kurawal “{ }”.
2.6. Jarak
Jarak merupakan fungsi yang digunakan untuk mewujudkan pencarian citra.
Berfungsi sebagai penentu kesamaan atau ketidaksamaan dua buah vektor fitur. Tingkat
kesamaan dinyatakan dengan suatu skor atau ranking. Semakin kecil nilai dari ranking, maka
semakin dekat kesamaan kedua vektor tersebut[14]. Pada penelitian ini menggunakan fungsi
jarak Canberra untuk mengukur tingkat kesamaan dua buah vektor.
Jarak Canberra akan membagi absolut selisih dari 2 nilai dengan jumlah dari absolut
2 nilai tersebut. Hasil dari setiap dua nilai yang dicocokkan lalu dijumlahkan untuk
mendapatkan jarak Canberra. Berikut adalah persamaan untuk menghitung jarak
Canberra[14].
𝑗(𝑉1, 𝑉2) = ∑|𝑉1(𝑘)−𝑉2(𝑘)|
|𝑉1(𝑘)|+|𝑉2(𝑘)|
𝑁𝑘=1 (2.4)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Keterangan :
𝑉1(𝑘) = citra basis data
𝑉2(𝑘) = citra masukan
Sebagai contoh, terdapat dua buah vektor 𝑉1 = [ 5, 4,7 ] dan 𝑉2 = [ 3, 4, 8 ], jarak canberra
dari kedua vektor tersebut adalah :
𝑗(𝑉1, 𝑉2) = |5 − 3|
5 + 3+
|4 − 4|
4 + 4+
|7 − 8|
7 + 8=
2
8+
0
8+
1
15= 0,3166
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
BAB III
PERANCANGAN
3.1 Perancangan Sistem Pengenalan Alat-alat Stasioneri
Perancangan sistem yang akan dibuat adalah sistem yang dapat mengenali citra alat-
alat stasioneri menggunakan webcam. Gambar 3.1. adalah gambaran umum keseluruhan
sistem.
Gambar 3.1. Gambaran Umum Perancangan Sistem
Sistem pengenalan alat-alat stasioneri terdiri dari perangkat keras dan perangkat
lunak yang ada pada komputer. Perangkat keras yang digunakan adalah alat-alat stasioneri,
fixture, laptop, webcam dan perangkat lunaknya adalah menggunakan Matlab. Pengambilan
citra menggunakan webcam yang dihubungkan dengan laptop sebagai pusat pengolahan
data dan user interface sebelum masuk dalam program Matlab. Mekanismenya adalah
webcam akan diletakkan pada gagangan fixture sebagai sanggahan untuk mengambil gambar
dari atas, selanjutnya alat stasioneri akan diletakkan dibawah kaki fixture tepat dibawah
webcam. Alat stasioneri yang ditangkap oleh webcam akan langsung dikirim menggunakan
kabel USB webcam ke laptop yang kemudian akan dilakukan pengolahan menggunakan
perangkat lunak Matlab. Untuk tahap akhir dari sistem adalah berupa keluaran pada layar
monitor laptop berupa teks.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
3.2. Perancangan Hardware
Perancangan hardware dimulai dengan mendesain fixture sebagai sanggahan untuk
webcam. Jarak antara webcam dengan alat stasioneri adalah 48cm. Kabel USB dari webcam
dihubungkan ke laptop untuk melanjutkan ke proses pengolahan. Perancangan hardware
dapat dilihat pada Gambar 3.2
Gambar 3.2 Perancangan Hardware
3.3. Sistem Pengenalan Citra Alat-alat Stasioneri
Pada Gambar 3.3. merupakan diagram alir dari system pengenalan alat-alat
stasioneri. Berdasarkan diagram alir diatas proses pengambilan citra akan dilakukan dengan
menggunakan webcam (web camera). Pada tahap preprocessing, citra RGB dikonversi
kedalam bentuk citra biner, Selanjutnya hasil dari preprocessing ini akan diproses ke tahap
pengenalan.
Tahap pengenalan terdiri dari 3 tahap yaitu ekstraksi ciri dan perhitungan fungsi
jarak, dan basis data citra pengenalan alat stasioneri . Proses terakhir dari system ini yaitu
tahap penentuan keluaran. Hasil dari penentuan keluaran system ini berdasarkan jarak
minimum yang diperoleh dari hasil perbandingan antara ekstraksi ciri dengan basis data.
Uraian penjelasan secara bertahap akan dijelaskan pada subbab selanjutnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
3.3 Blok Diagram Sistem Pengenalan alat-alat stasioneri
3.3.1. Pengambilan Citra Alat-alat Stasioneri
Diagram alir dari proses pengambilan citra dapat dilihat pada gambar 3.4
Gambar 3.4 Diagram alir pengambilan citra.
Proses pengambilan citra alat-alat stasioneri adalah proses pengambilan citra dengan
menggunakan webcam yang akan disimpan. Webcam dihubungkan ke laptop dengan
menggunakan port USB 2.0 sehingga gambar citra dapat dikirim dan diterima oleh laptop
untuk selanjutnya akan diproses menggunakan MATLAB.
Pengambilan citra alat
stasioneri
Variasi Kode Rantai
Freeman
Preprocessing
Ektraksi ciri
Jarak Canberra
Keluaran berupa teks
Basis Data
Mulai
Capture
A
A
Camera On
Keluaran:
Citra RGB
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
3.3.2. Tahap Preprocessing
Tahap preprocessing merupakan tahap untuk mengkonversi citra RGB ke biner. .
Tahap ini dilakukan karena hasil gambar dengan webcam C270 memiliki fomat RGB.
Sehingga konversi citra diperlukan agar format citra menjadi citra biner. Berdasarkan
Gambar 3.3. diagram alir subrutin tahap preprocessing ditunjukkan pada Gambar 3.5.
Gambar 3.5 Diagram Alir tahap preprocessing
Tahap preprocessing diawali dengan mengonversi citra RGB ke citra grayscale
(persamaan 2.2) kemudian diubah ke citra biner menggunakan metode otsu (persamaan 2.3
sampai dengan persamaan 2.8) sehingga didpatkan nilai ambang dari citra tersebut. Nilai
ambang digunakan untuk mengkonversi citra menjadi biner.
Mulai
Masukan:
Citra RGB
Konversi citra
RGB ke
grayscale
Keluaran:
Citra
preprocessing
Selesai
Konversi citra
grayscale ke
citra biner
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
3.3.3. Tahap Ekstraksi Ciri
Tahap ekstraksi ciri merupakan tahap terpenting untuk mengambil ciri dari suatu
citra. Ekstraksi ciri diperoleh menggunakan ekstraksi ciri kode Freeman atau kode rantai.
Tahapan ekstraksi ciri dapat dilihat secara garis besar pada diagram alir 3.6.
Gambar 3.6 Diagram Alir tahap ekstraksi ciri
Hasil dari tahap preprocessing akan menjadi masukan untuk ekstraksi ciri ini. Proses
diawali dengan resizing untuk mendapatkan variasi jumlah kode rantai. Kemudian deteksi
tepi objek menggunakan deteksi kontur Moore. Diagram alir deteksi kontur Moore dapat
dilihat pada gambar 3.7.
Mulai
Masukan :
citra hasil
preprocessing
Resizing untuk
variasi jumlah
kode rantai
Ekstraksi Ciri kode
Freeman
Keluaran :
deretan kode
Freeman
Selesai
A
A
Deteksi
Kontur
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Gambar 3.7. Diagram Alir Deteksi Kontur Moore
Mengacu pada algoritma 1 tahap deteksi kontur pada Gambar 3.7 diawali dengan
mencari piksel bernilai 1 pada posisi paling kiri dan paling atasa objek yang telah
dibinerisasi. Posisi piksel dicatat pada 𝑏0 dan piksel berikutnya dicatat pada 𝑐0. Langkah
kedua periksa 8 tetangga searah jarum jam (Gambar 2.7(d)) dimulai dari 𝑐0. Piksel yang
didapatkan adalah piksel yang bernilai 1 kemudian dicatat pada 𝑏1. Sedangkan piksel yang
Mulai
Masukan:
Citra preprocessing
Peroleh piksel
awal bernilai 1
Periksa 8 tetangga
searah jarum jam
Catat kontur(1) = 𝑏0,
kontur(2) = 𝑏1 dan jum = 2
Catat b= 𝑏1 dan
c = 𝑐1
B
B
Cari piksel bernilai 1 pada 8
tetangga dimulai dari c dan
catat pada b
catat posisi yang
mendahului ke c
Tambahkan c sebagai
bagian kontur
b = 𝑏0
Piksel berikutnya
bernilai 1?
Selesai
Ya
Tidak
Ya
Tidak
Keluaran:
Citra kontur
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
mendahului 𝑏1dicatat pada 𝑐1. Selanjutnya langkah ketiga catat elemen 𝑏0 pada kontur
(1), elemen 𝑏1 pada kontur (2) dan jum = 2. Langkah keempat catat elemen 𝑏1 pada b dan
elemen 𝑐1 pada c. Langkah kelima merupakan proses looping apabila pada piksel
selanjutnya bernilai 1. Apabila terdapat piksel bernilai 1 maka posisi piksel dicatat pada b
serta piksel yang mendahului b dicatat pada c. Penambahan elemen y sebagai bagian dari
kontur. Proses looping akan berhenti jika elemen b = 𝑏0.
Selanjutnya hasil deteksi kontur yang telah terurutkan akan diproses untuk mendapatkan
mendapatkan kode rantai Freeman . Diagram alir proses mendapatkan kode rantai Freeman
dapat dilihat pada Gambar 3.8.
Gambar 3.8 Diagram alir kode Freeman
Berdasarkan diagram alir diatas, proses ekstraksi ciri diawali dengan masukan dari
deteksi kontur Moore, kemudian proses ekstraksi ciri dengan menggunkan kode rantai
Freeman dimana disajikan pada Algoritma 2 yang ada pada bab sebelumnya. Hasil dari
tahap ekstraksi ciri berupa deretan kode rantai.
Mulai
Masukan: citra
kontur
Kode rantai Freeman
Keluaran : kode
rantai Freeman
Mulai
C
C
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
3.3.4. Proses Perhitungan Fungsi Jarak
Proses fungsi jarak merupakan proses yang dilakukan setelah mendapatkan hasil dari
ekstraksi ciri. Fungsi jarak yang digunakan adalah jarak Canberra yang berfungsi sebagai
pembanding hasil dan untuk mencari nilai selisih minimum antara ekstraksi ciri dengan citra
alat-alat stasioneri yang ada pada basis data . Proses dari fungsi jarak dapat dilihat pada
diagram alir Gambar 3.9.
Gambar 3.9 Diagram Alir Fungsi Jarak Canberra
3.3.5 Tahap Penentuan Keluaran
Hasil keluaran pada pengenalan alat stasioneri ini ditentukan dari pencocokan kode
rantai keluaran dari ekstraksi ciri dengan kode Freeman yang ada yang ada pada basis data
. Hasil keluaran berupa teks pada layer monitor. Proses penentuan keluaran digambarkan
pada diagram alir pada Gambar 3.10.
Mulai
Masukan : Hasil
ekstraksi ciri,
basis data
Perhitungan jarak : Citra
Hasil Ekstraksi Ciri
dengan basis data
D
D
Keluaran : Hasil
perhitungan
jarak
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Gambar 3.10 Diagram Alir Penentuan Keluaran
3.4 Pembuatan Basis Data
Basis Data berfungsi sebagai acuan untuk membandingkan nilai hasil dari ekstraksi
ciri alat stasioneri yang diambil menggunakan webcam. Proses perancangan basis data dapat
dilihat pada diagram alir Gambar 3.11. Perancangan basis data pada Gambar 3.11. dimulai
dengan pegambilan cira alat stasioneri menggunakan webcam. Selanjutnya data tersebut
akan diproses pada tahap preprocessing. Tahap preprocessing berfungsi untuk
meningkatkan kualitas citra. Terdapat beberapa proses pada tahap preprocessing yaitu
mengkonversi citra RBG ke grayscale kemudian diubah ke citra biner, hasil dari
preprocessing akan menjadi masukan pada tahap ekstraksi ciri. Tahap ekstraksi ciri
merupakan tahapan untuk mencari kode rantai pada citra menggunakan kode Freeman yang
diawali dengan proses resizing untuk mendapatkan variasi jumlah kode rantai pada citra
preprocessing, kemudian deteksi kontur menggunakan kontur Moore. Selanjutnya proses
untuk mendapatkan kode rantai dengan kode Freeman. Hasil dari ekstraksi ciri akan
disimpan dalam sebuah folder yang digunakan sebagai acuan dalam pengenalan alat
stasioneri. Adapun banyaknya data yang disimpan pada basis data adalah 90 data ( 9 alat
stasioneri x 10 variasi jumlah kode rantai).
Mulai
Masukan:
hasil dari ekstraksi
ciri Freeman
Nilai keluaran = nilai yang
tersimpan dalam basis data
E
E
Keluaran:
Hasil
berupa teks
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Gambar 3.11 Diagram Alir Pengambilan Basis Data
3.5 Perancangan Tampilan GUI Matlab
GUI (Graphical User Interface) merupakan sub menu dari software Matlab
yang digunakan untuk menjadi penampil dari program yang dijalankan. Bagian-bagian dari
GUI seperti axes , popupmenu, edit text, dan lainnya bisa digunakan sesuai dengan
kebutuhan dari pengguna. Berikut adalah penjelasan untuk perancangan tampilan dari GUI
yang akan digunakan dalam pengujian.
Tampilan system pengenalan alat stasioneri menggunakan GUI (Graphical User
Interface) pada Matlab dengan tujuan membantu dalam proses pengenalan alat stasioneri.
Adapun perancangan GUI dapat dilihat pada gambar 3.12 Ditinjau dari Gambar 3.12 proses
menjalankan system dimulai dengan menekan tombol “Camera On” pada Axes 1 akan
ditampilkan citra alat stasioneri secara real time menggunakan webcam . Selanjutnya
pengguna menekan tombol “capture” untuk pengambilan citra alat stasioneri yang akan
menjadi masukan pada proses ini. Gambar citra tersebut ajan ditampilkan pada Axes 1.
Mulai
Pengambilan citra
alat stasioneri
Preprocessing
Ekstraksi Ciri kode
rantai Freeman
Basis data alat
stasioneri
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Langkah selanjutnya pengguna menekan tombol “Process” untuk memroses citra masukan
ke tahap preprocessing dan ekstraksi ciri. Hasil dari tahap preprocessing berupa citra biner
akan ditampilkan pada Axes 2. Keluaran pada proses ektraksi ciri berupa teks yang akan
ditampilkan pada Axes 3. Tombol “Reset” berfungsi sebagai pengulangan proses pengenalan
alat stasioneri yang akan dilakukan dari awal.. Keterangan GUI dapat dilihat pada Tabel 3.1.
Gambar 3.12 Perancangan GUI
Tabel 3.1 Keterangan GUI
Nama Bagian Keterangan
Tombol “Camera On” Untuk menghidupkan webcam
Tombol “Capture” Untuk mengambil gambar
Tombol “Process” Untuk memulai proses pengenalan perangkat elektronika
Axes 1 pada panel
kamera
Untuk menampilkan citra secara real time dari webcam dan citra
hasil pengambilan gambar
Axes 2 pada proses
preprocessing
Untuk menampilkan citra hasil preprocessing
Axes 3 pada panel
keluaran
Untuk menampilkan hasil akhir pengenalan perangkat elektronika
berupa teks
Tombol “Reset” Untuk mengulang proses pengenalan dari awal
Tombol “End” Untuk menutup GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3.6 Pengujian Citra Alat-alat Stasioneri
Pengujian citra merupakan cara yang dilakukan untuk menguji program dan
mendapatkan hasil dari penelitian. Pengujian citra alat-alat stasioneri ini dilakukan melalui
dua cara yaitu pengujian secara tidak langsung dan pengujian secara langsung. Berikut
penjelasan mengenai kedua cara pengujian tersebut.
3.6.1 Pengujian Secara Tidak Langsung
Pengujian secara tidak langsung mengacu pada Gambar 3.11 diawali dengan
pengambilan citra menggunakan webcam kemudian disimpan dalam sebuah folder. Setiap
gambar yang telah diambil dengan webcam diberi nama agar dapat dikenali oleh program
Matlab. Pengujian secara tidak langsung menggunakan data yang diperoleh dari 9 alat
stasioneri. Data tersebut kemudian diproses dengan menggunakan Matlab sebagai data uji
yang akan diteruskan ke tahap preprocessing, ekstraksi ciri, dan fungsi jarak Canberra. Data
masukan akan dibandingkan dengan data yang ada pada basis data. Pengambilan data pada
pengujian secara tidak langsung adalah sebanyak 90 data (9 alat stasioneri x 10 variasi
jumlah kode rantai). Variasi kode rantai menggunakan proses resizing yaitu dengan
mengurangi jumlah baris piksel.. Hasil akhir dari proses ini akan ditampilkan ke layar
monitor dengan format teks pada GUI Matlab.
3.6.2 Pengujian Secara Langsung
Berdasarkan Gambar 3.12 untuk menjalankan system secara langsung pengguna atau
user harus menekan t ombol “Camera On”. Selanjutnya webcam akan mengambil gambar
alat stasioneri setelah pengguna menekan tombol “Capture”. Pengujian data secara langsung
dilakukan dengan cara mengambil gambar 9 alat stasioneri, data tersebut digunakan sebagai
basis data dan kemudian diberi nama maupun data sebagai pengujian secara tidak langsung.
Masing-masing perangkat akan mewakili variasi kode rantai. Setiap alat stasioneri akan
menghasilkan data sesuai dengan resizing yang diinginkan yaitu 90%, 80%, 70%, 60%,
50%,40%,30%,20%, 10% dan 5 %. Hasil pengambilan gambar ini dapat diubah kode
rantainya, setelah pengguna menentukan nilai resizing yang diinginkan. Kemudian citra
tersebut akan diteruskan ke tahap preprocessing yaitu tahap mengkonversi citra RGB ke
biner. Tahap selanjutnya adalah tahap ekstraksi ciri yang dimulai dengan deteksi kontur,
hasil dari deteksi kontur adalah masukan ke tahap mencari kode rantai Freeman dari setiap
objek. Hasil dari tahap ekstraksi ciri ini menjadi masukan untuk perhitungan jarak Canberra,
sebagai pembanding dengan data yang ada dalam basis data . Pengambilan data akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
dilakukan sebanyak 9 kali masing-masing dari alat stasioneri. Jumlah data yang akan
dibandingkan adalah 90 data ( 9 alat stasioneri x 10 variasi kode rantai ). Untuk tahap akhir
dari system yaitu tampilan berupa teks pada layer monitor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
BAB IV
HASIL DAN PEMBAHASAN
Bab IV akan membahas mengenai pengujian software yang telah dirancang,
membahas mengenai interface atau GUI serta membahas menganai pengujian system
program pengenalan alat-alat stasioneri.
4.1 Implementasi Program
4.1.1 Tombol Camera On
Tombol Camera On (kamera aktif ) berfungsi untuk menghubungkan webcam
dengan Software Matlab yang ada pada laptop dimana nantinya rekaman dari webcam akan
ditampilkan pada axes 1 yang ada pada GUI dilayar monitor. Berdasarkan diagram alir 3.4
program untuk mengaktifkan tombol Camera On (Kamera Aktif) dapat dilihat pada Gambar
4.1. Adapun sintaks imaghwinfo berfungsi untuk memastikan adapter kamera sudah
terhubung dan terbaca dengan baik. Program ‘winvideo’ digunakan untuk memanmpilkan
informasi dari webcam dan informasi tersebut akan diinisialisasikan didalam program agar
webcam dengan software dapat saling terhubung. Pada program ini yang akan ditampilkan
adalah video, lebar, panjang, resolusi, port webcam dan band dari video. Perintah program
preview berfungsi untuk menampilkan video pada saat program Camera On dijalankan, dan
untuk menampilkannya digunakan sintaks Handles Image.
Gambar 4.1. Program Kamera Aktif
function CameraOn _Callback(hObject, eventdata, handles) global camvid; axes(handles.axes1); info=imaqhwinfo('winvideo'); dev_info=imaqhwinfo('winvideo',1); camvid = videoinput('winvideo',1,'RGB24_640x480'); camvid.FramesPerTrigger=1; triggerconfig(camvid,'manual'); camRes = get(camvid,'VideoResolution'); imWidth = 640; imHeight = 480; nBands = get(camvid,'NumberOfBands'); hImage = image(zeros(imHeight, imWidth, nBands),'parent',
handles.axes1); preview(camvid,hImage);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
4.1.2 Tombol Capture
Tombol capture (ambil gambar) berfungsi untuk mengambil gambar alat-alat
stasioneri yang akan diolah lebih lanjut dalam proses pengenalan. Mengacu pada diagram
alir 3.4 yaitu proses pengambilan gambar alat stasioneri, program untuk ambil gambar dapat
dilihat pada Gambar 4.2.
Gambar 4.2. Program Ambil Gambar
Pada program diatas sintaks global digunakan untuk menyatakan variable sehingga
dapat digunakan dalam fungsi lain yang ada dalam file yang sama. Sedangkan untuk sintaks
getdata berfungsi untuk meambil citra pada saat kondisi webcam telah aktif. Citra tersebut
kemudian akan diinisialisasikan menggunakan sintaks handles agar dapat dipanggil dalam
file figure dan file.m serta untuk menampilkan gambar akan ditampilkan pada axes 1.
Sintaks imwrite berfungsi untuk menyimpan gambar yang telah diambil menggunakan
webcam.
4.1.3 Popupmenu
Popupmenu adalah salah satu bagian dari GUI (Graphical User Interface) yang
digunakan untuk memudahkan pengguna dalam memilih menu jika dalam software terdapat
beberapa pilihan koefisien yang akan diolah. Pengguna dapat memilih variasi yang
diinginkan, dalam hal ini popupmenu terdiri dari 10 variasi resizing yaitu 90%, 80%, 70%,
80%, 70%, 60%, 50%, 40%, 30%, 20% , 10% dan 5%. Gambar program untuk popupmenu
dapat dilihat pada Gambar 4.3.
function Capture_Callback(hObject, eventdata, handles) % hObject handle to Capture (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA) %capture global picture; global camvid; pause(0.5); stoppreview(camvid); picture = getsnapshot (camvid); handles.picture=picture; axes(handles.axes1); imshow(picture); imwrite(picture,'coba.jpg');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Gambar 4.3. Program Popupmenu
Berdasarkan Gambar 4.3. pengguna dapat memilih nilai variasi resizing yang
digunakan misalnya “var=90” artinya variasi yang akan digunakan adalah 90%, begitu juga
pada “var=10” artinya variasi yang digunakan adalah 90% begitupun seterusnya. Sintaks
“handles.var” berfungsi agar nilai variasi resizing dapat dipanggil deprogram lain.
4.1.4 Tombol Process
Tombol Process (Proses) merupakan tombol yang berfungsi untuk menjalankan
proses dalam pengenalan alat stasioneri. Tombol proses terdiri dari beberapa tahap program,
program untuk tahap pertama adalah pembanding basis data, kemudian program
preprocessing yaitu program untuk mengkonversi RGB ke biner, program ekstraksi ciri yang
terdiri dari beberapa program yaitu operasi dilasi, resizing , deteksi kontur dan Freeman
Code, program jarak Canberra dan hasil keluaran berupa teks pada GUI Matlab.
function popupmenu1_Callback(hObject, eventdata, handles) indeks = get(handles.popupmenu1,'value'); switch indeks case 2 var=90; case 3 var=80; case 4 var=70; case 5 var=60; case 6 var=50; case 7 var=40; case 8 var=30; case 9 var=20; case 10 var=10; case 11 var=5; end handles.var=var; guidata(hObject,handles);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
4.1.4.1 Program Pembanding Basis Data
Progam ini berfungsi untuk membandingkan data sesuai dengan variasi resizing yang
dipilih oleh pengguna pada proses popupmenu. Berikut adalah program popupmenu.
Gambar 4.4. Program Basis Data
%DATABASE %PopUpMenu var = handles.var; if (var==90) load dbvar90 panjang = 613; ukuran = 0.9; elseif (var==80) load dbvar80 panjang = 543; ukuran = 0.8; elseif (var==70) load dbvar70 panjang = 475; ukuran = 0.7; elseif (var==60) load dbvar60 panjang = 407; ukuran = 0.6; elseif (var==50) load dbvar50 panjang = 339; ukuran = 0.5; elseif (var==40) load dbvar40 panjang = 271; ukuran = 0.4; elseif (var==30) load dbvar30 panjang = 202; ukuran = 0.3; elseif (var==20) load dbvar20 panjang = 135; ukuran = 0.2; elseif (var==10) load dbvar10 panjang = 65; ukuran = 0.1; elseif (var==5) load dbvar5 panjang = 31; ukuran = 0.05; end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Gambar 4.4. merupakan program yang digunakan untuk memanggil data yang ada
pada basis data yang kemudian akan dibandingkan dengan jarak Canberra . Setelah
pengguna memilih variasi resizing yang dinginkan misalnya 90% pada popupmenu , maka
data tersebut akan dipanggil dan dibandingkan dengan data pada “dbvar90” begitupun juga
jika pengguna emilih variasi yang lainnya.
4.1.4.2 Program Konversi RGB ke Biner
Program konveri RGB ke Biner berfungsi untuk mengubah citra RGB ke citra biner.
Berdasarkan diagram alir tahap preprocessing pada Gambar 3.5. Program RGB ke biner
dapat dilihat pada Gambar 4.5.
Gambar 4.5. Program Konversi Citra RGB ke Biner
Setelah proses capture gambar dilakukan oleh pengguna, data berupa gambar alat
stasioneri tersebut kemudian akan dipanggil menggunakan sintaks imread. Kemudian untuk
mengubah citra RGB ke citra berskala keabuan atau grayscale dapat menggunakan sintaks
“rgb2gray” sesuai dengan persamaan 2.2 . Sintaks “graysthresh” merupakan metode yang
diimplementasikan dari metode Otsu (persamaan 2.3 sampai 2.8) digunakan untuk mencari
nilai ambang secara otomatis. Nilai hasil dari metode tersebut berupa nilai ambang akan
dikonversi ke citra iner menggunakan sintaks “im2bw”. Contoh hasil program RGB ke biner
dapat dilihat pada Gambar 4.6.
%PROSES KONVERSI RGB KE BINER
x = rgb2gray(imread('coba.jpg'));
level=graythresh(x);
biner= im2bw(x,level);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
(a) (b)
(c)
Gambar 4.6. Konversi Citra RGB ke Biner. (a) Citra Masukan (b) citra grayscale (c) citra
hasil konversi gray ke biner.
4.1.4.3 Program Operasi Dilasi
Program dilasi ini berfungsi untuk mendapatkan pelebaran terhadap piksel yang
bernilai 1 dan menghilangkan lubang-lubang kecil pada citra. Pada operasi dilasi ini
diperlukan elemen penstruktur untuk menentukan hasil dari dilasi. Adapun bentuk elemen
penstruktur yang digunakan yaitu ones pada masing-masing tahapan. Berikut adalah ukuran
dan hasil dari elemen penstruktur ditunjukkan pada Gambar 4.7.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
(a) Dilasi = 5 (b) Dilasi = 10
(c) Dilasi = 15
Gambar 4.7. Ukuran Elemen Penstruktur
Berdasarkan Gambar 4.7. citra alat stasioneri yang digunakan adalah gunting. Pada
gambar tersebut ditunjukkan beberapa elemen penstruktur sehingga ditentukan elemen
penstruktur yang paling tepat digunakan yaitu ukuran matrik 15x15 yang berisi ‘1’. Pada
dilasi matrik 15x15 tersebut dapat membuat gambar lebih halus pad pinggirannya dan
menutupi semua lubang-lubang kecil pada objek. Berdasarkan diagram alir Gambar 3.5
program untuk operasi dilasi dapat dilihat pada Gambar 4.8.
Gambar 4.8. Program Operasi Dilasi
%OPERASI DILASI C1= ones(15); BW1=imdilate (biner,C1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
4.1.4.4 Program Resizing
Program Resizing berfungsi untuk mengubah ukuran dari suatu citra dengan
mengurangi atau menambahkan jumlah piksel dari citra tersebut. Dalam hal ini citra akan
divariasikan dalam 10 resizing yaitu 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20% dan 10%
5%. Hasil dari resizing akan menjadi masukan pada program ekstraksi ciri. Berikut adalah
program dari resizing dituliskan dalam Gambar 4.9.
Gambar 4.9. Program Resizing
Sintaks “imresize” digunakan untuk meresizing citra ke ukuran yang diinginkan.
Sedangkan “BW1” merupakan citra hasil dari dilasi, “ukuran” merupakan besarnya resizing
contohnya jika 10% maka ukuran yang dimasukkan adalah 0.1, jika 20% maka ukuran yang
dimasukkan adalah 0.2 dan begitupun untuk variasi resizing yang selanjutnya. Gambar 4.9
berikut adalah ukuran resizing dan hasilnya.
(a) Hasil Dilasi (b) Resizing 90%
Gambar 4.9 Variasi Resizing
BW = imresize(BW1,ukuran);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
(c) Resizing 50% (d) Resizing 30%
(e) Resizing 10% (f) Resizing 5%
Gambar 4.9 (lanjutan) Variasi Resizing
4.1.4.5 Ekstraksi Ciri
Pada program ektraksi ciri digunakan untuk mengambil informasi yang terdapat
dalam suatu citra yang kemudian akan digunakan sebagai parameter/nilai untuk
membedakan suatu objek dengan objek lainnya. Berdasarkan diagram alir tahap ekstraksi
ciri Gambar 3.6 program ekstraksi ciri dapat dilihat pada Gambar 4.9. Program
“deteksikontur” merupakan program yang digunakan untuk mendapatkan koordinat tepi
(kontur) dari objek alat stasioneri. Selanjutnya fungsi dari program “koderantai” adalah
untuk mendapatkan kode Freeman.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Gambar 4.10. Program Ektraksi Ciri
4.1.4.6 Program Pembanding Jarak Canberra
Pada program pembanding jarak ini menggunakan jarak Canberra sebagai
pembanding hasil antara ekstraksi ciri dengan basis data. Berdasarkan diagram alir jarak
Canberra pada Gambar (bab 2). Program yang digunakan dapat dilihat pada Gambar
Gambar 4.11. Program Pembanding Jarak Canberra
Program pada gambar 4 digunakan untuk memanggil fungsi jarak Canberra, adapun
variabel yang akan dibandingkan adalah ektraksi ciri yaitu “FK” atau kode Freeman dari
objek dengan basis data yaitu “db{1}” sampai dengan “db{9}. Sintaks “minr” merupakan
nilai terkecil dari hasil perhitungan jarak. Nilai tersebut akan menjadi keluaran dari sistem
pengenalan alat stasioneri.
4.1.4.7 Program Penentuan Keluaran
Program Keluaran berfungsi untuk menampilkan hasil dari pengenalan alat stasioneri
yang berupa teks. Berdasarkan diagram alir penentuan keluaran Gambar 3.10. program yang
digunakan dapat dilihat pada Gambar 4.12.
%FUNGSI JARAK r(1)= jarakcanberra(FK, db{1}); r(2)= jarakcanberra(FK, db{2}); r(3)= jarakcanberra(FK, db{3}); r(4)= jarakcanberra(FK, db{4}); r(5)= jarakcanberra(FK, db{5}); r(6)= jarakcanberra(FK, db{6}); r(7)= jarakcanberra(FK, db{7}); r(8)= jarakcanberra(FK, db{8}); r(9)= jarakcanberra(FK, db{9});
%EKTRAKSI CIRI DK = deteksikontur (BW); FK = kodefreeman(DK); FK (panjang)= 0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Gambar 4.12. Program Penentuan Keluaran
Program pada gambar 4.12. Merupakan program untuk menampilkan hasil berupa
teks dari alat stasioneri. Terdapat 9 pengenalan alat stasioneri yang mewakili masing-masing
nama dari alat stasioneri.
4.1.5 Tombol Reset
Program tombol Reset berfungsi untuk mengembalikan tampilan awal GUI apabila
pengguna ingin memulai kembali dari awal proses pengenalan atau jika terjadi kesalahan
%KELUARAN TEKS if (minr==r(1)) z1={'Gunting'}; set(handles.edit1,'string',z1); elseif(minr==r(2)) z2={'Cutter'}; set(handles.edit1,'string',z2); elseif(minr==r(3)) z3={'Ballpoint'}; set(handles.edit1,'string',z3); elseif(minr==r(4)) z4={'Tipe-x'}; set(handles.edit1,'string',z4); elseif(minr==r(5)) z5={'Pelubang Kertas'}; set(handles.edit1,'string',z5); elseif(minr==r(6)) z6={'Paper Clip'};
set(handles.edit1,'string',z6); elseif(minr==r(7)) z7={'Stabilo'}; set(handles.edit1,'string',z7); elseif(minr==r(8)) z8={'Note(buku catatan'}; set(handles.edit1,'string',z8); elseif(minr==r(9)) z9={'Steples'}; set(handles.edit1,'string',z9); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
pada saat proses pengenalan berlangsung. Program yang digunakan dalam tombol reset
ditunjukkan pada Gambar 4.13.
Gambar 4.13. Program Tombol Reset
4.1.6 Tombol End
Program tombol End (keluar) berfungsi untuk mengakhiri program tampilan GUI
pengenalan alat stasioneri. Program yang digunakan dapat dilihat pada Gambar 4.14.
Gambar 4.14. Program Tombol End
4.2. Pengujian Program Pengenalan Alat Stasioneri Secara Tidak
Langsung
Pengujian secara tidak langsung dilakukan untuk mengetahui apakah sistem sudah
dapat bekerja sesuai dengan perancangan yang telah dirancang sebelumnya. Pengujian ini
dilakukan dengan memasukkan citra satu persatu dengan menuliskan nama dari citra yang
telah di capture dan telah disimpan. Data tersebut kemudian akan diproses dan hasil berupa
teks akan ditampilkan di GUI Matlab. Berikut adalah proses untuk menjalankan program
pengenalan alat stasioneri secara tidak langsung.
1. Membuka software Matlab dengan mengklik kiri pada ikon Matlab.
%RESET axes(handles.axes1) plot(0) axes(handles.axes2) plot(0) set(handles.edit1,'string','') set(handles.popupmenu1, 'value', 2)
function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA) close
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
2. Setelah masuk pada tampilan utama Matlab, langkah selanjutnya membuka
folder dimana program pengenalan alat stasioneri disimpan dengan cara
mengganti Current Folder-nya.
3. Ketik “PENGUJIANTIDAKLANGSUNG” pada Command Window untuk
memanggil program pengujian secara tidak langsung alat stasioneri. Kemudian
tekan tombol “Enter”. Sebagai catatan semua program di RUN terlebih dahulu
untuk memastikan semua program sudah siap untuk dijalankan.
4. Setelah menekan tombo “Enter” akan muncul tampilan pada layar monitor
seperti pada Gambar 4.15.
Gambar 4.15. Tampilan GUI Pengujian Tidak Langsung
Berikut adalah penjelasan tentang fungsi dari tombol dan popupmenu pada gambar
GUI diatas.
a. Tombol “Process” . Saat ditekan maka hasil dari preprocessing, hasil resizing,
dan keluaran teks (text) akan ditampilkan.
b. Tombol “Reset”. Berfungsi untuk mengembalikan setiap axes, popupmenu, dan
edit kembali seperti semula.
c. Tombol “End”. Berfungsi untuk menutup GUI.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
d. Popupmenu “variasi resizing”. Berfungsi untuk memilih variasi resizing yang
diinginkan seperti variasi 90%,80%, 70%, 60%, 50%, 40%, 30%, 20% ,10%
dan 5%.
e. Berdasarkan Gambar 4.15 Untuk menjalankan system pengenalan alat
stasioneri secara tidak langsung pengguna harus memasukkan nama dari file
citra yang telah di capture sebelumnya yang berada pada mfile. Setelah itu,
pengguna memilih variasi resizing (90%,80%, 70%, 60%, 50%, 40%, 30%,
20% ,10% dan 5%). Kemudian pengguna menekan tobol process. Untuk hasil
dari pengujian secara tidak langsung dapat dilihat pada Gambar 4.16.
4.16 Contoh ketika GUI Dijalankan untuk alat stasioneri Gunting dengan resizing
10%
4.3. Pengujian Program Pengenalan Alat Stasioneri Secara Langsung.
Pengujian secara langsung cara kerjanya sama seperti pada pengujian secara tidak
langsung. Hanya saja pada pengujian secara langsung data citra alat stasioneri diambil secara
langsung, kemudian data tersebut diproses dan ditampilkan pada GUI Matlab.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Langkah percobaan pengujian secara langsung sama seperti pada langkah 1 dan 2
pada pengujian secara tidak langsung, yang diganti hanya pada nama file program yang
diketikkan di Command Window yaitu “PENGUJIANLANGSUNG”. Setelah nama dari file
program dijalankan maka akan muncul tampilan pada layar monitor seperti Gambar 4.17.
Keterangan untuk tombol yang ada pada Gambar 4.17, Dapat dilihat pada tabel 3.1.
Berdasarkan Gambar 3.12 pengguna mengambil gambar citra alat stasioneri secara langsung
sebagai masukkan. Kemudian pengguna memilih variasi resizing yang ada popupmenu.
Setelah itu pengguna menekan tombol process. Hasil berupa teks ditampilkan pada GUI
matlab dapat dilihat pada Gambar 4.18. Kondisi pengujian secara langsung dapat dilihat
pada Gambar 4.19.
Gambar 4.17 Tampilan GUI Pengujian Secara Langsung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Gambar 4.18 Contoh ketika GUI Dijalankan untuk alat stasioneri Steples dengan
resizing 10%
Gambar 4.19 Gambaran Kondisi Ruangan Tugas Akhir saat Pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
4.4 Analisis Hasil Data Pengujian secara Tidak Langsung
Pengujian secara tidak langsung menggunakan gambar alat stasioneri sebanyak 90
gambar (9 alat stasioneri x 10 variasi resizing) dengan pengulangan sebanyak 10 kali.
Pengujian secara tidak langsung dilakukan dengan mengubah ukuran resizing yang
diinginkan. Adapun tujuan dari pengujian secara tidak langsung adalah untuk mengetahui
apakah sistem berjalan dengan baik dan meneliti variasi resizing yang digunakan terhadap
tingkan pengenalan alat stasioneri serta mencari nilai variasi terkecil dengan tingkat
pengenalan terbaik.
Adapun beberap tahap dalam pengujian secara tidak langsung yaitu tahap pertama
adalah memberi nama setiap gambar alat stasioneri yang diperoleh dari proses capture.
Kemudian menentukan variasi resizing yang akan digunakan. Kemudian untuk melihat hasil
dari pengenalan alat stasioneri dengan menekan tombol “process” . hasil akhir berupa teks
akan ditampilkan pada GUI matlab. Pengaruh variasi resizing terhadap tingkat pengenalan
secara tidak langsung dapat dilihat pada Tabel 4.1. Untuk mendapatkan persentase tingkat
pengenalan digunakan rumus :
Tingkat Pengenalan : 𝒗
𝒏 𝑥 100% 4.1
Keterangan : Σv = Jumlah alat stasioneri yang dikenali dan benar
n = Banyaknya percobaan
Tabel 4.1. Pengaruh Variasi Resizing terhadap tingkat pengenalan
Variasi Resizing (%) Koefisien ekstraksi
ciri
Tingkat Pengenalan
(%)
90 612 100
80 542 100
70 474 100
60 406 100
50 338 100
40 270 100
30 201 100
20 134 100
10 64 100
5 30 100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Berdasarkan data pada Tabel 4.1. dapat disimpulkan bahwa nilai variasi resizing
terkecil dengan tingkat pengenalan terbaik yaitu 5% atau 0.05 karena mampu mengenali
alat-alat stasioneri dengan tingkat pengenalan 100%.
4.5. Analisis Hasil Data Pengujian secara Langsung.
Pengujian secara langsung dilakukan sebanyak 5 kali pengulangan sehingga data
yang diambil sebanyak 507 dengan jarak webcam ke objek 48cm. Data tersebut merupakan
9 alat stasioneri x 10 variasi resizing x 5 kali pengujian sehingga didapatkan data sebanyak
450. Serta sebagai tambahan meneliti pengaruh rotasi yaitu 45°, 90°, dan 180° , variasi
translasi yang digunakan yaitu saat objek digeser ke kiri, kanan, atas dan bawah dari posisi
awal sebanyak 3 cm serta variasi skala 41cm dan 54cm. Variasi skala ini mengikuti tinggi
dari fixture yang digunakan. Pengujian ini dilakukan di ruang Tugas Akhir Teknik Elektro.
Intensitas cahaya pada pengujian ini diatur agar tidak ada bayangan pada alat-alat stasioneri.
Tujuan dari pengujian secara tidak langsung ini adalah untuk mengetahui apakah
program berjalan dengan baik serta mencari nilai variasi resizing terkecil dengan tingkat
pengenalan terbaik, dan sebagai tambahan meneliti pengaruh variasi rotasi dan translasi
terhadap tingkat pengenalan alat stasioneri.
Pada pengujian secara langsung alat stasioneri diletakkan tepat berada dibawah
webcam. Hasil dari ekstraksi ciri menggunakan kode Freeman ditunjukkan pada Tabel 4.1
dan 4.2. Pada Tabel 4.1. dapat dilihat bahwa hingga variasi 10% tingkat pengenalan masih
100%, untuk hasil pengujian variasi 90%,80%,70%,60%,50%,40%,30%,dan 20% dapat
dilihat pada lampiran 2. Namun pada saat resizing 5% pada Tabel 4.2. terjadi kesalahan saat
mengenali objek. Objek steples dikenali sebagai stabilo. Hasil ini tentu berbeda dengan
pengujian secara tidak langsung yang menunjukkan tingkat pengenalan pada resizing 5%
adalah 100%. Hal ini terjadi karena ektraksi ciri menggunakan kode Freeman memiliki
kelemahan. Menurut Levner[14] representasi kode Freeman sebenarnya memiiki kelemahan
yaitu sebagai berikut :
1. Kode cenderung Panjang.
2. Sensitif terhadap distorsi dan segmentasi yang tidak sempurna.
3. Sangat bergantung pada penyekalaan ataupun rotasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Jadi pengujian saat resizing 5% tidak berjalan sesuai saat pengujian secara tidak langsung
itu karena saat objek di capture posisi objek tidak dalam posisi yang sama dengan gambar
yang dijadikan data base. Meskipun pada saat resizing
90%,80%,70%,60%,50%,40%,30%,20% dan 10% objek masih dapat dikenali namun pada
saat resizing 5% terjadi kesalahan pada pengenalan objek.
Tabel 4.2 Hasil PengujianVariasi Resizing 10% dengan koefisien ekstraksi ciri 64
Alat Stasioneri Variasi Resizing Dikenali sebagai
Gunting 10% Gunting
Stabilo
Stabilo
Tipe-x
Tipe-x
Paper Clip
Paper Clip
Pelubang Kertas
Pelubang Kertas
Ballpoint
Ballpoint
Steples
Steples
Note
Note
Cutter
Cutter
Tabel 4.3. Hasil Pengujian Variasi Resizing 5%
Alat Stasioneri Variasi Resizing Dikenali Sebagai
Gunting 5% Gunting
Stabilo
Stabilo
Tipe-x
Tipe-x
Paper Clip
Paper Clip
Pelubang Kertas
Pelubang Kertas
Ballpoint
Ballpoint
Steples
Stabilo
Note
Note
Cutter
Cutter
Alat stasioneri dapat dikatakan mirip apabila hasil perhitungan fungsi jarak Canberra
memiliki hasil yang paling kecil. Pada saat proses perhitungan fungsi jarak, hasil
perhitungan akan diurutkan dari nilai yang terkecil hingga terbesar. Objek yang
menghasilkan nilai terendah adalah citra yang mirip dengan citra yang ada pada basis data.
Jarak minimum yang diambil dari setiap percobaan yang dilakukan sebanyak 5 kali dapat
dilihat pada lampiran 2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Tabel 4.4 Pengaruh Variasi Resizing Terhadap Tingkat Pengenalan
Variasi Resizing (%) Koefisien ekstraksi
ciri
Tingkat Pengenalan
(%)
90 612 100
80 542 100
70 474 100
60 406 100
50 338 100
40 270 100
30 201 100
20 134 100
10 64 100
5 30 88
Berdasarkan data pada Tabel 4.4 persentase tingkat pengenalan untuk koefisien
ekstraksi ciri Kode Freeman sejumlah 30 adalah 88% karena terjadi kesalahan pengenalan
pada objek yang ada pada resizing 5% dimana ukuran dari objek serta Panjang kode rantai
objek sudah berbeda dengan data basenya sedangkan untuk kofisien 612, 542, 474, 406, 338,
270, 201, 134, dan 64 memiliki persentase tingkat pengenalan 100%. Sehingga dapat
disimpulkan bahwa nilai koefisien dari variasi resizing terkecil dengan tingkat pengenalan
terbaik yaitu menggunakan koefisien 64. Sebagai tambahan penelitian ini juga meneliti
pengaruh variasi rotasi, skala dan translasi dapat dilihat pada tabel 4.5 sampai 4.6.
Tabel 4.5 Pengaruh Variasi Translasi Terhadap Tingkat Pengenalan
Pengaruh Translasi
Translasi
Alat stasioneri
Kanan 3cm
(%)
Kiri 3cm
(%)
Atas 3cm
(%)
Bawah 3cm
(%)
Gunting
100
100
100
100
Stabilo
Tipe-x
Paper Clip
Pelubang Kertas
Ballpoint
Steples
Note
Cutter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Berdasarkan Tabel 4.5 variasi translasi dilakukan terhadap resizing 10% yang
memiliki koefisien eksraksi ciri 64, merupakan koefisien terkecil dengan tingkat pengenalan
terbaik. Jarak translasi dari titik tengah objek dapat digeser sejauh 3 cm. Disimpulkan bahwa
variasi translasi memiliki tingkat pengenalan yang baik. Untuk posisi translasi yang diuji
dapat dilihat pada Gambar 4.20. Selain meneliti pengaruh translasi pada penelitian ini juga
meneliti variasi rotasi terhadap resizing 10% dapat dilihat pada Tabel 4.7 dan Tabel 4.8.
(a) (b)
(c) (d)
Gambar 4.20 Posisi Tranlasi yang dapat Dikenali (a) Pojok Kiri Atas(b) Tengah Atas (c)
Pojok Kanan Atas (d) Kanan 3cm (e) Pojok Kanan Bawah (f) Tengah Bawah (g) Pojok
Kiri Bawah (h) Kiri 3cm
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
(e) (f)
(g) (h)
Gambar 4.20 (lanjutan) Posisi Translasi yang dapat Dikenali Posisi Tranlasi yang dapat
Dikenali (a) Pojok Kiri Atas(b) Tengah Atas (c) Pojok Kanan Atas (d) Kanan 3cm (e)
Pojok Kanan Bawah (f) Tengah Bawah (g) Pojok Kiri Bawah (h) Kiri 3cm
Tabel 4.6. Pengaruh Variasi Rotasi
Pengaruh Rotasi
Rotasi
Alat stasioneri
Dikenali sebagai
45° 90° 180°
Gunting cutter gunting gunting
Stabilo Tipe-x Paper Clip Tipe-x
Tipe-x Tipe-x Paper Clip Tipe-x
Paper Clip Tipe-x Paper Clip Paper Clip
Pelubang Kertas stabilo pelubang kertas pelubang kertas
Ballpoint Paper Clip pelubang kertas Ballpoint
Steples cutter gunting pelubang kertas
Note cutter note Note
Cutter stabilo cutter Cutter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Berdasarkan Tabel 4.6 8 pengujian terhadap variasi rotasi 45°, 90° dan 180° yang
dilakukan terhadap resizing 10%. Pada Tabel 4.8 dapat dilihat hasil dari rotasi sangat buruk.
contohnya pada kolom rotasi 45° hanya ada 1 benda yang bisa dikenali yaitu Tipe-x yang
berarti persentase pada rotasi 45° sebesar 11%. Selanjutnya pada kolom 90° hanya ada 5
benda yang bisa dikenali, selebihnya tidak yang berarti persentase pada rotasi 90° sebesar
55%. Sedangkan untuk kolom 180° benda yang dikenali hanya 7 benda dan tingkat
pengenalan sebesar 77%. Sehingga dapat disimpulkan bahwa perubahan rotasi pada alat
stasioneri sangat mempengaruhi tingkat pengenalan karena perubahan bentuk dari kontur
objek akan mengubah deretan kode Freeman objek tersebut. Selanjutnya pada Tabel 4.9
pengaruh variasi skala 41cm dan 54cm.
Tabel 4.7 Pengaruh Variasi Skala
Pengaruh Skala
Rotasi
Alat stasioneri
Dikenali sebagai
𝟒𝟖
𝟒𝟏𝒙 𝟏𝟎𝟎% = 𝟏𝟏𝟕%
𝟒𝟖
𝟓𝟒𝒙𝟏𝟎𝟎% = 𝟖𝟖%
Gunting Note cutter
Stabilo Cutter tipe-x
Tipe-x Stabilo tipe-x
Paper Clip Cutter tipe-x
Pelubang Kertas Note cutter
Ballpoint Note cutter
Steples Note stabilo
Note note pelubang kertas
Cutter Note stabilo
Berdasarkan tabel 4.7 pengaruh skala diuji pada resizing 10% yang merupakan
variasi koefisien terkecil dengan tingkat pengenalan terbaik. Pengujian skala dilakukan pada
jarak 41cm dan 54cm, pemilihan jarak tersebut karena menyesuaikan sanggahan yang ada
pada fixture sedangkan untuk jarak normalnya adalah 48cm. Pada kolom 41cm benda yang
dikenali dan benar hanya 1 benda selebihnya dikenali namun salah. Ini karena panjang kode
rantai antara objek yang di capture berbeda dengan yang ada pada database. Misalnya pada
pengenalan gunting pada kolom 41 cm pada tabel 4.7 pada kolom 41 cm gunting dikenali
sebagai note. Hal ini terjadi karena panjang kode rantai gunting sama dengan panjang kode
rantai note. Sehingga tingkat pengenalan pada skala 41 dapat dikatakan buruk dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
persentase pengenalan 11%. Selanjutnya pada kolom 54cm untuk tingkat pengenalannya
juga buruk dengan persentase 11% karena hanya ada 1 objek saja yang dapat dikenali dari 9
objek yang ada. Sehingga dapat disimpulkan bahwa variasi skala mempengaruhi tingkat
pengenalan alat-alat stasioneri.
Tabel 4.8 Rerata Pengaruh Translasi, Rotasi dan Skala pada Tingkat Pengenalan
Alat-alat Stasioneri
Variasi Tingkat Pengenalan (%)
Tranlasi 100
Rotasi 47.6
Skala 11
Pada pengujian ini objek yang dikenali harus berwarna lebih terang karena latar
belakangnya berwarna gelap yaitu warna hitam. Apabila objek berwarna gelap juga maka
akan mempengaruhi proses preprocessing sehingga program menjadi error. Selain itu pada
saat pengujian diusahakan tidak ada bayangan dan mendapatkan pencahayaan yang baik
karena jika tidak sesuai maka akan mempengaruhi proses pengenalan.
Berdasarkan hasil pengujian secara langsung dapat disimpulkan bahwa pengenalan
alat stasioneri secara langsung berbasis ekstraksi ciri kode Freeman sudah lebih baik dari
penelitian sebelumnya[1]. Hal ini dapat dilihat dari nilai koefisien kode Freeman terkecil
yang digunakan yaitu sejumah 64 dengan persentase tingkat pengenalan mencapai 100%.
Serta sebagai tambahan rata-rata pengaruh variasi translasi yaitu dengan tingkat pengenalan
100%.
4.6 Keterbatasan Metodologi
1. Pada saat proses pengujian diusahakan objek mendapatkan pencahayaan yang baik
serta diusahakan tidak ada bayangan.
2. Alat stasioneri yang digunakan harus berwarna terang ini karena latar belakang objek
berwarna gelap yaitu hitam. Jika alat stasioneri berwarna gelap akan mempengaruhi
proses preprocessing sehingga program akan menjadi error.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil pengujian sistem pengenalan alat stasioneri dapat disimpulkan
sebagai berikut :
1. Sistem pengenalan alat stasioneri dengan ekstraksi ciri kode Freeman dan fungsi
jarak Canberra berjalan sesuai dengan yang diharapkan serta lebih baik dari
penelitian sebelumnya. Hal tersebut dapat dilihat dari hasil pengujian pengenalan
alat stasioneri yang baik dan dapat mengenali semua objek pada Kode Freeman
terkecil sejumlah 64 pada resizing 10%.
2. Kode Freeman terkecil dengan tingkat pengenalan terbaik yaitu sejumlah 64
pada resizing 10% didapatkan persentase variasi translasi 100%, variasi rotasi
47.6% dan variasi skala 11%.
3. Dari hasil pengujian variasi rotasi dan skala didapatkan hasil bahwa kedua variasi
tersebut belum bisa mengenali benda dengan baik. Hal ini menunjukkan bahwa
ekstrasi ciri dengan menggunakan kode Freeman sangat rentan terhadap
perubahan posisi dan skala benda.
5.2 Saran
Dengan dibuatnya software pengenalan alat stasioneri ini, saran yang dapat diberikan
dalam pengembangan kedepan antara lain:
1. Membuat program agar ektraksi ciri kode Freeman bebas rotasi dan skala.
2. Mencoba ekstraksi ciri lain untuk pengenalan objek yang labih baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
DAFTAR PUSTAKA
[1] Febriyanto, 2009, Pengenalan Alat-alat Stasioneri secara RealTime Menggunakan
Ekstraksi Ciri DST, Tugas Akhir, Jurusan Teknik Elektro, FST, Universitas Sanata
Dharma, Yogyakarta.
[2] Yuliana, Nur., dkk. 2009. Pedekatan Kode Rantai Sebagai Dasar Pengenalam
Karakter, Seminar Nasional Aplikasi Teknologi Informasi 2009 (SNATI 2009),
Fakultas Ilmu Komputer, Universitas Guna Darma. Yogyakarta.
[3] Nivsky, E.C., Ernawati, Purwandari, E.P., 2016, Aplikasi Biometrika Pencocokan
Citra Daun Telinga Berbasis Tekstur dan Bentuk Menggunakan Metode
Transformasi Wavelet dan Chain Code, Jurnal Rekursif, vol. 4 no.3, hal 326.
[4] Kamus Besar Bahasa Indonesia
[5] https://www.logitech.com/en-in/product/hd-webcam-c270. Diakses pada tanggal 05
november 2017.
[6] Putra, Dharma, 2010, Pengolahan Citra Digital, Andi, Yogyakarta.
[7] http://www.vedcmalang.com/pppptkboemlg/index.php/menuutama/teknologi-
informasi/862-menghitung-jumlah-orang-dengan-deteksi-wajah. Diakses pada
tanggal 05 November 2017
[8] Madenda, Sariffudin, 2015, Pengolahan Citra dan Video Digital, Erlangga, Jakarta.
[9] http://thyamersita.blogspot.co.id/2016/10/penerapan-aplikasi-computer-vision.html.
diakses pada tanggal 05 des 2017.
[10] Wijaya, M.Ch.,Prijono, Agus. 2007, Pengolahan Citra Digital Menggunakan
Matlab. Informatika. Bandung.
[11] https://koleksibukukuliah.blogspot.co.id/2017/01/jenis-citra.html. Diakses pada
tanggal 5 Desember 2017
[12] Fatta, H.A.,2007, Konversi Format Citra RGB ke Format Grayscale Menggunakan
Visual Basic. Seminar Nasional Teknologi, STIMIK AMIKOM Yogyakarta.
[13] http://matlab.izmiran.ru/help/toolbox/images/intro6.html. Diakses pada tanggal 11
november 2017
[14] Kadir,A., Susanto, A., 2013, Teori dan Aplikasi Pengolahan Citra, Andi,
Yogyakarta.
[15] Otsu, N., A Threshold Selection Method from Gray-Level Histograms, IEEE
Transactions on Systems, Man, and Cybernetics, vol 9.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
LAMPIRAN 1
LISTING PROGRAM
LISTING PROGRAM SECARA TIDAK LANGSUNG
function varargout = Pengujiantidaklansung(varargin) % PENGUJIANTIDAKLANSUNG MATLAB code for Pengujiantidaklansung.fig % PENGUJIANTIDAKLANSUNG, by itself, creates a new PENGUJIANTIDAKLANSUNG
or raises the existing % singleton*. % % H = PENGUJIANTIDAKLANSUNG returns the handle to a new
PENGUJIANTIDAKLANSUNG or the handle to % the existing singleton*. % % PENGUJIANTIDAKLANSUNG('CALLBACK',hObject,eventData,handles,...)
calls the local % function named CALLBACK in PENGUJIANTIDAKLANSUNG.M with the given
input arguments. % % PENGUJIANTIDAKLANSUNG('Property','Value',...) creates a new
PENGUJIANTIDAKLANSUNG or raises the % existing singleton*. Starting from the left, property value pairs
are % applied to the GUI before Pengujiantidaklansung_OpeningFcn gets
called. An % unrecognized property name or invalid value makes property
application % stop. All inputs are passed to Pengujiantidaklansung_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 Pengujiantidaklansung
% Last Modified by GUIDE v2.5 22-May-2018 23:45:04
% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Pengujiantidaklansung_OpeningFcn,
... 'gui_OutputFcn', @Pengujiantidaklansung_OutputFcn,
... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before Pengujiantidaklansung is made visible. function Pengujiantidaklansung_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 Pengujiantidaklansung (see VARARGIN)
% Choose default command line output for Pengujiantidaklansung handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes Pengujiantidaklansung wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = Pengujiantidaklansung_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;
% --- Executes on button press in pushbutton1. 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)
%DATABASE %PopUpMenu var = handles.var; if (var==90) load dbvar90 panjang = 613; ukuran = 0.9; elseif (var==80) load dbvar80 panjang = 543; ukuran = 0.8; elseif (var==70) load dbvar70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
panjang = 475; ukuran = 0.7; elseif (var==60) load dbvar60 panjang = 407; ukuran = 0.6; elseif (var==50) load dbvar50 panjang = 339; ukuran = 0.5; elseif (var==40) load dbvar40 panjang = 271; ukuran = 0.4; elseif (var==30) load dbvar30 panjang = 202; ukuran = 0.3; elseif (var==20) load dbvar20 panjang = 135; ukuran = 0.2; elseif (var==10) load dbvar10 panjang = 65; ukuran = 0.1; elseif (var==5) load dbvar5 panjang = 31; ukuran = 0.05; end
%========================================================================
== %PROSES KONVERSI RGB KE BINER x = rgb2gray(imread('gunting.jpg')); level=graythresh(x); biner= im2bw(x,level); axes(handles.axes1) imshow(biner)
%OPERASI DILASI C1= ones(15); BW1=imdilate (biner,C1);
BW = imresize(BW1,ukuran); axes(handles.axes2) imshow(BW)
%EKTRAKSI CIRI DK = deteksikontur (BW); FK = kodefreeman(DK); FK (panjang)= 0;
SFK = size (FK); Sdb1 = size (db{1}); Sdb2 = size (db{2});
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
Sdb3 = size (db{3}); Sdb4 = size (db{4}); Sdb5 = size (db{5}); Sdb6 = size (db{6}); Sdb7 = size (db{7}); Sdb8 = size (db{8}); Sdb9 = size (db{9}); sdb = [Sdb1 ;Sdb2; Sdb3; Sdb4; Sdb5; Sdb6; Sdb7; Sdb8; Sdb9;];
r(1) = jarakcanberra(FK, db{1}); r(2) = jarakcanberra(FK, db{2}); r(3) = jarakcanberra(FK, db{3}); r(4) = jarakcanberra(FK, db{4}); r(5) = jarakcanberra(FK, db{5}); r(6) = jarakcanberra(FK, db{6}); r(7) = jarakcanberra(FK, db{7}); r(8) = jarakcanberra(FK, db{8}); r(9) = jarakcanberra(FK, db{9}); r; minr=min(r);
%KELUARAN TEKS if (minr==r(1)) z1={'Gunting'}; set(handles.edit1,'string',z1); elseif(minr==r(2)) z2={'Cutter'}; set(handles.edit1,'string',z2); elseif(minr==r(3)) z3={'Ballpoint'}; set(handles.edit1,'string',z3); elseif(minr==r(4)) z4={'Tipe-x'}; set(handles.edit1,'string',z4); elseif(minr==r(5)) z5={'Pelubang Kertas'}; set(handles.edit1,'string',z5); elseif(minr==r(6)) z6={'Paper Clip'}; set(handles.edit1,'string',z6); elseif(minr==r(7)) z7={'Stabilo'}; set(handles.edit1,'string',z7); elseif(minr==r(8)) z8={'Note(buku catatan)'}; set(handles.edit1,'string',z8); elseif(minr==r(9)) z9={'Steples'}; set(handles.edit1,'string',z9); end
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%RESET axes(handles.axes1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
plot(0) axes(handles.axes2) plot(0) set(handles.edit1,'string','') set(handles.popupmenu1, 'value',1)
% --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1
contents as cell array % contents{get(hObject,'Value')} returns selected item from
popupmenu1 indeks = get(handles.popupmenu1,'value'); switch indeks case 2 var=90; case 3 var=80; case 4 var=70; case 5 var=60; case 6 var=50; case 7 var=40; case 8 var=30; case 9 var=20; case 10 var=10; case 11 var=5; end handles.var=var; guidata(hObject,handles);
function x1 = prepros (a) x2 = graythresh(a); BW2= im2bw(a,x2);
%operasi opening D1= ones(15); x1 =imdilate (BW2,D1);
function [KM] = deteksikontur (DK) [jum_baris, jum_kolom] = size(DK); %peroleh pixel awal selesai = false ; for p = 1 : jum_baris for q = 1 : jum_kolom if DK (p,q) == 1 b0.y = p;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
b0.x = q;
selesai = true; break; end end if selesai break; end end c0 = 4; %arah barat %periksa 8 tetangga dan cari piksel pertama bernilai 1
for p = 1 : 8 [dy, dx] = delta_piksel (c0); if DK (b0.y + dy, b0.x + dx) == 1 b1.y = b0.y + dy; b1.x = b0.x + dx;
c1 = sebelum (c0); break; else c0 = berikut (c0); end end
KM = []; KM(1, 1) = b0.y; KM(1, 2) = b0.x; KM(2, 1) = b1.y; KM(2, 2) = b1.x;
%kontur n = 2; %jumlah piksel dalam kontur
b = b1; c = c1;
%ulang sampai berakhir while true for p = 1 : 8 [dy, dx] = delta_piksel (c); if DK (b.y + dy, b.x + dx) == 1 b.y = b.y + dy; b.x = b.x + dx;
c = sebelum (c);
n = n + 1; KM(n, 1) = b.y; KM(n, 2) = b.x;
break else c = berikut (c); end end %kondisi pengakhir pengulangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
if (b.y == b0.y) && (b.x == b0.x) break; end end
return
function [b] = berikut (x) if x == 0 b = 7; else b = x - 1; end
function [s] = sebelum(x) if x == 7 s = 0; else s = x + 1; end
if s < 2 s = 2; elseif s < 4 s = 4; elseif s < 6 s = 6; else s = 0; end
function [dy, dx] = delta_piksel(id) if id == 0 dx = 1; dy = 0; elseif id == 1 dx = 1; dy= -1; elseif id == 2 dx = 0; dy = -1; elseif id == 3 dx = -1; dy = -1; elseif id == 4 dx = -1; dy = 0; elseif id == 5 dx = -1; dy = 1; elseif id == 6 dx = 0; dy = 1; elseif id == 7 dx = 1; dy = 1; end
% --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); 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
% --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close
%========================================================================
====
%========================================================================
====function [FK] = kodefreeman(DK) %chain code digunakan untuk mendapatkan titik awal (x, y) dan %kode rantai dari kotur U yang dataya telahh terurutkan misalnya melalui %get kontur FK = [ ]; for p=2 : length(DK) deltay = DK(p, 1) - DK(p-1, 1); deltax = DK(p, 2) - DK(p-1, 2); indeks = 3 * deltay + deltax + 5; FK = [ FK ; indeks ]; End
%========================================================================
====
%========================================================================
====
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
function z=jarakcanberra(x,y) if length (x) > length (y) y(length(x)) = 0; end x = x+eps; y = y+eps; z =sum((abs(x-y))./(x+y))
end
LISTING PROGRAM PENGUJIAN SECARA LANGSUNG
function varargout = PEENGUJIANLANGSUNG(varargin) % PEENGUJIANLANGSUNG MATLAB code for PEENGUJIANLANGSUNG.fig % PEENGUJIANLANGSUNG, by itself, creates a new PEENGUJIANLANGSUNG or
raises the existing % singleton*. % % H = PEENGUJIANLANGSUNG returns the handle to a new
PEENGUJIANLANGSUNG or the handle to % the existing singleton*. % % PEENGUJIANLANGSUNG('CALLBACK',hObject,eventData,handles,...) calls
the local % function named CALLBACK in PEENGUJIANLANGSUNG.M with the given
input arguments. % % PEENGUJIANLANGSUNG('Property','Value',...) creates a new
PEENGUJIANLANGSUNG or raises the % existing singleton*. Starting from the left, property value pairs
are % applied to the GUI before PEENGUJIANLANGSUNG_OpeningFcn gets
called. An % unrecognized property name or invalid value makes property
application % stop. All inputs are passed to PEENGUJIANLANGSUNG_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 PEENGUJIANLANGSUNG
% Last Modified by GUIDE v2.5 15-May-2018 22:47:59
% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @PEENGUJIANLANGSUNG_OpeningFcn, ... 'gui_OutputFcn', @PEENGUJIANLANGSUNG_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1})
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before PEENGUJIANLANGSUNG is made visible. function PEENGUJIANLANGSUNG_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 PEENGUJIANLANGSUNG (see VARARGIN)
% Choose default command line output for PEENGUJIANLANGSUNG handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes PEENGUJIANLANGSUNG wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = PEENGUJIANLANGSUNG_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;
% --- Executes on button press in Camera On. 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 camvid; axes(handles.axes1); info=imaqhwinfo('winvideo'); dev_info=imaqhwinfo('winvideo',1); camvid = videoinput('winvideo',1,'RGB24_640x480'); camvid.FramesPerTrigger=1; triggerconfig(camvid,'manual'); camRes = get(camvid,'VideoResolution'); imWidth = 640; imHeight = 480; nBands = get(camvid,'NumberOfBands');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
hImage = image(zeros(imHeight, imWidth, nBands),'parent', handles.axes1); preview(camvid,hImage);
% --- Executes on button press in Capture. function Capture_Callback(hObject, eventdata, handles) % hObject handle to Capture (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %capture global picture; global camvid; pause(0.5); stoppreview(camvid); picture = getsnapshot (camvid); handles.picture=picture; axes(handles.axes1); imshow(picture); imwrite(picture,'coba.jpg');
% --- Executes on button press in PROCESS. function PROCESS_Callback(~, eventdata, handles) % hObject handle to PROCESS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%DATABASE %PopUpMenu var = handles.var; if (var==90) load dbvar90 panjang = 613; ukuran = 0.9; elseif (var==80) load dbvar80 panjang = 543; ukuran = 0.8; elseif (var==70) load dbvar70 panjang = 475; ukuran = 0.7; elseif (var==60) load dbvar60 panjang = 407; ukuran = 0.6; elseif (var==50) load dbvar50 panjang = 339; ukuran = 0.5; elseif (var==40) load dbvar40 panjang = 271; ukuran = 0.4; elseif (var==30) load dbvar30 panjang = 202; ukuran = 0.3; elseif (var==20) load dbvar20
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
panjang = 135; ukuran = 0.2; elseif (var==10) load dbvar10 panjang = 65; ukuran = 0.1; elseif (var==5) load dbvar5 panjang = 31; ukuran = 0.05; end
%========================================================================
== %PROSES KONVERSI RGB KE BINER x = rgb2gray(imread('coba.jpg')); level=graythresh(x); biner= im2bw(x,level); axes(handles.axes1) imshow(biner) %OPERASI DILASI C1= ones(15); BW1=imdilate (biner,C1); BW = imresize(BW1,ukuran); axes(handles.axes2) imshow(BW)
%EKTRAKSI CIRI DK = deteksikontur (BW); FK = kodefreeman(DK); FK (panjang)= 0;
SFK = size (FK); Sdb1 = size (db{1}); Sdb2 = size (db{2}); Sdb3 = size (db{3}); Sdb4 = size (db{4}); Sdb5 = size (db{5}); Sdb6 = size (db{6}); Sdb7 = size (db{7}); Sdb8 = size (db{8}); Sdb9 = size (db{9}); sdb = [Sdb1 ;Sdb2; Sdb3; Sdb4; Sdb5; Sdb6; Sdb7; Sdb8; Sdb9;];
r(1) = jarakcanberra(FK, db{1}); r(2) = jarakcanberra(FK, db{2}); r(3) = jarakcanberra(FK, db{3}); r(4) = jarakcanberra(FK, db{4}); r(5) = jarakcanberra(FK, db{5}); r(6) = jarakcanberra(FK, db{6}); r(7) = jarakcanberra(FK, db{7}); r(8) = jarakcanberra(FK, db{8}); r(9) = jarakcanberra(FK, db{9});
r; minr=min(r);
%keluaran teks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
if (minr==r(1)) z1={'Gunting'}; set(handles.edit1,'string',z1); elseif(minr==r(2)) z2={'Cutter'}; set(handles.edit1,'string',z2); elseif(minr==r(3)) z3={'Ballpoint'}; set(handles.edit1,'string',z3); elseif(minr==r(4)) z4={'Tipe-x'}; set(handles.edit1,'string',z4); elseif(minr==r(5)) z5={'Pelubang Kertas'}; set(handles.edit1,'string',z5); elseif(minr==r(6)) z6={'Paper Clip'}; set(handles.edit1,'string',z6); elseif(minr==r(7)) z7={'Stabilo'}; set(handles.edit1,'string',z7); elseif(minr==r(8)) z8={'Note(buku catatan'}; set(handles.edit1,'string',z8); elseif(minr==r(9)) z9={'Steples'}; set(handles.edit1,'string',z9); end
% --- Executes on button press in RESET. function RESET_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%RESET axes(handles.axes1) plot(0) axes(handles.axes2) plot(0) set(handles.edit1,'string','') set(handles.popupmenu1, 'value',2)
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
% 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
% --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1
contents as cell array % contents{get(hObject,'Value')} returns selected item from
popupmenu1
%popupmenu1 indeks = get(handles.popupmenu1,'value'); switch indeks case 2 var=90; case 3 var=80; case 4 var=70; case 5 var=60; case 6 var=50; case 7 var=40; case 8 var=30; case 9 var=20; case 10 var=10; case 11 var=5; end handles.var=var; guidata(hObject,handles);
% --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns
called
% Hint: popupmenu controls usually have a white background on Windows.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in END. function END_Callback(hObject, ~, handles) % hObject handle to END (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%TOMBOL END close
%===========================================================
%=========================================================== function DK = deteksikontur (BW) %INBOUND_TRACING Memperoleh kontur yang telah terurutkan dgn menggunakan %algoritma pelacakan kontur moore
[jum_baris, jum_kolom] = size(BW); %peroleh pixel awal selesai = false ; for p = 1 : jum_baris for q = 1 : jum_kolom if BW (p,q) == 1 b0.y = p; b0.x = q;
selesai = true; break; end end if selesai break; end end c0 = 4; %arah barat %periksa 8 tetangga dan cari piksel pertama bernilai 1
for p = 1 : 8 [dy, dx] = delta_piksel (c0); if BW (b0.y + dy, b0.x + dx) == 1 b1.y = b0.y + dy; b1.x = b0.x + dx;
c1 = sebelum (c0); break; else c0 = berikut (c0); end end
DK = []; DK(1, 1) = b0.y; DK(1, 2) = b0.x; DK(2, 1) = b1.y;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
DK(2, 2) = b1.x;
%kontur n = 2; %jumlah piksel dalam kontur
b = b1; c = c1;
%ulang sampai berakhir while true for p = 1 : 8 [dy, dx] = delta_piksel (c); if BW (b.y + dy, b.x + dx) == 1 b.y = b.y + dy; b.x = b.x + dx;
c = sebelum (c);
n = n + 1; DK(n, 1) = b.y; DK(n, 2) = b.x;
break else c = berikut (c); end end %kondisi pengakhir pengulangan if (b.y == b0.y) && (b.x == b0.x) break; end end
return
function [b] = berikut (x) if x == 0 b = 7; else b = x - 1; end
function [s] = sebelum(x) if x == 7 s = 0; else s = x + 1; end
if s < 2 s = 2; elseif s < 4 s = 4; elseif s < 6 s = 6; else s = 0; end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
function [dy, dx] = delta_piksel(id) if id == 0 dx = 1; dy = 0; elseif id == 1 dx = 1; dy= -1; elseif id == 2 dx = 0; dy = -1; elseif id == 3 dx = -1; dy = -1; elseif id == 4 dx = -1; dy = 0; elseif id == 5 dx = -1; dy = 1; elseif id == 6 dx = 0; dy = 1; elseif id == 7 dx = 1; dy = 1; end
%============================================================
===
%============================================================
=== function [FK] = kodefreeman(DK) %chain code digunakan untuk mendapatkan titik awal (x, y) dan %kode rantai dari kotur U yang dataya telahh terurutkan misalnya melalui %get kontur FK = [ ]; for p=2 : length(DK) deltay = DK(p, 1) - DK(p-1, 1); deltax = DK(p, 2) - DK(p-1, 2); indeks = 3 * deltay + deltax + 5; FK = [ FK ; indeks ]; end
%============================================================
===
%============================================================
=== function z=jarakcanberra(x,y) if length (x) > length (y) y(length(x)) = 0; end x = x+eps; y = y+eps; z =sum((abs(x-y))./(abs(x)+abs(y))
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
LISTING PROGRAM BASIS DATA function dbvar90 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.9); F = deteksikontur(E);S1 = kodefreeman (F) ; x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.9); F = deteksikontur(E); S2 = kodefreeman (F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.9); F = deteksikontur(E); S3 = kodefreeman (F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.9); F = deteksikontur(E); S4 = kodefreeman (F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.9); F = deteksikontur(E); S5 = kodefreeman (F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.9); F = deteksikontur(E); S6 = kodefreeman (F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.9); F = deteksikontur(E);S7 = kodefreeman (F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.9); F = deteksikontur(E);S8 = kodefreeman (F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.9); F = deteksikontur(E);S9 = kodefreeman (F);
S1 (613)= 0; S2 (613)= 0; S3 (613)= 0; S4 (613)= 0; S5 (613)= 0; S6 (613)= 0; S7 (613)= 0; S8 (613)= 0; S9 (613)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar90 db
function dbvar80 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.8); F = deteksikontur(E); S1 = kodefreeman (F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.8); F = deteksikontur(E); S2 = kodefreeman (F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.8); F = deteksikontur(E); S3 = kodefreeman (F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.8); F = deteksikontur(E); S4 = kodefreeman (F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.8); F = deteksikontur(E); S5 = kodefreeman (F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.8); F = deteksikontur(E); S6 = kodefreeman (F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.8); F = deteksikontur(E); S7 = kodefreeman (F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.8); F = deteksikontur(E); S8 = kodefreeman (F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.8); F = deteksikontur(E);S9 = kodefreeman (F);
S1 (543)= 0; S2 (543)= 0; S3 (543)= 0; S4 (543)= 0; S5 (543)= 0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
S6 (543)= 0; S7 (543)= 0; S8 (543)= 0; S9 (543)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar80 db
function dbvar70 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.7); F = deteksikontur(E); S1 = kodefreeman(F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.7); F = deteksikontur(E); S2 = kodefreeman(F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.7); F = deteksikontur(E); S3 = kodefreeman(F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.7); F = deteksikontur(E); S4 = kodefreeman(F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.7); F = deteksikontur(E); S5 = kodefreeman(F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.7); F = deteksikontur(E); S6 = kodefreeman(F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.7); F = deteksikontur(E); S7 = kodefreeman(F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.7); F = deteksikontur(E); S8 = kodefreeman(F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.7); F = deteksikontur(E); S9 = kodefreeman(F);
S1 (475)= 0; S2 (475)= 0; S3 (475)= 0; S4 (475)= 0; S5 (475)= 0; S6 (475)= 0; S7 (475)= 0; S8 (475)= 0; S9 (475)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar70 db
function dbvar60 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.6); F = deteksikontur(E); S1 = kodefreeman(F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.6); F = deteksikontur(E);S2 = kodefreeman(F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.6); F = deteksikontur(E);S3 = kodefreeman(F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.6); F = deteksikontur(E);S4 = kodefreeman(F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.6); F = deteksikontur(E);S5 = kodefreeman(F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.6); F = deteksikontur(E);S6 = kodefreeman(F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.6); F = deteksikontur(E); S7 = kodefreeman(F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.6); F = deteksikontur(E);S8 = kodefreeman(F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.6); F = deteksikontur(E);S9 = kodefreeman(F);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
S1 (407)= 0; S2 (407)= 0; S3 (407)= 0; S4 (407)= 0; S5 (407)= 0; S6 (407)= 0; S7 (407)= 0; S8 (407)= 0; S9 (407)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar60 db
function dbvar50 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.5); F = deteksikontur(E); S1 =kodefreeman (F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.5); F = deteksikontur(E);S2 =kodefreeman (F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.5); F = deteksikontur(E);S3 =kodefreeman (F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.5); F = deteksikontur(E);S4 =kodefreeman (F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.5); F = deteksikontur(E);S5 =kodefreeman (F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.5); F = deteksikontur(E); S6 =kodefreeman (F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.5); F = deteksikontur(E);S7 =kodefreeman (F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.5); F = deteksikontur(E); S8 =kodefreeman (F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.5); F = deteksikontur(E);S9 =kodefreeman (F);
S1 (339)= 0; S2 (339)= 0; S3 (339)= 0; S4 (339)= 0; S5 (339)= 0; S6 (339)= 0; S7 (339)= 0; S8 (339)= 0; S9 (339)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar50 db
function dbvar40 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.4); F = deteksikontur(E); S1 = kodefreeman (F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.4); F = deteksikontur(E); S2 = kodefreeman (F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.4); F = deteksikontur(E); S3 = kodefreeman (F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.4); F = deteksikontur(E); S4 = kodefreeman (F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.4); F = deteksikontur(E); S5 = kodefreeman (F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.4); F = deteksikontur(E); S6 = kodefreeman (F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.4); F = deteksikontur(E); S7 = kodefreeman (F);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.4); F = deteksikontur(E); S8 = kodefreeman (F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.4); F = deteksikontur(E); S9 = kodefreeman (F);
S1 (271)= 0; S2 (271)= 0; S3 (271)= 0; S4 (271)= 0; S5 (271)= 0; S6 (271)= 0; S7 (271)= 0; S8 (271)= 0; S9 (271)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar40 db
function dbvar30 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.3); F = deteksikontur(E); S1 = kodefreeman(F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.3); F = deteksikontur(E); S2 = kodefreeman(F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.3); F = deteksikontur(E); S3 = kodefreeman(F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.3); F = deteksikontur(E); S4 = kodefreeman(F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.3); F = deteksikontur(E); S5 = kodefreeman(F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.3); F = deteksikontur(E); S6 = kodefreeman(F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.3); F = deteksikontur(E); S7 = kodefreeman(F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.3); F = deteksikontur(E); S8 = kodefreeman(F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.3); F = deteksikontur(E); S9 = kodefreeman(F);
S1 (202)= 0; S2 (202)= 0; S3 (202)= 0; S4 (202)= 0; S5 (202)= 0; S6 (202)= 0; S7 (202)= 0; S8 (202)= 0; S9 (202)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar30 db
function dbvar20 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.2); F = deteksikontur(E); S1 = kodefreeman (F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.2); F = deteksikontur(E); S2 = kodefreeman (F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.2); F = deteksikontur(E); S3 = kodefreeman (F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.2); F = deteksikontur(E); S4 = kodefreeman (F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
F = deteksikontur(E); S5 = kodefreeman (F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.2); F = deteksikontur(E); S6 = kodefreeman (F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.2); F = deteksikontur(E); S7 = kodefreeman (F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.2); F = deteksikontur(E); S8 = kodefreeman (F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.2); F = deteksikontur(E); S9 = kodefreeman (F);
S1 (135)= 0; S2 (135)= 0; S3 (135)= 0; S4 (135)= 0; S5 (135)= 0; S6 (135)= 0; S7 (135)= 0; S8 (135)= 0; S9 (135)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar20 db
function dbvar10 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.1); F = deteksikontur(E); S1 = kodefreeman (F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.1); F = deteksikontur(E); S2 = kodefreeman (F); x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.1); F = deteksikontur(E); S3 = kodefreeman (F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.1); F = deteksikontur(E); S4 = kodefreeman (F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.1); F = deteksikontur(E); S5 = kodefreeman (F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.1); F = deteksikontur(E); S6 = kodefreeman (F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.1); F = deteksikontur(E); S7 = kodefreeman (F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.1); F = deteksikontur(E); S8 = kodefreeman (F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.1); F = deteksikontur(E); S9 = kodefreeman (F);
S1 (65)= 0; S2 (65)= 0; S3 (65)= 0; S4 (65)= 0; S5 (65)= 0; S6 (65)= 0; S7 (65)= 0; S8 (65)= 0; S9 (65)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar10 db
function dbvar5 x=rgb2gray(imread('gunting.jpg'));x1= prepros(x); E = imresize(x1,0.05); F = deteksikontur(E); S1 =kodefreeman (F); x=rgb2gray(imread('cutter.jpg'));x1=prepros(x); E = imresize(x1,0.05); F = deteksikontur(E);S2 =kodefreeman (F);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
x=rgb2gray(imread('balpo.jpg'));x1=prepros(x); E = imresize(x1,0.05); F = deteksikontur(E);S3 =kodefreeman (F); x=rgb2gray(imread('tipx.jpg'));x1=prepros(x); E = imresize(x1,0.05); F = deteksikontur(E);S4 =kodefreeman (F); x=rgb2gray(imread('pelker.jpg'));x1=prepros(x); E = imresize(x1,0.05); F = deteksikontur(E);S5 =kodefreeman (F); x=rgb2gray(imread('perklip.jpg'));x1=prepros(x);E = imresize(x1,0.05); F = deteksikontur(E); S6 =kodefreeman (F); x=rgb2gray(imread('stabilo.jpg'));x1=prepros(x);E = imresize(x1,0.05); F = deteksikontur(E);S7 =kodefreeman (F); x=rgb2gray(imread('note.jpg'));x1=prepros(x);E = imresize(x1,0.05); F = deteksikontur(E); S8 =kodefreeman (F); x=rgb2gray(imread('steples.jpg'));x1=prepros(x);E = imresize(x1,0.05); F = deteksikontur(E);S9 =kodefreeman (F);
S1 (31)= 0; S2 (31)= 0; S3 (31)= 0; S4 (31)= 0; S5 (31)= 0; S6 (31)= 0; S7 (31)= 0; S8 (31)= 0; S9 (31)= 0; db = {S1 S2 S3 S4 S5 S6 S7 S8 S9}; save dbvar5 db
LISTING PROGRAM FUNGSI JARAK CANBERRA function z=jarakcanberra(x,y) if length (x) > length (y) y(length(x)) = 0; end x = x+eps; y = y+eps; z =sum((abs(x-y))./ (abs(x)+abs(y))
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
LAMPIRAN 2
DATA HASIL PERCOBAAN
Hasil percobaan untuk variasi resizing 90%
out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
Hasil percobaan untuk variasi resizing 80% out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Hasil percobaan untuk variasi resizing 70% out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
Hasil percobaan untuk variasi resizing 60% out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Hasil percobaan untuk variasi resizing 50% out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
Hasil percobaan untuk variasi resizing 40% out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Hasil percobaan untuk variasi resizing 30% out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
Hasil percobaan untuk variasi resizing 20% out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Hasil percobaan untuk variasi resizing 10% out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
Hasil percobaan untuk variasi resizing 5% out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 4 1
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Hasil percobaan untuk variasi rotasi
45°
out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
90°
out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
180°
out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
Hasil percobaan untuk variasi Translasi
3 cm ke kiri
out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
3 cm ke kanan
out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
3 cm ke atas
out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
3 cm ke bawah
out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
Hasil percobaan untuk variasi Skala
𝟒𝟖
𝟒𝟏 𝒙 𝟏𝟎𝟎% = 𝟏𝟏𝟕%
out
in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
𝟒𝟖
𝟓𝟒 𝒙 𝟏𝟎𝟎% = 𝟖𝟖%
out in
Gunting Steples Tipe-
x Pelubang
kertas Penjepit
kertas Cutter Note Ballpoint stabilo
Gunting 5
Steples 5
Tipe-x 5
Pelubang
kertas 5
Penjepit
kertas 5
Cutter 5
Note 5
Ballpoint 5
stabilo 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI