MENGGUNAKAN ALGORITMA NAIVE BAYES CLASSIFIER
ABSTRAK
THE NAIVE BAYES CLASSIFIER
ABSTRACT
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
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
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
ix
KLASIFIKASI KAIN TRADISIONAL NUSANTARA DENGAN
MENGGUNAKAN ALGORITMA NAIVE BAYES CLASSIFIER
ABSTRAK
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
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.
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
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
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
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
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
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
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
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.
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).
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
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.
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
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
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.
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
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):
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
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
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)
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
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).
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
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
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
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
Tabel 2. 1 Tabel Contoh Soal Perhitungan Naive Bayes
Langkah-langkah untuk menyelesaikan permasalahan diatas dengan menggunakan Naive Bayes adalah sebagai berikut:
18
b. Menghitung Mean dan Stándar Deviasi pada masing-masing ciri (A2):
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:
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.
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 Ekstraksi Ciri Warna Ekstraksi Ciri Rata-rata Vektor Ekstraksi Ciri Warna & Rata-rata Vektor
Proses Klasifikasi
22
Yang kedua adalah menghitung probabilitas maksimal dari data citra yang dimasukan oleh user. Hasil keluarannya adalah daerah asal dari citra yang Ekstraksi Ciri Warna Ekstraksi Ciri Rata-rata Vektor Ekstraksi Ciri Warna & Rata-rata Vektor
Proses Klasifikasi
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.
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.
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.
26
3.3.4 Proses Gabungan Ekstraksi Ciri Warna Dan Rata-rata Vektor
Pada proses ini merupakan proses penggabungan ekstraksi ciri warna dan rata vektor. Hasil dari setiap perhitungan warna yaitu rata-rata Red, rata-rata-rata-rata Green, rata-rata-rata-rata Blue dan rata-rata-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.
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.
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
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
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
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
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
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.
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
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.
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-rata-rata RGB.
%Membaca Citra
citra=imread(gambar);
%Memisahkan RGB dan mencari rata2 RGB
meanR=0; meanR=mean(mean(dR)); meanG=mean(mean(dG)); meanB=mean(mean(dB));
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
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;
39
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
41
2. Implementasi rata-rata vektor vertikal
Dibawah ini merupakan implementasi untuk mendapatkan ciri rata-rata vektor vertikal:
%Membagi dalam vektor veertikal
obyek=1;
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.
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; 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);
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
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
for i=1:jmlData %looping untuk memisahkan data per kelas
dalam masing2 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:
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
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:
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
bayesKu(stdTraining,rerataTraining,rerataTesting
if idxLabel == i %jika idxlabel hsil prob sama dengan kelas
yg sdang di proses , mka nilai benar akan dijumlahkan
50
% Implementasi algoritma naïve Bayes
[m,n]=size(stdTraining);
if (bayesian(k,l) ~= 0) && (~isnan(bayesian(k,l))) %
membatasi untuk supaya nilai 0 dan nan
likehoodTempt=likehoodTempt*bayesian(k,l);
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:
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
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;
53
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:
54
Gambar 4. 20 Hasil Klasifikasi Dari Data User
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:
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.
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:
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
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.
59
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
61
3. Klasifikasi kain tradisional nusantara ini menggunakan algoritma Naive Bayes classifier, dapat di kembangkan dengan mencoba algoritma
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
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.
64
LAMPIRAN I
67
LAMPIRAN II
70
LAMPIRAN III
74
LAMPIRAN IV
78
%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;
%Memisahkan RGB dan mencari rata2 RGB serta Kadar RGB
meanR=0; meanR=mean(mean(dR)); meanG=mean(mean(dG)); meanB=mean(mean(dB));
meanRGB=meanR+meanG+meanB/3; end
%Mengubah Citra RGB Menjadi Grayscale
79
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0;
81
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
% membuat fungsi baru, fungsi di dalam fungsi untuk menghitung likelihood
82
% membatasi untuk supaya nilai 0 dan nan tdak masuk dlm perhtungan liklihood
% probabilitasTemp=zeros(size(likehood));
probabilitas=zeros(size(likehood));
% [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);
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
% 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;
if nargin && ischar(varargin{1})
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;
% 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)
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;
vektorH=get(handles.rbH,'Value');
% vektorV=get(handles.rbV,'Value')
if vektorH==1 %vektor horisontal
86
vektorH=get(handles.rbH,'Value');
% vektorV=get(handles.rbV,'Value')
if vektorH==1 %vektor horisontal
% 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)
87
dataTemp1=[meanR,meanG,meanB,meanRGB];
[~,nDc]=size(dataTemp1);
% dataTemp1=zscore(dataTemp1);
for j=1:nDc
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)
88 load 'data.mat','data';
load 'data.mat','lv_size';
% Data dimasukkan di dalam cell % Cell menunjukkan class
for i=1:jmlData %looping untuk memisahkan data per kelas dalam
masing2 cell
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
ttaining=trainingTemp{:}; %data dr trainingtemp dimasukan
kdalam training
rerataTrain(i,1:nData-1)=mean(ttaining(:,1:nData-1)); %