Post on 29-Dec-2019
i
KLASIFIKASI KAIN TRADISIONAL NUSANTARA DENGAN
MENGGUNAKAN ALGORITMA NAIVE BAYES CLASSIFIER
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun Oleh:
M. Ch. Agung Ayu Bulan Mahadewi
115314071
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
ARCHIPELAGO TRADITIONAL FABRIC CLASSIFICATION
BY USING THE NAIVE BAYES CLASSIFIER ALGORITHM
A Final Project
Presented as Partial Fulfillment of The Requirements
To Obtain Sarjana Komputer Degree
In Informatics Engineering Study Program
By:
M. Ch. Agung Ayu Bulan Mahadewi
115314071
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN PERSEMBAHAN
Tugas akhir ini saya persembahkan untuk:
Tuhan Yesus dan Bunda Maria Yang Penuh CintaKasih,
Selalu membimbing dan menguatkan
Papa di Surga dan Mama tercinta
Mas Guntur dan Mbk Bintang tersayang
Aditio Putra Setyobudi tersayang
Seluruh teman-teman yang setia menemani
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
KLASIFIKASI KAIN TRADISIONAL NUSANTARA DENGAN
MENGGUNAKAN ALGORITMA NAIVE BAYES CLASSIFIER
ABSTRAK
Di Indonesia terdapat beraneka ragam warisan budaya, salah satunya adalah kain
tradisional dari berbagai daerah yang ada di Indonesia yang wajib untuk
dilestarikan. Terdapat berbagai jenis kain tradisional yaitu batik, songket, tenun,
ulos, besurek, dan masih banyak lagi. Dalam setiap kain terdapat warna dan motif
yang berbeda-beda yang memiliki arti disetiap motif nya. Namun, tidak semua
orang mengetahui asal dari kain-kain tersebut. Oleh karena itu dilakukan
penelitian dengan pengklasifikasian kain tradisional nusantara. Dalam klasifikasi
dibutuhkan ciri khas dari kain tersebut. Untuk mendapatkan ciri khas dari kain
yang akan diklasifikasikan dibutuhkan ekstrak ciri dengan menggunakan warna
dengan mengambil meanR,G,B dan meanRGB, dan deteksi tepi. Deteksi tepi yang
digunakan adalah deteksi tepi dengan menggunakan Canny, karena metode canny
merupakan metode deteksi tepi yang baik diantara deteksi tepi yang lainnya dan
sudah pernah digunakan dalam deteksi tepi citra batik pada penelitian yang
lainnya. Selain itu, untuk membantu mendapatkan ekstrak ciri deteksi tepi
dibutuhkan pembagian citra dalam vektor horizontal dan vertikal. Sedangkan
untuk pengklasifikasian menggunakan algoritma Naive Bayes Classifier.
Algoritma naive bayes ini menggunakan metode probabilistik dan statistik.
Algoritma ini membutuhkan stándar deviasi dan mean dari setiap atribut dalam
setiap kelas. Hasil probabilitas yang tertinggi yang digunakan untuk menentukan
asal daerah kain tersebut. Untuk mengetahui kemampuan dari algoritma naive
bayes untuk klasifikasi dibutuhkan perhitungan akurasi. Berdasarkan klasifikasi
yang dilakukan dengan menggunakan ekstrak ciri warna dan vektor, didapatkan
hasil paling besar dengan menggunakan ekstrak ciri warna dan vektor vertikal
dengan tingkat akurasi 93%.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
ARCHIPELAGO TRADITIONAL FABRIC CLASSIFICATION
BY USING THE NAIVE BAYES CLASSIFIER
ABSTRACT
There are so many variegated of cultural heritage in Indonesia, one exception is
traditional fabric from many regions in Indonesia that must be preserved. There
are many various of traditional fabric like batik, songket, tenun, ulos, besurek, and
so many more. They’re have difference color and motives that having luminance
meaning. But, not everyone knows the origin of that fabric. Because of that,
perform the research to classified archipelago traditional fabric. In that classified,
the characteristic of the fabric is needed. To get the characteristic of the fabric that
want to classified, extract features is needed by using the color by taking
meanR,G,B and meanRGB, and detection of the edge. The detection of the edge is
using with Canny, because Canny method is more better than other detection
method and have been use to image detection of batik in other research. Beside
that, for get the extract feature, imagery ceiling in horizontal and vertical vector
are needed. Meanwhile, Naïve Bayes Classifier algorithm is used to classified.
Naïve bayes algorithm is using probabilistic and statistic method. This algorithm
is need standart deviation and mean from each attribute in each class. The highest
result use to determine the origin of the fabric. To find the ability classifying with
naïve bayes algorithm, calculation accuracy is needed. Based on the classified that
done with extract features of color and vector, the highest result was obtained by
using color extract feature anvertical vector with 93% of accuracy.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
KATA PENGANTAR
Puji dan syukur penulis panjatkan atas kehadirat Tuhan Yang Maha Esa
atas berkat, rahmat serta kasih-Nya sehingga penulis dapat menyelesaikan skripsi
yang berjudul “Klasifikasi Kain Tradisional Nusantara Dengan
Menggunakan algoritma Naive Bayes Classifier”.
Penulisan skripsi ini bertujuan untuk memenuhi syarat untuk memperoleh
gelar sarjana komputer program studi S1 jurusan Teknik Informatika Universitas
Sanata Dharma. Penulis menyadarai bahwa skripsi ini masih jauh dari kata
sempurna, oleh sebab itu penulis mengharapkan kritik dan saran yang bersifat
membangun dari semua pihak demi kesempurnaan skripsi ini.
Skripsi ini tidak lepas dari peran penting berbagai pihak, sehingga pada
kesempatan ini penulis dengan segala kerendahan hati serta rasa hormat
mengucapkan terimakasih yang sebesar-besarnya kepada semua pihakyang telah
memberikan dukungan baik secara langsung maupun tidak langsung kepada
penulis dalam penyusunan skripsi ini hingga selesai. Pada proses penulisan tugas
akhir ini saya ucapkan terima kasih kepada:
1. Tuhan Yesus selaku pembimbing iman dalam hidup yang selalu
memberi solusi diatas segala solusi.
2. Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku pembimbing yang
memberikan pengarahan serta solusi dalam pengerjaan skripsi ini
hingga selesai.
3. Kedua orangtua, Bapak FX. Leo Taridi (Almarhum) dan Ibu M.Ch.
Ni-Luh Astutik yang selalu rela berkorban, mendoakan, menyayangi
dan memberikan motivasi kepada penulis.
4. Kedua kakak, Grs. Guntur Agung PN dan M.Ch. Agung Ayu Bintang
KS yang selalu menyayangi dan memberikan yang terbaik kepada
penulis.
5. Romo Poldo Andreas Situmorang yang senantiasa tulus meluangkan
waktunya untuk konsultasi mengenai penelitian ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
6. Aditio Putra Setyobudi yang selalu setia menemani dan membantu
dikala susah dan senang saat pengerjaan skripsi ini.
7. Monica Susi, Dyah Utami, Dhiah Rusdiana yang setia menemani dan
berbagi kesulitan bersama.
8. Seluruh civitas akademika Teknik Informatika angkatan 2011,
terutama anggota C++ yang telah berjuang bersama dan saling
memberi semangat dan inspirasi.
9. Semua pihak, baik langsung maupun tidak langsung yang telah
membantu dalam proses penyelesaian skripsi.
Penulis menyadari masih banyak kekurangan dalam penyusunan skripsi
ini, namun penulis tetap berharap skripsi ini bermanfaat bagi pengembangan ilmu
pengetahuan.
Yogyakarta, 5 November 2015
Penulis
M.Ch. Agung Ayu Bulan Mahadewi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
DAFTAR ISI
KLASIFIKASI KAIN TRADISIONAL NUSANTARA DENGAN
MENGGUNAKAN ALGORITMA NAIVE BAYES CLASSIFIER ......................... i
ARCHIPELAGO TRADITIONAL FABRIC CLASSIFICATION BY USING
THE NAIVE BAYES CLASSIFIER ALGORITHM ................................................. ii
HALAMAN PERSETUJUAN ............................... Error! Bookmark not defined.
HALAMAN PENGESAHAN ............................... Error! Bookmark not defined.
HALAMAN PERSEMBAHAN ............................................................................ iv
PERNYATAAN KEASLIAN KARYA ................ Error! Bookmark not defined.
LEMBAR PERNYATAAN PERSETUJUAN ...... Error! Bookmark not defined.
ABSTRAK ............................................................................................................. ix
ABSTRACT ............................................................................................................ x
KATA PENGANTAR ........................................................................................... xi
DAFTAR ISI ........................................................................................................ xiii
DAFTAR GAMBAR ........................................................................................... xvi
DAFTAR TABEL .............................................................................................. xviii
BAB I ...................................................................................................................... 1
1.1 Latar Belakang .............................................................................................. 1
1.2 Rumusan Masalah ......................................................................................... 3
1.3 Tujuan ............................................................................................................ 3
1.4 Batasan Masalah ............................................................................................ 3
1.5 Metodologi Penelitian ................................................................................... 4
1.6 Sistematika Penulisan .................................................................................... 6
BAB II ..................................................................................................................... 7
2.1 Kain Tradisional Nusantara ........................................................................... 7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
2.2 Pengenalan Pola ............................................................................................ 8
2.3 Deteksi Tepi .................................................................................................. 9
2.4 Ekstraksi Ciri ............................................................................................... 11
2.4.1 Warna .................................................................................................... 11
2.4.2 Rata-rata Vektor.................................................................................... 13
2.5 Klasifikasi .................................................................................................... 14
2.6 Algoritma Naive Bayes Classifier ............................................................... 15
2.7 Akurasi ........................................................................................................ 19
BAB III ................................................................................................................. 20
3.1 Data Citra Kain Nusantara .......................................................................... 20
3.2 Perancangan Sistem Secara Umum ............................................................. 21
3.3 Perancangan Proses Ekstraksi ciri ............................................................... 23
3.3.1 Proses Ekstraksi Ciri Warna ................................................................. 23
3.3.2 Proses Ekstraksi Ciri Rata-rata Vektor ................................................. 24
3.3.4 Proses Gabungan Ekstraksi Ciri Warna Dan Rata-rata Vektor ............ 26
3.4 Perancangan Proses Klasifikasi ................................................................... 28
3.5 Perancangan Proses Akurasi ....................................................................... 30
3.6 Perancangan Antar Muka ............................................................................ 32
3.7 Kebutuhan Hardware dan Software ............................................................ 34
BAB IV ................................................................................................................. 35
4.1 Implementasi Klasifikasi ............................................................................. 35
4.1.1 Implementasi Memotong Citra ............................................................. 35
4.1.2 Implementasi Ekstraksi Ciri Warna ...................................................... 36
4.1.3 Implementasi Ekstraksi Ciri Rata-rata Vektor ...................................... 37
4.1.4 Implementasi Ekstraksi Ciri Warna dan Rata-rata Vektor ................... 43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
4.1.5 Implementasi Klasifikasi menggunakan Naive Bayes .......................... 47
4.1.6 Implementasi Akurasi ........................................................................... 52
4.1.7 Implementasi Klasifikasi Dari Data User ............................................ 52
4.1.8 Implementasi Antar Muka ................................................................... 55
BAB V .................................................................................................................. 56
5.1 Data ............................................................................................................. 56
5.2 Akurasi Hasil Klasifikasi Menggunakan Naive Bayes ............................... 57
BAB VI ................................................................................................................. 60
6.1 Kesimpulan .................................................................................................. 60
6.2 Saran ............................................................................................................ 60
DAFTAR PUSTAKA ........................................................................................... 62
LAMPIRAN I ....................................................................................................... 64
LAMPIRAN II ...................................................................................................... 67
LAMPIRAN III ..................................................................................................... 70
LAMPIRAN IV .................................................................................................... 74
LAMPIRAN V ...................................................................................................... 78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
DAFTAR GAMBAR
Gambar 2. 1. Proses Deteksi tepi ........................................................................................ 9
Gambar 2. 2 Ilustrasi pembagian vektor horizontal .......................................................... 13
Gambar 2. 3 Ilustrasi pembagian vektor vertikal .............................................................. 14
Gambar 2. 4 Proses Klasifikasi ......................................................................................... 15
Gambar 3. 1 Contoh Citra asli berukuran 200 x 200 piksel .............................................. 20
Gambar 3. 2 Alur Perancangan Sistem Dengan 100 Data ................................................ 21
Gambar 3. 3 Alur Perancangan Sistem Dengan Data Dari User ...................................... 22
Gambar 3. 4 Halaman Klasifikasi kain tradisional nusantara menggunakan .................... 32
Gambar 3. 5 Tampilan Preprocesing ................................................................................ 33
Gambar 3. 6 Tampilan Klasifikasi 100 Data .................................................................... 33
Gambar 3. 7 Tampilan Klasifikasi Dari Data User ........................................................... 34
Gambar 4. 1Proses Cropping Citra kain 460x572 ............................................................ 35
Gambar 4. 2 Citra kain 200x200 piksel ............................................................................ 36
Gambar 4. 3 Tabel Ekstrak Ciri Warna ............................................................................ 37
Gambar 4. 4Proses Deteksi tepi Canny............................................................................. 38
Gambar 4. 5 Proses membagi citra kedalam vektor horizontal ........................................ 40
Gambar 4. 6Tabel Ekstrak Ciri Vektor Horizontal ........................................................... 40
Gambar 4. 7 Proses membagi citra kedalam vektor vertikal ............................................ 42
Gambar 4. 8 Tabel Ekstrak Ciri Vektor Vertikal .............................................................. 43
Gambar 4. 9 Tabel Ekstrak Ciri Warna & Vektor Horizontal .......................................... 46
Gambar 4. 10 Tabel Ekstrak Ciri Warna & Vektor Vertikal ............................................ 46
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Gambar 4. 11 Data di dalam cell ...................................................................................... 47
Gambar 4. 12 Tabel Mean Ekstrak Ciri Warna & Vektor Horizontal .............................. 48
Gambar 4. 13 Tabel Stándar Deviasi Ekstrak Ciri Warna & Vektor Horizontal ............. 49
Gambar 4. 14Data Testing Dalam Setiap Cell .................................................................. 50
Gambar 4. 15 Data Testing Dalam Satu Kelas ................................................................. 51
Gambar 4. 16 Hasil Probabilitas ..................................................................................... 51
Gambar 4. 17 Hasil IdxLabel ........................................................................................... 51
Gambar 4. 18 Hasil Akurasi menggunakan 5-fold ........................................................... 52
Gambar 4. 19 Hasil Probabilitas Data Dari User ............................................................. 53
Gambar 4. 20 Hasil Klasifikasi Dari Data User ............................................................... 54
Gambar 4. 21 Implementasi Antar Muka Klasifikasi Kain Tradisional Nusantara Dengan
Menggunakan Naive Bayes Classifer ............................................................................... 55
Gambar 4. 22 Peringatan Ekstraksi Ciri Telah Selesai ..................................................... 55
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
DAFTAR TABEL
Tabel 2. 1 Tabel Contoh Soal Perhitungan Naive Bayes .................................................. 17
Tabel 3. 1 Percobaan 2-fold .............................................................................................. 30
Tabel 3. 2Percobaan 3-fold ............................................................................................... 30
Tabel 3. 3 Percobaan 5-fold .............................................................................................. 31
Tabel 5. 1 Hasil Akurasi Data Pertama ............................................................................ 57
Tabel 5. 2 Hasil Akurasi Data Kedua .............................................................................. 58
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi dan kemajuan zaman yang semakin pesat,
membuat manusia lupa akan kebudayaan yang ada sejak dahulu kala. Setiap
negara di dunia pasti mempunyai kebudayaannya masing-masing, termasuk
negara Indonesia. Indonesia merupakan negara yang memiliki beragam budaya,
salah satu kebudayaan yang masih ada sampai sekarang adalah kain tradisional
nusantara. Kain tradisional nusantara merupakan warisan kebudayaan dari
berbagai daerah di Indonesia yang wajib untuk dilestarikan. Ada beberapa kain
tradisional nusantara yang memiliki arti disetiap motif dan warnanya, antara lain
kain songket, kain batik, kain tapis, kain gringsing, kain ikat. Kain-kain tersebut
hanyalah sebagian dari jenis kain tradisional di Indonesia. Perkembangan motif
maupun warna kain tradisional nusantara sangat pesat, tetapi tidak diimbangi
dengan pengetahuan tentang jenis-jenis kain.
Banyak kain tradisional Indonesia yang warna dan motifnya sudah
campuran dari luar Indonesia, bahkan beberapa diantaranya memiliki warna dan
motif yang sama, sehingga sulit untuk dibedakan antara kain satu daerah dengan
daerah yang lainnya. Beberapa cara untuk melestarikan kebudayaan kain
tradisional indonesia telah diupayakan, salah satu caranya adalah dengan
mempublikasi menggunakan situs online. Meskipun demikian, masih banyak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
ditemui kain yang tidak identik dengan daerah asalnya. Oleh karena itu dilakukan
penelitian dan pembuatan aplikasi sebagai alat bantu untuk mengklasifikasi kain
tradisional nusantara secara efektif dan efisien.
Klasifikasi kain tradisional nusantara, yang dilakukan (Azis&Wulandari,
2013) menggunakan metode CBIR. Pencarian kain dilakukan berdasarkan
kemiripan warna, bentuk dan tekstur dengan hasil akurasi citra berdasarkan
tekstur mendapat nilai recall 76,66%, untuk citra berdasarkan warna 100% dan
untuk citra berdasarkan tekstur dan warna mendapat nilai akurasi 100%.
Kelemahan dari penelitian ini yaitu citra berdasarkan fitur tekstur tidak bekerja
dengan dengan baik karena tidak menemukan citra yang tidak sesuai dengan citra
query.
Selain Penelitian tersebut, ada pula penelitian (Ariyanto, 2014) yang
menggunakan ekstraksi ciri tekstur dengan metode matriks kookurensi untuk citra
sekumpulan biji bijian. Ekstraksi ciri menggunakan warna dan rata-rata vektor
vertikal atau horizontal pernah digunakan untuk pengklasifikasian kain batik
Yogyakarta menggunakan algoritma ID3 dengan mendapat akurasi sebesar 75%
(Tiarani, 2011).
Untuk penelitian kain tradisional Nusantara yang peneliti lakukan, akan
menggunakan algoritma Naive Bayes dengan ciri warna dan rata-rata vektor
horizontal atau vertikal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.2 Rumusan Masalah
Rumusan masalah yang akan dibahas pada tulisan ini adalah bagaimana
kinerja algoritma Naive Bayes untuk klasifikasi kain tradisional nusantara.
1.3 Tujuan
Tujuan dari tulisan ini adalah untuk mengetahui tingkat keakuratan dari
algoritma Naive Bayes yang digunakan dalam klasifikasi kain tradisional
nusantara.
1.4 Batasan Masalah
Batasan dari masalah tersebut adalah sebagai berikut:
1. Citra masukan adalah kain tradisional asli Indonesia.
2. Pengelompokan citra dibagi 10 daerah sesuai dengan daerah masing-
masing citra.
3. Data sampel kain yang digunakan berdasarkan:
a. Citra yang diproses merupakan citra yang bertipe JPG (*.jpg).
b. Ukuran citra yang diproses adalah 200x200 piksel.
c. Ada 2 data yang digunakan, data yang pertama dalam satu daerah
terdapat 10 jenis citra kain. Data yang kedua dalam satu daerah
terdapat 1 jenis citra kain yang telah di potong-potong menjadi 10
bagian citra kain setiap daerahnya. Jumlah keseluruhan citra dalam
10 daerah adalah 100 citra.
4. Menggunakan ciri warna dan rata-rata vektor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
5. Tahap preprocesing untuk ekstrasi ciri menggunakan algoritma deteksi
tepi Canny dan membaginya dalam vektor horizontal dan vertikal.
6. Untuk mengklasifikasi citra kain berdasarkan warna dan rata-rata
vektor menggunakan algoritma Naive Bayes.
7. Pembuatan program hanya sebuah prototype.
1.5 Metodologi Penelitian
Metodologi yang digunakan dalam penelitian ini adalah sebagai berikut:
1. Studi Pustaka
Studi literatur tentang teori-teori yang berkaitan dengan warna dan
motif kain, metode Canny, membaca jurnal ilmiah dan mencari
informasi di internet mengenai macam-macam kain tradisional
nusantara serta tentang algoritma Naive Bayes.
2. Analisis dan Perancangan
Mempelajari proses kerja dari metode Canny dan melakukan tahap
preprocesing:
- Mengumpulkan data kain tradisional dengan mengambil gambar
dari internet.
- Memotong citra dengan ukuran 200 x 200 piksel.
- Memisahkan warna Red, Green dan Blue (RGB) dari citra asli.
- Menghitung rata-rata Red, rata-rata Green, rata-rata Blue.
- Menghitung rata-rata RGB dari citra baik yang berukuran 200 x
200 piksel untuk memperoleh ciri warna.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
- Menggunakan ciri warna sebagai ekstraksi ciri.
- Mengubah citra asli menjadi grayscale.
- Mengambil deteksi tepi pada citra dengan menggunakan metode
Canny.
- Membagi citra yang telah dikenai deteksi tepi Canny kedalam
vektor horizontal dan vertikal.
- Menggunakan ciri vektor horizontal dan vertikal sebagai ekstraksi
ciri.
- Mengabungkan ciri warna dan rata-rata vektor.
- Mengolah data citra yang telah dikenai tahap preprocesing
menggunakan algoritma Naive Bayes Classifier.
- Menghitung akurasi yang benar dari klasifikasi menggunakan
algoritma Naive Bayes Classifier.
3. Implementasi
Pada tahap ini membuat prototype berupa sebuah perangkat lunak
menggunakan sistem operasi Microsoft Windows 7, dengan bahasa
pemrograman Matlab dan Photoscape sebagai tools penunjang.
4. Pengujian dan Analisis Hasil
Pada tahap ini adalah untuk mengetahui tingkat keakuratan algoritma
Naive Bayes dalam klasifikasi kain tradisional Indonesia dan
menganalisia hasilnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
1.6 Sistematika Penulisan
Sistematika penulisan yang digunakan adalah sebagai berikut ini:
BAB I PENDAHULUAN
Bab ini berisi tentang pendahuluan yang terdiri dari latar belakang,
rumusan masalah, tujuan, batasan masalah, metode penelitian dan
sistematika penulisan dalam tugas akhir ini.
BAB II LANDASAN TEORI
Bab ini berisi mengenai teori-teori yang menjadi dasar dalam
penelitian klasifikasi kain tradisional nusantara dengan menggunakan
algoritma Naïve Bayes.
BAB III ANALISA DAN PERANCANGAN
Bab ini membahas mengenai analisa kebutuhan dan perancangan
perangkat lunak sistem klasifikasi kain tradisional nusantara.
BAB IV IMPLEMENTASI SISTEM
Bab ini berisi mengenai implementasi sistem yang telah disusun
pada bab sebelumnya.
BAB V ANALISA HASIL
Bab ini berisi hasil dan analisa pada sistem yang telah dibuat, berupa
keluaran dari sistem.
BAB VI KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari uji coba klasifikasi kain tradisional
nusantara dan saran untuk pengembangan, perbaikan serta penyempurnaan
terhadap aplikasi yang telah dibuat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
BAB II
LANDASAN TEORI
2.1 Kain Tradisional Nusantara
Indonesia merupakan negara kepulauan yang terdiri dari kurang lebih
17.000 pulau dan terbagi menjadi beberapa provinsi, hal ini pula yang
menyebabkan Indonesia memiliki keanekaragaman budaya. Salah satu warisan
budaya yang sangat penting yaitu adanya kain tradisional. Pada zaman prasejarah
kain berfungsi sebagai pelindung badan dari panas dan dingin serta gangguan
serangga dan benda-benda tajam. Bahan yang digunakan untuk membuat kain pun
masih sangat sederhana yaitu seperti kulit kayu, kulit binatang, serat dan daun-
daunan. Pada masa klasik India, Persia, Cina, Eropa adalah negara yang banyak
mempengaruhi kain tradisional Indonesia.
Di Indonesia terdapat berbagai macam jenis kain tradisional dan berasal
dari berbagai daerah di Indonesia antara lain kain tenun ikat, adalah kain tenun
yang dibuat dengan teknik tenun. Kemudian ada kain songket adalah kain tenun
yang dibuat dengan teknik menambah benang, hiasan dibuat dengan menyisipkan
benang perak, atau emas. Kain songket ini berasal dari daerah Palembang. Lalu
ada kain lurik, kain ini biasa digunakan untuk masyarakat jawa terutama di daerah
Probolinggo yang diyakini memiliki kekuatan magis yang dapat mengusir roh
jahat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Lalu terdapat kain batik yang sudah sering didengar telinga kita, beberapa
batik di jawa masing-masing mempunyai ciri khas, batik juga termasuk jenis
kerajinan yang memiliki nilai seni tinggi dan telah menjadi bagian dari budaya
Indonesia. Kemudian ada kain jumputan atau kain pelangi, di daerah Solo dan
Jogja kain jumputan dipakai untuk selendang, kemben, ikat kepala dan ikat
pinggang. Lalu kain gringsing atau disebut juga kain ikat ganda ini di Bali
dianggap mempunyai kekuatan untuk dapat menyembuhkan penyakit seperti kain
rongkong di Toraja dan kain hinggi di Sumba. Di daerah Bali kain songket lamak
digantungkan di pura dan dipakai untuk upacara galungan.dan masih terdapat
banyak lagi jenis kain di Indonesia yang patut untuk dilestarikan
(Mulyana&Rakhmat, 2006).
2.2 Pengenalan Pola
Pengenalan adalah suatu proses untuk memahami sebuah entitas
berdasarkan pengetahuan terhadap entitas sebelumnya. Pola adalah himpunan
obyek atau suatu konsep yang himpunan elemennya sama dalam hal aspek. Pola
dapat dinyatakan dengan kuantitas, kualitas atau ciri yang dapat ditandai dan
lainnya. Sebagai contoh cara setiap manusia untuk makan mempunyai pola yang
berbeda dengan hewan. Begitu pula dengan gambar atau citra kain tradisional
yang mempunyai pola tersendiri di setiap kainnya yang mencirikhaskan asal dari
kain tersebut Pengenalan Pola adalah proses pengenalan pola menggunakan mesin
atau komputer.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
2.3 Deteksi Tepi
Edge (tepi) adalah perubahan nilai intensitas derajat keabuan yang
mendadak (besar) dalam jarak yang singkat. Deteksi tepi digunakan untuk proses
segmentasi dan identifikasi obyek di dalam citra. Operasi ini bertujuan untuk
melacak titik-titik pada citra yang dianggap sebagai tepi dari suatu obyek, yang
membatasi suatu wilayah obyek satu dengan yang lainnya. Tujuan lain operasi
pendeteksian tepi ini adalah untuk meningkatkan penampakan garis batas suatu
daerah atau obyek didalam citra (Melantika, 2010).
Gambar 2. 1. Proses Deteksi tepi
Dalam pengambilan Edge information digunakan metode Canny karena
merupakan metode deteksi tepi yang paling baik serta telah digunakan dalam
pengambilan ekstraksi ciri dalam mengidentifikasi batik berdasarkan pola batik
dan ciri-ciri batik menggunakan ekstraksi ciri tekstur kain (Imanuddin, 2010).
Berikut adalah langkah-langkah dalam melakukan deteksi tepi Canny yang
dikembangkan oleh F. Canny pada tahun 1986 dengan menggunakan multi tahap
algoritma (Canny,1986):
1. Menghilangkan noise yang ada pada citra dengan mengimplementasikan
filter Gaussian. Hasilnya citra akan terlihat sedikit buram. Hal ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
dimaksudkan untuk mendapatkan tepian citra yang sebenarnya. Berikut
adalah persamaan filter Gaussian dengan ukuran (2k+1)x(2k+1):
Berikut adalah salah satu contoh filter Gaussian dengan σ =1.4 :
2. Menghitung potensi gradien citra dengan melakukan deteksi tepi
menggunakan salah satu operator deteksi tepi seperti Sobel sebagai contoh
dengan melakukan pencarian secara horizontal (Gx) dan secara vertikal
(Gy). Di bawah ini merupakan rumus nya:
Selanjutnya membagi dalam 4 warna, sehingga garis dan arah yang
berbeda memiliki warna yang berbeda. Pembagiannya adalah 0 – 22.5 dan
157.5 – 180 derajad berwarna kuning, 22.5 – 67.5 berwarna hijau, dan
derajat 67.5 – 157.5 berwarna merah.
3. Memperkecil garis tepi yang muncul dengan menerapkan non-maximum
suppression atau penekanan, sehingga menghasilkan garis tepian yang
lebih ramping.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
4. Langkah selanjutnya adalah hysteresis thresholding untuk klasifikasi
dengan dua buah nilai High-threshold dan Low-Threshold. Suatu piksel
disahkan sebagai piksel edge jika, nilainya lebih besar atau sama dengan
High-Threshold jika piksel tersebut memiliki intensitas kekuatan edge
yang lebih besar dari Low-Threshold dan terhubung dengan piksel yang
nilainya lebih besar dari High-Threshold. Untuk menentukan
keterhubungan suatu piksel dengan piksel lainnya digunakan teknik yang
dinamakan edge-linking yang pada dasarnya sama dengan flood-fill.
2.4 Ekstraksi Ciri
Untuk mengetahui suatu citra, diperlukan adanya ekstraksi ciri. Ekstraksi
ciri dapat diteliti dengan mengambil beberapa bagian citra yang bisa menunjukan
ciri khas dari citra tersebut, misalkan warna, pola citra, diameter, bentuk dan
masih banyak lagi. Dalam klasifikasi citra kain tradisional ini, menggunakan
ekstrak ciri warna dan rata-rata vektor.
2.4.1 Warna
Meneliti citra berdasarkan warna yang dikandungnya adalah salah
satu teknik yang paling banyak digunakan. Perhitungan kadar warna
berdasarkan atas percobaan yang telah dilakukan pada penelitian untuk
klasifikasi tingkat kematangan tomat merah menggunakan metode
perbandingan kadar warna (Noviyanto, 2009).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
Secara umum ciri warna hanya memperhatikan distribusi warna
piksel-piksel dalam citra tanpa memperhatikan ukuran dan orientasi posisi
citra. Distribusi warna dapat dipresentasikan dalam berbagai bentuk,
antara lain histogram warna dan momen warna. Berikut merupakan proses
pengklasifikasian dengan menghitung rata-rata nilai Red, Green, dan Blue
(RGB):
…………………………… (2.4)
………………………… (2.5)
…………………………… (2.6)
…………………………… (2.7)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
2.4.2 Rata-rata Vektor
Rata-rata vektor adalah membagi citra yang berukuran 200 x 200
menjadi 8 vektor horizontal dan 8 vektor vertikal. Untuk setiap vektornya
dan akan dihitung nilai rata-ratanya. Kemudian jumlah rata-ratanya
dijadikan sebagai ciri (Tiarani, 2011).
a. Vektor Horizontal
Gambar 2. 2 Ilustrasi pembagian vektor horizontal
Pada gambar 2.2 citra dibagi menjadi 8 bagian vektor horizontal.
Setiap bagiannya dihitung rata-ratanya dan akan diperoleh nilai rata-rata
yang akan dijadikan ciri.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
b. Vektor Vertikal
Gambar 2. 3 Ilustrasi pembagian vektor vertikal
Pada gambar 2.3 citra dibagi menjadi 8 bagian vektor vertikal.
Setiap bagiannya dihitung rata-ratanya dan akan diperoleh nilai rata-rata
yang akan dijadikan ciri.
2.5 Klasifikasi
Klasifikasi dapat didefinisikan sebagai pekerjaan yang melakukan
pelatihan. Pekerjaan pelatihan tersebut akan menghasilkan suatu model yang
kemudian disimpan sebagai memori. Algoritma Klasifikasi menggunakan data
training untuk membuat sebuah model. Model yang sudah di bangun tersebut
kemudian digunakan untuk memprediksi label kelas data baru yang belum
diketahui (Prasetyo, 2012).
Klasifikasi merupakan suatu metode data mining yang dapat digunakan
untuk proses pencarian sekumpulan model yang dapat menjelaskan dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
membedakan kelas-kelas data, yang tujuannya supaya model tersebut dapat
digunakan untuk memprediksi kecenderungan data-data yang muncul di masa
depan (Han&Kamber, 2006). Proses klasifikasi terlihat pada gambar 2.4.
Input Data
Training (x,y)
Algoritma
Training
Pembangunan
Model
Penerapan
Model
Input Data
Testing(x,?)
Output Data
Testing(x,y)
Gambar 2. 4 Proses Klasifikasi
2.6 Algoritma Naive Bayes Classifier
Naive Bayes merupakan pengklasifikasian dengan metode probabilitas
dan statistik yang dikemukakan oleh ilmuwan Inggris Thomas Bayes. Pada
penerapan teorema Bayes (aturan Bayes) dengan asumsi independensi
(ketidaktergantungan) yang kuat (naif). Dengan kata lain, dalam Naïve Bayes
model yang digunakan adalah model fitur independen (Prasetyo, 2012).
Dari pengertian diatas dapat diambil sebuah kesimpulan bahwa Naïve
Bayes adalah teknik klasifikasi yang atributnya saling bebas atau tidak ada kaitan
antar atribut. Contohnya, buah apel dikatakan buah apel jika mempunyai ciri
berdiameter sekitar 6cm, berwarna merah, berbentuk bulat. Walaupun ciri diatas
saling bergantungan satu sama lain, namun dalam bayes hal tersebut tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
dipandang, seolah-olah tidak memiliki hubungan apapun. Prediksi Naïve Bayes
didasarkan pada teorema Bayes, seperti pada rumus dibawah ini:
………………………. (2.8)
Sedangkan untuk Naive Bayes dengan ciri continue memiliki rumus seperti:
…………………………….... (2.9)
Untuk perhitungan nilai likelihood:
……………………………... (2.10)
Untuk perhitungan nilai probabilitas:
…………………………………...... (2.11)
Keterangan:
=Probabilitas data dengan vektor X pada kelas Y
=Probabilitas awal kelas Y
=Probabilitas independen kelas Y dari semua fitur dalam vektor X
µ =Mean atau nilai rata-rata dari atribut dengan fitur continue
σ =Standar Deviasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Contoh perhitungan Naive Bayes untuk Klasifikasi:
Diberikan tabel untuk mengukur seseorang mempunyai tubuh yang proporsional
atau tidak berdasarkan ciri tinggi badan dan berat badan, seperti dibawah ini:
Tinggi Badan
(cm) A1
Berat badan(kg)
A2
Proporsional
A3
175
170
155
180
130
150
50
54
45
60
20
40
Tidak
Tidak
Ya
Tidak
Ya
Ya
Tabel 2. 1 Tabel Contoh Soal Perhitungan Naive Bayes
Langkah-langkah untuk menyelesaikan permasalahan diatas dengan menggunakan
Naive Bayes adalah sebagai berikut:
a. Menghitung Mean dan Stándar Deviasi pada masing-masing ciri (A1):
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
b. Menghitung Mean dan Stándar Deviasi pada masing-masing ciri (A2):
c. Menghitung Naive Bayes menggunakan rumus bersyarat (2.9) , Jika
diberikan A1 = 155, A2 = 45, dan A3 = Ya, maka:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
d. Kemudian selanjutnya menghitung Likelihoodnya (2.10), ( Hasil A1
=155|Ya dengan A2 = 45|Ya di kalikan begitu pula sebaliknya. Sehingga:
Hasil A1 = (0.0240) x (0.0240) = 0.000576
Hasil A2 = (0.0119) x (0.0225) = 0.000267
e. Menghitung nilai probabilitas dengan melakukan normalisasi terhadap
nilai Ya dan nilai Tidak (2.11), sehingga diperoleh hasil akhir, seperti:
Kesimpulannya, nilai Probabilitas Ya lebih besar daripada nilai
Probabilitas Tidak. Sehingga hasil klasifikasi = Ya.
2.7 Akurasi
Sebuah sistem dalam melakukan klasifikasi diharapkan dapat
mengklasifikasi semua data set dengan benar, tetapi tidak dipungkiri bahwa
kinerja suatu sistem tidak bisa 100% akurat.
a) Untuk menghitung akurasi digunakan:
b) Untuk menghitung kesalahan prediksi (error) digunakan:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
BAB III
ANALISA DAN PERANCANGAN SISTEM
Pada bab analisa dan perancangan sistem ini, berisi tentang penjelasan
mengenai perancangan sistem secara umum, perancangan setiap proses nya, mulai
dari proses ekstraksi ciri warna dan rata-rata vektor sampai dengan proses
klasifikasi menggunakan algoritma Naive Bayes Classifier dan proses untuk
mendapatkan tingkat keakuratan dari proses klasifikasi kain tradisional nusantara.
3.1 Data Citra Kain Nusantara
Terdapat dua data yang digunakan dalam klasifikasi kain tradisional
nusantara ini, masing-masing mempunyai 10 daerah atau kelas. Data yang
pertama merupakan data kain yang dalam satu daerah terdapat 1 jenis citra kain
yang telah di potong-potong menjadi 10 bagian citra kain setiap daerahnya, total
keseluruhan ada 100 citra terdapat pada lampiran I. Data yang kedua dalam satu
daerah terdapat 10 jenis citra kain, jumlah keseluruhan 100 citra terdapat pada
lampiran II. Semua citra kain berukuran 200x200 piksel.
Gambar 3. 1 Contoh Citra asli berukuran 200 x 200 piksel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
3.2 Perancangan Sistem Secara Umum
Sistem klasifikasi kain tradisional nusantara ini dibuat dengan tujuan
untuk memodelkan algoritma Naive Bayes dalam menangani klasifikasi kain
tradisional nusantara. Citra yang dimasukan kedalam sistem merupakan gambar
yang berukuran 200x200 piksel. Pada citra dilakukan proses ekstraksi ciri yang
meliputi ekstraksi warna dan rata-rata vektor. Sistem akan menggunakan ciri
tersebut untuk proses training dan testing. Ada 2 sistem yaitu yang pertama untuk
menghitung akurasi dari 100 data citra yang telah dilakukan proses klasifikasi
menggunakan Naive Bayes.
Memotong Citra
(200x200 piksel)
Data Citra Kain
Dari User
Memotong Citra
(200x200 piksel)
Memotong Citra
(200x200 piksel)
Menghitung rata-
rata RGB
Menghitung rata-
rata Red, Green
dan Blue
Memisahkan
warna Red, Green
dan Blue
Hasil ekstraksi ciri
warna ( rata-rata
R,G,B dan rata-
rata RGB)
Deteksi tepi
Canny
Grayscaling
Hitung rata-rata
vektor Horisontal &
Vertikal
Hasil ekstraksi ciri
rata-rata vektor
Horisontal atau
Vertikal
Menghitung rata-
rata RGB
Menghitung rata-
rata Red, Green
dan Blue
Memisahkan
warna Red, Green
dan Blue
Deteksi tepi
Canny
Grayscaling
Hitung rata-rata
vektor Horisontal &
Vertikal
Hasil ekstraksi ciri
gabungan warna
dan rata-rata vektor
Ekstraksi Ciri Warna Ekstraksi Ciri Warna & Rata-rata VektorEkstraksi Ciri Rata-rata Vektor
Proses Klasifikasi
menggunakan Naive
Bayes
Perhitungan
Akurasi
Proses Klasifikasi
menggunakan Naive
Bayes
Perhitungan
Akurasi
Proses Klasifikasi
menggunakan Naive
Bayes
Perhitungan
Akurasi
Data Citra Kain
Dari User
Data Citra Kain
Dari User
Gambar 3. 2 Alur Perancangan Sistem Dengan 100 Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Yang kedua adalah menghitung probabilitas maksimal dari data citra yang
dimasukan oleh user. Hasil keluarannya adalah daerah asal dari citra yang
dimasukan.
Memotong Citra
(200x200 piksel)
Data Citra Kain
Dari User
Memotong Citra
(200x200 piksel)
Memotong Citra
(200x200 piksel)
Menghitung rata-
rata RGB
Menghitung rata-
rata Red, Green
dan Blue
Memisahkan
warna Red, Green
dan Blue
Hasil ekstraksi ciri
warna ( rata-rata
R,G,B dan rata-
rata RGB)
Deteksi tepi
Canny
Grayscaling
Hitung rata-rata
vektor Horisontal &
Vertikal
Hasil ekstraksi ciri
rata-rata vektor
Horisontal atau
Vertikal
Menghitung rata-
rata RGB
Menghitung rata-
rata Red, Green
dan Blue
Memisahkan
warna Red, Green
dan Blue
Deteksi tepi
Canny
Grayscaling
Hitung rata-rata
vektor Horisontal &
Vertikal
Hasil ekstraksi ciri
gabungan warna
dan rata-rata vektor
Ekstraksi Ciri Warna Ekstraksi Ciri Warna & Rata-rata VektorEkstraksi Ciri Rata-rata Vektor
Proses Klasifikasi
menggunakan Naive
Bayes
Hasil berupa
Daerah asal
citra kain
Proses Klasifikasi
menggunakan Naive
Bayes
Hasil berupa
Daerah asal
citra kain
Proses Klasifikasi
menggunakan Naive
Bayes
Hasil berupa
Daerah asal
citra kain
Data Citra Kain
Dari User
Data Citra Kain
Dari User
Gambar 3. 3 Alur Perancangan Sistem Dengan Data Dari User
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
3.3 Perancangan Proses Ekstraksi ciri
Proses ekstraksi ciri merupakan proses paling penting untuk mendapatkan
komponen atau data-data dari sebuah citra baik yang selanjutnya digunakan untuk
proses klasifikasi. Untuk proses klasifikasi Naive Bayes menggunakan tiga ciri
yaitu ciri warna, deteksi tepi dan gabungan antara warna dan rata-rata vektor.
3.3.1 Proses Ekstraksi Ciri Warna
Untuk mendapatkan ekstrak ciri warna diperoleh dengan algoritma
seperti dibawah ini:
Masukan: matriks dari citra yang berukuran 200 x200 piksel
Keluaran: data ektraksi ciri warna yang berupa matriks 1x4 untuk setiap
citra
1. Masukan citra berukuran 200 x 200 piksel.
2. Membaca citra.
3. Memisahkan RGB.
- Mengambil keping warna merah (Red)
- Mengambil keping warna hijau (Green)
- Mengambil keping warna biru (Blue)
4. Mencari rata-rata RGB.
- Mencari rata-rata keping warna merah (Red)
- Mencari rata-rata keping warna hijau (Green)
- Mencari rata-rata keping warna biru (Blue)
- Mencari rata-rata RGB (Red, Green, Blue)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Hasil dari setiap nilai rata-rata Red, rata-rata Green, rata-rata Blue,
dan rata-rata RGB yang didapat dari proses ekstraksi ciri warna diatas
berupa matriks yang berukuran 1x4 untuk setiap citra masukan.
3.3.2 Proses Ekstraksi Ciri Rata-rata Vektor
Untuk mengenali pola dari citra yang sudah dikenai deteksi tepi
Canny, algoritma rata-rata vektor horizontal nya seperti dibawah ini:
Masukan: matriks dari gambar yang berukuran 200 x200 piksel
Keluaran: matriks nilai rata-rata vektor horizontal 1x8 untuk setiap citra
1. Citra di ubah menjadi gray.
2. Hasil dari citra yang di grayscale dikenai dengan fungsi deteksi
tepi Canny.
3. Citra hasil deteksi tepi dibagi menjadi 8 baris horizontal, dan untuk
setiap barisnya 25x200 piksel dihitung rata-rata nya.
a. For i= 1:25, for k=1:200untuk baris pertama.
b. Mengambil piksel yang bernilai 1, lalu dijumlahkan.
c. Masukkan kedalam sub variabel.
4. Ulangi langkah pada nomor 3 untuk baris ke dua sampai baris ke
delapan dengan menambahkan nilai disetiap baris nya.
5. Hasil penjumlahan piksel setiap baris nya dibagi dengan nilai 5000
di dapat dari 25x200 untuk mencari rata-rata setiap baris
horizontal.
6. Simpan dalam variabel untuk hasil rata-rata setiap baris nya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Kemudian untuk algoritma rata-rata vektor vertikal nya seperti
dibawah ini:
Masukan: matriks dari gambar yang berukuran 200 x200 piksel
Keluaran: nilai rata-rata vektor vertikal berupa matriks 1x8 untuk setiap
citra
1. Citra di ubah menjadi gray.
2. Hasil dari citra yang di grayscale dikenai dengan fungsi deteksi tepi
Canny.
3. Citra hasil deteksi tepi dibagi menjadi 8 baris horizontal, dan untuk
setiap barisnya 25x200 piksel dihitung rata-ratanya.
a) For k=1:25, for i=1:200 untuk baris pertama.
b) Mengambil piksel yang bernilai 1, lalu dijumlahkan.
c) Masukan kedalam sub variabel.
4. Ulangi langkah pada nomor 3 untuk baris kedua sampai ke delapan
dengan menambahkan nilai disetiap barisnya.
5. Hasil penjumlahan piksel setiap barisnya dibagi dengan nilai 5000 di
dapat dari 25x200 untuk mencari rata-rata setiap baris vertikal.
6. Simpan dalam variabel untuk hasil rata-rata setiap baris nya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
3.3.4 Proses Gabungan Ekstraksi Ciri Warna Dan Rata-rata Vektor
Pada proses ini merupakan proses penggabungan ekstraksi ciri
warna dan rata-rata vektor. Hasil dari setiap perhitungan warna yaitu rata-
rata Red, rata-rata Green, rata-rata Blue dan rata-rata RGB digabungkan
dengan ekstraksi ciri deteksi tepi yang berupa rata-rata vektor horizontal
atau vertikal 8 baris. Sehingga akan terbentuk matriks yang berukuran
1x12 setiap citra.
Untuk mendapatkan ekstrak ciri warna dan rata-rata vektor
diperoleh dengan algoritma seperti dibawah ini:
Masukan: matriks dari citra yang berukuran 200 x200 piksel
Keluaran: data ektraksi ciri warna yang berupa matriks 1x4 untuk setiap
citra
1. Masukan citra berukuran 200 x 200 piksel.
2. Membaca citra.
3. Memisahkan RGB.
- Mengambil keping warna merah (Red)
- Mengambil keping warna hijau (Green)
- Mengambil keping warna biru (Blue)
4. Mencari rata-rata RGB.
- Mencari rata-rata keping warna merah (Red)
- Mencari rata-rata keping warna hijau (Green)
- Mencari rata-rata keping warna biru (Blue)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
- Mencari rata-rata RGB (Red, Green, Blue)
5. Citra di ubah menjadi gray.
6. Hasil dari citra yang di grayscale dikenai dengan fungsi deteksi tepi
Canny.
7. Citra hasil deteksi tepi dibagi menjadi 8 baris horizontal, dan untuk
setiap barisnya 25x200 piksel dihitung rata-rata nya.
a. For i= 1:25, for k=1:200untuk baris pertama.
b. Mengambil piksel yang bernilai 1, lalu dijumlahkan.
c. Masukkan kedalam sub variabel.
8. Ulangi langkah pada nomor 3 untuk baris ke dua sampai baris ke
delapan dengan menambahkan nilai disetiap baris nya.
9. Hasil penjumlahan piksel setiap baris nya dibagi dengan nilai 5000 di
dapat dari 25x200 untuk mencari rata-rata setiap baris horizontal.
10. Simpan dalam variabel untuk hasil rata-rata setiap baris nya.
Kemudian untuk algoritma rata-rata vektor vertikal nya seperti
dibawah ini:
11. Citra hasil deteksi tepi dibagi menjadi 8 baris horizontal, dan untuk
setiap barisnya 25x200 piksel dihitung rata-ratanya.
a. For k=1:25, for i=1:200 untuk baris pertama.
b. Mengambil piksel yang bernilai 1, lalu dijumlahkan.
c. Masukan kedalam sub variabel.
12. Ulangi langkah pada nomor 3 untuk baris kedua sampai ke delapan
dengan menambahkan nilai disetiap barisnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
13. Hasil penjumlahan piksel setiap barisnya dibagi dengan nilai 5000 di
dapat dari 25x200 untuk mencari rata-rata setiap baris vertikal.
14. Simpan dalam variabel untuk hasil rata-rata setiap baris nya.
3.4 Perancangan Proses Klasifikasi
Setiap hasil dari ekstrasi ciri warna, rata-rata vektor dan penggabungan
antara warna dan rata-rata vektor pada masing-masing citra, dicari mean dan
stándar deviasi untuk setiap atributnya. Setelah di dapatkan nilai mean dan
stándar deviasi dari ekstraksi ciri masing-masing, nilai tersebut di jadikan sebagai
model untuk training dan testing. Proses klasifikasi dengan menggunakan Naive
Bayes dilakukan dengan ekstraksi ciri sesuai pilihan. Algoritma proses klasifikasi
menggunakan Naive Bayes, seperti dibawah ini:
Masukan: nilai mean, nilai stándar deviasi dan data testing
Keluaran: hasil probabilitas
1. Memasukan nilai mean dan stándar deviasi ke dalam rumus Naive Bayes
bersyarat (2.9).
a. For i =1: m untuk baris dari nilai stándar deviasi setiap kelas
b. For j =1: n untuk jumlah atribut dalam setiap kelas
c. Perhitungan dengan menggunakan rumus Naive Bayes
d. Memasukan data testing ke dalam perhitungan naive bayes satu persatu
e. Hasil dari perhitungan naive bayes di masukan kedalam matriks
bayesian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
2. Kemudian menghitung likelihood setiap nilai yang didapat dari hasil
perhitungan Naive Bayes bersyarat (2.10)
a. For k =1: mBayesian untuk nilai dari hasil perhitungan sebelumya
b. For l =1 : nBayesian untuk nilai dari hasil perhitungan sebelumnya
sesuai dengan jumlah atribut dalam setiap kelasnya
c. Jika terdapat nilai 0 dan NaN, maka nilai tersebut tidak akan dihitung
dalam likelihood
d. Melakukan perhitungan likelihood
e. Simpan hasil dari perhitungan likelihood kedalam matriks likelihood
3. Menghitung nilai probabilitas (2.11).
a. For k= 1: mLikelihood untuk hasil dari setiap perhitungan likelihood
b. Melakukan perhitungan probabilitas
c. Simpan hasil probabilitas dalam matriks probabilitas
d. Kemudian mencari nilai probabilitas yang paling besar untuk
menentukan kain tersebut berasal dari daerah mana
e. Hasil nilai probabilitas yang paling besar disimpan dalam variabel
hasilProbabilitas
4. Ulangi langkah pertama sampai ketiga untuk semua data dari setiap kelas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3.5 Perancangan Proses Akurasi
Untuk mengetahui tingkat keakuratan dari proses klasifikasi ini dengan
cara menghitung akurasi. Berdasarkan pembagian data dengan menggunakan
metode k-fold. Ada tiga pilihan untuk testing dan training yang pertama
menggunakan 2-fold, yang kedua menggunakan 3-fold, dan yang ketiga
menggunakan 5-fold.
Percobaan Testing Training
1 Citra 1, 2, 3, 4, 5 Citra 6, 7, 8, 9, 10
2 Citra 6, 7, 8, 9, 10 Citra 1, 2, 3, 4, 5
Tabel 3. 1 Percobaan 2-fold
Percobaan Testing Training
1 Citra 1, 2, 3 Citra 4, 5, 6, 7, 8, 9, 10
2 Citra 4, 5, 6 Citra 1, 2, 3, 7, 8, 9, 10
3 Citra 7, 8, 9 Citra 1, 2, 3, 4, 5, 6, 10
4 Citra 10, 1, 2 Citra 3, 4, 5, 6, 7, 8, 9
Tabel 3. 2Percobaan 3-fold
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Percobaan Testing Training
1 Citra 1, 2 Citra 3, 4, 5, 6, 7, 8, 9, 10
2 Citra 3, 4 Citra 1, 2, 5, 6, 7, 8, 9, 10
3 Citra 5, 6 Citra 1, 2, 3, 4, 7, 8, 9, 10
4 Citra 7, 8 Citra 1, 2, 3, 4, 5, 6, 9, 10
5 Citra 9, 10 Citra 1, 2, 3, 4, 5, 6, 7, 8
Tabel 3. 3 Percobaan 5-fold
Kemudian dilakukan proses klasifikasi dengan cara seperti pada dibawah ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
3.6 Perancangan Antar Muka
Dibawah ini merupakan perancangan tampilan halaman klasifikasi kain
tradisional nusantara dengan menggunakan algoritma Naive Bayes Classifier:
Gambar 3. 4 Halaman Klasifikasi kain tradisional nusantara menggunakan
Naive Bayes classifier
Pada halaman sistem ini, terdapat tiga bagian penting yaitu:
1. Bagian Preprocessing
Pada bagian ini terdapat tombol ambil data citra yang berfungsi
untuk mengambil folder citra yang akan di proses, dan akan terlihat nama
citra pada listbox nama citra. Kemudian ada tombol ekstraksi ciri yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
digunakan untuk proses mendapatkan ekstraksi ciri warna, dan deteksi tepi
dengan memilih pilihan ekstraksi ciri disamping tombol ekstraksi ciri,
maka citra yang di ekstrak akan muncul pada tampilan citra RGB untuk
citra yang masih mempunyai nilai RGB, tampilan citra gray untuk citra
yang di grayscaling, dan tampilan citra Canny untuk citra yang sudah
dikenai deteksi tepi menggunakan Canny.
Gambar 3. 5 Tampilan Preprocesing
2. Bagian Klasifikasi 100 Data
Pada bagian ini terdapat pilihan k-fold untuk pembagian data
training dan testing yang di inginkan, ada 3 pilihan yaitu 2-fold, 3-fold,
dan 5-fold. Kemudian tombol klasifikasi yang berfungsi untuk proses
klasifikasi citra yang sudah didapat ekstraksi ciri nya menggunakan Naive
Bayes classifier dan akan terlihat hasil klasifikasi benar nya dalam akurasi
yang berupa persen.
Gambar 3. 6 Tampilan Klasifikasi 100 Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
3. Bagian Klasifikasi dari data user
Pada bagian ini terdapat tombol uji yang digunakan untuk
mengambil citra yang akan diuji, kemudian citra akan langsung terlihat
pada tampilan citra tes dan akan terlihat hasil probabilitas dengan citra
yang terlihat pada citra hasil.
Gambar 3. 7 Tampilan Klasifikasi Dari Data User
3.7 Kebutuhan Hardware dan Software
Hardware dan Software yang digunakan dalam pembuatan sistem
klasifikasi kain tradisional nusantara ini adalah:
1. Processor : AMD dual-core C60 APU
2. Sistem Operasi : Microsoft Window 7
3. Media Tampilan : VGA AMD Radeon HD 4200 128MB
4. Media Masukkan : Mouse, Keyboard
5. Memory : 2 GB DDR3 Memory
6. Storage : 320GB HDD
7. Software : Matlab2012, Photoscape
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
BAB IV
IMPLEMENTASI SISTEM
4.1 Implementasi Klasifikasi
Pada bab ini merupakan implementasi dari perancangan sistem klasifikasi
dengan menggunakan 100 data citra yang meliputi proses memotong citra menjadi
200x200 piksel, ekstraksi setiap ciri yaitu ciri warna dan rata-rata vektor
horizontal dan vertikal serta klasifikasi Naive Bayes.
4.1.1 Implementasi Memotong Citra
Pada proses memotong citra ini menggunakan aplikasi photoscape,
karena penggunaannya yang mudah. Citra kain yang berukuran 460x572
piksel seperti pada gambar 4.1 dimasukan kedalam aplikasi photoscape.
Kemudian melakukan proses croping berukuran 200x200 piksel.
Gambar 4. 1Proses Cropping Citra kain 460x572
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Setelah proses croping selesai terlihat potongan kain yang
berukuran 200x200 piksel seperti pada gambar 4.3, yang akan digunakan
sebagai data kain untuk selanjutnya dilakukan ekstraksi ciri warna dan
rata-rata vektor horizontal atau vertikal.
Gambar 4. 2 Citra kain 200x200 piksel
4.1.2 Implementasi Ekstraksi Ciri Warna
Dibawah ini merupakan implementasi untuk ekstraksi ciri warna
yang meliputi memisahkan warna Red, Green, Blue dan menghitung rata-
rata Red, Green, Blue serta menghitung rata-rata RGB.
%Membaca Citra citra=imread(gambar);
%Memisahkan RGB dan mencari rata2 RGB meanR=0; meanG=0; meanB=0; meanRGB=0; dR=citra(:,:,1); dG=citra(:,:,2); dB=citra(:,:,3); meanR=mean(mean(dR)); meanG=mean(mean(dG)); meanB=mean(mean(dB)); meanRGB=meanR+meanG+meanB/3;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Hasil dari setiap ekstraksi ciri warna disimpan dalam matriks yang
berukuran 1x4 untuk setiap citra dalam setiap kelas, seperti dibawah ini:
Gambar 4. 3 Tabel Ekstrak Ciri Warna
Pada kolom ke-1 merupakan nilai meanR, kolom ke-2 merupakan
nilai meanG, kolom ke-3 merupakan nilai meanB, dan kolom ke-4
merupakan nilai meanRGB. Kolom terakhir merupakan identitas kelas
atau daerah dari masing-masing citra.
4.1.3 Implementasi Ekstraksi Ciri Rata-rata Vektor
Dibawah ini merupakan implementasi proses deteksi tepi
menggunakan algoritma Canny. Sebelum melakukan ekstraksi ciri untuk
mencari rata-rata vektor horizontal atau vertikal, mengubah citra kain asli
yang berukuran 200x200 menjadi grayscaling untuk selanjutnya dilakukan
deteksi tepi menggunakan algoritma Canny. Hasil dari algoritma Canny ini
berupa citra hitam putih yang bernilai 0 dan 1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
%Membaca Citra citra=imread(gambar);
%Mengubah Citra RGB Menjadi Grayscale grey= rgb2gray(citra); % imshow (grey); %Melakukan deteksi tepi hsl= edge(grey,'Canny');
Gambar 4. 4Proses Deteksi tepi Canny
1. Implementasi rata-rata vektor horizontal
Dibawah ini merupakan implementasi untuk mendapatkan ciri rata-rata
vektor horizontal:
%Membagi dalam vektor horizontal obyek=1; sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0;
sum8=0;
for i=1:piksel*1 for k=1:m if (hsl(i,k)==obyek) sum1=sum1+1; end end end for i=piksel*1+1:piksel*2 for k=1:m if (hsl(i,k)==obyek) sum2=sum2+1; end end end for i=piksel*2+1:piksel*3 for k=1:m if (hsl(i,k)==obyek) sum3=sum3+1; end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
end for i=piksel*3+1:piksel*4 for k=1:m if (hsl(i,k)==obyek) sum4=sum4+1; end end end for i=piksel*4+11:piksel*5 for k=1:m if (hsl(i,k)==obyek) sum5=sum5+1; end end end for i=piksel*5+1:piksel*6 for k=1:m if (hsl(i,k)==obyek) sum6=sum6+1; end end end for i=piksel*6+1:piksel*7 for k=1:m if (hsl(i,k)==obyek) sum7=sum7+1; end end end for i=piksel*7+1:piksel*8 for k=1:m if (hsl(i,k)==obyek) sum8=sum8+1; end end end
h1 =sum1/pembagi; h2 =sum2/pembagi; h3 =sum3/pembagi; h4 =sum4/pembagi; h5 =sum5/pembagi; h6 =sum6/pembagi; h7 =sum7/pembagi;h8 =sum8/pembagi; end
Untuk menyimpan nilai setiap vektor horizontal menggunakan
variabel h1 sampai h8. Nilai vektor didapat dari jumlah piksel yang
bernilai 1 di setiap vektor di bagi pembagi, yaitu 5000 didapat dari ukuran
setiap vektor 25 x 200 piksel.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Gambar 4. 5 Proses membagi citra kedalam vektor horizontal
Hasil rata-rata dari setiap vektor horizontal disimpan dalam matriks yang
berukuran 1x8 seperti dibawah ini:
Gambar 4. 6Tabel Ekstrak Ciri Vektor Horizontal
Dari kolom ke-1 sampai kolom ke-8 merupakan nilai setiap vektor
horizontal, kolom terakhir atau ke-9 menandakan kelas. Kelas ke-1
menandakan daerah ke-1 yaitu Bali, dan seterusnya hingga kelas ke-10
atau daerah ke-10, yaitu Yogyakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
2. Implementasi rata-rata vektor vertikal
Dibawah ini merupakan implementasi untuk mendapatkan ciri rata-rata
vektor vertikal:
%Membagi dalam vektor veertikal obyek=1; sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0;
sum8=0;
for i=1:n
for k=1:piksel*1 if (hsl(i,k)==obyek) sum1=sum1+1; end end end for i=1:n for k=piksel*1+1:piksel*2 if (hsl(i,k)==obyek) sum2=sum2+1; end end end for i=1:n for k=piksel*2+1:piksel*3 if (hsl(i,k)==obyek) sum3=sum3+1; end end end for i=1:n for k=piksel*3+1:piksel*4 if (hsl(i,k)==obyek) sum4=sum4+1; end end end for i=1:n for k=piksel*4+11:piksel*5 if (hsl(i,k)==obyek) sum5=sum5+1; end end end for i=1:n for k=piksel*5+1:piksel*6 if (hsl(i,k)==obyek) sum6=sum6+1; end end end for i=1:n
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
for k=piksel*6+1:piksel*7 if (hsl(i,k)==obyek) sum7=sum7+1; end end end for i=1:n for k=piksel*7+1:piksel*8 if (hsl(i,k)==obyek) sum8=sum8+1; end end
h1 =sum1/pembagi; h2 =sum2/pembagi; h3 =sum3/pembagi; h4 =sum4/pembagi; h5 =sum5/pembagi; h6 =sum6/pembagi; h7 =sum7/pembagi;h8 =sum8/pembagi; end
Untuk menyimpan nilai setiap vektor vertikal menggunakan
variabel h1 sampai h8. Nilai vektor didapat dari jumlah piksel yang
bernilai 1 di setiap vektor di bagi pembagi, yaitu 5000 didapat dari ukuran
setiap vektor 25 x 200 piksel.
Gambar 4. 7 Proses membagi citra kedalam vektor vertikal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Hasil rata-rata dari setiap vektor vertikal disimpan dalam matriks yang
berukuran 1x8 seperti dibawah ini:
Gambar 4. 8 Tabel Ekstrak Ciri Vektor Vertikal
4.1.4 Implementasi Ekstraksi Ciri Warna dan Rata-rata Vektor
Dibawah ini merupakan implementasi untuk mendapatkan ciri
warna dan rata-rata vektor horizontal atau vertikal:
%Membaca Citra citra=imread(gambar); %Memisahkan RGB dan mencari rata2 RGB serta Kadar RGB meanR=0; meanG=0; meanB=0; meanRGB=0; dR=citra(:,:,1); dG=citra(:,:,2); dB=citra(:,:,3); meanR=mean(mean(dR)); meanG=mean(mean(dG)); meanB=mean(mean(dB)); meanRGB=meanR+meanG+meanB/3; %Mengubah Citra RGB Menjadi Grayscale grey= rgb2gray(citra); % imshow (grey); %Melakukan deteksi tepi hsl= edge(grey,'Canny'); %Membagi dalam vektor obyek=1; sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0;
sum8=0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
for i=1:piksel*1 for k=1:m if (hsl(i,k)==obyek) sum1=sum1+1; end end end for i=piksel*1+1:piksel*2 for k=1:m if (hsl(i,k)==obyek) sum2=sum2+1; end end end for i=piksel*2+1:piksel*3 for k=1:m if (hsl(i,k)==obyek) sum3=sum3+1; end end end for i=piksel*3+1:piksel*4 for k=1:m if (hsl(i,k)==obyek) sum4=sum4+1; end end end for i=piksel*4+11:piksel*5 for k=1:m if (hsl(i,k)==obyek) sum5=sum5+1; end end end for i=piksel*5+1:piksel*6 for k=1:m if (hsl(i,k)==obyek) sum6=sum6+1; end end end for i=piksel*6+1:piksel*7 for k=1:m if (hsl(i,k)==obyek) sum7=sum7+1; end end end for i=piksel*7+1:piksel*8 for k=1:m if (hsl(i,k)==obyek) sum8=sum8+1; end end for i=1:n
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
for k=1:piksel*1 if (hsl(i,k)==obyek) sum1=sum1+1; end end end for i=1:n for k=piksel*1+1:piksel*2 if (hsl(i,k)==obyek) sum2=sum2+1; end end end for i=1:n for k=piksel*2+1:piksel*3 if (hsl(i,k)==obyek) sum3=sum3+1; end end end for i=1:n for k=piksel*3+1:piksel*4 if (hsl(i,k)==obyek) sum4=sum4+1; end end end for i=1:n for k=piksel*4+11:piksel*5 if (hsl(i,k)==obyek) sum5=sum5+1; end end end for i=1:n for k=piksel*5+1:piksel*6 if (hsl(i,k)==obyek) sum6=sum6+1; end end end for i=1:n for k=piksel*6+1:piksel*7 if (hsl(i,k)==obyek) sum7=sum7+1; end end end for i=1:n for k=piksel*7+1:piksel*8 if (hsl(i,k)==obyek) sum8=sum8+1; end end h1 =sum1/pembagi; h2 =sum2/pembagi;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
h3 =sum3/pembagi; h4 =sum4/pembagi; h5 =sum5/pembagi; h6 =sum6/pembagi; h7 =sum7/pembagi; h8 =sum8/pembagi; end
Hasil dari setiap ekstraksi ciri warna dan rata-rata vektor horizontal atau
vertikal disimpan dalam vektor yang berukuran 1x12, seperti dibawah ini:
Gambar 4. 9 Tabel Ekstrak Ciri Warna & Vektor Horizontal
Gambar 4. 10 Tabel Ekstrak Ciri Warna & Vektor Vertikal
Dari kolom ke-1 sampai kolom ke-12 merupakan nilai setiap ciri
warna dan rata-rata vektor, dan kolom terakhir atau ke-13 menandakan
kelas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
4.1.5 Implementasi Klasifikasi menggunakan Naive Bayes
Dibawah ini merupakan implementasi untuk proses klasifikasi
menggunakan algoritma Naive Bayes:
load 'data.mat','data'; load 'data.mat','lv_size'; % Data dimasukkan di dalam cell % Cell menunjukkan class nCitraPerClass=str2double(get(handles.edJmlCitraPerKelas,'St
ring')); kelas=str2double(get(handles.edJmlDaerah,'String')); jmlData=nCitraPerClass*kelas; kfold=handles.kfold; nTest=floor(nCitraPerClass/kfold) [~,nData]=size(data); dataTemp=[];%matriks kosong class=1; for i=1:jmlData %looping untuk memisahkan data per kelas
dalam masing2 cell if data(i,nData)==class dataTemp=[dataTemp;data(i,:)]; end if mod(i,nCitraPerClass) == 0 dataCell{class}=dataTemp; class=class+1; dataTemp=[]; end end
Data dalam setiap kelas dimasukan kedalam cell. Jumlah cell
sesuai dengan jumlah kelas atau daerah yaitu terdapat 10 cell. Pembagian
citra dalam setiap cell bertujuan untuk memudahkan membagi setiap 10
citra didalam satu kelas. Dibawah ini merupakan data citra yang telah
dimasukan kedalam setiap cell:
Gambar 4. 11 Data di dalam cell
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
idx1=1; %batasan untuk ambil data testing idx2=nTest; %batasan untuk ambil data testing sesuai dgn k-
fold nBenar=0; % menampung jumlah benar utk akurasi nSalah=0; %menampung jumlah salah utk akurasi for z=1:nCitraPerClass/nTest % looping trainng testing % Mencari std dan mean for i=1:class %dataCell{i}=zscore(dataCell{i}(:,1:12)); dataTest{i}=dataCell{i}(idx1:idx2,:); % mengambil
data testing trainingTemp=dataCell(i); %mengambil data dari cell
utk training semuanya trainingTemp{:}(idx1:idx2,:)=[]; ttaining=trainingTemp{:}; %data dr trainingtemp
dimasukan kdalam training rerataTrain(i,1:nData-1)=mean(ttaining(:,1:nData-
1)); rerataTrain(i,nData)=i; stdTrain(i,1:nData-1)=std(ttaining(:,1:nData-1)); stdTrain(i,nData)=i; end
Data citra dari hasil ekstraksi ciri yang telah dimasukan kedalam
masing-masing cell digunakan untuk menentukan pengambilan data
testing sesuai dengan k-fold. Data citra dari setiap cell juga digunakan
sebagai data training dan digunakan untuk perhitungan mean dan stándar
deviasi, seperti dibawah ini:
Gambar 4. 12 Tabel Mean Ekstrak Ciri Warna & Vektor Horizontal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Gambar 4. 13 Tabel Stándar Deviasi Ekstrak Ciri Warna & Vektor
Horizontal
Nilai diatas merupakan nilai mean dan stándar deviasi dari setiap
atribut dari ekstraksi ciri warna dan rata-rata vektor horizontal atau
vertikal. Setiap satu baris nya merupakan nilai mean dan stándar deviasi
dari satu kelas.
% naïve Bayes for i=1:class for j=1:nTest
rerataTesting=dataTest{i}(j,1:nData-1);
stdTraining=stdTrain(:,1:nData-1); rerataTraining=rerataTrain(:,1:nData-1);
[ idxLabel,hasilProbabilitas ] =
bayesKu(stdTraining,rerataTraining,rerataTesting
if idxLabel == i %jika idxlabel hsil prob sama dengan kelas
yg sdang di proses , mka nilai benar akan dijumlahkan nBenar=nBenar+1; end end end % proses menentukan index dta testing idx1=idx1+nTest; idx2=idx2+nTest; end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
% Implementasi algoritma naïve Bayes
[m,n]=size(stdTraining); bayesian=zeros(size(stdTraining(1,1:end))); for i=1:m for j=1:n bays1=1/(sqrt(2*pi)*stdTraining(i,j)); bays2=exp(-(((rerataTesting(1,j) -
rerataTraining(i,j))^2)/(2*((stdTraining(i,j))^2)))); bayesian(i,j)=bays1*bays2; end end menghitung likelihood [idxLabel,hasilProbabilitas]=cariProbabilitas(bayesian); function
[idxLabel,hasilProbabilitas]=cariProbabilitas(bayesian) [mBayesian,nBayesian]=size(bayesian);
likehood=zeros(mBayesian,1); likehoodTempt=1; for k=1:mBayesian for l=1:nBayesian
if (bayesian(k,l) ~= 0) && (~isnan(bayesian(k,l))) %
membatasi untuk supaya nilai 0 dan nan
likehoodTempt=likehoodTempt*bayesian(k,l); end end likehood(k)=likehoodTempt; likehoodTempt=1; end [mLikehood,~]=size(likehood); probabilitas=zeros(size(likehood)); for k=1:mLikehood probabilitas(k)=(likehood(k)/sum(likehood)); end [hasilProbabilitas,idxLabel]=max(probabilitas); end end
Data testing diambil dari setiap kelas sesuai dengan pembagian k-fold
seperti pada gambar dibawah ini:
Gambar 4. 14 Data Testing Dalam Setiap Cell
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Gambar 4. 15 Data Testing Dalam Satu Kelas
Data testing dimasukan dalam proses perhitungan mengunakan
Naive Bayes. Kemudian di cocokan dengan data training, untuk
mengetahui kelas dari citra kain data testing.
Gambar 4. 16 Hasil Probabilitas
Gambar 4. 17 Hasil IdxLabel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Idxlabel merupakan label kelas pada setiap data testing. Jika
Idxlabel dan hasil probabilitas sama dengan kelas yang sedang diproses,
maka hasil benar. Seperti pada matriks diatas, idxlabel bernilai 1, brarti
benar berada pada kelas 1.
4.1.6 Implementasi Akurasi
Dibawah ini merupakan implementasi dari proses akurasi:
akurasi=(nBenar/jmlData)*100; % mencari nilai akurasi
set(handles.txtAcc,'String',num2str(akurasi));
Hasil akurasi klasifikasi citra menggunakan Naive Bayes dengan 5-fold,
dan ekstraksi ciri warna dan vektor horizontal adalah sebagai berikut:
Gambar 4. 18 Hasil Akurasi menggunakan 5-fold
4.1.7 Implementasi Klasifikasi Dari Data User
Dibawah ini merupakan implementasi klasifikasi menggunakan
data masukan dari user:
piksel=25; nCitraPerClass=str2double(get(handles.edJmlCitraPerKelas,'St
ring')); [namaCitra, asalCitra] = uigetfile({'*.jpg'}, 'Pilih
Citra'); [~,nDt]=size(dataTest); dataTest(:,nDt+1)=0;
[~,nData]=size(data);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
dataTemp=[]; class=1; for i=1:lv_size(:,1) if data(i,nData)==class dataTemp=[dataTemp;data(i,:)]; end if mod(i,nCitraPerClass) == 0 dataCell{class}=dataTemp; class=class+1; dataTemp=[]; end end
class=class-1; rerataTrain=zeros(class,class); stdTrain=zeros(class,class);
for i=1:class rerataTrain(i,1:nData-1)=mean(dataCell{i}(:,1:nData-
1)); rerataTrain(i,nData)=i; stdTrain(i,1:nData-1)=std(dataCell{i}(:,1:nData-1)); stdTrain(i,nData)=i; end testing=dataTest(:,1:nDt); stdTraining=stdTrain(:,1:nData-1); rerataTraining=rerataTrain(:,1:nData-1); [idxLabel,hasilProbabilitas]=
bayesKu(stdTraining,rerataTraining,testing); set(handles.txtKemiripan,'String',num2str(hasilProbabilitas*
100));
Hasil dari implementasi klasifikasi dengan data citra dari user adalah
seperti dibawah ini:
Gambar 4. 19 Hasil Probabilitas Data Dari User
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Gambar 4. 20 Hasil Klasifikasi Dari Data User
Dari hasil diatas terlihat bahwa data masukan dari user di cocokkan
dengan data citra yang telah diklasifikasi. Dan hasil dapat diketahui pula
hasil probabilitas tertingginya dalam bentuk persen.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
4.1.8 Implementasi Antar Muka
Dibawah ini merupakan Implementasi tampilan halaman klasifikasi
kain tradisional nusantara dengan menggunakan algoritma Naive Bayes
Classifier:
Gambar 4. 21 Implementasi Antar Muka Klasifikasi Kain Tradisional
Nusantara Dengan Menggunakan Naive Bayes Classifer
Pada saat proses ekstraksi ciri telah selesai, maka akan muncul
peringatan seperti pada gambar dibawah ini:
Gambar 4. 22 Peringatan Ekstraksi Ciri Telah Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
BAB V
PENGUJIAN DAN ANALISA SISTEM
Pada bab ini akan dibahas mengenai hasil dari setiap proses ekstrak ciri,
klasifikasi dan akurasi dari 2 data citra kain yang berbeda serta menganalisa
keluaran dari masing-masing proses.
5.1 Data
Ada dua jenis data citra yang digunakan dalam klasifikasi ini yaitu:
a. Data pertama terdapat 10 kelas yang masing-masing kelasnya terdapat 10
jenis citra kain tradisional. Jadi, total jumlah citra yang digunakan adalah 100
citra yang setiap citranya berukuran 200x200 piksel, seperti terlihat pada
lampiran I.
b. Data kedua terdapat 10 kelas atau daerah yang dalam 1 kelas terdapat 1 jenis
kain tradisional nusantara yang di potong-potong setiap bagiannya menjadi
10 citra kain setiap kelasnya, jadi total keseluruhan citra kain adalah 100 citra
kain dengan ukuran 200x200 piksel setiap citranya, seperti terlihat pada
lampiran II.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
5.2 Akurasi Hasil Klasifikasi Menggunakan Naive Bayes
Dibawah ini merupakan akurasi hasil klasfiikasi citra kain data pertama
menggunakan Naive Bayes:
Ekstraksi Ciri Akurasi Data Pertama
2-fold 3-fold 5-fold
Warna 30% 35% 40%
Vektor Horizontal 17% 21% 22%
Vektor Vertikal 19% 20% 26%
Warna dan Vektor
Horizontal 27% 41% 43%
Warna dan Vektor Vertikal 31% 40% 44%
Tabel 5. 1 Hasil Akurasi Data Pertama
Analisa:
Pada data pertama diketahui mempunyai nilai akurasi rendah di setiap ciri
yang digunakan. Pada klasifikasi menggunakan ciri vektor horisontal mempunyai
nilai akurasi yang rendah yaitu 17% menggunakan 2-fold dibandingkan dengan
penggunaan ciri menggunakan warna. Namun, dengan menggunakan ciri
gabungan yaitu warna dan vektor vertikal mendapatkan nilai lebih baik yaitu 44%
menggunakan 5-fold. Pembagian data menggunakan k-fold juga berpengaruh
dalam penentuan akurasi nya. Selain itu juga dikarenakan pada data pertama yang
ada pada lampiran I, terlihat bahwa kain yang digunakan mempunyai warna yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
tidak identik disetiap daerah atau kelas nya. Motif pada kain data pertama juga
mempunyai motif yang hampir mirip dengan kain dari daerah lainnya.
Ekstraksi Ciri Akurasi Data Kedua
2-fold 3-fold 5-fold
Warna 75% 74% 80%
Vektor Horizontal 42% 45% 46%
Vektor Vertikal 45% 47% 57%
Warna dan Vektor
Horizontal 79% 83% 91%
Warna dan Vektor Vertikal 75% 83% 93%
Tabel 5. 2 Hasil Akurasi Data Kedua
Analisa:
Pada hasil akurasi data kedua mempunyai nilai akurasi yang lebih baik
dibanding dengan nilai akurasi pada penggunaan data pertama. Hal ini
dikarenakan pada data kedua, citra yang digunakan hanya 1 jenis citra kain yang
dipotong menjadi 10 bagian setiap kelasnya sehingga disetiap citra dalam satu
kelas atau daerah mempunyai warna yang identik. Citra dalam satu kelas juga
mempunyai motif yang sama semua atau identik.
Hal ini dapat mempermudah sistem dalam mengenali warna dan motif
citra disetiap kelas nya. Pada klasifikasi menggunakan ciri warna terlihat
mempunyai nilai akurasi yang lebih tinggi dibandingkan dengan menggunakan
ciri vektor horizontal atau vertikal. Untuk penggunaan ciri vektor horizontal atau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
vertikal, cenderung mempunyai nilai akurasi yang rendah dikarenakan motif
untuk setiap citra ada kemungkinan sama dengan citra lain dikelas yang lainnya.
Sedangkan untuk ciri gabungan warna dan vektor horizontal atau vertikal
mendapatkan nilai akurasi yang lebih tinggi yaitu 93%. Hal ini dikarenakan
semakin banyak ciri suatu citra yang digunakan untuk klasifikasi sistem akan
semakin mudah mengenali citra tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
BAB VI
KESIMPULAN DAN SARAN
6.1 Kesimpulan
Kesimpulan dari klasifikasi kain tradisional nusantara menggunakan Naive Bayes
classifier dengan 5 ekstraksi ciri yaitu warna, rata-rata vektor horizontal, rata-rata
vektor vertikal, gabungan warna dan rata-rata vektor horizontal, dan gabungan
warna dan rata-rata vektor vertikal adalah:
Hasil akurasi klasifikasi kain tradisional nusantara dengan data pertama
memiliki akurasi tertinggi pada percobaan menggunakan ekstrak ciri
warna dan vektor vertikal, dengan 5-fold untuk pembagian data training
dan testing nya yaitu sebesar 39%. Sedangkan dengan data kedua memiliki
akurasi tertinggi pada percobaan menggunakan ekstraksi ciri warna dan
vektor vertikal, dengan 5-fold sebesar 93%.
6.2 Saran
1. Dalam klasifikasi kain tradisional nusantara ini hanya menggunakan 10
daerah yang terdapat 10 citra kain yang ada di indonesia. Hal ini perlu di
kembangkan lagi menjadi lebih banyak daerah lagi yang digunakan.
2. Untuk ekstraksi ciri hanya menggunakan warna dan rata-rata vektor, hal
ini dapat dikembangkan lagi dengan menambahkan ciri lainnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
3. Klasifikasi kain tradisional nusantara ini menggunakan algoritma Naive
Bayes classifier, dapat di kembangkan dengan mencoba algoritma
klasifikasi lainnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
DAFTAR PUSTAKA
Ariyantoko, Kusmian. 2014. Implementasi Algoritma Naïve BayesUntuk
Klasifikasi Citra Berdasarkan Ekstraksi Ciri Tekstur Dengan Metode
Matriks Kookurensi. Bandung: Universitas Komputer Indonesia.
Azis, Fauzi & Wulandari, Fitri. 2013. Sistem Temu Kembali Citra Kain Berbasis
Tekstur dan Warna. Riau: Universitas Islam Negeri Sultan Syarif Kasim
Riau.
Canny, J., 1986. A Computational Approach To edge Detection, IEEE Trans.
Pattern Analysisi and Machine Intelligence, vol 8, pages 679-714.
Daftar Motif Kain, Diakses pada tanggal: 28 November 2014 dari:
http://www.budaya-indonesia.org/
Han, J., & Kamber, M.. 2006, Data Mining: Concepts and Techniques 2e, Morgan
Kaufmann Publishers, San Francisco.
Imanuddin. 2010. Pengidentifikasian Batik Berdasarkan Pola Batik dan Ciri-ciri
Batik Menggunakan Ekstraksi Ciri Tekstur kain. Depok: Fakultas
teknologi Industri. Depok.
Melantika, Apriana Sulistia. 2010. Pengenalan Pola Batik Yogyakarta
Menggunakan Metode Hidden Markov Models Dengan Studi Kasus Di
Museum Batik Yogyakarta. Yogyakarta: Universitas Sanata Dharma.
Yogyakarta.
Noviyanto, Ary. 2009. Klasifikasi tingkat kematangan varietas tomat merah
dengan metode perbandingan kadar warna. Yogyakarta: Universitas
Gajah Mada Yogyakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
Rachli, Muhamad.2007. Email Filtering menggunakan Naïve Bayesian. Bandung:
Tugas Akhir Jurusan Teknik Elektro Institut Teknologi Bandung.
Tiarani, Paulina Indah. 2011. Klasifikasi Pola Batik Yogyakarta Dengan
Algoritma ID3. Yogyakarta: Universitas Sanata Dharma Yogyakarta.
Wijaya, Ch. Marvin & Prijono, Agus. 2007. Pengolahan Citra Digital
Menggunakan Matlab. Informatika: Bandung.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
LAMPIRAN I
Data Kain Tradisional Pertama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
LAMPIRAN II
Data Kain Tradisional Kedua
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
LAMPIRAN III
Data testing dari data pertama:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
LAMPIRAN IV
Data testing dari data kedua:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
LAMPIRAN V
Source Code:
BacaData.m
function
[grey,hsl,meanR,meanG,meanB,meanRGB,h1,h2,h3,h4,h5,h6,h7,h8 ] =
BacaData( gambar,pixel,option1,option2 ) %BACADATA Summary of this function goes here % Detailed explanation goes here % KETERANGAN: % * optional1 = 1 --> Warna & vektor % * optional1 = 2 --> Warna % * optional1 = 3 --> Vektor % * optional2 = 1 --> Vektor horizontal % * optional2 = 2 --> Vektor vertikal
% pixel=pixel; %Membaca Citra citra=imread(gambar); [mCitra,~]=size(citra); pembagi=pixel*mCitra;
% imshow (citra); %Memisahkan RGB dan mencari rata2 RGB serta Kadar RGB meanR=0; meanG=0; meanB=0; meanRGB=0; if option1 == 1 || option1 == 2 dR=citra(:,:,1); dG=citra(:,:,2); dB=citra(:,:,3); meanR=mean(mean(dR)); meanG=mean(mean(dG)); meanB=mean(mean(dB)); meanRGB=meanR+meanG+meanB/3; end
%Mengubah Citra RGB Menjadi Grayscale grey= rgb2gray(citra); % imshow (grey); %Melakukan deteksi tepi hsl= edge(grey,'Canny'); [m,n]=size(hsl); % imshow(hsl);
% assignin('base','hsl',hsl);
%Membagi dalam vektor obyek=1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0;
if option1 == 1 || option1 == 3 if option2 == 1 for i=1:pixel*1 for k=1:m if (hsl(i,k)==obyek) sum1=sum1+1; end end end for i=pixel*1+1:pixel*2 for k=1:m if (hsl(i,k)==obyek) sum2=sum2+1; end end end for i=pixel*2+1:pixel*3 for k=1:m if (hsl(i,k)==obyek) sum3=sum3+1; end end end for i=pixel*3+1:pixel*4 for k=1:m if (hsl(i,k)==obyek) sum4=sum4+1; end end end for i=pixel*4+11:pixel*5 for k=1:m if (hsl(i,k)==obyek) sum5=sum5+1; end end end for i=pixel*5+1:pixel*6 for k=1:m if (hsl(i,k)==obyek) sum6=sum6+1; end end end for i=pixel*6+1:pixel*7 for k=1:m if (hsl(i,k)==obyek) sum7=sum7+1; end end end for i=pixel*7+1:pixel*8 for k=1:m
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
if (hsl(i,k)==obyek) sum8=sum8+1; end end end
elseif option2 == 2 for i=1:n for k=1:pixel*1 if (hsl(i,k)==obyek) sum1=sum1+1; end end end for i=1:n for k=pixel*1+1:pixel*2 if (hsl(i,k)==obyek) sum2=sum2+1; end end end for i=1:n for k=pixel*2+1:pixel*3 if (hsl(i,k)==obyek) sum3=sum3+1; end end end for i=1:n for k=pixel*3+1:pixel*4 if (hsl(i,k)==obyek) sum4=sum4+1; end end end for i=1:n for k=pixel*4+11:pixel*5 if (hsl(i,k)==obyek) sum5=sum5+1; end end end for i=1:n for k=pixel*5+1:pixel*6 if (hsl(i,k)==obyek) sum6=sum6+1; end end end for i=1:n for k=pixel*6+1:pixel*7 if (hsl(i,k)==obyek) sum7=sum7+1; end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
end for i=1:n for k=pixel*7+1:pixel*8 if (hsl(i,k)==obyek) sum8=sum8+1; end end end end end
h1 =sum1/pembagi; h2 =sum2/pembagi; h3 =sum3/pembagi; h4 =sum4/pembagi; h5 =sum5/pembagi; h6 =sum6/pembagi; h7 =sum7/pembagi; h8 =sum8/pembagi;
end
Bayesku.m
function [ idxLabel,hasilProbabilitas ] = bayesKu(
stdTraining,rerataTraining,testing ) %UNTITLED Summary of this function goes here % Detailed explanation goes here
[m,n]=size(stdTraining);% m = baris, n = kolom bayesian=zeros(size(stdTraining(1,1:end))); % menyiapkan matrix 0
untk menampung nilai bayes
for i=1:m % looping untuk menghitung bayes for j=1:n % looping untuk n sama dengan jumlah atribut bays1=1/(sqrt(2*pi)*stdTraining(i,j)); bays2=exp(-(((testing(1,j) -
rerataTraining(i,j))^2)/(2*((stdTraining(i,j))^2)))); bayesian(i,j)=bays1*bays2; %hasil dari perhitungan bayes end % bayesian(i,1:end)=zscore(bayesian(i,1:end)); end % assignin('base','bayesian',bayesian);
% bayesian=zscore(bayesian); % assignin('base','bayesianZscore',bayesian);
% membuat fungsi baru, fungsi di dalam fungsi untuk menghitung
likelihood [idxLabel,hasilProbabilitas]=cariProbabilitas(bayesian);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
function
[idxLabel,hasilProbabilitas]=cariProbabilitas(bayesian)
[mBayesian,nBayesian]=size(bayesian); % [baris, kolom dari
hasil bayesian] likehood=zeros(mBayesian,1); %menyiapkan matrix 0 likehoodTempt=1; for k=1:mBayesian % looping untuk likelihood
for l=1:nBayesian % looping untuk nbayesian sama
dengan atribut if (bayesian(k,l) ~= 0) && (~isnan(bayesian(k,l)))
% membatasi untuk supaya nilai 0 dan nan tdak masuk dlm perhtungan
liklihood likehoodTempt=likehoodTempt*bayesian(k,l); end end likehood(k)=likehoodTempt; likehoodTempt=1; end
[mLikehood,~]=size(likehood); % probabilitasTemp=zeros(size(likehood)); probabilitas=zeros(size(likehood));
for k=1:mLikehood probabilitas(k)=(likehood(k)/sum(likehood)); % untuk
mencari prior probabilitas %
probabilitasTemp(k)=(likehood(k)/(likehood(k)+likehood(k))); end
% [hasilProbabilitas,idxLabel]=max(probabilitasTemp); %
[hasilProbabilitas,idxLabel]=max(probabilitas*probabilitasTemp(1))
; [hasilProbabilitas,idxLabel]=max(probabilitas); % untuk
menemtukan kain itu berada dikelas mana dicari yang paling tinggi
nilainya
assignin('base','likehood',likehood); % assignin('base','probabilitas',probabilitas); % assignin('base','hasilProbabilitas',hasilProbabilitas); % assignin('base','idxLabel',idxLabel);
% idxLabel=4; % hasilProbabilitas=likehood(4);
end
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
KlasifikasiNaiveBayes.m
function varargout = KlasifikasiNaiveBayess(varargin) % KLASIFIKASINAIVEBAYESS MATLAB code for
KlasifikasiNaiveBayess.fig % KLASIFIKASINAIVEBAYESS, by itself, creates a new
KLASIFIKASINAIVEBAYESS or raises the existing % singleton*. % % H = KLASIFIKASINAIVEBAYESS returns the handle to a new
KLASIFIKASINAIVEBAYESS or the handle to % the existing singleton*. % %
KLASIFIKASINAIVEBAYESS('CALLBACK',hObject,eventData,handles,...)
calls the local % function named CALLBACK in KLASIFIKASINAIVEBAYESS.M with
the given input arguments. % % KLASIFIKASINAIVEBAYESS('Property','Value',...) creates a
new KLASIFIKASINAIVEBAYESS or raises the % existing singleton*. Starting from the left, property
value pairs are % applied to the GUI before KlasifikasiNaiveBayess_OpeningFcn
gets called. An % unrecognized property name or invalid value makes property
application % stop. All inputs are passed to
KlasifikasiNaiveBayess_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
KlasifikasiNaiveBayess
% Last Modified by GUIDE v2.5 02-Sep-2015 05:23:32
% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn',
@KlasifikasiNaiveBayess_OpeningFcn, ... 'gui_OutputFcn',
@KlasifikasiNaiveBayess_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
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 KlasifikasiNaiveBayess is made visible. function KlasifikasiNaiveBayess_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 KlasifikasiNaiveBayess (see
VARARGIN)
% Choose default command line output for KlasifikasiNaiveBayess handles.output = hObject;
clc; warning off;
axes(handles.axLogoUSD) imshow('Icons\logo.png') axes(handles.axCitraAsli) imshow('Icons\whos.jpg') axes(handles.axGrey) imshow('Icons\whos.jpg') axes(handles.axCanny) imshow('Icons\whos.jpg') axes(handles.axCitraTest) imshow('Icons\whos.jpg') axes(handles.axCitraHasil) imshow('Icons\whos.jpg')
handles.optional=1; handles.kfold=2;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes KlasifikasiNaiveBayess wait for user response (see
UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = KlasifikasiNaiveBayess_OutputFcn(hObject,
eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
% 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 btnAmbildirektori. function btnAmbildirektori_Callback(hObject, eventdata, handles) % hObject handle to btnAmbildirektori (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
dirName = uigetdir('citra\','cari folder data gambar');
if dirName ~= 0 set(handles.edAlmtCitraTraining,'String',dirName); files = dir(fullfile(dirName,'*.jpg')); A = {files.name}; N = cellfun( @str2double, regexp(A, '\d+', 'match')); [~,I] = sort(N); set(handles.lbNmFileCitra,'String',A(I)); set(handles.txtJmlData,'String',num2str(size(A,2))); pengaturanComponent(handles,1); else pengaturanComponent(handles,0); end
% --- Executes on button press in btnEkstrakciri. function btnEkstrakciri_Callback(hObject, eventdata, handles)
clc; set(handles.txtAcc,'String','0'); speed=0.01;
% Penentuan arah vektor pixel=25; nCitraPerClass=str2double(get(handles.edJmlCitraPerKelas,'String')
); kelas=str2double(get(handles.edJmlDaerah,'String')); jmlData=nCitraPerClass*kelas; % val = get(handles.ppmEdge,'Value'); % tepi=get(handles.ppmEdge,'String'); % handles.tepi=tepi{val}; option1=handles.optional; if option1 == 1 %warna dan vektor vektorH=get(handles.rbH,'Value'); % vektorV=get(handles.rbV,'Value') if vektorH==1 %vektor horisontal option2=1; %vektor horisontal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
else option2=2; %vektor vertikal end elseif option1 == 2 %warna option2=3; % bukan vertikal n horisontal elseif option1 == 3 %vektor vektorH=get(handles.rbH,'Value'); % vektorV=get(handles.rbV,'Value') if vektorH==1 %vektor horisontal option2=1; %vektor horisontal else option2=2; %vektor vertikal end end
% Mengambil MeanRGB dan VektorH untuk selanjutnya ditampilkan di
dalam % variabel data. lv = get(handles.lbNmFileCitra, 'String'); dirName = get(handles.edAlmtCitraTraining,'String'); lv_size = size(lv); %jumlah data ato jumlah file gambar data=zeros(lv_size(:,1), kelas); %membuat matriks kosong untuk
menampung data nilai 0 progresTemp=100/lv_size(:,1); progres=0; class=1; % for i=1:lv_size(:,1) for i=1:jmlData %looping baca file gambar, sejumlah data yang
digunakan dirFile = strcat(dirName,'\',lv(i)); % dirFile = strcat(dirName,'\',num2str(i),'.jpg'); set(handles.lbNmFileCitra,'Value',i) image = char(dirFile); % i_str = int2str(i); % disdat=strcat('processing data ke-',i_str); % disdat=char(disdat); % disp(disdat); axes(handles.axCitraAsli) imshow(image) %
[cr1,cr2,cr3,cr4,cr5,cr6,cr7,cr8,cr9,cr10,cr11,cr12,cr13] =
BacaData(image); [grey,hsl,meanR,meanG,meanB,meanRGB,h1,h2,h3,h4,h5,h6,h7,h8] =
BacaData(image,pixel,option1,option2);
axes(handles.axGrey) imshow(grey) axes(handles.axCanny) imshow(hsl)
if option1 == 1
dataTemp1=[meanR,meanG,meanB,meanRGB,h1,h2,h3,h4,h5,h6,h7,h8]; elseif option1 == 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
dataTemp1=[meanR,meanG,meanB,meanRGB];
elseif option1 == 3 dataTemp1=[h1,h2,h3,h4,h5,h6,h7,h8]; end
[~,nDc]=size(dataTemp1);
% dataTemp1=zscore(dataTemp1); for j=1:nDc dataTemp2(i,j)=dataTemp1(j); %menampung data dataTemp2(i,nDc+1)=class; %pemberian label kelas untuk
setiap data yang diproses end if mod(i,nCitraPerClass) == 0
class=class+1; end
% Progres progres=progres+progresTemp; set(handles.txtProses,'String',[num2str(int8(progres)),' ']); pause(speed); end data=dataTemp2; %hasil ekstrak ciri
% dataTemp=zscore(data(:,1:nDc)); % [ dataTemp, ~ ] = pca( data(:,1:nDc), 0); % dataTemp=zscore(dataTemp(:,1:nDc)); % data=[dataTemp,data(:,nDc+1)];
save('data.mat','data','lv_size');
uiwait(msgbox('Proses ekstrak ciri telah
selesai','Peringatan','modal')); % guidata(hObject, handles);
% --- Executes on button press in btnKlasifikasi. function btnKlasifikasi_Callback(hObject, eventdata, handles)
%#ok<INUSD,DEFNU> % hObject handle to btnKlasifikasi (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
clc;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
load 'data.mat','data'; load 'data.mat','lv_size'; % Data dimasukkan di dalam cell % Cell menunjukkan class
nCitraPerClass=str2double(get(handles.edJmlCitraPerKelas,'String')
); kelas=str2double(get(handles.edJmlDaerah,'String')); jmlData=nCitraPerClass*kelas; kfold=handles.kfold; nTest=floor(nCitraPerClass/kfold)
[~,nData]=size(data); dataTemp=[];%matriks kosong class=1; % for i=1:lv_size(:,1) for i=1:jmlData %looping untuk memisahkan data per kelas dalam
masing2 cell if data(i,nData)==class dataTemp=[dataTemp;data(i,:)]; end if mod(i,nCitraPerClass) == 0 dataCell{class}=dataTemp; class=class+1; dataTemp=[]; end end
assignin('base','data',dataCell); class=class-1; rerataTrain=zeros(class,class); %membuat matrix 0 untuk rata2
training stdTrain=zeros(class,class); %membuat matrix 0 untuk std training
idx1=1; %batasan untuk ambil data testing idx2=nTest; %batasan untuk ambil data testing sesuai dgn k-fold nBenar=0; % menampung jumlah benar utk akurasi nSalah=0; %menampung jumlah salah utk akurasi
for z=1:nCitraPerClass/nTest % looping trainng testing % Mencari std dan mean for i=1:class % dataCell{i}=zscore(dataCell{i}(:,1:12)); dataTest{i}=dataCell{i}(idx1:idx2,:); % mengambil data
testing
trainingTemp=dataCell(i); %mengambil data dari cell utk
training semuanya trainingTemp{:}(idx1:idx2,:)=[]; %data testing nya d hapus
dr trainingtemp ttaining=trainingTemp{:}; %data dr trainingtemp dimasukan
kdalam training rerataTrain(i,1:nData-1)=mean(ttaining(:,1:nData-1)); %
kalau ada -1 brarti kelasnya tdak dihitung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
rerataTrain(i,nData)=i; % selesai menghitung rata2
kelasnya dimasukan lagi kdalam rerata train di indeks trakhir stdTrain(i,1:nData-1)=std(ttaining(:,1:nData-1)); stdTrain(i,nData)=i; end
assignin('base','rerataTrain',rerataTrain); assignin('base','stdTrain',stdTrain); % assignin('base','dataTest',dataTest); % assignin('base','dataNorm',dataCell);
% Bayes % Akurasi %Tambahan untuk mengeluarkan hasil klasifikasi idxSemuaLabel=[]; %<<< hasilSemuaProb=[]; %<<< benarSalah=[]; %<<< for i=1:class %looping berdasarkan kelas for j=1:nTest %looping sejumlah data test testing=dataTest{i}(j,1:nData-1); % mengambil nilai
data test dari masing2 data testing % rerataTesting=mean(dataTest{i}(:,1:12)); stdTraining=stdTrain(:,1:nData-1); rerataTraining=rerataTrain(:,1:nData-1); [ idxLabel,hasilProbabilitas ] =
bayesKu(stdTraining,rerataTraining,testing); % masuk proses bayes idxSemuaLabel(i,j)=idxLabel; %<<< hasilSemuaProb(i,j)=hasilProbabilitas; %<<<
if idxLabel == i %jika idxlabel hsil prob sama dengan
kelas yg sdang di proses , mka nilai benar akan dijumlahkan nBenar=nBenar+1;% jumlah nilai benar benarSalah{i,j}='BENAR'; %<<< else benarSalah{i,j}='salah'; %<<< end end end % proses menentukan index dta testing idx1=idx1+nTest; idx2=idx2+nTest; end % assignin('base','dataTest',dataTest); assignin('base','idxSemuaLabel',idxSemuaLabel); assignin('base','hasilSemuaProb',hasilSemuaProb); assignin('base','benarSalah',benarSalah); % assignin('base','hasilProbabilitas',hasilProbabilitas); % assignin('base','nBenar',nBenar);
akurasi=(nBenar/jmlData)*100; % mencari nilai akurasi set(handles.txtAcc,'String',num2str(akurasi));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
% --- Executes on button press in btnTest. function btnTest_Callback(hObject, eventdata, handles) % hObject handle to btnTest (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA) clc; pixel=25; nCitraPerClass=str2double(get(handles.edJmlCitraPerKelas,'String')
); [namaCitra, asalCitra] = uigetfile({'*.jpg'}, 'Pilih Citra');
if namaCitra ~=0 load 'data.mat','data'; load 'data.mat','lv_size'; % val = get(handles.ppmEdge,'Value'); % tepi=get(handles.ppmEdge,'String'); % handles.tepi=tepi{val}; option1=handles.optional; if option1 == 1 vektorH=get(handles.rbH,'Value'); % vektorV=get(handles.rbV,'Value') if vektorH==1 option2=1; else option2=0; end elseif option1 == 2 option2=3; elseif option1 == 3 vektorH=get(handles.rbH,'Value'); % vektorV=get(handles.rbV,'Value') if vektorH==1 option2=1; else option2=2; end end asalNamaFile=fullfile(asalCitra,namaCitra); set(handles.edDirTest,'String',asalNamaFile); axes(handles.axCitraTest) imshow(asalNamaFile)
set(handles.txtCitraTest,'String',namaCitra);
image = char(asalNamaFile); [~,~,meanR,meanG,meanB,meanRGB,h1,h2,h3,h4,h5,h6,h7,h8] =
BacaData(image,pixel,option1,option2);
if option1 == 1
dataTest=[meanR,meanG,meanB,meanRGB,h1,h2,h3,h4,h5,h6,h7,h8]; elseif option1 == 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
dataTest=[meanR,meanG,meanB,meanRGB];
elseif option1 == 3 dataTest=[h1,h2,h3,h4,h5,h6,h7,h8]; end
[~,nDt]=size(dataTest); dataTest(:,nDt+1)=0;
[~,nData]=size(data); dataTemp=[]; class=1; for i=1:lv_size(:,1) if data(i,nData)==class dataTemp=[dataTemp;data(i,:)]; end if mod(i,nCitraPerClass) == 0 dataCell{class}=dataTemp; class=class+1; dataTemp=[]; end end
class=class-1; rerataTrain=zeros(class,class); stdTrain=zeros(class,class);
for i=1:class % % dataCell{i}=zscore(dataCell{i}(:,1:12)); % dataTest{i}=dataCell{i}(idx1:idx2,:);
% trainingTemp=dataCell(i); % trainingTemp{:}(idx1:idx2,:)=[]; % ttaining=trainingTemp{:}; rerataTrain(i,1:nData-1)=mean(dataCell{i}(:,1:nData-1)); rerataTrain(i,nData)=i; stdTrain(i,1:nData-1)=std(dataCell{i}(:,1:nData-1)); stdTrain(i,nData)=i; end
% for i=1:class % for j=1:nTest testing=dataTest(:,1:nDt); % rerataTesting=mean(dataTest{i}(:,1:12)); stdTraining=stdTrain(:,1:nData-1); rerataTraining=rerataTrain(:,1:nData-1); [ idxLabel,hasilProbabilitas ] =
bayesKu(stdTraining,rerataTraining,testing) % if idxLabel == i % nBenar=nBenar+1; % end % end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
% end
set(handles.txtKemiripan,'String',num2str(hasilProbabilitas*100));
asalKain=''; folder=get(handles.edAlmtCitraTraining,'String'); if idxLabel == 1 axes(handles.axCitraHasil) imshow(strcat(folder,'\1.jpg')) asalKain='Bali'; elseif idxLabel == 2 axes(handles.axCitraHasil) imshow(strcat(folder,'\11.jpg')) asalKain='Bengkulu'; elseif idxLabel == 3 axes(handles.axCitraHasil) imshow(strcat(folder,'\21.jpg')) asalKain='KalSel'; elseif idxLabel == 4 axes(handles.axCitraHasil) imshow(strcat(folder,'\31.jpg')) asalKain='Lampung'; elseif idxLabel == 5 axes(handles.axCitraHasil) imshow(strcat(folder,'\41.jpg')) asalKain='Lombok'; elseif idxLabel == 6 axes(handles.axCitraHasil) imshow(strcat(folder,'\51.jpg')) asalKain='NTT'; elseif idxLabel == 7 axes(handles.axCitraHasil) imshow(strcat(folder,'\61.jpg')) asalKain='Papua'; elseif idxLabel == 8 axes(handles.axCitraHasil) imshow(strcat(folder,'\71.jpg')) asalKain='Pekalongan'; elseif idxLabel == 9 axes(handles.axCitraHasil) imshow(strcat(folder,'\81.jpg')) asalKain='SuMut'; elseif idxLabel == 10 axes(handles.axCitraHasil) imshow(strcat(folder,'\91.jpg')) asalKain='Yogyakarta'; % elseif idxLabel == 11 % axes(handles.axCitraHasil) % imshow(strcat(folder,'\201.jpg')) % asalKain='Riau'; % elseif idxLabel == 12 % axes(handles.axCitraHasil) % imshow(strcat(folder,'\221.jpg')) % asalKain='SumSel';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
% elseif idxLabel == 13 % axes(handles.axCitraHasil) % imshow(strcat(folder,'\241.jpg')) % asalKain='Yogyakarta'; end
set(handles.txtCitraHasil,'String',asalKain);
end
function pengaturanComponent(handles,aktif) if aktif == 1 set(handles.ppupOptional,'Value',1); set(handles.ppupOptional,'Enable','on'); set(handles.rbH,'Enable','on'); set(handles.rbV,'Enable','on'); % set(handles.ppmEdge,'Enable','on'); set(handles.edJmlDaerah,'Enable','on'); set(handles.edJmlCitraPerKelas,'Enable','on'); set(handles.btnEkstrakciri,'Enable','on'); set(handles.btnTest,'Enable','on'); set(handles.lbNmFileCitra,'Value',1) set(handles.txtProses,'String','0 '); else set(handles.ppupOptional,'Enable','inactive'); set(handles.rbH,'Enable','inactive'); set(handles.rbV,'Enable','inactive'); % set(handles.ppmEdge,'Enable','inactive'); set(handles.edJmlDaerah,'Enable','inactive'); set(handles.edJmlCitraPerKelas,'Enable','inactive'); set(handles.btnEkstrakciri,'Enable','inactive'); set(handles.btnTest,'Enable','inactive'); set(handles.lbNmFileCitra,'String',{'Nama Citra'}); set(handles.lbNmFileCitra,'Value',1) set(handles.txtJmlData,'String','0 '); set(handles.txtProses,'String','0 '); end
% --- Executes on selection change in ppupOptional. function ppupOptional_Callback(hObject, eventdata, handles) % hObject handle to ppupOptional (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns
ppupOptional contents as cell array % contents{get(hObject,'Value')} returns selected item from
ppupOptional handles.optional=get(hObject,'Value'); optional=handles.optional;
if optional == 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
set(handles.rbH,'Enable','on'); set(handles.rbV,'Enable','on'); % set(handles.ppmEdge,'Enable','on'); elseif optional == 2 set(handles.rbH,'Enable','off'); set(handles.rbV,'Enable','off'); % set(handles.ppmEdge,'Enable','off'); elseif optional == 3 set(handles.rbH,'Enable','on'); set(handles.rbV,'Enable','on'); % set(handles.ppmEdge,'Enable','on'); end guidata(hObject, handles);
% --- Executes during object creation, after setting all
properties. function ppupOptional_CreateFcn(hObject, eventdata, handles) % hObject handle to ppupOptional (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: popupmenu controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on selection change in ppmKFold. function ppmKFold_Callback(hObject, eventdata, handles) % hObject handle to ppmKFold (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns
ppmKFold contents as cell array % contents{get(hObject,'Value')} returns selected item from
ppmKFold
kfold=get(hObject,'Value'); if kfold == 1 handles.kfold = 2; elseif kfold == 2 handles.kfold = 3; elseif kfold == 3 handles.kfold = 5; end guidata(hObject, handles);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
% --- Executes during object creation, after setting all
properties. function ppmKFold_CreateFcn(hObject, eventdata, handles) % hObject handle to ppmKFold (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: popupmenu controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes during object creation, after setting all
properties. function images_CreateFcn(hObject, eventdata, handles) % hObject handle to images (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: place code in OpeningFcn to populate images
function edDirTest_Callback(hObject, eventdata, handles) % hObject handle to edDirTest (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edDirTest as
text % str2double(get(hObject,'String')) returns contents of
edDirTest as a double
% --- Executes during object creation, after setting all
properties. function edDirTest_CreateFcn(hObject, eventdata, handles) % hObject handle to edDirTest (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edAlmtCitraTraining_Callback(hObject, eventdata, handles) % hObject handle to edAlmtCitraTraining (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of
edAlmtCitraTraining as text % str2double(get(hObject,'String')) returns contents of
edAlmtCitraTraining as a double
% --- Executes during object creation, after setting all
properties. function edAlmtCitraTraining_CreateFcn(hObject, eventdata,
handles) % hObject handle to edAlmtCitraTraining (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on selection change in lbNmFileCitra. function lbNmFileCitra_Callback(hObject, eventdata, handles) % hObject handle to lbNmFileCitra (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns
lbNmFileCitra contents as cell array % contents{get(hObject,'Value')} returns selected item from
lbNmFileCitra
% --- Executes during object creation, after setting all
properties. function lbNmFileCitra_CreateFcn(hObject, eventdata, handles) % hObject handle to lbNmFileCitra (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
% eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: listbox controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edJmlDaerah_Callback(hObject, eventdata, handles) % hObject handle to edJmlDaerah (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edJmlDaerah as
text % str2double(get(hObject,'String')) returns contents of
edJmlDaerah as a double
% --- Executes during object creation, after setting all
properties. function edJmlDaerah_CreateFcn(hObject, eventdata, handles) % hObject handle to edJmlDaerah (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edJmlCitraPerKelas_Callback(hObject, eventdata, handles) % hObject handle to edJmlCitraPerKelas (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of
edJmlCitraPerKelas as text
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
% str2double(get(hObject,'String')) returns contents of
edJmlCitraPerKelas as a double
% --- Executes during object creation, after setting all
properties. function edJmlCitraPerKelas_CreateFcn(hObject, eventdata, handles) % hObject handle to edJmlCitraPerKelas (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on selection change in ppmEdge. function ppmEdge_Callback(hObject, eventdata, handles) % hObject handle to ppmEdge (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns ppmEdge
contents as cell array % contents{get(hObject,'Value')} returns selected item from
ppmEdge
% --- Executes during object creation, after setting all
properties. function ppmEdge_CreateFcn(hObject, eventdata, handles) % hObject handle to ppmEdge (see GCBO) % eventdata reserved - to be defined in a future version of
MATLAB % handles empty - handles not created until after all
CreateFcns called
% Hint: popupmenu controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI