Full PDF
Full PDF
SKRIPSI
Oleh:
Agatha Widyastuti
NIM: 065314010
A Thesis
By:
Agatha Widyastuti
Student ID: 065314010
Sahabat-sahabatku,
Kekasihku tercinta…
viii
Abstract
Batik has a unique diversity of motifs. Most people know little about batik,
one of which is known types of batik motifs. In this thesis, the author will discuss and
resolve the issue using Linear Discriminant Analysis because of its distinguishing
features is greater.
Linear Discriminant Analysis is a multivariate statistical technique associated
with the separation or classification of a group of objects into groups that previously
defined. The purpose of object recognition, this method tries to find a discriminant
function capable of separating an object whose value is already known
characteristics.
There are 20 types of Batik Yogyakarta motifs that wants to be recognized
and each motif there are 25 samples of batik motifs. Entire Yogyakarta batik used as
test data was taken using a digital camera Fujifilm type FinePixJ20 10MP pockets
with batik data size 200x200 pixel crop results.
Introduction of Batik Yogyakarta motifs using the training phase and testing
phase. Training process is used to make one model of each motif from the 25 samples
of batik motifs by forming the discriminant function. Discriminant function is
obtained by calculating the mean of each group and the mean of the whole group,
calculate the covariance matrix, forming the pooled within group covariance matrix,
and calculate the probability vector.
Testing process is conducted by examining the discriminant function is
formed by 100 data batik to get the largest number of similarities. Then, data test
results are evaluated using five-fold cross validation to obtain the value of the
percentage of occurrence of 500 data patterns.
Testing six forms processing features are average overall edge, the average
horizontal edge, vertical edge on average, the combined average overall edge to the
average horizontal and vertical edges, the combined average of horizontal and
vertical edges, and the combined color with the overall average and the average edge
vertical and horizontal edge, intended to get the value of good accuracy. Of testing
using these features, the best features found in the introduction to batik of Yogyakarta
with LDA method is the average feature a horizontal edge with an accuracy of 36.4%.
From these data it can be concluded that the introduction of Batik Yogyakarta with
Linear Discriminant Analysis method using features above relatively less well.
ix
Kata Pengantar
Puji syukur kepada Yesus Kristus Sahabat dan Penolongku yang telah
Terima kasih yang sebesar-besarnya kepada semua pihak yang turut member
1. Bapak Yosef Agung Cahyanta, S.T., M.T., selaku Dekan Fakultas Sains dan
2. Ibu A. Rita Widiarti, S.Si, M.Kom selaku dosen pembimbing atas kesabaran,
3. Bapak Dr. Ir. Linggo Sumarno, M.T. dan Bapak Ir. Ig. Aris Dwiatmoko,
M.Sc. sebagai dosen penguji atas saran dan kritikan yang diberikan.
4. Romo Drs. C. Kuntoro Adi SJ, M.A, M.S., Ph.D yang telah menjadi
5. Laboran Komputer dan Staff Sekretariat Fakultas Sains dan Teknologi atas
6. Kedua orang tuaku yang tercinta, bapak Richardus Taryono dan ibu
Bernadetta Retno Palupi untuk doa, dukungan, perhatian, dan pengertian yang
sepenuhnya.
x
7. Kakak dan adikku tersayang, Bernardus Hery Krisno Nugroho dan Ignatia
10. Aprina Sulistia Melantika, Paulina Indah Tiarani, Agnes Retnaningsih, Bagas
11. Seluruh civitas akademika Teknik Informatika angakatan 2006 dan pihak-
pihak lain yang telah berjuang bersama dari awal masa perkuliahan, proses
belajar, masa penulisan tugas akhir hingga saat wisuda tiba. Terima kasih atas
penulisan tugas akhir ini. Saran dan kritik saya harapkan untuk perbaikan pada masa
Penulis
xi
DAFTAR ISI
xii
2.2.5. Metode Linear Discriminant Analysis (LDA) ................................. 14
2.2.5.1. Algoritma Pemodelan Linear Discriminant Analysis......... 15
2.2.6. Metode Evaluasi 5-Fold Cross Validation ...................................... 22
2.3. Matriks Data Multivariat ............................................................................ 26
2.4. Matlab ......................................................................................................... 27
BAB III ALGORITMA DAN PERANCANGAN SISTEM ............................................ 28
3.1. Pengambilan Data Batik Yogyakarta ......................................................... 28
3.2. Perancangan Sistem Secara Umum ............................................................ 29
3.3. Algoritma yang Digunakan ........................................................................ 33
3.3.1. Algoritma Penyimpanan Informasi Rata-Rata Edge........................ 33
3.3.2. Algoritma Perhitungan Metode Linear Discriminant Analysis ....... 39
3.3.3. Algoritma Metode Evaluasi 5-Fold Cross Validation ..................... 40
3.3.4. Algoritma Proses Training ............................................................... 41
3.3.5. Algoritma Proses Testing ................................................................. 41
3.3.6. Algoritma Fase Pengenalan Motif Batik .......................................... 42
3.3.7. Algoritma Fase Pengujian Akurasi .................................................. 42
3.4. Perancangan Fase Training ........................................................................ 42
3.4.1. Ekstraksi Feature ............................................................................. 43
3.4.2. Pengolahan Feature ......................................................................... 47
3.4.3. Training............................................................................................ 47
3.5. Perancangan Fase Pengenalan (Testing) .................................................... 48
3.5.1. Ekstraksi Feature ............................................................................. 48
3.5.2. Pengolahan Feature ......................................................................... 48
3.5.3. Pencocokan Kemiripan .................................................................... 48
3.6. Perancangan Proses Evaluasi ..................................................................... 49
3.7 Perancangan Antar Muka ............................................................................ 52
3.7.1. Halaman Home ................................................................................ 52
3.7.2. Halaman Pengenalan Motif Batik Yogyakarta ................................ 53
xiii
3.7.3. Halaman Pengujian LDA ................................................................. 54
3.7.4. Halaman Konsep Linear Discriminant Analysis.............................. 54
3.7.5. Halaman Identitas Program (About) ................................................ 55
3.7.6. Halaman Bantuan (Help) ................................................................. 55
BAB IV IMPLEMENTASI DAN ANALISA SISTEM ................................................... 57
4.1. Implementasi Antar Muka yang Digunakan pada Sistem .......................... 57
4.1.1. Halaman Utama ............................................................................... 57
4.1.2. Halaman Pengenalan Motif Batik Yogyakarta ................................ 60
4.1.3. Halaman Pengujian Linear Discriminant Analysis .......................... 62
4.1.4. Halaman Konsep Metode ................................................................. 63
4.1.5. Halaman About ................................................................................. 66
4.1.6. Halaman Bantuan (Help) ................................................................. 66
4.2. Hasil Penelitian ........................................................................................... 67
BAB V KESIMPULAN DAN SARAN .............................................................................. 76
5.1. Kesimpulan ................................................................................................. 76
5.2. Saran ........................................................................................................... 78
DAFTAR PUSTAKA.......................................................................................................... 80
LAMPIRAN 1 CODING PROGRAM .............................................................................. 82
LAMPIRAN 2 DATA PENELITIAN ..............................................................................123
xiv
DAFTAR GAMBAR
Gambar2.1. Beberapa motif Batik Yogyakarta (Sumber: Museum Batik Yogyakarta) ....... 6
Gambar2.2. Blok diagram pengenalan motif batik ..................................................... 9
Gambar2.3. Motif batik dikenakan deteksi tepi Canny .............................................. 11
Gambar2.4. Hasil perhitungan fungsi diskriminan ..................................................... 22
Gambar2.5. Gambaran metode evaluasi 5-Fold Cross Validation ............................. 26
Gambar2.6. Matriks data multivariat .......................................................................... 27
Gambar3.1. Alur fase pengenalan motif batik Yogyakarta Secara Umum ................. 30
Gambar3.2. Blok diagram sistem................................................................................ 30
Gambar3.3. Rata-rata keseluruhan edge ..................................................................... 45
Gambar3.4. Matriks persegi 8x8 ................................................................................. 46
Gambar3.5. Contoh pengelompokanmotif batik untuk proses evaluasi ..................... 49
Gambar3.6. Rancangan halaman Home ..................................................................... 52
Gambar3.7. Rancangan halaman pengenalan motif batik Yogyakarta ....................... 53
Gambar3.8. Rancangan halaman pengujian LDA ...................................................... 54
Gambar3.9. Rancangan halaman konsep LDA ........................................................... 54
Gambar3.10. Rancangan halaman identitas program (about)..................................... 55
Gambar3.11. Rancangan halaman bantuan (help) ...................................................... 55
Gambar4.1. Halaman utama sistem pengenalan motif batik Yogyakarta ................... 59
Gambar4.2. Halaman fase pengenalan motif batik Yogyakarta ................................. 60
Gambar4.3. Kotak file selector untuk mengambil gambar ......................................... 60
Gambar4.4. Peringatan tidak ada file yang dipilih...................................................... 61
Gambar4.5. Halaman fase pegujian Linear Discriminant Analysis ............................ 62
Gambar4.6. Halaman penjelasan konsep metode LDA .............................................. 64
Gambar4.7. Halaman penjelasan konsep metode 5-Fold Cross Validation ............... 65
Gambar4.8. Bagan metode 5-Fold Cross Validation.................................................. 65
Gambar4.9. Halaman About ........................................................................................ 66
xv
Gambar4.10. Halaman bantuan fase pengenalan motif batik Yogyakarta .................. 67
Gambar4.11. Halaman bantuan fase pengujian motif batik Yogyakarta .................... 67
xvi
DAFTAR TABEL
xvii
BAB I
PENDAHULUAN
daerah, pakaian adat, lagu daerah, dan adat istiadat. Salah satu budaya yang dimiliki
oleh negara kita adalah batik. Batik merupakan warisan budaya Indonesia yang
Dahulu batik hanya dikenakan oleh kalangan raja, kerabat dan pekerjanya,
selain itu digunakan juga pada acara ritual budaya Jawa. Seiring dengan
menjadikan batik sebagai sumber inspirasi untuk membuat model busana modern.
terdapat banyak metode, salah satunya adalah metode Linear Discrimant Analysis.
Metode ini akan menjadi alat bantu untuk pengenalan motif batik. Penulis
menggunakan metode ini karena memiliki daya pembeda yang akurat dan lebih besar
1
2
Rumusan masalah tugas akhir ini berdasarkan latar belakang di atas adalah
1.3. Tujuan
Tujuan dari tugas akhir ini adalah untuk mengenali motif batik Yogyakarta dan
Yogyakarta.
4. Pada tugas akhir ini sampel motif batik Yogyakarta yang digunakan
berdasarkan:
a. Ukuran citra motif batik Yogyakarta 200 x 200 piksel dengan format
data .jpg.
d. Data batik yang didapat dan akan digunakan dalam tugas akhir ini
mengambil bagian pola (motif) batik yang merupakan ciri dari motif
tersebut. Kemudian ukuran data motif batik hasil crop diubah menjadi
BAB I PENDAHULUAN
dibangun, yaitu sebuah perangkat lunak yang dapat mengenali motif batik
Bab ini berisi kesimpulan dan saran yang diperoleh dari keseluruhan
LANDASAN TEORI
Batik berasal dari Bahasa Jawa ambatik dari kata “ba” dan “tik”, masing-
masing mempunyai padanan kata “bud” dan “am” yang artinya “a-mba-tik” dengan
arti kata membentuk titik (nitik), “tik” berarti kecil. Jadi, batik berarti menulis atau
Bunyi am berasal dari kata “ha” pada huruf Jawa merupakan kata imbuhan
mencuci)
Batik merupakan seni karya tulis yang mempunyai arti tersendiri dan mampu
Batik tulis juga mampu mengangkat status sosial seseorang seperti kewibawaan,
kepangkatan, derajat, dan asal usul. Batik juga memiliki nilai ganda yaitu seni, sosial,
dan ekonomi.
Batik merupakan karya seni pada kain dengan perintang warna yang
menggunakan malam (lilin). Batik juga merupakan lukisan atau gambar pada mori
285
6
yang dikerjakan dengan alat canting, dan disebut membatik (Konsensus Nasional,
Gambar 2.1. Beberapa motif batik Yogyakarta (Sumber: Museum Batik Yogyakarta)
7
dan keteraturan, ada perulangan, dapat diobservasi baik secara per bagian ataupun
seluruhnya. Ketika sebuah mesin mengenali pola, maka akan memindai pola tersebut
dengan sensor dengan kehadiran derau (noise) dan distorsi pada citra pola itu.
pasien, mahasiswa, pemohon kredit, citra atau sinyal atau pengukuran lain yang perlu
diklasifikasikan atau dicari fungsi regresinya. Biasanya subyek ini disebut dengan
1. Data masukan berupa citra .jpg disiapkan. Citra ini masih berisi kumpulan
output
mode pengenalan/klasifikasi
ekstraksi feature
besar dalam jarak yang singkat. Tepi mencirikan batas-batas objek sehingga
Canny akan mendeteksi tepi dengan mencari nilai gradien maksimal lokal dari
mendeteksi tepian yang terlihat jelas dan tepian yang kurang jelas atau lemah,
termasuk juga tepian yang kurang jelas terlihat pada output yang terhubung
derajat keabuan yang ada pada citra. Metode Canny lebih utama akan
mendeteksi tepian yang kurang jelas, yang tidak dapat diperoleh dengan
Kemampuan untuk meletakkan dan menandai semua tepi yang ada sesuai
Hanya ada satu respon untuk tiap tepi. Sehingga mudah dideteksi dan
Penulis menerapkan metode Canny untuk citra motif batik yaitu dengan
Matlab, yaitu:
Hasil citra motif batik Yogyakarta yang dikenakan metode Canny sebagai
berikut:
(motif) sehingga akan sangat memudahkan dalam pemisahan antar kelas pada
proses klasifikasi. Ekstraksi ciri merupakan tahap yang sangat penting dan
sulit dalam teknik klasifikasi pola, bahkan seringkali tingkat keberhasilan dari
sistem pengenalan pola selalu dikaitkan dengan metode ekstraksi ciri yang
digunakan.
13
suatu motif batik ke dalam zona yang memiliki ukuran yang sama
piksel dari tiap zona digunakan untuk data input dalam membentuk model.
karena itu penulis mencoba menggunakan feature warna yang terdiri dari
dengan bentuk motif yang sama maka nama motif batik pun berbeda.
untuk mendeteksi bagian tepi dari motif batik Yogyakarta. Dengan adanya
bagian tepi motif batik maka motif batik pun dapat diketahui. Dalam hal ini
motif batik. Pada proses ini dari 500 data motif batik yang digunakan,
fungsi diskriminan.
pengenalan motif batik Yogyakarta. Data test akan dimasukkan pada fungsi
diskriminan yang terbentuk pada proses training. Pada proses ini data citra
motif batik yang digunakan sebanyak 100 dari 500 data citra motif batik.
pola. Salah satu teknik yang sangat populer dan cukup sederhana untuk
dari dua kelompok, serangkaian set dari fungsi diskriminan) berdasarkan pada
sampel pada sebuah kasus di dalam sebuah group yang telah diketahui; fungsi
lalu dapat diaplikasikan pada kasus baru dengan pengukuran pada variabel-
obyek, metode ini akan mensortir obyek (observasi) ke dalam dua atau
lebih kelas.
diskriminan, yaitu:
𝟏
𝒇𝒊 = 𝝁𝒊 𝑪−𝟏 𝒙𝑻𝒌 − 𝟐 𝝁𝒊 𝑪−𝟏 𝝁𝑻𝒊 + 𝐥𝐨𝐠(𝑷𝒊 ) (2.1)
(𝑥 𝑖0 )𝑇 𝑥 𝑖0
𝐶𝑖 = (2.2)
𝑛𝑖
17
Dimana:
kelompok.
1 𝑔
𝐶 𝑟, 𝑠 = 𝑖=1 𝑛𝑖 . 𝐶𝑖 (𝑟, 𝑠) (2.3)
𝑛
Dimana:
baris ke-s.
𝑛𝑖 (2.4)
𝑃𝑖 =
𝑁
18
Dimana:
Analysis:
Berikut merupakan data chip rings yang lulus (passed) dan tidak
Penyelesaian:
dan
kelas pada y.
yaitu:
2.3, yaitu:
, , dan
21
fungsi diskriminan (rumus 2.1) untuk setiap kelas, pada contoh ini
𝟏
𝒇𝟐 = 𝝁𝟐 𝑪−𝟏 𝒙𝑻𝒌 − 𝝁𝟐 𝑪−𝟏 𝝁𝑻𝟐 + 𝐥𝐨𝐠(𝑷𝟐 )
𝟐
menentukan hasil quality control lulus uji atau tidak yaitu dengan
yaitu data baru chip ring yang akan diuji quality control-nya
untuk mengetahui tingkat akurasi sistem pengenal motif batik. Metode 5-fold
lima kelompok data yang kemudian secara bergantian dijadikan data untuk
training maupun testing dalam lima langkah pengujian yang saling silang.
Dimisalkan terdapat n-buah motif batik untuk satu jenis motif batik
Kelompok 1:
………..
Kelompok 2:
…………
24
Kelompok 3:
…………
Kelompok 4:
…………
Kelompok 5:
…………
tanpa memproses data yang sama. Pemrosesan dengan data yang sama dapat
terjadi ketika data masukan berjumlah sangat banyak. Jika data yang sama
diproses dalam training dan testing, maka nilai validasi terhadap evaluasi
Testing Training
Kelompok data no.5
menjadi data training
Pengujian 1 1 bersama dengan
2 3 4 5
kelompok data 2, 3,
4.
Pengujian 2 2 1 3 4 5
Pengujian 3 3 1 2 4 5
1
Pengujian 4 4 1 2 3 5
Pengujian 5 5 1 2 3 4
yang mewakili satu kelompok data. Tiap satu kelompok data bergantian
menjadi data testing pada satu langkah pengujian, sedangkan lainnya menjadi
data training.
Data multivariate adalah data yang diperoleh dari hasil pengukuran terhadap n
2.4. Matlab
menghitung data matematis yang kompleks. Matlab merupakan sebuah alat bantu
(Hanselman, 1997).
BAB III
mengenai rancangan dan cara kerja sistem pengenal motif batik yang dibangun.
Sistem ini berfungsi sebagai alat bantu untuk menganalisis cara kerja dan akurasi
kebutuhan seperti kebutuhan perangkat lunak, perangkat keras, dan perancangan antar
banyak, tetapi untuk keperluan tugas akhir ini penulis hanya mengambil 20 motif
batik dengan asumsi 20 motif batik ini sudah mewakili motif batik yang lainnya.
kamera tersebut yaitu berdimensi 3648 x 2736 piksel. Hasil pengambilan data batik
tersebut tidak sempurna karena terdapat pantulan sinar blitz, ini disebabkan kain batik
28
29
Data batik yang didapat dan akan digunakan dalam tugas akhir ini terlebih dahulu di-
crop untuk menghilangkan sinar blitz serta meng-crop bagian pola (motif) batik yang
merupakan ciri dari motif tersebut, misalnya pada motif Nitik Cengkeh akan di-crop
bagian motif seperti bunga cengkeh, kemudian ukuran data motif batik hasil crop
diubah menjadi 200 x 200 piksel. Penulis memilih ukuran tersebut karena sudah ada
jurnal yang menggunakan ukuran citra 200 x 200 piksel dalam pengenalan pola
Analysis dalam menangani motif batik. Data citra yang dimasukkan ke dalam sistem
ialah citra dari satu karakter motif batik Yogyakarta. Sistem mengolah citra karakter
motif batik Yogyakarta tersebut sebagai feature yang digunakan pada saat proses
training model maupun proses pengenalan (testing). Setelah melalui proses pengujian
mendapatkan hasil keluaran berupa nama dari motif batik Yogyakarta berserta angka
akurasinya.
30
Pengguna
Pengolahan
Ekstraksi feature
[.....] Training
feature
M1 M2 M3 M4 ….. Mn
Pengolahan Pencocokan
Ekstraksi feature
feature Kemiripan
Evaluasi
1. Data citra batik berukuran 200x200 piksel dikenakan proses ekstraksi feature.
3. Ekstraksi feature yaitu memilih feature yang tepat untuk data motif batik
dengan rata-rata edge horizontal dan vertikal, rata-rata edge horizontal dan
vertikal dan horizontal. Misal, data motif batik masukan akan dikenakan
b. Citra motif batik gray dikenakan deteksi tepi dengan metode canny.
c. Data motif batik berukuran 200x200 piksel dibagi menjadi 8 vektor secara
e. Jumlah objek (satu) dalam setiap unit dibagi dengan 625 (ukuran 25x25 =
625), sehingga didapat hasil rata-rata dalam satu unit. Hal ini dilakukan
1x8.
5. Proses training dengan metode LDA menggunakan 400 data motif batik dari
500 data motif batik Yogyakarta. Terdapat 20 jenis motif batik Yogyakarta
yang ingin dikenali, pada proses training akan membuat satu model dari 20
dengan cara menghitung mean dari setiap kelompok dan mean dari
diskriminan yang terbentuk dengan 100 data motif batik untuk mendapatkan
Algoritma:
Canny.
dijumlahkan.
rata dalam satu unit. Hal ini dilakukan untuk setiap unit.
Algoritma:
Canny.
Algoritma:
Canny.
setiap unit.
berukuran 1x8.
Algoritma:
Canny.
rata dalam satu unit. Hal ini dilakukan untuk setiap unit.
berukuran 1x80.
vektor vertikal.
Algoritma:
Canny.
setiap unit.
setiap unit.
Algoritma:
Canny.
unit.
Algoritma:
matriks.
Algoritma:
batik.
Algoritma:
motif batik.
Algoritma:
yang dikenali.
Algoritma:
Algoritma:
merupakan langkah pembuatan model karakter motif batik Yogyakarta yang akan
43
dijadikan pembanding dengan motif baru yang dimasukkan pada fase pengenalan.
a. Feature Warna
kadar red (R), kadar green (G), kadar blue (B), dan rata-rata hasil rata-rata
red, green, blue (𝑅𝐺𝐵 ). Untuk penjabaran rata-rata tersebut sebagai berikut:
𝑚 𝑛
𝑖=1 𝑗 =1 𝑅 𝑖𝑗
𝑅= (3.1)
𝑚 ×𝑛
𝑚 𝑛
𝑖=1 𝑗 =1 𝐺𝑖𝑗 (3.2)
𝐺=
𝑚×𝑛
𝑚 𝑛
𝑖=1 𝑗 =1 𝐵𝑖𝑗 (3.3)
𝐵=
𝑚×𝑛
𝑅 (3.4)
𝑘𝑎𝑑𝑎𝑟 𝑅 =
𝑅+𝐺+𝐵
𝐺
𝑘𝑎𝑑𝑎𝑟 𝐺 = 𝑅 +𝐺 +𝐵 (3.5)
𝐵
𝑘𝑎𝑑𝑎𝑟 𝐵 = (3.6)
𝑅 +𝐺 +𝐵
𝑅 +𝐺 +𝐵
𝑅𝐺𝐵 = (3.7)
3
Pada feature edge information ini citra akan dikenakan proses deteksi
menggunalan metode canny karena hasil deteksi tepi terlihat lebih jelas.
vektor vertikal yang akan menghasilkan matriks berukuran 1x8, dan rata-rata
edge 1x64 dengan rata-rata vektor vertikal dan horizontal, dan gabungan rata-
Citra motif batik berukuran 200x200 piksel dibagi menjadi 8 vektor secara
unit, yaitu
25 25
𝑖=1 𝑖=1 𝑃 𝑖𝑗
𝑅𝑡 = (3.8)
25×25
Rata-rata setiap unit ini berjumlah 64 yang akan dijadikan data input
Rt = hasil perhitungan rata-rata jumlah objek satu dibagi ukuran 1 unit berukuran
25x25 piksel.
Keterangan:
E = hasil perhitungan rata-rata jumlah object (satu) dibagi dengan ukuran satu unit
(25x25 piksel).
Dari matriks persegi 8x8 di atas akan dilakukan penjumlahan dari rata-rata
.... …. ….
………
Pada langkah pengolahan feature ini setiap karakter yang memiliki ciri
Analysis.
3.4.3. Training
Yogyakarta menjadi suatu fungsi model yang digunakan untuk mewakili satu
terbentuk akan dipilih yang bernilai maksimum, dalam kasus ini hasil
batik (terdapat 20 kelompok), dari 25 hasil perhitungan ini akan dipilih nilai
maksimal untuk mewakili satu kelompok motif batik, sehingga akan diperoleh
Nilai maksimum ini yang akan menjadi model untuk setiap kelompok motif
batik. Pengkategorian motif batik pada langkah ini ditentukan oleh langkah
ekstraksi feature.
48
ekstraksi feature, pengolahan feature dan pencocokan kemiripan. Pada fase ini motif
batik Yogyakarta akan diuji untuk dikenali polanya oleh sistem. Langkah-langkah
Langkah ekstraksi feature pada proses testing ini hampir sama pada
proses training.
Pada langkah pengolahan feature ini setiap pola yang memiliki ciri
Analysis.
input dengan model yang ada dalam sistem. Untuk menentukan model yang
evaluasi dilakukan pada setiap motif batik Yogyakarta yang hasil pengenalannya
disimpan dalam sebuah matriks confusion matrix. Pengujian akurasi terhadap masing-
2. Pengujian akurasi
Terdapat dua langkah dalam pengujian akurasi, yaitu langkah training dan
pengenalan motif batik untuk setiap motif batik yang telah diuji pada
Motif
a b c d e f g h i j k l m n o p q r s t
batik
a x x x x x x x x x x x x x x x x x x x x
b x x x x x x x x x x x x x x x x x x x x
c x x x x x x x x x x x x x x x x x x x x
d x x x x x x x x x x x x x x x x x x x x
e x x x x x x x x x x x x x x x x x x x x
f x x x x x x x x x x x x x x x x x x x x
g x x x x x x x x x x x x x x x x x x x x
h x x x x x x x x x x x x x x x x x x x x
i x x x x x x x x x x x x x x x x x x x x
j x x x x x x x x x x x x x x x x x x x x
k x x x x x x x x x x x x x x x x x x x x
l x x x x x x x x x x x x x x x x x x x x
m x x x x x x x x x x x x x x x x x x x x
n x x x x x x x x x x x x x x x x x x x x
o x x x x x x x x x x x x x x x x x x x x
51
p x x x x x x x x x x x x x x x x x x x x
q x x x x x x x x x x x x x x x x x x x x
r x x x x x x x x x x x x x x x x x x x x
s x x x x x x x x x x x x x x x x x x x x
t x x x x x x x x x x x x x x x x x x x x
Keterangan:
jumlah pengujian.
yaitu halaman home, halaman pengenalan motif batik Yogyakarta, dan halaman
pengujian LDA. Terdapat beberapa halaman berisi informasi mengenai sistem yaitu
„Browse‟, kemudian citra motif batik akan terlihat pada kotak „Preview‟.
Proses pengenalan citra motif batik akan dimulai setelah menekan tombol
„OK‟ yang terletak di kanan bawah dalam kotak preview. Kotak „Proses‟ akan
metode LDA. Hasil ekstraksi feature dan perhitungan kemiripan dari citra
parameter berupa feature dari citra motif batik yang akan dilakukan pengujian
kemudian menekan tombol „Test the LDA‟. Data hasil pengenalan citra motif
dalam sistem pengenalan motif batik Yogyakarta ini. Metode yang digunakan
dapat memilih metode-metode yang ada pada kotak „Daftar Isi‟, kemudian
pengenal motif batik Yogyakarta ini. Pengguna dapat memilih salah satu
menu yang ada pada kotak „Daftar Isi‟ kemudian sistem akan memberikan
Bab ini akan membahas hasil implementasi sistem berupa hasil tangkapan
tampilan tampilan antar muka sistem, pembahasan algoritma yang digunakan dalam
tugas akhir ini, serta hasil penelitian yang merupakan bagian terpenting dari bab ini.
juga dengan penjelasan penggunaan tombol dan menu untuk setiap halaman.
dilakukan. Hasil penelitian ini dituangkan dalam tabel hasil akurasi yang disertai
sistem pengenalan motif batik Yogyakarta. Terdapat 3 menu editor dan 2 menu
28
57
58
pembuatnya.
Discriminant Analysis dalam melakukan training dan testing data motif batik
Yogyakarta.
59
gambar yang dipilih melalui jendela file selector yang muncul ketika
tombol browse ditekan. Jika tidak ada file yang dipilih, maupun terjadi
pencocokan kemiripan.
Hasil pengenalan berupa teks nama motif batik yang dapat langsung
pembuatan feature.
dapat dilihat pada kotak “Hasil”. Kotak ini menampilkan jumlah data
yang masuk dalam proses pengujian LDA, jumlah motif yang dikenali,
menu teks pada halaman konsep metode ini yaitu menu teks Linear
Analysis.
64
validation. Dalam menu teks ini terdapat tombol “Gambar” yang berisi
dan pengujian motif batik Yogyakarta. Terdapat dua bagian yaitu halaman
Yogyakarta.
67
bentuk feature. Motif batik Yogyakarta diolah menjadi 6 feature yang berbeda untuk
percobaan ialah data angka akurasi dan confusion matrix dari akurasi terbaik.
a. Percobaan I
Hasil Percobaan I:
b. Percobaan II
c. Percobaan III
d. Percobaan IV
e. Percobaan V
Hasil Percobaan V:
horizontal = 9.4 %.
f. Percobaan VI
berukuran 1x87.
g. Percobaan VII
5.1. Kesimpulan
1. Penelitian ini menggunakan data berupa 500 motif batik Yogyakarta yang
76
77
3. Pengambilan dan pengolahan data motif batik yang kurang maksimal juga
motif batik cenderung gelap sehingga pada saat pengolahan feature nilai
yang dihasilkan saling mendekati antara motif batik yang satu dan yang
lainnya.
model.
mana 4 bagian menjadi data training dan 1 bagian menjadi data testing.
5.2. Saran
1. Penelitian tentang pengenalan motif batik Yogyakarta ini masih sebatas pada
menangani beberapa motif batik Yogyakarta dan terlebih lagi untuk menangani
2. Pengambilan data citra motif batik Yogyakarta yang kurang maksimal menjadi
salah satu penyebab nilai akurasi tidak tinggi. Dalam pengolahan data motif batik
tidak ada proses image enhancement, yaitu proses perbaikkan peningkatan warna
kontras suatu image. Warna citra motif batik yang diambil cenderung gelap,
sehingga nilai yang dihasilkan dalam proses pengolahan feature sebagian besar
79
mendekati antara motif batik yang satu dan yang lainnya. Oleh karena itu, proses
image enhancement dan proses cropping yang pas sangat penting dalam proses
3. Hasil akurasi yang tidak tinggi (sekitar 30%) juga karena feature yang digunakan
masih kurang tepat dalam menangani pengenalan motif batik Yogyakarta ini.
yang terbaik.
80
DAFTAR PUSTAKA
Ciri Bentuk. Mean dan Standar Deviasi Warna. Jurnal Teknologi industry Vol.
XI: 237-244.
Hamzahan, A., Santosa, G., dan Widiarto, W. (2002), Klasifikasi Objek dalam Visi
Indira, Merly., dkk. (2008). Perbandingan Metode Pendeteksi tepi Studi Kasus: Citra
USG Janin, 2 - 3.
Ginting, Elias Dianta. (2009). Deteksi Tepi Menggunakan metode Canny dengan
Li, C., Cao, Q., dan Guo, F. 2009. A Method for Color Classification of FruitsBased
Mei Chan, L., Tan, R., dan Thio, G. 2007. Design of Visual-based Color
RiyNto Sigit, dkk. (2002), Aplikasi Neural Network pada Pengenalan Pola Tanda
Santosa, Budi. (2007), Data Mining Teknik Pemanfaatan Data untuk Keperluan
Surahman, Adhi, (2006). Penyembunyian Teks pada Citra Dua Warna Menggunakan
Wastu, Phalita Nari. (2009), Pengenalan Aksara Jawa Menggunakan Metode Hidden
Markov Models.
Witten, Frank. (2005), Data Mining: Practical machine learning Tools and
Techinigues.
Handwritten Thai OCR Using Islandbased Projection with N-gram Models and
HMM. IEE.
http://people.revoledu.com/kardi/tutorial/LDA/LinearDiscriminantAnalysis(LDA)
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
if isequal(filename,0)|isequal(pathname,0)
errordlg('File not found.','Warning');
end;
set(handles.edit_browse,'string',charfilename);
83
if ~isequal(filename, 0)
handles.data1 = imread(fullfile(pathname, filename));
guidata(hObject, handles);
handles.current_data1=handles.data1;
axes(handles.gambar);
imshow(handles.current_data1);
else
return;
end
if ~isempty(image_file)
set(handles.textFeature,'string','Sedang membentuk
feature...');
createFeatureTest(nama_file);
test2;
set(handles.text6,'string','Mencocokan dengan model...');
LDA_test;
end;
84
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
selected_cmd = get(handles.popupmenuFeature,'Value');
set(handles.text23,'string','Sedang membentuk feature, mohon
tunggu...');
pause (1);
switch selected_cmd;
case 1 % user selected feature 1x64
tic
createFeature1x64;
toc
waktu = toc;
array=[num2str(waktu) 'detik'];
pause (1);
set(handles.text40,'string',array);
pause (1);
set(handles.textFeature,'string','Feature rata-rata edge
berhasil dibuat.');
readSemuaDirektori_1x64;
set(handles.textProses,'string','Sedang memproses fase
pengujian...');
pause (1);
TrainingLDA_1x64;
jumlahTotalConfusion;
pause (1);
set(handles.textProses3,'string','Seluruh training
selesai...');
set(handles.textProses4,'string','Proses fase pengujian
selesai.');
readSemuaDirektori_1x8H;
set(handles.textProses,'string','Sedang memproses fase
pengujian...');
pause (1);
TrainingLDA_Horizontal;
jumlahTotalConfusion;
pause (1);
set(handles.textProses3,'string','Seluruh training
selesai...');
set(handles.textProses4,'string','Proses fase pengujian
selesai.');
pause (1);
TrainingLDA_VH;
jumlahTotalConfusion;
pause (1);
set(handles.textProses3,'string','Seluruh training
selesai...');
set(handles.textProses4,'string','Proses fase pengujian
selesai.');
pause (1);
set(handles.textProses3,'string','Seluruh training
selesai...');
set(handles.textProses4,'string','Proses fase pengujian
selesai.');
end
for m=1:length(dirData)
%masuk ke direktori dan membaca file
cd(dirData{m});
fileJpg = dir('*.jpg'); %ambil file *.jpg
jum_jpg = length(fileJpg);
for n=1:length(fileJpg)
batik = imread(fileJpg(n).name);
info=[];
gray=rgb2gray(batik);
motif = edge(gray, 'canny'); %deteksi tepi menggunakan canny
tinggi=size(motif,1);
lebar=size(motif,2);
%penghitung kepadatan
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0;
sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0;
sum16=0;
sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0;
sum24=0;
sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0;
sum32=0;
sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0;
sum40=0;
sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0;
sum48=0;
sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0;
sum56=0;
sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0;
sum64=0;
obyek = 1;
for i=1:25
for j=1:25
if (motif(i,j)==obyek) sum1=sum1+1; end %tambahkan 1 tiap
89
menemukan obyek
end
end
for i=1:25
for j=26:50
if (motif(i,j)==obyek) sum2=sum2+1; end
end
end
for i=1:25
for j=51:75
if (motif(i,j)==obyek) sum3=sum3+1; end
end
end
for i=1:25
for j=76:100
if (motif(i,j)==obyek) sum4=sum4+1; end
end
end
for i=1:25
for j=101:125
if (motif(i,j)==obyek) sum5=sum5+1; end
end
end
for i=1:25
for j=126:150
if (motif(i,j)==obyek) sum6=sum6+1; end
end
end
for i=1:25
for j=151:175
if (motif(i,j)==obyek) sum7=sum7+1; end
end
end
for i=1:25
for j=176:200
if (motif(i,j)==obyek) sum8=sum8+1; end
end
end
for i=26:50
for j=1:25
if (motif(i,j)==obyek) sum9=sum9+1; end %tambahkan 1 tiap
menemukan obyek
end
end
for i=26:50
for j=26:50
90
for i=26:50
for j=51:75
if (motif(i,j)==obyek) sum11=sum11+1; end
end
end
for i=26:50
for j=76:100
if (motif(i,j)==obyek) sum12=sum12+1; end
end
end
for i=26:50
for j=101:125
if (motif(i,j)==obyek) sum13=sum13+1; end
end
end
for i=26:50
for j=126:150
if (motif(i,j)==obyek) sum14=sum14+1; end
end
end
for i=26:50
for j=151:175
if (motif(i,j)==obyek) sum15=sum15+1; end
end
end
for i=26:50
for j=176:200
if (motif(i,j)==obyek) sum16=sum16+1; end
end
end
for i=51:75
for j=1:25
if (motif(i,j)==obyek) sum17=sum17+1; end %tambahkan 1 tiap
menemukan obyek
end
end
......
for i=51:75
for j=176:200
if (motif(i,j)==obyek) sum24=sum24+1; end
91
end
end
for i=76:100
for j=1:25
if (motif(i,j)==obyek) sum25=sum25+1; end %tambahkan 1 tiap
menemukan obyek
end
end
......
for i=76:100
for j=176:200
if (motif(i,j)==obyek) sum32=sum32+1; end
end
end
for i=101:125
for j=1:25
if (motif(i,j)==obyek) sum33=sum33+1; end %tambahkan 1 tiap
menemukan obyek
end
end
......
for i=101:125
for j=176:200
if (motif(i,j)==obyek) sum40=sum40+1; end
end
end
for i=126:150
for j=1:25
if (motif(i,j)==obyek) sum41=sum41+1; end
end
end
.....
92
for i=126:150
for j=176:200
if (motif(i,j)==obyek) sum48=sum48+1; end
end
end
for i=151:175
for j=1:25
if (motif(i,j)==obyek) sum49=sum49+1; end
end
end
.......
for i=151:175
for j=176:200
if (motif(i,j)==obyek) sum56=sum56+1; end
end
end
for i=176:200
for j=1:25
if (motif(i,j)==obyek) sum57=sum57+1; end
end
end
......
for i=176:200
for j=176:200
if (motif(i,j)==obyek) sum64=sum64+1; end
end
end
end
cd ..;
end
function createFeature1x64_H_V(jum)
for m=1:length(dirData)
%masuk ke direktori dan membaca file
cd(dirData{m});
fileJpg = dir('*.jpg'); %ambil file *.jpg
jum_jpg = length(fileJpg);
for n=1:length(fileJpg)
batik = imread(fileJpg(n).name);
info=[];
gray=rgb2gray(batik);
motif = edge(gray, 'canny'); %deteksi tepi menggunakan canny
tinggi=size(motif,1);
lebar=size(motif,2);
%penghitung kepadatan
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0;
sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0;
sum16=0;
sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0;
sum24=0;
sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0;
sum32=0;
sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0;
94
sum40=0;
sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0;
sum48=0;
sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0;
sum56=0;
sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0;
sum64=0;
obyek = 1;
for i=1:25
for j=1:25
if (motif(j,i)==obyek) sum1=sum1+1; end %tambahkan 1 tiap
menemukan obyek
end
end
for i=1:25
for j=26:50
if (motif(j,i)==obyek) sum2=sum2+1; end
end
end
for i=1:25
for j=51:75
if (motif(j,i)==obyek) sum3=sum3+1; end
end
end
for i=1:25
for j=76:100
if (motif(j,i)==obyek) sum4=sum4+1; end
end
end
for i=1:25
for j=101:125
if (motif(j,i)==obyek) sum5=sum5+1; end
end
end
for i=1:25
for j=126:150
if (motif(j,i)==obyek) sum6=sum6+1; end
end
end
for i=1:25
for j=151:175
if (motif(j,i)==obyek) sum7=sum7+1; end
end
end
for i=1:25
for j=176:200
if (motif(j,i)==obyek) sum8=sum8+1; end
end
end
95
for i=26:50
for j=1:25
if (motif(j,i)==obyek) sum9=sum9+1; end
end
end
.......
for i=26:50
for j=176:200
if (motif(j,i)==obyek) sum16=sum16+1; end
end
end
meanTotV2=(mean9+mean10+mean11+mean12+mean13+mean14+mean15+mean16)/8;
for i=51:75
for j=1:25
if (motif(j,i)==obyek) sum17=sum17+1; end
end
end
........
for i=51:75
for j=176:200
if (motif(j,i)==obyek) sum24=sum24+1; end
end
end
meanTotV3=(mean17+mean18+mean19+mean20+mean21+mean22+mean23+mean24)/8;
for i=76:100
for j=1:25
if (motif(j,i)==obyek) sum25=sum25+1; end
end
end
..........
for i=76:100
for j=176:200
if (motif(j,i)==obyek) sum32=sum32+1; end
96
end
end
meanTotV4=(mean25+mean26+mean27+mean28+mean29+mean30+mean31+mean32)/8;
for i=101:125
for j=1:25
if (motif(j,i)==obyek) sum33=sum33+1; end
end
end
.......
for i=101:125
for j=176:200
if (motif(j,i)==obyek) sum40=sum40+1; end
end
end
meanTotV5=(mean33+mean34+mean35+mean36+mean37+mean38+mean39+mean40)/8;
for i=126:150
for j=1:25
if (motif(j,i)==obyek) sum41=sum41+1; end
end
end
........
for i=126:150
for j=176:200
if (motif(j,i)==obyek) sum48=sum48+1; end
end
end
meanTotV6=(mean41+mean42+mean43+mean44+mean45+mean46+mean47+mean48)/8;
for i=151:175
for j=1:25
if (motif(j,i)==obyek) sum49=sum49+1; end
end
end
97
......
for i=151:175
for j=176:200
if (motif(j,i)==obyek) sum56=sum56+1; end
end
end
meanTotV7=(mean49+mean50+mean51+mean52+mean53+mean54+mean55+mean56)/8;
for i=176:200
for j=1:25
if (motif(j,i)==obyek) sum57=sum57+1; end
end
end
.......
for i=176:200
for j=176:200
if (motif(j,i)==obyek) sum64=sum64+1; end
end
end
meanTotV8=(mean57+mean58+mean59+mean60+mean61+mean62+mean63+mean64)/8;
meanTotH1=(mean1+mean9+mean17+mean25+mean33+mean41+mean49+mean57)/8;
meanTotH2=(mean2+mean10+mean18+mean26+mean34+mean42+mean50+mean58)/8;
meanTotH3=(mean3+mean11+mean19+mean27+mean35+mean43+mean51+mean59)/8;
meanTotH4=(mean4+mean12+mean20+mean28+mean36+mean44+mean52+mean60)/8;
meanTotH5=(mean5+mean13+mean21+mean29+mean37+mean45+mean53+mean61)/8;
meanTotH6=(mean6+mean14+mean22+mean30+mean38+mean46+mean54+mean62)/8;
meanTotH7=(mean7+mean15+mean23+mean31+mean39+mean47+mean55+mean63)/8;
meanTotH8=(mean8+mean16+mean24+mean32+mean40+mean48+mean56+mean64)/8;
function createFeature1x8_H()
for m=1:length(dirData)
%masuk ke direktori dan membaca file
cd(dirData{m});
fileJpg = dir('*.jpg'); %ambil file *.jpg
jum_jpg = length(fileJpg);
for n=1:length(fileJpg)
info=[];
gray=rgb2gray(batik);
motif=edge(gray,'canny');
tinggi=size(motif,1); %hitung tinggi citra
lebar=size(motif,2); %hitung lebar citra
%penghitung kepadatan
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0;
sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0;
sum16=0;
sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0;
sum24=0;
sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0;
99
sum32=0;
sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0;
sum40=0;
sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0;
sum48=0;
sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0;
sum56=0;
sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0;
sum64=0;
obyek = 1;
for i=1:25
for j=1:25
if (motif(i,j)==obyek) sum1=sum1+1; end %tambahkan 1 tiap
menemukan obyek
end
end
for i=1:25
for j=26:50
if (motif(i,j)==obyek) sum2=sum2+1; end
end
end
for i=1:25
for j=51:75
if (motif(i,j)==obyek) sum3=sum3+1; end
end
end
for i=1:25
for j=76:100
if (motif(i,j)==obyek) sum4=sum4+1; end
end
end
for i=1:25
for j=101:125
if (motif(i,j)==obyek) sum5=sum5+1; end
end
end
for i=1:25
for j=126:150
if (motif(i,j)==obyek) sum6=sum6+1; end
end
end
for i=1:25
for j=151:175
if (motif(i,j)==obyek) sum7=sum7+1; end
end
end
for i=1:25
for j=176:200
if (motif(i,j)==obyek) sum8=sum8+1; end
100
end
end
for i=26:50
for j=1:25
if (motif(i,j)==obyek) sum9=sum9+1; end
end
end
........
for i=26:50
for j=176:200
if (motif(i,j)==obyek) sum16=sum16+1; end
end
end
meanTot2=(mean9+mean10+mean11+mean12+mean13+mean14+mean15+mean16)/8;
for i=51:75
for j=1:25
if (motif(i,j)==obyek) sum17=sum17+1; end
end
end
.......
for i=51:75
for j=176:200
if (motif(i,j)==obyek) sum24=sum24+1; end
end
end
meanTot3=(mean17+mean18+mean19+mean20+mean21+mean22+mean23+mean24)/8;
for i=76:100
for j=1:25
if (motif(i,j)==obyek) sum25=sum25+1; end
end
end
.......
for i=76:100
101
for j=176:200
if (motif(i,j)==obyek) sum32=sum32+1; end
end
end
meanTot4=(mean25+mean26+mean27+mean28+mean29+mean30+mean31+mean32)/8;
for i=101:125
for j=1:25
if (motif(i,j)==obyek) sum33=sum33+1; end
end
end
........
for i=101:125
for j=176:200
if (motif(i,j)==obyek) sum40=sum40+1; end
end
end
meanTot5=(mean33+mean34+mean35+mean36+mean37+mean38+mean39+mean40)/8;
for i=126:150
for j=1:25
if (motif(i,j)==obyek) sum41=sum41+1; end
end
end
.......
for i=126:150
for j=176:200
if (motif(i,j)==obyek) sum48=sum48+1; end
end
end
meanTot6=(mean41+mean42+mean43+mean44+mean45+mean46+mean47+mean48)/8;
for i=151:175
for j=1:25
if (motif(i,j)==obyek) sum49=sum49+1; end
end
102
end
......
for i=151:175
for j=176:200
if (motif(i,j)==obyek) sum56=sum56+1; end
end
end
meanTot7=(mean49+mean50+mean51+mean52+mean53+mean54+mean55+mean56)/8;
for i=176:200
for j=1:25
if (motif(i,j)==obyek) sum57=sum57+1; end
end
end
......
for i=176:200
for j=176:200
if (motif(i,j)==obyek) sum64=sum64+1; end
end
end
meanTot8=(mean57+mean58+mean59+mean60+mean61+mean62+mean63+mean64)/8;
function createFeature1x8_V()
103
for m=1:length(dirData)
%masuk ke direktori dan membaca file
cd(dirData{m});
fileJpg = dir('*.jpg'); %ambil file *.jpg
jum_jpg = length(fileJpg);
for n=1:length(fileJpg)
gray=rgb2gray(batik);
motif=edge(gray,'canny');
tinggi=size(motif,1);
lebar=size(motif,2);
%penghitung kepadatan
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0;
sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0;
sum16=0;
sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0;
sum24=0;
sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0;
sum32=0;
sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0;
sum40=0;
sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0;
sum48=0;
sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0;
sum56=0;
sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0;
sum64=0;
meanTot1=0; meanTot2=0; meanTot3=0; meanTot4=0; meanTot5=0;
meanTot6=0; meanTot7=0; meanTot8=0;
obyek = 1;
for i=1:25
for j=1:25
if (motif(j,i)==obyek) sum1=sum1+1; end %tambahkan 1 tiap
menemukan obyek
end
end
for i=1:25
for j=26:50
if (motif(j,i)==obyek) sum2=sum2+1; end
end
end
for i=1:25
for j=51:75
if (motif(j,i)==obyek) sum3=sum3+1; end
104
end
end
for i=1:25
for j=76:100
if (motif(j,i)==obyek) sum4=sum4+1; end
end
end
for i=1:25
for j=101:125
if (motif(j,i)==obyek) sum5=sum5+1; end
end
end
for i=1:25
for j=126:150
if (motif(j,i)==obyek) sum6=sum6+1; end
end
end
for i=1:25
for j=151:175
if (motif(j,i)==obyek) sum7=sum7+1; end
end
end
for i=1:25
for j=176:200
if (motif(j,i)==obyek) sum8=sum8+1; end
end
end
for i=26:50
for j=1:25
if (motif(j,i)==obyek) sum9=sum9+1; end
end
end
......
for i=26:50
for j=176:200
if (motif(j,i)==obyek) sum16=sum16+1; end
end
end
meanTot2=(mean9+mean10+mean11+mean12+mean13+mean14+mean15+mean16)/8;
105
for i=51:75
for j=1:25
if (motif(j,i)==obyek) sum17=sum17+1; end
end
end
.........
for i=51:75
for j=176:200
if (motif(j,i)==obyek) sum24=sum24+1; end
end
end
meanTot3=(mean17+mean18+mean19+mean20+mean21+mean22+mean23+mean24)/8;
for i=76:100
for j=1:25
if (motif(j,i)==obyek) sum25=sum25+1; end
end
end
.........
for i=76:100
for j=176:200
if (motif(j,i)==obyek) sum32=sum32+1; end
end
end
meanTot4=(mean25+mean26+mean27+mean28+mean29+mean30+mean31+mean32)/8;
for i=101:125
for j=1:25
if (motif(j,i)==obyek) sum33=sum33+1; end
end
end
.........
for i=101:125
for j=176:200
if (motif(j,i)==obyek) sum40=sum40+1; end
end
end
meanTot5=(mean33+mean34+mean35+mean36+mean37+mean38+mean39+mean40)/8;
for i=126:150
for j=1:25
if (motif(j,i)==obyek) sum41=sum41+1; end
end
end
.........
for i=126:150
for j=176:200
if (motif(j,i)==obyek) sum48=sum48+1; end
end
end
meanTot6=(mean41+mean42+mean43+mean44+mean45+mean46+mean47+mean48)/8;
for i=151:175
for j=1:25
if (motif(j,i)==obyek) sum49=sum49+1; end
end
end
.........
for i=151:175
for j=176:200
if (motif(j,i)==obyek) sum56=sum56+1; end
end
end
meanTot7=(mean49+mean50+mean51+mean52+mean53+mean54+mean55+mean56)/8;
for i=176:200
for j=1:25
if (motif(j,i)==obyek) sum57=sum57+1; end
end
end
.........
for i=176:200
for j=176:200
if (motif(j,i)==obyek) sum64=sum64+1; end
107
end
end
meanTot8=(mean57+mean58+mean59+mean60+mean61+mean62+mean63+mean64)/8;
function createFeature1x8_V_H()
for m=1:length(dirData)
%masuk ke direktori dan membaca file
cd(dirData{m});
fileJpg = dir('*.jpg'); %ambil file *.jpg
jum_jpg = length(fileJpg);
for n=1:length(fileJpg)
batik = imread(fileJpg(n).name);
info=[];
gray=rgb2gray(batik);
motif = edge(gray, 'canny'); %deteksi tepi menggunakan canny
tinggi=size(motif,1);
lebar=size(motif,2);
%penghitung kepadatan
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0;
sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0;
sum16=0;
sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0;
sum24=0;
sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0;
108
sum32=0;
sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0;
sum40=0;
sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0;
sum48=0;
sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0;
sum56=0;
sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0;
sum64=0;
obyek = 1;
for i=1:25
for j=1:25
if (motif(j,i)==obyek) sum1=sum1+1; end %tambahkan 1 tiap
menemukan obyek
end
end
for i=1:25
for j=26:50
if (motif(j,i)==obyek) sum2=sum2+1; end
end
end
for i=1:25
for j=51:75
if (motif(j,i)==obyek) sum3=sum3+1; end
end
end
for i=1:25
for j=76:100
if (motif(j,i)==obyek) sum4=sum4+1; end
end
end
for i=1:25
for j=101:125
if (motif(j,i)==obyek) sum5=sum5+1; end
end
end
for i=1:25
for j=126:150
if (motif(j,i)==obyek) sum6=sum6+1; end
end
end
for i=1:25
for j=151:175
if (motif(j,i)==obyek) sum7=sum7+1; end
end
end
for i=1:25
for j=176:200
if (motif(j,i)==obyek) sum8=sum8+1; end
109
end
end
for i=26:50
for j=1:25
if (motif(j,i)==obyek) sum9=sum9+1; end
end
end
.........
for i=26:50
for j=176:200
if (motif(j,i)==obyek) sum16=sum16+1; end
end
end
meanTotV2=(mean9+mean10+mean11+mean12+mean13+mean14+mean15+mean16)/8;
for i=51:75
for j=1:25
if (motif(j,i)==obyek) sum17=sum17+1; end
end
end
.........
for i=51:75
for j=176:200
if (motif(j,i)==obyek) sum24=sum24+1; end
end
end
meanTotV3=(mean17+mean18+mean19+mean20+mean21+mean22+mean23+mean24)/8;
for i=76:100
for j=1:25
if (motif(j,i)==obyek) sum25=sum25+1; end
end
end
.........
for i=76:100
110
for j=176:200
if (motif(j,i)==obyek) sum32=sum32+1; end
end
end
meanTotV4=(mean25+mean26+mean27+mean28+mean29+mean30+mean31+mean32)/8;
for i=101:125
for j=1:25
if (motif(j,i)==obyek) sum33=sum33+1; end
end
end
.........
for i=101:125
for j=176:200
if (motif(j,i)==obyek) sum40=sum40+1; end
end
end
meanTotV5=(mean33+mean34+mean35+mean36+mean37+mean38+mean39+mean40)/8;
for i=126:150
for j=1:25
if (motif(j,i)==obyek) sum41=sum41+1; end
end
end
.........
for i=126:150
for j=176:200
if (motif(j,i)==obyek) sum48=sum48+1; end
end
end
meanTotV6=(mean41+mean42+mean43+mean44+mean45+mean46+mean47+mean48)/8;
for i=151:175
for j=1:25
if (motif(j,i)==obyek) sum49=sum49+1; end
end
111
end
.........
for i=151:175
for j=176:200
if (motif(j,i)==obyek) sum56=sum56+1; end
end
end
meanTotV7=(mean49+mean50+mean51+mean52+mean53+mean54+mean55+mean56)/8;
for i=176:200
for j=1:25
if (motif(j,i)==obyek) sum57=sum57+1; end
end
end
.........
for i=176:200
for j=176:200
if (motif(j,i)==obyek) sum64=sum64+1; end
end
end
meanTotV8=(mean57+mean58+mean59+mean60+mean61+mean62+mean63+mean64)/8;
meanTotH1=(mean1+mean9+mean17+mean25+mean33+mean41+mean49+mean57)/8;
meanTotH2=(mean2+mean10+mean18+mean26+mean34+mean42+mean50+mean58)/8;
meanTotH3=(mean3+mean11+mean19+mean27+mean35+mean43+mean51+mean59)/8;
meanTotH4=(mean4+mean12+mean20+mean28+mean36+mean44+mean52+mean60)/8;
meanTotH5=(mean5+mean13+mean21+mean29+mean37+mean45+mean53+mean61)/8;
meanTotH6=(mean6+mean14+mean22+mean30+mean38+mean46+mean54+mean62)/8;
meanTotH7=(mean7+mean15+mean23+mean31+mean39+mean47+mean55+mean63)/8;
meanTotH8=(mean8+mean16+mean24+mean32+mean40+mean48+mean56+mean64)/8;
end
cd ..;
end
function createFeatureWarna_H_V()
for m=1:length(dirData)
%masuk ke direktori dan membaca file
cd(dirData{m});
fileJpg = dir('*.jpg'); %ambil file *.jpg
jum_jpg = length(fileJpg);
for n=1:length(fileJpg)
batik = imread(fileJpg(n).name);
info=[];
gray=rgb2gray(batik);
motif = edge(gray, 'canny'); %deteksi tepi menggunakan canny
tinggi=size(motif,1);
lebar=size(motif,2);
113
%penghitung kepadatan
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0;
sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0;
sum16=0;
sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0;
sum24=0;
sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0;
sum32=0;
sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0;
sum40=0;
sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0;
sum48=0;
sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0;
sum56=0;
sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0;
sum64=0;
obyek = 1;
for i=1:25
for j=1:25
if (motif(i,j)==obyek) sum1=sum1+1; end %tambahkan 1 tiap
menemukan obyek
end
end
for i=1:25
for j=26:50
if (motif(i,j)==obyek) sum2=sum2+1; end
end
end
for i=1:25
for j=51:75
if (motif(i,j)==obyek) sum3=sum3+1; end
end
end
for i=1:25
for j=76:100
if (motif(i,j)==obyek) sum4=sum4+1; end
end
end
for i=1:25
for j=101:125
if (motif(i,j)==obyek) sum5=sum5+1; end
end
end
for i=1:25
for j=126:150
if (motif(i,j)==obyek) sum6=sum6+1; end
end
end
for i=1:25
for j=151:175
114
for i=1:25
for j=176:200
if (motif(i,j)==obyek) sum8=sum8+1; end
end
end
for i=26:50
for j=1:25
if (motif(i,j)==obyek) sum9=sum9+1; end
end
end
.........
for i=26:50
for j=176:200
if (motif(i,j)==obyek) sum16=sum16+1; end
end
end
meanTotH2=(mean9+mean10+mean11+mean12+mean13+mean14+mean15+mean16)/8;
for i=51:75
for j=1:25
if (motif(i,j)==obyek) sum17=sum17+1; end
end
end
.........
for i=51:75
for j=176:200
if (motif(i,j)==obyek) sum24=sum24+1; end
end
end
meanTotH3=(mean17+mean18+mean19+mean20+mean21+mean22+mean23+mean24)/8;
for i=76:100
for j=1:25
115
.........
for i=76:100
for j=176:200
if (motif(i,j)==obyek) sum32=sum32+1; end
end
end
meanTotH4=(mean25+mean26+mean27+mean28+mean29+mean30+mean31+mean32)/8;
for i=101:125
for j=1:25
if (motif(i,j)==obyek) sum33=sum33+1; end
end
end
.........
for i=101:125
for j=176:200
if (motif(i,j)==obyek) sum40=sum40+1; end
end
end
meanTotH5=(mean33+mean34+mean35+mean36+mean37+mean38+mean39+mean40)/8;
for i=126:150
for j=1:25
if (motif(i,j)==obyek) sum41=sum41+1; end
end
end
.........
for i=126:150
for j=176:200
if (motif(i,j)==obyek) sum48=sum48+1; end
end
end
meanTotH6=(mean41+mean42+mean43+mean44+mean45+mean46+mean47+mean48)/8;
for i=151:175
for j=1:25
if (motif(i,j)==obyek) sum49=sum49+1; end
end
end
.........
for i=151:175
for j=176:200
if (motif(i,j)==obyek) sum56=sum56+1; end
end
end
meanTotH7=(mean49+mean50+mean51+mean52+mean53+mean54+mean55+mean56)/8;
for i=176:200
for j=1:25
if (motif(i,j)==obyek) sum57=sum57+1; end
end
end
.........
for i=176:200
for j=176:200
if (motif(i,j)==obyek) sum64=sum64+1; end
end
end
meanTotH8=(mean57+mean58+mean59+mean60+mean61+mean62+mean63+mean64)/8;
meanTotV1=(mean1+mean9+mean17+mean25+mean33+mean41+mean49+mean57)/8;
meanTotV2=(mean2+mean10+mean18+mean26+mean34+mean42+mean50+mean58)/8;
meanTotV3=(mean3+mean11+mean19+mean27+mean35+mean43+mean51+mean59)/8;
meanTotV4=(mean4+mean12+mean20+mean28+mean36+mean44+mean52+mean60)/8;
meanTotV5=(mean5+mean13+mean21+mean29+mean37+mean45+mean53+mean61)/8;
meanTotV6=(mean6+mean14+mean22+mean30+mean38+mean46+mean54+mean62)/8;
117
meanTotV7=(mean7+mean15+mean23+mean31+mean39+mean47+mean55+mean63)/8;
meanTotV8=(mean8+mean16+mean24+mean32+mean40+mean48+mean56+mean64)/8;
end
cd ..;
end
FNM=[]
for i=1:20
fn=readFeature(['data_' num2str(i)]);
FNM=[FNM; fn];
end
n_train=20;
Q = ones(1,n_train);
for i=2:k
Q=[Q ones(1,n_train)*i];
end
118
n_total=25;
data=FNM(1:n_train,:);
data2=FNM(n_train+1:n_total,:);
for i=2:k
awal=(1+(i-1)*n_total);
akhir=n_train+((i-1)*n_total);
data;
FNM(awal:akhir, :);
data=[data; FNM(awal:akhir,:)];
awal2=1+n_train+((i-1)*n_total);
akhir2=n_total*i;
FNM(awal2:akhir2,:);
data2=[data2; FNM(awal2:akhir2,:)];
end
% U total
u_total=mean(data);
c=zeros(njenis,njenis,k);
for i=1:k
i;
idx=find(Q==i);
n(i)=length(idx);
x= data(idx,:);
mean(x);
U(i,:)= mean(x);
clear x0
for j=1:njenis
x0(:,j)=x(:,j)-u_total(j) ;
end
size(x0);
(x0' * x0) / n(i);
c(:,:,i)=(x0' * x0) / n(i);
end
ct_1x64 = ct2
u_1x64 = U
n_1x64 = n
nt_1x64 = nt
nt2 = size(data2,1)
ct2=ct_1x64 ;
U=u_1x64 ;
n=n_1x64;
nt=nt_1x64;
119
for i=1:k
U(i,:)
ct2;
f(i,:)=U(i,:)*ct2;
for j=1:nt2
s=data2(j,:)'-0.5*U(i,:)'; %
h(i,j)=f(i,:)*s+log(n(i)/nt);
end
end
disp (h')
set(handles.text7,'string',h);
disp (maks)
set(handles.text10,'string','Nilai maksimal:');
set(handles.text8,'string',maks);
disp (kel)
set(handles.text11,'string','Kelompok:');
set(handles.text12,'string',kel);
Kamus;
nt2;
kel2 = ones(1,nt2/20);
for i=2:k
kel2=[kel2 ones(1,nt2/20)*i];
end
size(kel)
size(kel2)
jumlah_dikenali = sum(kel==kel2)
akurasi = jumlah_dikenali/nt2*100
k = 20;
nkel=length(kel)/k; %klo data 100, 100/20=5
map=zeros(k,k);
for i=1:k
for j=1:nkel
x=kel((i-1)*nkel+j);
map(i,x)=map(i,x)+1;
end
end
disp(map);
jum=0;
for i=1:k
120
jum=jum+map(i,i);
end
clc
n_rotasi = 5;
n_ciri = 8;
n_data_rotasi= 100;
n_kel = 20;
n_data1kel = 25;
data_rotasi = zeros(n_data_rotasi, n_ciri, n_rotasi);
for ii=1:n_rotasi
for jj=1:n_kel
awal=1+(jj-1)*n_data1kel+(ii-1)*5
akhir=5+(jj-1)*n_data1kel+(ii-1)*5
k=1+(jj-1)*5;
l=5+(jj-1)*5;
data_rotasi(k:l,:,ii)=FNM(awal:akhir,:);
end
end
% A B C D = training ; E = testing
k=20;
mapTotal=zeros(k,k);
for ii=1:5
kata1 = get(handles.textProses2,'String');
kata2 = sprintf ('Sedang memproses training ke-%d', ii);
kata3 = [kata1; kata2];
set(handles.textProses2,'String',kata3);
data1=zeros(400, n_ciri);
data2=zeros(100, n_ciri);
kk=0;
for jj=1:5
if(ii==jj)
data2=data_rotasi(:,:,ii);
else
kk=kk+1;
awal=(kk-1)*100+1;
akhir=kk*100;
data1(awal:akhir,:)=data_rotasi(:,:,jj);
end
end
LDAtrain_1x8H;
LDAtest_1x8H;
confusion_matrik;
sFile=sprintf('conf_%d',ii);
121
save(sFile,'map');
mapTotal=mapTotal+map;
end
load('conf_1.mat');
map1=map;
load('conf_2.mat');
map2=map;
load('conf_3.mat');
map3=map;
load('conf_4.mat');
map4=map;
load('conf_5.mat');
map5=map;
end
%disp(sprintf('Jumlah data = ',
jumlah_data = 100
jumlah_benar=jum
jumlah_salah=jumlah_data-jumlah_benar
akurasi=jumlah_benar/jumlah_data*100
A B C D E F G H I J K L M N O P Q R S T
A 3 6 1 1 4 0 1 4 0 0 0 0 0 0 4 0 0 0 1 0
B 2 11 0 0 0 0 0 1 1 0 1 4 0 0 0 1 1 1 0 2
C 2 1 10 0 0 0 4 1 0 0 0 0 0 1 0 0 3 1 2 0
D 0 0 0 7 1 0 4 0 0 4 0 0 1 2 0 0 0 3 3 0
E 0 1 2 0 13 0 0 0 0 2 0 3 1 0 0 0 0 2 1 0
F 0 0 0 0 0 14 0 0 2 0 4 0 0 0 0 1 0 0 0 4
G 1 1 3 1 0 0 0 1 0 4 0 0 1 4 1 0 2 1 5 0
H 2 0 0 0 5 0 1 8 4 0 0 0 1 1 0 0 0 0 3 0
I 1 1 0 0 1 0 0 2 7 0 6 5 0 0 0 0 1 1 0 0
J 0 0 0 1 0 0 5 1 0 5 0 0 1 3 0 0 0 6 3 0
K 0 0 0 0 0 2 0 0 1 0 18 2 0 0 0 0 0 0 0 2
L 0 0 0 0 0 0 0 0 1 0 0 14 1 0 0 4 0 0 0 5
M 0 0 0 1 0 0 2 0 0 2 0 0 8 3 0 0 0 7 2 0
N 2 0 1 0 1 0 5 2 0 4 0 0 1 4 1 0 1 2 1 0
O 5 2 0 0 0 0 0 0 2 0 0 2 0 0 5 0 9 0 0 0
P 0 0 0 0 0 0 0 0 0 0 3 1 0 0 3 13 0 0 0 5
Q 0 3 0 0 1 0 1 1 2 0 0 0 0 0 2 0 14 1 0 0
R 1 1 2 2 1 0 0 0 0 5 0 0 1 3 0 0 0 4 5 0
S 0 0 0 1 0 0 2 2 0 4 0 0 0 2 0 0 0 3 11 0
T 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 9 0 0 0 13
Jumlah data dikenali = 182
Jumlah data tak dikenali = 318
𝑗𝑢𝑚𝑙𝑎 𝑑𝑖𝑎𝑔𝑜𝑛𝑎𝑙 𝑚𝑎𝑡𝑟𝑖𝑘𝑠 182
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = × 100% = × 100% = 36.4%
𝑗𝑢𝑚𝑙𝑎 𝑠𝑒𝑙𝑢𝑟𝑢 𝑑𝑎𝑡𝑎 500
A B C D E F G H I J K L M N O P Q R S T
A 3 2 0 1 0 2 2 0 0 0 0 0 0 1 4 4 1 2 2 1
B 2 7 0 1 0 0 5 1 0 0 0 0 0 0 0 5 2 0 0 2
C 1 1 13 0 0 0 2 2 0 1 0 0 1 1 0 0 0 0 3 0
D 0 0 2 10 0 0 1 0 0 1 0 0 2 1 0 0 1 4 3 0
E 2 0 0 0 13 0 0 0 2 1 0 0 5 1 0 0 0 0 1 0
F 0 1 0 2 0 7 0 0 1 0 2 0 0 0 0 5 0 0 0 7
124
G 2 0 5 1 0 0 5 0 0 1 0 0 2 2 0 0 4 0 1 2
H 1 4 1 1 1 0 2 2 4 1 0 1 0 0 2 1 0 1 2 1
I 1 1 0 2 0 2 0 0 4 0 3 0 1 3 0 0 6 0 1 1
J 2 0 4 1 1 0 3 1 0 7 0 0 0 5 0 0 0 0 1 0
K 1 1 0 0 0 2 0 0 0 0 14 1 0 0 0 3 1 0 0 2
L 2 1 0 0 1 1 0 1 0 0 1 11 1 0 1 1 1 0 0 3
M 2 0 1 1 3 0 0 0 0 1 0 1 12 2 0 0 0 1 1 0
N 0 0 1 2 0 0 0 2 1 4 0 1 2 6 1 1 1 1 2 0
O 6 1 1 0 0 0 1 0 0 0 0 2 0 0 8 1 4 0 0 1
P 2 1 0 0 0 1 0 0 0 0 1 0 0 0 0 10 3 0 0 7
Q 0 1 0 0 0 0 1 1 1 0 0 0 0 1 2 2 15 0 0 1
R 0 0 0 7 0 0 3 1 0 0 0 0 1 2 0 0 2 5 4 0
S 3 1 0 2 0 0 3 1 0 2 0 0 1 1 1 0 0 1 9 0
T 0 2 0 0 0 0 0 0 0 1 0 1 1 0 0 7 0 0 0 13
Jumlah data dikenali = 174
Jumlah data tak dikenali = 326
𝑗𝑢𝑚𝑙𝑎 𝑑𝑖𝑎𝑔𝑜𝑛𝑎𝑙 𝑚𝑎𝑡𝑟𝑖𝑘𝑠 174
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = × 100% = × 100% = 34.8%
𝑗𝑢𝑚𝑙𝑎 𝑠𝑒𝑙𝑢𝑟𝑢 𝑑𝑎𝑡𝑎 500
A B C D E F G H I J K L M N O P Q R S T
A 0 4 0 0 4 0 1 4 2 0 0 1 2 0 3 0 2 2 0 0
B 1 14 0 0 0 0 0 1 2 0 0 1 0 0 1 3 1 0 0 1
C 0 0 9 2 4 0 2 2 0 2 0 0 1 1 0 0 0 0 2 0
D 0 0 2 4 1 0 2 1 0 8 0 0 1 2 0 0 0 2 2 0
E 0 0 1 2 13 0 0 0 1 1 0 2 2 1 0 0 0 0 2 0
F 0 0 0 0 0 9 0 0 0 0 9 0 0 0 0 3 0 0 0 4
G 1 0 0 1 0 0 4 0 1 4 0 0 4 1 0 0 7 0 2 0
H 0 3 1 1 3 0 2 3 1 2 2 0 4 1 2 0 0 0 0 0
I 5 3 0 1 5 0 0 1 5 1 1 2 0 0 1 0 0 0 0 0
J 0 0 1 6 3 0 2 0 2 2 0 0 1 3 0 0 0 1 4 0
K 0 1 0 0 0 1 0 0 0 0 14 2 0 0 0 5 0 0 0 2
L 3 3 0 0 2 1 0 0 3 0 2 7 0 0 2 1 0 0 0 1
M 1 1 0 2 7 0 2 3 0 1 0 0 4 3 0 0 0 0 1 0
N 4 0 0 1 2 0 3 0 1 5 0 0 0 2 0 0 1 2 4 0
O 1 3 0 0 0 0 0 3 1 0 1 0 0 0 3 1 10 0 0 2
125
P 0 2 0 0 0 0 0 0 4 0 2 4 0 0 4 4 0 0 0 5
Q 1 1 0 0 0 0 2 0 1 0 0 1 0 0 1 0 18 0 0 0
R 3 0 1 1 1 0 2 3 2 4 0 0 4 3 0 0 0 0 1 0
S 0 0 0 3 1 0 3 1 0 2 0 0 1 5 0 0 0 2 7 0
T 0 1 0 0 0 0 0 0 1 0 0 5 0 0 0 7 0 0 0 11
Jumlah data dikenali = 133
Jumlah data tak dikenali = 367
𝑗𝑢𝑚𝑙𝑎 𝑑𝑖𝑎𝑔𝑜𝑛𝑎𝑙 𝑚𝑎𝑡𝑟𝑖𝑘𝑠 133
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = × 100% = × 100% = 26.6%
𝑗𝑢𝑚𝑙𝑎 𝑠𝑒𝑙𝑢𝑟𝑢 𝑑𝑎𝑡𝑎 500