Anda di halaman 1dari 132

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

TUGAS AKHIR

PENGENALAN TEKSTUR MENGGUNAKAN


METODE GLCM SERTA MODUL NIRKABEL

Diajukan untuk memenuhi salah satu syarat


memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Jurusan Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma

disusun oleh :

EZRA ALVANSGA
NIM : 155114015

PROGRAM STUDI TEKNIK ELEKTRO


JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

FINAL PROJECT

TEXTURE RECOGNITION USING GLCM METHOD


AND WIRELESS MODULE

In a partial fulfilment of the requirements


for the degree of Sarjana Teknik
Department of Electrical Engineering
Faculty of Science and Technology, Sanata Dharma University

EZRA ALVANSGA
NIM : 155114015

DEPARTMENT OF ELECTRICAL ENGINEERING


FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

LEMBAR PERSETUJUAN

TUGAS AKHIR

PENGENALAN TEKSTUR MENGGUNAKAN


METODE GLCM SERTA MODUL NIRKABEL
(TEXTURE RECOGNITION USING GLCM METHOD
AND WIRELESS MODULE)

Oleh :

EZRA ALVANSGA

NIM : 155114015

telah disetujui oleh :

Pembimbing

Dr. Linggo Sumarno M.T. Tanggal : _______________________

iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

HALAMAN PENGESAHAN

TUGAS AKHIR

PENGENALAN TEKSTUR MENGGUNAKAN


METODE GLCM SERTA MODUL NIRKABEL
(TEXTURE RECOGNITION USING GLCM METHOD
AND WIRELESS MODULE)

Disusun oleh :
EZRA ALVANSGA
NIM : 155114015

Telah dipertahankan di depan Panitia Penguji


pada tanggal 9 Juli 2019
dan dinyatakan memenuhi syarat

Susunan Panitia Penguji :

Nama Lengkap Tanda Tangan

Ketua : Augustinus Bayu Primawan, D. Tech.Sc. _________________________

Sekretaris : Dr. Linggo Sumarno _________________________

Anggota : Damar Widjaja, Ph. D. _________________________

Yogyakarta, ________________
Fakultas Sains Dan Teknologi
Universitas Sanata Dharma
Dekan,

Sudi Mungkasi, S.Si, M.Math.Sc.,Ph.D,


iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

sebagaiamana layaknya karya ilmiah.

Yogyakarta, 23 Juli 2019

Penulis

Ezra Alvansga

v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

HALAMAN PERSEMBAHAN

MOTTO:
“Stop Doubting, Start Believing!”

Persembahan
Tugas Akhir ini kupersembahkan untuk
Tuhan Yesus Kristus yang selalu memimpin setiap langkahku
Kedua orang tua dan keluarga yang selalu mendoakan yang
terbaik
Sepupuku yang selalu mendukung proses pembelajaranku
Dosen serta teman-teman yang sudah berdinamika bersama selama
masa perkuliahan

vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA


ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : Ezra Alvansga

Nomor Mahasiswa : 155114015

Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan


Universitas Sanata Dharma karya ilmiah yang berjudul :

PENGENALAN TEKSTUR MENGGUNAKAN


METODE GLCM SERTA MODUL NIRKABEL

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya 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.

Dengan ini pernyataan yang saya buat dengan sebenarnya.

Yogyakarta, 23 Juli 2019

Penulis

Ezra Alvansga

vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

INTISARI

Perkembangan teknologi dalam bidang computer vision menjadi tantangan dalam


menganalisis dan mengolah citra. Salah satu obyek citra yang menjadi sorotan untuk dikenali
adalah tekstur citra. Tekstur merupakan atribut yang paling penting dalam computer vision.
Walaupun demikian, tekstur adalah salah satu konsep yang sulit direpresentasikan dalam
computer vision. Tidak seperti penglihatan manusia yang dapat dengan mudah mengenali
tekstur, algoritma computer vision rawan dengan kesalahan. Maka dari itu, computer vision
masih terus dalam pengembangan mengenai algoritma yang digunakan.
Salah satu metode yang dapat digunakan untuk pengenalan tekstur adalah metode
Gray Level Co-occurrence Matrix (GLCM). Metode GLCM merupakan ekstraksi ciri order
kedua yang menunjukkan hubungan statistik antara dua piksel. Metode ini memiliki 2
parameter penting, yaitu sudut dan jarak ketetanggaan piksel. Setiap sudut dan jarak
ketetanggaan pikselnya akan menghasilkan 5 nilai fitur, yaitu Angular Second Moment
(ASM), Kontras, Inverse Different Moment (IDM), Entropi dan Korelasi. Kelima nilai fitur
ekstraksi tersebut akan digunakan untuk klasifikasi tekstur dengan menggunakan jarak
Kosinus.
Berdasarkan hasil penelitian, perubahan variasi RST (Rotasi, Skala, Translasi) pada
tekstur masukan sangat berpengaruh terhadap tingkat pengenalan suatu tekstur dengan
metode GLCM. Secara keseluruhan pengenalan tekstur, variasi RST menurunkan unjuk
kerja pengenalan. Pada pengujian pengenalan tekstur tunggal dan tekstur ganda terlihat
bahwa variasi yang paling menurunkan unjuk kerja pengenalan ialah variasi Rotasi dengan
persentase rata-rata pengenalan paling rendah.
Kata kunci: computer vision, tekstur, GLCM, jarak Kosinus, variasi RST

viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ABSTRACT

Technological developments in computer vision become challenge in analysis and


image processing. One object of the image that is highlighted is image texture. Texture is
the most important attribute in computer vision. However, texture is one of the concepts that
is difficult to represent in computer vision. Unlike human vision which can easily recognize
texture, computer vision is prone to errors. Therefore, computer vision is still in development
regarding the algorithm used.
One method that can be used for texture recognition is Gray Level Co-occurrence
Matrix (GLCM) method. The GLCM method is a second order feature extraction that shows
a statistical relationship between two pixels. This method has 2 important parameters,
namely the angle and distance of neighboring pixels. Each pixel angle and distance will
produce 5 feature values, namely Angular Second Moment (ASM), Contrast, Inverse
Different Moment (IDM), Entropy and Correlation. The five extraction feature values will
be used for texture classification using the Cosine distance.
Based on the results of the study, changes in RST variations (Rotation, Scale,
Translation) on the input texture greatly influence the level of success of texture recognition
by the GLCM method. Overall the texture recognitions, variations in RST decreases
recognition performance. In testing the recognition of single textures and double textures, it
can be seen that the variation that most decreases recognition performance is the variation
of Rotation with the lowest percentage of average recognition.
Keywords: computer vision, texture, GLCM, Cosine distance, RST variation

ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas hikmat dan
anugerah yang Ia berikan sehingga penulis dapat menyelesaikan laporan Tugas Akhir yang
berjudul “Pengenalan Tekstur Menggunakan Metode GLCM Serta Modul Nirkabel”.

Tugas Akhir ini disusun sebagai salah satu syarat kelulusan untuk memperoleh gelar
Sarjana Teknik pada Program Studi Teknik Elektro, Fakultas Sains dan Teknologi,
Universitas Sanata Dharma Yogyakarta. Penulisan Tugas Akhir ini tidak lepas dari campur
tangan dan bantuan dari banyak pihak. Penulis menyadari bahwa ada banyak pihak yang
turut memberikan dukungan, bimbingan serta arahan sehingga penulisan ini dapat
diselesaikan dengan baik. Oleh karena itu, penulis ingin mengucapkan terima kasih kepada:

1. Tuhan Yesus Kristus, yang senantiasa membimbing langkahku.


2. Bapak Sudi Mungkasi, S.Si., M.Math.Sc.,Ph.D., selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma.
3. Bapak Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elektro,
Fakultas Sains dan Teknologi, Universitas Sanata Dharma.
4. Bapak Dr. Ir. Linggo Sumarno, M.T., selaku Dosen Pembimbing Tugas Akhir dan
Dosen Pembimbing Akademik yang selalu memberikan masukan dan dorongan,
kepada penulis untuk berkembang dan berproses, selalu sabar dan meluangkan
waktunya untuk bimbingan sehingga tugas akhir dapat diselesaikan dengan hasil yang
memuaskan.
5. Bapak Augustinus Bayu Primawan D.Tech.Sc. dan Bapak Damar Widjaja Ph.D.,
selaku dosen penguji tugas akhir yang telah memberi masukan, bimbingan serta saran
untuk menyempurnakan penulisan tugas akhir ini.
6. Danu Crismanto dan Yohanes Irvan Yulianto, selaku rekan dalam pengerjaan
penelitian Tugas Akhir yang selalu sabar dan saling mendukung satu sama lain
7. Bapak dan ibu dosen yang mengajarkan banyak hal dan memberikan pengalaman
dalam proses pembelajaran selama penulis menempuh pendidikan di Program Studi
Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma.
8. Kedua orang tua dan seluruh keluarga yang senantiasa mendukung dan mendoakan
yang terbaik sehingga penulis dapat menyelesaikan tugas akhir ini.

x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

9. Semua teman-teman yang sudah memberikan dukungannya selama penulisan tugas


akhir ini, khususnya untuk teman-teman Teknik Elektro angkatan 2015 serta teman-
teman Chi Alpha.
10. Seluruh staf dan karyawan Universitas Sanata Dharma atas pelayanan yang diberikan
untuk mahasiswa
11. Seluruh pihak yang tidak dapat disebutkan satu persatu yang membantu dalam
penyelesaian tugas akhir ini.

Penulis menyadari bahwa dalam penulisan tugas akhir ini masih banyak terdapat
kekurangan. Oleh karena itu, penulis mengharapkan adanya masukan, kritik dan saran yang
bersifat membangun untuk menyempurnakan kekurangan tugas akhir ini. Penulis berharap
tugas akhir ini dapat bermanfaat untuk penelitian selanjutnya terkait dengan topik yang
diambil oleh penulis. Sekian dan terima kasih.

Yogyakarta, 23 Juli 2019

Penulis

Ezra Alvansga

xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR ISI

HALAMAN SAMPUL (BAHASA INDONESIA) ................................................................ i


HALAMAN SAMPUL (BAHASA INGGRIS) .................................................................... ii
LEMBAR PERSETUJUAN ................................................................................................. iii
HALAMAN PENGESAHAN .............................................................................................. iv
LEMBAR PERNYATAAN KEASLIAN KARYA .............................................................. v
HALAMAN PERSEMBAHAN ........................................................................................... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS ........................................................................................... vii
INTISARI ........................................................................................................................... viii
ABSTRACT ......................................................................................................................... ix
KATA PENGANTAR ........................................................................................................... x
DAFTAR ISI ....................................................................................................................... xii
DAFTAR GAMBAR .......................................................................................................... xiv
DAFTAR TABEL .............................................................................................................. xvi
BAB I : PENDAHULUAN ................................................................................................... 1
1.1. Latar Belakang ........................................................................................................... 1
1.2. Tujuan dan Manfaat Penelitian .................................................................................. 2
1.3. Batasan Masalah ........................................................................................................ 3
1.4. Metode Penelitian ...................................................................................................... 4
BAB II : DASAR TEORI ...................................................................................................... 6
2.1. Tekstur ....................................................................................................................... 6
2.2. ArduCAM Mini ......................................................................................................... 7
2.3. ESP8266 .................................................................................................................... 8
2.4. Pengolahan Citra Digital.......................................................................................... 10
2.4.1. Citra Digital ...................................................................................................... 10
2.4.2. Citra Grayscale ................................................................................................. 11
2.4.3. Citra RGB ......................................................................................................... 11
2.4.4. Konversi citra RGB menjadi citra Grayscale ................................................... 12
2.5. Machine Vision Systems .......................................................................................... 12
2.6. Gray Level Co-occurrence Matrix ........................................................................... 13
2.7. Jarak Kosinus ........................................................................................................... 24

xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB III : RANCANGAN PENELITIAN ........................................................................... 26


3.1. Proses Pengenalan Tekstur ...................................................................................... 26
3.1.1. Pengambilan dan Pengiriman Video Tekstur ................................................... 28
3.1.2. Penerimaan Video Tekstur ............................................................................... 29
3.1.3. Tahap Preprocessing ........................................................................................ 30
3.1.4. Tahap Ekstraksi Ciri GLCM............................................................................. 31
3.1.5. Tahap Fungsi Jarak Kosinus ............................................................................. 33
3.1.6. Penentuan Keluaran .......................................................................................... 34
3.2. Perancangan Basis Data ........................................................................................... 34
3.3. Perancangan Tampilan GUI Matlab ........................................................................ 35
3.4. Perancangan Hardware ........................................................................................... 38
3.5. Pengujian Citra Tekstur ........................................................................................... 39
BAB IV : HASIL DAN PEMBAHASAN ........................................................................... 40
4.1. Hasil Pengujian dan Analisis Data .......................................................................... 40
4.1.1. Pengujian Pengaruh RST Terhadap Pengenalan Tekstur ................................. 40
4.1.2. Tingkat Pengenalan Terbaik Dan Terburuk ..................................................... 45
4.1.3. Pengujian Pengaruh Jarak Wireless .................................................................. 48
4.1.4. Pengujian Tambahan Perbaikan Kinerja Pengenalan Tekstur .......................... 52
4.1.5. Pengujian Pengenalan Tekstur Ganda .............................................................. 55
4.2. Beberapa Catatan ..................................................................................................... 59
4.3. Hasil Perbandingan Penelitian ................................................................................. 60
BAB V : KESIMPULAN DAN SARAN ............................................................................ 62
5.1. Kesimpulan .............................................................................................................. 62
5.2. Saran ........................................................................................................................ 62
DAFTAR PUSTAKA .......................................................................................................... 63
LAMPIRAN

xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR GAMBAR

Gambar 2.1. Sepuluh tekstur tunggal: (a) gabah (b) jagung (c) kacang tanah (d) anyaman
bambu (e) karung goni (f) keset (g) jerami (h) handuk (i) rumput, dan (j) bebatuan, ........... 6
Gambar 2.2. Tiga tekstur ganda: (k) gabah dan karung goni (l) jagung dan karung goni,
dan (m) kacang dan karung goni ........................................................................................... 6
Gambar 2.3. Tekstur teratur (a) dan tektur tidak teratur atau acak (b) ................................ 7
Gambar 2.4. ArduCAM Mini Shield [10] ............................................................................ 8
Gambar 2.5. NodeMCU DevKit v1.0 [12] .......................................................................... 9
Gambar 2.6. Pin NodeMCU DevKit v1.0 [14] .................................................................. 10
Gambar 2.7. Matriks 2 Dimensi Representasi Citra Digital [15] ...................................... 10
Gambar 2.8. Nilai piksel citra grayscale dengan 6x6 ketetanggaan [15] .......................... 11
Gambar 2.9. Citra RGB (a) dengan komponen R (b), G (c), dan B (d) [15] ..................... 12
Gambar 3.1. Diagram blok keseluruhan sistem pengenalan tekstur ................................. 26
Gambar 3.2. Diagram alir keseluruhan sistem pengenalan tekstur ................................... 27
Gambar 3.3. (a) Diagram alir subrutin pengambilan dan pengiriman video streaming dan
(b) Diagram alir inisialisasi NodeMCU .............................................................................. 28
Gambar 3.4. Diagram alir subrutin penerimaan video streaming...................................... 30
Gambar 3.5. Diagram alir subrutin tahap preprocessing................................................... 31
Gambar 3.6. Diagram alir subrutin tahap ekstraksi ciri ..................................................... 31
Gambar 3.7. Diagram alir subrutin Gray Level Co-occurrence Matrix ............................ 32
Gambar 3.8. Diagram alir subrutin tahap fungsi jarak ...................................................... 33
Gambar 3.9. Diagram alir subrutin penentuan keluaran .................................................... 34
Gambar 3.10. Diagram alir perancangan basis data ............................................................ 35
Gambar 3.11. Diagram Alir Sistem Pengenalan Tekstur GUI ............................................ 36
Gambar 3.12. Sketsa perancangan GUI............................................................................... 37
Gambar 3.13. Perancangan Hardware ................................................................................ 38
Gambar 4.1. Grafik Tingkat Pengenalan Tekstur Dengan Pengaruh RST ........................ 41
Gambar 4.2. Grafik Pengaruh Variasi Rotasi Terhadap Pengenalan ................................ 42
Gambar 4.3. Grafik Pengaruh Variasi Skala Terhadap Pengenalan .................................. 43
Gambar 4.4. Grafik Pengaruh Variasi Translasi Terhadap Pengenalan ............................ 44
Gambar 4.5. Grafik Tingkat Pengenalan Tiap Tekstur Tunggal ....................................... 46

xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Gambar 4.6. Citra Grayscale Tekstur Jagung Masukan Pada Sudut 20° (a) dan Citra
Grayscale Tekstur Jagung Basis Data (b) ........................................................................... 46
Gambar 4.7. Citra Grayscale Tekstur Kacang Masukan Pada Sudut 120° (a), Citra
Grayscale Tekstur Kacang Basis Data (b), dan Citra Grayscale Tekstur Bebatuan Basis
Data (c) ................................................................................................................................ 47
Gambar 4.8. Grafik Pengaruh Variasi Jarak Terhadap Kuat Sinyal .................................. 49
Gambar 4.9. Grafik Pengaruh Variasi Jarak Terhadap Tingkat Pengenalan ..................... 50
Gambar 4.10. Tampilan GUI Pengenalan Tekstur: pada jarak 1 m (a) ............................... 50
Gambar 4.11. Indikator lampu pada NodeMCU menyala ................................................... 51
Gambar 4.12. Tampilan GUI tidak menerima video streaming .......................................... 52
Gambar 4.13. Grafik Pengaruh Perbaikan Kinerja Dengan Perubahan Resolusi ................ 53
Gambar 4.14. Grafik Pengaruh Perbaikan Kinerja Dengan Perubahan Resolusi Dan
Normalisasi Nilai Fitur GLCM ........................................................................................... 54
Gambar 4.15. Grafik Tingkat Pengenalan Tekstur Dengan Pengaruh RST Setelah
Perbaikan Kinerja ................................................................................................................ 54
Gambar 4.16. Grafik Tingkat Pengenalan Tekstur Ganda Dengan Pengaruh RST ............ 55
Gambar 4.17. Grafik Pengaruh Variasi Rotasi Terhadap Pengenalan Tekstur Ganda ........ 56
Gambar 4.18. Grafik Pengaruh Variasi Skala Terhadap Pengenalan Tekstur Ganda ......... 57
Gambar 4.19. Grafik Pengaruh Variasi Translasi Terhadap Pengenalan Tekstur Ganda ... 58
Gambar 4.20. Citra Grayscale Tekstur Jagung (a) dan Citra Grayscale Tekstur Kacang (b)
............................................................................................................................................. 60

xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR TABEL

Tabel 2.1. Spesifikasi ArduCAM Mini 2MP [10] ................................................................. 8


Tabel 2.2. Spesifikasi NodeMCU DevKit v1.0 [13] ............................................................. 9
Tabel 2.3. Tabel Nilai Piksel Matriks GLCM ..................................................................... 19
Tabel 3.1. Keterangan Sketsa GUI ...................................................................................... 37
Tabel 4.1. Tabel Jarak Kosinus Tekstur Jagung Terhadap Basis Data ............................... 46
Tabel 4.2. Tabel Jarak Kosinus Tekstur Kacang Terhadap Basis Data ............................... 47
Tabel 4.3. Hasil Perbandingan Penelitian ............................................................................ 61

xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB I

PENDAHULUAN

1.1. Latar Belakang


Perkembangan teknologi yang semakin maju, terutama di bidang computer vision
menjadi tantangan dalam menganalisis dan pemrosesan citra. Computer vision digunakan
dengan tujuan komputer yang dapat mengenali suatu bidang dengan penglihatan layaknya
manusia. Penglihatan manusia telah diciptakan sedemikian rupa sehingga dapat mengenali
objek sekitar, salah satunya ialah tekstur obyek. Tekstur merupakan atribut yang paling
penting dalam aplikasi computer vision [1]. Tekstur pada suatu obyek dapat dikenali manusia
menggunakan indera penglihatan. Indera penglihatan mengenali tekstur dengan melihat pola
(corak) yang ada pada permukaan obyek. Pada hal ini, computer vision berusaha
menganalisis citra agar dapat dikenali teksturnya. Tekstur adalah salah satu konsep yang
sulit direpresentasikan dalam computer vision. Pada umumya, untuk mengindentifikasi
tekstur suatu citra dilakukan pemodelan tekstur sebagai variasi skala keabuan 2 dimensi.
Tidak seperti penglihatan manusia yang dapat dengan mudah mengenali tekstur, algoritma
computer vision rawan dengan kesalahan. Berbagai faktor yang ada serta keterbatasan
computer vision menjadi penyebab sering terjadinya kesalahan. Maka dari itu, computer
vision masih terus dalam pengembangan mengenai algoritma yang digunakan [2]. Dengan
bantuan software pengolah citra, data digital dari citra dapat dianalisis menggunakan rumus
tertentu agar didapat nilai angka yang menjadi hasil dari ekstraksi ciri suatu citra. Ektraksi
ciri ini yang nantinya akan menjadi kunci untuk computer vision mengenali bidang
bertekstur.

Berdasarkan penelitian sebelumnya, tekstur citra dapat dikenali oleh Adnyana [3]
dengan metode Statistical Texture Descriptor (STD). Penulis mengembangkan penelitian
tersebut dengan mengenali tekstur menggunakan metode yang berbeda, yaitu dengan metode
Gray Level Co-occurrence Matrix atau GLCM. Metode ini telah digunakan dalam berbagai
penelitian sebelumnya antara lain: untuk citra satelit dari awan dan mengidentifikasi jenis
awan berdasarkan tekstur, untuk aplikasi dalam bidang medis, untuk analisis citra aerial,
untuk citra satelit, untuk analisis citra mikroskopis [4], untuk deteksi kecacatan kain dalam

1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

bidang industri tekstil [5], untuk karakterisasi struktur sedimen biogenik [6] dan lain
sebagainya. Metode GLCM merupakan ekstraksi order kedua pada fitur statistik tekstur.
Dengan metode GLCM, tekstur citra dengan skala grayscale dapat menghasilkan setidaknya
20 fitur ekstraksi (5 fitur ektraksi tiap sudut ketetanggaannya). Pengembangan penelitian ini
dilakukan untuk mengembangkan penelitian sebelumnya menggunakan metode yang
berbeda untuk mengenali tekstur.

Tekstur yang akan dikenali penulis merupakan tekstur aktual. Berbeda dengan
penelitian yang dilakukan sebelumnya yang menggunakan citra tekstur dalam bentuk
gambar, penulis akan mengumpulkan 13 tekstur asli yang bermacam-macam sebagai bahan
penelitian. Tiga belas tekstur terdiri dari 10 tekstur tunggal dan 3 tekstur ganda. Untuk
mengenali bermacam-macam tekstur dalam 1 permukaan (tekstur ganda) menjadi tantangan
dalam computer vision mengenali tiap tekstur yang terdapat dalam 1 permukaan. Sepuluh
tekstur tunggal tersebut ialah tekstur gabah, jagung, kacang tanah, anyaman bambu, karung
goni, keset, jerami, handuk, rumput, dan bebatuan. Tiga tekstur ganda ialah gabah dan
karung goni, jagung dan karung goni, serta kacang dan karung goni. Pada tekstur ganda, satu
citra memiliki 2 jenis tekstur.

Salah satu pengembangan lain dari penelitian sebelumnya ialah penambahan


komunikasi nirkabel antara kamera yang menangkap citra tekstur dengan laptop yang
mengolah citra tekstur. Teknologi komunikasi tanpa kabel atau nirkabel (wireless) semakin
populer karena seringkali teknologi wireless lebih mudah untuk pengguna. Kebebasan
bergerak bagi pengguna menjadi salah satu keunggulan dari teknologi wireless. Pengguna
dapat mengakses jaringan dari manapun dengan jarak tertentu [7]. Hal ini meningkatkan
mobilitas dari suatu perangkat sehingga lebih fleksibel.

1.2. Tujuan dan Manfaat Penelitian

Tujuan penelitian tugas akhir ini adalah untuk menghasilkan suatu alat dengan
mengembangkan computer vision dalam mengenali tekstur suatu bidang atau permukaan.

Manfaat pengembangan penelitian ini adalah sebagai alat bantu pengguna aplikasi
computer vision untuk mengenali berbagai tekstur serta karakteristik dari tiap tekstur.
Dengan menggunakan metode yang berbeda dari penelitian sebelumnya, pengembangan
penelitian ini juga bermanfaat untuk perkembangan ilmu pengetahuan dan teknologi
mengenai pengenalan tekstur (texture recognition).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

1.3. Batasan Masalah


Perancangan pengembangan penelitian ini meliputi perangkat keras dan perangkat
lunak. Perangkat keras yang digunakan yaitu kamera ArduCAM sebagai pengambil citra
tekstur, modul nirkabel ESP8266 untuk mengirim citra tekstur serta laptop sebagai penerima
citra tekstur. Perangkat lunak yang digunakan yaitu perangkat lunak pengolahan citra Matlab
untuk memroses dan menganalisis citra tekstur agar dapat dikenali. Pada perancangan
pengembangan penelitian ini, penulis telah menetapkan batasan-batasan masalah sebagai
berikut:

a. Tekstur yang akan dikenali berupa 13 tekstur aktual. Tiga belas tekstur ini terdiri
atas 10 tekstur tunggal yang berbeda dari penelitian sebelumnya [3] ditambah 3
tekstur ganda dari masukan penguji. Sepuluh tekstur tunggal yaitu tekstur gabah,
jagung, kacang tanah, anyaman bambu, karung goni, keset, jerami, handuk, rumput,
dan bebatuan. Tiga tekstur ganda yaitu gabah dan karung goni, jagung dan karung
goni, serta kacang dan karung goni.
b. Kamera ArduCAM digunakan untuk mengambil video.
c. Video dikirim dari ArduCAM melalui modul nirkabel ESP8266.
d. Resolusi video adalah 160 x 120 piksel.
e. Laptop terkoneksi dengan sinyal wifi dari modul nirkabel ESP8266.
f. Laptop menerima video yang dikirim modul nirkabel ESP8266 dan menangkap
citra dari video tersebut.
g. MATLAB sebagai perangkat lunak pengolahan citra.
h. Ekstraksi ciri menggunakan metode GLCM.
i. Perhitungan jarak menggunakan jarak Kosinus.
j. Variasi skala tekstur yaitu jarak kamera dengan tekstur : 20 cm, 25 m, dan 30 cm
berdasar pada penelitian sebelumnya [3] dengan penyesuaian terhadap kamera
yang penulis gunakan.
k. Variasi rotasi tekstur : 20°, 60°, dan 120° berdasar pada penelitian sebelumnya [3].
l. Variasi translasi tekstur : 1 cm vertikal (atas dan bawah) dan 1 cm horizontal (kiri
dan kanan) berdasar pada penelititan sebelumnya [3].
m. Variasi jarak wireless antara ESP8266 dengan laptop sebagai penerima : 1 m, 10
m, 20 m, 30 m, 40 m, dan 50 m berdasar percobaan yang dilakukan penulis.
n. Pengenalan dilakukan secara real time.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

o. Hasil pengenalan tekstur di luar 13 tekstur yang telah dilatihkan akan dikenali
sebagai 13 tekstur yang telah dilatihkan.

1.4. Metode Penelitian

Langkah-langkah dalam pengerjaan tugas akhir:

a. Pengumpulan bahan-bahan referensi berupa buku-buku, jurnal-jurnal ilmiah, dan


website mengenai pengenalan tekstur, pemrograman Matlab, image processing,
ekstraksi ciri metode Gray Level Co-occurrence Matrix, fungsi jarak kosinus,
penggunaan ArduCAM, dan pengiriman citra melalui modul nirkabel ESP8266.
b. Perancangan hardware
Sistem diawali dengan kamera ArduCAM untuk mengambil citra tekstur.
Kamera ArduCAM dihubungkan dengan modul nirkabel NodeMCU ESP8266
menggunakan kabel jumper. Laptop dihubungkan dengan NodeMCU ESP8266
sebagai suplai tegangan. NodeMCU ESP8266 digunakan untuk mentransmisikan citra
tekstur yang diambil ArduCAM. Laptop menerima citra tekstur kemudian software
Matlab mengolah citra tersebut.
c. Pembuatan software
Software yang digunakan ialah Matlab. Sistem dibuat dengan program graphical
user interface (GUI) pada Matlab. Sistem akan bekerja ketika pengguna menekan
tombol “Kamera On”. Setelah kamera berada dalam kondisi menyala, pengguna
menekan tombol “Ambil Citra” untuk mengambil citra tekstur. Laptop akan mengirim
instruksi kepada arducam. Citra tekstur diambil oleh Arducam dan dikirim ke laptop
melalui modul ESP8266. Citra yang diterima ditampilkan ke layar monitor laptop
dalam software Matlab. Citra tersebut diproses dengan tahap ekstraksi ciri. Setelah
didapat hasil ekstrasi ciri dari tiap fitur, hasil tersebut dibandingkan dengan hasil
ekstraksi ciri dari basis data. Dengan fungsi jarak kosinus, tekstur dengan hasil jarak
yang paling kecil akan keluar sebagai output berupa tulisan pada layar monitor.
Tombol “Reset” untuk menghapus data citra masukan dan output.
d. Pembuatan basis data
Data citra tekstur akan diambil terlebih dahulu sebagai basis data. Citra tekstur
yang disimpan ke basis data sebanyak 13 data. Pertama, setelah data citra diterima,
data tersebut diproses ke tahap preprocessing. Di tahap ini, citra RGB yang diterima
diubah ke citra grayscale. Hasil dari tahap preprocessing diproses ke tahap ekstraksi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ciri. Hasil ekstraksi ciri berupa angka dan disimpan ke dalam matriks basis data.
Kemudian matriks tersebut disimpan dalam format “.mat”. Matriks basis data
digunakan sebagai acuan untuk mengenali tekstur.
e. Pengambilan data
Penelitian ini menggunakan 13 jenis tekstur yang berbeda dengan variasi skala,
rotasi, dan translasi. Tekstur yang diuji ialah tekstur tunggal dan tekstur ganda.
Sepuluh tekstur tunggal yang akan diuji antara lain: gabah, jagung, kacang tanah,
anyaman bambu, karung goni, keset, jerami, handuk, rumput, dan bebatuan. Tiga
tekstur ganda yang akan diuji antara lain: gabah dan karung goni, jagung dan karung
goni, serta kacang dan karung goni. Pengambilan data tiap tekstur dilakukan dengan
skala, rotasi, dan translasi yang berbeda. Pengambilan data tanpa variasi dilakukan
pada posisi awal dengan jarak kamera terhadap tekstur sebesar 20 cm, sudut putar 0°
dan tanpa pergeseran (posisi tekstur berada di tengah kamera). Variasi skala dapat
dilakukan dengan mengubah jarak kamera terhadap tekstur. Pengambilan data variasi
skala menggunakan 2 variasi jarak, yaitu 25 cm dan 30 cm. Variasi rotasi dapat
dilakukan dengan memutar tekstur terhadap kamera. Pengambilan data variasi rotasi
menggunakan 3 variasi sudut putar, yaitu 20°, 60°, dan 120°. Variasi translasi dapat
dilakukan dengan menggeser tekstur dari posisi awal. Pengambilan data variasi
translasi menggunakan 4 variasi geser, yaitu sejauh 1 cm secara vertikal (atas dan
bawah) dan horizontal (kiri dan kanan) dari posisi awal. Pengujian tekstur ganda
dilakukan seperti pengujian tekstur tunggal dengan variasi skala, rotasi, dan translasi.
Jumlah data yang diambil untuk 13 tekstur x 1 posisi awal = 13 data, 13 tekstur x 2
variasi skala = 26 data, 13 tekstur x 3 variasi rotasi = 39 data, 13 tekstur x 4 variasi
translasi = 52 data. Masing-masing data ditambahkan dan didapat data sebanyak 130
data pada penelitian ini.
f. Analisis dan penyimpulan
Analisis data dilakukan dengan meneliti pengaruh dari skala, rotasi, dan translasi
terhadap tekstur yang dikenali serta mengenali tesktur dalam 1 citra. Penyimpulan
hasil dilakukan untuk mengetahui pengaruh metode pengenalan tekstur GLCM
terhadap variasi skala, rotasi, dan translasi serta pengaruh 2 tekstur dalam 1 citra.
Penyimpulan hasil juga dilakukan dengan membandingkan unjuk kerja metode GLCM
dengan STD [3]. Pengaruh jarak wireless juga menjadi data pendukung untuk melihat
pengaruh unjuk kerja pengenalan tekstur.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB II

DASAR TEORI

2.1. Tekstur
Menurut Kamus Besar Bahasa Indonesia, tekstur adalah ukuran dan susunan (jaringan)
bagian suatu benda. Dalam pengertian lain, tekstur merupakan jalinan atau penyatuan
bagian-bagian sesuatu sehingga membentuk suatu benda (seperti susunan serat dalam kain,
susunan sel-sel dalam tubuh). Tekstur juga bisa diartikan sebagai perasaan, rupa, atau
konsistensi suatu permukaan atau substansi. Menurut Bhosle dkk [1], tekstur merupakan
pengulangan dari elemen atau pola pada suatu permukaan. Adanya pengulangan elemen
pada suatu permukaan membuat suatu permukaan bisa dikatakan memiliki tekstur.

(a) (b) (c) (d) (e)

(f) (g) (h) (i) (j)


Gambar 2.1. Sepuluh tekstur tunggal: (a) gabah (b) jagung (c) kacang tanah (d) anyaman
bambu (e) karung goni (f) keset (g) jerami (h) handuk (i) rumput, dan (j) bebatuan,

(k) (l) (m)


Gambar 2.2. Tiga tekstur ganda: (k) gabah dan karung goni (l) jagung dan karung goni, dan
(m) kacang dan karung goni

6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Dalam bukunya, Kadir [8] mengambil definisi tekstur sebagai hubungan mutual antara
nilai intensitas piksel ketetanggaan yang berulang di suatu area yang lebih luas daripada
jarak hubungan ketetanggaan tersebut. Kadir juga membagi tekstur menjadi 2 kategori
berdasarkan keteraturan pengulangan polanya, yaitu teratur dan tidak teratur. Tekstur teratur
memiliki pola berulang yang selalu sama dan cenderung konstan. Tekstur tidak teratur
memiliki pola berulang yang berbeda dan cenderung acak. Tekstur teratur dan tidak teratur
dapat dilihat pada Gambar 2.3.

(a) (b)
Gambar 2.3. Tekstur teratur (a) dan tektur tidak teratur atau acak (b)
(Gambar (a) dan (b) diambil dari Brodatz Textures)

Dalam pengolahan citra digital, tekstur menjadi salah satu karakteristik yang penting
dalam menganalisis berbagai jenis citra. Tekstur dapat dilihat dalam semua citra, mulai dari
citra multispectral scanner yaitu citra satelit untuk analisis remote sensing hingga citra
mikroskopik yaitu citra sel untuk analisis biomedis. Haralick mengklasifikasikan
karakterisasi tekstur menjadi 2 metode, yaitu metode statistical (menganalisis distribusi
spasial keabuan dengan menghitung statistik intensitas piksel) dan metode structural
(menghitung rerata texels dalam cara tertentu dengan tata aturan yang ada) [9].

2.2. ArduCAM Mini


Modul kamera ArduCAM Mini 2MP merupakan versi yang paling baik dari
ArduCAM Shield Rev.C. Modul kamera ini adalah kamera SPI high definition 2 MP dengan
sensor gambar CMOS OV2640. Untuk dapat menggunakan ArduCAM dibutuhkan code
library serta hardware yang mendukung. Kamera ArduCAM mini Shield dapat dilihat pada
Gambar 2.4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Gambar 2.4. ArduCAM Mini Shield [10]


Salah satu kelebihan dari ArduCAM Mini 2MP adalah dapat digunakan di berbagai kit,
seperti Arduino, Raspberry Pi, Maple dan kit lainnya selama ada pin SPI dan I2C serta dapat
digunakan dengan standar board Arduino. Dengan demikian, ArduCAM dapat dengan
mudah diprogram menggunakan Arduino IDE. ArduCAM Mini 2MP memiliki 8 pin dengan
fungsinya masing-masing. Spesifikasi dari ArduCAM Mini 2MP dapat dilihat pada Tabel
2.1.

Tabel 2.1. Spesifikasi ArduCAM Mini 2MP [10]

Power Supply Normal: 5V/70mA


Low Power Mode: 5V/20mA
SPI Speed 8MHz
Frame buffer 384KB
Size 34 x 24 mm
Weight 20g
Temperature -10°C ~ +55°C
Active array size 1600 x 1200
Shutter Rolling shutter
Lens ¼ inch
Resolution support UXGA, SVGA, VGA, QVGA, CIF, QCIF
Format support RAW, YUV, RGB, JPEG
Pixel Size 2.2 µm x 2.2 µm

2.3. ESP8266
ESP8266 merupakan Wi-Fi chips yang diproduksi oleh Espressif Systems, perusahaan
semikonduktor yang beroperasi di Shanghai, China. ESP8266EX adalah suatu system-on-
chip yang terintegrasi modul mikrokontroller Tensilica 32-bit, interface periferal digital
standar, antena, RF balun, power amplifier, low noise receive amplifier, filter dan power
management ke dalam pak yang kecil [11].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Gambar 2.5. NodeMCU DevKit v1.0 [12]

Fungsi utama dari ESP8266 ialah sebagai modul Wi-Fi untuk pengiriman data tanpa
kabel. ESP8266 menyediakan kapabilitas untuk jaringan Wi-Fi 2.4GHz dengan standar
802.11 b/g/n. Hal tersebut memungkinkan ESP8266 menjadi sebuah server sebagai tempat
yang menyimpan dan mengirim data. Kemudian client menerima data dari server. Jaringan
yang digunakan merupakan jaringan Local Area Network (LAN). Adapun salah satu
pengembangan kit dari ESP8266 ialah NodeMCU DevKit V1.0. NodeMCU ini merupakan
generasi kedua, yaitu pengembangan dari versi sebelumnya dengan chip yang ditingkatkan
dari sebelumnya ESP12 menjadi ESP12E [13]. Dengan NodeMCU ESP-12E, modul Wi-Fi
dapat digunakan diberbagai proyek untuk mempermudah pemakaian ESP8266.

Tabel 2.2. Spesifikasi NodeMCU DevKit v1.0 [13]


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

10

Gambar 2.6. Pin NodeMCU DevKit v1.0 [14]

2.4. Pengolahan Citra Digital


2.4.1. Citra Digital
Citra digital dapat direpresentasikan sebagai matriks 2 dimensi dengan angka riil.
Angka riil pada citra digital biasa disebut sebagai picture elements atau piksel. Tiap piksel
direpresentasikan dengan satu atau lebih nilai numerik. Untuk citra monokrom (grayscale),
nilai piksel tunggal menunjukkan intensitas piksel dengan rentang pada umumnya [0,255].
Untuk citra berwarna, terdapat 3 nilai dalam satu piksel menunjukkan jumlah merah (R),
hijau (G), dan biru (B). Matriks citra digital dengan ukuran M x N piksel, dapat ditulis
dengan fungsi f(x,y). Pada fungsi ini, x adalah angka baris dari 0 hingga M-1 dan y adalah
angka kolom dari 0 hingga N-1 (Gambar 2.7)

 f (0 , 0) f (0 , 1)  f (0 , N  1) 
 f (1 , 0) f (1 , 1)  f (1 , N  1) 
f ( x, y )  
    
 
 f ( M  1 , 0) f ( M  1 , 1)  f ( M  1, N  1)
Gambar 2.7. Matriks 2 Dimensi Representasi Citra Digital [15]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

11

2.4.2. Citra Grayscale


Pada citra Grayscale, tiap koordinat piksel f(x,y) mencerminkan intensitas tingkat
keabuan (gray level). Nilai maksimal dan minimal dari intensitas piksel bervariasi
tergantung dari jenis data yang digunakan. Untuk rentang yang biasa digunakan
direpresentasikan: 0.0 (hitam) hingga 1.0 (putih) untuk tipe data double dan 0 (hitam) hingga
255 (putih) untuk tipe data uint8 (unsigned integer, 8 bits) [15]. Sebagai contoh, nilai piksel
citra grayscale dengan 6x6 ketetanggaan dapat dilihat pada Gambar 2.8.

Gambar 2.8. Nilai piksel citra grayscale dengan 6x6 ketetanggaan [15]

2.4.3. Citra RGB

Citra RGB merupakan citra berwarna yang representasinya lebih kompleks dan
bervariasi. Citra RGB terdiri dari 3 dimensi array, yaitu M x N x 3. M dan N adalah dimensi
panjang dan lebar citra sedangkan 3 adalah jumlah kanal warna. Terdapat 3 kanal warna,
yaitu merah (R), hijau (G), dan biru (B). Setiap kanal warna mengandung nilai 8-bit, yang
mengindikasikan skala merah, hijau, dan biru antara 0 hingga 255. Tiap piksel memiliki 3
komponen kanal warna untuk merepresentasi warna. Kombinasi dari 3 kanal warna 8-bit
menghasilkan angka 24-bit sehingga terdapat 224 (16.777.216) kombinasi warna.
Representasi alternatif ialah menggunakan 32-bit per piksel dengan memasukkan kanal ke-
4 yang disebut kanal alpha. Kanal tersebut digunakan untuk ukuran transparansi tiap piksel
yang biasa digunakan dalam penyuntingan citra. Citra RGB dengan komponen R, G, dan B
dapat dilihat pada Gambar 2.9.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

12

Gambar 2.9. Citra RGB (a) dengan komponen R (b), G (c), dan B (d) [15]

2.4.4. Konversi citra RGB menjadi citra Grayscale

Pada banyak sistem pemrosesan citra, seringkali citra berwarna (RGB) perlu
dikonversi menjadi citra dengan skala keabuan (grayscale). Citra berwarna pada dasarnya
memiliki 3 layer warna yaitu merah, hijau, dan biru. Citra grayscale hanya memiliki 1 layer
warna untuk skala keabuan. Untuk mengkonversi citra RGB menjadi citra grayscale
menggunakan persamaan 2.1 [15].

𝐼 = 0.2989 ∗ 𝑅 + 0.5870 ∗ 𝐺 + 0.1141 ∗ 𝐵 (2.1)


Berdasarkan persamaan 2.1, I menyatakan citra grayscale hasil konversi, R
menyatakan nilai kanal warna merah, G menyatakan nilai kanal warna hijau, dan B
menyatakan nilai kanal warna biru.

2.5. Machine Vision Systems


Machine Vision Systems atau Computer Vision Systems ialah suatu sistem bagaimana
komputer dapat mengenali objek layaknya penglihatan manusia (Human Visual System). Di
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

13

dalam Machine Vision Systems secara umum, terdapat beberapa tahap dalam pengolahan
suatu citra agar dapat diklasifikasikan, yaitu:

a. Tahap Akuisisi
Pada tahap ini, objek ditangkap menggunakan kamera dengan pengaturan
pencahayaan untuk memastikan bahwa citra yang diambil dapat diproses lebih lanjut.
Beberapa pertimbangan yang diambil pada tahap ini, yakni seperti jarak antara kamera
dengan objek, pergeseran kamera terhadap objek, dan rotasi kamera terhadap objek.
b. Tahap Preprocessing
Tujuan dari tahap ini ialah untuk meningkatkan kualitas dari citra, seperti peningkatan
kontras, koreksi kecerahan, dan noise removal.
c. Tahap Segmentasi
Pada tahap ini bertujuan untuk membagi citra menjadi beberapa bagian ke dalam
komponen utama, yaitu objek relevan dan latar belakang. Tahap ini adalah salah satu
tantangan dalam Machine Vision System.
d. Tahap Ekstraksi Fitur
Dalam tahap ini terdapat algoritma yang berfungsi untuk enkode konten citra menjadi
bentuk informasi yang deskriptif. Fitur yang paling relevan setelah citra melalui tahap
segmentasi ialah ukuran distribusi (intensitas) warna, tekstur, dan bentuk. Fitur ini
biasanya disebut dengan vektor fitur (feature vector) berupa indikator numerik dari
konten citra. Fitur tersebut yang akan menjadi modal suatu konten citra dikenali
(diklasifikasi).
e. Tahap Klasifikasi
Setelah citra melalui tahap ekstraksi dan didapat vektor fitur, selanjutnya ialah tahap
pengklasifikasian atau pengenalan. Pemrosesan citra digunakan untuk mengenali pola
(pattern recognition).

2.6. Gray Level Co-occurrence Matrix


Metode Gray Level Co-occurrence Matrix (GLCM) adalah salah satu ekstraksi order
kedua pada fitur statistik tekstur. Ekstraksi order kedua menunjukkan hubungan statistik
antara 2 piksel. GLCM adalah sebuah matriks dengan jumlah baris dan kolom sebanding
dengan jumlah gray level (G) dalam suatu citra. Metode GLCM menggunakan citra berskala
keabuan (grayscale). Rumus matriks GLCM dapat dilihat pada Persamaan 2.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

14

{(𝑥1 , 𝑦1 ), (𝑥2 , 𝑦2 ) 𝜖 (𝑁𝑥 , 𝑁𝑦 ) × (𝑁𝑥 , 𝑁𝑦 ) |


𝐺𝐿𝐶𝑀𝑟⃗ (𝑖, 𝑗) = (2.2)
𝑓(𝑥1 , 𝑦1 ) = 𝑖 ∧ 𝑓(𝑥2 , 𝑦2 ) = 𝑗 ∧ 𝑟⃗ = ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗
(𝑥2 − 𝑥1 , 𝑦2 − 𝑦1 ) }
Sebagai contoh, matriks G adalah matriks referensi yang berupa citra grayscale. Nilai
(i,j) merupakan nilai intensitas piksel. Dengan demikian, matriks GLCM adalah matriks
frekuensi dengan elemen (i,j) merupakan jumlah dari hubungan ketetanggaan nilai piksel i
dengan jarak dan sudut tertentu (𝑟⃗) terhadap nilai piksel j. Jumlah baris dan kolom matriks
GLCM bergantung pada tingkat keabuan suatu citra. Karena nilai tingkat keabuan
(grayscale) suatu citra antara 0 hingga 255, matriks GLCM bisa memiliki baris dan kolom
sebesar 256 x 256. [6]

Menurut Newsam [16], untuk mendapat hasil ekstraksi ciri GLCM ada 2 hal perlu
yang dilakukan. Pertama ialah memasangkan piksel co-occurences spasial yang dipisahkan
oleh sudut dan jarak tertentu yang ditabulasi menggunakan GLCM. Kedua ialah GLCM
digunakan untuk menghitung kuantitas skalar yang memiliki karakteristik dengan aspek
yang berbeda sesuai teksturnya. Nilai kuantitas ini merupakan hasil ekstraksi ciri dari GLCM
yang digunakan untuk menginterpretasikan suatu tekstur.

GLCM memiliki 4 arah sudut dalam ketetanggaan antar piksel, yaitu 0°, 45°, 90°, dan
135°. Sebagai ilustrasi, arah sudut ketetanggaan piksel GLCM dapat dilihat pada Gambar
2.10. Untuk sudut 0°, ketetanggaan piksel dihitung dengan jarak 1 piksel ke kanan. Untuk
sudut 45°, ketetanggaan piksel dihitung dengan jarak 1 piksel ke kanan atas. Untuk sudut
90°, ketetanggaan piksel dihitung dengan jarak 1 piksel ke atas. Untuk sudut 180°,
ketetanggaan piksel dihitung dengan jarak 1 piksel ke atas.

90°
135° 45°

Gambar 2.10. Arah sudut ketetanggaan piksel pada metode GLCM

Contoh matriks berikut memperlihatkan penjelasan cara kerja metode GLCM serta
hubungan ketetanggaan antar piksel.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

15

0 1 0 1
2 3 1 1
0 2 3 2
2 1 3 1
Gambar 2.11. Contoh matriks 4x4 dengan variasi angka 0 sampai 3

Matriks disusun ulang berdasarkan hubungan antar piksel berdasarkan matriks


framework di bawah. Matriks dengan hubungan antar piksel disebut matriks GLCM. Matriks
tersebut terdiri dari 4 baris, yaitu baris 0, 1, 2, dan 3 serta 4 kolom, yaitu kolom 0, 1, 2, dan
3. Dimensi matriks GLCM sesuai dengan angka minimum pada matriks hingga angka
maksimum pada matriks. Pada citra grayscale, angka minimum pada matriks ialah 0 dan
angka maksimum pada matriks ialah 255. Dengan demikian pada matriks GLCM dengan
citra grayscale, memiliki dimensi matriks 256x256. Matriks GLCM mula-mula diisi angka
0.
0 1 2 3 0 1 2 3
0 (0,0) (0,1) (0,2) (0,3) 0 0 0 0 0
1 (1,0) (1,1) (1,2) (1,3) 1 0 0 0 0
2 (2,0) (2,1) (2,2) (2,3) 2 0 0 0 0
3 (3,0) (3,1) (3,2) (3,3) 3 0 0 0 0

Gambar 2.12. Matriks Framework GLCM

Matriks di bawah (Gambar 2.13) memperlihatkan hubungan antar piksel dengan sudut
ketetanggaan 0° yaitu piksel baris ke-1 kolom ke-1 dengan baris ke-1 kolom ke-2. Pada
piksel tersebut terdapat angka 0 dan 1. Pasangan ketetanggaan (0,1) pada matriks framework
GLCM bertambah 1.

0 1 2 3

0 1 0 1 0 0 1 0 0
2 3 1 1 1 0 0 0 0
0 2 3 2 2 0 0 0 0
2 1 3 1 3 0 0 0 0

Gambar 2.13. Ketetanggaan piksel (0,1) bertambah 1


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

16

Matriks di bawah (Gambar 2.14) memperlihatkan hubungan antar piksel dengan sudut
ketetanggaan 0° yaitu baris ke-1 kolom ke-2 dengan baris ke-1 kolom ke-3. Pada piksel
tersebut terdapat angka 1 dan 0. Pasangan ketetanggaan (1,0) pada matriks framework
GLCM bertambah 1.

0 1 2 3

0 1 0 1 0 0 1 0 0

2 3 1 1 1 1 0 0 0

0 2 3 2 2 0 0 0 0
2 1 3 1 3 0 0 0 0

Gambar 2.14. Ketetanggaan piksel (1,0) bertambah 1

Matriks di bawah (Gambar 2.15) memperlihatkan hubungan antar piksel dengan sudut
ketetanggaan 0° yaitu baris ke-1 kolom ke-3 dengan baris ke-1 kolom ke-4. Pada piksel
tersebut terdapat angka 0 dan 1. Pasangan ketetanggaan (1,0) pada matriks framework
GLCM bertambah 1 menjadi 2.

0 1 2 3

0 1 0 1 0 0 2 0 0

2 3 1 1 1 1 0 0 0

0 2 3 2 2 0 0 0 0
2 1 3 1 3 0 0 0 0

Gambar 2.15. Ketetanggaan piksel (0,1) bertambah 1

Demikian proses tersebut diulang hingga baris ke-4 sehingga didapat matriks GLCM
sudut 0° seperti Gambar 2.16. Kemudian matriks GLCM dijumlah dengan transpose dari
matriks itu sendiri agar matriks menjadi simetris. Setelah matriks GLCM simetris
selanjutnya matriks GLCM dinormalisasi agar dapat dianalisis untuk menghitung masing-
masing ekstraksi fitur menggunakan rumus. Penjumlahan matriks GLCM dengan matriks
GLCM transpose dapat dilihat pada Gambar 2.17.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

17

0 1 2 3
0 0 2 1 0
1 1 1 0 1
2 0 1 0 2
3 0 2 1 0

Gambar 2.16. Matriks GLCM 4x4 sudut 0°

Matriks GLCM sudut 0° Matriks GLCM transpose


0 2 1 0 0 1 0 0
1 1 0 1 2 1 1 2
0 1 0 2 + 1 0 0 1
0 2 1 0 0 1 2 0

Matriks GLCM Simetris sudut 0°


0 3 1 0
3 2 1 3

= 1 1 0 3
0 3 3 0

Gambar 2.17. Matriks GLCM 4x4 sudut 0° setelah dibuat simetris

Setelah didapat matriks GLCM yang simetris, matriks GLCM melalui tahap
normalisasi. Tiap nilai piksel matriks akan dibagi dengan jumlah piksel ketetanggaan. Pada
Gambar 2.17, jumlah piksel ketetanggaan ialah 24. Untuk itu, tiap nilai piksel matriks
GLCM akan dibagi dengan 24. Setelah matriks GLCM dinormalisasi, selanjutnya dapat
dihitung menggunakan rumus untuk mendapat nilai ekstraksi ciri.

0 3/24 1/24 0 0 0.125 0.042 0


3/24 2/24 1/24 3/24 0.125 0.083 0.042 0.125
1/24 1/24 0 3/24 = 0.042 0.042 0 0.125
0 3/24 3/24 0 0 0.125 0.125 0

Gambar 2.18. Matriks GLCM 4x4 sudut 0° setelah dinormalisasi


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

18

Metode GLCM dapat menghasilkan setidaknya 5 ekstraksi ciri dari suatu citra digital
tiap sudut ketetanggaan pikselnya [8]. Lima besaran yang digunakan untuk mendapat hasil
ekstraksi ciri tersebut antara lain: angular second moment (ASM), kontras, inverse different
moment (IDM), entropi, dan korelasi. ASM merupakan ukuran homogenitas citra. Kontras
merupakan ukuran keberadaan aras keabuan dalam citra. IDM juga digunakan untuk
mengukur homogenitas. Entropi merupakan ukuran ketidakteraturan aras keabuan dalam
citra. Korelasi merupakan ukuran ketergantungan linear antar nilai aras keabuan dalam citra.

ASM bisa disebut juga uniformity atau energy. ASM adalah penjumlahan pangkat dari
elemen matriks GLCM. ASM memiliki nilai yang tinggi ketika citra memiliki homogenitas
yang baik atau nilai piksel yang hampir serupa. Untuk mencari ekstraksi fitur ASM dapat
digunakan rumus sebagai berikut.
𝐿 𝐿
2
𝐴𝑆𝑀 = ∑ ∑(𝐺𝐿𝐶𝑀(𝑖, 𝑗)) (2.3)
𝑖=1 𝑗=1

Kontras bisa disebut juga inertia. Kontras adalah suatu ukuran intensitas aras keabuan
ntara piksel dengan piksel lainnya dengan lokasi relatif. Kontras memiliki batas nilai dari 0
hingga pangkat 2 dari panjang matriks GLCM simetris. Pada citra dengan elemen piksel
yang bernilai sama secara keseluruhan, kontras bernilai 0. Untuk mencari ekstraksi fitur
kontras dapat digunakan rumus sebagai berikut.
𝐿 𝐿

𝐾𝑜𝑛𝑡𝑟𝑎𝑠 = ∑ ∑(𝑖 − 𝑗)2 𝐺𝐿𝐶𝑀(𝑖, 𝑗) (2.4)


𝑖=1 𝑗=1

IDM bisa disebut juga homogeneity. IDM adalah homogenitas lokal. IDM berkaitan
dengan kontras. Bobot IDM merupakan kebalikan dari bobot kontras. Untuk mencari
ekstraksi fitur IDM dapat digunakan rumus sebagai berikut.
𝐿 𝐿
𝐺𝐿𝐶𝑀(𝑖, 𝑗)
𝐼𝐷𝑀 = ∑ ∑ (2.5)
1 + (𝑖 − 𝑗)2
𝑖=1 𝑗=1

Entropi adalah ukuran ketidakaturan aras keabuan dalam suatu citra. Nilai entropi akan
semakin tinggi jika nilai elemen piksel citra semakin acak. Untuk mencari ekstraksi fitur
entropi dapat digunakan rumus sebagai berikut.
𝐿 𝐿

𝐸𝑛𝑡𝑟𝑜𝑝𝑦 = − ∑ ∑ 𝐺𝐿𝐶𝑀(𝑖, 𝑗) log 𝐺𝐿𝐶𝑀(𝑖, 𝑗) (2.6)


𝑖=1 𝑗=1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

19

Korelasi dalam GLCM mengukur ketergantungan linear dari aras keabuan dalam
ketetanggaan piksel citra. Untuk mencari ekstraksi fitur korelasi dapat digunakan rumus
sebagai berikut.
𝐿 𝐿
(𝑖 − µ𝑖 ′ ) ∗ (𝑗−µ𝑗′ ) ∗ 𝐺𝐿𝐶𝑀(𝑖, 𝑗)
𝐾𝑜𝑟𝑒𝑙𝑎𝑠𝑖 = ∑ ∑ (2.7)
𝜎𝑖′ ∗ 𝜎𝑗′
𝑖=1 𝑗=1

dengan:
𝐿 𝐿

µ𝑖′ = ∑ ∑ 𝑖 ∗ 𝐺𝐿𝐶𝑀(𝑖, 𝑗) (2.8)


𝑖=1 𝑗=1
𝐿 𝐿

µ𝑗′ = ∑ ∑ 𝑗 ∗ 𝐺𝐿𝐶𝑀(𝑖, 𝑗) (2.9)


𝑖=1 𝑗=1
𝐿 𝐿

𝜎𝑖′2 = ∑ ∑ 𝐺𝐿𝐶𝑀(𝑖, 𝑗)(𝑖 − µ𝑖′ )2 (2.10)


𝑖=1 𝑗=1
𝐿 𝐿
2
𝜎𝑗′2 = ∑ ∑ 𝐺𝐿𝐶𝑀(𝑖, 𝑗)(𝑗 − µ𝑗′ ) (2.11)
𝑖=1 𝑗=1

Rumus-rumus ekstraksi ciri tersebut dapat diterapkan pada matriks GLCM 4x4 sudut
0° (Gambar 2.19). Nilai piksel matriks GLCM 4x4 dapat dilihat melalui Tabel 2.3. Nilai
piksel 0 tidak dihitung dalam rumus.
0 0.125 0.042 0
0.125 0.083 0.042 0.125
0.042 0.042 0 0.125
0 0.125 0.125 0

Gambar 2.19. Matriks GLCM 4x4 sudut 0°

Tabel 2.3. Tabel Nilai Piksel Matriks GLCM

GLCM Nilai (2,4) 0.125


(1,2) 0.125 (3,1) 0.042
(1,3) 0.042 (3,2) 0.042
(2,1) 0.125 (3,4) 0.125
(2,2) 0.083 (4,2) 0.125
(2,3) 0.042 (4,3) 0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

20

Berikut ini adalah perhitungan kelima fitur untuk mendapat hasil ekstraksi ciri.

a. ASM
𝐿 𝐿
2
= ∑ ∑(𝐺𝐿𝐶𝑀(𝑖, 𝑗))
𝑖=1 𝑗=1

= {𝐺𝐿𝐶𝑀(1,2)2 + 𝐺𝐿𝐶𝑀(1,3)2 + 𝐺𝐿𝐶𝑀(2,1)2 + 𝐺𝐿𝐶𝑀(2,2)2 + 𝐺𝐿𝐶𝑀(2,3)2


+ 𝐺𝐿𝐶𝑀(2,4)2 + 𝐺𝐿𝐶𝑀(3,1)2 + 𝐺𝐿𝐶𝑀(3,2)2 + 𝐺𝐿𝐶𝑀(3,4)2
+ 𝐺𝐿𝐶𝑀(4,2)2 + 𝐺𝐿𝐶𝑀(4,3)2 }
= {0.1252 + 0.0422 + 0.1252 + 0.0832 + 0.0422 + 0.1252 + 0.0422 + 0.0422
+ 0.1252 + 0.1252 + 0.1252 }
= 𝟎. 𝟏𝟎𝟕𝟔

b. Kontras
𝐿 𝐿

= ∑ ∑(𝑖 − 𝑗)2 𝐺𝐿𝐶𝑀(𝑖, 𝑗)


𝑖=1 𝑗=1

= {(1 − 2)2 𝐺𝐿𝐶𝑀(1,2) + (1 − 3)2 𝐺𝐿𝐶𝑀(1,3) + (2 − 1)2 𝐺𝐿𝐶𝑀(2,1)


+ (2 − 2)2 𝐺𝐿𝐶𝑀(2,2) + (2 − 3)2 𝐺𝐿𝐶𝑀(2,3) + (2 − 4)2 𝐺𝐿𝐶𝑀(2,4)
+ (3 − 1)2 𝐺𝐿𝐶𝑀(3,1) + (3 − 2)2 𝐺𝐿𝐶𝑀(3,2) + (3 − 4)2 𝐺𝐿𝐶𝑀(3,4)
+ (4 − 2)2 𝐺𝐿𝐶𝑀(4,2) + (4 − 3)2 𝐺𝐿𝐶𝑀(4,3)}
= {0.125 + 4 ∗ 0.042 + 0.125 + 0 + 0.042 + 4 ∗ 0.125 + 4 ∗ 0.042 + 0.042 + 0.125
+ 4 ∗ 0.125 + 0.125}
= 𝟎. 𝟏𝟗𝟐

c. IDM
𝐿 𝐿
𝐺𝐿𝐶𝑀(𝑖, 𝑗)
= ∑∑
1 + (𝑖 − 𝑗)2
𝑖=1 𝑗=1

= {𝐺𝐿𝐶𝑀(1,2)/(1 + (1 − 2)^2 ) + 𝐺𝐿𝐶𝑀(1,3)/(1 + (1 − 3)^2 ) + 𝐺𝐿𝐶𝑀(2,1)/(1


+ (2 − 1)^2 ) + 𝐺𝐿𝐶𝑀(2,2)/(1 + (2 − 2)^2 ) + 𝐺𝐿𝐶𝑀(2,3)/(1 + (2
− 3)^2 ) + 𝐺𝐿𝐶𝑀(2,4)/(1 + (2 − 4)^2 ) + 𝐺𝐿𝐶𝑀(3,1)/(1 + (3
− 1)^2 ) + 𝐺𝐿𝐶𝑀(3,2)/(1 + (3 − 2)^2 ) + 𝐺𝐿𝐶𝑀(3,4)/(1 + (3
− 4)^2 ) + 𝐺𝐿𝐶𝑀(4,2)/(1 + (4 − 2)^2 ) + 𝐺𝐿𝐶𝑀(4,3)/(1 + (4
− 3)^2 )}
= {0.125/2 + 0.042/5 + 0.125/2 + 0.083/1 + 0.042/2 + 0.125/5 + 0.042/5
+ 0.042/2 + 0.125/2 + 0.125/5 + 0.125/2}
= 𝟎. 𝟒𝟒𝟏
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

21

d. Entropi
𝐿 𝐿

= − ∑ ∑ 𝐺𝐿𝐶𝑀(𝑖, 𝑗) log 𝐺𝐿𝐶𝑀(𝑖, 𝑗)


𝑖=1 𝑗=1

= −{𝐺𝐿𝐶𝑀(1,2) log 𝐺𝐿𝐶𝑀 (1,2) + 𝐺𝐿𝐶𝑀(1,3) log 𝐺𝐿𝐶𝑀 (1,3)


+ 𝐺𝐿𝐶𝑀(2,1) log 𝐺𝐿𝐶𝑀 (2,1) + 𝐺𝐿𝐶𝑀(2,2) log 𝐺𝐿𝐶𝑀 (2,2)
+ 𝐺𝐿𝐶𝑀(2,3) log 𝐺𝐿𝐶𝑀 (2,3) + 𝐺𝐿𝐶𝑀(2,4) log 𝐺𝐿𝐶𝑀 (2,4)
+ 𝐺𝐿𝐶𝑀(3,1) log 𝐺𝐿𝐶𝑀 (3,1) + 𝐺𝐿𝐶𝑀(3,2) log 𝐺𝐿𝐶𝑀 (3,2)
+ 𝐺𝐿𝐶𝑀(3,4) log 𝐺𝐿𝐶𝑀 (3,4) + 𝐺𝐿𝐶𝑀(4,2) log 𝐺𝐿𝐶𝑀 (4,2)
+ 𝐺𝐿𝐶𝑀(4,3) log 𝐺𝐿𝐶𝑀 (4,3)}

= −{0.125 log 0.125 + 0.042 log 0.042 + 0.125 log 0.125 + 0.083 log 0.083
+ 0.042 log 0.042 + 0.125 log 0.125 + 0.042 log 0.042
+ 0.042 log 0.042 + 0.125 log 0.125 + 0.125 log 0.125
+ 0.125 log 0.125}
= 𝟎.9973

e. Korelasi
𝐿 𝐿

µ𝑖′ = ∑ ∑ 𝑖 ∗ 𝐺𝐿𝐶𝑀(𝑖, 𝑗)
𝑖=1 𝑗=1

= {1 ∗ 𝐺𝐿𝐶𝑀(1,2) + 1 ∗ 𝐺𝐿𝐶𝑀(1,3) + 2 ∗ 𝐺𝐿𝐶𝑀(2,1) + 2 ∗ 𝐺𝐿𝐶𝑀(2,2) + 2


∗ 𝐺𝐿𝐶𝑀(2,3) + 2 ∗ 𝐺𝐿𝐶𝑀(2,4) + 3 ∗ 𝐺𝐿𝐶𝑀(3,1) + 3 ∗ 𝐺𝐿𝐶𝑀(3,2)
+ 3 ∗ 𝐺𝐿𝐶𝑀(3,4) + 4 ∗ 𝐺𝐿𝐶𝑀(4,2) + 4 ∗ 𝐺𝐿𝐶𝑀(4,3)}
= {0.125 + 0.042 + 2 ∗ 0.125 + 2 ∗ 0.083 + 2 ∗ 0.042 + 2 ∗ 0.125 + 3 ∗ 0.042 + 3
∗ 0.042 + 3 ∗ 0.125 + 4 ∗ 0.125 + 4 ∗ 0.125}
= 2.554

𝐿 𝐿

𝜎𝑖′2 = ∑ ∑ 𝐺𝐿𝐶𝑀(𝑖, 𝑗)(𝑖 − µ𝑖′ )2


𝑖=1 𝑗=1

= {𝐺𝐿𝐶𝑀(1,2) ∗ (1 − 2.554)2 + 𝐺𝐿𝐶𝑀(1,3) ∗ (1 − 2.554)2 + 𝐺𝐿𝐶𝑀(2,1)


∗ (2 − 2.554)2 + 𝐺𝐿𝐶𝑀(2,2) ∗ (2 − 2.554)2 + 𝐺𝐿𝐶𝑀(2,3)
∗ (2 − 2.554)2 + 𝐺𝐿𝐶𝑀(2,4) ∗ (2 − 2.554)2 + 𝐺𝐿𝐶𝑀(3,1)
∗ (3 − 2.554)2 + 𝐺𝐿𝐶𝑀(3,2) ∗ (3 − 2.554)2 + 𝐺𝐿𝐶𝑀(3,4)
∗ (3 − 2.554)2 + 𝐺𝐿𝐶𝑀(4,2) ∗ (4 − 2.554)2 + 𝐺𝐿𝐶𝑀(4,3)
∗ (4 − 2.554)2 }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

22

= {0.125 ∗ (1 − 2.554)2 + 0.042 ∗ (1 − 2.554)2 + 0.125 ∗ (2 − 2.554)2 + 0.083


∗ (2 − 2.554)2 + 0.042 ∗ (2 − 2.554)2 + 0.125 ∗ (2 − 2.554)2
+ 0.042 ∗ (3 − 2.554)2 + 0.042 ∗ (3 − 2.554)2 + 0.125
∗ (3 − 2.554)2 + 0.125 ∗ (4 − 2.554)2 + 0.125 ∗ (4 − 2.554)2 }
= 1.0827

𝐿 𝐿

µ𝑗′ = ∑ ∑ 𝑗 ∗ 𝐺𝐿𝐶𝑀(𝑖, 𝑗)
𝑖=1 𝑗=1

= {2 ∗ 𝐺𝐿𝐶𝑀(1,2) + 3 ∗ 𝐺𝐿𝐶𝑀(1,3) + 1 ∗ 𝐺𝐿𝐶𝑀(2,1) + 2 ∗ 𝐺𝐿𝐶𝑀(2,2) + 3


∗ 𝐺𝐿𝐶𝑀(2,3) + 4 ∗ 𝐺𝐿𝐶𝑀(2,4) + 1 ∗ 𝐺𝐿𝐶𝑀(3,1) + 2 ∗ 𝐺𝐿𝐶𝑀(3,2)
+ 4 ∗ 𝐺𝐿𝐶𝑀(3,4) + 2 ∗ 𝐺𝐿𝐶𝑀(4,2) + 3 ∗ 𝐺𝐿𝐶𝑀(4,3)}
= {2 ∗ 0.125 + 3 ∗ 0.042 + 0.125 + 2 ∗ 0.083 + 3 ∗ 0.042 + 4 ∗ 0.125 + 0.042 + 2
∗ 0.042 + 4 ∗ 0.125 + 2 ∗ 0.125 + 3 ∗ 0.125}
= 2.554

𝐿 𝐿
2
𝜎𝑗2′ = ∑ ∑ 𝐺𝐿𝐶𝑀(𝑖, 𝑗)(𝑗 − µ𝑗′ )
𝑖=1 𝑗=1

= {𝐺𝐿𝐶𝑀(1,2) ∗ (2 − 2.554)2 + 𝐺𝐿𝐶𝑀(1,3) ∗ (3 − 2.554)2 + 𝐺𝐿𝐶𝑀(2,1)


∗ (1 − 2.554)2 + 𝐺𝐿𝐶𝑀(2,2) ∗ (2 − 2.554)2 + 𝐺𝐿𝐶𝑀(2,3)
∗ (3 − 2.554)2 + 𝐺𝐿𝐶𝑀(2,4) ∗ (4 − 2.554)2 + 𝐺𝐿𝐶𝑀(3,1)
∗ (1 − 2.554)2 + 𝐺𝐿𝐶𝑀(3,2) ∗ (2 − 2.554)2 + 𝐺𝐿𝐶𝑀(3,4)
∗ (4 − 2.554)2 + 𝐺𝐿𝐶𝑀(4,2) ∗ (2 − 2.554)2 + 𝐺𝐿𝐶𝑀(4,3)
∗ (3 − 2.554)2 }
= {0.125 ∗ (2 − 2.554)2 + 0.042 ∗ (3 − 2.554)2 + 0.125 ∗ (1 − 2.554)2 + 0.083
∗ (2 − 2.554)2 + 0.042 ∗ (3 − 2.554)2 + 0.125 ∗ (4 − 2.554)2
+ 0.042 ∗ (1 − 2.554)2 + 0.042 ∗ (2 − 2.554)2 + 0.125
∗ (4 − 2.554)2 + 0.125 ∗ (2 − 2.554)2 + 0.125 ∗ (3 − 2.554)2 }
= 1.0827

𝐿 𝐿
(𝑖 − µ𝑖′ ) ∗ (𝑗−µ𝑗′ ) ∗ 𝐺𝐿𝐶𝑀(𝑖, 𝑗)
𝐾𝑜𝑟𝑒𝑙𝑎𝑠𝑖 = ∑ ∑
𝜎𝑖′ ∗ 𝜎𝑗′
𝑖=1 𝑗=1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

23

= {((1 − 2.554) ∗ (2 − 2.554) ∗ 𝐺𝐿𝐶𝑀(1,2))/(1.0827 ∗ 1.0827) + ((1 − 2.554) ∗ (3


− 2.554) ∗ 𝐺𝐿𝐶𝑀(1,3))/(1.0827 ∗ 1.0827) + ((2 − 2.554) ∗ (1
− 2.554) ∗ 𝐺𝐿𝐶𝑀(2,1))/(1.0827 ∗ 1.0827) + ((2 − 2.554) ∗ (2
− 2.554) ∗ 𝐺𝐿𝐶𝑀(2,2))/(1.0827 ∗ 1.0827) + ((2 − 2.554) ∗ (3
− 2.554) ∗ 𝐺𝐿𝐶𝑀(2,3))/(1.0827 ∗ 1.0827) + ((2 − 2.554) ∗ (4
− 2.554) ∗ 𝐺𝐿𝐶𝑀(2,4))/(1.0827 ∗ 1.0827) + ((3 − 2.554) ∗ (1
− 2.554) ∗ 𝐺𝐿𝐶𝑀(3,1))/(1.0827 ∗ 1.0827) + ((3 − 2.554) ∗ (2
− 2.554) ∗ 𝐺𝐿𝐶𝑀(3,2))/(1.0827 ∗ 1.0827) + ((3 − 2.554) ∗ (4
− 2.554) ∗ 𝐺𝐿𝐶𝑀(3,4))/(1.0827 ∗ 1.0827) + ((4 − 2.554) ∗ (2
− 2.554) ∗ 𝐺𝐿𝐶𝑀(4,2))/(1.0827 ∗ 1.0827) + ((4 − 2.554) ∗ (3
− 2.554) ∗ 𝐺𝐿𝐶𝑀(4,3))/(1.0827 ∗ 1.0827)}

= {((1 − 2.554) ∗ (2 − 2.554) ∗ 0.125)/(1.0827 ∗ 1.0827) + ((1 − 2.554) ∗ (3


− 2.554) ∗ 0.042)/(1.0827 ∗ 1.0827) + ((2 − 2.554) ∗ (1 − 2.554)
∗ 0.125)/(1.0827 ∗ 1.0827) + ((2 − 2.554) ∗ (2 − 2.554)
∗ 0.083)/(1.0827 ∗ 1.0827) + ((2 − 2.554) ∗ (3 − 2.554)
∗ 0.042)/(1.0827 ∗ 1.0827) + ((2 − 2.554) ∗ (4 − 2.554)
∗ 0.125)/(1.0827 ∗ 1.0827) + ((3 − 2.554) ∗ (1 − 2.554)
∗ 0.042)/(1.0827 ∗ 1.0827) + ((3 − 2.554) ∗ (2 − 2.554)
∗ 0.042)/(1.0827 ∗ 1.0827) + ((3 − 2.554) ∗ (4 − 2.554)
∗ 0.125)/(1.0827 ∗ 1.0827) + ((4 − 2.554) ∗ (2 − 2.554)
∗ 0.125)/(1.0827 ∗ 1.0827) + ((4 − 2.554) ∗ (3 − 2.554)
∗ 0.125)/(1.0827 ∗ 1.0827)

= 𝟎. 𝟏𝟎𝟒𝟕

Dengan demikian, ekstraksi ciri matriks GLCM 4x4 sudut 0° ialah sebagai berikut:

 ASM = 0.1076
 Kontras = 0.192
 IDM = 0.4418
 Entropi = 0.9973
 Korelasi = 0.1047

Tiap sudut GLCM memiliki 5 ekstraksi fitur. Dalam satu citra dapat digunakan 4 sudut
ketetanggaan piksel. Dengan demikian, dalam satu citra dapat menghasilkan 20 ekstraksi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

24

fitur yang memiliki karakternya masing-masing. Ekstraksi fitur tersebut kemudian disimpan
dalam bentuk matriks sendiri yang bisa disebut matriks ekstraksi ciri GLCM.

2.7. Jarak Kosinus


Fungsi jarak digunakan untuk menentukan hasil ekstraksi ciri yang paling mendekati
dengan basis data. Hasil ekstraksi ciri dari masukan akan dihitung dengan fungsi jarak
terhadap tiap-tiap hasil ekstraksi ciri di basis data. Fungsi jarak Kosinus merupakan salah
satu fungsi untuk menghitung jarak. Fungsi jarak Kosinus berkaitan dengan fungsi
similaritas Kosinus. Jarak Kosinus dapat dihasilkan dengan mengurangi desimal 1 terhadap
similaritas Kosinus. Rumus di bawah ini menampilkan rumus fungsi jarak Kosinus. [17]

∑𝑛𝑖=1 𝑥𝑖 𝑦𝑖
𝐽𝑎𝑟𝑎𝑘 𝐾𝑜𝑠𝑖𝑛𝑢𝑠 = 1 − (2.12)
√∑𝑛𝑖=1 𝑥𝑖2 √∑𝑛𝑖=1 𝑦𝑖2

Pada persamaan 2.12, x menyatakan elemen matriks pertama dan y menyatakan


elemen matriks kedua. Untuk penjelasan lebih lanjut akan dijelaskan melalui contoh matriks
sederhana dibawah ini.

Elemen Matriks A = ( 2, 3, 4 )

Elemen Matriks B = ( 2, 3, 5 )

Elemen Matriks C = ( 1, 4, 4 )

 Jarak matriks A dan matriks B

2∙2+3∙3+4∙5
𝐽𝑎𝑟𝑎𝑘 𝐾𝑜𝑠𝑖𝑛𝑢𝑠 = 1 −
√22 + 32 + 42 × √22 + 32 + 52

33
=1−
√29 × √38

= 1 − 0.9941 = 𝟎. 𝟎𝟎𝟓𝟗

 Jarak matriks A dan matriks C

2∙1+3∙4+4∙4
𝐽𝑎𝑟𝑎𝑘 𝐾𝑜𝑠𝑖𝑛𝑢𝑠 = 1 −
√22 + 32 + 42 × √12 + 42 + 42
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

25

30
=1−
√29 × √33

= 1 − 0.9698 = 𝟎. 𝟎𝟑𝟎𝟐

 Jarak Kosinus matriks A dan matriks B adalah 0.0059. Jarak Kosinus matriks A dan
matriks C adalah 0.0302. Dengan demikian, jarak yang paling minimal adalah
matriks 1 dan matriks 2. Jarak yang paling minimal menunjukkan bahwa matriks
memiliki kemiripan yang paling dekat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB III

RANCANGAN PENELITIAN

3.1. Proses Pengenalan Tekstur

Proses perancangan sistem software untuk pengenalan tekstur terdiri dari pengambilan
citra tekstur, pengiriman citra tekstur, penerimaan citra tekstur, ekstraksi ciri GLCM, fungsi
jarak dan penentuan keluaran. Diagram blok proses pengenalan tekstur dapat dilihat pada
Gambar 3.1. Diagram alir keseluruhan sistem pengenalan tekstur dapat dilihat pada Gambar
3.2.

Pengambilan Basis Data


Video Tekstur

Pengiriman Penerimaan Fungsi Jarak Penentuan


Video Tekstur Video Tekstur Keluaran

Preprocessing Ekstraksi Ciri Keluaran


GLCM berupa teks
pada monitor

Gambar 3.1. Diagram blok keseluruhan sistem pengenalan tekstur

26
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

27

Mulai

Pengambilan dan
Pengiriman Video Tekstur

Penerimaan Video Tektur

Menampilkan Citra RGB

Preprocessing

Menampilkan Citra Grayscale

Ekstraksi Ciri GLCM

Menampilkan
hasil ekstraksi ciri

Fungsi Jarak Kosinus

Penentuan Keluaran

Hasil pengenalan
tekstur berupa teks

Selesai

Gambar 3.2. Diagram alir keseluruhan sistem pengenalan tekstur


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

28

Penulis menyiapkan 13 tekstur aktual yang akan dikenali. Proses pengambilan citra
tekstur menggunakan kamera ArduCAM. Citra yang telah diambil ArduCAM berupa citra
RGB. Selanjutnya citra akan dikirim melalui modul nirkabel ESP8266 yaitu NodeMCU
ESP-12E. Laptop menerima citra tekstur. Tahap Preprocessing untuk mengubah citra RGB
menjadi citra grayscale. Perangkat lunak pengolah citra kemudian memproses citra tekstur
melalui tahap ekstraksi ciri GLCM. Hasil ekstraksi ciri dibandingkan dengan basis data
dengan menghitung jarak yang paling dekat. Hasil dengan jarak yang paling dekat akan
dikeluarkan berupa tulisan di layar monitor.

3.1.1. Pengambilan dan Pengiriman Video Tekstur

NodeMCU ESP-12E akan mendapat perintah dari GUI Matlab untuk menyalakan
Kamera ArduCAM. Setelah itu, citra tekstur akan diambil oleh kamera ArduCAM melalui
video real time (streaming). Video streaming kemudian dikirim oleh NodeMCU ke
penerima setelah penerima terkoneksi pada jaringan LAN NodeMCU. Lampu LED pada
NodeMCU akan menyala berwarna merah ketika proses pengiriman video streaming.
Diagram alir subrutin tahap pengambilan dan pengiriman video tekstur dapat dilihat pada
Gambar 3.3.

Mulai A

Inisialisasi
NodeMCU Mengirim Video Streaming

Tidak
Mendapat Selesai
perintah Kamera mengirim?
ON? Tidak
Ya Ya

Terkoneksi dengan Tutup koneksi


penerima

A Selesai
(a)
Gambar 3.3. (a) Diagram alir subrutin pengambilan dan pengiriman video streaming dan
(b) Diagram alir inisialisasi NodeMCU
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

29

Mulai

Pengaturan SPI

Pengaturan Resolusi

Pengecekan SPI Bus


ArduCAM

Pengaturan Access Point

Pengecekan jenis modul


kamera
Selesai

(b)
Gambar 3.3. (Lanjutan) (a) Diagram alir subrutin pengambilan dan pengiriman video
streaming dan (b) Diagram alir inisialisasi NodeMCU

3.1.2. Penerimaan Video Tekstur

Penerima akan mengirim perintah ke NodeMCU untuk mengirim video streaming.


Setelah itu, penerima akan terkoneksi dengan jaringan NodeMCU. Video streaming akan
dikirim oleh NodeMCU dan diterima oleh penerima. Video streaming yang diterima akan
ditampilkan pada GUI. Video streaming tersebut merupakan video berwarna yang akan
tertampil secara real time. Penerimaan video streaming akan terus berlangsung (dalam
kondisi looping) hingga user ingin mengambil citra tekstur. user mengambil citra tekstur
dari snapshot video streaming, maka koneksi pengirim dan penerima akan ditutup dan
pengirim berhenti mengirim video streaming. Diagram alir subrutin penerimaan video
streaming dapat dilihat pada Gambar 3.4. Citra tekstur yang diambil dari video streaming
adalah citra RGB. Citra tersebut yang akan diolah pada tahap berikutnya, yaitu tahap
Preprocessing.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

30

Mulai

Tidak
Mengirim
perintah
Kamera ON?

Ya

Terkoneksi dengan pengirim

Menerima Video Streaming

Keluaran
Menampilkan
Video Streaming

Tidak
Selesai
Menerima?

Ya

Tutup koneksi

Selesai

Gambar 3.4. Diagram alir subrutin penerimaan video streaming

3.1.3. Tahap Preprocessing


Pada tahap Preprocessing hal yang dilakukan ialah konversi citra RGB setelah citra
tekstur diterima menjadi citra grayscale. Metode GLCM membutuhkan masukan citra dalam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

31

bentuk grayscale. Untuk mengkonversi citra RGB ke grayscale menggunakan persamaan


2.1. Citra tekstur dalam bentuk grayscale kemudian akan masuk ke tahap berikutnya yaitu
ekstraksi ciri. Diagram alir subrutin tahap preprocessing dapat dilihat pada Gambar 3.5.

Mulai
C

Masukan:
Citra RGB
Keluaran:
Citra Preprocessing

Konversi Citra RGB ke grayscale

Selesai
C

Gambar 3.5. Diagram alir subrutin tahap preprocessing

3.1.4. Tahap Ekstraksi Ciri GLCM


Pada tahap ini, citra preprocessing diolah dengan metode GLCM untuk menghasilkan
hasil ekstraksi ciri. Metode GLCM memiliki 5 elemen fitur yang digunakan, yaitu angular
second moment, kontras, inverse different moment, entropi dan korelasi. Diagram alir
subrutin tahap ekstraksi ciri menggunakan metode GLCM dapat dilihat pada Gambar 3.6.

Mulai
Gray Level Co-
occurrence Matrix

Masukan:
Citra Preprocessing Keluaran:
Hasil ekstraksi

D
Selesai

Gambar 3.6. Diagram alir subrutin tahap ekstraksi ciri


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

32

Masukan dari tahap ekstraksi ciri adalah citra preprocessing yang merupakan citra
grayscale. Citra tersebut kemudian masuk ke tahap GLCM. Pada tahap ini citra grayscale
dianalisis hingga mendapat hasil ekstraksi ciri. Diagram alir subrutin GLCM dapat dilihat
pada Gambar 3.7. Citra grayscale disusun ulang berdasarkan matriks GLCM dengan
memerhatikan ketetanggaan tiap piksel. Seperti yang dijelaskan pada Gambar 2.10, arah
sudut ketetanggaan piksel ada 4 sudut. Masing-masing sudut memiliki matriks GLCM yang
berbeda. Oleh karena itu, untuk mendapat matriks GLCM tiap sudut perlu menghitung
ketetanggaan (relasi) antar piksel. Hal pertama ialah menghitung ketetanggaan tiap pikselnya.
Setelah itu, matriks GLCM dibuat simetris dengan menjumlahkannya dengan matriks
GLCM transpose.

Mulai E

Inisialisasi:
Hitung IDM dari Matriks
Matriks GLCM
GLCM tiap sudut
tiap sudut

Hitung Entropi dari


Hitung relasi antar piksel tiap Matriks GLCM tiap sudut
sudut
(ketetanggaan piksel,
pembentukan matriks GLCM,
normalisasi matriks GLCM)
Hitung Korelasi dari
Matriks GLCM tiap sudut

Hitung ASM dari Matriks


GLCM tiap sudut Keluaran:
ASM, Kontras, IDM, Entropi
dan Korelasi tiap sudut
Hitung Kontras dari
Matriks GLCM tiap sudut
Selesai

Gambar 3.7. Diagram alir subrutin Gray Level Co-occurrence Matrix


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

33

Langkah berikutnya, nilai matriks GLCM simetris dinormalisasi sehingga didapat


matriks GLCM normalisasi. Matriks GLCM normalisasi digunakan untuk mendapat hasil
ekstraksi dengan rumus masing-masing fitur. Kemudian matriks GLCM dapat dihitung
ekstraksi cirinya menggunakan persamaan (2.2) hingga (2.11).

3.1.5. Tahap Fungsi Jarak Kosinus


Fungsi jarak yang digunakan ialah jarak Kosinus. Jarak Kosinus berfungsi untuk
membandingkan hasil ekstraksi ciri citra masukan dengan hasil ekstraksi ciri citra tekstur
pada basis data. Tujuan dari tahap ini ialah untuk mencari nilai selisih yang paling kecil dari
hasil fungsi jarak Kosinus antara hasil ekstraksi ciri citra masukan dengan hasil ekstraksi ciri
citra tekstur pada basis data. Jarak Kosinus dihitung menggunakan persamaan (2.12).
Diagram alir subrutin tahap fungsi jarak dapat dilihat pada diagram alir Gambar 3.8.

Mulai

Masukan:
Hasil ekstraksi ciri citra
masukan dan basis data

Perhitungan jarak Kosinus


Citra masukan dengan basis data

Keluaran:
Hasil perhitungan jarak
Kosinus

Selesai

Gambar 3.8. Diagram alir subrutin tahap fungsi jarak


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

34

3.1.6. Penentuan Keluaran


Hasil pengenalan tekstur ditentukan berdasarkan jarak minimal dari hasil
perbandingan antara ekstraksi ciri masukan dengan ekstraksi ciri citra tekstur pada basis data
dari tahap fungsi jarak Kosinus. Citra tekstur dengan jarak paling kecil akan ditampilkan
pada layar monitor berupa teks. Diagram alir subrutin penentuan keluaran dapat dilihat pada
Gambar 3.9.

Mulai

Masukan:
Hasil perhitungan
jarak Kosinus

Teks Keluaran = Variabel yang


berasosiasi dengan jarak minimal

Keluaran:
Hasil berupa Teks Keluaran
pada layar monitor

Selesai

Gambar 3.9. Diagram alir subrutin penentuan keluaran

3.2. Perancangan Basis Data


Sistem pengenalan tekstur ini memerlukan basis data untuk digunakan sebagai
referensi atau acuan. Perancangan basis data bertujuan untuk mendapatkan data ekstraksi
ciri tekstur yang akan dikenali. Hasil ekstraksi ciri pada basis data akan menjadi referensi
bagi hasil ekstraksi ciri citra masukan yang diambil oleh kamera saat pengujian. Hasil
ekstraksi ciri tersebut akan disimpan dalam bentuk matriks. Basis data ini berisi hasil
ekstraksi ciri 13 citra tekstur. Diagram alir perancangan basis data dapat dilihat pada Gambar
3.10.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

35

Mulai

Masukan:
Citra tekstur melalui
kamera

Preprocessing
Konversi citra RGB menjadi
citra grayscale

Ekstraksi ciri
Gray Level Co-occurrence
Matrix

Keluaran:
Hasil Ekstraksi Ciri

Selesai

Gambar 3.10. Diagram alir perancangan basis data


Dari diagram alir perancangan basis data terdapat beberapa tahap yang harus dilakukan.
Tahap pertama ialah pengambilan citra tekstur melalui kamera. Tahap kedua ialah
preprocessing untuk mengkonversi citra RGB menjadi citra grayscale. Setelah citra tekstur
menjadi citra grayscale, selanjutnya citra melalui tahap ektraksi ciri gray level co-
occurrence matrix untuk mendapatkan hasil ekstraksi ciri. Tahap akhir ialah hasil ekstraksi
ciri gray level co-occurrence matrix disimpan dalam bentuk matriks.

3.3. Perancangan Tampilan GUI Matlab


Perancangan tampilan sistem pengenalan tekstur menggunakan Graphical User
Interface (GUI) pada Matlab untuk membantu pengguna dalam proses pengenalan tekstur.
Sistem pengenalan tekstur pada GUI mengacu pada diagram alir sistem pengenalan tekstur
GUI seperti pada Gambar 3.11. Sketsa perancangan GUI dapat dilihat pada Gambar 3.12.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

36

Mulai

Pengiriman Video Streaming


Tombol “KAMERA ON” memberi
perintah untuk mengirim video streaming

Keluaran:
Video streaming
diterima dan ditampilkan

Preprocessing
Keluaran:
Tombol “AMBIL Keluaran:
Citra RGB CITRA” memberi Citra grayscale
ditampilkan perintah untuk ditampilkan
mengambil citra RGB
serta grayscale

Keluaran:
Ekstraksi Ciri
Hasil ekstraksi
ciri ditampilkan
Menghitung hasil ekstraksi
pada tabel ciri dengan metode GLCM

Keluaran:
Hasil pengenalan tekstur
ditampilkan berupa teks

Reset:
Tombol “RESET” berfungsi
mengulang proses pengenalan tekstur
dengan menghapus data masukan

Selesai

Gambar 3.11. Diagram Alir Sistem Pengenalan Tekstur GUI


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

37

KAMERA ON KAMERA PREPROCESSING

AMBIL CITRA Axes 1 Axes 2


RESET

HASIL EKSTRAKSI CIRI GLCM


KELUARAN

Table 1 Edit text 1

Gambar 3.12. Sketsa perancangan GUI


Berdasarkan diagram alir sistem pengenalan tekstur secara keseluruhan (Gambar 3.11),
sistem pengenalan dimulai dari pengambilan citra. Pada Gambar 3.12, user menekan tombol
“KAMERA ON” sehingga panel kamera menampilkan video streaming. Tombol “AMBIL
CITRA” untuk mengambil citra tekstur serta menampilkan citra RGB pada panel KAMERA
(Axes 1). Citra tekstur yang sudah diambil kemudian masuk ke tahap preprocessing. Pada
tahap ini, citra RGB dikonversi menjadi citra grayscale dan ditampilkan pada panel
PREPROCESSING (Axes 2).

Tabel 3.1. Keterangan Sketsa GUI


Nama Keterangan
Tombol “KAMERA ON” Untuk menyalakan kamera ArduCAM
Tombol “AMBIL CITRA” Untuk mengambil citra tekstur dan memroses pengenalan
tekstur
Tombol “RESET” Untuk menghapus data dan mengulang proses pengenalan
tekstur dari awal
Axes 1 pada panel Untuk menampilkan citra secara real-time (streaming)
KAMERA dari kamera ArduCAM dan hasil pengambilan citra
Axes 2 pada panel Untuk menampilkan citra dalam bentuk grayscale dan
PREPROCESSING ukuran dimensi yang berbeda
Table 1 pada panel HASIL Untuk menampilkan hasil ekstraksi ciri GLCM
EKSTRAKSI CIRI GLCM
Edit text 1 pada panel Untuk menampilkan hasil akhir dari sistem pengenalan
KELUARAN tekstur berupa teks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

38

Citra grayscale kemudian masuk ke tahap ekstraksi ciri GLCM. Dengan perhitungan
rumus, matriks GLCM dapat menghasilkan 5 fitur ekstraksi tiap sudut ketetanggaannya.
Hasil ekstraksi ciri sebanyak 20 nilai fitur akan ditampilkan pada Table 1 di panel HASIL
EKSTRAKSI CIRI GLCM. Setelah mendapat hasil ekstraksi ciri, fungsi jarak Kosinus
digunakan untuk mencari jarak tekstur dengan membandingkan hasil ekstraksi ciri citra
masukan dengan basis data. Tekstur dengan jarak Kosinus paling minimal akan ditampilkan
pada edit text 1 di panel KELUARAN. Tombol “RESET” digunakan untuk mengulang
proses pengenalan tekstur dari awal. Keterangan sketsa GUI dapat dilihat pada Tabel 3.1.

3.4. Perancangan Hardware

Perancangan hardware diawali dengan membuat kotak untuk melindungi kamera


ArduCAM dan NodeMCU ESP-12E. kotak dibuat dari bahan yang kaku dan dimensi
disesuaikan dengan ukuran ArduCAM sebagai kamera yang akan mengambil citra dan kabel
dari NodeMCU ESP-12E untuk dihubungkan pada catu daya. Setelah pembuatan kotak,
tahap selanjutnya ialah membuat penyangga untuk kamera ArduCAM. Penyangga dirancang
agar dapat disesuaikan dengan varian skala yaitu tinggi 15 cm, 20 cm dan 25 cm. Penyangga
juga disesuaikan agar mendapat posisi yang baik untuk mengambil citra tekstur dengan
dimensi sekitar 25 x 25 cm. Penambahan lampu sebagai penerangan diperlukan apabila
intensitas cahaya sangat berpengaruh pada proses pengambilan citra tesktur. Pada sistem
pengenalan tekstur ini juga diperlukan laptop yang mampu terkoneksi dengan wifi
NodeMCU ESP-12E. Perancangan hardware dapat dilihat pada Gambar 3.13.

Modul ArduCAM +
NodeMCU ESP-12E

Penyangga

Laptop
Tekstur 25 x 25cm

Gambar 3.13. Perancangan Hardware


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

39

3.5. Pengujian Citra Tekstur


Berikut ini adalah langkah-langkah pengujian pengenalan citra tekstur:

1. Menghubungkan catu daya untuk NodeMCU ESP-12E dan kamera ArduCAM.


2. Penulis menjalankan GUI pada Matlab. Tombol “KAMERA ON” digunakan untuk
menyalakan kamera dan menampilkannya pada GUI panel KAMERA. Tombol
“AMBIL CITRA” digunakan untuk mengambil citra dan memroses hasil ekstraksi ciri
untuk mengenali tekstur.
3. Pengambilan data dilakukan secara real-time, dari pengambilan ini akan menghasilkan
130 data. Tekstur yang akan dikenali memiliki posisi awal yaitu jarak 20 cm, sudut
putar 0° dan posisi berada di tengah. Data pengenalan 13 tekstur pada posisi awal ialah
13 data. Ada 3 jenis variasi, yaitu variasi jarak, sudut putar dan geser. Dua variasi
jarak, yaitu 25 cm dan 30 cm, menghasilkan 3 data tiap tekstur. Total variasi jarak
menghasilkan 2 x 13 tekstur = 26 data. Tiga variasi sudut putar, yaitu 20°, 60°, dan
120°, menghasilkan 3 data tiap tekstur. Total variasi sudut putar menghasilkan 3 x 13
tekstur = 39 data. Empat variasi geser, yaitu 1 cm vertikal (atas dan bawah) dan 1 cm
horizontal (kiri dan kanan), menghasilkan 4 data tiap tekstur. Total variasi geser
menghasilkan 4 x 13 tekstur = 52 data. Tiap percobaan hanya memiliki 1 jenis variasi
dan harus kembali ke posisi awal terlebih dahulu. Tiap percobaan diulang sebanyak 3
kali sehingga menghasilkan total 3 x 130 data = 390 data.
4. Hasil pengambilan citra masuk ke tahap preprocessing untuk dikonversi menjadi citra
grayscale.
5. Citra grayscale masuk ke tahap ekstraksi ciri GLCM untuk memroses citra dengan
perhitungan masing-masing ekstraksi fitur dan menampilkan hasil masing-masing
fitur GLCM.
6. Hasil ekstraksi ciri GLCM dibandingkan dengan basis data. Hasil perbandingan
berupa selisih dari perhitungan menggunakan jarak Kosinus.
7. Hasil jarak Kosinus ditampilkan pada GUI. Dengan mencari selisih jarak yang paling
minimal, hasil keluaran berupa teks ditampilkan pada layar monitor.
8. Pengujian jarak wireless NodeMCU dan laptop dilakukan dengan mengenali tekstur
sesuai posisi awal. Variasi jarak yang diuji antara lain: 1 m, 10 m, 20 m, 30 m, 40 m
dan 50 m.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB IV

HASIL DAN PEMBAHASAN

Implementasi sistem pengenalan tekstur secara perangkat lunak dan perangkat keras
yang ada di Bab III, dapat dilihat pada lampiran 1 dan lampiran 3. Untuk mengetahui cara
kerja perangkat lunak secara bagian per bagian dapat dilihat pada lampiran 2. Pengujian
sistem pengenalan tekstur menghasilkan data pengenalan yang berguna untuk pembahasan
pada bab ini. Pengujian sistem pengenalan tekstur bertujuan untuk mengetahui sistem yang
telah dirancang dapat bekerja dengan baik sesuai dengan perancangan.

4.1. Hasil Pengujian dan Analisis Data


4.1.1. Pengujian Pengaruh RST Terhadap Pengenalan Tekstur
Pengujian pengaruh RST dilakukan untuk mengetahui pengaruh variasi rotasi, skala,
dan translasi terhadap tingkat pengenalan tekstur dengan metode Gray Level Co-occurrence
Matrix. Dalam pengujian pengaruh RST, data masukan diperoleh dari tekstur asli yang telah
dibuat dengan dimensi 25 x 25 cm. Tekstur kemudian digerakkan secara manual sesuai
variasi RST yang telah ditentukan pada batasan masalah. Mula-mula tekstur diletakkan pada
posisi awal (sudut rotasi 0°, jarak 20 cm, posisi tengah). Untuk setiap pengujian variasi RST,
tekstur akan diatur ke posisi awal terlebih dahulu. Dari pengujian ini dapat diperoleh nilai
pengaruh RST dari setiap tekstur dengan mencari persentase pengenalan (recognition rate)
terhadap tiap variasi RST. Berikut akan disampaikan grafik tingkat pengenalan tekstur
dengan pengaruh RST.

Pengujian pengaruh RST terhadap pengenalan diambil dengan resolusi kamera 160 x
120 piksel. Data diperoleh dari 10 tekstur tunggal dengan 10 variasi RST yang terdiri dari 1
posisi awal, 3 variasi rotasi, 2 variasi skala, dan 4 variasi translasi. Tingkat pengenalan
tekstur masing-masing variasi didapat mengambil rata-rata dari tiap variasi. Pada setiap
tekstur dan setiap varian akan dilakukan pengambilan gambar sebanyak 3 kali. Pengambilan
data dilakukan dengan berdasar penelitian milik Adnyana [3]. Secara detail, data pengenalan
tekstur dapat dilihat pada lampiran 4. Secara persentase, data pengenalan tekstur pada
lampiran 4 tersebut dapat dilihat pada lampiran 5. Secara grafis, hasil persentase pengenalan

40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

41

tekstur pada lampiran 5 dapat dilihat pada Gambar 4.1. Hasil tingkat pengenalan tekstur akan
dibandingkan dengan penelitian sebelumnya untuk melihat pengembangan penelitian yang
telah dilakukan.

Tingkat Pengenalan Tekstur Dengan Pengaruh RST


100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Posisi Awal Rotasi Skala Translasi
Tingkat Pengenalan GLCM 90% 61.68% 68.90% 70.66%
Tingkat Pengenalan STD [3] 100% 78.36% 78.00% 87.96%

Gambar 4.1. Grafik Tingkat Pengenalan Tekstur Dengan Pengaruh RST


Pengembangan penelitian ini berupaya untuk memperbaiki tingkat pengenalan
penelitian sebelumnya dengan harapan mencapai tingkat pengenalan 100%. Pada grafik
tingkat pengenalan tekstur dengan pengaruh RST menunjukkan bahwa variasi RST
menurunkan tingkat pengenalan tekstur. Hal tersebut dibuktikan dengan grafik bahwa
tingkat pengenalan menggunakan metode GLCM dan tingkat pengenalan menggunakan
metode STD (penelitian sebelumnya) dengan pengaruh RST menurun dibandingkan dengan
tingkat pengenalan GLCM dan STD tanpa pengaruh RST (posisi awal). Variasi RST akan
membuat tekstur masukan berbeda dengan tekstur basis data. Hal ini membuat ekstraksi ciri
GLCM masukan berbeda dengan basis data sehingga mempengaruhi perhitungan jarak
Kosinus. Oleh karena itu, kesalahan pengenalan dapat terjadi karena jarak Kosinus yang
paling minimal tidak sesuai antara tekstur masukan dengan tekstur basis data.

Berdasarkan grafik tingkat pengenalan tekstur dengan pengaruh RST, tingkat


pengenalan GLCM masih di bawah tingkat pengenalan STD. Hal tersebut terjadi karena
perbedaan resolusi yang digunakan untuk pengujian posisi awal, variasi rotasi, skala dan
translasi. Resolusi kamera yang digunakan Adnyana [3] adalah 640 x 480 piksel. Resolusi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

42

pada penelitian ini lebih rendah dari resolusi penelitian sebelumnya, yaitu 160 x 120 piksel.
Dengan demikian, resolusi kamera berpengaruh terhadap tingkat pengenalan tekstur.

Pengujian pengaruh variasi rotasi diambil dengan mengatur resolusi kamera 160 x 120
piksel serta jarak 20 cm dan posisi tekstur tanpa pergeseran. Pada pengujian ini terdapat 4
variasi rotasi, yaitu 0°, 20°, 60°, dan 120°. Data yang diperoleh dapat diolah menjadi
persentase tingkat pengenalan tekstur dengan menghitung nilai pengenalan dari 3 kali
pengulangan untuk 10 tekstur tunggal. Satu variasi rotasi memiliki total data pengenalan
variasi rotasi sebanyak 30 data. Untuk mendapat persentase tiap sudut variasi rotasi, jumlah
pengujian berhasil akan dibagi dengan total data pengenalan variasi sudut dan dikali dengan
100%. Grafik pengaruh variasi rotasi terhadap pengenalan ditunjukkan pada Gambar 4.2.

Pengaruh Variasi Rotasi Terhadap Pengenalan


Tekstur Tunggal
100%
90%
80%
70%
Persentase (%)

60%
50%
40%
30%
20%
10%
0%
0 20 60 120
GLCM 90.0% 56.7% 60.0% 40.0%
STD [3] 100.0% 83.3% 70.0% 73.3%
Sudut (°)

Gambar 4.2. Grafik Pengaruh Variasi Rotasi Terhadap Pengenalan


Pada grafik pengaruh variasi rotasi terhadap pengenalan terlihat bahwa semakin besar
variasi sudut rotasi akan semakin mempengaruhi tingkat pengenalan. Hal ini dibuktikan
dengan besarnya sudut rotasi 120°, persentase pengenalan hanya 40%. Hal tersebut
dikarenakan adanya perubahan nilai grayscale pada citra tekstur sehingga mengakibatkan
nilai ekstraksi ciri yang didapat berbeda dengan nilai ekstraksi ciri dari basis data. Nilai
ekstraksi ciri masukan dibandingkan dengan nilai ekstraksi ciri basis data menggunakan
jarak Kosinus dan didapat hasil pengenalan yang tidak sesuai dengan tekstur masukan. Pada
penelitian sebelumnya, besar sudut rotasi juga mempengaruhi tingkat pengenalan. Dari data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

43

tersebut dapat disimpulkan bahwa variasi rotasi berpengaruh terhadap tingkat pengenalan.
Perbandingan dengan penelitian sebelumnya, tingkat pengenalan metode STD lebih tinggi
dibandingkan metode GLCM. Hal tersebut bisa terjadi karena penggunaan resolusi yang
lebih rendah dari penelitian sebelumnya.

Pengujian pengaruh variasi skala diambil dengan mengatur resolusi kamera 160 x 120
piksel serta sudut putar 0° dan posisi tekstur tanpa pergeseran. Pada pengujian ini terdapat 3
variasi jarak antara kamera dengan tekstur, yaitu 20 cm, 25 cm, dan 30 cm. Data yang
diperoleh dapat diolah menjadi persentase tingkat pengenalan tekstur dengan menghitung
nilai pengenalan dari 3 kali pengulangan untuk 10 tekstur tunggal. Satu variasi rotasi
memiliki total data pengenalan variasi sudut sebanyak 30 data. Untuk mendapat persentase
tiap jarak variasi skala, jumlah pengujian berhasil akan dibagi dengan total data pengenalan
variasi skala dan dikali dengan 100%. Grafik pengaruh variasi skala terhadap pengenalan
ditunjukkan pada Gambar 4.3.

Pengaruh Variasi Skala Terhadap Pengenalan


Tekstur Tunggal
100%
90%
80%
70%
Persentase (%)

60%
50%
40%
30%
20%
10%
0%
20 cm 25 cm 30 cm 35 cm
GLCM 90% 80% 37%
STD [3] 78% 94% 62%
Jarak (cm)

Gambar 4.3. Grafik Pengaruh Variasi Skala Terhadap Pengenalan


Pada tingkat pengenalan menggunakan metode GLCM, semakin besar variasi skala
(jarak antara kamera dengan tekstur) akan semakin mempengaruhi tingkat pengenalan. Hal
tersebut dibuktikan dengan menurunnya persentase keberhasilan pada jarak 30 cm sebesar
36,7%. Berdasarkan data tersebut dapat disimpulkan bahwa semakin jauh jarak kamera
dengan tekstur (skala diperkecil) maka akan mempengaruhi tingkat pengenalan tekstur
tunggal. Jarak yang lebih jauh akan membuat tekstur pada citra tekstur tunggal yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

44

ditangkap kamera semakin sulit dikenali. Semakin sulitnya tekstur dikenali, maka nilai
ekstraksi ciri yang didapat dari metode GLCM pun berbeda dengan basis data. Hal ini
mengakibatkan nilai ekstraksi ciri masukan dan ekstraksi ciri basis data tidak sesuai
teksturnya. Faktor yang bisa mempengaruhi tingkat pengenalan ialah resolusi dari kamera
yang digunakan serta pencahayaan saat pengambilan citra.

Perbandingan dengan penelitian sebelumnya, tingkat pengenalan GLCM paling baik


berada pada jarak 20 cm dan tingkat pengenalan STD paling baik berada pada jarak 30 cm.
Hal tersebut karena perbedaan posisi awal untuk penyimpanan basis data yang telah
disesuaikan dengan kamera yang digunakan untuk pengujian penelitian ini. Pada metode
STD, posisi awal yang disimpan sebagai basis data berada pada 30 cm sehingga pada jarak
tersebut didapat tingkat pengenalan paling baik. Pada metode GLCM, posisi awal yang
disimpan sebagai basis data berada pada 20 cm sehingga pada jarak tersebut didapat tingkat
pengenalan paling baik. Pada tingkat pengenalan menggunakan metode STD, ketika jarak
diubah dari posisi awal, maka tingkat pengenalan akan menurun. Hal tersebut juga
disebabkan karena perbedaan citra tekstur yang diambil nilai ekstraksi ciri yang didapat dari
metode STD dengan basis data.

Pengaruh Variasi Translasi Terhadap Pengenalan


Tekstur Tunggal
100%
90%
80%
70%
Persentase (%)

60%
50%
40%
30%
20%
10%
0%
Center U1 L1 D1 R1
GLCM 90.0% 63.3% 80.0% 60.0% 60.0%
STD [3] 100.0% 86.6% 90.0% 66.6% 96.6%
Geser (cm)
Ket:
U 1 = Geser Atas 1 cm D 1 = Geser Bawah 1 cm
L 1 = Geser Kiri 1 cm R 1 = Geser Kanan 1 cm

Gambar 4.4. Grafik Pengaruh Variasi Translasi Terhadap Pengenalan


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

45

Pengujian pengaruh variasi translasi diambil dengan mengatur resolusi kamera 160 x
120 piksel serta jarak 20 cm dan sudut putar 0°. Pada pengujian ini terdapat 5 variasi translasi,
yaitu posisi center, geser 1 cm ke atas (U) , geser 1 cm ke kiri (L), geser 1 cm ke bawah (D)
dan geser 1 cm ke kanan (R). Data yang diperoleh dapat diolah menjadi persentase tingkat
pengenalan tekstur dengan menghitung nilai pengenalan dari 3 kali pengulangan untuk 10
tekstur tunggal. Satu variasi translasi memiliki total data pengenalan variasi sudut sebanyak
30 data. Untuk mendapat persentase tiap variasi translasi, jumlah pengujian berhasil akan
dibagi dengan total data pengenalan variasi translasi dan dikali dengan 100%. Grafik
pengaruh variasi translasi terhadap pengenalan ditunjukkan pada Gambar 4.4.
Berdasarkan grafik, variasi translasi mempengaruhi tingkat pengenalan tekstur. Setiap
variasi pergeseran menurunkan tingkat pengenalan. Pada titik center tanpa pergeseran
memiliki tingkat pengenalan paling tinggi sebesar 90%. Kesalahan pengenalan pada
beberapa tekstur ketika dilakukan pengujian karena perbedaan yang terjadi pada nilai
ekstraksi ciri tekstur masukan dengan basis data memiliki jarak cukup jauh. Hal tersebut
mengakibatkan tekstur yang dikenali ialah tekstur yang memiliki jarak yang paling dekat.
Beberapa kasus membuat pengenalan tekstur dapat sesuai dikenali ketika dilakukan variasi
translasi. Contohnya ialah tekstur kacang dapat dikenali sebagai kacang ketika pengujian
variasi translasi 1 cm ke kiri. Ini terjadi karena nilai ekstraksi ciri yang didapat dari tekstur
masukan setelah diuji variasi translasi justru memiliki jarak yang lebih dekat dengan tekstur
asalnya. Pada penelitian sebelumnya, variasi skala juga mempengaruhi tingkat pengenalan
karena kesamaan informasi citra tekstur yang dikenali dengan basis data semakin sedikit.
Hal ini berarti bahwa variasi translasi menurunkan tingkat pengenalan secara acak.
Perbandingan dengan penelitian sebelumnya, tingkat pengenalan variasi skala menggunakan
metode STD lebih baik daripada tingkat pengenalan variasi skala menggunakan metode
GLCM. Hal tersebut bisa terjadi karena penggunaan resolusi yang lebih rendah dari
penelitian sebelumnya.

4.1.2. Tingkat Pengenalan Terbaik Dan Terburuk


Hasil pengujian tiap tekstur dalam bentuk grafik tingkat pengenalan tiap tekstur
tunggal dapat dilihat pada Gambar 4.5. Pengujian ini menggunakan resolusi kamera 160 x
120 piksel. Berdasarkan grafik tersebut, tekstur jagung ialah tekstur yang paling baik dengan
rata-rata pengenalan pengaruh variasi RST sebesar 100%. Hasil ekstraksi ciri jagung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

46

masukan dengan hasil ekstraksi ciri jagung basis data memiliki jarak Kosinus yang paling
kecil. Tekstur jagung memiliki karakteristik tekstur yang paling baik. Hal tersebut dapat
dilihat dari tingkat pengenalan yang dapat dikatakan selalu berhasil mengenali tekstur jagung.

Tingkat Pengenalan Tiap Tekstur Tunggal


100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Anyama Bebatua
Gabah Jagung Kacang Goni Keset Jerami Handuk Rumput
n n
Rotasi 100% 100% 50% 25% 25% 100% 25% 91.70% 25% 75%
Skala 66.70% 100% 0% 66.70% 66.70% 88.90% 100% 66.70% 33.30% 100%
Translasi 20% 100% 26.70% 100% 100% 100% 100% 100% 40% 20%
Rata-rata 62.20% 100% 25.60% 63.90% 63.90% 96.30% 75% 86.10% 32.80% 65%

Rotasi Skala Translasi Rata-rata

Gambar 4.5. Grafik Tingkat Pengenalan Tiap Tekstur Tunggal


Gambar 4.6 menunjukkan citra grayscale tekstur jagung masukan pada sudut 20° dan
citra grayscale tekstur jagung basis data. Perbandingan hasil ekstraksi ciri GLCM tekstur
jagung pada Gambar 4.6 dapat dilihat di lampiran 6.

(a) (b)
Gambar 4.6. Citra Grayscale Tekstur Jagung Masukan Pada Sudut 20° (a) dan Citra
Grayscale Tekstur Jagung Basis Data (b)
Tabel 4.1. Tabel Jarak Kosinus Tekstur Jagung Terhadap Basis Data

Jarak Kosinus Tekstur Jagung Masukan Pada Sudut 20° Terhadap Basis Data
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Batu
1,51 x 7,68e- 6,38 x 3,45 x
0,0018 0,0031 0,0043 0,043 0,0016 0,0023
10-4 04 10-4 10-4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

47

Pada Tabel 4.1 dapat dilihat bahwa Jarak Kosinus dengan tekstur jagung adalah 1,51
x 10-4. Jarak tersebut adalah jarak paling minimal dibanding dengan jarak Kosinus tekstur
lainnya. Dengan demikian, hasil pengenalan tekstur akan dikenali sebagai jagung sesuai
dengan tekstur masukan.

Berdasarkan grafik pada Gambar 4.5, tekstur kacang ialah tekstur yang paling buruk
dengan rata-rata tingkat pengenalan pengaruh RST sebesar 25,6%. Sebagian besar pengujian
pengenalan tekstur kacang dikenali sebagai tekstur bebatuan. Pada sudut 120°, tekstur
kacang dikenali sebagai tekstur bebatuan. Gambar 4.7 menunjukkan citra grayscale tekstur
kacang masukan pada sudut 120° dengan citra grayscale tekstur kacang basis data dan citra
grayscale tekstur bebatuan basis data.

(a) (b) (c)


Gambar 4.7. Citra Grayscale Tekstur Kacang Masukan Pada Sudut 120° (a), Citra
Grayscale Tekstur Kacang Basis Data (b), dan Citra Grayscale Tekstur Bebatuan Basis
Data (c)
Tabel 4.2. Tabel Jarak Kosinus Tekstur Kacang Terhadap Basis Data

Jarak Kosinus Tekstur Kacang Masukan Pada Sudut 120° Terhadap Basis Data
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Batu
9,55 x 8,3 x
0,0023 0,0011 0,0098 0,0153 0,003 0,0708 0,0033 0,0056
10-4 10-4

Perbandingan hasil ekstraksi ciri GLCM tekstur kacang pada Gambar 4.7 dapat dilihat
pada lampiran 6. Hasil ekstraksi ciri tekstur kacang masukan dengan hasil ekstraksi ciri
tekstur kacang basis data tidak memiliki jarak paling minimal. Hasil ekstraksi ciri tekstur
kacang masukan justru memiliki jarak paling minimal dengan hasil ekstraksi ciri tekstur
bebatuan basis data. Hal ini berarti tekstur kacang memiliki kemiripan dengan tekstur
bebatuan yang menyebabkan kesulitan mengenali tekstur kacang.

Pada Tabel 4.2 dapat dilihat bahwa jarak Kosinus paling minimal ialah jarak dengan
bebatuan. Jarak Kosinus dengan tekstur bebatuan adalah 8,3 x 10-4 sedangkan jarak Kosinus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

48

dengan tekstur kacang adalah 11 x 10-4. Dengan demikian, hasil pengenalan tekstur akan
dikenali sebagai bebatuan tidak sesuai dengan tekstur masukannya yaitu tekstur kacang.

Pada tekstur kacang pun terdapat masalah pada tingkat pengenalan variasi skala yang
tidak berhasil sama sekali (0%). Tekstur kacang dengan variasi skala 100% dikenali sebagai
tekstur bebatuan. Hal ini membuktikan bahwa tekstur kacang memiliki nilai ekstraksi ciri
yang mirip dengan nilai ekstraksi ciri tekstur bebatuan. Hal tersebut bisa terjadi karena faktor
perbedaan intensitas cahaya saat pengambilan basis data dengan pengujian

4.1.3. Pengujian Pengaruh Jarak Wireless


Pengujian pengenalan tekstur pengaruh jarak wireless dilakukan untuk mengetahui
pengaruh jarak antara kamera dengan laptop dalam pengiriman citra tekstur. Pengirim
(kamera ArduCAM dan modul nirkabel NodeMCU) akan dipisah terhadap penerima
(laptop) dengan jarak 1 m, 10 m, 20 m, 30 m, 40 m dan 50 m. Penambahan jarak 60 m, 70
m dan 80 m dilakukan karena selama pengujian jarak 1 m hingga 50 m, kuat sinyal masih
terdeteksi (signal strength) sehingga perlu penambahan jarak. Pada tiap jarak uji, kuat sinyal
access point NodeMCU diukur menggunakan aplikasi Android WiFi Analyzer. Kondisi
pengambilan berada di lorong depan laboratorium Program Studi Teknik Elektro, Fakultas
Sains dan Teknologi, Universitas Sanata Dharma Kampus III Paingan. Lokasi ini diambil
karena rentang jarak yang jauh yaitu sekitar 80 m untuk dilakukan pengujian dengan jalur
tanpa penghalang. Pada lokasi ini juga terdapat jaringan lain dari beberapa access point
selain jaringan NodeMCU, yaitu jaringan kampus.

Jaringan nirkabel NodeMCU termasuk propagasi Line of Sight (LOS) karena


berdasarkan datasheet perangkat NodeMCU, frekuensi jaringan ini berada pada 2.4GHz.
Pengujian dengan variasi jarak atau lintasan propagasi pengirim dan penerima dilakukan
untuk melihat pengaruhnya terhadap kuat sinyal. Pada pengujian ini, laptop dikoneksikan
terlebih dahulu ke jaringan NodeMCU dan perlahan-lahan laptop menjauh hingga 80 m
dimulai dari jarak yang paling dekat, yaitu 1 m. Grafik pengaruh variasi jarak terhadap kuat
sinyal dapat dilihat pada Gambar 4.8.

Pada grafik pengaruh variasi jarak terhadap kuat sinyal terlihat bahwa semakin jauh
lintasan propagasi antara NodeMCU dan laptop, maka kuat sinyal akan mengalami atenuasi.
Walau demikian, pada jarak 40 m hingga 70 m terlihat bahwa atenuasi kuat sinyal naik turun
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

49

(tidak stabil). Hal ini terjadi karena kuat sinyal akan jatuh bergantung pada jarak dari
medium transmisi. Secara umum, kuat sinyal akan mengalami atenuasi secara eksponensial.

Grafik Pengaruh Variasi Jarak Terhadap Kuat Sinyal


0

-10

-20

-30

-40

-50

-60

-70

-80

-90
1m 10 m 20 m 30 m 40 m 50 m 60 m 70 m 80 m
Kuat Sinyal (dBm) -45 -55 -62 -70 -72 -77 -71 -74

Kuat Sinyal (dBm)

Gambar 4.8. Grafik Pengaruh Variasi Jarak Terhadap Kuat Sinyal


Dengan demikian, semakin jauh jarak antara NodeMCU dengan laptop, kuat sinyal
akan semakin melemah. Pengujian pada jarak 80 m, WiFi Analyzer sudah tidak bisa
mendeteksi kuat sinyal dari jaringan NodeMCU. Hal ini disebabkan oleh adanya jaringan
lain selain jaringan NodeMCU yang lebih kuat di sekitar lokasi pengujian. Kuat sinyal yang
terdeteksi ialah kuat sinyal jaringan kampus yang memiliki access point yang lebih dekat
dari pada access point NodeMCU.

Setiap jarak dilakukan pengujian pengenalan tekstur untuk mengetahui pengaruh jarak
NodeMCU dengan laptop terhadap tingkat pengenalan tekstur. Pada pengujian ini,
pengenalan dilakukan sebanyak 10 kali tiap jaraknya. Resolusi kamera yang digunakan
adalah 160 x 120 piksel. Dari 10 pengujian akan dihitung persentase tingkat pengenalan
dengan membagi jumlah keberhasilan pengenalan dengan sepuluh pengenalan dan dikali
100%. Grafik pengaruh variasi jarak terhadap tingkat pengenalan dapat dilihat pada Gambar
4.9. Berdasarkan grafik pengaruh variasi jarak terhadap tingkat pengenalan, pada jarak 1 m
hingga 80 m terlihat tingkat pengenalan tekstur mencapai 100%. Pada jarak terdekat (1 m)
hingga jarak terjauh (80 m), tingkat pengenalan mencapai 100% karena video streaming
berhasil diterima laptop dan citra tekstur yang diambil masih dapat dikenali.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

50

Grafik Pengaruh Variasi Jarak Terhadap Tingkat


Pengenalan
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
1m 10 m 20 m 30 m 40 m 50 m 60 m 70 m 80 m
Tingkat Pengenalan 100% 100% 100% 100% 100% 100% 100% 100% 100%

Tingkat Pengenalan

Gambar 4.9. Grafik Pengaruh Variasi Jarak Terhadap Tingkat Pengenalan


Tampilan GUI pengenalan tekstur pada jarak 1 m dan 80 m dapat dilihat pada Gambar
4.10. tersebut membuktikan bahwa jarak tidak mempengaruhi tingkat pengenalan tekstur
karena citra tekstur yang diambil pada jarak 1 m maupun 80 m berhasil dikenali. Mobilitas
alat pengenalan tekstur masih dapat berfungsi dengan baik hingga jarak antara access point
NodeMCU dan laptop sekitar 80 m. Tingkat pengenalan mencapai 100% pada jarak 1 m
hingga 80 m dengan catatan intensitas cahaya diusahakan sama untuk setiap jarak pengujian.

(a)
Gambar 4.10. Tampilan GUI Pengenalan Tekstur: pada jarak 1 m (a)
dan pada jarak 80 m (b)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

51

(b)
Gambar 4.10. (Lanjutan) Tampilan GUI Pengenalan Tekstur: pada jarak 1 m (a)
dan pada jarak 80 m (b)
Beberapa pengujian pengenalan terdapat masalah pada NodeMCU dalam mengirim
video streaming. Pada GUI, setelah tombol CAMERA ON ditekan, indikator lampu
berwarna merah pada board NodeMCU akan menyala dan mengirim video streaming.
Indikator lampu pada NodeMCU menyala ditunjukkan pada Gambar 4.11.

Gambar 4.11. Indikator lampu pada NodeMCU menyala

Video streaming akan diterima kemudian ditampilkan pada GUI. Pada beberapa
pengujian, laptop tidak menerima video streaming dari NodeMCU. Error ketika tidak
berhasil menerima video streaming tidak tertampil pada GUI, tetapi tertampil pada halaman
command window MATLAB. Tampilan GUI setelah CAMERA ON ditekan tapi tidak
menerima video streaming dapat dilihat pada Gambar 4.12.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

52

Gambar 4.12. Tampilan GUI tidak menerima video streaming


Ini berarti laptop telah berhasil mengirim perintah kepada NodeMCU untuk
mengambil video streaming. Indikator lampu menyala berarti NodeMCU berhasil mengirim
video streaming, tetapi tidak berhasil sampai kepada tujuan yaitu laptop. Hal tersebut dapat
terjadi karena gangguan dari luar, yaitu penghalang (adanya objek yang melintasi jalur
propagasi NodeMCU dan laptop). Pada propagasi Line of Sight, pengiriman dan penerimaan
sinyal akan terganggu jika ada penghalang.

4.1.4. Pengujian Tambahan Perbaikan Kinerja Pengenalan Tekstur


Pengujian ini bertujuan untuk memperbaiki kinerja pengenalan tekstur. Pada
pengujian ini, resolusi kamera yang dipakai oleh penulis adalah 320 x 240 piksel. Pengujian
sebelumnya, resolusi kamera yang dipakai adalah 160 x 120 piksel sesuai dengan batasan
masalah. Untuk mengganti resolusi kamera, penulis perlu mengubah program dalam modul
nirkabel NodeMCU menggunakan aplikasi Arduino IDE. Grafik pengaruh perbaikan kinerja
dengan perubahan resolusi dapat dilihat pada Gambar 4.13. Dengan menggunakan resolusi
yang lebih tinggi, tingkat pengenalan tekstur tunggal mencapai 100% untuk pengujian posisi
awal (dengan catatan tekstur yang dipakai tidak berubah seperti yang dilakukan pada
pengujian sebelumnya). Tingkat pengenalan ini lebih baik dari tingkat pengenalan pengujian
posisi awal menggunakan resolusi 160 x 120 piksel yang hanya mencapai 90%.

Walaupun demikian, pada pengujian variasi rotasi dan skala, tingkat pengenalan
dengan resolusi 320 x 240 piksel lebih rendah dari tingkat pengenalan dengan resolusi 160
x 120 piksel. Perbaikan tingkat pengenalan tekstur hanya terjadi pada variasi translasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

53

dengan tingkat pengenalan sebesar 78%. Ini menyatakan bahwa variasi rotasi dan skala tidak
mengalami perbaikan walaupun menggunakan resolusi yang lebih tinggi. Hal tersebut terjadi
karena piksel yang lebih tinggi mempengaruhi metode GLCM dalam mendapatkan hasil
ektraksi. Metode GLCM adalah metode statistik fitur tekstur order dua yang berarti
perhitungan berdasarkan hitungan statistik antara ketetanggaan piksel.

Pengaruh Perbaikan Kinerja Dengan Perubahan


Resolusi
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Posisi Awal Rotasi Skala Translasi
Res 160x120 90% 61.68% 68.90% 70.66%
Res 320x240 100% 55% 57.77% 78%

Gambar 4.13. Grafik Pengaruh Perbaikan Kinerja Dengan Perubahan Resolusi


Setelah resolusi piksel dinaikkan, penulis menemukan masalah dengan fungsi jarak
Kosinus yang digunakan untuk menghitung jarak hasil ekstraksi ciri GLCM. Nilai fitur
Kontras dan Entropi pada hasil ekstraksi ciri GLCM memiliki perbedaan yang jauh
dibanding nilai fitur hasil ekstraksi ciri GLCM yang lain. Hal tersebut mempengaruhi
perhitungan fungsi jarak Kosinus. Oleh karena itu, nilai fitur Kontras dan Entropi perlu
dinormalisasi sehingga bernilai di antara 0 dan 1. Setelah dilakukan normalisasi nilai fitur
GLCM, tingkat pengenalan meningkat dibanding tingkat pengenalan dengan perubahan
resolusi. Grafik pengaruh perbaikan kinerja dengan perubahan resolusi dan normalisasi nilai
fitur GLCM dapat dilihat pada Gambar 4.14.

Grafik pada Gambar 4.14 menunjukkan tingkat pengenalan metode GLCM dengan
resolusi kamera 320 x 240 dan normalisasi nilai fitur GLCM lebih tinggi dibanding tingkat
pengenalan yang lain, baik pada pengujian posisi awal maupun pengujian variasi RST. Ini
berarti perbaikan kinerja dengan menaikkan resolusi dan normalisasi nilai fitur GLCM
berhasil.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

54

Pengaruh Perbaikan Kinerja Dengan Perubahan


Resolusi Dan Normalisasi Nilai Fitur GLCM
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Posisi Awal Rotasi Skala Translasi
Res 160x120 90% 61.68% 68.90% 70.66%
Res 320x240 100% 55% 57.77% 78%
Res 320x240 Norm 100% 85.83% 77.77% 97.34%

Gambar 4.14. Grafik Pengaruh Perbaikan Kinerja Dengan Perubahan Resolusi Dan
Normalisasi Nilai Fitur GLCM
Tingkat pengenalan menggunakan metode GLCM setelah diperbaiki kemudian
dibandingkan dengan tingkat pengenalan menggunakan metode STD. Grafik tingkat
pengenalan tekstur dengan pengaruh RST setelah perbaikan kinerja dapat dilihat pada
Gambar 4.15.

Tingkat Pengenalan Tekstur Dengan Pengaruh RST


Setelah Perbaikan Kinerja
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Posisi Awal Rotasi Skala Translasi
Tingkat Pengenalan GLCM 100% 85.83% 77.77% 97.34%
Tingkat Pengenalan STD [3] 100% 78.36% 78.00% 87.96%

Gambar 4.15. Grafik Tingkat Pengenalan Tekstur Dengan Pengaruh RST Setelah
Perbaikan Kinerja
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

55

Perbaikan tersebut memiliki tingkat pengenalan yang lebih baik pada variasi Rotasi
dan Translasi dibandingkan penelitian sebelumnya. Tingkat pengenalan ini yang dipakai
sebagai tingkat pengenalan terbaik dari penelitian ini dengan tingkat pengenalan posisi awal
atau tanpa RST mencapai 100%, variasi rotasi mencapai 85,83%, variasi skala mencapai
77,77% dan variasi translasi mencapai 97,34%. Hal ini berarti resolusi kamera, metode
ekstraksi ciri serta fungsi jarak dapat menaikkan tingkat pengenalan.

4.1.5. Pengujian Pengenalan Tekstur Ganda


Pengujian tambahan pengenalan tekstur ganda dilakukan untuk mengetahui pengaruh
variasi rotasi, skala, dan translasi terhadap tingkat pengenalan tekstur ganda dengan metode
Gray Level Co-occurrence Matrix. Dalam pengujian ini, data masukan diperoleh dari tekstur
ganda asli yang telah dibuat dengan dimensi 25 x 25 cm dengan 2 tekstur tunggal intensitas
50% dipisah secara vertikal. Tekstur kemudian digerakkan secara manual sesuai variasi RST
yang telah ditentukan pada batasan masalah. Mula-mula tekstur diletakkan pada posisi awal
(sudut rotasi 0°, jarak 20 cm, posisi tengah). Untuk setiap pengujian variasi RST, tekstur
akan diatur ke posisi awal terlebih dahulu. Dari pengujian ini dapat diperoleh nilai pengaruh
RST dari setiap tekstur dengan mencari persentase pengenalan (recognition rate) terhadap
tiap variasi RST.

Tingkat Pengenalan Tekstur Ganda Dengan Pengaruh


RST
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Posisi Awal Rotasi Skala Translasi
Tingkat Pengenalan 100% 83.35% 100.00% 95.56%

Tingkat Pengenalan

Gambar 4.16. Grafik Tingkat Pengenalan Tekstur Ganda Dengan Pengaruh RST
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

56

Grafik tingkat pengenalan tekstur ganda dengan pengaruh RST dapat dilihat pada
Gambar 4.16. Tekstur ganda yang digunakan untuk pengujian pengenalan tekstur ganda
antara lain: tekstur karung goni dan gabah, tekstur karung goni dan jagung, dan tekstur
karung goni dan kacang. Tekstur tersebut adalah tekstur yang akan disimpan pada basis data
untuk dikenali. Selain ke-3 tekstur ganda tersebut, tekstur ganda lain akan dikenali sebagai
tekstur ganda yang telah disimpan. Pengujian ini menggunakan resolusi kamera 160 x 120
piksel. Sama seperti pengujian pengenalan tekstur tunggal, tingkat pengenalan tekstur ganda
pun mengalami penurunan ketika pengujian variasi RST, kecuali untuk variasi skala. Variasi
RST akan membuat tekstur masukan berbeda dengan tekstur basis data. Hal ini membuat
ekstraksi ciri GLCM masukan berbeda dengan basis data sehingga mempengaruhi
perhitungan jarak Kosinus. Oleh karena itu, kesalahan pengenalan dapat terjadi karena jarak
Kosinus yang paling minimal tidak sesuai antara tekstur masukan dengan tekstur basis data.

Pengaruh Variasi Rotasi Terhadap


Pengenalan Tekstur Ganda
100%
90%
80%
70%
Persentase (%)

60%
50%
40%
30%
20%
10%
0%
0 20 60 120
Ganda 100% 100% 67% 67%
Sudut (°)

Gambar 4.17. Grafik Pengaruh Variasi Rotasi Terhadap Pengenalan Tekstur Ganda
Pengujian pengaruh variasi rotasi diambil dengan mengatur resolusi kamera 160 x 120
piksel serta jarak 20 cm dan posisi tekstur tanpa pergeseran. Pada pengujian ini terdapat 4
variasi rotasi, yaitu 0°, 20°, 60°, dan 120°. Data yang diperoleh dapat diolah menjadi
persentase tingkat pengenalan tekstur dengan menghitung nilai pengenalan dari 3 kali
pengulangan untuk 3 tekstur ganda. Satu variasi rotasi memiliki total data pengenalan variasi
rotasi sebanyak 9 data. Untuk mendapat persentase tiap sudut variasi rotasi, jumlah
pengujian berhasil akan dibagi dengan total data pengenalan variasi sudut dan dikali dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

57

100%. Grafik pengaruh variasi rotasi terhadap pengenalan ditunjukkan pada Gambar 4.17.
Pada grafik tersebut terlihat bahwa semakin besar variasi sudut rotasi akan semakin
mempengaruhi tingkat pengenalan. Hal ini dibuktikan dengan besarnya sudut rotasi 120°,
persentase pengenalan turun hingga 66,7%. Hal tersebut dikarenakan variasi rotasi membuat
citra masukan berbeda dengan citra yang telah disimpan dengan basis data. Nilai ekstraksi
ciri masukan dibandingkan dengan nilai ekstraksi ciri basis data menggunakan jarak Kosinus
dan didapat hasil pengenalan yang tidak sesuai dengan tekstur masukan. Dari data tersebut
dapat disimpulkan bahwa variasi rotasi cukup berpengaruh terhadap tingkat pengenalan baik
pada pengenalan tekstur tunggal.

Pengujian pengaruh variasi skala diambil dengan mengatur resolusi kamera 160 x 120
piksel serta sudut putar 0° dan posisi tekstur tanpa pergeseran. Pada pengujian ini terdapat 3
variasi jarak antara kamera dengan tekstur, yaitu 20 cm, 25 cm, dan 30 cm. Data yang
diperoleh dapat diolah menjadi persentase tingkat pengenalan tekstur dengan menghitung
nilai pengenalan dari 3 kali pengulangan untuk 3 tekstur ganda. Satu variasi rotasi memiliki
total data pengenalan variasi sudut sebanyak 9 data. Untuk mendapat persentase tiap jarak
variasi skala, jumlah pengujian berhasil akan dibagi dengan total data pengenalan variasi
skala dan dikali dengan 100%. Grafik pengaruh variasi skala terhadap pengenalan
ditunjukkan pada Gambar 4.18.

Pengaruh Variasi Skala Terhadap Pengenalan


Tekstur Ganda
100%
90%
80%
70%
Persentase (%)

60%
50%
40%
30%
20%
10%
0%
20 25 30
Ganda 100.0% 100.0% 100.0%
Jarak (cm)

Gambar 4.18. Grafik Pengaruh Variasi Skala Terhadap Pengenalan Tekstur Ganda
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

58

Pada grafik tersebut dapat dilihat bahwa tingkat pengenalan pada tiap variasi skala
mencapai 100%. Hal ini berarti variasi skala tidak mempengaruhi tingkat pengenalan. Hal
tersebut bisa terjadi karena tekstur gabah, jagung dan kacang pada tekstur ganda memiliki
perbedaan yang masih dapat ditoleransi dari variasi skala. Pada jarak 30 cm, ke-3 tekstur
ganda tersebut masih dapat dikenali dengan benar. Dari data tersebut, variasi skala tidak
mempengaruhi ke-3 tekstur ganda yang diuji.

Pengujian pengaruh variasi skala diambil dengan mengatur resolusi kamera 160 x 120
piksel serta jarak 20 cm dan sudut putar 0°. Pada pengujian ini terdapat 5 variasi translasi,
yaitu posisi center, geser 1 cm ke atas (U) , geser 1 cm ke kiri (L), geser 1 cm ke bawah (D)
dan geser 1 cm ke kanan (R). Data yang diperoleh dapat diolah menjadi persentase tingkat
pengenalan tekstur dengan menghitung nilai pengenalan dari 3 kali pengulangan untuk 3
tekstur ganda. Satu variasi translasi memiliki total data pengenalan variasi sudut sebanyak 9
data. Untuk mendapat persentase tiap variasi translasi, jumlah pengujian berhasil akan dibagi
dengan total data pengenalan variasi translasi dan dikali dengan 100%. Grafik pengaruh
variasi translasi terhadap pengenalan ditunjukkan pada Gambar 4.19.

Pengaruh Variasi Translasi Terhadap


Pengenalan Tekstur Ganda
100%
90%
80%
PERSENTASE (%)

70%
60%
50%
40%
30%
20%
10%
0%
Center U1 L1 D1 R1
Ganda 100.0% 100.0% 77.8% 100.0% 100.0%
Geser (cm)
Ket:
U 1 = Geser Atas 1 cm D 1 = Geser Bawah 1 cm
L 1 = Geser Kiri 1 cm R 1 = Geser Kanan 1 cm

Gambar 4.19. Grafik Pengaruh Variasi Translasi Terhadap Pengenalan Tekstur Ganda
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

59

Berdasarkan grafik, sama seperti pengaruh RST terhadap pengenalan tekstur tunggal,
variasi translasi mempengaruhi tingkat pengenalan tekstur. Beberapa pengujian variasi
translasi geser ke kiri 1 cm menurunkan tingkat pengenalan tekstur ganda. Tekstur ganda
yang diuji terpisah secara vertikal sehingga tidak mempengaruhi variasi translasi U1 dan D1.
Pada pengujian variasi translasi geser kiri 1 cm tekstur karung goni dan jagung, tekstur
jagung akan lebih banyak dibanding tekstur karung goni sehingga tekstur ganda tersebut
berbeda dengan basis data. Pada pengujian tekstur yang sama geser kanan 1 cm, tingkat
pengenalan mencapai 100% walaupun tekstur karung goni lebih banyak dibanding tekstur
jagung. Hal tersebut terjadi karena hasil ekstraksi ciri GLCM masukan berbeda dengan hasil
ekstraksi ciri GLCM basis data untuk tesktur ganda tertentu.

4.2. Beberapa Catatan


Pengujian pengenalan tekstur memiliki beberapa batasan penelitian yang
mempengaruhi tingkat pengenalan tekstur. Berikut adalah batasan penelitian ini.

1. Intensitas cahaya saat pengujian sangat berpengaruh terhadap tingkat pengenalan


tekstur. Oleh karena itu, penulis mengusahakan intensitas cahaya yang digunakan
untuk basis data sama dengan intensitas cahaya yang digunakan untuk pengujian
pengenalan tekstur dengan menambah 2 buah lampu LED.
2. Macam tekstur yang dikenali. Berdasarkan keteraturan polanya, tekstur dibagi menjadi
2 macam, yaitu tekstur teratur dan tekstur tidak teratur. Dengan menggunakan metode
GLCM, citra tekstur dihitung nilai statistik ketetanggaan pikselnya sehingga didapat
hasil ekstraksi ciri. Beberapa tekstur memiliki kemiripan setelah didapat hasil ekstraksi
cirinya. Hal tersebut mempengaruhi tingkat pengenalan tiap teksturnya.
3. Pengacakan tekstur. Tekstur yang tidak bersifat tetap, seperti tekstur gabah, jagung,
kacang, jerami, dan bebatuan memiliki kemungkinan pengacakan dalam pengujian.
Yang dimaksud pengacakan oleh penulis adalah merombak tekstur yang terdiri dari
bagian yang dapat diacak. Pengacakan ini tentu akan mempengaruhi hasil ekstraksi
ciri guna pengenalan tekstur.
4. Perbedaan warna dalam tekstur mempengaruhi tingkat pengenalan dalam pengujian
variasi RST. Hal tersebut dibuktikan pada tekstur kacang yang memiliki beberapa biji
kacang yang berwarna lebih gelap dibanding yang lain. Ketika pengujian pengenalan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

60

dilakukan, biji kacang yang berwarna lebih gelap tersebut berada di tempat yang
berbeda dari yang telah disimpan dalam basis data. Dengan demikian, pengenalan
tekstur mengalami hambatan dalam mengenali tekstur.
5. Citra tektur yang ditangkap kamera ArduCAM selalu memiliki sisi gelap pada bagian
kanan citra. Penulis sudah berusaha menambah intensitas cahaya pada bagian gelap ke
sisi bagian kanan kamera. Walaupun demikian, citra yang diambil masih memiliki sisi
gelap. Sisi gelap ditunjukkan pada Gambar 4.20. untuk citra grayscale tekstur jagung
dan tekstur kacang. Hal tersebut bisa terjadi akibat keterbatasan dari perangkat kamera
ArduCAM dalam menangkap citra.

(a) (b)
Gambar 4.20. Citra Grayscale Tekstur Jagung (a) dan Citra Grayscale Tekstur Kacang (b)
6. Pada saat pengujian, alat seringkali mengalami error saat pengambilan video
streaming (timeout dan cannot connect to the camera). Solusi yang dilakukan adalah
menekan tombol reset pada NodeMCU dan mencabut sumber tegangan dan
mengulang proses pengambilan video streaming.

4.3. Hasil Perbandingan Penelitian


Hasil penelitian ini dibandingkan dengan hasil penelitian sebelumnya oleh Adnyana.
Hasil perbandingan penelitian dapat dilihat pada Tabel 4.3. Pada Tabel 4.3, penelitian
sebelumnya menggunakan 10 tekstur tunggal sedangkan penelitian ini menambahkan 3
tekstur ganda. Penelitian ini menggunakan modul nirkabel sebagai pengembangan. Metode
yang digunakan berbeda dengan penelitian sebelumnya. Pada penelitian sebelumnya,
Adnyana menggunakan metode Statistical Texture Descriptor yang menghasilkan 6 nilai
fitur tiap teksturnya. Penelitian ini menggunakan metode Gray Level Co-occurrence Matrix
yang menghasilkan 20 nilai fitur tiap teksturnya. Penelitian ini memperbaiki tingkat
pengenalan variasi rotasi dan variasi translasi. Untuk variasi skala, tingkat pengenalan
penelitian sebelumnya masih lebih baik dari tingkat pengenalan penelitian ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

61

Tabel 4.3. Hasil Perbandingan Penelitian

Penelitian sebelumnya [3] Penelitian ini


Pengujian mengenali 10 tekstur tunggal Pengujian mengenali 10 tekstur tunggal
dan 3 tekstur ganda

Tidak menggunakan modul nirkabel Menggunakan modul nirkabel

Menggunakan metode Statistical Menggunakan metode Gray Level Co-


Texture Descriptor occurrence Matrix
Menghasilkan 6 nilai fitur tiap Menghasilkan 20 nilai fitur tiap
teksturnya teksturnya
Tingkat pengenalan variasi rotasi (0°, Tingkat pengenalan variasi rotasi (0°,
20°, 60° dan 120°) : 78,36% 20°, 60° dan 120°) : 85,83%
Tingkat pengenalan variasi skala (jarak Tingkat pengenalan variasi skala (jarak
kamera 25 cm, 30 cm, 35 cm) : 78% kamera 20 cm, 25 cm, 30 cm) : 77,77%
Tingkat pengenalan variasi translasi (1 Tingkat pengenalan variasi translasi (1
cm atas, bawah, kiri dan kanan) : cm atas, bawah, kiri dan kanan) :
87,96% 97,34%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan
Berdasarkan hasil percobaan dan pengujian sistem pengenalan tekstur menggunakan
metode Gray Level Co-occurrence Matrix dapat disimpulkan bahwa:

1. Berhasil menghasilkan suatu alat computer vision yang mampu mengenali 10 tekstur
tunggal menggunakan metode Gray Level Co-occurrence Matrix dengan tingkat
pengenalan tanpa pengaruh RST mencapai 100%. Basis data yang digunakan adalah
10 citra tekstur pada posisi awal (tanpa pengaruh RST).
2. Penelitian pengujian variasi RST memperbaiki tingkat pengenalan variasi rotasi dan
variasi translasi dari penelitian sebelumnya. Tingkat pengenalan variasi rotasi
mencapai 85,83%. Tingkat pengenalan variasi skala mencapai 77,77%. Tingkat
pengenalan variasi translasi mencapai 97,34%.
3. Modul nirkabel dapat diterapkan untuk pengembangan alat ini dengan jarak antara
perangkat pengirim (NodeMCU) dan perangkat penerima (laptop) mencapai 80 m.

5.2. Saran
Saran yang diberikan untuk pengembangan sistem pengenalan tekstur adalah:
1. Pengembangan dapat dilakukan dengan menambahkan basis data untuk beberapa
posisi tiap teksturnya sehingga hasil ekstraksi ciri yang disimpan akan lebih banyak
dan mampu meningkatkan tingkat pengenalan (recognition rate).
2. Pengembangan sistem pengenalan menggunakan metode ekstraksi ciri berbeda dengan
harapan tingkat pengenalan dapat mendekati 100% pada pengujian variasi RST.

62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR PUSTAKA

[1] Bhosle, V.V., Pawar, V.P., 2013, Texture Segmentation: Different Methods,
International Journal of Soft Computing and Engineering (IJSCE), vol. 3, issue 5, hal
69-74.
[2] Szeliski, R., 2010, Computer Vision: Algorithms and Applications, 1st Edition,
Springer, -.
[3] Adnyana, W.P., 2018, Pengenalan Tekstur dengan Statistical Texture Descriptor,
Tugas Akhir, Jurusan Teknik Elektro, FST, Universitas Sanata Dharma, Yogyakarta.
[4] Haralick, R.M., 1979, Statistical and Structural Approaches to Texture, Proceedings
of the IEEE, vol. 67, no. 5, hal 786-804.
[5] Raheja, J.L., Kumar, S., Chaudhary, A., 2013, Fabric defect detection based on GLCM
and Gabor filter: A comparison, Optik, vol. 124, hal 6469-6474.
[6] Honeycutt, C.E., Plotnick, R., 2008, Image analysis techniques and gray-level co-
occurrence matrices (GLCM) for calculating bioturbation indices and characterizing
biogenic sedimentary structures, Computers & Geosciences, vol. 34, hal 1461-1472.
[7] Goodman, P., 2019, Wireless Network vs Wired Network: Advantages and
Disadvantages | TurboFuture, https://turbofuture.com/computers/Wireless-Network-
vs-Wired-Network-Advantages-and-Disadvantages, diakses 20 Maret 2019.
[8] Kadir, A., Susanto, A., 2013, Teori dan Aplikasi Pengolahan Citra, Penerbit Andi,
Yogyakarta.
[9] Martinez, J.C., 2009, Texture Measuring by Means of Perceptually-Based Fineness
Functions, Iberian Conference on Pattern Recognition and Image Analysis, LNCS
5524, hal 265-272.
[10] -----, 2015, ArduCAM-M-2MP Camera Shield 2MP SPI Camera User Guide Rev 1.1,
ArduCAM
[11] -----, -----, The Internet of Things with ESP8266, http://esp8266.net, diakses 6
Desember 2018.
[12] -----, -----, GitHub – NodeMCU/NodeMCU-devkit-v1.0,
https://github.com/NodeMCU/NodeMCU-devkit-v1.0 , diakses 15 Desember 2018.
[13] -----, 2018, ESP8266EX Datasheet, Espressif Systems
[14] -----, 2015, ESP-12E WiFi Module Version 1.0, AI-Thinker

63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

64

[15] Marques, O., 2011, Practical Image and Video Processing Using MATLAB, John
Wiley & Sons, New Jersey.
[16] Newsam, S.D., Kammath, C., 2004, Retrieval Using Texture Features in High
Resolution Multi-spectral Satellite Imagery, Proceedings of SPIE, vol. 5433, hal 21-
32
[17] Cha, Sung-Hyuk, 2007, Comprehensive Survey on Distance/Similarity Measures
between Probability Density Functions, International Journal of Mathematical Models
and Methods in Applied Sciences, vol. 1, issue 4, hal 300-307.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-1

LAMPIRAN 1
IMPLEMENTASI SISTEM PENGENALAN

A. Implementasi Perangkat Lunak


Implementasi perangkat lunak sistem pengenalan mengacu pada Gambar 3.11, yaitu
Diagram Alir Sistem Pengenalan Tekstur GUI. Tampilan GUI Pengenalan Tekstur pada
Gambar L-1 dibuat berdasarkan sketsa perancangan GUI pada Gambar 3.12 dengan
penyesuaian. Penambahan tombol dan tabel disesuaikan dengan permasalahan yang
ditemukan penulis mengenai program pengenalan tekstur.

Gambar L-1. Tampilan GUI Pengenalan Tekstur


Tombol S dan D digunakan untuk memilih jenis tekstur yang akan dikenali. Tombol
S untuk jenis tekstur tunggal dan tombol D untuk jenis tekstur ganda. Tombol CAMERA
ON digunakan untuk menyalakan kamera ArduCAM dan menampilkan video streaming
pada GUI. Tombol AMBIL CITRA digunakan untuk mengambil citra tekstur dari video
streaming. Setelah citra tekstur diambil, pada proses tombol yang sama, citra tersebut
dikonversi menjadi citra grayscale. Hasil ekstraksi ciri GLCM didapat dari citra grayscale
dan ditampilkan pada GUI dalam bentuk tabel. Fungsi jarak Kosinus digunakan untuk
menghitung jarak hasil ekstraksi ciri GLCM masukan dengan basis data dan ditampilkan
pada GUI dalam bentuk tabel. Hasil keluaran pengenalan berupa teks ditentukan dari nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-2

jarak Kosinus yang paling minimal dan ditampilkan pada GUI. Tombol RESET digunakan
untuk menghapus data dan mengulang proses pengenalan tekstur dari awal.

B. Implementasi Perangkat Keras

Implementasi perangkat keras ditunjukkan pada Gambar L-2. Kondisi ini dibuat
berdasarkan perancangan hardware pada Gambar 3.13. Penyangga serta alas dibuat dengan
menyesuaikan variasi RST yang akan diuji. Pada penyangga terdapat tanda jarak yang
digunakan untuk variasi skala. Pada alas terdapat tanda posisi tekstur untuk variasi rotasi
dan translasi. Penambahan lampu penerangan pada sisi kanan dan kiri kamera dilakukan
untuk meminimalisasi pengaruh cahaya luar terhadap proses pengenalan.

ArduCAM+
NodeMCU Lampu
Penerangan

Penyangga

Tekstur

Powerbank Alas Laptop


(Catu daya 5V)

Gambar L-2. Kondisi Pengambilan dan Pengenalan Tekstur


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-3

LAMPIRAN 2
ALUR PROSES PENGENALAN TEKSTUR DENGAN METODE
GLCM

Mulai

Masukan:
Citra RGB

Preprocessing (Tekstur Jagung)


Konversi citra RGB menjadi
citra grayscale

Keluaran:
Citra grayscale

Ekstraksi ciri
Gray Level Co-occurrence
Matrix

Keluaran:
Hasil Ekstraksi Ciri
GLCM

A
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-4

Proses Perhitungan Jarak


Kosinus

Keluaran:
Hasil Pengenalan
berupa Teks

Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-5

LAMPIRAN 3
LISTING PROGRAM

Listing Program GUI Pengenalan Tekstur (MATLAB)


function varargout = ipcamglcm(varargin)
% IPCAMGLCM MATLAB code for ipcamglcm.fig
% IPCAMGLCM, by itself, creates a new IPCAMGLCM or raises the
existing
% singleton*.
%
% H = IPCAMGLCM returns the handle to a new IPCAMGLCM or the
handle to
% the existing singleton*.
%
% IPCAMGLCM('CALLBACK',hObject,eventData,handles,...) calls
the local
% function named CALLBACK in IPCAMGLCM.M with the given input
arguments.
%
% IPCAMGLCM('Property','Value',...) creates a new IPCAMGLCM
or raises the
% existing singleton*. Starting from the left, property
value pairs are
% applied to the GUI before ipcamglcm_OpeningFcn gets called.
An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to ipcamglcm_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 ipcamglcm

% Last Modified by GUIDE v2.5 31-May-2019 13:36:00

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @ipcamglcm_OpeningFcn, ...
'gui_OutputFcn', @ipcamglcm_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-6

if nargin && ischar(varargin{1})


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 ipcamglcm is made visible.


function ipcamglcm_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 ipcamglcm (see VARARGIN)
global s y z jar jenis
% Choose default command line output for ipcamglcm
handles.output = hObject;
axes(handles.axes1)
plot(0)
axes(handles.axes2)
plot(0)
s=[]; set(handles.tabel_glcm,'Data',s)
y=''; set(handles.teks,'string',y);
jar=[]; set(handles.tabel_jarak,'Data',jar)
z=true;
jenis=1;
% Update handles structure
guidata(hObject, handles);

% UIWAIT makes ipcamglcm wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = ipcamglcm_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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-7

% --- Executes on button press in single.


function single_Callback(hObject, eventdata, handles)
% hObject handle to single (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global jenis
jenis=1;

% --- Executes on button press in double.


function double_Callback(hObject, eventdata, handles)
% hObject handle to double (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global jenis
jenis=2;

% --- Executes on button press in camera_on.


function camera_on_Callback(hObject, eventdata, handles)
% hObject handle to camera_on (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z ss gray jenis
z=true;
strm=ipcam('http://192.168.4.1/stream');
axes(handles.axes1);
axis off;
while z==true
ss=snapshot(strm);
imshow(ss);
if z==false
closePreview(strm);
gray=rgb2gray(ss);
gray=imadjust(gray);
axes(handles.axes2);
imshow(gray);
axis off;
%UITABLE
[tc,k]=tciri(gray)
set(handles.tabel_glcm,'Data',tc)

load dbxicglcm
if jenis==1
j1=double(dist(k,dbicglcm(:,1)));
j2=double(dist(k,dbicglcm(:,2)));
j3=double(dist(k,dbicglcm(:,3)));
j4=double(dist(k,dbicglcm(:,4)));
j5=double(dist(k,dbicglcm(:,5)));
j6=double(dist(k,dbicglcm(:,6)));
j7=double(dist(k,dbicglcm(:,7)));
j8=double(dist(k,dbicglcm(:,8)));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-8

j9=double(dist(k,dbicglcm(:,9)));
j10=double(dist(k,dbicglcm(:,10)));
jar=[j1 j2 j3 j4 j5 j6 j7 j8 j9 j10];
jart={j1 j2 j3 j4 j5 j6 j7 j8 j9 j10 '-' '-' '-'};
dbteks={'GABAH','JAGUNG','KACANG','ANYAMAN BAMBU',...
'KARUNG
GONI','KESET','JERAMI','HANDUK','RUMPUT',...
'BEBATUAN'};
elseif jenis == 2
j11=double(dist(k,dbicglcm(:,11)));
j12=double(dist(k,dbicglcm(:,12)));
j13=double(dist(k,dbicglcm(:,13)));
jar=[j11 j12 j13];
jart={'-' '-' '-' '-' '-' '-' '-' '-' '-' '-' j11 j12
j13};
dbteks={'GONI+GABAH','GONI+JAGUNG','GONI+KACANG'};
end
set(handles.tabel_jarak,'Data',jart)
lokmin=find(jar==min(jar));
y=dbteks{lokmin};
set(handles.teks,'string',y);
break;
end
end

% --- Executes on button press in ambil_citra.


function ambil_citra_Callback(hObject, eventdata, handles)
% hObject handle to ambil_citra (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z
z=false;

% --- Executes on button press in reset.


function reset_Callback(hObject, eventdata, handles)
% hObject handle to reset (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
axes(handles.axes1)
plot(0)
axes(handles.axes2)
plot(0)
s=[];
set(handles.tabel_glcm,'Data',s)
set(handles.tabel_jarak,'Data',s)
y=''; set(handles.teks,'string',y)

function [y,k]=tciri(x)
[G0,G45,G90,G135]=glcm256(x);
t1=G0.asm;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-9

t2=G0.kontras;
t3=G0.idm;
t4=G0.entropi;
t5=G0.korelasi;
t6=G45.asm;
t7=G45.kontras;
t8=G45.idm;
t9=G45.entropi;
t10=G45.korelasi;
t11=G90.asm;
t12=G90.kontras;
t13=G90.idm;
t14=G90.entropi;
t15=G90.korelasi;
t16=G135.asm;
t17=G135.kontras;
t18=G135.idm;
t19=G135.entropi;
t20=G135.korelasi;
y=[t1 t2 t3 t4 t5; t6 t7 t8 t9 t10;...
t11 t12 t13 t14 t15; t16 t17 t18 t19 t20];
k=[t1 t2 t3 t4 t5 t6 t7 t8 t9 t10...
t11 t12 t13 t14 t15 t16 t17 t18 t19 t20]';

%=======================
%Jarak Kosinus
function z=dist(x,y)
z=1-(sum(x.*y)/(sqrt(sum(x.^2))*sqrt(sum(y.^2))));
%=======================

% --- Executes during object creation, after setting all


properties.
function tabel_glcm_CreateFcn(hObject, eventdata, handles)
% hObject handle to tabel_glcm (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles empty - handles not created until after all
CreateFcns called

Listing Program GUI Basis Data (MATLAB)


function varargout = dbipcamglcm(varargin)
% DBIPCAMGLCM MATLAB code for dbipcamglcm.fig
% DBIPCAMGLCM, by itself, creates a new DBIPCAMGLCM or raises
the existing
% singleton*.
%
% H = DBIPCAMGLCM returns the handle to a new DBIPCAMGLCM or
the handle to
% the existing singleton*.
%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-10

% DBIPCAMGLCM('CALLBACK',hObject,eventData,handles,...) calls
the local
% function named CALLBACK in DBIPCAMGLCM.M with the given
input arguments.
%
% DBIPCAMGLCM('Property','Value',...) creates a new
DBIPCAMGLCM or raises the
% existing singleton*. Starting from the left, property
value pairs are
% applied to the GUI before dbipcamglcm_OpeningFcn gets
called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to dbipcamglcm_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 dbipcamglcm

% Last Modified by GUIDE v2.5 27-May-2019 16:00:49

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @dbipcamglcm_OpeningFcn, ...
'gui_OutputFcn', @dbipcamglcm_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before dbipcamglcm is made visible.


function dbipcamglcm_OpeningFcn(hObject, eventdata, handles,
varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-11

% 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 dbipcamglcm (see VARARGIN)

% Choose default command line output for dbipcamglcm


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes dbipcamglcm wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = dbipcamglcm_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 camera_on_Callback(hObject, eventdata, handles)
% hObject handle to camera_on (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z ss gray tk dbtk
global tk1 tk2 tk3 tk4 tk5 tk6 tk7 tk8 tk9 tk10 tk11 tk12 tk13
global img1 img2 img3 img4 img5 img6 img7 img8 img9 img10 img11
img12 img13
z=true;
tk=0;
strm=ipcam('http://192.168.4.1/stream');
axes(handles.axes1)
while z==true
ss=snapshot(strm);
imshow(ss);
if z==false
closePreview(strm);
gray=rgb2gray(ss);
gray=imadjust(gray);
axes(handles.axes2)
imshow(gray);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-12

if tk == 1
img1=gray;
tk1=tciri(gray)
elseif tk== 2
img2=gray;
tk2=tciri(gray)
elseif tk==3;
img3=gray;
tk3=tciri(gray)
elseif tk==4;
img4=gray;
tk4=tciri(gray)
elseif tk==5;
img5=gray;
tk5=tciri(gray)
elseif tk==6;
img6=gray;
tk6=tciri(gray)
elseif tk==7;
img7=gray;
tk7=tciri(gray)
elseif tk==8;
img8=gray;
tk8=tciri(gray)
elseif tk==9;
img9=gray;
tk9=tciri(gray)
elseif tk==10;
img10=gray;
tk10=tciri(gray)
elseif tk==11;
img11=gray;
tk11=tciri(gray)
elseif tk==12;
img12=gray;
tk12=tciri(gray)
elseif tk==13;
img13=gray;
tk13=tciri(gray)
end
dbtk=[tk1 tk2 tk3 tk4 tk5 tk6 tk7 tk8 tk9 tk10 tk11 tk12
tk13];
break;
end
end

% --- Executes on button press in gabah_1.


function gabah_1_Callback(hObject, eventdata, handles)
% hObject handle to gabah_1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img1
z=false;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-13

tk=1;
axes(handles.axes2)
imshow(img1)

% --- Executes on button press in jagung_2.


function jagung_2_Callback(hObject, eventdata, handles)
% hObject handle to jagung_2 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img2
z=false;
tk=2;
axes(handles.axes2)
imshow(img2)

% --- Executes on button press in kacang_3.


function kacang_3_Callback(hObject, eventdata, handles)
% hObject handle to kacang_3 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img3
z=false;
tk=3;
axes(handles.axes2)
imshow(img3)

% --- Executes on button press in anyaman_4.


function anyaman_4_Callback(hObject, eventdata, handles)
% hObject handle to anyaman_4 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img4
z=false;
tk=4;
axes(handles.axes2)
imshow(img4)

% --- Executes on button press in goni_5.


function goni_5_Callback(hObject, eventdata, handles)
% hObject handle to goni_5 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img5
z=false;
tk=5;
axes(handles.axes2)
imshow(img5)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-14

% --- Executes on button press in keset_6.


function keset_6_Callback(hObject, eventdata, handles)
% hObject handle to keset_6 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img6
z=false;
tk=6;
axes(handles.axes2)
imshow(img6)

% --- Executes on button press in jerami_7.


function jerami_7_Callback(hObject, eventdata, handles)
% hObject handle to jerami_7 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img7
z=false;
tk=7;
axes(handles.axes2)
imshow(img7)

% --- Executes on button press in handuk_8.


function handuk_8_Callback(hObject, eventdata, handles)
% hObject handle to handuk_8 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img8
z=false;
tk=8;
axes(handles.axes2)
imshow(img8)

% --- Executes on button press in rumput_9.


function rumput_9_Callback(hObject, eventdata, handles)
% hObject handle to rumput_9 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img9
z=false;
tk=9;
axes(handles.axes2)
imshow(img9)

% --- Executes on button press in batu_10.


function batu_10_Callback(hObject, eventdata, handles)
% hObject handle to batu_10 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-15

% handles structure with handles and user data (see GUIDATA)


global z tk img10
z=false;
tk=10;
axes(handles.axes2)
imshow(img10)

% --- Executes on button press in goni_gabah_11.


function goni_gabah_11_Callback(hObject, eventdata, handles)
% hObject handle to goni_gabah_11 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img11
z=false;
tk=11;
axes(handles.axes2)
imshow(img11)

% --- Executes on button press in goni_jagung_12.


function goni_jagung_12_Callback(hObject, eventdata, handles)
% hObject handle to goni_jagung_12 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img12
z=false;
tk=12;
axes(handles.axes2)
imshow(img12)

% --- Executes on button press in goni_kacang_13.


function goni_kacang_13_Callback(hObject, eventdata, handles)
% hObject handle to goni_kacang_13 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global z tk img13
z=false;
tk=13;
axes(handles.axes2)
imshow(img13)

% --- Executes on button press in save_db.


function save_db_Callback(hObject, eventdata, handles)
% hObject handle to save_db (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global dbtk
dbicglcm=dbtk;
save dbxicglcm dbicglcm
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-16

dbteks={'GABAH','JAGUNG','KACANG','ANYAMAN BAMBU','KARUNG
GONI',...
'KESET','JERAMI','HANDUK','RUMPUT','BEBATUAN','GONI+GABAH',...
'GONI+JAGUNG','GONI+KACANG'};
ciriteks={'asm0','kontras0','idm0','entropi0','korelasi0',...
'asm45','kontras45','idm45','entropi45','korelasi45',...
'asm90','kontras90','idm90','entropi90','korelasi90',...
'asm135','kontras135','idm135','entropi135','korelasi135'};
figure(1);
uitable('Data',dbtk,'ColumnName',dbteks,'RowName',ciriteks,...
'Units','Normalized','Position',[0,0,1,1])

% --- Executes on button press in reset.


function reset_Callback(hObject, eventdata, handles)
% hObject handle to reset (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
global ss gray dbtk tk1 tk2 tk3 tk4 tk5 tk6 tk7 tk8 tk9 tk10 tk11
tk12 tk13
global img1 img2 img3 img4 img5 img6 img7 img8 img9 img10 img11
img12 img13
ss=[];
gray=[];
axes(handles.axes1)
plot(0);
axes(handles.axes2)
plot(0);
tk1=[];tk2=[];tk3=[];tk4=[];tk5=[];tk6=[];
tk7=[];tk8=[];tk9=[];tk10=[];tk11=[];tk12=[];tk13=[];
tk1(20,1)=0;tk2(20,1)=0;tk3(20,1)=0;tk4(20,1)=0;tk5(20,1)=0;
tk6(20,1)=0;tk7(20,1)=0;tk8(20,1)=0;tk9(20,1)=0;tk10(20,1)=0;
tk11(20,1)=0;tk12(20,1)=0;tk13(20,1)=0;
img1=[];img2=[];img3=[];img4=[];img5=[];img6=[];
img7=[];img8=[];img9=[];img10=[];img11=[];img12=[];img13=[];
dbtk=[tk1 tk2 tk3 tk4 tk5 tk6 tk7 tk8 tk9 tk10 tk11 tk12 tk13]

function y=tciri(x)
[G0,G45,G90,G135]=glcm256(x);
t1=G0.asm;
t2=G0.kontras;
t3=G0.idm;
t4=G0.entropi;
t5=G0.korelasi;
t6=G45.asm;
t7=G45.kontras;
t8=G45.idm;
t9=G45.entropi;
t10=G45.korelasi;
t11=G90.asm;
t12=G90.kontras;
t13=G90.idm;
t14=G90.entropi;
t15=G90.korelasi;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-17

t16=G135.asm;
t17=G135.kontras;
t18=G135.idm;
t19=G135.entropi;
t20=G135.korelasi;
y=[t1 t2 t3 t4 t5 t6 t7 t8 t9 t10...
t11 t12 t13 t14 t15 t16 t17 t18 t19 t20]';

Listing Program Gray Level Co-occurrence Matrix (MATLAB)


function [g0, g45, g90, g135] = glcm256(F)
[baris,kolom]=size(F);
%--INISIALISASI MATRIX GLCM DAN TOTAL PIXEL
glcm0=zeros(256,256); %4 berarti jumlah elemen: 0,1,2 dan 3
glcm45=zeros(256,256); %untuk grayscale jumlah elemen 256: 0-255
glcm90=zeros(256,256);
glcm135=zeros(256,256);
total_pixel0=0;
total_pixel45=0;
total_pixel90=0;
total_pixel135=0;
% -- Sudut 0
for y=1: baris
for x=1: kolom-1 %kolom-1 utk sudut 0(relasi horizontal ke
kanan)
a = F(y, x);
b = F(y, x+1);
glcm0(a+1, b+1) = glcm0(a+1, b+1) + 1;
total_pixel0 = total_pixel0 + 1;
end
end
% -- Sudut 45
for y=2: baris %mulai dari 2 utk sudut 45(relasi vertikal ke
atas)
for x=1: kolom-1 %kolom-1 utk sudut 45(relasi horizontal ke
kanan)
a = F(y, x);
b = F(y-1, x+1);
glcm45(a+1, b+1) = glcm45(a+1, b+1) + 1;
total_pixel45 = total_pixel45 + 1;
end
end
% -- Sudut 90
for y=2: baris %mulai dari 2 utk sudut 45(relasi vertikal ke
atas)
for x=1: kolom %kolom-1 utk sudut 45(relasi horizontal ke
kanan)
a = F(y, x);
b = F(y-1, x);
glcm90(a+1, b+1) = glcm90(a+1, b+1) + 1;
total_pixel90 = total_pixel90 + 1;
end
end
% -- Sudut 135
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-18

for y=2: baris %mulai dari 2 utk sudut 45(relasi vertikal ke


atas)
for x=2: kolom %kolom-1 utk sudut 45(relasi horizontal ke
kanan)
a = F(y, x);
b = F(y-1, x-1);
glcm135(a+1, b+1) = glcm135(a+1, b+1) + 1;
total_pixel135 = total_pixel135 + 1;
end
end

%--------HITUNGAN BERDASARKAN RUMUS


%====normalisasi antara 0 dan 1=====
glcm0norm=glcm0+glcm0';%GLCM Normalisasi
glcm45norm=glcm45+glcm45';%GLCM Normalisasi
glcm90norm=glcm90+glcm90';%GLCM Normalisasi
glcm135norm=glcm135+glcm135';%GLCM Normalisasi
%===================================
glcm0norm=glcm0norm/(total_pixel0.*2);
glcm45norm=glcm45norm/(total_pixel45.*2);
glcm90norm=glcm90norm/(total_pixel90.*2);
glcm135norm=glcm135norm/(total_pixel135.*2);
%===================================

%___HITUNG ASM
asm0 = 0.0;
asm45 = 0.0;
asm90 = 0.0;
asm135 = 0.0;
for a=0 : 255
for b=0 : 255
asm0 = asm0 + (glcm0norm(a+1, b+1).^2);
asm45 = asm45 + (glcm45norm(a+1, b+1).^2);
asm90 = asm90 + (glcm90norm(a+1, b+1).^2);
asm135 = asm135 + (glcm135norm(a+1, b+1).^2);
end
end

%____HITUNG KONTRAS
kontras0 = 0.0;
kontras45 = 0.0;
kontras90 = 0.0;
kontras135 = 0.0;
for a=0 : 255
for b=0 : 255
kontras0 = kontras0 + glcm0norm(a+1,b+1)*(a-b).^2;
kontras45 = kontras45 + glcm45norm(a+1,b+1)*(a-b).^2;
kontras90 = kontras90 + glcm90norm(a+1,b+1)*(a-b).^2;
kontras135 = kontras135 + glcm135norm(a+1,b+1)*(a-b).^2;
end
end

%____HITUNG IDM
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-19

idm0 = 0.0;
idm45 = 0.0;
idm90 = 0.0;
idm135 = 0.0;
for a = 0 : 255
for b = 0 : 255
idm0 = idm0 + (glcm0norm(a+1, b+1) / (1+(a-b).^2));
idm45 = idm45 + (glcm45norm(a+1, b+1) / (1+(a-b).^2));
idm90 = idm90 + (glcm90norm(a+1, b+1) / (1+(a-b).^2));
idm135 = idm135 + (glcm135norm(a+1, b+1) / (1+(a-b).^2));
end
end

%_____HITUNG ENTROPI
entropi0=0.0;
entropi45=0.0;
entropi90=0.0;
entropi135=0.0;
for a = 0 : 255
for b = 0 : 255
if(glcm0norm(a+1,b+1) ~= 0)
entropi0 = entropi0 - (glcm0norm(a+1,b+1)) *
(log10(glcm0norm(a+1,b+1)));
end
if(glcm45norm(a+1,b+1) ~= 0)
entropi45 = entropi45 - (glcm45norm(a+1,b+1)) *
(log10(glcm45norm(a+1,b+1)));
end
if(glcm90norm(a+1,b+1) ~= 0)
entropi90 = entropi90 - (glcm90norm(a+1,b+1)) *
(log10(glcm90norm(a+1,b+1)));
end
if(glcm135norm(a+1,b+1) ~= 0)
entropi135 = entropi135 - (glcm135norm(a+1,b+1)) *
(log10(glcm135norm(a+1,b+1)));
end
end
end

%________HITUNG KOVARIANS
korelasi0 = 0.0;
px0 = 0;
py0 = 0;
stdevx0 = 0.0;
stdevy0 = 0.0;

korelasi45 = 0.0;
px45 = 0;
py45 = 0;
stdevx45 = 0.0;
stdevy45 = 0.0;

korelasi90 = 0.0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-20

px90 = 0;
py90 = 0;
stdevx90 = 0.0;
stdevy90 = 0.0;

korelasi135 = 0.0;
px135 = 0;
py135 = 0;
stdevx135 = 0.0;
stdevy135 = 0.0;
% Hitung kovarians
for a=0 : 255
for b=0 : 255
px0 = px0 + (a+1) * glcm0norm (a+1, b+1);
py0 = py0 + (b+1) * glcm0norm (a+1, b+1);
px45 = px45 + (a+1) * glcm45norm (a+1, b+1);
py45 = py45 + (b+1) * glcm45norm (a+1, b+1);
px90 = px90 + (a+1) * glcm90norm (a+1, b+1);
py90 = py90 + (b+1) * glcm90norm (a+1, b+1);
px135 = px135 + (a+1) * glcm135norm (a+1, b+1);
py135 = py135 + (b+1) * glcm135norm (a+1, b+1);
end
end
% Hitung deviasi standar
for a=0 : 255
for b=0 : 255
stdevx0 = stdevx0 + (a+1-px0).^2 * glcm0norm(a+1, b+1);
stdevy0 = stdevy0 + (b+1-py0).^2 * glcm0norm(a+1, b+1);
stdevx45 = stdevx45 + (a+1-px45).^2 * glcm45norm(a+1,
b+1);
stdevy45 = stdevy45 + (b+1-py45).^2 * glcm45norm(a+1,
b+1);
stdevx90 = stdevx90 + (a+1-px90).^2 * glcm90norm(a+1,
b+1);
stdevy90 = stdevy90 + (b+1-py90).^2 * glcm90norm(a+1,
b+1);
stdevx135 = stdevx135 + (a+1-px135).^2 * glcm135norm(a+1,
b+1);
stdevy135 = stdevy135 + (b+1-py135).^2 * glcm135norm(a+1,
b+1);
end
end

% Hitung korelasi
for a = 0 : 255
for b = 0 : 255
korelasi0 = korelasi0 + ((a+1-px0)*(b+1-py0)* ...
glcm0norm (a+1, b+1)/(stdevx0*stdevy0));
korelasi45 = korelasi45 + ((a+1-px45)*(b+1-py45)* ...
glcm45norm (a+1, b+1)/(stdevx45 * stdevy45));
korelasi90 = korelasi90 + ((a+1-px90)*(b+1-py90)* ...
glcm90norm (a+1, b+1)/(stdevx90 * stdevy90));
korelasi135 = korelasi135 + ((a+1-px135)*(b+1-py135)* ...
glcm135norm (a+1, b+1)/(stdevx135 * stdevy135));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-21

end
end

g0.asm = asm0;
g0.kontras = kontras0;
g0.idm = idm0;
g0.entropi = entropi0;
g0.korelasi = korelasi0;
g45.asm = asm45;
g45.kontras = kontras45;
g45.idm = idm45;
g45.entropi = entropi45;
g45.korelasi = korelasi45;
g90.asm = asm90;
g90.kontras = kontras90;
g90.idm = idm90;
g90.entropi = entropi90;
g90.korelasi = korelasi90;
g135.asm = asm135;
g135.kontras = kontras135;
g135.idm = idm135;
g135.entropi = entropi135;
g135.korelasi = korelasi135;

Listing Program Fungsi Jarak Kosinus (MATLAB)


function z=dist(x,y)
z=1-(sum(x.*y)/(sqrt(sum(x.^2))*sqrt(sum(y.^2))));

Listing Program NodeMCU (Arduino IDE)


// The capture and streaming features can be reached directly via
the browser by using the format:
// http://IPaddress/stream - for streaming video
//
// Wiring diagram to connect ArduCAM to ESP8266-12E
// ArduCAM mini -> ESP8266-12E
// CS -> D0
// MOSI -> D7
// MISC -> D6
// SCK -> D5
// GND -> GND
// VCC -> 3V3
// SDA -> D2
// SCL -> D1
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <Wire.h>
#include <ArduCAM.h>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-22

#include <SPI.h>
#include "memorysaver.h"
#if !(defined ESP8266 )
#error Please select the ArduCAM ESP8266 UNO board in the
Tools/Board
#endif

//This demo can only work on OV2640_MINI_2MP or ARDUCAM_SHIELD_V2


platform.
#if !(defined (OV2640_MINI_2MP)||(defined (ARDUCAM_SHIELD_V2) &&
defined (OV2640_CAM)))
#error Please select the hardware platform and camera module in
the ../libraries/ArduCAM/memorysaver.h file
#endif

// set GPIO16 as the slave select :


const int CS = 16;

// if the video is chopped or distored, try using a lower value


for the buffer
// lower values will have fewer frames per second while streaming
static const size_t bufferSize = 4096; // 4096; //2048; //1024;

static const int fileSpaceOffset = 700000;

//AP mode configuration


const char *AP_ssid = "NodeMCU";
const char *AP_password = "APpassword";

static IPAddress ip(192, 168, 1, 203); // static IP used for


browser access: http://IPaddress
static IPAddress gateway(192, 168, 1, 1);
static IPAddress subnet(255, 255, 255, 0);

int resolution = 0;
// resolutions:
// 0 = 160x120
// 1 = 176x144
// 2 = 320x240
// 3 = 352x288
// 4 = 640x480
// 5 = 800x600
// 6 = 1024x768
// 7 = 1280x1024
// 8 = 1600x1200

ESP8266WebServer server(80);

ArduCAM myCAM(OV2640, CS);

////////////////////////////////////
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-23

// capture initialization //
////////////////////////////////////
void start_capture() {
myCAM.clear_fifo_flag();
myCAM.start_capture();
}

String getDropDown()
{
String webString = "";
webString += "<select name=\"rez\">\n";
webString += " <option value=\"0\" ";
if (resolution == 0)
webString += " selected=\"seleted\" ";
webString += ">160x120</option>\n";

webString += " <option value=\"1\" ";


if (resolution == 1)
webString += " selected=\"seleted\" ";
webString += ">176x144</option>\n";

webString += " <option value=\"2\" ";


if (resolution == 2)
webString += " selected=\"seleted\" ";
webString += ">320x240</option>\n";

webString += " <option value=\"3\" ";


if (resolution == 3)
webString += " selected=\"seleted\" ";
webString += ">352x288</option>\n";

webString += " <option value=\"4\" ";


if (resolution == 4)
webString += " selected=\"seleted\" ";
webString += ">640x480</option>\n";

webString += " <option value=\"5\" ";


if (resolution == 5)
webString += " selected=\"seleted\" ";
webString += ">800x600</option>\n";

webString += " <option value=\"6\" ";


if (resolution == 6)
webString += " selected=\"seleted\" ";
webString += ">1024x768</option>\n";

webString += " <option value=\"7\" ";


if (resolution == 7)
webString += " selected=\"seleted\" ";
webString += ">1280x1024</option>\n";
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-24

webString += " <option value=\"8\" ";


if (resolution == 8)
webString += " selected=\"seleted\" ";
webString += ">1600x1200</option>\n";

webString += " </select>\n";

return webString;
}

/////////////////////////////////////////////
// capture still image and send to client //
/////////////////////////////////////////////
void camCapture(ArduCAM myCAM) {

WiFiClient client = server.client();

size_t len = myCAM.read_fifo_length();


if (len >= 0x07ffff) {
Serial.println("Over size.");
return;
} else if (len == 0 ) {
Serial.println("Size is 0.");
return;
}

myCAM.CS_LOW();
myCAM.set_fifo_burst();
#if !(defined (ARDUCAM_SHIELD_V2) && defined (OV2640_CAM))
SPI.transfer(0xFF);
#endif

if (!client.connected()) return;

/*
String response = "HTTP/1.1 200 OK\r\n";
response += "Content-Type: image/jpeg\r\n";
response += "Content-Length: " + String(len) + "\r\n\r\n";
server.sendContent(response);
*/

static uint8_t buffer[bufferSize] = {0xFF};

while (len) {
size_t will_copy = (len < bufferSize) ? len : bufferSize;
SPI.transferBytes(&buffer[0], &buffer[0], will_copy);
if (!client.connected()) break;
client.write(&buffer[0], will_copy);
len -= will_copy;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-25

myCAM.CS_HIGH();
}

/////////////////////////////
// stream video to client //
/////////////////////////////
void serverStream() {
WiFiClient client = server.client();

String response = "HTTP/1.1 200 OK\r\n";


response += "Content-Type: multipart/x-mixed-replace;
boundary=frame\r\n\r\n";
server.sendContent(response);

while (client.connected()) {

start_capture();

while (!myCAM.get_bit(ARDUCHIP_TRIG, CAP_DONE_MASK));

size_t len = myCAM.read_fifo_length();


if (len >= 0x07ffff) {
Serial.println("Over size.");
continue;
} else if (len == 0 ) {
Serial.println("Size is 0.");
continue;
}

myCAM.CS_LOW();
myCAM.set_fifo_burst();
#if !(defined (ARDUCAM_SHIELD_V2) && defined (OV2640_CAM))
SPI.transfer(0xFF);
#endif
if (!client.connected()) break;
response = "--frame\r\n";
response += "Content-Type: image/jpeg\r\n\r\n";
server.sendContent(response);

static uint8_t buffer[bufferSize] = {0xFF};

while (len) {
size_t will_copy = (len < bufferSize) ? len : bufferSize;
SPI.transferBytes(&buffer[0], &buffer[0], will_copy);
if (!client.connected()) break;
client.write(&buffer[0], will_copy);
len -= will_copy;
}
myCAM.CS_HIGH();

if (!client.connected()) break;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-26

}
}

//////////////////////////////////////////////////////////////////
/////////////////
// used when form is submitted and at setup to set the camera
resolution //
//////////////////////////////////////////////////////////////////
/////////////////
void setCamResolution(int reso)
{
switch (reso)
{
case 0:
myCAM.OV2640_set_JPEG_size(OV2640_160x120);
resolution = 0;
break;

case 1:
myCAM.OV2640_set_JPEG_size(OV2640_176x144);
resolution = 1;
break;

case 2:
myCAM.OV2640_set_JPEG_size(OV2640_320x240);
resolution = 2;
break;

case 3:
myCAM.OV2640_set_JPEG_size(OV2640_352x288);
resolution = 3;
break;

case 4:
myCAM.OV2640_set_JPEG_size(OV2640_640x480);
resolution = 4;
break;

case 5:
myCAM.OV2640_set_JPEG_size(OV2640_800x600);
resolution = 5;
break;

case 6:
myCAM.OV2640_set_JPEG_size(OV2640_1024x768);
resolution = 6;
break;

case 7:
myCAM.OV2640_set_JPEG_size(OV2640_1280x1024);
resolution = 7;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-27

break;

case 8:
myCAM.OV2640_set_JPEG_size(OV2640_1600x1200);
resolution = 8;
break;

}
}

////////////////////////////////
// main setup function //
////////////////////////////////
void setup() {
delay(10);
uint8_t vid, pid;
uint8_t temp;

#if defined(__SAM3X8E__)
Wire1.begin();
#else
Wire.begin();
#endif

Serial.begin(115200);
Serial.println("ArduCAM Start!");

// set the CS as an output:


pinMode(CS, OUTPUT);

// initialize SPI:
SPI.begin();
SPI.setFrequency(4000000); //4MHz

//Check if the ArduCAM SPI bus is OK


myCAM.write_reg(ARDUCHIP_TEST1, 0x55);
temp = myCAM.read_reg(ARDUCHIP_TEST1);
if (temp != 0x55) {
Serial.println("SPI1 interface Error!");
}

//Check if the camera module type is OV2640


myCAM.wrSensorReg8_8(0xff, 0x01);
myCAM.rdSensorReg8_8(OV2640_CHIPID_HIGH, &vid);
myCAM.rdSensorReg8_8(OV2640_CHIPID_LOW, &pid);
if ((vid != 0x26 ) && (( pid != 0x41 ) || ( pid != 0x42 )))
Serial.println("Can't find OV2640 module! pid: " +
String(pid));
else
Serial.println("OV2640 detected.");
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-28

//Change to JPEG capture mode and initialize the OV2640 module


myCAM.set_format(JPEG);
myCAM.InitCAM();

setCamResolution(resolution);

myCAM.clear_fifo_flag();

Serial.println();
Serial.println();
Serial.print("Share AP: ");
Serial.println(AP_ssid);
Serial.print("The password is: ");
Serial.println(AP_password);

WiFi.mode(WIFI_AP);
WiFi.softAP(AP_ssid, AP_password);
Serial.println("");
Serial.println("AP ip");
Serial.println(WiFi.softAPIP());

// setup handlers
server.on("/stream", HTTP_GET, serverStream);
server.begin();
Serial.println("Server started");

/////////////////////////////
// Main loop function //
/////////////////////////////
void loop() {
server.handleClient();
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-29

LAMPIRAN 4

DATA YANG DIPEROLEH

Tabel L1. Data hasil pengujian posisi awal (rotasi 0°, posisi tengah, jarak 20cm)
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L2. Data hasil pengujian pengaruh variasi rotasi 20°


Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 0 3
Goni 0 3
Keset 3
Jerami 0 3
Handuk 1 2
Rumput 3 0
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-30

Tabel L3. Data hasil pengujian pengaruh variasi rotasi 60°


Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 0 3
Goni 0 1 2
Keset 3
Jerami 0 3
Handuk 3
Rumput 2 1 0
Bebatuan 3
Goni +
0 3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L4. Data hasil pengujian pengaruh variasi rotasi 120°


Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3 0
Goni 0 3
Keset 3
Jerami 3 0
Handuk 3
Rumput 3 0
Bebatuan 3 0
Goni +
0 3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-31

Tabel L5. Data hasil pengujian variasi skala 100% (jarak 20 cm)
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L6. Data hasil pengujian variasi skala 125% (jarak 25 cm)
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-32

Tabel L7. Data hasil pengujian variasi skala 175% (jarak 30 cm)
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 3
Kacang 0 3
Anyaman 0 3
Goni 0 3
Keset 2 1
Jerami 3
Handuk 3 0
Rumput 3 0
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L8. Data hasil pengujian variasi translasi center


Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-33

Tabel L9. Data hasil pengujian variasi translasi U 1 cm


Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 3
Kacang 1 2
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3 0
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L10. Data hasil pengujian variasi translasi L 1 cm


Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3 0
Goni + 3
Gabah
Goni + 2 1
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-34

Tabel L11. Data hasil pengujian variasi translasi D 1 cm


Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3 0
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L12. Data hasil pengujian variasi translasi R 1 cm


Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3 0
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-35

Tabel L13. Data hasil pengujian posisi awal dengan resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L14. Data hasil pengujian pengaruh variasi rotasi 20° resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 0 3
Goni 3 0
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3 0
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-36

Tabel L15. Data hasil pengujian pengaruh variasi rotasi 60° resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 0 3
Kacang 3 0
Anyaman 0 3
Goni 0 3
Keset 3
Jerami 3 0
Handuk 3
Rumput 3 0
Bebatuan 3 0
Goni +
0 3
Gabah
Goni +
3
Jagung
Goni +
3 0
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L16. Data hasil pengujian pengaruh variasi rotasi 120° resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 0 3
Kacang 3 0
Anyaman 0 3
Goni 3 0
Keset 3
Jerami 3 0
Handuk 3
Rumput 3 0
Bebatuan 3
Goni +
0 3
Gabah
Goni +
3
Jagung
Goni +
3 0
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-37

Tabel L17. Data hasil pengujian variasi skala 100% (jarak 20 cm) resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L18. Data hasil pengujian variasi skala 125% (jarak 25 cm) resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 1 2
Kacang 0 3
Anyaman 0 3
Goni 0 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-38

Tabel L19. Data hasil pengujian variasi skala 175% (jarak 30 cm) resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 0 3
Kacang 0 3
Anyaman 0 3
Goni 0 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni + 2 1
Gabah
Goni + 3
Jagung
Goni + 3 0
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L20. Data hasil pengujian variasi translasi center resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-39

Tabel L21. Data hasil pengujian variasi translasi U 1 cm resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L22. Data hasil pengujian variasi translasi L 1 cm resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-40

Tabel L23. Data hasil pengujian variasi translasi D 1 cm resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 0 3
Goni 0 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L24. Data hasil pengujian variasi translasi R 1 cm resolusi 320 x 240
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 0 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3 0
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-41

Tabel L25. Data hasil pengujian posisi awal res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L26. Data hasil pengujian variasi rotasi 20° res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-42

Tabel L27. Data hasil pengujian variasi rotasi 60° res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 0 3
Goni 0 3
Keset 3
Jerami 3 0
Handuk 3
Rumput 3
Bebatuan 2 1
Goni +
0 3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L28. Data hasil pengujian variasi rotasi 120° res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 0 3
Goni 3
Keset 3
Jerami 3 0
Handuk 3
Rumput 3
Bebatuan 3
Goni +
0 3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-43

Tabel L29. Data hasil pengujian skala 100% res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L30. Data hasil pengujian skala 125% res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 0 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-44

Tabel L31. Data hasil pengujian skala 175% res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 0 3
Jagung 0 3
Kacang 3
Anyaman 3
Goni 3 0
Keset 0 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni + 0 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L32. Data hasil pengujian center res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-45

Tabel L33. Data hasil pengujian variasi translasi U 1 cm res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L34. Data hasil pengujian variasi translasi L 1 cm res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3 0
Goni + 0 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-46

Tabel L35. Data hasil pengujian variasi translasi D 1 cm res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 1 2
Goni +
3
Gabah
Goni +
3
Jagung
Goni +
3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian

Tabel L36. Data hasil pengujian variasi translasi R 1 cm res320x240 & normalisasi GLCM
Out Goni + Goni + Goni +
Gabah Jagung Kacang Anyaman Goni Keset Jerami Handuk Rumput Bebatuan
In Gabah Jagung Kacang
Gabah 3
Jagung 3
Kacang 3
Anyaman 3
Goni 3
Keset 3
Jerami 3
Handuk 3
Rumput 3
Bebatuan 3
Goni + 3
Gabah
Goni + 3
Jagung
Goni + 3
Kacang
Ket : Angka 3 : Tekstur yang dikenali sebanyak 3 kali dalam 3 kali pengujian
Angka 2 : Tekstur yang dikenali sebanyak 2 kali dalam 3 kali pengujian
Angka 1 : Tekstur yang dikenali sebanyak 1 kali dalam 3 kali pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-47

LAMPIRAN 5

HASIL RERATA TINGKAT PENGENALAN TEKSTUR DENGAN


METODE GLCM

1. Hasil pengujian variasi RST terhadap pengenalan tekstur tunggal


a. Rerata pengaruh variasi Rotasi terhadap tingkat pengenalan
Rotasi 0° 20° 60° 120°
Tingkat Pengenalan 90% 56,7% 60% 40%

b. Rerata pengaruh variasi Skala terhadap tingkat pengenalan


100% 125% 175%
Skala
(jarak 20 cm) (jarak 25 cm) (jarak 30 cm)
Tingkat Pengenalan 90% 80% 36,7%

c. Rerata pengaruh variasi Translasi terhadap tingkat pengenalan


Translasi center U 1 cm L 1 cm D 1 cm R 1 cm
Tingkat Pengenalan 90% 63,3% 80% 60% 60%

d. Rerata pengaruh RST terhadap keseluruhan tingkat pengenalan tekstur


Variasi RST R S T
Tingkat Pengenalan Tekstur 61,68% 68,9% 70,66%

2. Hasil pengujian variasi RST terhadap pengenalan tekstur ganda


a. Rerata pengaruh variasi Rotasi terhadap tingkat pengenalan
Rotasi 0° 20° 60° 120°
Tingkat Pengenalan 100% 100% 66,7% 66,7%

b. Rerata pengaruh variasi Skala terhadap tingkat pengenalan


100% 125% 175%
Skala
(jarak 20 cm) (jarak 25 cm) (jarak 30 cm)
Tingkat Pengenalan 100% 100% 100%

c. Rerata pengaruh variasi Translasi terhadap tingkat pengenalan


Translasi center U 1 cm L 1 cm D 1 cm R 1 cm
Tingkat Pengenalan 100% 100% 77,8% 100% 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-48

d. Rerata pengaruh RST terhadap keseluruhan tingkat pengenalan tekstur


Variasi RST R S T
Tingkat Pengenalan Tekstur 83,35% 100% 95,56%

3. Hasil tingkat pengenalan tiap tekstur


Tekstur R S T Rata-rata
Gabah 100% 66,7% 20% 62,2%
Jagung 100% 100% 100% 100%
Kacang 50% 0% 26,7% 25,6%
Anyaman 25% 66,7% 100% 63,9%
Goni 25% 66,7% 100% 63,9%
Keset 100% 88,9% 100% 96,3%
Jerami 25% 100% 100% 75%
Handuk 91,7% 66,7% 100% 86,1%
Rumput 25% 33,3% 40% 32,8%
Bebatuan 75% 100% 20% 65%
Goni + Gabah 50% 100% 100% 83,3%
Goni + Jagung 100% 100% 86,7% 95,6%
Goni + Kacang 100% 100% 100% 100%

4. Hasil pengujian pengaruh wireless pada unjuk kerja pengenalan tekstur


Jarak 1m 10 m 20 m 30 m 40 m 50 m 60 m 70 m 80 m

Kuat Sinyal
(Signal Strength) -45 -55 -62 -70 -72 -77 -71 -74 -
( dalam dBm)

Tingkat
100% 100% 100% 50% 100% 100% 100% 100% 100%
Pengenalan

5. Hasil pengujian variasi RST terhadap pengenalan tekstur tunggal resolusi


320x240
a. Rerata pengaruh variasi Rotasi terhadap tingkat pengenalan
Rotasi 0° 20° 60° 120°
Tingkat Pengenalan 100% 70% 20% 30%

b. Rerata pengaruh variasi Skala terhadap tingkat pengenalan


100% 125% 175%
Skala
(jarak 20 cm) (jarak 25 cm) (jarak 30 cm)
Tingkat Pengenalan 80% 53,3% 40%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-49

c. Rerata pengaruh variasi Translasi terhadap tingkat pengenalan


Translasi center U 1 cm L 1 cm D 1 cm R 1 cm
Tingkat Pengenalan 80% 80% 90% 60% 80%

d. Rerata pengaruh RST terhadap keseluruhan tingkat pengenalan tekstur


Variasi RST R S T
Tingkat Pengenalan Tekstur 55% 57,77% 78%

6. Hasil pengujian variasi RST terhadap pengenalan tekstur tunggal resolusi


320x240 dan normalisasi nilai fitur GLCM
a. Rerata pengaruh variasi Rotasi terhadap tingkat pengenalan
Rotasi 0° 20° 60° 120°
Tingkat Pengenalan 100% 100% 63,3% 80%

b. Rerata pengaruh variasi Skala terhadap tingkat pengenalan


100% 125% 175%
Skala
(jarak 20 cm) (jarak 25 cm) (jarak 30 cm)
Tingkat Pengenalan 100% 73,3% 60%

c. Rerata pengaruh variasi Translasi terhadap tingkat pengenalan


Translasi center U 1 cm L 1 cm D 1 cm R 1 cm
Tingkat Pengenalan 100% 100% 90% 96,7% 100%

d. Rerata pengaruh RST terhadap keseluruhan tingkat pengenalan tekstur


Variasi RST R S T
Tingkat Pengenalan Tekstur 85,83% 77,77% 97,34%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-42

LAMPIRAN 6

TABEL EKSTRAKSI CIRI GLCM

Tabel L37. Tabel Ekstraksi Ciri GLCM Tekstur Jagung

Sudut Fitur Ekstraksi Ciri


Ekstraksi Ciri Ekstraksi Tekstur Jagung
GLCM GLCM Masukan (a) Basis Data (b)
ASM 2,30 x 10-4 2,15 x 10-4
Kontras 951,9868 997,8833
0° IDM 0,0549 0,0513
Entropi 3,8286 3,83
Korelasi 2,82 x 10-4 2,71 x 10-4
ASM 1,69 x 10-4 1,62 x 10-4
Kontras 1,63 x 103 1,66 x 103
45° IDM 0,0398 0,0394
Entropi 3,9163 3,9144
-4
Korelasi 2,44 x 10 2,37 x 10-4
-4
ASM 2,34 x 10 2,32 x 10-4
Kontras 876,3491 855,3655
90° IDM 0,0571 0,0573
Entropi 3,8159 3,803
-4
Korelasi 2,86 x 10 2,78 x 10-4
ASM 1,66 x 10-4 1,62 x 10-4
Kontras 1,63 x 103 1,65 x 103
135° IDM 0,0421 0,0395
Entropi 3,9186 3,9176
-4
Korelasi 2,44 x 10 2,37 x 10-4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

L-43

Tabel L38. Tabel Ekstraksi Ciri GLCM Tekstur Kacang

Sudut Fitur Ekstraksi Ciri Ekstraksi Ciri


Ekstraksi Ciri Ekstraksi Tekstur Kacang Tekstur Bebatuan
GLCM GLCM Masukan (a) Basis Data (b) Basis Data (c)
ASM 3,69 x 10-4 3,84 x 10-4 3,97 x 10-4
Kontras 566,0346 549,7759 576,3799
0° IDM 0,1108 0,104 0,1011
Entropi 3,6873 3,6437 3,6213
-4
Korelasi 2,77 x 10 3,08 x 10-4 2,90 x 10-4
ASM 2,78 x 10-4 2,89 x 10-4 3,03 x 10-4
Kontras 829,6979 865,5018 907,7506
45° IDM 0,0772 0,0736 0,0762
Entropi 3,773 3,7356 3,7108
-4
Korelasi 2,66 x 10 2,90 x 10-4 2,73 x 10-4
ASM 4,17 x 10-4 4,13 x 10-4 4,48 x 10-4
Kontras 366,4866 402,698 405,06
IDM 0,1154 0,1035 0,1118
90°
Entropi 3,6359 3,6096 3,5716
-4
Korelasi 2,88 x 10 3,17 x 10-4 2,98 x 10-4
ASM 2,70 x 10-4 2,87e-04 3,07 x 10-4
Kontras 859,4348 835,4765 865,3539
135° IDM 0,079 0,0759 0,0792
Entropi 3,7838 3,7391 3,7072
-4
Korelasi 2,65 x 10 2,92 x 10-4 2,76 x 10-4

Anda mungkin juga menyukai