viii
INTISARI
Banyak pendatang dari luar pulau jawa yang menetap, bekerja, bersekolah, ataupun
berwisata di pulau Jawa yang terkadang ingin mengetahui kebudayaan jawa dari segi bahasa,
yaitu bahasa jawa beserta dengan huruf jawa. Sedikit orang yang mampu memahami huruf
yang rumit ini. Sehingga untuk memahami huruf jawa secara efisien, diperlukan sebuah
sistem pengenalan untuk mengenali huruf jawa tersebut yang diharapkan lebih dapat
dimengerti secara umum oleh masyarakat.
Sistem pengenalan huruf jawa yang akan dibuat menggunakan webcam dan laptop.
Webcam berfungsi untuk merekam dan mengambil citra dari potongan huruf jawa , dan laptop
untuk mengoperasikannya.Citra potongan huruf jawa yang telah dicapture kemudian diolah
dengan menggunakan preprocessing, ekstrasi ciri wavelet, jarak Euclidean dan kemudian
program akan menampilkan hasil pengenalan.
Sistem pengenalan huruf jawa secara real time dapat bekerja dengan baik.
Berdasarkan hasil percobaan, parameter terbaik adalah pada variasi resizing 32x64 dan
desimasi 2, yang mampu menghasilkan tingkat pengenalan sebesar 91% dan 92,8% dari
berbagai variasi rotasi dan skala.
ix
ABSTRACT
Many immigrants from outside java island which is settle, work, attend school, or
traveled in java island which is somestimes wants to find out how culture in terms of java
language, which is the java along with letters of java. Few people are able to understand the
letter a complicated. So as to understand java letters, in an efficient way required a
recognition systems to recognise java letter expected more intelligible in general by society.
Java letter recognition system to be created using a webcam and a laptop. Webcam
function for recording and retrieving images from a piece of Java letters, and laptops to
operate it. Image java letter pieces that have been captured and processed by using
preprocessing, wavelet characteristics extraction, Euclidean distance and then the program
will display the recognition result.
Java letter recognition systems in real time can work well. Based on the experiment
results, the best parameter is the variation resizing 32x64 and Decimation 2, which is able to
produce a recognition rate of 91% and 92,8% of the variations of rotation and scale
respectively
TUGAS AKHIR
PENGENALAN SECARA REAL TIME HURUF JAWA
JENIS CETAK MENGGUNAKAN EKSTRAKSI CIRI
WAVELET DAN FUNGSI JARAK EUCLIDEAN
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
disusun oleh :
IGNASIUS ARDI ARYO PRABOWO
NIM : 105114006
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
i
TUGAS AKHIR
PENGENALAN SECARA REAL TIME HURUF JAWA
JENIS CETAK MENGGUNAKAN EKSTRAKSI CIRI
WAVELET DAN FUNGSI JARAK EUCLIDEAN
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
disusun oleh :
IGNASIUS ARDI ARYO PRABOWO
NIM : 105114006
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
FINAL PROJECT
REAL TIME RECOGNITION OF PRINTED JAVA
LETTER USING WAVELET FEATURE
EXTRACTION AND EUCLIDEAN DISTANCE
FUNCTIONS
In partial fulfillment of the requirements
For the degree of
Sarjana Teknik
Electrical Engineering Study Program
IGNASIUS ARDI ARYO PRABOWO
NIM : 105114006
ELECTRICAL ENGINEERING STUDY PROGRAM
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
HALAMAN
PERSETT}JUAI'I
TT]GAS
AKHIR
PENGENALAN
SECARA
ftElL
TIME HUR{IF JAWA JtrNIS
CETAK
MENGGUNAKAN EKSTRAKSI
CIRI IrUWLETDAN
TUNGSI
JARAK EUCLIDEAN
(REAL
TIME
RECOGNITION
OF PRINTEDJAVA LETTER USING
WAVELET
F'trATTIREEXTRACTION
EUCLTDEAN
DISTANCE
rrNCTroNs)
Pembirnbing
r
W
lr
Dr. Linggo
Sum{rnoIII
HALAMA1Y
PENGESAHAN
TUGAS
AKHIR
PENGENALAN
SECARA
REAL TIME
HTIRTIF JAWA JENISCETAK
MENGGT]NAKAIT EKSTRAKSI
CIRI
WAYELETDAN TUNGSI
JARAK EACLIDEAN
(REAI, TrME
RECOGNTTTONOtr'.PRrNTED
JAVA LETTUR
USrNG
WAYELET FEATURE EXTRACTION EUCLIDEAN I}ISTANCE
ruNCTroNS)
Oleh:
ICr}{ASIUS ARDI ARYO PRABOWO
NIM : 105 114006
Telah dipertahankan di depan Panitia Penguji
Pada tanggal 23 Maret 2015
Dan dinyatakan memenuhi syarat
Ketua
$skretaris
Anggota
Susunan Panitia Penguji: Nama Lengkap
: fiendro, M,Kom
: I)r. Linggo Sumarna
: Petrus Setyo Prabowo, S.T.,M.T.
Yogyakana,
bo
APril
2016Fakultas $ains dan Teknalogr Univ*rsita* Sanata Dh*rm*
iv
r{trffi
[.f
,m]]
\Bffi
W:r3}"i'ry$*"*-v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO:
"Mintalah, maka akan diberikan kepadamu;
carilah, maka kamu akan mendapat; ketoklah,
maka pintu akan dibukakan bagimu. Mat 7:7
”
Persembahan
Skripsi ini kupersembahkan untuk Tuhan Yesus
yang selalu membimbingku, menyertaiku dari awal
sampai akhir.
PERI\YATAAN
KBASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalarn kutipan dan daftar
pustaka sebagai mana layaknya karya ilmiah.
Yogyakarta, 10 April 2015
Penulis
Ignasius Ardi Aryo Prabowo
LEMBAR PERNYATAAN
PERSETUJUAN
PUBLIKASI
KARYA
ILMIAII UNTUK KEPENTINGAN
AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama: Ignasius Ardi Aryo Frabowo
Nomor Mahasiswa : 105 I 14006
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas
Sanata Dharma karya ilmiah saya yang berjudul:
PENGENALAN SECARA REAL TIME HURUF JAWA JENIS CETAK
MENGGLINAKAN EKSTRAKSI CIRI I4/AYELET DAN FUNGSI JARAK EUCLIDEAN
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas dan
mempublikasikannya pada media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya selama masih mencatumkan nzlma saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 10 April 2Al5
v11
viii
INTISARI
Banyak pendatang dari luar pulau jawa yang menetap, bekerja, bersekolah, ataupun
berwisata di pulau Jawa yang terkadang ingin mengetahui kebudayaan jawa dari segi
bahasa, yaitu bahasa jawa beserta dengan huruf jawa. Sedikit orang yang mampu
memahami huruf yang rumit ini. Sehingga untuk memahami huruf jawa secara efisien,
diperlukan sebuah sistem pengenalan untuk mengenali huruf jawa tersebut yang
diharapkan lebih dapat dimengerti secara umum oleh masyarakat.
Sistem pengenalan huruf jawa yang akan dibuat menggunakan webcam dan laptop.
Webcam berfungsi untuk merekam dan mengambil citra dari potongan huruf jawa , dan
laptop untuk mengoperasikannya. Citra potongan huruf jawa yang telah dicapture
kemudian diolah dengan menggunakan preprocessing, ekstrasi ciri wavelet, jarak
Euclidean dan kemudian program akan menampilkan hasil pengenalan.
Sistem pengenalan huruf jawa secara real time dapat bekerja dengan baik.
Berdasarkan hasil percobaan, parameter terbaik adalah pada variasi resizing 32x64 dan
desimasi 2, yang mampu menghasilkan tingkat pengenalan sebesar 91% dan 92,8% dari
berbagai variasi rotasi dan skala.
ix
ABSTRACT
Many immigrants from outside java island which is settle, work, attend school, or
traveled in java island which is somestimes wants to find out how culture in terms of java
language, which is the java along with letters of java. Few people are able to understand the
letter a complicated. So as to understand java letters, in an efficient way required a
recognition systems to recognise java letter expected more intelligible in general by society.
Java letter recognition system to be created using a webcam and a laptop. Webcam
function for recording and retrieving images from a piece of Java letters, and laptops to
operate it. Image java letter pieces that have been captured and processed by using
preprocessing, wavelet characteristics extraction, Euclidean distance and then the program
will display the recognition result.
Java letter recognition systems in real time can work well. Based on the experiment
results, the best parameter is the variation resizing 32x64 and Decimation 2, which is able to
produce a recognition rate of 91% and 92,8% of the variations of rotation and scale
respectively
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa atas
berkat dan rahmat kasih-Nya yang telah dilimpahkan-Nya sehingga penulis dapat
menyelesaikan Tugas Akhir yang berjudul Pengenalan Secara Real Time Huruf Jawa
Jenis Cetak Menggunakan Ekstraksi Ciri Wavelet dan Fungsi Jarak Euclidean.
Tugas Akhir ini disusun sebagai salah satu syarat kelulusan untuk
memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro, Fakultas Sains
dan Teknologi, Universitas Sanata Dharma Yogyakarta.
Penulisan Tugas Akhir ini tidak lepas dari campur tangan dan bantuan dari
banyak pihak baik secara langsung mapun tidak langsung. Penulis menyadari bahwa
banyak pihak yang telah memberi dukungan, semangat, bimbingan dan arahan serta
bantuan materil. Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan
terima kasih kepada :
1. Tuhan Yesus Kristus, yang selalu membimbingku, menyertaiku dari awal
hingga terselesainya tugas akhir ini. Sungguh suatu karunia kasih-Mu.
2. Ibu Paulina Heruningsih Prima Rosa, S.si., M.Sc. selaku Dekan Fakultas
Sains dan Teknologi.
3. Bapak Petrus Setyo Prabowo, S.T., M.T. selaku Ketua Program Studi
Teknik Elektro Universitas Sanata Dharma Yogyakarta yang memberikan
arahan kepada penulis.
4. Bapak Dr. Linggo Sumarno, selaku dosen pembimbing yang telah banyak
membimbing, membantu, serta memberikan arahan, jasa dan motivasi
kepada penulis dalam menyelesaikan tugas akhir ini.
5. Bapak Petrus Setyo Prabowo, S.T., M.T. dan Bapak Ir. Tjendro, M.Kom.
selaku dosen penguji tugas akhir yang telah memberikan ilmu dan arahan
tambahan sehingga penulis dapat menyempurnakan penyusunan tugas
akhir ini.
6. Seluruh Dosen dan Laboran Program Studi Teknik Elektro, Fakultas
Sains dan Teknologi Universitas Sanata Dharma yang telah banyak
xi
7. Seluruh Staff Fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta yang telah membantu dalam hal administrasi.
8. Kedua orang tua tercinta (Papa drg. Ludgerus Toto Utomo dan Mama
Rosalia Resmiharti), seluruh keluarga besar Soegiardjo seluruhnya dan
keluarga besar Suladi Wardoyo yang selalu mendukung serta mendoakan
penulis.
9. Kakak-kakak dan adik saya ( Albertus Adi Atma Prasetya, Natalia Indira,
Aegidia Dyah Pravita Sari, dan Sanca Christy Mareta) yang telah
memberikan semangat dan doa demi terselesaikannya tugas akhir ini.
Terima kasih untuk segala kasih dan kesabarannya.
10.Sahabat-sahabat saya tercinta (Irenne Patricia, Nikki Gusti, Chesa
Permita, Lukas Arma, Helena Dyah) yang telah banyak mendukung,
membantu, memberikan semangat, motivasi dan menghibur penulis
sampai menyelesaikan skripsi ini.
11.Teman-teman seperjuangan angkatan 2010 Teknik Elektro yang selalu
mendukung dan menyemangati dalam menyelesaikan tugas akhir ini.
12.Dan kepada semua pihak yang telah banyak membantu dalam
menyelesaikan skripsi ini yang tidak bisa disebutkan satu persatu.
Penulis menyadari bahwa dalam penulisan tugas akhir ini masih terdapat
banyak kekurangan dan jauh dari sempurna. Untuk itu, kritik dan saran yang
membangun senantiasa penulis harapkan guna menyempurnakan tugas akhir ini.
Akhir kata, penulis berharap agar hasil penelitian dan pembelajaran yang
tertuang dalam tugas akhir ini dapat bermanfaat bagi semua pihak.
xii
DAFTAR ISI
Halaman Sampul (Bahasa Indonesia) ... i
Halaman Sampul (Bahasa Inggris) ... ii
Halaman persetujuan ... iii
Halaman Pengesahan ... iv
Halaman Persembahan dan Motto Hidup ...v
Pernyataan Keaslian Karya ... vi
Lembar Pernyataan Persetujuan Publikasi Karya Ilmiah untuk Kepentingan Akademis ... vii
Intisari ... viii
Abstract ... ix
Kata Pengantar ...x
Daftar Isi ... xii
Daftar Gambar ...xv
Daftar Tabel ... xvii
BAB I:PENDAHULUAN 1.1. LatarBelakang ... 1
1.2. TujuandanManfaat Penelitian ... 2
1.3. BatasanMasalah ... 2
1.4. MetodologiPenelitian ... 3
BAB II: DASAR TEORI 2.1. Aksara Jawa ... 4
xiii
2.2. Pengolahan Citra ...4
2.2.1. Ruang Warna RGB ...5
2.2.2. Citra Grayscale...6
2.2.3. Cropping dan Resizing ...6
2.2.4.Transformasi Affine (Affine Transformation) ...7
2.3. Pengenalan Pola ...8
2.4. Wavelet ...8
2.4.1. Wavelet secara umum ...8
2.4.2.Wavelet Haar ...11
. 2.4.3.Konvolusi ...12
2.5. Jarak Euclidean ...13
2.6. Templete Matching ...14
2.7. Matlab ...15
2.8. Webcam ...16
2.9. GUIDE MATLAB ...17
BAB III:PERANCANGAN 3.1. GambaranSistem ... 18
3.1.1.Fixture ... 18
3.1.2.Potongan Huruf Jawa Jenis Cetak... 19
3.1.3.Webcam ...19
3.2. Proses Pengenalan Potongan Huruf Jawa ...19
3.2.1.Citra Potongan Huruf Jawa ...20
3.2.2.Tahap Preprocessing ...21
3.2.3.Tahap Ekstraksi Ciri ...23
xiv
3.2.5.Penentuan Keluaran ...26
3.3.Perancangan Database Huruf ...27
3.4.Huruf Uji ...27
3.5.Perancangan Tampilan GUI ...28
BAB IV:HASIL DAN PEMBAHASAN 4.1. Pengujian Program Pengenalan Huruf Jawa Carakan secara Real Time ...29
4.1.1.Tombol Kamera Aktif ...30
4.1.2.Tombol Ambil Gambar ...31
4.1.3. Pop-Up Menu ...32
4.1.4. Tombol Proses ...33
4.1.5. Tombol Reset ...38
4.1.6. Tombol Keluar ...38
4.2. Hasil Pengujian Program Pengenalan Terhadap Tingkat Pengenalan Citra Potongan Huruf Jawa Carakan...39
4.2.1. Pengujian Parameter Pengenalan Potongan Huruf Jawa Carakan Secara Tidak Real Time ...39
4.2.1. Pengujian Parameter Pengenalan Potongan Huruf Jawa Carakan Secara Real Time...42
BAB V:KESIMPULAN DAN SARAN 5.1. Kesimpulan ...48
5.2. Saran ...48
DAFTAR PUSTAKA ...49
xv
DAFTAR GAMBAR
Gambar 2.1. Aksara Jawa Carakan ... 4
Gambar 2.2. Koordinat citra digital ... 5
Gambar 2.3. Skema ruang warna RGB dalam bentuk kubus ... 5
Gambar 2.4. Contoh hasil cropping... 6
Gambar 2.5. Proses penskalaan pada citra potongan huruf. (a ) Citra sebelum penskalaan (b) citra setelah penskalaan 64x128... 8
Gambar 2.6. Algoritma pyramid. Dekomposisi wavelet satu level berdasarkan algoritma piramid; h(n) adalah tapis pelewat bawah; g(n) adalah tapis pelewat atas; CAj (LL) adalah koefisien rerata; �(ℎ)(HL), �(�)(LH), dan �(�)(HH) masing adalah koefisien detil horisontal, vertikal dan diagonal ... 9
Gambar 2.7. Wavelet Haar ... 12
Gambar 2.8. Representasi matriks dari penjumlahan konvolusi, y = [1 5 14 26 29 21] ... 13
Gambar 2.9. Contoh tampilan Matlab ... 16
Gambar 2.10. Contoh webcam ... 17
Gambar 2.11. Tampilan Blank GUI (Default) ... 17
Gambar 3.1. Gambaran keseluruhan sistem ... 18
Gambar 3.2. Contoh potongan huruf jawa carakan ... 19
Gambar 3.3. Blok diagram proses pengenalan potongan huruf jawa ... 20
Gambar 3.4. Diagram alir pemrosesan citra ... 21
Gambar 3.5. Contoh konversi citra potongan huruf dengan RGB (a) menjadi grayscale (b) ... 22
Gambar 3.6. Contoh cropping pada citra potongan huruf ... 22
Gambar 3.7. Contoh resizing pada citra potongan huruf. (a) Citra sebelum diresizing. (b) citra setelah diresizing 64x128. (c) citra a setelah diresizing 16x32 ... 23
Gambar 3.8. Diagram ekstraksi ciri ... 24
Gambar 3.9. Diagram alir konvolusi ... 24
Gambar 3.10. Diagram alir downsampling ... 25
Gambar 3.11. Diagram alir fungsi jarak Euclidean ... 26
xvi
Gambar 3.13. Blok diagram perancangan database ... 27
Gambar 3.14. Sketsa perancangan GUI... 28
Gambar 4.1. Icon Matlab R2010a ... 29
Gambar 4.2. Tampilan awal Matlab R2010a ... 30
Gambar 4.3. Grafik Tingkat Pengenalan secara tidak real time ... 41
xvii
DAFTAR TABEL
Tabel 3.1. Spesifikasi Webcam Logitech c 170h ... 18
Tabel 3.2. Jumlah kombinasi set database ... 26
Tabel 4.1. Persentase Data Hasil Pengujian Secara Tidak Real Time ... 40
Tabel 4.2. Jumlah Koefisien Ekstraksi Ciri ... 42
Tabel 4.3. Gambar Citra Huruf Jawa Carakan Setiap Variaasi Resizing dan Desimasi ... 43
Tabel 4.4. Jumlah rata-rata persentase hasil percobaan 1, 2, 3, 4, 5 rotasi dan penskalaan(tabel 1-5 lihat lampiran) ... 45
1
BAB I
PENDAHULUAN
1.1
Latar Belakang
Penduduk Indonesia memiliki beraneka ragam kebudayaan yang memiliki
bahasa berbeda-beda sesuai dengan tempat tinggalnya. Mayoritas mempunyai
dwibahasa yaitu kemampuan untuk menguasai kosakata bahasa Nasional yaitu bahasa
Indonesia dan bahasa Daerah tempat tinggal masing-masing. Seperti penduduk jawa
menguasai dua bahasa yang sering digunakan untuk berkomunikasi yaitu bahasa
Indonesia sebagai bahasa pemersatu dan bahasa daerah yaitu bahasa jawa sebagai
bahasa sehari-hari.
Jawa merupakan sebuah pulau padat penduduk karena terdapat pusat
pemerintahan, dengan begitu banyak pendatang dari luar pulau. Para pendatang tersebut
terkadang ingin mengetahui kebudayaan jawa dari segi bahasa maupun sejarahnya.
Misalnya dari segi bahasa, yaitu bahasa jawa beserta dengan huruf jawa biasa disebut
dengan aksara jawa. Sayangnya, hanya sedikit orang yang mampu memahami aksara
yang rumit ini. Sehingga untuk memahami huruf jawa secara efisien, diperlukan sebuah
sistem pengenalan untuk mengenali huruf jawa tersebut yang diharapkan lebih dapat
dimengerti secara umum oleh masyarakat. Dengan menerapkan salah satu contoh
aplikasi computer vision masyarakat bisa mengenali beberapa huruf jawa secara real
time. Computer vision adalah proses otomatis yang mengintegrasikan sejumlah besar
proses untuk persepsi visual, seperti akuisisi data, pengolahan citra, klasifikasi,
pengenalan, dan membuat keputusan [1].
Sudah ada penelitian mengenai pengenalan aksara jawa, antara lain oleh Wastu
[2]. Metode yang digunakan untuk sistem pengenalan aksara jawa adalah Hidden
Markov Models. Selain itu penulis juga menemukan penelitian yang berkaitan dengan
pengenalan karakter huruf, diantaranya pernah diteliti oleh Kurniawan [3] tentang
pengenalan huruf Jepang Hiragana menggunakan perluasan metode Feature point
Extraction dan metode perbandingan dengan mengukur jarak Euclidean. Pada penelitian
dilakukan secara real time dan belum menyelidiki pengaruh variasi rotasi serta
penskalaan. Maka penulis ingin membuat suatu pengenalan secara real time huruf jawa
jenis cetak menggunakan ekstraksi ciri Wavelet dan fungsi jarak Euclidean dengan
menyelidiki pengaruh variasi rotasi serta penskalaan.
1.2
Tujuan dan Manfaat Penelitian
Tujuan yang akan dicapai dalam penulisan ini adalah menerapkan salah satu
contoh aplikasi computer vision yang dapat mengenali beberapa huruf jawa jenis cetak
secara real time menggunakan ekstraksi ciri Wavelet dan metode pengukuran jarak
euclidean. Manfaat penelitian ini adalah sebagai dasar untuk penelitian selanjutnya
dalam mengenali nama jalan dengan tulisan jawa yang berada di pinggir jalan, prasasti
dan buku dengan tulisan jawa.
1.3
Batasan Masalah
Pembahasan dan penyelesaian masalah pada tugas akhir ini dibatasi pada:
1. Pengenalan huruf jawa carakan jenis cetak dengan ukuran huruf 6,8x3 cm dan
ukuran template 10x5 cm. Huruf jawa berasal dari poster huruf jawa (lihat
lampiran).
2. Huruf jawa carakan jenis cetak yang yang akan dikenali terdiri dari 1 huruf.
3. Hasil pengenalan yang sudah ditentukan di luar huruf jawa akan dikenali, tetapi
hasilnya keliru.
4. Gambar huruf jawa untuk pengujian akan menggunakan variasi rotasi -10o, -5o, 0o, 5o, 10o dan penskalaan 90%, 95%, 100%, 105%, 110%. Variasi rotasi untuk mensimulasikan kamera yang berputar. Variasi penskalaan untuk
mensimulasikan kamera yang naik turun.
5. Menggunakan ekstraksi ciri wavelet Haar.
6. Menggunakan fungsi jarak Euclidean untuk metode pengenalan pola.
7. Hasil pengenalan secara real time.
8. Menggunakan webcam merk Logitech seri C170h yang diletakkan tegak lurus
diatas poster huruf jawa dengan jarak 26cm.
9. Menggunakan software Matlab R2010a dalam pembuatan program.
10. Resizing citra yang digunakan ukurannya bervariasi seperti 64x128, 32x64,
11. Nilai desimasi yang digunakan pada tahap ekstraksi ciri bervariasi seperti 1, 2, 3,
4, 5.
12. Pencahayaan menggunakan dua buah lampu LED 5 watt dengan jarak lampu ke
objek 21 cm.
13. Hasil keluaran berupa teks di layar monitor dengan tambahan suara melalui
speaker.
1.4
Metodologi Penelitian
Berdasarkan pada tujuan yang ingin dicapai metode-metode yang digunakan
dalam penyusunan tugas akhir ini adalah:
1. Pengumpulan bahan-bahan referensi berupa buku-buku dan jurnal-jurnal ilmiah
mengenai pengenalan suatu objek, pemograman matlab, image processing,
Wavelet ,dan Euclidean.
2. Perancangan subsistem software
Tahap ini bertujuan untuk mencari bentuk model yang optimal dari sistem yang
akan dibuat dengan mempertimbangkan berbagai faktor–faktor permasalahan
dan kebutuhan yang ditentukan.
3. Pembuatan subsistem software
Sistem akan bekerja apabila user menekan tombol push button yang sudah
disediakan dalam software. Sebelum user memberikan interupsi untuk memulai
pengenalan huruf jawa jenis cetak. Sistem akan mengolah data yang diterima
dari webcam terlebih dahulu dan mulai menampilkan proses menampilkan video
(record) sampai user memberikan perintah untuk pengambilan gambar
(capture). Kemudian, Matlab akan mengolah huruf jawa jenis cetak dan
menyajikan sebagai sebuah informasi.
4. Analisa data yang pertama dilakukan dengan menyelidiki pengaruh variasi
resizing (ukuran citra) dan desimasi terhadap tingkat pengenalan. Penyimpulan
hasil dilakukan untuk mencari ukuran resizing dan desimasi yang terbaik yang
menghasilkan tingkat pengenalan yang optimal. Analisa data yang kedua adalah
menyelidiki pengaruh penskalaan dan rotasi terhadap tingkat pengenalan.
Penyimpulan akhir dilakukan untuk mengetahui kinerja sistem pengenalan
4
BAB II
DASAR TEORI
2.1
Aksara Jawa
2.1.1. Aksara Carakan
Carakan (abjad Jawa) yang digunakan di dalam ejaan bahasa Jawa pada dasarnya
terdiri atas 20 aksara pokok (lihat gambar 2.1) yang bersifat silabik (bersifat kesukukataan)
[4].
Gambar 2.1 Aksara jawaCarakan
2.2
Pengolahan Citra
Sesungguhnya citra merupakan suatu fungsi intensitas dalam bidang dua dimensi.
Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom,
dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan
intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x, y, dan nilai
amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan
bahwa citra tersebut adalah citra digital. Gambar 2.2 menunjukkan posisi koordinat citra
Gambar 2.2 Koordinat citra digital
Citra digital terdiri dari sejumlah elemen tertentu, setiap elemen mempunyai lokasi
dan nilai tertentu. Elemen–elemen ini disebut picture element, image element, pels dan
pixels. Istilah terakhir (pixel) paling sering digunakan pada citra digital.
2.2.1 Ruang Warna RGB[6]
Ruang warna RGB biasa diterapkan pada monitor CRT dan kebanyakan sistem
grafika komputer. Ruang warna ini menggunakan tiga komponen dasar yaitu merah (R),
hijau (G), dan biru (B). Setiap piksel dibentuk oleh ketiga komponen tersebut. Model RGB
biasa disajikan dalam bentuk kubus tiga dimensi, dengan warna merah, hijau, dan biru
berada pada pojok sumbu (Gambar 2.3). Warna hitam berada pada titik asal dan warna
putih berada di ujung kubus yang berseberangan. Gambar 2.3 memperlihatkan kubus
warna secara nyata dengan resolusi 24 bit. Perlu diketahui, dengan menggunakan 24 bit,
jumlah warna mencapai 16.777.216 [6].
2.2.2 Citra Grayscale
Citra grayscale merupakan citra digital yang hanya memiliki satu nilai kanal pada
setiap pixelnya, dengan kata lain nilai bagian RED = GREEN = BLUE. Nilai tersebut
digunakan untuk menunjukkan tingkat intensitas. Warna yang dimiliki adalah warna dari
hitam, keabuan, dan putih. Tingkatan keabuan di sini merupakan warna abu dengan
berbagai tingkatan dari hitam hingga mendekati putih. Citra grayscale memiliki kedalaman
warna 8 bit (256 kombinasi warna keabuan) [5]. Mengubah citra berwarna menjadi citra
grayscale adalah proses awal yang dilakukan dalam pengolahan citra. Citra RGB diubah
ke dalam grayscale dapat dilakukan dengan menggunakan persamaan (2.1) sebagai
berikut:
=
+ +3 (2.1)
di mana:
R,G,B : Red, Green, Blue
S : nilai grayscale
2.2.3 Cropping dan Resizing
Salah satu jenis transformasi geometri atau perubahan bentuk adalah proses
pemotongan citra (cropping) yang bertujuan untuk mengambil elemen citra yang
diinginkan pada citra digital. Hal ini dilakukan untuk mendapatkan data yang tepat
sehingga memudahkan dalam proses pengolahan data. Gambar 2.4 di bawah ini merupakan
contoh gambar hasil cropping.
Penentuan titik yang akan diambil yaitu menggunakan matrik_titiksudut_crop yaitu yang
merepresentasikan nilai [x,y,a,b] dimana x dan y adalah titik awal (sudut kiri atas) dari
image yang akan dicrop sedangkan a adalah jumlah piksel memanjang kearah sumbu-x dan
b adalah jumlahpiksel ke arah sumbu-y.
Rezising citra adalah proses mengubah besar kecilnya ukuran citra dalam piksel.
Pada tahap ini hanya ukuran pikseldan matriksnya yang dirubah, untuk tampilan citra tidak
ada yang berubah.
2.2.4Transformasi Affine (Affine Transformation)[5]
Metode transformasi Affine ini menggabungkan proses dasar seperti rotasi dan
penskalaan ke dalam satu proses untuk mendapatkan citra output yang diinginkan.. Secara
matematis rumus transformasi Affine adalah sebagai berikut.
2
2 = × 1
1 + (2.2)
Proses penskalaan didapat dengan mengganti nilai A dan B dengan nilai sebagai berikut.
= � 0
0 (2.3)
= 0
0 (2.4)
Sehingga didapatkan rumus pengganti untuk proses penskalaan adalah sebagai berikut.
2 2 =
� 0
0 ×
1 1 +
0
0 (2.5)
Sehingga:
2 2 =
� 0
0 ×
1
1 (2.6)
Rumus diatas menggambarkan sebuah proses linear penskalaan dalam satu proses.
Penskalaan adalah sebuah operasi geometri yang memberikan efek memperbesar
atau memperkecil ukuran citra input sesuai dengan variable penskalaan citranya. Ukuran
baru hasil penskalaan didapat melalui perkalian antara ukuran citra input dengan variable
penskalaan. Proses penskalaan dapat dilakukan dengan rumus:
� = � � (2.7)
= × (2.8) (�, )
50 100 150 200 20
40 60 80 100 120
50 100 150 200
20 40 60 80 100
penskalannya akan memperbesar ukuran citra, sebaliknya apabila variabel pensklaannya
lebih kecil dari 1 maka hasilnya akan memperkecil ukuran citra. Gambar 2.5 berikut ini
menunjukkan hasil implementasi dari proses penskalaan sebesar 64x128.
(a) (b)
Gambar 2.5 Proses penskalaanpada citra potongan huruf. (a ) Citra sebelum penskalaan(b)
citra setelah penskalaan64x128
2.3 Pengenalan Pola
Mengelompokkan data numerik dan simbolik (termasuk citra) secara otomatis oleh
mesin (dalam hal komputer). Tujuan pengelompokan adalah untuk mengenali suatu objek
di dalam citra. Manusia bisa mengenali objek yang dilihatnya karena otak manusia telah
belajar mengklasifikasi objek-objek di alam sehingga mampu membedakan suatu objek
dengan lainnya. Kemampuan sistem visual manusia inilah yang dicoba ditiru mesin.
Komputer menerima masukan berupa citra objek yang akan diidentifikasi, memproses citra
tersebut, dan memberikan keluaran berupa deskirpsi objek di dalam citra.
2.4
Wavelet
2.4.1Wavelet secara umum
Menurut Sydney (1998), Wavelet merupakan gelombang mini (small wave) yang
mempunyai kemampuan mengelompokkan energi citra dan terkonsentrasi pada
sekelompok kecil koefisien, sedangkan kelompok koefisien lainnya hanya mengandung
sedikit energi yang dapat dihilangkan tanpa mengurangi nilai informasinya. Wavelettelah
banyak digunakan di berbagai bidang seperti pengolahan citra. Wavelet biasa digunakan
berlainan. Proses ini dinamakan dekomposisi, dan kemudian mengkaji setiap komponen
dengan suartu resolusi yang sesuai dengan skalanya.Transformasi wavelet merupakan
pengubahan sinyal kedalam berbagai wavelet basis dengan berbagai pergeseran dan
penyekalaan, oleh karena itu koefisien wavelet dari beberapa skala atau resolusi dapat
dihitung dari koefisien wavelet pada resolusi tinggi berikutnya. Hal ini memungkinkan
mengimplementasikan transformasi wavelet menggunakan struktur pohon yang dikenal
sebagai algoritma piramid (pyramid algorithm), bisa dilihat pada gambar 2.6 [7].
kolom
baris +1
kolom
(+1ℎ)
CAj kolom
baris ( )+1
kolom
( )+1
: konvolusikan baris dengan tapis g(n) atau h(n)
: konvolusikan kolom dengan tapis g(n) atau h(n)
: downsampling dengan menjaga kolom yang genap
: downsampling dengan menjaga baris yang genap
Gambar 2.6Algoritma pyramid. Dekomposisi wavelet satu level berdasarkan algoritma
piramid; h(n) adalah tapis pelewat bawah; g(n) adalah tapis pelewat atas;
CAj(LL) adalah koefisien rerata;
(ℎ)
(HL), ( )(LH), dan ( )(HH)
masing-masing adalah koefisien detil horisontal, vertikal dan diagonal kolom
baris
h(n)
g(n)
h(n)
g(n)
h(n)
g(n) 2 1
2 1
1 2
1 2
1 2
1 2
X
X
21 1
Proses dekomposisi tersebut dapat dilakukan sebanyak lebih dari satu kali, yaitu
sebanyak jumlah level yang telah ditentukan sebelumnya. Untuk melakukan dekomposisi
lebih dari satu kali, proses dekomposisi selanjutnya dilakukan dekomposisi pada koeficien
aproksimasi (cA) atau LL, karena berisi sebagian besar dari informasi citra. Kemudian
didapat 4 subband lagi, yaitu LL1, LH1, HL1 dan HH1. Begitu seterusnya hingga
mencapai level yang diinginkan. Sebagai contoh, terdapat citra dengan matriks input
sebagai berikut: = 1 2 5 8 3 2 2 6 2 5 7 4 8 9 7 4
filter lowpass dan filter highpass dengan jenis haar adalah sebagai berikut:
� =
1
2 1
2 0 0
0 0 1 2 1 2 �ℎ � = 1 2 − 1
2 0 0
0 0 1 2 −
1 2
Langkah pertama adalah mengalikan filter lowpass dengan matriks M terhadap
baris. Untuk memudahkan perkalian terhadap baris dilakukan transpose pada matriks M,
sehingga didapat :
= 1 5 2 8 2 7 5 4 3 2 4 6 8 7 9 4
Kemudian dilakukan perkalian matriks MT dengan filter lowpass yang menghasilkan matriks D1T.
D1 T =
1 2
1
2 0 0
0 0 1 2 1 2 × 1 5 2 8 2 7 5 4 3 2 4 6 8 7 9 4
= 2,1213 9,1923 4,9497 7,7781 3,5355 5,6568 12,0207 7,7781
Untuk mengembalikan ke baris dan kolom sebenarnya, dilakukan
1 = 2,1213 3,5355 9,1923 5,6568 4,9497 7,7781 12,0207 7,7781
Langkah selanjutnya adalah melakukan perkalian filter lowpass dengan matriks
D1 terhadap kolom. Proses tersebut menghasilkan matriks D2, sebagai berikut :
2 =
1 2
1
2 0 0
0 0 1 2 1 2 × 2,1213 3,5355 9,1923 5,6568 4,9497 7,7781 12,0207 7,7781
= 8 6,5 9 14
Matriks D2 ini yang disebut dengan koeficien aproksimasi (LL). Untuk mencari
nilai HL, LH dan HH, sama seperti langkah diatas, namun dilakukan dengan mengalikan
filter lowpass terhadap baris dan filter highpass terhadap kolom untuk HL, mengalikan
filter highpass terhadap baris dan filter lowpass terhadap kolom untuk LH dan mengalikan
filter highpass terhadap baris dan kolom untuk HH.
2.4.2Wavelet Haar[5]
Haar adalah wavelet paling tua dan paling sederhana, diperkenalkan oleh Alfred
Haar pada tahun 1909. Koefisien transformasi h0 = (h0(0), h0(1)) =
1 2,
1
2 (tapis low pass)
dan h1 = (h1(0), h1(1)) =
1 2,−
1
2 (tapis high pass) ini merupakan fungsi basis wavelet Haar.
Pada citra, tapis high pass dan tapis low pass dapat direpresentasikan sebagai matriks 2D.
Dekomposisi perataan dan pengurangan yang telah dilakukan sebelumnya sebenarnya
sama dengan melakukan dekomposisi (transformasi) citra dengan wavelet Haar. Kedua
tapis tersebut bersifat ortogonal namun tidak ortonormal. Tapis Haar yang bersifat
ortogonal dan juga ortonormal adalah:
h0 =
1 2 ,
1
2 (2.9)
h1 =
1 2 ,−
1
0 0.5 1 -1
-0.5 0 0.5 1
[image:32.595.82.522.68.593.2]Haar Wavelet
Gambar 2.7 Wavelet Haar
2.4.3 Konvolusi
Konvolusi merupakan sebuah operasi matematika sederhana yang umum digunakan
pada pengolahan citra. Jika ada dua barisan u dan hmaka hasil konvolusinya (y) dinyatakan
dengan persamaan:
= ℎ − (2.11)
∞
=−∞
Di mana Notasi ringkas yang digunakan bagi konvolusi adalah
=
∗ ℎ
atau = ∗ ℎ 2.12)Yang berarti juga bahwa konvolusi adalah komutatif (dapat dipertukarkan), yaitu:
=ℎ ∗ = ∗ ℎ (2.13)
Dengan menggunakan cara matriks, dapat memudahkan dalam perhitungan tersebut
seperti gambar 2.7 merupakan contoh penyelesaian sebuah konvolusi dari dua baris u = {1
Gambar 2.8Representasi matriks dari penjumlahan konvolusi, y = [1 5 14 26 29 21]
Berdasarkan masukan yang diterima dapat digunakan sebagai low pass filter. Low
pass filter dari sinyal x(n) dengan masukan w(n) merupakan suatu proses konvolusi antara
x(n) dengan w(n). Bila sinyal x(n) memiliki panjang yang terbatas, dan juga ujung-ujung
sinyalnya diskontinu, akan memunculkan distorsi pada ujung-ujung sinyal hasil
konvolusinya. Ada suatu metode memperpanjang sinyal x(n) dengan cara sinyal
pengulangan yang disebut periodisasi. Metode ini untuk mengatasi masalah akan sinyal
x(n) yang memiliki panjang terbatas yang diusulkan oleh Misiti et al[9]. Berikut contoh
dari metode tersebut, x(n) = {x(1), x(2), ..., x(M)} yang akan dikonvolusi dengan masukan
w(n)= {w(1), w(2), ..., w(N)}, di mana N adalah bilangan genap, dan M>N, sehingga sinyal
pengulangan dengan cara periodisasi akan menjadi
= { − + 1 ,…, , 1 ,…, , 1 ,…, −1 } (2.20)
Konvolusi sinyal yang diperpanjang xper (n) dengan masukan w(n) akan
menghasilkan sinyal keluaran
= ∗ ℎ( ) (2.14)
atau
= ℎ + 1− (2.15)
di mana M + N– 1 lebih besar dari panjang x(n). Agar sinyal output memiliki panjang yang
sama dengan sinyal input, maka hanya bagian-bagian tertentu dari sinyal output yang
jadi yang dipilihbagian-bagian tertentu dari y(n) adalah
= { + 1 ,…, + } (2.16)
2.5
Jarak Euclidean[6]
Jarak Euclidean dapat dianggap sebagai jarak yang paling pendek antar dua
poin-poin, dan pada dasarnya sama halnya dengan persamaan Pythagoras ketika digunakan di
dalam 2 dimensi. Secara matematis dapat dituliskan di dalam persamaan berikut:
d(i,j)= ( 1− 1)2+ ( 2− 2)2+⋯( − )2 (2.17)
di mana:
d(i,j) : jarak euclidean antara idan j
i : nilai matriks hasil ekstraksi ciri
j : nilai matriks dari database
Dengan d(i,j) adalah titik koordinat jarak Euclidean. Jika rumus jarak pada dua titik
berbentuk segitiga diukur dengan menggunakan rumus Phytagoras, maka untuk penerapan
penghitungan jarak dan kasus yang nyata digunakan rumus jarak Euclidean. Penerapan ini
digunakan karena ada banyak faktor yang menentukan jarak yang nyata seperti kecepatan
dan bentuk permukaan sehingga penerapan jarak Euclidean tersebut lebih cocok diterapkan
pada berbagai kasus.
2.6
Template Matching
Template matching adalah salah satu teknik dalam pengolahan citra digital yang
berfungsi untuk mencocokan tiap-tiap bagian dari suatu citra dengan citra yang menjadi
template (acuan). Teknik ini banyak digunakan dalam bidang industri sebagai bagian dari
quality control. Metode template matching sering digunakan untuk mengindentifikasi citra
karakter huruf, angka, sidik jari (fingerprint) dan aplikasi-aplikasi pencocokan citra
Prinsip metode ini adalah membandingkan antara image objek yang akan dikenali
dengan image template yang ada. Image objek yang akan dikenali,diukur tingkat
kemiripannyadengan masing-masing image template. Pengecekan kemiripan dapat
dilakukan menggunakan fungsi jarak ataupun korelasi. Pengenalan dilakukan dengan
melihat nilai tingkat kemiripan tertinggi dari image objek tersebut[11].
2.7
Matlab[12]
Matlab adalah sebuah bahasa (pemrograman) dengan unjuk kerja tinggi untuk
komputasi teknis, yang mengintegrasikan komputasi, visualisasi, dan pemrograman di
dalam lingkungan yang mudah penggunaannya dalam memecahkan persoalan dengan
solusinya yang dinyatakan dengan notasi matematik.
Nama MATLAB merupakan singkatan dari ‘matrix laboratory’. Sistem MATLAB terdiri dari 5 bagian utama, yaitu:
1. Bahasa (pemrograman) MATLAB
Bagian ini adalah bahasa (pemrograman) tingkat tinggi yang menggunakan
matriks/arraydengan pernyataan aliran kendali program, struktur data,
masukan/keluaran, dan fitur-fitur pemrograman berorientasi objek.
2. Lingkungan kerja MATLAB
Bagian ini adalah sekumpulan kakas dan fasilitas MATLAB yang digunakan oleh
pengguna atau pemrogram. Fasilitas yang dimaksutkan misalnya untuk mengelola
variabel di dalam ruang kerja (workspace) dan melakukan impor dan ekspor data.
Sedangkan kakas yang disediakan untuk pengembangan, pengelolaan, proses
‘debugging’, dan pembuatan profil M-files untuk aplikasi MATLAB. 3. Penanganan Grafik
Bagian ini adalah sistem grafik MATLAB, termasuk perintah-perintah (program)
tingkat tinggi untuk visualisasi data dimensi-2 dan dimensi-3, pengolahan citra,
animasi, dan presentasi grafik. Selain itu, bagian ini juga termasuk
perintah-perintah (program) tingkat rendah untuk menetapkan sendiri tampilan grafik seperti
halnya membuat antarmuka pengguna grafis untuk aplikasi MATLAB.
4. Pustaka (library) fungsi matematis MATLAB
Bagian ini adalah koleksi algoritma komputasi mulai dari fungsi dasar seperti
aritmatika bilangan kompleks; fungsi-fungsi seperti invers matriks, nilai eigan
matriks, fungsi Bessel, dan FFT (fast fourier transform).
5. API (Apllication Program Interface) MATLAB
Bagian ini adalah pustaka (library) untuk menuliskan program dalam bahasa C dan
Fortran yang berinteraksi dengan MATLAB, termasuk fasilitas untuk memanggil
rutin program dari MATLAB (dynamic linking), memanggil MATLAB sebagai
mesin komputasi (computational engine), dan untuk pembacaan serta penulisan
[image:36.595.87.524.103.459.2]MAT-files.
Gambar 2.9Contoh tampilan Matlab
2.8
Webcam
Webcam atau web cameraadalah sebuah kamera video digital kecil yang
dihubungkan ke komputer melalui port USB. Webcam digunakan juga sebagai pengambil
citra/gambar yang akan diolah.Gambar yang diambil oleh WebCam ditampilkan ke layar
monitor, karena dikendalikan oleh komputer maka ada interface atau port yang digunakan
untuk menghubungkan webcamdengan komputer atau jaringan. Ada beberapa orang
mengartikan WebCam sebagai Web pages + Camera, karena dengan menggunakan
WebCam untuk mengambil gambar video secara aktual bisa langsung di upload bila
komputer yang mengendalikan terkoneksi internet [13].
Sebuah web camera yang sederhana terdiri dari sebuah lensa standar, dipasang di
sebuah papan sirkuit untuk menangkap sinyal gambar; casing (cover), termasuk casing
depan dan casing samping untuk menutupi lensa standar dan memiliki sebuah lubang lensa
di casing depan yang berguna untuk memasukkan gambar; kabel support, yang dibuat dari
satu lagi memiliki connector, kabel ini dikontrol untuk menyesuaikan ketinggian, arah dan
sudut pandang web camera.. Gambar 2.9 menunjukkan salah satu contoh webcam.
Gambar 2.10 Contoh webcam
2.9
GUIDE MATLAB[14]
GUIDE atau GUI Builder merupakan sebuah Graphical User Interface (GUI) yang
dibangun dengan objek grafis seperti tombol (pushbutton), edit, slider, text,
combo,sumbu(axes), maupun menu dan lain-lain untuk kita gunakan. Sebagai contoh,
ketikamenggerakkan slider, maka kita dapat melihat perubahan sebuah nilai.
Kemudianketika kita menekan tombol OK, maka aplikasi akan dijalankan. Aplikasi
yangmenggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orangyang
menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimanaperintah bekerja.
Gambar 3.0 merupakan Blank GUI (Default).
18
BAB III
PERANCANGAN
3.1
Gambaran Sistem
Gambaran sistem yang akan dibuat adalah sistem pengenalan huruf jawa jenis cetak
[image:38.595.103.519.246.520.2]secara real time. Secara keseluruhan sistem tersebut dapat dilihat pada gambar 3.1
Gambar 3.1 Gambaran keseluruhan sistem
Sistem pengenalan huruf jawa jenis cetak terdiri dari hardware dan software.
Hardware yang digunakan adalah potongan huruf jawa, fixture, laptop, lampu dan webcam
yang dihubungkan dengan laptop untuk pengambilan citra. Pemrograman Matlab R2010a
merupakan software pada laptop yang berfungsi sebagai user interface dalam proses
pengenalan.
3.1.1 Fixture
Fixture digunakan sebagai alat pemegang serta dudukan webcam dan serpihan
huruf jawa jenis cetak. Fixture yang digunakan terbuat dari kayu. Posisi webcam tegak
lurus dengan posisi potongan huruf jawa jenis cetak agar mendapatkan hasil citra yang
simetris.
Sudut 65o
26cm 26cm
3.1.2 Potongan Huruf Jawa Jenis Cetak
potongan huruf jawa jenis cetak yang digunakan merupakan potongan dari poster,
sesuai dengan poster-poster yang sering digunakan pada umumnya untuk proses
pembelajaran anak sekolahan. Potongan huruf jawa yang digunakan mempunyai ukuran
template 9x5 cm dengan ukuran huruf yang paling besar adalah 6,8x3, dan dapat dilihat
[image:39.595.78.546.189.610.2]pada contoh gambar 3.2.
gambar 3.2 Contoh potongan huruf jawa
3.1.3 WebCam
Webcam yang digunakan adalah webcam merk Logitech seri c 170h, sebagai
perangkat untuk mengambil citra potongan huruf jawa. Pada proses pengambilan citra
menggunakan resolusi 640x480. Spesifikasi webcam dapat diihat pada tabel 3.1.
Tabel 3.1 Spesifikasi Webcam Logitech c 170h
High definition video (HD) VGA
Photo Quality 5 Megapixel
Video Quality Good
Focus Type Always Focused
Auto Light Correction -
3.2
Proses Pengenalan Potongan Huruf Jawa
Proses di mana potongan huruf jawa yang dicapture dikenali bentuknya adalah
proses pengenalan potongan huruf jawa. Secara garis besar proses pengenalan terdiri dari
empat tahap yaitu pengambilan citra, preprocessing, pengenalan, dan keluaran. Proses
Pengambilan citra potongan
huruf jawa
Penentuan keluaran Penghitungan
fungsi jarak
euclidean
Ekstraksi ciri menggunakan
wavelet
Keluaran berupa teks dan suara
Database
potongan huruf
Preprocessing
Gambar 3.3 Blok diagram proses pengenalan potongan huruf jawa.
Citra masukan berupa potongan huruf jawa masuk ke tahapan pengambilan citra,
kemudian tahap preprocessing adalah tahap di mana citra yang telah dikonversi ke dalam
bentuk grayscale akan dicropping sebesar citra potongan huruf jawa, setelah citra
dicropping selanjutnya citra diresizing sesuai dengan ukuran yang diinginkan. Citra yang
telah diresizing menjadi masukan ke tahap selanjutnya adalah tahap pengenalan. Tahap
pengenalan terdiri dari ekstraksi ciri, penghitungan fungsi jarak, dan database citra huruf.
Terakhir dari tahap pengenalan huruf yaitu tahap penentuan keluaran. Hasil pengenalan
huruf ditentukan berdasarkan jarak minimum yang diperoleh setelah proses penghitungan
jarak.
3.2.1 Citra Potongan Huruf Jawa
Citra potongan huruf jawa diambil menggunakan webcam, gambar yang akan
diambil (capture) oleh webcam akan disimpan dalam satu folder. Jarak pengambilan
gambar oleh webcam dengan potongan huruf jawa adalah 21cm dengan sudut kemiringan
65º dan menghasilkan gambar yang fokus. Pada proses ini memakai cahaya sendiri yaitu
dengan menggunakan cahaya dua lampu LED 5 watt yang dipasang pada lampu belajar
agar tidak bergantung pada cahaya sekitar.
Pada proses pengambilan citra, sebelumnya webcam terlebih dulu diinisialisaasi ke
dalam program dengan menggunakan fungsi imaqhwinfo. Fungsi imaqhwinfo bertujuan
untuk mengetahui nama adaptor dalam webcam tersebut. Kemudian diinisialisasi sesuai
nama adaptornya yaitu winvideo dan untuk mengambil citra menggunakan perintah getsnapsot.
Berikut ini merupakan perintah program inisialisasi webcam dan pengambilan citra.
vidobj = videoinput('winvideo',1,'YUY2_640x480'); preview(vidobj);
frame = getsnapshot(vidobj); stop(vidobj)
delete(vidobj)
gambar=yuy2torgb(frame); imshow(gambar)
3.2.2 Tahap Preprocessing
Preprocessing merupakan proses di mana ada tiga tahap yaitu grayscale, cropping,
dan resizing. Secara garis besar dapat dilihat pada gambar 3.4.
Mulai
Input: Citra potongan
huruf
Grayscale
Cropping
Resizing
Output: Citra hasil
Preprocessing
[image:41.595.99.494.214.599.2]Selesai
Gambar 3.4 Diagram alir pemrosesan citra
Tahap grayscale menggunakan perintah program rgb2gray yang berada di dalam
matlab. Fungsinya untuk mengubah citra potongan huruf jawa yang telah diambil menjadi
X: 496 Y: 208 Index: 0.3098 RGB: 0.294, 0.294, 0.294 X: 248 Y: 208
Index: 0.851 RGB: 0.851, 0.851, 0.851
X: 248 Y: 338 Index: 0.8196 RGB: 0.816, 0.816, 0.816
50 100 150 200 20
40 60 80 100 120
[image:42.595.88.523.368.707.2](a) (b)
Gambar 3.5 contoh konversi citra potongan huruf dengan RGB (a) menjadi grayscale (b)
>> a=imread('1.jpg'); >> x=double(rgb2gray(a)); >> gmbr=x/255;
>> imshow(gmbr)
Tahap cropping menggunakan perintah program imcrop I, Δ Δ yang telah disediakan di dalam matlab. Hal tersebut dilakukan untuk memotong bagian citra atau
potongan huruf jawa yang tidak digunakan dalam proses pengenalan. Nilai x dan y adalah
koordinat pada sumbu x dan y kiri atas ditunjukkan pada Gambar 3.6 bagian a, Δ adalah
selisih antara sumbu x kanan atas dengan sumbu x kiri atas ditunjukkan pada Gambar 3.6
bagian b, Δ adalah selisih antara sumbu y kiri bawah dengan sumbu y kiri atas
ditunjukkan pada Gambar 3.6 bagian c. Citra hasil cropping dapat dilihat pada gambar 3.6
bagian d.
)
(a) (b) (c)
(d)
10 20 30 5
10 15
50 100 150 200 20
40 60 80 100 120
20 40 60 80 100120 20
40 60
>> a2=imcrop(gmbr,[248 208 248 130]); >> imshow(a2)
Tahap resizing menggunakan perintah program imresize. Ukuran resizing yang digunakan
akan bervariasi dan ukuran dari ekstraksi ciri wavelet akan menyesuaikan dengan ukuran
resizing yang digunakan. Contoh nilai-nilai pikel yang bervariasi seperti 32x64, 16x32,
8x16. Citra hasil resizing dapat dilihat pada gambar 3.7.
(a) (b) (c)
Gambar 3.7 Contoh resizing pada citra potongan huruf. (a) Citra sebelum diresizing. (b)
citra setelah diresizing 64x128. (c) citra gambar a setelah diresizing 16x32
>> a3=imresize(a2,[64 128]); >> imshow(a3); axis on
3.2.3 Tahap Ekstraksi Ciri
Wavelet adalah ekstraksi ciri yang digunakan dalam tahap pengambilan ciri pada
suatu citra. Wavelet yang digunakan yaitu wavelet Haar yang memiliki 4 macam filter,
tetapi yang digunakan hanya low-pass filter dekomposisi karena hanya bentuk dasar dari
citra yang akan dicari. Wavelet Haar dilakukan dengan menerapkan konvolusi dan low-pas
filter dekomposisi secara simultan untuk mendapatkan sinyal global. Secara keseluruhan
tahap ekstraksi ciri dapat dilihat pada gambar 3.8. Masukan dari proses ekstraksi ciri
adalah citra hasil preprocessing yang kemudian akan dikonvolusi dilanjutkan dengan
tahap downsampling. Output dari ekstraksi ciri tergantung dari jumlah desimasi (N) yang
akan di tentukan oleh user. Tahap ini akan melakukan pengulangan sampai menghasilkan
[image:43.595.77.531.214.502.2]Mulai
Desimasi = N
Output: Hasil ekstraksi ciri
Selesai Input: Citra Hasil Preprocessing
Konvolusi menggunakan
wavelet Haar
Downsampling
N = 0 Tidak
[image:44.595.91.515.67.437.2]Ya N = N - 1
Gambar 3.8 Diagram ekstraksi ciri
Tahap konvolusi merupakan tahap untuk melakukan filtering, menggunakan
decomposition low pass filter Wavelet Haar. Tahap konvolusi ini berada pada bidang
dimensi dua, maka konvolusi diterapkan dua kali yaitu pada kolom dan baris citra input.
Dari masukan berupa citra hasil preprocessing yang kemudian akan dikonvolusi per baris
dan per kolom (lihat gambar 3.9).
Mulai
Selesai Input:
Citra hasil preprocessing
Konvolusi (1D) dengan ekstensi per baris
Konvolusi (1D) dengan ekstensi per kolom
[image:44.595.89.490.421.723.2]Output: Hasil Konvolusi 2D
Tahap downsampling adalah tahap setelah konvolusi, di mana hasil dari konvolusi
merupakan masukan untuk downsampling. Untuk memproses masukan ada dua proses
yaitu menghilangkan baris dan kolom ganjil dengan menjaga baris dan kolom genap
seperti diperlihatkan pada gambar 3.10
Mulai
Selesai Input: Hasil konvolusi 2D Menghilangkan baris ganjil Menghilangkan kolom ganjil
Output:
[image:45.595.96.497.163.531.2]Hasil Downsampling(hasil ekstraksi ciri)
Gambar 3.10 Diagram alir downsampling
3.2.4 Tahap Fungsi Jarak
Tahap fungsi jarak ini adalah tahap membandingkan citra masukan huruf yang
dicapture dengan database huruf yang telah dimasukkan sebelumnya. Dalam sistem ini
yang digunakan yaitu fungsi jarak Euclidean. Jarak euclidean adalah jarak untuk mencari
selisih dari data yang dibandingkan. Hasil dari selisih perbandingan merupakan jarak yang
paling pendek yang kemudian akan digunakan dalam proses selanjutnya yaitu penentuan
Mulai Input:
Hasil Ekstraksi ciri masukan, Ekstraksi ciri database
Penghitungan jarak: Ekstraksi ciri data masukan dengan ekstraksi ciri database
Output:
Hasil perhitungan jarak menghasilkan jarak minimum
[image:46.595.88.512.69.378.2]Selesai
Gambar 3.11 Diagram alir fungsi jarak Euclidean
3.2.5 Penentuan Keluaran
Pada proses penentuan keluaran ini hasil pengenalan potongan huruf jawa
ditentukan berdasarkan selisih perbandingan jarak yang paling pendek yang didapatkan
setelah proses penghitungan jarak. Proses ini adalah bagian sistem terakhir dari proses
pengenalan potongan huruf jawa jenis cetak, dapat dilihat pada gambar 3.12.
Mulai
Input: Hasil perhitungan jarak minimum (r)
Citra keluaran = jarak minimum (r)
Output: Hasil berupa teks dan suara
Selesai
[image:46.595.89.511.342.703.2]3.3
Perancangan Database Huruf
Pada sistem pengenalan huruf jawa jenis cetak ada sebuah penentuan yang
digunakan sebagai acuan dalam pengenalan yaitu database. Database akan dibandingkan
dengan citra masukan huruf yang telah dicapture. Perancangan database pada sistem
pengenalan ini terdiri dari 20 huruf aksara jawa yaitu ha na ca...ba tha nga. Gambar 3.13
menunjukkan blok diagram perancangan database.
Pengambilan citra
Database
potongan huruf Ekstraksi ciri
menggunakan
[image:47.595.82.526.210.632.2]wavelet preprocessing
Gambar 3.13 Blok diagram perancangan database
Dalam penelitian ini, terdapat 14 set database huruf jawa yang dibuat berdasarkan
kombinasi nilai–nilai yang akan dievaluasi. Nilai yang dievaluasi dapat dilihat pada tabel 3.2.
Tabel 3.2 Jumlah kombinasi set database
Dari (pixel) Ke (pixel)
2x4
8x16 2
16x32 3
32x64 4
64x128 5
Jumlah keseluruhan 14
3.4
Huruf Uji
Huruf uji diambil setelah pengguna menekan tombol “Ambil Gambar”. Hasil citra
atau sampel diambil dengan posisi potongan huruf jawa jenis cetak sudah tetap dan
citra potongan huruf jawa jenis cetak, preprocessing, ekstraksi ciri wavelet, dan fungsi
jarak euclidean. Hasil proses tersebut disimpan dan kemudian diproses kembali untuk
mendapatkan hasil pengenalan potongan huruf jawa jenis cetak secara real time.
3.5
Perancangan Tampilan GUI
Tampilan interface pada perancangan sistem pengenalan huruf menggunakan GUI
(Graphical User Interface) matlab yang bertujuan untuk membantu dalam proses
pengenalan huruf. Secara keseluruhan sistem tersebut dapat dilihat pada gambar 3.14.
Camera
Kamera aktif Ambil gambar
Variasi Desimasi
Proses
Preprocessing
Cropping Resizing
Keluaran berupa huruf
Reset
Keluar
Ekstraksi CIri
Hasil wavelet
Page 1
Sketsa Perancangan GUI
Variasi Resizing
Keluaran berupa
[image:48.595.88.523.241.599.2]suara
29
BAB IV
HASIL DAN PEMBAHASAN
Sistem program yang telah dirancang akan dilakukan sebuah pengujian. Dari
pengujian tersebut muncul hasil berupa data-data. Dalam bab ini membahas mengenai
hasil pengujian sistem program tersebut dalam melakukan pengenalan huruf jawa carakan.
Pengujian sisterm perlu dilakukan untuk mengetahui suatu sistem dapat bekerja dengan
baik sesuai dengan perncangan.
4.1
Pengujian Program Pengenalan Huruf Jawa Carakan secara Real
Time
Pengujian sistem program bertujuan untuk mengetahui suatu sistem dapat bekerja
dengan baik sesuai perncangan yang sudah dibuat sebelumnya. Pada pengujian program
menggunakan laptop dengan spesifikasi sebagai berikut:
a. Processor Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz
b. RAM 2 GB
c. Matlab R2010a
d. Tipesistem operasi32 bit
Di bawah ini adalah proses untuk menjalankan program pengenalan huruf aksara
jawa carakan:
[image:49.595.81.529.206.675.2]1. Mengklik dua kali icon Matlab R2010apada layar dekstop seperti gambar 4.1
2. Setelah melakukan langkah 1, akan muncul tampilan awal software Matlab seperti
[image:50.595.96.521.121.587.2]pada gambar 4.2.
Gambar 4.2. Tampilan awal Matlab R2010a
3. Perlu memastikan terlebih dahulu pada Current Directory(1) sebelum membuka
tampilan program utama dari software Matlab, sudah sesuai dengan tempat
penyimpanan program yang telah dirancang.
4. Kemudian ketik mulai pada command window untuk memunculkan tampilan
jendela pengenalan huruf jawa carakan seperti yang ditunjukkan pada gambar 4.3,
klik run untuk menjalankan program.
5. Setelah di run, akan muncul tampilan seperti gambar 4.4.
4.1.1. Tombol Kamera Aktif
Tombol kamera aktif digunakan untuk menghubungkan antara webcam dengan
Matlab dan kemudian ditampilkan ke dalam proses pengenalan huruf jawa carakan. Proses
tombol kamera aktif sebagai berikut:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) imaqhwinfo;
info = imaqhwinfo('winvideo');
vidobj = videoinput('winvideo',1,'YUY2_640x480'); vidobj.FramesPerTrigger = 1 ;
triggerconfig(vidobj, 'manual');
vidRes = get(vidobj, 'VideoResolution'); imWidth = 640;
imHeight = 480;
nBands = get(vidobj, 'NumberOfBands');
hImage = image(zeros(imHeight, imWidth, nBands), 'parent',handles.axes2); preview(vidobj, hImage);
Perintah program imaqhwinfo dijalankan sebelum memulai mengambil data dari
video kamera untuk memastikan adapter kamera terbaca dengan baik. Secara garis besar
perintah program tersebutuntuk menampilkan informasi yang akan disampaikan oleh
webcam dan kemudian informasi tersebut akan diinisialisasi di dalam program agar antara
webcam dengan software Matlab dapat melakukan komunikasi. Dalam proses tersebut
yang tertampil seperti video resolusi, lebar, panjang, port webcam, dan band dari video.
Handle Image telah didapatkan maka perintah program preview dapat berjalan yang
berfungsi untuk menampilkan video pada saat kamera aktif dengan inisialisasi yang telah
digunakan.
4.1.2. Tombol Ambil Gambar
Tombol ambil gambar digunakan untuk meng-capture potongan gambar huruf jawa
carakan yang akan dikenali dalam proses pengenalan citra. Program tombol ambil gambar
sebagai berikut:
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) imaqhwinfo;
info = imaqhwinfo('winvideo');
dev_info = imaqhwinfo('winvideo',1);
vidobj = videoinput('winvideo',1,'YUY2_640x480'); vidobj.FramesPerTrigger = 1 ;
triggerconfig(vidobj, 'manual');
vidRes = get(vidobj, 'VideoResolution'); imWidth = 640 ;
imHeight = 480;
nBands = get(vidobj, 'NumberOfBands');
hImage = image(zeros(imHeight, imWidth, nBands), 'parent',handles.axes2); preview(vidobj, hImage);
Perintah program di atas sama dengan program pada “tombol kamera aktif” tetapi
mengubah warna citra menjadi keabu-abuan. Citra berwarna keabu-abuan karena pada saat
preprocessing citra yang telah dicapture harus mengalami proses grayscale.
start(vidobj); pause(1); trigger(vidobj); stoppreview(vidobj);
capt1=double(getdata(vidobj));
gambar=yuy2torgb1(capt1);
Perintah program getdata adalah untuk capturing citra pada saat webcam dalam
kondisi aktif.
handles.b=gambar;
guidata(hObject,handles) axes(handles.axes2); imshow(gambar)
Citra yang sudah mengalami capturing akan diinisialisasi menggunakan handles agar dapat dipanggil dalam file figure maupun file.m, kemudian akan tampil pada axes2.
4.1.3. Pop-Up Menu
Pop-up menu digunakan untuk memilih variasi ukuran atau nilai yang diinginkan
sebelum melanjutkan ke tombol proses pengenalan. Variasi tersebut terdapat pada pop-up
menu1 dan pop-up menu2.
Perintah program yang digunakan pada pop-up menu1 adalah sebagai berikut:
% --- Executes on selection change in popupmenu3.
function popupmenu3_Callback(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) indeks=get(handles.popupmenu3,'Value');
switch indeks
case 2
des=1;
case 3
des=2;
case 4
des=3;
case 5
des=4;
case 6
des=5;
end
handles.des=des;
Program di atas adalah pemilihan nilai variasi desimasi. Nilai variasi desimasi
diinisialisasi dengan nama “des” yang terdiri dari nilai 1,2,3,4, dan 5. Inisialisasi kata “des”
diubah menjadi “handles.des” agar nilai desimasi yang telah dipilih oleh user dapat
dikenali sebagai bahasa program untuk proses selanjutnya.
Perintah program yang digunakan pada pop-up menu2 adalah sebagai berikut:
% --- Executes on selection change in popupmenu4.
function popupmenu4_Callback(hObject, eventdata, handles) % hObject handle to popupmenu4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) indeks=get(handles.popupmenu4,'Value');
switch indeks
case 2
ukuran=64;
case 3
ukuran=32;
case 4
ukuran=16;
case 5
ukuran=8;
end
handles.ukuran=ukuran; guidata(hObject,handles);
Program pada pop-up menu2 hampirsama dengan program pop-up menu1, yang
membedakan adalah pada pop-up menu2 untuk pemilihan nilai variasi resizing. Nilai
variasi resizing diinisialisasi dengan nama “ukuran”yang terdiri dari nilai 64(64x128),
32(32x64), 16(16x32), dan 8(8x16). Kata “handles” pada program di atas sama dengan di
program pop-up menu1yaituuntukmembuat agar nilairesizing yang telahdipilihuser
dapatdikenalisebagaibahasa program untuklangkahselanjutnya.
4.1.4. Tombol Proses
Tombol proses adalah tombol yang berfungsi untuk menjalankan proses pengenalan
mulai dari processing yang terdiri dari cropping dan resizing, ekstraksi ciri, jarak
Euclidean dan hasil keluaran berupa teks. Tombol proses ini berkaitan dengan yang sudah
dibahas pada bab III pada gambar 3.4 tentang diagram alir pemrosesan citra Berikut
adalah program dari tombol proses:
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO)
% handles structure with handles and user data (see GUIDATA)
ukuran=handles.ukuran; des=handles.des;
if (ukuran==64) &(des==1) load dB1r64d1;
elseif (ukuran==64) &(des==2) load dB1r64d2;
elseif (ukuran==64) &(des==3) load dB1r64d3;
elseif (ukuran==64) &(des==4) load dB1r64d4;
elseif (ukuran==64) &(des==5) load dB1r64d5;
elseif (ukuran==32) &(des==1) load dB1r32d1;
elseif (ukuran==32) &(des==2) load dB1r32d2;
elseif (ukuran==32) &(des==3) load dB1r32d3;
elseif (ukuran==32) &(des==4) load dB1r32d4;
elseif (ukuran==16) &(des==1) load dB1r16d1;
elseif (ukuran==16) &(des==2) load dB1r16d2;