PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PENGENALAN POLA AKSARA BATAK KARO MENGGUNAKAN METODE BACK PROPAGATION HALAMAN JUDUL SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh: APRILLIA RINJANI PUTRI 125314044
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PATTERN RECOGNATION OF BATAK KARO CHARACTER USING BACK PROPAGATION METHOD TITLE PAGE A THESIS
Presented as Partial Fulfillment of Requirements to Obtain Sarjana Komputer Degree in Informatics Engineering Department
By: Aprillia Rinjani Putri 125314044
INFORMATICS ENGINEERING STUDY PROGRAM INFORMATICS ENGINEERING DEPARTMENT FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2017
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SKRIPSI HALAMAN PENGESAHAN PENGENALAN POLA AKSARA BATAK KARO MENGGUNAKAN METODE BACK PROPAGATION
Dipersiapkan dan ditulis oleh : APRILLIA RINJANI PUTRI NIM : 125314044
Telah dipertahankan di depan Panitia Penguji Pada tanggal 12 Januari 2017 dan dinyatakan memenuhi syarat
Susunan Panitia Penguji Nama Lengkap
Tanda Tangan
Ketua
: Dr. Anastasia Rita Widiarti, M. Kom.
………………..
Sekretaris
: Eko Hari Parmadi, S.Si., M.Kom.
………………..
Anggota
:Dr. C. Kuntoro Adi, SJ., M.A., M.Sc.
..........................
Yogyakarta, ..... …………. 2017 Fakultas Sains dan Teknologi Universitas Sanata Dharma
Dekan,
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
MOTTO
“Sesuatu yangbelum dikerjakan, seringkali tampak mustahil; kita baru yakin kalau kita telah berhasil melakukannya dengan baik. ”
(Evelyn Underhill)
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
MOTTO
“Sesuatu yangbelum dikerjakan, seringkali tampak mustahil; kita baru yakin kalau kita telah berhasil melakukannya dengan baik. ”
(Evelyn Underhill)
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa di dalam skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK Aksara Batak Karo merupakan salah satu budaya Indonesia yang layak dilestarikan. Dalam pengenalan suatu obyek dibutuhkan proses pembelajaran, yang didapatkan melalui ciri-ciri dan pengalaman dalam mengamati obyek ynag serupa yang telah didapatnya. Salah satu metode yang bisa digunakan untuk mengenali pola tersebut adalah Jaringan Syaraf Tiruan Back Propagation. Dalam Back Propagation, dibentuklah sebuah jaringan syaraf tiruan dengan struktur layer input, layer tersembunyi, dan layer output. Pada pelatihan jaringan tersebut layer tersembunyi mempunyai fungsi aktivasi yang berpengaruh pada pembelajaran dari alat tersebut. Ketika pengujian hal yang dilakukan hampir mirip dengan training hanya saja sudah ada target yang dipersiapkan. Jika dari data uji yang diolah ada yang menemui hasil target maka digolongkan sebagai aksara yang sama dengan target tersebut. Tujuan dari penelitian ini adalah mengetahui kemampuan penggunakan metode Back Propagation dalam pengenalan pola aksara batak karo dan mengetahui berapa besar prosentase keakuratan penggunaan metode Back Propagation dalam pengenalan pola Aksara Batak Karo. Pada penelitian ini digunakan pencirian menghitung piksel hitam (Intencity of Character) dan menghitung arah menggunakan masking diagonal kiri, diagonal kanan, vertikal, dan horizontal (Mark Direction). Hasil yang diperoleh dalam penelitian ini adalah ketika menggunakan kombinasi ciri 8 ada 151 data benar dan tepat oleh alat uji back propagation. Tingkat akurasi tertinggi sebesar 90%. Jaringan yang digunakan menggunakan 2 lapisan tersembunyi dan 1 lapisan keluaran, dengan jumlah neuron 20 layer 1, 35 layer 2, dan lapisan keluaran 21. Dari hasil yang diperoleh dalam penelitian maka penelitian ini dinyatakan berhasil membuktikan bahwa metode back propagation mampu mengenali tulisan tangan aksara batak karo karena sudah mencapai tingkat kebehasilan akurasi diatas 85%.
Kata Kunci: Pengenalan Pola, Mark Direction, Intencity Of Character, Jaringan Syaraf Tiruan Back Propagation
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT Batak Karo Character is one of Indonesia culture that need to be preserved. Recognizing an object takes a learning process, which is obtained through the characteristics and experience in observing a similar object that has been earned. One of methods that can be used to recognize these patterns is a neural network back propagation. In Back Propagation, a neural network formed with the structure of the input layer, hidden layer and output layer. On the training of the network, hidden layer has an activation function which affects the learning of these tools. During testing, it perfomed almost similar to training. Only the targets were prepared. If the test data processed met the target results then it would be classified as the same character with the target. The purpose of this research is to know the ability of Back Propagation method in characters batak karo pattern recognition and to find out how much percentage of accuracy using Back Propagation method in Batak Karo characters pattern recognition. This study used the characterization of calculating a black pixel (Intencity of Character) and calculating the direction by applying masking diagonal left, right diagonal, vertical, horizontal (Mark Direction). There were 151 data correct by back propagation test aquipment after applying feature combination 8. The highest accuracy rate was 90%. The back propagation used two layer, with the number of neurons in 20 hidden layer 1, 35 hidden layer 2 and in output layer was 21. From the results, this study revealed succeeded in proving that the back propagation method was able to recognize Batak Karo characters because it achivied a success rate of accuracy above 85%.
Keywords: Patter Recognition, Mark Direction, Intencity of Character, Back Propagation Neural Network
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, sehingga penulis dapat menyelesaikan tugas akhir dengan judul “Pengenalan Pola Tulisan Tangan Aksara Batak Karo menggunakan Metode Back Propagation”. Tugas akhir ini merupakan salah satu mata kuliah wajib dan sebagai syarat akademik untuk memperoleh gelar sarjana komputer program studi Teknik Informatika Universitas Sanata Dharma Yogyakarta. Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada pihak-pihak yang telah membantu penulis baik selama penelitian maupun saat mengerjakan tugas akhir ini. Ucapan terima kasih sebesar-besarnya penulis sampaikan kepada: 1.
Tuhan Yang Maha Esa, yang telah memberikan pertolongan dan kekuatan dalam proses pembuatan tugas akhir.
2.
Yayasan Perkumpulan Dharma Putri yang telah memberikan beasiswa Ikatan Dinas
3.
Orang tua M.M Yayuk Turliani dan Sr.Frida Sri Suliyani SPM, kakak Aprillius Fanda, adik Febrina Putri Dewi, serta seluruh keluarga yang telah memberikan dukungan spiritual dan material.
4.
Dr. Cyprianus Kuntoro Adi, SJ., M.A., M.Sc. selaku dosen pembimbing tugas akhir, atas bimbingan, waktu dan saran yang telah diberikan kepada penulis.
5.
Iwan Binanto S.Si, M.Cs selaku dosen pembimbing akademik, atas bimbingan, kritik dan saran yang telah diberikan kepada penulis.
6.
Dr. Anastasia Rita Widiarti M.Kom selaku ketua program studi Teknik Informatika, atas bimbingan, kritik dan saran yang telah diberikan kepada penulis.
7.
Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. selaku Dekan Fakultas Sains dan Teknologi, atas bimbingan, kritik dan saran yang telah diberikan kepada penulis.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8.
Seluruh dosen Teknik Informatika atas ilmu yang telah diberikan semasa kuliah dan sangat membantu penulis dalam mengerjakan tugas akhir.
9.
Teman-teman Teknik Mesin, Yuni, Zhena atas bantuannya terhadap penulis dalam mengumpulkan data untuk penelitian ini serta membantu memberi informasi yang dibutuhkan dalam penelitian ini.
10.
Trio Majalengka (Eva, Okta, Lia) yang selalu memberikan support dalam menyelesaikan penelitian ini.
11.
Teman Selo (Raisa, Agata, Siska, Toni, Feliks Eko, Yunus, Tata, Arel, Ningrum) yang saling memberi dukungan, semangat ketika jenuh dan malas dalam mengerjakan tugas akhir ini.
12.
Teman-teman Teknik Informatika 2012 Sanata Dharma, terima kasih atas semangat dan perjuangan selama 4 tahun bersama yang telah kalian berikan kepada satu sama lain.
13.
Teman-teman komputasi Ekli, Yosep Dio, Echo yang telah membantu penulis dalam mengerjakan tugas akhir.
14.
Anak Bimbingan Romo Kun (Wigha, Nita, Okta, Riya, Bondan, Dhesa,dll) yang berjuang bersama dalam menyelesaikan tugas akhir.
15.
Semua pihak yang tidak dapat disebutkan satu per satu yang telah membantu penulis dalam pengerjaan tugas akhir ini.
Penulis menyadari masih banyak kekurangan yang terdapat dalam laporan tugas akhir ini. Saran dan kritik sangat diharapkan untuk hasil yang lebih baik di masa mendatang.Akhir kata, penulis berharap tulisan ini dapat berguna bagi perkembangan ilmu pengetahuan dan wawasan pembaca.
Penulis,
Aprillia Rinjani Putri
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
1 HALAMAN JUDUL .............................................................................................. i HALAMAN PENGESAHAN …………………………………………………..iv MOTTO ................................................................................................................. v PERNYATAAN KEASLIAN KARYA ............................................................. vii LEMBAR PERPUSTAKAAN …………………………………………….…..vii ABSTRAK ……………………………………………………………………..viii KATA PENGANTAR ........................................................................................... x DAFTAR ISI ......................................................................................................... xi DAFTAR TABEL .............................................................................................. xiv DAFTAR GAMBAR ........................................................................................... xv BAB I PENDAHULUAN ...................................................................................... 1 1.1 Latar Belakang .......................................................................................... 1 1.2 Rumusan Masalah..................................................................................... 2 1.3 Tujuan ........................................................................................................ 3 1.4 Batasan Masalah ....................................................................................... 3 1.5 Sistematika Penulisan ............................................................................... 4 BAB II LANDASAN TEORI ............................................................................... 5 2.1 Sejarah Aksara Batak ............................................................................... 5 2.2 Jaringan Syaraf Tiruan ............................................................................ 8 2.2.1 Jaringan Syaraf Tiruan Propagasi Balik / Back Propagation ...... 10 2.3 Pengenalan Pola ...................................................................................... 16 2.4 Penipisan Citra (Thining) ....................................................................... 16 2.5 Ekstraksi Ciri Mark Direction dan Intencity of Character ................ 17 BAB III METODOLOGI PENELITIAN ......................................................... 21 3.1 Data .......................................................................................................... 21 3.2 Perancangan Sistem ................................................................................ 22 3.2.1 Prepossesing ....................................................................................... 23 3.2.2 Pelatihan dan Pengujian Arsitektur JST ........................................ 26 3.2.3 Uji Data Tunggal ............................................................................... 30 xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.3 Kebutuhan Sistem ................................................................................... 31 3.4 Perancangan Antarmuka Sistem ........................................................... 32 BAB IV IMPLEMENTASI DAN ANALISIS HASIL ..................................... 34 4.1 Implementasi Sistem ............................................................................... 34 4.1.1 Visualisasi Proses Ekstraksi Ciri ..................................................... 34 4.2 Analisis Hasil Penelitian ......................................................................... 40 4.2.1 Pengujian Variasi Arsitektur Jaringan ........................................... 40 4.2.2 Implementasi User Interface…………………………………...…..55 4.2.3 Pengujian Data Tunggal ................................................................... 62 BAB V PENUTUP ............................................................................................... 67 5.1 Kesimpulan .............................................................................................. 67 5.2 Saran ........................................................................................................ 67 DAFTAR PUSTAKA .......................................................................................... 68 LAMPIRAN……………………………………………………………...……...63
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
Tabel 1.1 Tabel Penelitian .......................................................................................2 Tabel 3.1 Jumlah Data Input (Kombinasi Feature) ...............................................23 Tabel 3.2 4-Fold Cross Validation.........................................................................24 Tabel 4.1 Jumlah Data Input Arsitektur Jaringan ……………………………….36 Tabel 4.2 Hasil Akurasi seluruh percobaan ……………………………………..38 Tabel 4.3 Hasil Akurasi Feature 1 Hidden Layer 1 ……………………………..39 Tabel 4.4 Hasil Akurasi Feature 1, Hidden Layer 2 …………………………….40 Tabel 4.5 Hasil Akurasi Feature 2, Hidden Layer 1 …………………………….41 Tabel 4.6 Hasil Akurasi Feature 2, Hidden Layer 2 …………………………….42 Tabel 4.7 Hasil Akurasi Feature 3, Hidden Layer 1 …………………………….43 Tabel 4.8 Hasil Akurasi Feature 3, Hidden Layer 2 …………………………….44 Tabel 4.9 Hasil Akurasi Feature 4, Hidden Layer 1 …………………………….45 Tabel 4.10 Hasil Akurasi Feature 4, Hidden Layer 2 …………………………...46 Tabel 4.11 Hasil Akurasi Feature 5, Hidden Layer 1 …………………………...47 Tabel 4.12 Hasil Akurasi Feature 5, Hidden Layer 2 …………………………...48 Tabel 4.13 Hasil Akurasi Feature 6, Hidden Layer 1 …………………………...49 Tabel 4.14 Hasil Akurasi Feature 6, Hidden Layer 2 …………………………...50 Tabel 4.15 Hasil Akurasi Feature 7, Hidden Layer 1 …………………………...51 Tabel 4.16 Hasil Akurasi Feature 7, Hidden Layer 2 …………………………...52 Tabel 4.17 Hasil Akurasi Feature 8, Hidden Layer 1 …………………………...53 Tabel 4.18 Hasil Akurasi Feature 8, Hidden Layer 2 …………………………...54 Tabel 4.19 Hasil Pengujian Data Tunggal ………………………………………57
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Gambar 2.1 Silsilah Aksara .....................................................................................6 Gambar 2.2 Persamaan Surat Batak, Surat Ulu, Surat Incung ................................7 Gambar 2.3 Ilustrasi Jaringan Lapis Tunggal .........................................................9 Gambar 2.4 Ilustrasi Jaringan Lapis Majemuk......................................................10 Gambar 2.5 Ilustrasi Arsitektur Back Propagation ...............................................11 Gambar 2.6 Fungsi aktivasi........................... ........................................................11 Gambar 2.23 Struktur Elemen Tanda Arah ...........................................................17 Gambar 3.1Kolom Isi Responden................. ........................................................18 Gambar 3.2 Aksara Karo Tulisan Tangan...... .......................................................19 Gambar 3.3Diagram Blok Sistem................. ........................................................20 Gambar 3.4Citra keabuan menjadi Hitam Putih ...................................................21 Gambar 3.5Citra Setelah Thining................. ........................................................21 Gambar 3.6 Citra di bagi menjadi 9 segmen.. .......................................................22 Gambar 3.7Arsitektur JST 1 Hidden Layer ..........................................................25 Gambar 3.8Arsitektur JST 2 Hidden Layer...........................................................25 Gambar 3.9Proses Pengenalan dan Uji Data Tunggal .........................................28 Gambar 3.10Tampilan Antarmuka Sistem... .........................................................29 Gambar 3.11 Tampilan Antarmuka Sistem............................................................29 Gambar 4.1 Hasil Baca File aksara .jpg .....................................………………………...31 Gambar 4.2 Citra keabuan menjadi Hitam Putih ..................................................32 Gambar 4.3Ukuran Citra ditemukan................. ....................................................32 Gambar 4.4 Citra Setelah Thining................. .......................................................33 Gambar 4.5 Citra di bagi menjadi 9 segmen................. ........................................34 Gambar 4.6Ciri 1 dari BA KARO……….................... .........................................34 Gambar 4.7Ciri 2 dari BA KARO……….................... .........................................34 Gambar 4.8Ciri 3 dari BA KARO……….................... .........................................35 Gambar 4.9Ciri 4 dari BA KARO……….................... .........................................35 Gambar 4.10 Ciri 5 dari BA KARO ……….................... .....................................35 Gambar 4.11 Ciri 6 dari BA KARO ……….................... .....................................35
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.12 Ciri 7 dari BA KARO ……….................... .....................................35 Gambar 4.13 Ciri 8 dari BA KARO ……….................... .....................................35 Gambar 4.14 Grafik Perubahan Akurasi seluruh percobaan …………………….39 Gambar 4.15 Grafik Perubahan Akurasi Ciri 1, Hidden Layer 1 ………………..40 Gambar 4.16 Grafik Perubahan Akurasi Ciri 1, Hidden Layer 2 ………………..41 Gambar 4.17 Grafik Perubahan Akurasi Ciri 2, Hidden Layer 1 ………………..42 Gambar 4.18 Grafik Perubahan Akurasi Ciri 2, Hidden Layer 2 ………………..43 Gambar 4.19 Grafik Perubahan Akurasi Ciri 3, Hidden Layer 1 ………………..44 Gambar 4.20 Grafik Perubahan Akurasi Ciri 3, Hidden Layer 2 ………………..44 Gambar 4.21 Grafik Perubahan Akurasi Ciri 4, Hidden Layer 1 ………………..45 Gambar 4.22 Grafik Perubahan Akurasi Ciri 4, Hidden Layer 2 ………………..46 Gambar 4.23 Grafik Perubahan Akurasi Ciri 5, Hidden Layer 1 ……….……….47 Gambar 4.24 Grafik Perubahan Akurasi Ciri 5, Hidden Layer 2 ………………..48 Gambar 4.25 Grafik Perubahan Akurasi Ciri 6, Hidden Layer 1 ………………..49 Gambar 4.26 Grafik Perubahan Akurasi Ciri 6, Hidden Layer 2 ………………..50 Gambar 4.27 Grafik Perubahan Akurasi Ciri 7, Hidden Layer 1 ………………..51 Gambar 4.28 Grafik Perubahan Akurasi Ciri 7, Hidden Layer 2 ………………..52 Gambar 4.29 Grafik Perubahan Akurasi Ciri 8, Hidden Layer 1 ………………..53 Gambar 4.30 Grafik Perubahan Akurasi Ciri 8, Hidden Layer 2 ………………..54 Gambar 4.31Tampilan Pelatihan dan Pengujian ……….......................................55 Gambar 4.32 Tampilan Proses Pelatihan Arsitektur JST 1 Hidden Layer ………56 Gambar 4.33 Tampilan Proses Pelatihan Arsitektur JST 2 Hidden Layer ………57 Gambar 4.34 Data Uji yang dikenali……………………………………. ………57
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN 1.1
Latar Belakang Indonesia sebagai Negara kepulauan memiliki warisan kekayaan budaya yang beragam, dimana salah satunya terwujud dalam aksara atau tulisan asli daerah yang termasuk dalam aksara Nusantara. Sebagai bagian dari aksara Nusantara, aksara Batak Karo yang merupakan rumpun dari aksara Batak ini perlu mendapat perhatian khusus karena terancam punah akibat keterbatasan data dan informasi (Kertasari dkk, 2009; Kozok,2009). Penyebab keterbatasan tersebut yaitu dulu sastra diturunkan hanya secara lisan, aksara Batak tidak digunakan untuk tujuan sehari-hari, melainkan salah satunya digunakan untuk menulis naskah pustaka yang sebagian besar berisi ilmu kedukunan dan mulai tahun 1852 dimusnahkan. Bentuk aksara Batak dipengaruhi oleh varian aksara yang mulai akhir abad ke-19 diangkat untuk mencetak buku-buku yang bersifat keagamaan dan pendidikan, sehingga apa yang dianggap sebagai aksara baku sekarang sering merupakan hasil penyimpangan. Aksara Batak menjadi kebanggaan masyarakat Batak sebagai prestasi nenek moyangnya yang mampu menciptakan tulisan sendiri (Kozok, 2009). Tetapi di sisi lain, aksara Batak sangat minim dimengerti ataupun dikenal oleh masyaakat, bahkan sebagian besar masyarakat Batak sendiri tidak mengetahui adanya aksara Batak. Diperlukan sistem komputer yang mampu melakukan mengenali pola aksara batak. Sebagai pemecahan atas permasalahan tersebut, dilakukan penelitian untuk membangun sistem pengenalan pola aksara Batak Karo secara otomatis. Beberapa penelitian mengenai pengenalan pola aksara Batak
yang
telah
dilakukan
1
adalah
sebagai
berikut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
Tabel 1.1 Tabel Penelitian Penelitian Peneliti / Tahun
No
Akurasi
Penelitian 1
Pengenalan Aksara Batak Toba dengan
Chain
Code
Daurat dan Anggi,
dan
100%
2013
Backpropagation 2
Pengenalan
Tulisan
Tangan
Sitinjak, 2012
94,07%
Rio, 2011
96,02%
Aksara Batak Toba menggunakan Backpropagation 3
Pengenalan
Tulisan
Tangan
Aksara Batak Toba menggunakan Jaringan Syaraf Tiruan berbasis Multilayer Perceptron
Berdasarkan
penelitian
yang
telah
dilakukan
oleh
peneliti
sebelumnya, maka penulis melakukan penelitian mengenai pengenalan pola aksara Batak Karo menggunakan metode jaringan syaraf tiruan Back Propagation. Metode Back Propagation dipilih sebagai penyelesaian karena merupakan salah satu metode JST yang sering dan tepat digunakan untuk pengenalan pola temasuk tulisan tangan dengan menawarkan kelengkapan serta akurasi dalam proses pengenalan tulisan tangan.
1.2
Rumusan Masalah Berdasarkan permasalahan yang diuraikan pada latar belakang diatas, maka diperoleh rumusan masalah dari penelitian ini yaitu: 1. Bagaimana metodeJaringan Syaraf Tiruan Back Propagation mampu untuk mengenalipola tulisan tangan aksara Batak Karo? 2. Berapakah akurasi yang dapat dihasilkan oleh metode Jaringan Syaraf Tiruan Back Propagation dalam mengenali pola aksara batak karo?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
Hasil ekstraksi ciri menggunakan Mark Direction dan Intencity of Character diharapkan mampu untuk menunjukkan perbedaan antar karakter masing-masing ciri, yang dapat mempermudah metode Jaringan Syaraf Tiruan Back Propagation dalam melakukan pengenalan untuk setiap aksara
1.3
Tujuan Tujuan dari penelitian ini adalah membuat aplikasi yang mampu: 1. Mengenali pola tulisan tangan aksara Batak Karo menggunakan metode Jaringan Syaraf Tiruan Back Propagation. 2. Memudahkan para pengguna untuk memahami dasar aksara Batak Karo Aplikasi ini kiranya akan sangat berguna dikemudian hari untuk membantu masyarakat asli Batak Karo untuk lebih belajar dengan mengenali aksara, karena sesungguhnya orang Batak sendiri tidak tahu dan mengerti aksara Batak Karo.
1.4
Batasan Masalah Untuk membahas topik yang lebih terarah dan terfokus pada tujuan yang akan dicapai, maka batasan masalahnya adalah sebagai berikut : 1. Pola aksara yang diteliti adalah pola aksara batak karo 2. Data citra aksara Batak Karo diambil dari 8 orang tulisan tangan dimana input untuk sistem diperoleh dari hasil scanner kemudian diproses dan dikenali oleh sistem. 3. Citra yang akan diproses berukuran 600 x 600 pixel dengan format .jpg, .jpeg 4. Sistem hanya untuk mengenali 21 karakter aksara Batak Karo. 5. Sistem tidak mengenali karakter aksara Batak Karo dengan diakritik anak ni surat dan angka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
1.5
Sistematika Penulisan Sistematika penulisan tugas akhir ini dibagi menjadi beberapa bab dengan susunan sebagai berikut : BAB I : PENDAHULUAN Pada bab ini dijelaskan mengenai latar belakang masalah yang mendorong dibangunnya sistem, rumusan masalah, tujuan dibangunnya sistem, batasan masalah dalam dibangunnya sistem, dan sistematika penulisan yang digunakan dalam menyelesaikan penelitian tugas akhir ini. BAB II : LANDASAN TEORI Pada bab ini akan diuraikan mengenai teori – teori dasar serta metode yang digunakan dalam pembangunan sistem pada penelitian ini beserta dengan teori – teori pendukung lainnya. Teori tersebut antara lain mengenai Sejarah Aksara Batak, teori Pengenalan Poladan metode Jaringan Saraf Tiruan khususnya model Back Propagation untuk proses pengenalan polayang akan digunakan dalam perancangan sistem. BAB III : METODOLOGI PENELITIAN Pada bab ini akan dibahas mengenai analisa dan perancangan hal – hal atau komponen – komponen yang akan digunakan untuk melakukan penelitian, serta perancangan sistem secara lengkap. BAB IV : IMPLEMENTASI DAN ANALISA HASIL Pada bab ini akan dijelaskan mengenai implementasi sistem, sarana yang dibutuhkan, penerapan rancangan yang telah dibuat dalam suatu program, cara pengoperasian sistem, hasil implementasi, serta analisis dan evaluasi dari hasil implementasi. BAB V : PENUTUP Pada bab ini akan digambarkan kesimpulan dari seluruh penelitian dan saran – saran yang diusulkan untuk pengembangan lebih lanjut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
2
BAB II
LANDASAN TEORI Bab ini berisi penjabaran mengenai teori – teori yang mendukung dalam penelitian ini. Teori – teori yang digunakan dalam penelitian ini yaitu Teori tersebut antara lain mengenai Sejarah Aksara Batak, teori Pengenalan Pola, Penipisan Citra (Thining), Ekstraksi Ciri, dan metode Jaringan Saraf Tiruan khususnya model Back Propagation untuk proses pengenalan pola yang akan digunakan dalam perancangan sistem. 2.1
Sejarah Aksara Batak Paleografi adalah ilmu tentang tulisan-tulisan kuno. Banyak masyarakat yang mengenal tulisan terdapat naskah-naskah kuno yang umurnya dapat mencapai ratusan atau bahkan ribuan tahun. Aksara yang terdapat pada naskah-naskah kuno pada umumnya berbeda dengan aksara yang terdapat dalam naskah yang lebih baru. Dengan cara memperbandingkan aksaraakasara yang terdapat dalam naskah-naskah lama, dapat menyusun semacam silsilah aksara. Sebagian besar sistem tulisan yang ada di Afrika, Eropa, dan Asia berasal dari satu sumber, yakni aksara Semit Kuno yang menjadi nenek moyang tulisan-tulisan Asia (Arab, Ibrani dan India) maupun Eropa (Latin, Yunani dsb.) Aksara Batak termasuk keluarga tulisan India. Aksara India yang tertua adalah aksara Brahmi yang menurunkan dua kelompok tulisan yakni India Utara dan India Selatan. Aksara Nagari dan Palawa masing-masing berasal dari kelompok utara dan selatan dan kedua-duanya pernah dipakai di berbagai tempat di Asia Tenggara, termasuk Indonesia. Yang paling berpengaruh adalah aksara Palawa. Semua tulisan asli Indonesia berinduk pada aksara tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
Gambar 2.1 Silsilah Aksara (Kozok, 2009)
Aksara Nusantara asli dapat dibagi atas lima kelompok : 1. Aksara Hanacaraka (Jawa, Sunda, Bali) 2. Surat Ulu (kerinci, rejang, lampung, lembak, pasemah dan serawi) 3. Surat batak (angkola-maindling, toba, simalungun, pakpak dairi, karo) 4. Aksara Sulawesi (bugis, makasar dan bima) 5. Aksara Filipina (bisaya, tagalog, tagbanwa, mangyan) Aksara Batak diklasifikasikan sebagai abugida, yaitu paduan antara silabogram seperti aksara batak dan aksara nusantara lainnya. Di antara aksara-aksara Nusantara yang paling dekat dengan aksara Batak adalah aksara Kerinci (surat incung), aksara Lebong, Lembak, Lintang, Pasemah, Rejang, Serawai (surat ulu), serta aksara Lampung. Sama dengan daerah Batak, daerah-daerah tersebut juga agak terpencil di daerah pegunungan sehingga kurang terpengaruh oleh pengaruh-pengaruh asing yang dibawa dari seberang lautan dan secara lambat merembet dari pesisir ke pedalaman. Salah satu pengaruh budaya asing adalah masuknya agama Islam. Serentak dengan penyebaran agama Islam bersebar pula tulisan Arab yang di Melayu terkenal sebagai tulisan Jawi. Aksara “Arab gundul” tersebut cepat menggantikan aksara-aksara Sumatra asli yang kemudian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
hilang sama sekali. Karena daerah-daerah yang disebut di atas berada di pedalaman dan agak terpencil, maka pengaruh Islam baru dirasakan pada abad ke-19 sehingga aksara asli masih dapat bertahan sampai pada abad ke-20. Besar kemungkinan bahwa aksara Minangkabau dan Melayu juga pernah ada, tetapi kemudian digantikan oleh tulisan Arab-Melayu sehingga hilang tak berbekas.Aksara-aksara surat ulu di Sumatra bagian selatan banyak memiliki persamaan dengan huruf Batak. Huruf Ka, Ga, dan Ha hampir sama bentuknya, dan juga huruf Da masih banyak menunjukkan persamaan.
Gambar 2.2 Persamaan Surat Batak, Surat Ulu, dan Surat Incung
Aksara-aksara tersebut juga memperkenalkan sebuah hal yang baru yakni aksara-aksara yang didahului bunyi sengau. Batak (Karo) memiliki dua huruf tambahan yakni Mba dan Nda, aksara Kerinci dan Rencong menambahkan dua lagi yakni Ngga dan Nja. Aksara Bugis juga mempunyai empat aksara yang bersengau ialah Ngka, Mpa, Nra, dan Nca. Perlu dicatat bahwa gejala tersebut tidak ada pada aksara Batak selain Karo, dan juga tidak ada di Lampung, Makasar, dan Filipina. Tulisanaksara Karo, adalah kumpulan tanda-tanda(karakter/simbolsimbol) untuk menyatakan sesuatu, yang pemakaiannya dimengerti dan disepakati, yakni oleh masyarakat Karo itu sendiri.
Tulisan Karo
merupakan milik dari masyarakat(etnis) Karo atau dengan kata lain, tulisan yang tumbuh dan berkembang dimasyarakat(etnis) Karo serta tersebar luas, dipergunakan, dan diajarkan(awalnya dengan bahasa pengantar, cakap Karo) di ruang lingkup Karo yang dulunya meliputi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
pesisir timur di Sumatera(Oostkust van Sumatera) bagian utara dan dataran tinggi Karo yang terbentang luas diatas pegunungan Bukit Barisan. 2.2
Jaringan Syaraf Tiruan Jaringan Syaraf Tiruan adalah sistem pemrosesan informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologis (Siang, 2005). Jaringan Syaraf Tiruan dibentuk sebagai
generalisasi model
matematika dari jaringan syaraf biologis, dengan asumsi bahwa : 1. Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron). 2. Sinyal dikirimkan diantara neuron-neuron melalui penghubungpenghubung. 3. Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal. 4. Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi (biasanya bukan fungsi linier) yang dikenakan pada jumlahan input yang diterima. Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang. Jaringan Syaraf Tiruan ditentukan oleh 3 hal: 1. Pola hubungan antar neuron (arsitekstur jaringan). 2. Metode untuk menentukan bobot penghubung. 3. Fungsi aktivasi. Arsitekstur Jaringan merupakan salah satu hal penting dalam Jaringan Syaraf Tiruan. Berikut ini beberapa arsitektur jaringan yang sering digunakan dalam Jaringan Syaraf Tiruan: 1.
Jaringan Lapis Tunggal Dalam jaringan ini, sekumpulan input neuron dihubungkan langsung dengan sekumpulan output-nya. Dalam jaringan lapis tunggal, bobot satu unit keluaran tidak mempengaruhi bobot unit keluaran lainnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
Gambar 2.3Ilustrasi Arsitektur Jaringan Lapis Tunggal (Siang, 2005) Pada gambar 2.3 terdapat n unit input(𝑥1 , 𝑥𝑖 , … , 𝑥𝑛 ) dan m buah unit output(𝑌1 , 𝑌𝑗 , … , 𝑌𝑚 ). Kemudian (𝑤11 , 𝑤𝑗1 , … , 𝑤𝑚 ) menyatakan bobot hubungan antara unit ke-i dalam input dengan unit ke-j dalam output.
Selama
proses
pelatihan,
bobot-bobot
tersebut
akan
dimodifikasi untuk memperoleh keakuratan hasil yang maksimal. 2.
Jaringan Lapis Majemuk Jaringan lapis majemuk merupakan perluasan dari jaringan lapis tunggal. Dalam jaringan lapis majemuk, selain unit input dan output, ada pula unit lain, yang berada diantara unit input dan output (sering disebut lapis tersembunyi). Dalam jaringan ini dimungkinkan ada beberapa lapis tersembunyi. Unit dalam satu layar tidak saling berhubungan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
Gambar 2.4 Ilustrasi Arsitektur Jaringan Lapis Majemuk (Siang, 2005) Pada gambar 2.4 terdapat n buah unit input (𝑥1 , 𝑥𝑖 , … , 𝑥𝑛 ) dan mbuah unit output (𝑌1 , 𝑌𝑗 , … , 𝑌𝑚 ), sebuah lapis tersembunyi yang terdiri dari p buah unit (𝑧1 , … , 𝑧𝑝 ). Jaringan ini dapat menyelesaikan masalah yang lebih kompleks. 2.2.1 Jaringan Syaraf Tiruan Propagasi Balik / Back Propagation Jaringan
Syaraf
Tiruan
BackPropagation
pada
umumnya
membandingkan perhitungan keluaran Jaringan Syaraf Tiruan dengan target keluaran dan menghitung nilai error untuk setiap unit jaringan. BackPropagation adalah salah satu algoritma yang menggunakan metode terawasi (supervised learning), dan termasuk jaringan MLP (Multi Layer Perceptron) / Jaringan Lapis Majemuk.Metode ini merupakan salah satu metode yang sangat baik dalam menangani masalah pengenalan pola-pola kompleks. Di dalam jaringan ini, setiap unit yang berada di lapisan input berhubungan dengan setiap unit yang ada di lapisan tersembunyi. Sedangkan setiap unit di lapisan tersembunyi berhubungan dengan setiap unit di lapisan output. Dalam pola pelatihannya, jaringan ini akan diberi input-an yang akan diteruskan ke dalam layar tersembunyi dan menuju hingga output. Ketika hasil keluaran ternyata tidak sesuai dengan harapan maka keluaran akan kembali disebarkan mundur (backward) pada lapisan tersembunyi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
hingga menuju input. Tahap selanjutnya adalah dengan melakukan perubahan bobot. Iterasi ini terus dilakukan hingga ditemukan penyelesaian yang optimal (Siang, 2005). 1.
Arsitektur Back Propagation
Gambar 2.5 Ilustrasi Arsitektur Back Propagation (Siang, 2005) Gambar 2.5 merupakan arsitektur jaringan syaraf tiruan back propagation dengan n buah input ditambah sebuah bias, sebuah lapis tersembunyi yang terdiri dari p unit ditambah sebuah bias, dan sebuah lapis unit keluaran. 2.
Fungsi Aktivasi Dalam jaringan syaraf tiruan back propagation, fungsi aktivasi yang dipakai harus memenuhi beberapa syarat, yaitu : kontinu, terdeferensial dengan mudah dan merupakan fungsi yang tidak turun. Salah satu fungsi yang memenuhi ketiga syarat tersebut sehingga sering dipakai adalah fungsi sigmoidbiner yang memiliki range(0,1). 1
𝑓(𝑥) = 1+𝑒 −𝑥 dengan turunan 𝑓 ′ (𝑥) = 𝑓(𝑥)(1 − 𝑓(𝑥))
(2.6)
Fungsi lain yang sering dipakai adalah sigmoid bipolardengan range(-1,1).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
𝑓(𝑥) =
2 1+𝑒 −𝑥
− 1dengan
turunan𝑓 ′ (𝑥) = (1+𝑓(𝑥))(1−𝑓(𝑥)) 2
(2.7)
Fungsi sigmoid memiliki nilai maksimum = 1. Maka untuk pola yang targetnya > 1, pola masukkan dan keluaran harus terlebih dahulu ditransformasi sehingga semua polanya memiliki range yang sama seperti fungsi sigmoid yang dipakai. Alternatif lain adalah menggunakan fungsi aktivasi sigmoid hanya pada lapis yang bukan lapis keluaran. Pada lapis keluaran, fungsi aktivasi yang dipakai adalah fungsi identitas : 𝑓(𝑥) = 𝑥. 3.
Proses Pelatihan Back Propagation Proses Pelatihan Jaringan Syaraf Tiruan Back Propagation terdiri dari 3 proses yaitu propagasi maju, propagasi mundur, perubahan bobot. Ketiga proses tersebut diulang-ulang sampai kondisi penghentian terpenuhi. Umumnya penghentian yang dipakai adalah iterasi dan error. Iterasi akan dihentikan jika iterasi melebihi iterasi yang ditentukan. Atau jika error sudah lebih kecil dari yang ditentukan. 1.
Propagasi Maju Selama
propagasi
maju,
sinyal
masukkan
(= 𝑥𝑖 )
dipropagasikan ke lapis tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari setiap unit lapis tersembunyi (= 𝑧𝑗 ) tersebut selanjutnya dipropagasikan maju lagi ke lapis tersembunyi di atasnya. Demikian seterusnya hingga mendapatkan luaran jaringan (= 𝑦𝑘 ). Berikutnya, luaran jaringan (= 𝑦𝑘 ) dibandingkan dengan target yang harus dicapai (= 𝑡𝑘 ). Selisih 𝑡𝑘 − 𝑦𝑘 adalah error yang terjadi. Jika nilai error lebih kecil dari yang telah ditentukan, maka iterasi dihentikan, jika tidak, maka bobot setiap garis dimodifikasi untuk mengurangi error yang terjadi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
2.
Propagasi Mundur Berdasarkan
error
𝑡𝑘 − 𝑦𝑘 ,
dihitung
faktor
𝛿𝑘 (𝑘 =
1,2, … , 𝑚) yang dipakai untuk mendistribusikan error di unit 𝑦𝑘 ke semua unit tersembunyi yang terhubung langsung dengan 𝑦𝑘 . 𝛿𝑘 juga dipakai untuk mengubah bobot garis yang berhubungan langsung dengan unit luaran. Dengan cara yang sama, dihitung faktor 𝛿𝑗 di setiap unitlapis tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di bawahnya. Demikian seterusnya hingga semua faktor 𝛿 di unit tersembunyi yang berhubungan langsung dengan unit masukkan dihitung. 3.
Perbaikan Bobot Setelah semua faktor 𝛿 dihitung, bobot semua garis dimodifikasi bersamaan. Perubahan bobot suatu garis didasarkan atas faktor 𝛿neuron di lapis atasnya.
Algoritma pelatihan untuk jaringan dengan satu layar tersembunyi (dengan fungsi aktifasi sigmoid biner) adalah sebagai berikut (Siang, 2005) : Langkah 0: Inisialisasi semua bobot dengan bilangan acak kecil. Langkah 1: jika kondisi penghentian belum terpenuhi maka lakukan langkah 2-9. Langkah 2: untuk setiap pasang data pelatihan, lakukan langkah 3-8 Fase I : Propagasi Maju Langkah 3: tiap unit masukan menerima sinyal kemudian meneruskan ke unit tersembunyi di atasnya. Langkah 4: hitung semua keluaran di unit tersembunyi 𝑧𝑗 (j = 1, 2, … , p) 𝑧_𝑛𝑒𝑡𝑗 = 𝑣𝑗𝑜 + ∑𝑛𝑖=1 𝑥𝑖 𝑣𝑗𝑖
(2.8)
𝑧𝑗 = 𝑓(𝑧_𝑛𝑒𝑡𝑗 )
(2.9)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
Langkah 5: hitung semua keluaran di unit tersembunyi 𝑦𝑘 (k = 1, 2, … , m). 𝑦_𝑛𝑒𝑡𝑘 = 𝑤𝑘𝑜 + ∑𝑛𝑗=1 𝑧𝑗 𝑤𝑘𝑗
(2.10)
𝑧𝑗 = 𝑓(𝑦_𝑛𝑒𝑡𝑘 )
(2.11)
Fase II : Propagasi Mundur Langkah 6: hitung faktor 𝛿𝑘 unit keluaran berdasarkan error setiap unit keluaran 𝑦𝑘 (k = 1, 2, … , m). 𝛿𝑘 = (𝑡𝑘 − 𝑦𝑘 )𝑦𝑘 (1 − 𝑦𝑘 )
(2.12)
Hitung suku perubahan bobot 𝑤𝑘𝑗 dengan laju percepatan 𝛼 ∆𝑤𝑘𝑗 = 𝛼𝛿𝑘 𝑧𝑗 ; 𝑘 = 1, 2, … , 𝑚;𝑗 = 0, 1, … , 𝑝
(2.13)
Langkah 7: hitung faktor 𝛿 unit tersembunyi berdasarkan errordi setiap unit tersembunyi 𝑧𝑗 = (𝑗 = 1,2, … , 𝑝) 𝛿_𝑛𝑒𝑡𝑖 = ∑𝑚 𝑘=1 𝛿𝑘 𝑤𝑘𝑗
(2.14)
𝛿𝑖 = 𝛿_𝑛𝑒𝑡𝑖 𝑧𝑗 (1 − 𝑧𝑗 )
(2.15)
Hitung suku perubahan bobot 𝑣𝑗𝑖 ∆𝑣𝑗𝑖 = 𝛼𝛿𝑖 𝑥𝑖 ; = 1,2, … , 𝑝 ; 𝑖 = 0,1, … , 𝑛
(2.16)
Fase III : Perubahan Bobot Langkah 8: Hitung semua perubahan bobot Perubahan bobot garis yang menuju ke unit keluaran: 𝑤𝑘𝑗 (𝑏𝑎𝑟𝑢) = 𝑤𝑘𝑗 (𝑙𝑎𝑚𝑎) + ∆𝑤𝑘𝑗 (𝑘 = 1,2, … , 𝑚 ; 𝑗 = 0,1, … , 𝑝)
(2.17)
Perubahan bobot garis yang menuju ke unit tersembunyi: 𝑣𝑗𝑖 (𝑏𝑎𝑟𝑢) = 𝑣𝑗𝑖 (𝑙𝑎𝑚𝑎) + ∆𝑣𝑗𝑖 (𝑗 = 1,2, … , 𝑝 ; 𝑖 = 0,1, … , 𝑛)
(2.18)
Langkah 9: bandingkan kondisi penghentian
Jaringan Syaraf Tiruan Back Propagation memiliki kelemahan tentang berapa epoch yang harus dilalui untuk memperoleh hasil yang diinginkan. Faktor-faktor penting dari Jaringan Syaraf Tiruan Back Propagation agar jaringan bekerja dengan maksimal adalah: 1.
Pemilihan Bobot dan Bias Awal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
Nguyen dan widrow (1990) mengusulkan cara membuat inisialisasi bobot dan bias ke unit tersembunyi sehingga menghasilkan iterasi yang lebih cepat. Misal: n
= jumlah unit masukan
p
= jumlah unit tersembunyi
𝛽
= factor skala = 0.7 𝑛√𝑝
Algoritma inisialisasi: Langkah 1: Inisisalisasi semua bobot (𝑣𝑗𝑖 (𝑙𝑎𝑚𝑎)) dengan bilangan acak dalam interval [-0.5, 0.5]. 2 2 2 Langkah 2: hitung ‖𝑣𝑗 ‖ = √𝑣𝑗1 + 𝑣𝑗2 + ⋯ + 𝑣𝑗𝑛
(2.20)
Langkah 3: bobot yang dipakai sebagai inisialisasi = 𝑣𝑗𝑖 = 𝛽𝑣𝑗𝑖 (𝑙𝑎𝑚𝑎)
(2.21)
‖𝑣𝑗 ‖
Langkah 4: bias yang dipakai sebagai inisialisasi = 𝑣𝑗0 = bilangan acak antara – 𝛽 dan 𝛽. 2.
Jumlah Unit Tersembunyi Jaringan dengan sebuah lapis tersembunyi sudah cukup bagi Jaringan Syaraf Tiruan Back Propagation untuk mengenali sembarang kelas antara masukan dan target dengan tingkat ketelitian yang ditentukan. Jika jaringan memiliki lebih dari 1 lapis tersembunyi maka algoritma pelatihan perlu direvisi. Dalam Fase I, keluaran harus dihitung untuk tiap lapis, dimulai dari lapis tersembunyi paling bawah. Kemudian dalam fase II, faktor 𝛿 perlu dihitung untuk tiap lapis tersembunyi, dimulai dari lapis keluaran.
3.
Jumlah Pola Pelatihan Jumlah pola pelatihan ditentukan oleh banyaknya bobot dan tingkat akurasi yang diinginkan. 𝑗𝑢𝑚𝑙𝑎ℎ 𝑝𝑜𝑙𝑎 =
𝑗𝑢𝑚𝑙𝑎ℎ 𝑏𝑜𝑏𝑜𝑡 𝑡𝑖𝑛𝑔𝑘𝑎𝑡 𝑎𝑘𝑢𝑟𝑎𝑠𝑖
(2.22)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
2.3
Pengenalan Pola Pengenalan pola adalah suatu ilmu untuk mengklasifikasikan atau menggambarkan sesuatu berdasarkan pengukuran kuantitatif ciri atau sifat utama dari suatu obyek, sedangkan pola adalah suatu entitas yang terdefinisi dan dapat diidentifikasi serta diberi nama. Pengenalan pola dapat dilakukan sebagai tindakan untuk mengolah data mentah dan membuatsuatu aksi berdasar kategori dari pola data tersebut. Pada dasarnya pengenalan pola terdiri dari 3 langkah utama yaitu preprosessing, ekstraksi ciri dan pengenalan. Preprosessing merupakan langkah untuk memfokuskan obyek data yang akan dikenali dengan obyek lain yang tidak digunakan. Dalam hal pemrosesan awal yang dilakukan terhadap obyek adalah dengan pengubaha citra digital menjadi citra biner. Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai piksel yaitu hitam dan putih. Ekstraksi ciri dilakukan unuk menyederhanakan data dengan melakukan pengukuran fitur tertentu sehingga informasi dasar dari data tersebut dapat terlihat. Proses berikutnya adalah pengenalan yaitu tindakan untuk mengelompokan data menjadi
pola sesuai target. Dalam
melakukan proses pengenalan dipilih ekstraksi ciri yang optimal untuk menghasilkan hasil terbaik dalam tahap pengenalan. 2.4
Penipisan Citra (Thining) Penipisan (thinning) adalah operasi pemrosesan citra biner yang dalam hal ini objek (region) direduksi menjadi rangka yang menghampiri garis sumbu objek. Tujuan penipisan adalah mengurangi bagian yang tidak perlu (redundant) sehingga hanya dihasilkan informasi yang esensial saja. Proses Thining hanya dikenai pada citra yang telah dibinarisasi, dan kemudian menghasilkan citra biner lain sebagai output-nya. Proses thining dilakukan dengan memeriksa tiap piksel yang bertetangga dengan piksel obyek. Untuk melakukan pengecekan setiap piksel obyek dapat dilakukan dengan menggunakan mask atau elemen penstruktur. Proses thining pada suatu citra yang memiliki ketebalan tertentu bias membuat citra tersebut menjadi lebih tipis atau satu garis saja tanpa merubah bentuk asli dari data citra.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
2.5
Ekstraksi Ciri Mark Direction dan Intencity of Character Intensitas karakter (intensity of character) dan tanda arah (mark direction). Intensitas karakter adalah pencirian citra dengan cara menghitung berapa jumlah piksel yang bernilai 0 (berwarna hitam). Jadi intesitas karakter digunakan untuk menghitung nilai piksel hitam pada sebuah citra. Tanda arah adalah pencirian citra dengan cara menghitung banyaknya piksel yang memiliki tetanggga yang berarah horisontal, vertikal, diagonal ke kiri, dan diagonal ke kanan. Jadi tanda arah digunakan untuk menghitung berapa banyak piksel yang memenuhi masking horisontal, vertikal, diagonal kiri, dan diagonal kanan pada sebuah citra. Pada penelitian ini intensitas karakter dan tanda arah digunakan pada setiap segmen dari citra yang telah dibagi menjadi 9 segmen (3 x 3 segmen).
Gambar 2.23 Struktur Elemen Tanda Arah (Surinta, 2010) Berikut adalah algoritma untuk ekstraksi ciri: 1.
Algoritma Divide a. Mulai b. Membaca citra tipis pada preprocessing c. Menghitung banyak garis dan kolom pada citra tipis yang telah dibaca d. Membagi 3 baris matriks citra yang ada r3=rows/ e. Membagi 3 kolom matriks citra yang ada c3=columns/3 f. Membuat citra baru bernama im1 dari baris 1 sampai r3 dan dari kolom 1 sampai c3 g. Membuat citra baru bernama im2 dari baris 1 sampai r3 dan dari kolom c3+1 sampai 2 x c3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
h. Membuat citra baru bernama im3 dari baris 1 sampai r3 dan dari kolom 2xc3+1 sampai akhir dari kolom i. Membuat citra baru bernama im4 dari baris r3+1 sampai 2xr3 dan kolom 1 sampai c3 j. Membuat citra baru bernama im5 dari baris r3+1 sampai 2xr3 dan dari kolom c3+1 sampai 2xc3 k. Membuat citra baru bernama im6 berukuran dari baris r3+1 sampai 2xr3 dan dari kolom 2xc3+1 sampai akhir dari kolom l. Membuat citra baru bernama im7 dari baris 2xr3+1 sampai akhir dari baris dan dari kolom 1 sampai c3 m. Membuat citra baru bernama im7 dari baris 2xr3+1 sampai akhir dari baris dan dari kolom c3+1 sampai 2xc3 n. Membuat citra baru bernama im9 dari baris 2xr3+1 sampai akhir dari baris dan dari kolom 2xc3+1 sampai akhir dari kolom o. Menyediakan keluaran berupa citra baru im1, im2, im3, im4, im5, im6, im7, im8, im9 p. Selesai 2.
Algoritma Mark Direction i) Mulai ii) Mendapatkan jumlah kolom dan baris dari matriks citra iii) Membuat counter vert=0, horz=0, dig1=0, dig2=0 iv) Untuk i=1 sampai kolom lakukan langkah e), jika sudah memenuhi sampai kolom lakukan langkah o) v) Untuk j=1 sampai baris lakukan langkah f), jika sudah memenuhi sampai baris lakukan langkah d) vi) Jika newimage (I,j)sama dengan 0 lakukan langkah g), i), k), m).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
vii) Jika newimage (I,j) + new image (i-1,j) + newimage (i+1,j) sama dengan 0 lakukan langkah h) viii) Jika newimage (I-1,j-1) + newimage (I-1,j+1) + newimage ( I,j+1) + newimage (I+1,j-) + newimage (i+1,j+1) sama dengan 6, maka tambahkan counter vert=vert+1 ix) Jika newimage (I,j) + newimage(I,j-1) + newimage (I,j+1) sama dengan 0 lakukan langkah j) x) Jika newimage (i-1,j-1) + newimage (i-1,j) + newimage (i+1,j-1) + newimage (i+1,j) + newimage (i+1,j+1) sama dengan 6, maka tambahkan counter horz=horz+1 xi) Jika newimage (I,j) + newimage (i-1,j-1) + newimage (i+1,j+1) sama dengan 0 lakukan langkah l) xii) Jika newimage (i-1,j) + newimage(i-1,j+1) + newimage (I,j-1) + newimage (I,j+1) + newimage (i+1,j-1) + newimage (i+1,j) sama dengan 6, maka tambahkan counter dig1=dig1+1 xiii) Jika newimage (I,j) + newimage (i-1,j+1) + newimage (i+1,j-1) sama dengan 0 lakukan langkah n) xiv) Jika newimage (i-1,j-1) + newimage (i-1,j) + newimage (I,j-1) + newimage (I,j+1) + newimage (i+1,j) + newimage (i+1,j+1) sama dengan 6, maka tambahkan counter dig2=dig2+1 xv)
3.
Selesai
Algoritma Intencity of Character (IoC) a.
Mulai
b.
Mendapatkan jumlah kolom dan baris dari matriks citra
c.
Membuat counter dan di inisialisasi dengan angka 0
d.
Untuk i=1 sampai kolom lakukan langkah e), jika sudah memenuhi sampai kolom lakukan langkah g)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
e.
Untuk j=1 sampai baris lakukan langkah f), jika sudah memenuhi sampai baris lakukan langkah d)
f.
Jika newimage (I,j) sama dengan 0 tambahkan nilai counter sebanyak 1
g.
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III METODOLOGI PENELITIAN
Bab ini berisi penjelasan danproses pengolahan data yang akan digunakan dalam penelitian ini, serta perancangan sistem yang meliputi proses ekstraksi ciri, pelatihan dan pengujian arsitektur JST, lalu pengenalandan uji data,rincian kebutuhan sistem danjuga perancangan antarmuka sistem. 3.1
Data Dalam pengenalan pola aksara Batak Karo ini digunakan 21 huruf aksara tulisan tangan Batak Karo yang dimiliki oleh 8 orang yang berbeda. Data yang diperoleh sebelumnya dengan mengisi kolom yang telah disediakan. 7,2 cm
2,7 cm
Gambar 3.1 Kolom Isi Responden
Setiap tipe tulisan tangan terdiri dari 168 gambar yang akan dijadikan sebagai data. Tipe tulisan tangan yang akan digunakan dalam pengenalan pola ditunjukan pada gambar 3.2
21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
Gambar 3.2 aksara Karo Tulisan Tangan
3.2
Perancangan Sistem Sub bab ini berisi tentang perancangan sistem dari aplikasi yang akan dibuat.Proses dimulai dari preprossesing, ekstraksi ciri data aksara, kemudian data hasil ekstraksi ciri masuk kedalam pelatihan arsitektur JST dengan parameter-parameter yang telah ditentukan, sehingga diperoleh model jaringan yang menghasilkan akurasi terbaik, kemudian dilakukan uji pada sebuah data aksara baru yang juga telah diekstraksi ciri dan dilakukan klasifikasi menggunakan modeljaringan yang telah diperoleh. Pada proses ekstraksi cirri data sebelum pelatihan arsitektur jaringan dan pengujian data,digunakan fitur Mark Direction dan Intencity of Characther (IoC). Untuk proses pelatihan arsitektur jaringan dan klasifikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
data dalam pengujian digunakan metode Jaringan Syaraf Tiruan Back Propagation. Berikut ini gambaran sistem secara keseluruhan:
Data
Preprocessing
Ekstraksi Ciri
Data Uji
JST Back Propagation
Kombinasi Ciri Optimal
Pengenalan
Hasil Pengenalan
Gambar 3.3Diagram Blok Sistem
3.2.1 Prepossesing Dalam proses preprosessing ini meliputi beberapa tahap yaitu: 1.
Mengubah Citra Warna. Dalam pemrosesan ini dimaksudkan untuk mengubah Citra Warna (RGB), dilanjutkan dari citra keabuan mengubah menjadi Citra Hitam Putih (Biner).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
Gambar 3.4 citra keabuan diubah (RGB) menjadi citra hitam putih (IM2BW)
2. Pengubahan Ukuran (Resize Citra) Dalam proses resize citra dilakukan secara otomatis yakni, membaca seluruh citra gambar dan kemudian secara otomatis menemukan citra terpanjang dan terlebar, setelah ditemukan maka ukuran tersebut dijadikan sebagai referensi untuk resize gambar. Dari referensi yang ditemukan ukuran citra pada aksara ini 245 x 1350, namun itu membuat ukuran gambar tidak proposional, maka ukuran di resize menjadi 600 x 600.
3. Penipisan Citra Pada proses ini penipisan citra (Thining) menggunakan fungsi Rosenfeld(Widiarti, 2011). Thining dilakukan untuk mengubah ukuran ketebalan citra menjadi kecil.
Gambar 3.5Citra setelah di thining
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
4. Ekstraksi Ciri Pada penelitian ini ekstraksi ciri menggunakan algoritma Mark Direction dan Intencity of Character (IoC)(Nugroho, 2016). MarkDirectionyaitu menghitung banyaknya piksel yang memiliki tetangga berarah horizontal, vertical, diagonal ke kiri, dan diagonal ke kanan. MarkDirection ini digunakan untuk menghitung banyaknya piksel yang memenuhi masking horizontal, vertical, diagonal kiri, dan diagonal kanan, sedangkan Intencity of Character itu sendiri digunakan untuk menghitung nilai piksel 0 (berwarna hitam) pada citra. Dalam melakukan proses ekstraksi ciri dilakukan dengan beberapa tahap, meliputi: a. Membagi citra menjadi 9 segmen (3x3 segmen) b. Mencirikan citra pada tiap segmen menggunakan Mark Direction untuk menghitung berapa yang memenuhi masking horizontal (horz), vertical (vert), diagonal ke kiri (dig1), diagonal ke kanan (dig2). c. Mencirikan citra pada tiap segmen menggunakan Intencity of Character untuk menghitung nilai piksel hitam (black).
Gambar 3.6Citra di bagi menjadi 9 segmen
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
Untuk memperoleh jaringan yang optimal terlebih dahulu kita mengetahui ekstraksi ciri yang optimal pula. Dalam hal ini penelitian melakukan kombinasi ciri (feature) untuk dapat meghasilkan ekstraksi ciri yang memberikan hasil akurasi terbaik. 3.2.2 Pelatihan dan Pengujian Arsitektur JST Dalam penelitian ini, proses pengenalan pola aksara Batak Karo dilakukan dengan mengklasifikasikan feature yang telah ditentukan. Metode yang digunakan dalam prosespengenalanadalah metode Jaringan Syaraf Tiruan Back Propagation. Metode pengenalan ini dipilih
karena
kemampuannya
untuk
menghasilkan
decision
boundaries yang kompleks pada fitur-fitur yang ada. Hasil ini dapat dilihat dengan nilai keakuratan yang dihasilkan dari pengujian sampel diluar kumpulan sampel yang digunakan pada saat pelatihan. Metode pembagian data pelatihan dan pengujian arsitektur JST yang digunakan adalah 4-Fold Cross Validation. Metode ini dipakai karena menggunakan data yang berbeda untuk proses pelatihan dan pengujiannya, sehingga dapat diketahui dengan benar akurasi sistem yang telah dibuat. Hasil ekstraksi ciri dan label data, akan digunakan sebagai input-an dalam proses pelatihan dan pengujian arsitektur JST. Hasil dari proses ini adalah model jaringan dengan akurasi terbaik, yang akan digunakan dalam proses pengenalan. Pada proses awal sesuai dengan metode K-Fold Cross Validation, data yang berjumlah 168 dibagi menjadi 4 bagian.Dari 4 bagian tersebut akan dilakukan 4 kali percobaan dalam proses pelatihan dan pengujian arsitektur JST. Berikut ini tabel penggunaan bagian dalam setiap percobaan:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
Tabel 3.14-Fold Cross Validation Percobaan Training Testing 1
1,2
3,4
2
1,3
2,4
3
1,4
2,3
4
3,4
1,2
Ada 2 jenis arsitektur jaringan syaraf tiruan yang digunakan untuk proses pelatihan dan pengujian, yaitu arsitektur dengan satu hidden layer dan dua hidden layer. 1. Arsitektur Jaringan Syaraf Tiruan 1 Hidden Layer Diambil contoh dengan ciri 8 maka jumlah data input sebanyak 45 atribut, kemudian digunakan 1 hidden layer, dengan jumlah neuron pada hidden layer 1 sebanyak j, dan jumlah output sebanyak 21.
Vij
Wij Z1
Y1
Z2
Y2
X1
X2
X3
Z3
Y3
X45
Zj
Y21
Input
Hidden Layer 1
Output
Gambar 3.7Arsitektur JST 1 Hidden Layer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
2. Arsitektur Jaringan Syaraf Tiruan 2 Hidden Layer Diambil contoh dengan ciri 8 maka jumlah data input sebanyak 45 atribut, kemudian digunakan 2 hidden layer, dengan jumlah neuron pada hidden layer 2sebanyak j, dan jumlah output sebanyak 21. Vij
Z1
Vij
Wij Z1
Y1
Z2
Z2
Y2
X3
Z3
Z3
Y3
X45
Zj
Zj
Y21
Hidden Layer 2
Output
X1
X2
Input
Hidden Layer 1
Gambar 3.8Arsitektur JST 2 Hidden Layer
Berikut ini rincian parameter dalam arsitektur jaringan syaraf tiruan: 1. Lapisan jaringan terdiri dari 4 lapis, yaitu satu lapis masukan (input), 2 lapis tersembunyi (hidden layer) dan satu lapis keluaran (output). 2. Untuk input dimana (Xi) adalah jaringan terdiri dari 1 – ineuron, dimana i merupakan jumlah total data hasil ekstraksi ciri yang telah ditentukan. Berikut tabel jumlah data yang digunakan:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
Tabel 3.2Jumlah Data Input Arsitektur Jaringan (Kombinasi Feature) Feature
Kombinasi Feature
Jumlah Data Feature
3.
1
[Black]
9
2
[dig1]
9
3
[dig2]
9
4
[Black + dig1]
9 + 9 =18
5
[Black + dig2]
9 + 9 = 18
6
[horz + vert]
9 + 9 = 18
7
[dig1 + dig2]
9 + 9 = 18
8
[Black + dig1 + dig2, +
9 + 18 + 18=
horz + vert]
45
Untuk mendapatkan arsitektur jaringan yang optimal, digunakan 2 jenis arsitektur jaringan yaitu dengan 1 hidden layer dan 2 hidden layer, dimana lapisan tersembunyi pertama dan kedua memiliki jumlah neuron yang bervariasi mulai dari 10,15,… dilanjutkan dengan kelipatan 5 hingga 45. Namun apabila pada neuron 45 nilai akurasi masih tinggi, maka dilanjutkan dengan kelipatan 5 selanjutnya hingga hasil akurasinya turun. Contoh: 10,15,20,…45
4.
Fungsi aktivasi yang digunakan adalah sigmoid biner (logsig).
5.
Fungsi pelatihan yang digunakan adalah trainrp.
6.
Batas iterasi/epoch adalah 500.
7.
Nilai laju pemahaman (=learning rate) adalah 0, 2.
8.
Jumlah neuron pada lapisan keluaran (output) adalah 21, sesuai dengan jumlah target aksara
9.
Memiliki 21neuron output yang merupakan target keluaran jaringan diantaranya, target 1: BA (1,0,0….0), target 2: TA (0,1,0..)target 3 : DA (0,0,1,…0), ……, target 21: CA (0,0,0…1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
Dalam pengujianarsitektur JST, dilakukan beberapa kali percobaan untuk mendapatkan model jaringan terbaik berdasarkan akurasi hasil yang tertinggi. Percobaan dilakukan dengan mengambil sejumlah data hasil ekstraksi ciri berdasarkan kombinasi ciri yang ada pada tabel 3.2 sebagai data masukan. Untuk setiap kombinasi ciri, dilakukan percobaan lagi dengan mengubah-ubah jumlah lapisan tersembunyi,
yaitu satu
lapisan tersembunyi
dan 2 lapisan
tersembunyi. Pada satu lapisan tersembunyi, jumlah neuron divariasi mulai dari 10, 15 hingga 45 dengan penambahan jumlah kelipatan 5, contohnya 10,15,20….,45.Dari percobaan tersebut diperoleh jumlah neuron dengan akurasi tertinggi. Jumlah neuron dengan akurasi tertinggi di lapisan tersembunyi ke-1 kemudian digunakan dalam 2 lapisan tersembunyi. Jumlah neuron di lapisan tersembunyi ke-2 divariasi sama seperti di lapisan tersembunyi ke-1 hingga memperoleh akurasi tertingginya. Dari semua percobaan tersebut akan diperoleh model jaringan terbaik berdasarkan akurasi yang tertinggi. 3.2.3 Uji Data Tunggal Model jaringan yang telah didapat dari proses pelatihan dan pengujian arsitektur JST akan digunakan dalam proses pengenalandari data masukan data baru untuk diuji. Proses dimulai dari memasukan data aksara baru untuk diuji, kemudian dilakukan kombinasi ekstraksi ciri pada data tersebut dan diambil sejumlah data sesuai jumlah pilihan ciri terbaik yang telah diperoleh. Hasil ekstraksi ciri tersebut disimulasikan kedalam model jaringan terbaik yang telah diperoleh, sehingga mendapatkan nilai keluaran sesuai target keluaran yang telah ditentukan, untuk menunjukkan hasil pengenalan pola. Berikut ini gambaran proses pengenalan dan uji data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
Data Uji
Ekstraksi Ciri
Model Jaringan
Hasil Pengenalan
Gambar 3.9 Proses Pengenalan dan Uji Data Tunggal 3.2.3.1 Perhitungan Akurasi Karena menggunakan metode 4 – Fold dalam pembagian data, maka dilakukan percobaan 4 kali percobaan training dan testing. Hasil dari
percobaan
berupa
confusion
matrix.
Confusion
Matrix
menunjukkan data yang dikenali sesuai kelompok data ciri. Contoh Confusion Matrix dapat dilihat dalam tabel sebagai berikut: Dari confusion matrix dihitung besar akurasi. Perhitungan akurasi dilakukan untuk melihat jaringan syaraf tiruan yang optimal BackPropagation dalam mengenali sistem pola tulisan tangan aksara Batak Karo. 𝐽𝑢𝑚𝑙𝑎ℎ 𝑑𝑎𝑡𝑎 𝑏𝑒𝑛𝑎𝑟
Akurasi = 𝐽𝑢𝑚𝑙𝑎ℎ 𝑠𝑒𝑙𝑢𝑢ℎ 𝑑𝑎𝑡𝑎 𝑥100% Data Benar = Jumlah angka pada diagonal matrik Seluruh data = total data yang digunakan untuk training / testing 3.3
Kebutuhan Sistem Aplikasi ini membutuhkan perangkat keras dan lunak dalam proses perancangannya sehingga mendapatkan hasil yang maksimal. 1.
Kebutuhan Perangkat Aplikasi ini membutuhkan perangkat keras dan lunak dengan : 1.
Scanner
2.
Microsoft Windows 7
3.
Matlab R2012b
Spesifikasi tersebut dipilih agar aplikasi berjalan dengan maksimal. Scaner digunakan untuk menyecan data aksara dikarenakan tidak ada data berupa cetak. Microsoft Windows 7 digunakan sebagai sistem operasi agar kedua perangkat lunak lainnya dapat berjalan. Matlab R2012b digunakan untuk membuat sistem sekaligus menjalankan sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
3.4
Perancangan Antarmuka Sistem
Gambar 3.10 Tampilan Antarmuka Sistem Pada gambar 3.10 merupakan tampilan antarmuka sistem yang terdiri dari 1 menu sesuai dengan fungsi dari sistem yang akan dibuat. Menu mulai digunakan sebagai langkah awal pertama dalam menjalankan sistem.
Gambar 3.11 Tampilan Antarmuka Sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
Pada gambar 3.11 merupakan tampilan antarmuka sistem yang terdiri dari 2 panel sesuai dengan fungsi dari sistem yang akan dibuat. Berikut ini rincian untuk setiap panel tersebut: 1. Pelatihan Panel ini termasuk dalam data kombinasi ekstraksi ciri. Pada panel ini terdapat beberapa komponen diantaranya: a. Button Group - berfungsi untuk memilih data kombinasi ciri b. Edit Text Hidden Layer 1 – berfungsi untuk memasukan jumlah neuron pada lapisan tersembunyi ke-1. c. Edit Text Hidden Layer 2 - berfungsi untuk memasukan jumlah neuron pada lapisan tersembunyi ke-2. d. Edit Text Epoch – berfungsi untuk memasukan batas jumlah iterasi/epoch dalam proses pelatihan arsitektur jaringan, dengan nilai default yaitu 500. e. Tombol Proses – berfungsi untuk menjalankan proses pelatihan arsitektur jaringan. f. Text Akurasi – berfungsi untuk menampilkan hasil perhitungan akurasi sistem (%). 2. Pengujian Panel ini berisi komponen yang dapat berfungsi untuk mengambil data uji, kemudian melakukan pengenalan data berdasarkan model jaringan yang telah diperoleh dan menampilkan hasil huruf aksara. a. Edit Text Direktori file – berfungsi untuk menampilkan alamat direktori dari data yang akan diuji. b. Tombol Proses Kenal – berfungsi untuk membuka jendela pencarian direktori data aksara yang akan diuji. c. Axes Citra – berfungsi untuk menampikan citra aksara yang diuji d. Text Hasil kenal – berfungsi untuk menampilkan hasil pengenalan data aksara yang diuji. e. Tombol Proses – berfungsi untuk menjalankan proses pengenalan aksara.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
BAB IV
IMPLEMENTASI DAN ANALISIS HASIL
Bab ini dibahas mengenai hasil penelitian dan analisis hasil penelitian dari implementasi sistem yang telah dibuat. Hasil penelitian berupa perbandingan akurasi yang diperoleh dari percobaan metode Back Propagation berdasarkan jumla hidden layer serta jumlah node pada setiap hidden layer yang digunakan. Pada bab ini juga dibahas mengenai user interface yang dibangun berdasar algoritma yang telah dirancang. 4.1
Implementasi Sistem Dalam subbab ini akan ditunjukkan visualisasi proses ekstraksi ciri dan tampilan antarmuka dari aplikasi yang telah dibuat. Aplikasi ini dibuat menggunakan bahasa pemrograman Matlab. 4.1.1
Visualisasi Proses Ekstraksi Ciri Berikut ini visualisasi dari setiap tahap dalam proses preprossesing dan ekstraksi ciri aksara Batak Karo: 1. Data Aksara Dalam proses ini data aksara yang bertipe “.jpg” disimpan dengan tipe “.data, dibaca oleh program dengan menggunakan fungsi [file,path]=uigetfile('*/*.JPG','ambil gambar'); image=imread([path file]);
Berikut ini hasil file aksara yang dibaca:
Gambar 4.1Hasil Baca File aksara .jpg
34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
2. Mengubah Citra Warna. Dalam pemrosesan ini dimaksudkan untuk mengubah Citra Warna (RGB), dilanjutkan dari Citra Keabuan mengubah menjadi Citra Hitam Putih (Biner). Dibaca dengan menggunakan fungsi grayimage=rgb2gray(image); image2=im2bw(grayimage);
Gambar 4.2 Citra keabuan diubah (RGB) menjadi citra hitam putih (IM2BW) 3. Resize Citra Dalam proses resize citra dilakukan secara otomatis yakni, membaca seluruh citra gambar dan kemudian secara otomatis menemukan citra terpanjang dan terlebar, setelah ditemukan maka ukuran tersebut dijadikan sebagai referensi untuk resize gambar. Dari referensi yang ditemukan ukuran citra pada aksara ini 245 x 1350, namun itu membuat ukuran gambar tidak proposional, maka ukuran di resize menjadi 600 x 600.
Gambar 4.3 Ukuran Citra ditemukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
4. Penipisan Citra Pada proses ini penipisan citra (Thining) menggunakan fungsi Rosenfeld(Widiarti, 2011). Thining dilakukan untuk mengubah ukuran ketebalan citra menjadi kecil. 5. Penipisan Citra
Gambar 4.4 Citra setelah di thining
6. Ekstraksi Ciri Pada penelitian ini ekstraksi ciri menggunakan algoritma Mark Direction dan Intencity of Character (IoC)(Nugroho, 2016). Mark Direction yaitu menghitung banyaknya piksel yang memiliki tetangga berarah horizontal, vertical, diagonal ke kiri, dan diagonal ke kanan.
Mark Direction ini digunakan untuk
menghitung
piksel
banyaknya
yang
memenuhi
masking
horizontal, vertical, diagonal kiri, dan diagonal kanan, sedangkan Intencity of Character itu sendiri digunakan untuk menghitung nilai piksel 0 (berwarna hitam) pada citra. Dalam melakukan proses ekstraksi ciri dilakukan dengan beberapa tahap, meliputi: a.
Membagi citra menjadi 9 segmen (3x3 segmen)
b.
Mencirikan citra pada tiap segmen menggunakan Mark Direction untuk menghitung berapa yang memenuhi masking horizontal (horz), vertical (vert), diagonal ke kiri (dig1), diagonal ke kanan (dig2).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
c.
Mencirikan citra pada tiap segmen menggunakan Intencity of Character untuk menghitung nilai piksel hitam (black).
Gambar 4.5 Citra di bagi menjadi 9 segmen
d.
Hasil Prosessing Setelah melakukan preprossesing dan ekstraksi ciri maka akan di dapat sebuah data. Data tersebut yang akan menjadi data untuk diproses.
Gambar 4.6 Ciri 1 dari BA KARO Proses ciri 1 adalah ciri Black yaitu dengan memperoleh nilai piksel hitam dari data citra yang di bagi menjadi 9 segmen. Ketika dalam piksel memenuhi piksel berwarna 0 (hitam) maka akan bertambah 1 counter.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
Gambar 4.7 Ciri 2 dari BA KARO Proses ini adalah ciri diagonal kiri yaitu dengan menghitung piksel yang memiliki tetangga berarah diagonal kiri dari data citra yang di bagi menjadi 9 segmen. Ketika dalam piksel memenuhi masking diagonal kiri maka akan tambah 1 counter.
Gambar 4.8 Ciri 3 dari BA KARO Proses ini adalah ciri diagonal kanan yaitu dengan menghitung piksel yang memiliki tetangga berarah diagonal kanan dari data citra yang di bagi menjadi 9 segmen. Ketika dalam piksel memenuhi masking diagonal kanan maka akan tambah 1 counter.
Gambar 4.9 Ciri 4 dari BA KARO Proses ini adalah ciri black dan diagonal kiri yaitu memperoleh dari nilai piksel hitam ditambah dengan piksel yang memiliki tetangga berarah diagonal kiri.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
Gambar 4.10 Ciri 5 dari BA KARO Proses ini adalah ciri black dan diagonal kanan yaitu memperoleh dari nilai piksel hitam ditambah dengan piksel yang memiliki tetangga berarah diagonal kanan.
Gambar 4.11 Ciri 6 dari BA KARO Proses ini adalah ciri Horizontal dan Vertikal yaitu menghitung
piksel
yang
memiliki
tetangga
bearah
horizontal dan vertikal dari data citra yang dibagi menjadi 9 segmen. Ketika dalam piksel memenuhi masking horizontal dan vertical maka akan tambah 1 counter.
Gambar 4.12 Ciri 7 dari BA KARO Proses ini adalah ciri diagonal kiri dan diagonal kanan yaitu menghitung piksel yang memiliki tetangga bearah diagonal kiri dan diagonal kanan dari data citra yang dibagi menjadi 9 segmen. Ketika dalam piksel memenuhi masking diagonal kiri dan diagonal kanan maka akan tambah 1 counter.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
Gambar 4.13 Ciri 8 dari BA KARO Proses ini adalah memakai dengan semua ciri yaitu black, diagonal kiri, diagonal kanan, horizontal, vertical, dari data citra yang di bagi menjadi 9 segmen. Ketika dalam piksel memenuhi masking tersebut maka akan menambah 1 counter.
4.2
Analisis Hasil Penelitian Dalam penelitan yang telah dilakukan, penulis menggunakan 21 Huruf aksara Batak Karo yang dimiliki oleh 8 orang yang berbeda. Penelitian ini akan dicari model jaringan terbaik yang digunakan dalam proses pengenalan huruf aksara Batak Karo. Modeljaringan terbaik dapat dilihat dari hasil akurasi pelatihan arsitektur jaringannya. Untuk mendapat model jaringan terbaik berdasarkan akurasi pelatihan arsitektur jaringan, maka dilakukan beberapa percobaan pengujian dengan mengubah variasi arsitektur jaringan. Setelah model jaringan terbaik berdasarkan akurasi tertinggi diperoleh, maka model jaringan tersebut digunakan dalam pengujian data tunggal untuk menunjukkan ketepatan hasil klasifikasinya. 4.2.1
Pengujian Variasi Arsitektur Jaringan Dalam pengujian variasi arsitektur jaringan ini, data yang digunakan sebanyak 168. Data tersebut sebelumnya telah dilakukan ekstraksi ciri, sehingga menghasilkan 45 jumlah ciri untuk setiap datanya dan total data yang digunakan dalam pelatihan ini sebanyak 168 x 45 data. Dalam pengujian ini akan dilakukan beberapa kali percobaan dengan memvariasikan kombinasi ciri dan parameter dalam arsitektur jaringan. Variasi pertama yang dilakukan adalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
mengkombinasikan ciri dari data aksara batak karo. Berikut ini beberapa kombinasi ciri yang digunakan: Tabel 4.1Jumlah Data Input Arsitektur Jaringan (Kombinasi Feature) Feature
Kombinasi Feature
Jumlah Data Feature
1
[Black]
9
2
[dig1]
9
3
[dig2]
9
4
[Black + dig1]
9 + 9 =18
5
[Black + dig2]
9 + 9 = 18
6
[horz + vert]
9 + 9 = 18
7
[dig1 + dig2]
9 + 9 = 18
8
[Black + dig1 + dig2, +
9 + 18 + 18=
horz + vert]
45
Untuk variasikedua, nilai parameter arsitektur jaringan yang diubah-ubah adalah neuron pada hidden layer 1 dan hidden layer 2. Neuron ditentukan mulai dari 10, 15 dengan penambahan kelipatan 5 hingga 45. Selama akurasi hasil masih tinggi percobaan dilanjutkan hingga akurasi turun, contohnya 10, 15, 20… 40, 45, 50. Berikut ini parameter yang berpengaruh pada arsitektur jaringan yang digunakan: 1. Input jaringan sesuai dengan jumlah kombinasi ciri yang dipilih, contoh: 9, 18, dan 45. 2. Jumlah hidden layer dibagi menjadi 2 jenis, yaitu 1 hidden layer dan 2 hidden layer. 3. Jumlah neuron dalam hidden layer 1 dan 2 bervariasi mulai dari 10, 15, 20,…. 45 4. Jumlah lapisan keluaran adalah 21, sesuai dengan jumlah huruf aksara Batak Karo.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
5. Jumlah iterasi/epoch adalah 500. 6. Nilai laju pemahaman (=learning rate) yaitu 0, 2.
Dari seluruh percobaan variasi kombinasi ciri dan parameter arsitektur jaringan, maka diperoleh akurasi tertinggi dengan tabel sebagai berikut: Tabel 4.2 Hasil Akurasi Seluruh Percobaan Pengujian N O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Kombinasi Ciri 1 2 3 4 5 6 7 8
Jumlah Neuron Hidden Hidden Layer 1 Layer 2 20 45 25 35 30 35 40 40 45 20 45 20 45 35 20 35
Akurasi (%)
Waktu (detik)
78 79 54 59 64 67 86 82 89 85 83 85 78 78 90 90
4 6 4 6 6 5 5 6 5 6 5 6 5 6 4 6
Dari tabel 4.2 dapat dilihat akurasi tertinggi ada pada variasi kombinasi ciri 8, dengan jumlah neuron pada hidden layer 1 =20 dan hidden layer 2 = 35. Akurasi tertinggi yang diperoleh yaitu 90% dengan selisih waktu 2 detik. Dari seluruh percobaan tersebut, ratarata waktu pelatihan selama 6 detik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
Grafik Perubahan Akurasi 100
Akurasi
80
89
86
90
82
79
78
90
90
-
35
85
83
78
78
-
35
67
64
70
85
59 54
60 50 40 -
45
-
20
35 25
-
35
-
30
40 40
-
20 45
-
20 45
45
20
Jumlah Neuron, layer 1 dan layer 2
Gambar 4.14 Grafik Perubahan Akurasi seluruh percobaan Berikut ini adalah arsitektur jaringan paling optimal: Vij
Z1
Vij
Wij Z1
Y1
Z2
Z2
Y2
X3
Z3
Z3
Y3
X45
Z20
Z35
Y21
Hidden Layer 2
Output
X1
X2
Input
Hidden Layer 1
Gambar 4.15 Arsitektur Jaringan optimal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
1. Input jaringan sesuai dengan kombinasi ciri 8 jumlah input 45. 2. Jumlah neuron dalam hidden layer 1:20 dan hidden layer 2 : 35 3. Memiliki 21 neuron output yang merupakan target keluaran jaringan diantaranya, target 1: BA (1, 0, 0….0), target 2: TA (0, 1, 0..) target 3 : DA (0,0,1,…0), ……, target 21: CA (0,0,0…1)
Ditunjukkan seluruh detail dari hasil percobaan pengujian berdasarkan variasi kombinasi ciri hingga neuron pada hidden layer 1 dan 2: 1.
Feature 1 a.
Hidden Layer 1 Tabel 4.3 Hasil Akurasi Feature 1 Hidden Layer 1 Hidden
Akurasi
Data
Waktu
Layer 1
(%)
Benar
(detik)
10 15 20 25 30 35 40 45
61 67 78 76 74 75 78 77
103 113 131 127 124 126 131 130
3 3 4 4 4 4 5 5
Daritabel 4.3 dapat dilihat akurasi tertinggi ada pada hidden layer 1 dengan jumlah neuron yaitu 20 dan 40. Akurasi tertinggi yang diperoleh yaitu 78% namun waktu pelatihan selisih 1 detik. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
Grafik Perubahan Akurasi 100 90
Akurasi (%)
90
87
80 78
70
82
81
25
30
85 78
60 50 51 40 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.16Grafik Perubahan Akurasi Feature 1, Hidden Layer 1 b. Hidden Layer 2 Tabel 4.4 Hasil Akurasi Feature 1, Hidden Layer 2 Jumlah Neuron Hidden Hidden Layer 1 Layer 2 10 15 20 25 20 30 35 40 45
Akurasi (%) 60 63 77 70 77 73 77 79
Data Benar
Waktu (detik)
101 105 129 118 129 122 129 132
4 4 6 6 6 7 6 6
Dari tabel 4.4 dapat dilihat akurasi tertinggi ada pada hidden layer 2 dengan jumlah neuron yaitu 20 dan 45.Akurasi tertinggi yang diperoleh yaitu 79%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
Grafik Perubahan Akurasi 100 90
Akurasi (%)
90
87
80 78
70
82
81
25
30
85 78
60 50 51
40
10
15
20
35
40
45
Jumlah Neuron
Gambar 4.17Grafik Perubahan Akurasi Feature 1, Hidden Layer 2
2. Feature 2 a. Hidden Layer 1 Tabel 4.5 Hasil Akurasi Feature 2 Hidden Layer 1 Hidden
Akurasi
Data
Waktu
Layer 1
(%)
Benar
(detik)
10 15 20 25 30 35 40 45
45 48 51 54 48 49 50 51
75 81 85 90 81 83 84 85
4 3 4 4 4 5 5 5
Dari tabel 4.5 dapat dilihat akurasi tertinggi ada pada hidden layer 1 dengan jumlah neuron yaitu 25. Akurasi tertinggi yang diperoleh yaitu 54%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
100
Grafik Perubahan Akurasi
90
Akurasi (%)
80
90
87 78
70
82
81
25
30
85 78
60 50 40
51 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.18Grafik Perubahan Akurasi Feature 2, Hidden Layer 1
b. Hidden Layer 2 Tabel 4.6 Hasil Akurasi Feature 2, Hidden Layer 2 Jumlah Neuron Hidden Hidden Layer 1 Layer 2 10 15 20 25 25 30 35 40 45
Akurasi (%) 44 49 50 50 58 59 55 54
Data Benar
Waktu (detik)
74 82 84 84 98 97 92 90
4 5 7 6 6 6 7 6
Dari tabel 4.6 dapat dilihat akurasi tertinggi ada pada hidden layer 2 dengan jumlah neuron yaitu 35. Akurasi tertinggi yang diperoleh yaitu 59%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
Grafik Perubahan Akurasi 100 90
Akurasi (%)
90
87
80 78
70
82
81
25
30
85 78
60 50 51 40 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.19Grafik Perubahan Akurasi Feature 2, Hidden Layer 2
3. Feature 3 a. Hidden Layer 1 Tabel 4.7 Hasil Akurasi Feature 3, Hidden Layer 1 Hidden
Akurasi
Data
Waktu
Layer 1
(%)
Benar
(detik)
10 15 20 25 30 35 40 45
51 54 53 59 64 60 61 55
86 91 89 99 107 101 102 93
3 3 4 4 4 5 5 5
Dari tabel 4.7 dapat dilihat akurasi tertinggi ada pada hidden layer 1 dengan jumlah neuron yaitu 30. Akurasi tertinggi yang diperoleh yaitu 64%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
Grafik Perubahan Akurasi
100 90
Akurasi (%)
80
90
87 78
70
82
81
25
30
85 78
60 50 40
51 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.20Grafik Perubahan Akurasi Feature 3, Hidden Layer 1
b. Hidden Layer 2 Tabel 4.8 Hasil Akurasi Feature 3, Hidden Layer 2 Jumlah Neuron Hidden Layer 1
30
Hidden Layer 2 10 15 20 25 30 35 40 45
Akurasi
Data
Waktu
(%)
Benar
(detik)
49 55 62 57 60 67 65 64
82 93 104 96 100 112 110 108
4 6 6 6 6 6 6 6
Dari tabel 4.8 dapat dilihat akurasi tertinggi ada pada hidden layer 2 dengan jumlah neuron yaitu 35. Akurasi tertinggi yang diperoleh yaitu 67%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
Grafik Perubahan Akurasi Akurasi
80% 60%
49%
55%
62%
57%
60%
20
25
30
67%
65%
64%
35
40
45
40% 20% 0% 10
15
Jumlah Neuron
Gambar 4.21Grafik Perubahan Akurasi Feature3, Hidden Layer 2 4. Feature 4 a. Hidden Layer 1 Tabel 4.9 Hasil Akurasi Feature 4, Hidden Layer 1 Hidden
Akurasi
Data
Waktu
Layer 1
(%)
Benar
(detik)
10 15 20 25 30 35 40 45
60 75 81 81 79 82 86 86
100 126 136 136 132 138 144 144
3 4 4 4 4 4 5 5
Dari tabel 4.9 dapat dilihat akurasi tertinggi ada pada hidden layer 1 dengan jumlah neuron yaitu 40 dan 45. Akurasi tertinggi yang diperoleh yaitu 86% dengan waktu pelatihan sama. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
Grafik Perubahan Akurasi 100 90
Akurasi (%)
90
87
80 78
70
82
81
25
30
85 78
60 50 40
51 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.22Grafik Perubahan Akurasi Feature 4, Hidden Layer 1 b. Hidden Layer 2 Tabel 4.10 Hasil Akurasi Feature 4, Hidden Layer 2 Jumlah Neuron Hidden Layer 1
40
Akurasi
Data
Waktu
(%)
Benar
(detik)
25
52 80 70 80
88 135 118 135
6 6 6 6
30 35 40 45
77 72 82 80
129 121 138 134
6 6 6 7
Hidden Layer 2 10 15 20
Dari tabel 4.10 dapat dilihat akurasi tertinggi ada pada hidden layer 2 dengan jumlah neuron yaitu 40. Akurasi tertinggi yang diperoleh yaitu 82%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
Grafik Perubahan Akurasi 100 90
Akurasi (%)
90
87
80 78
70
82
81
25
30
85 78
60 50 51
40
10
15
20
35
40
45
Jumlah Neuron
Gambar 4.23Grafik Perubahan Akurasi Feature 4, Hidden Layer 2 5. Feature 5 a. Hidden Layer 1 Tabel 4.11 Hasil Akurasi Feature 5, Hidden Layer 2 Hidden
Akurasi
Data
Waktu
Layer 1
(%)
Benar
(detik)
10 15 20 25 30 35 40 45
62 75 83 88 86 85 86 89
104 126 139 147 144 142 144 149
3 4 4 4 4 5 5 5
Dari tabel 4.11 dapat dilihat akurasi tertinggi ada pada hidden layer 1 dengan jumlah neuron yaitu 45. Akurasi tertinggi yang diperoleh yaitu 89%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
Grafik Perubahan Akurasi 100 90 87
Akurasi (%)
80 78
70
90 82
81
25
30
85 78
60 50 40
51 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.24Grafik Perubahan Akurasi Feature 5, Hidden Layer 1 b. Hidden Layer 2 Tabel 4.12 Hasil Akurasi Feature 5, Hidden Layer 2 Jumlah Neuron Hidden Layer 1
45
Akurasi
Data
Waktu
(%)
Benar
(detik)
25
54 82 85 82
90 138 142 137
6 6 6 6
30 35 40 45
80 80 84 82
134 135 141 138
6 6 7 7
Hidden Layer 2 10 15 20
Dari tabel 4.12 dapat dilihat akurasi tertinggi ada pada hidden layer 2 dengan jumlah neuron yaitu 40. Akurasi tertinggi yang diperoleh yaitu 82%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
Grafik Perubahan Akurasi
100 90
Akurasi (%)
80
87 78
70
90 82
81
25
30
85 78
60 50 51
40
10
15
20
35
40
45
Jumlah Neuron
Gambar 4.25Grafik Perubahan Akurasi Feature 5, Hidden Layer 2 6. Feature 6 a. Hidden Layer 1 Tabel 4.13Hasil Akurasi Feature 6, Hidden Layer 1 Hidden
Akurasi
Data
Waktu
Layer 1
(%)
Benar
(detik)
63 73 72 80 79 80 78 83
106 122 121 135 132 134 131 140
4 4 4 4 4 5 5 5
10 15 20 25 30 35 40 45
Dari tabel 4.13 dapat dilihat akurasi tertinggi ada pada hidden layer 1 dengan jumlah neuron yaitu 45. Akurasi tertinggi yang diperoleh yaitu 83%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
Grafik Perubahan Akurasi 100 90
Akurasi (%)
80
87 78
70
90 82
81
25
30
85 78
60 50 51
40
10
15
20
35
40
45
Jumlah Neuron
Gambar 4.26Grafik Perubahan Akurasi Feature 6, Hidden Layer 1 b. Hidden Layer 2 Tabel 4.14 Hasil Akurasi Feature 6, Hidden Layer 2 Jumlah Neuron Hidden Layer 1
45
Akurasi
Data
Waktu
(%)
Benar
(detik)
25
70 74 80 81
117 124 134 136
6 6 6 6
30 35 40 45
88 80 80 80
147 135 135 134
6 6 7 7
Hidden Layer 2 10 15 20
Dari tabel 4.14 dapat dilihat akurasi tertinggi ada pada hidden layer 2 dengan jumlah neuron yaitu 30. Akurasi tertinggi yang diperoleh yaitu 88%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
Grafik Perubahan Akurasi 100 90
Akurasi (%)
90
87
80 78
70
82
81
25
30
85 78
60 50 51
40
10
15
20
35
40
45
Jumlah Neuron
Gambar 4.27Grafik Perubahan Akurasi Feature 6, Hidden Layer 2 7. Feature 7 a. Hidden Layer 1 Tabel 4.15 Hasil Akurasi Feature 7, Hidden Layer 1 Hidden
Akurasi
Data
Waktu
Layer 1
(%)
Benar
(detik)
53 69 69 72 72 77 73 78
89 116 116 121 121 130 123 131
3 4 4 4 5 5 5 5
10 15 20 25 30 35 40 45
Dari tabel 4.15 dapat dilihat akurasi tertinggi ada pada hidden layer 1 dengan jumlah neuron yaitu 45. Akurasi tertinggi yang diperoleh yaitu 78%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
Grafik Perubahan Akurasi 100
Akurasi (%)
90 80
87
70
78
90 82
81
25
30
85 78
60 50 40
51 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.28Grafik Perubahan Akurasi Feature 7, Hidden Layer 1 b. Hidden Layer 2 Tabel 4.16 Hasil Akurasi Feature 7, Hidden Layer 2 Jumlah Neuron Hidden Layer 1
45
Akurasi
Data
Waktu
(%)
Benar
(detik)
25
53 68 76 74
89 114 128 125
6 6 6 6
30 35 40 45
68 78 76 76
114 131 127 128
6 6 6 7
Hidden Layer 2 10 15 20
Dari tabel 4.16 dapat dilihat akurasi tertinggi ada pada hidden layer 2 dengan jumlah neuron yaitu 35. Akurasi tertinggi yang diperoleh yaitu 78%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
Grafik Perubahan Akurasi
100 90
Akurasi (%)
80
90
87 78
70
82
81
25
30
85 78
60 50 51
40
10
15
20
35
40
45
Jumlah Neuron
Gambar 4.29Grafik Perubahan Akurasi Feature 7, Hidden Layer 2 8 Feature 8 a. Hidden Layer 1 Tabel 4.17 Hasil Akurasi Feature 8, Hidden Layer 1 Hidden
Akurasi
Data
Waktu
Layer 1
(%)
Benar
(detik)
50 73 90 87 88 82 90 89
84 122 151 146 147 137 151 150
4 4 4 5 5 5 5 5
10 15 20 25 30 35 40 45
Dari tabel 4.17 dapat dilihat akurasi tertinggi ada pada hidden layer 1 dengan jumlah neuron yaitu 45 dan 20 dengan selisih waktu 1 detik. Akurasi tertinggi yang diperoleh yaitu 90%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
100
Grafik Perubahan Akurasi
90
Akurasi (%)
80
87
70
78
90 82
81
25
30
85 78
60 50 40
51 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.30Grafik Perubahan Akurasi Feature 8, Hidden Layer 1 b. Hidden Layer 2 Tabel 4.18 Hasil Akurasi Feature 8, Hidden Layer 2 Jumlah Neuron Hidden Layer 1
20
Akurasi
Data
Waktu
(%)
Benar
(detik)
25
51 78 87 82
85 131 146 138
6 6 6 6
30 35 40 45
81 90 85 78
136 151 142 131
6 6 6 5
Hidden Layer 2 10 15 20
Dari tabel 4.18 dapat dilihat akurasi tertinggi ada pada hidden layer 2 dengan jumlah neuron yaitu 35. Akurasi tertinggi yang diperoleh yaitu 90%. Untuk lebih jelasnya, perubahan naik turunnya akurasi dapat dilihat pada grafik berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
Grafik Perubahan Akurasi 100 90
Akurasi (%)
80
87
70
78
90 82
81
25
30
85 78
60 50 40
51 10
15
20
35
40
45
Jumlah Neuron
Gambar 4.31Grafik Perubahan Akurasi Feature 8, Hidden Layer 2
4.2.2 Implementasi User Interface Berikut ini tampilan antarmuka menu utama keseluruhan dari aplikasi dalam penelitian ini:
Gambar 4.31 Tampilan Pelatihan dan Pengujian Aplikasi ini dibagi kedalam 2 proses, yaitu pelatihan arsitektur JST, dan identifikasi data uji. Berikut ini tampilan antarmuka untuk masing- masing proses:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61
1.
Pelatihan Hidden Layer 1
Gambar 4.32Tampilan Proses Pelatihan Arsitektur JST 1 Hidden Layer 2.
Pelatihan Hidden Layer 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
Gambar 4.33Tampilan Proses Pelatihan Arsitektur JST 2 Hidden Layer
3.
Identifikasi Data Uji
Gambar 4.34 Data Uji yang dikenali
4.2.3 Pengujian Data Tunggal Setelah dilakukan pelatihan pada arsitektur jaringan syaraf tiruan, selanjutnya akan dilakukan pengujian terhadap data tunggal, dimana data yang diuji merupakan data aksara Batak Karo terbaru yang tidak termasuk dalam proses pelatihan dan pengujian data kelompok. Proses ini dilakukan dengan mengenalipola aksara menggunakan model jaringan terbaik yang telah didapatkan dari proses pelatihan arsitektur jaringan. Data uji untuk masing-masing aksara berjumlah satu huruf aksara Batak Karo terbaru,kemudian seluruh hasil identifikasi dari aplikasi disesuaikan terhadap target aksara. Berikut ini tabel hasil uji coba terhadap 21 huruf aksara Batak Karo:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63
Tabel 4.18Hasil Pengujian Data Tunggal Aksara Batak Karo No
Huruf Aksara Batak
Hasil Dari Target Aksara
Status
1
BA KARO
BA
Benar
2
CA KARO
TA
Salah
3
DA KARO
DA
Benar
4
GA KARO
GA
Benar
5
HA KARO
HA
Benar
6
I KARO
I
Benar
7
JA KARO
JA
Benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64
8
KA KARO
KA
Benar
9
LA KARO
LA
Benar
10
MA KARO
MA
Benar
11
MBA KARO
MBA
Benar
12
NA KARO
NA
Benar
13
NDA KARO
NDA
Benar
14
NGA KARO
NGA
Benar
15
PA KARO
PA
Benar
16
RA KARO
RA
Benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
17
SA KARO
SA
Benar
18
TA KARO
YA
Salah
19
U KARO
U
Benar
2
WA KARO
WA
Benar
21
YA KARO
MBA
Salah
Setelah melakukan percobaan dengan mengubah banyaknya lapisan tersembunyi, unit neuron pada tiap lapisan tersembunyi, kombinasi ciri yang digunakan, telah terlihat adanya perubahan akurasi ketika dilakukanperubahan tersebut, terdapat pada percobaan kombinasi ciri 8 sebanyak dari 168huruf dengan akurasi 90%. Dapat dilihat pula data huruf yang terbaca paling sedikit terdapat pada percobaan kombinasi ciri 1 dengan 2 layerdengan akurasi 45% . Dari data tersebut dapat dikatakan bahwa alat ini dapat mengenali tulisan tangan huruf Aksara Batak Karo. Dengan dilakukannya rekayasa perubahanfitur atau ciri, dan fungsi aktivasi pada jaringan syaraf tiruan didapatlah peningkatan prosentase untuk data dengan kombinasi ciri 8. Jadi untuk meningkatkan besarnya prosentasekeakuratan dapat dilakukan dengan rekayasa penggunaan fitur,banyaknya layer, neuron,epoch dan fungsi aktivasi.Dilakukan pula pengujian terhadap data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
tunggal untuk melihat hasil dari pelatihan jaringan yang dilakukan. Data uji tunggal ini ada yang memiliki noise, dan ada pula yang tidak begitu bagus tulisannya. Dari hasil yang diperoleh pada penelitian ini tentang pengenalan Huruf Aksara Batak Karo dengan algoritma backpropagationdiketahui bahwa : 1.
Pada penelitian ini terdapat 168 tulisan tangan huruf Aksara Batak Karo yang dapat terdeteksi, maka dikatakan algoritma backpropagationdapat mengenal aksara batak karo.
2.
Prosentase akurasi dari beberapa fungsi yang diterapkan pada penelitianini diperoleh akurasi terbaik sebesar 90%maka penelitian ini dikatakan berhasil karena sudah memenuhi tujuan penelitiankarena akurasi keterbacaan sudah melebihi 85% prosentase keberhasilan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB V PENUTUP
5.1
Kesimpulan Dari hasil penelitian ini, pengenalan pola Aksara Batak Karo menggunakan metode Back Propagation, dapat disimpulkan dalam beberapa hal, sebagai berikut: 1. Hasil dari percobaan pengujian variasi kombinasi ciri dan jumlah hidden layer beserta jumlah neuron-nya, dengan parameter arsitektur jaringan syaraf tiruan Back Propagation yaitu jumlah iterasi/epoch 500, menghasilkan akurasi tertinggi sebesar 90% pada ciri 8 dengan 1 hidden layer dan 2 hidden layer, yaitu jumlah neuron pada hidden layer 1 sebanyak 20 dan jumlah neuron pada hidden layer 2 sebanyak 35. 2. Dalam implementasi sistem ini, dilakukan tahap preprosessing thining, jika tidak maka hasil tidak sesuai dengan target. 3. Hasil dari percobaan pengujian data tunggal, bahwa aksara Batak huruf “CA”, “TA” dan “YA” tidak dapat dikenali. 4. Model jaringan syaraf tiruan yang dihasilkan sudah mampu mengenali pola Aksara Batak Karo dengan baik karena akurasi sistem yang diperoleh cukup tinggi, maka aplikasi ini mampu mengenali pola dengan tepat, sehingga hasilnya sesuai dengan target aslinya.
5.2
Saran Saran yang dapat diberikan untuk mengembangkan aplikasi ini kedepannya yaitu: 1. Jumlah data aksara yang akan digunakan dalam pelatihan dan pengujian arsitektur jaringan ditambah lagi atau dapat menggunakan aksara Batak lainnya karena aksara Batak bermacam-macam. 2. Metode ekstraksi ciri dapat menggunakan metode lain.
67
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA Nugroho, W.N &Widiarti, A.R. (2016). Transliterasi Citra Aksara HiraganaMempergunakan Jaringan Backpropagation. Yogyakarta. Kozok, U. (2009). Sejarah Perkembangan Tulisan Batak. : Kepustakaan Populer Gramedia. Kristianto, A. (2004). Jaringan Syaraf Tiruan. Yogyakarta: Penerbit Gava Media Prasetaningtyas, Y. (2016). Klasifikasi Pola Tanda Tangan Menggunakan Back Propagation. Skripsi. Fakultas Sains dan Teknologi. Universitas Sanata Dharma. Yogyakarta. Puspaningrum, D. (2006). Pengantar Jaringan Syaraf Tiruan. Yogyakarta : Penerbit Andi Offset. Sinaga, D dan Anggi, R. (2013). Laporan Akhir Penelitian Dosen Pemula. http.www.jurnal.com/2013/pengenalan-aksara-batak. Di akses pada 23 Oktober 2015 Surinta, O. (2010). Overview of Handwritten Thai character Recognition. http://www.ai.rug.nl/~mrolarik/APSMeeting/09-072010%20Overview%20of%20Handwritten%20Thai%20Character%20R ecognition.pdf. 12 September 2016. Siang, J. J. (2005).Jaringan Syaraf Tiruan dan Pemrogramannya Menggunakan Matlab (1). Yogyakarta: Penerbit ANDI. Widiarti,
A.R.
(2011).
Comparing
Hilditch,
Rosenfeld,
Zhang-Suen,
Nagendraprasad – Wang-Gupta Thinning.International Scholarly and Scientific Research & Innovation. No 6. Vol 5. halaman 1. http://waset.org/publications/6492/comparing-hilditch-rosenfeld-zhangsuen-and-nagendraprasad-wang-gupta-thinning.
68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN Source Code:
menu.m
function varargout = menupengenalan(varargin) % MENUPENGENALAN MATLAB code for menupengenalan.fig % MENUPENGENALAN, by itself, creates a new MENUPENGENALAN or raises the existing % singleton*. % % H = MENUPENGENALAN returns the handle to a new MENUPENGENALAN or the handle to % the existing singleton*. % % MENUPENGENALAN('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MENUPENGENALAN.M with the given input arguments. % % MENUPENGENALAN('Property','Value',...) creates a new MENUPENGENALAN or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before menupengenalan_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to menupengenalan_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help menupengenalan % Last Modified by GUIDE v2.5 08-Dec-2016 13:21:37 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @menupengenalan_OpeningFcn, ... 'gui_OutputFcn', @menupengenalan_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout
69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before menupengenalan is made visible. function menupengenalan_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 menupengenalan (see VARARGIN) % Choose default command line output for menupengenalan handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes menupengenalan wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = menupengenalan_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;
function InputTF_Callback(hObject, eventdata, handles) % hObject handle to InputTF (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of InputTF as text % str2double(get(hObject,'String')) returns contents of InputTF as a double
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71
% --- Executes during object creation, after setting all properties. function InputTF_CreateFcn(hObject, eventdata, handles) % hObject handle to InputTF (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in pilihaksara. function pilihaksara_Callback(hObject, eventdata, handles) % hObject handle to pilihaksara (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % if fileName ~= 0 % [fileName, alamatFile] = uigetfile({'*.jpg'}); % % % set(handles.edittext,'String',handles.gui.fullpath); % alamatNamaFile = fullfile(fileName, alamatFile); % % set(handles.data,'String',{files.name}); % set(handles.inputTF,'String',alamatNamaFile); % end [filename,pathname] = uigetfile('All Image Files(*.JPG;*.jpg;*.bmp;*.png;)','Pilih Gambar'); % cek file name if isequal([filename,pathname],[0,0]) return else fullpath = fullfile(pathname,filename); handles.gui.fullpath = fullpath; handles.gui.filename = filename; handles.gui.pathname = pathname; %tuliskan nama file pada bagian edit text set(handles.InputTF,'String',handles.gui.fullpath); % tampilkan citra asli addpath(handles.gui.pathname); axes(handles.axes2); I = imread(handles.gui.filename); handles.gui.I = I; imshow(I); guidata(hObject, handles); end function kenal1_Callback(hObject, eventdata, handles) % hObject handle to kenal1 (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72
% eventdata MATLAB % handles
reserved - to be defined in a future version of structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of kenal1 as text % str2double(get(hObject,'String')) returns contents of kenal1 as a double
% --- Executes during object creation, after setting all properties. function kenal1_CreateFcn(hObject, eventdata, handles) % hObject handle to kenal1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function databenar1_Callback(hObject, eventdata, handles) % hObject handle to databenar1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of databenar1 as text % str2double(get(hObject,'String')) returns contents of databenar1 as a double
% --- Executes during object creation, after setting all properties. function databenar1_CreateFcn(hObject, eventdata, handles) % hObject handle to databenar1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73
function totaldata1_Callback(hObject, eventdata, handles) % hObject handle to totaldata1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of totaldata1 as text % str2double(get(hObject,'String')) returns contents of totaldata1 as a double
% --- Executes during object creation, after setting all properties. function totaldata1_CreateFcn(hObject, eventdata, handles) % hObject handle to totaldata1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function akurasi_Callback(hObject, eventdata, handles) % hObject handle to akurasi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of textakurasi as text % str2double(get(hObject,'String')) returns contents of akurasi as a double
% --- Executes during object creation, after setting all properties. function akurasi_CreateFcn(hObject, eventdata, handles) % hObject handle to akurasi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function node1_Callback(hObject, eventdata, handles) % hObject handle to node1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of node1 as text % str2double(get(hObject,'String')) returns contents of node1 as a double
% --- Executes during object creation, after setting all properties. function node1_CreateFcn(hObject, eventdata, handles) % hObject handle to node1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function node2_Callback(hObject, eventdata, handles) % hObject handle to node2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of node2 as text % str2double(get(hObject,'String')) returns contents of node2 as a double
% --- Executes during object creation, after setting all properties. function node2_CreateFcn(hObject, eventdata, handles) % hObject handle to node2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function epoch_Callback(hObject, eventdata, handles) % hObject handle to epoch (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of epoch as text % str2double(get(hObject,'String')) returns contents of textepoch as a double
% --- Executes during object creation, after setting all properties. function epoch_CreateFcn(hObject, eventdata, handles) % hObject handle to epoch (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in proseskenal. function proseskenal_Callback(hObject, eventdata, handles) % hObject handle to proseskenal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) load 'pilihciri.mat'; load 'net.mat'; direktori=get(handles.InputTF,'String'); [fituruji1,fituruji2,fituruji3,fituruji4,fituruji5,fituruji6,fitur uji7,fituruji8]=preposessing_uji(direktori); if pilihciri == 1 data_seion=fituruji1; elseif pilihciri == 2 data_seion=fituruji2; elseif pilihciri == 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76
data_seion=fituruji3; elseif pilihciri == 4 data_seion=fituruji4; elseif pilihciri == 5 data_seion=fituruji5; elseif pilihciri == 6 data_seion=fituruji6; elseif pilihciri == 7 data_seion=fituruji7; elseif pilihciri == 8 data_seion=fituruji8; else data_seion=zeros(168,45); end datapca=processpca(data_seion,0.02); datauji=mapstd(datapca)'; output=sim(net,datauji); output=compet(output); display(output); [q, r]=max(output); display(r); if r==1 hasil_huruf='BA'; set(handles.kenal1,'String',hasil_huruf); elseif r==2 hasil_huruf='TA'; set(handles.kenal1,'String',hasil_huruf); elseif r==3 hasil_huruf='DA'; set(handles.kenal1,'String',hasil_huruf); elseif r==4 hasil_huruf='GA'; set(handles.kenal1,'String',hasil_huruf); elseif r==5 hasil_huruf='HA'; set(handles.kenal1,'String',hasil_huruf); elseif r==6 hasil_huruf='I'; set(handles.kenal1,'String',hasil_huruf); elseif r==7 hasil_huruf='JA'; set(handles.kenal1,'String',hasil_huruf); elseif r==8 hasil_huruf='KA'; set(handles.kenal1,'String',hasil_huruf); elseif r==9 hasil_huruf='LA'; set(handles.kenal1,'String',hasil_huruf); elseif r==10 hasil_huruf='MA'; set(handles.kenal1,'String',hasil_huruf); elseif r==11 hasil_huruf='MBA'; set(handles.kenal1,'String',hasil_huruf); elseif r==12 hasil_huruf='NA';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77
set(handles.kenal1,'String',hasil_huruf); elseif r==13 hasil_huruf='NDA'; set(handles.kenal1,'String',hasil_huruf); elseif r==14 hasil_huruf='NGA'; set(handles.kenal1,'String',hasil_huruf); elseif r==15 hasil_huruf='PA'; set(handles.kenal1,'String',hasil_huruf); elseif r==16 hasil_huruf='RA'; set(handles.kenal1,'String',hasil_huruf); elseif r==17 hasil_huruf='SA'; set(handles.kenal1,'String',hasil_huruf); elseif r==18 hasil_huruf='YA'; set(handles.kenal1,'String',hasil_huruf); elseif r==19 hasil_huruf='U'; set(handles.kenal1,'String',hasil_huruf); elseif r==20 hasil_huruf='WA'; set(handles.kenal1,'String',hasil_huruf); elseif r==21 hasil_huruf='CA'; set(handles.kenal1,'String',hasil_huruf); end
% --- Executes during object creation, after setting all properties. function proses1_CreateFcn(hObject, eventdata, handles) % hObject handle to proses1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% --- Executes on button press in proses1. function proses1_Callback(hObject, eventdata, handles) % hObject handle to proses1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) fea1=get(handles.ciri1,'Value'); fea2=get(handles.ciri2,'Value'); fea3=get(handles.ciri3,'Value'); fea4=get(handles.ciri4,'Value'); fea5=get(handles.ciri5,'Value'); fea6=get(handles.ciri6,'Value'); fea7=get(handles.ciri7,'Value'); fea8=get(handles.ciri8,'Value'); Hidden1=str2double(get(handles.node1,'String'));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78
Hidden2=str2double(get(handles.node2,'String')); iterasi=str2double(get(handles.epoch,'String')); if fea1 == 1 load feature1.data; data_seion = feature1(:,:); pilihciri=1; elseif fea2 == 1 load feature2.data; data_seion = feature2(:,:); pilihciri=2; elseif fea3 == 1 load feature3.data; data_seion = feature3(:,:); pilihciri=3; elseif fea4 == 1 load feature4.data; data_seion = feature4(:,:); pilihciri=4; elseif fea5 == 1 load feature5.data; data_seion = feature5(:,:); pilihciri=5; elseif fea6 == 1 load feature6.data; data_seion = feature6(:,:); pilihciri=6; elseif fea7 == 1 load feature7.data; data_seion = feature7(:,:); pilihciri=7; elseif fea8 == 1 load feature8.data; data_seion = feature8(:,:); pilihciri=8; else data_seion = zeros(21,168); end datapca=processpca(data_seion,0.02); datanormal=mapstd(datapca)'; target = target_data; [N,O] = size(target'); data = datanormal; k = 4; %k-fold 4 target_kelas = vec2ind(target); t1 = find(target_kelas == 1); t2 = find(target_kelas == 2); t3 = find(target_kelas == 3); t4 = find(target_kelas == 4); t5 = find(target_kelas == 5); t6 = find(target_kelas == 6); t7 = find(target_kelas == 7); t8 = find(target_kelas == 8); t9 = find(target_kelas == 9); t10 = find(target_kelas == 10);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79
t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21
= = = = = = = = = = =
find(target_kelas find(target_kelas find(target_kelas find(target_kelas find(target_kelas find(target_kelas find(target_kelas find(target_kelas find(target_kelas find(target_kelas find(target_kelas
== == == == == == == == == == ==
11); 12); 13); 14); 15); 16); 17); 18); 19); 20); 21);
ind0 = 1:N; M = floor((N/21)/k); %bagi data masing2 huruf untuk testing rng(0); if Hidden2 == 0 net = newff(minmax(data),[Hidden1,21],{'logsig','purelin'},'trainrp'); else net = newff(minmax(data),[Hidden1,Hidden2,21],{'logsig','logsig','pureli n'},'trainrp'); end net = init(net); net.trainParam.epochs = iterasi; net.divideFcn = 'divideind'; conf_mat=zeros(21,21); maks=0; for i=1:k tstind = 1 + M*(i-1):M*i; if i == k trnind = 1:tstind(1)-1; elseif i == 1 trnind = tstind(end)+1:N/21; else trnind = [1:tstind(1)-1,tstind(end)+1:N/21]; end trnInd = [ind0(t1(trnind)),ind0(t2(trnind)),ind0(t3(trnind)),ind0(t4(trnind )),... ind0(t5(trnind)),ind0(t6(trnind)),ind0(t7(trnind)),ind0(t8(trnind) ),... ind0(t9(trnind)),ind0(t10(trnind)),ind0(t11(trnind)),ind0(t12(trni nd)),... ind0(t13(trnind)),ind0(t14(trnind)),ind0(t15(trnind)),ind0(t16(trn ind)),...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80
ind0(t17(trnind)),ind0(t18(trnind)),ind0(t19(trnind)),ind0(t20(trn ind)),... ind0(t21(trnind))]; tstInd = [ind0(t1(tstind)),ind0(t2(tstind)),ind0(t3(tstind)),ind0(t4(tstind )),... ind0(t5(tstind)),ind0(t6(tstind)),ind0(t7(tstind)),ind0(t8(tstind) ),... ind0(t9(tstind)),ind0(t10(tstind)),ind0(t11(tstind)),ind0(t12(tsti nd)),... ind0(t13(tstind)),ind0(t14(tstind)),ind0(t15(tstind)),ind0(t16(tst ind)),... ind0(t17(tstind)),ind0(t18(tstind)),ind0(t19(tstind)),ind0(t20(tst ind)),... ind0(t21(tstind))]; net.divideParam.trainInd = trnInd; net.divideParam.testInd = tstInd; [net,tr] = train(net,data,target); ytst = net(data(:,tr.testInd)); ttst = target(:,tr.testInd); [c,cm,ind,per]=confusion(ttst,ytst); conf_mat=conf_mat+cm; benar=sum(diag(cm)); totaldata=sum(sum(cm)); akurasi=(benar/totaldata)*100; if akurasi > maks save('net.mat','net'); maks=akurasi; end end benar_total=sum(diag(conf_mat)); totalseluruhdata=sum(sum(conf_mat)); akurasi_total=(benar_total/totalseluruhdata)*100; save('pilihciri.mat','pilihciri'); set(handles.databenar1,'String',num2str(benar_total)); set(handles.totaldata1,'String',num2str(totalseluruhdata)); set(handles.akurasi,'String',num2str(round(akurasi_total))); h = msgbox('Pelatihan Jaringan SELESAI', 'Pelatihan Backpropagation','warn');
Preprossesing.m [file,path]=uigetfile('*/*.JPG','ambil gambar'); image=imread([path file]); %mengubah citra menjadi keabuan grayimage=rgb2gray(image); % mengubah citra keabuan menjadi hitam putih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81
image2=im2bw(grayimage); %merize citra menjadi 600x600 pixel resized_bw = imresize(image2,[600,600]); %penipisan citra thin=Rosenfeld(resized_bw); [im1,im2,im3,im4,im5,im6,im7,im8,im9]=divide(thin); %EKSTRAKSI CIRI subplot(3,3,1), subimage(im1) subplot(3,3,2), subimage(im2) subplot(3,3,3), subimage(im3) subplot(3,3,4), subimage(im4) subplot(3,3,5), subimage(im5) subplot(3,3,6), subimage(im6) subplot(3,3,7), subimage(im7) subplot(3,3,8), subimage(im8) subplot(3,3,9), subimage(im9) [vert_1,horz_1,dig1_1,dig2_1] [vert_2,horz_2,dig1_2,dig2_2] [vert_3,horz_3,dig1_3,dig2_3] [vert_4,horz_4,dig1_4,dig2_4] [vert_5,horz_5,dig1_5,dig2_5] [vert_6,horz_6,dig1_6,dig2_6] [vert_7,horz_7,dig1_7,dig2_7] [vert_8,horz_8,dig1_8,dig2_8] [vert_9,horz_9,dig1_9,dig2_9] [black_1] [black_2] [black_3] [black_4] [black_5] [black_6] [black_7] [black_8] [black_9]
= = = = = = = = =
= = = = = = = = =
MarkDirection(im1); MarkDirection(im2); MarkDirection(im3); MarkDirection(im4); MarkDirection(im5); MarkDirection(im6); MarkDirection(im7); MarkDirection(im8); MarkDirection(im9);
IoC(im1); IoC(im2); IoC(im3); IoC(im4); IoC(im5); IoC(im6); IoC(im7); IoC(im8); IoC(im9);
a1=[black_1,black_2, black_3, black_4,black_5,black_6,black_7,black_8,black_9... dig1_1,dig1_2,dig1_3,dig1_4,dig1_5,dig1_6,dig1_7,dig1_8,dig1_9... dig2_1,dig2_2,dig2_3,dig2_4,dig2_5,dig2_6,dig2_7,dig2_8,dig2_9... horz_1,horz_2,horz_3,horz_4,horz_5,horz_6,horz_7,horz_8,horz_9... vert_1,vert_2,vert_3,vert_4,vert_5,vert_6,vert_7,vert_8,vert_9,]; black = [black_1, black_2, black_3, black_4, black_5, black_6, black_7, black_8, black_9]; vert = [vert_1, vert_2, vert_3, vert_4, vert_5, vert_6, vert_7, vert_8, vert_9]; horz = [horz_1, horz_2, horz_3, horz_4, horz_5, horz_6, horz_7, horz_8, horz_9];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82
dig1 = [dig1_1, dig1_2, dig1_3, dig1_4, dig1_5, dig1_6, dig1_7, dig1_8, dig1_9]; dig2 = [dig2_1, dig2_2, dig2_3, dig2_4, dig2_5, dig2_6, dig2_7, dig2_8, dig2_9]; feature1 = [black]; feature2 = [dig1]; feature3 = [dig2]; feature4 = [black, dig1]; feature5 = [black, dig2]; feature6= [horz,vert]; feature7 = [dig1,dig2]; feature8 = [black, dig1, dig2, horz, vert]; Ioc.m function [black] = IoC(newimage) %summary [rows,columns]=size(newimage); count=0; for i=1:rows for j=1:columns if newimage(i,j)==0 count=count+1; end end end black=count; end
Preprocesing Uji
function [fitur1,fitur2,fitur3,fitur4,fitur5,fitur6,fitur7,fitur8] = preposessing_uji( direktori ) %UNTITLED Summary of this function goes here % Detailed explanation goes here image=imread(direktori); %mengubah citra menjadi keabuan grayimage=rgb2gray(image); % mengubah citra keabuan menjadi hitam putih image2=im2bw(grayimage); %merize citra menjadi 600x600 pixel resized_bw = imresize(image2,[600,600]); %penipisan citra thin=Rosenfeld(resized_bw); [im1,im2,im3,im4,im5,im6,im7,im8,im9]=divide(thin); %EKSTRAKSI CIRI [vert_1,horz_1,dig1_1,dig2_1] = MarkDirection(im1); [vert_2,horz_2,dig1_2,dig2_2] = MarkDirection(im2); [vert_3,horz_3,dig1_3,dig2_3] = MarkDirection(im3); [vert_4,horz_4,dig1_4,dig2_4] = MarkDirection(im4); [vert_5,horz_5,dig1_5,dig2_5] = MarkDirection(im5); [vert_6,horz_6,dig1_6,dig2_6] = MarkDirection(im6); [vert_7,horz_7,dig1_7,dig2_7] = MarkDirection(im7); [vert_8,horz_8,dig1_8,dig2_8] = MarkDirection(im8); [vert_9,horz_9,dig1_9,dig2_9] = MarkDirection(im9); [black_1] = IoC(im1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83
[black_2] = IoC(im2); [black_3] = IoC(im3); [black_4] = IoC(im4); [black_5] = IoC(im5); [black_6] = IoC(im6); [black_7] = IoC(im7); [black_8] = IoC(im8); [black_9] = IoC(im9); black = [black_1, black_2, black_3, black_4, black_5, black_6, black_7, black_8, black_9]; vert = [vert_1, vert_2, vert_3, vert_4, vert_5, vert_6, vert_7, vert_8, vert_9]; horz = [horz_1, horz_2, horz_3, horz_4, horz_5, horz_6, horz_7, horz_8, horz_9]; dig1 = [dig1_1, dig1_2, dig1_3, dig1_4, dig1_5, dig1_6, dig1_7, dig1_8, dig1_9]; dig2 = [dig2_1, dig2_2, dig2_3, dig2_4, dig2_5, dig2_6, dig2_7, dig2_8, dig2_9]; fitur1 = [black]; fitur2 = [dig1]; fitur3 = [dig2]; fitur4 = [black, dig1]; fitur5 = [black, dig2]; fitur6 = [horz,vert]; fitur7 = [dig1,dig2]; fitur8 = [black, dig1, dig2, horz, vert]; end
MarkDirection.m
function [vert,horz,dig1,dig2] = MarkDirection(newimage) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here [rows,columns]=size(newimage); % %Mask Vertical % ver=[1 0 1; 1 0 1; 1 0 1]; % %Mask Horizontal % hor=[1 1 1; 0 0 0; 1 1 1]; % %Mask Diagonal 1 % dg1=[0 1 1; 1 0 1; 1 1 0]; % %Mask Diagonal 1 % dg2=[1 1 0; 1 0 1; 0 1 1]; vert=0; horz=0; dig1=0; dig2=0; for i=2:rows-1 for j=2:columns-1 if newimage(i,j)==0 if newimage(i,j)+newimage(i-1,j)+newimage(i+1,j)==0 if newimage(i-1,j-1)+newimage(i-1,j+1)+newimage(i,j1)+newimage(i,j+1)+newimage(i+1,j-1)+newimage(i+1,j+1)==6 vert=vert+1; end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84
if newimage(i,j)+newimage(i,j-1)+newimage(i,j+1)==0 if newimage(i-1,j-1)+newimage(i-1,j)+newimage(i1,j+1)+newimage(i+1,j-1)+newimage(i+1,j)+newimage(i+1,j+1)==6 horz=horz+1; end end if newimage(i,j)+newimage(i-1,j-1)+newimage(i+1,j+1)==0 if newimage(i-1,j)+newimage(i-1,j+1)+newimage(i,j1)+newimage(i,j+1)+newimage(i+1,j-1)+newimage(i+1,j)==6 dig1=dig1+1; end end if newimage(i,j)+newimage(i-1,j+1)+newimage(i+1,j-1)==0 if newimage(i-1,j-1)+newimage(i-1,j)+newimage(i,j1)+newimage(i,j+1)+newimage(i+1,j)+newimage(i+1,j+1)==6 dig2=dig2+1; end end end end end end
Load_Data.m
load .data % data_seion = feature4(:,:); data_seion = feature8 (:,:); datapca=processpca(data_seion,0.02); datanormal=mapstd(datapca)'; % datanormal = mapminmax(datapca)';
Otomaticsproses.m
tempLebar = 0; tempPanjang = 0; for i = 1:168 [file,path] = uigetfile('*/*.JPG','ambil gambar'); image = imread([path file]); [lebar, panjang] = size(image); if tempLebar < lebar tempLebar = lebar; else tempLebar = tempLebar; end if tempPanjang < panjang tempPanjang = panjang; else tempPanjang = tempPanjang; end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 85
Train_machine.m
clear,clc Load_Data_2; target = target_data; [N,O] = size(target'); data = datanormal; k = 4; %k-fold 4 target_kelas = vec2ind(target); t1 = find(target_kelas == 1); t2 = find(target_kelas == 2); t3 = find(target_kelas == 3); t4 = find(target_kelas == 4); t5 = find(target_kelas == 5); t6 = find(target_kelas == 6); t7 = find(target_kelas == 7); t8 = find(target_kelas == 8); t9 = find(target_kelas == 9); t10 = find(target_kelas == 10); t11 = find(target_kelas == 11); t12 = find(target_kelas == 12); t13 = find(target_kelas == 13); t14 = find(target_kelas == 14); t15 = find(target_kelas == 15); t16 = find(target_kelas == 16); t17 = find(target_kelas == 17); t18 = find(target_kelas == 18); t19 = find(target_kelas == 19); t20 = find(target_kelas == 20); t21 = find(target_kelas == 21); ind0 = 1:N; M = floor((N/21)/k); %bagi data masing2 huruf untuk testing rng(0); net = newff(minmax(data),[20,35,21],{'logsig','logsig','purelin'},'train rp'); % net = newff (minmax(data), [45,21],{'logsig','purelin'},'trainrp'); net.trainParam.epochs = 500; net.divideFcn = 'divideind'; net = init(net); acc = []; conf_mat=zeros(21,21); for i=1:k tstind = 1 + M*(i-1):M*i; if i == k trnind = 1:tstind(1)-1; elseif i == 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 86
trnind = tstind(end)+1:N/21; else trnind = [1:tstind(1)-1,tstind(end)+1:N/21]; end trnInd = benar=sum(diag(cm)); totaldata=sum(sum(cm)); akurasi=(benar/totaldata)*100 conf_mat=conf_mat+cm; end %
avgacc = mean(acc) benar_total=sum(diag(conf_mat)) totalseluruhdata=sum(sum(conf_mat)) akurasi_total=(benar_total/totalseluruhdata)*100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 87
DATA AKSARA:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 88
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 89
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 90