DOKUMENTASI SISTEM TAHAP PERANCANGAN DAN PEMBUATAN SISTEM PENGENALAN AKSARA BALI 3.1. Tempat dan Waktu Penelitian Penelitian mengenai Pengembangan Pola Khusus berbasis Metode Pola Busur Terlokalisasi ini dilakukan di Bali, khususnya di Denpasar, Badung, Tabanan, Gianyar, Klungkung dan Bangli. Waktu pengambilan data tersebut dilaksanakan selama Bulan Juli sampai dengan Agustus 2012 melalui penelitian langsung dilapangan dengan mengambil foto aksara dari sumber buku-buku bacaan Aksara Bali dan Lontar. Pengembangan dan implementasi sistem dilakukan di Laboratorium Komputasi, Jurusan Teknologi Informasi, Fakultas Teknik Uiversitas Udayana Denpasar.
3.2.
Data
3.2.1. Sumber Data Sumber data yang dipakai sebagai sampel Aksara Bali yang digunakan untuk melakukan pembentukan pola model dan pengujian sistem pengenalan karakter ini adalah sebagian diambil dari data citra Aksara Bali dalam penelitian I Komang Gede Suamba Dharmayasa (Dharmayasa, 2009). Sampel Aksara Bali yang digunakan diperoleh dari hasil scan buku ajar Bahasa Bali yang diambil menggunakan segmentasi per blok karakter dan juga dari internet. Pola Model dari Pola Busur Terlokalisasi yang digunakan dalam penelitian ini adalah pola model yang dikembangkan dari bentuk pola busur dan dipilih sesuai dengan frekuensi kemunculan terbanyak khusus untuk citra Aksara Bali, serta pola model pembanding pada saat pengujian unjuk kerja sistem dari Prof. Isao Yoshimura (Yoshimura, 1993) dan AA. Kompiang Oka Sudana (Sudana, 2007).
3.2.2. 1.
Metode Pengumpulan Data Metode Observasi, yaitu pengumpulan data dengan mengadakan penelitian secara langsung pada instansi-instansi yang terkait.
2.
Metode Interview, yaitu pengumpulan data dengan mengadakan wawancara dan tanya jawab secara langsung pada pihak-pihak yang terkait.
1
3.
Metode Studi Literatur, yaitu mengumpulkan data dari buku-buku referensi, modul-modul yang relevan dengan objek permasalahan.
3.3.
Bahasa Pemrograman Bahasa pemrograman yang digunakan pada Penelitian Pengembangan Pola
Khusus berbasis Metode Pola Busur Terlokalisasi ini adalah Borland Delphi 7.2. Perangkat lunak lain yang diperlukan adalah program paket pengolahan citra, dan dipergunakan pada tahapan prapemrosesan seperti Paint Shop Pro.
3.4. Metode Penyelesaian Masalah Langkah-langkah yang dilakukan dalam penelitian ini adalah: 1. Pengumpulan literatur yang berhubungan dengan perancangan dan pembuatan perangkat lunak pengenalan karakter. 2. Mempelajari dan memahami proses yang terjadi dalam perancangan dan pembuatan perangkat lunak pengenalan karakter. 3. Penyusunan perangkat lunak (software). 4. Pengujian perangkat lunak (software). 5. Analisis hasil dan pengambilan kesimpulan.
3.5. Perangkat Pemodelan Sistem
3.5.1
Gambaran Umum Sistem Pengenalan Karakter Aksara Bali
Gambaran Umum Sistem yang dirancang pada sistem ini adalah seperti terlihat pada Gambar 3.1 berikut:
2
Pengembang sistem
Proses pembuatan pola model
Masukan citra karakter Aksara Bali
Masukan citra karakter Aksara Bali
Basisdata pola model
Proses pendaftaran Proses Pencocokan dengan Semua Basisdata Aksara
Keluaran nilai ketidaksamaan terkecil dan ID Aksara
Basisdata acuan
Proses Pencarian Nilai Terkecil Ketidaksamaan
Proses Pengambilan Keputusan
Nilai threshold Laporan hasil pengenalan
Gambar 3.1 Gambaran Umum Sistem Pengenalan Aksara Bali
3.5.2
Pembentukan dan Pemilihan Pola Model Pembentukan pola model baru yang didasarkan pada batasan-batasan dalam
Metode Pola Busur Terlokalisasi untuk Tulisan Jepang dan Tandatangan Latin dengan tujuan untuk mengurangi banyaknya pola model yang digunakan, sehingga waktu proses sistem bisa lebih singkat. Batasan utamanya yaitu lokalisasi permasalahan pada pola model yang didefinisikan di dalam sebuah bujur sangkar kecil berukuran 5 x 5, tetapi pemilihannya berbasis pada sampel Aksara Bali yang dimiliki.
3
3.5.3 Tahapan Pengenalan Karakter Aksara Bali Secara umum dalam pengolahan citra, untuk mendapatkan informasi yang terkandung di dalamnya maka biasanya dilakukan proses-proses pendahulu pada citra tersebut. Setelah itu baru dilakukan proses-proses berikutnya yang berkenaan dengan informasi apa yang diinginkan untuk diolah, demikian juga halnya pada pengenalan Tulisan Bali. Adapun tahapan-tahapan yang dilakukan dalam sistem Pengenalan Karakter Aksara Bali, khususnya Metode Pola Busur Terlokalisasi adalah sebagai berikut: i. Akuisisi data (data acquisition) Akuisisi data merupakan proses pengubahan data dari data analog Aksara Bali, menjadi citra dengan scanner. Citra yang disimpan dalam format file bitmap berupa data kasar dan selanjutnya akan diproses pada tahapan selanjutnya.
ii. Pra pemrosesan (preprocessing) Tahap awal pra pemrosesan ini, jika file bitmap yang dihasilkan pada tahap pengambilan data belum berbentuk dua warna (hitam putih) maka terlebih dahulu dilakukan konversi menjadi data citra dua warna (proses binerisasi), karena citra Aksara Bali yang nantinya diperlukan berupa citra biner. Setelah itu dilakukan eliminasi terhadap data yang tidak diperlukan, guna memastikan bahwa data yang akan diproses pada tahapan berikutnya sudah merupakan data yang sahih.
iii. Ekstraksi ciri (feature extraction) Setelah data tersebut diolah menjadi data jadi pada tahap pra proses, kemudian dilakukan ekstraksi ciri dari citra biner Aksara Bali. Ciri-ciri yang diekstraksi bergantung pada metode yang dipakai dalam proses pembandingan nantinya, yang mana dalam penelitian ini digunakan adalah pola model khusus untuk Aksara Bali dari Metode Pola Busur Terlokalisasi yang mana diantara model pola-polanya terlihat pada Gambar 2.4. Aksara Bali yang telah berbentuk citra biner akan langsung diproses untuk mendapatkan frekuensi kemunculan masing-masing pola. Pola yang memiliki nomor model yang sama tetapi dengan nomor urut
4
berbeda, frekuensi kemunculannya dijumlahkan untuk mendapatkan frekuensi kemunculan dari pola model tersebut. Cara penghitungannya adalah dengan menggerakkan setiap pola model di atas pola biner citra Aksara Bali, sebagai patokan adalah titik yang berbentuk lingkaran penuh. Titik ini digeser secara teratur satu grid ke arah horisontal atau vertikal, sampai semua titik pada citra biner Aksara Bali terlewati. Setiap pergeseran dilakukan pembandingan terhadap ruang yang dilingkupi oleh model tersebut, apakah sama ataukah tidak. Jika sama maka frekuensi kemunculan pola model tersebut ditambahkan. Misalkan citra Aksara Bali dilambangkan dengan f dan terdapat 23 pola model maka citra Aksara Bali tersebut dapat diekspresikan sebagai vektor kolom x berdimensi p, dengan p adalah 23 yaitu sesuai dengan pola model yang ada. Dalam matriks bentuk tersebut dapat dituliskan sebagai berikut : x1 x2 x x 23
.......................................(3.1)
Elemen-elemen x yaitu x1, x2,… x23 adalah frekuensi kemunculan dari masing-masing pola model sesuai dengan nomor modelnya.
iv. Pendaftaran (enrollment) Tahapan pendaftaran Aksara Bali acuan dilakukan dengan mengekstraksi ciri dari beberapa Aksara Bali acuan dan hasil yang diperoleh disimpan pada sebuah file basisdata acuan. Misalkan masing-masing Aksara Bali ke i disebut dengan Pi digunakan sebagai Aksara Bali acuan sebanyak m, maka dari m buah Aksara Bali ini diekstraksi ciri menggunakan Metode Pola Busur Terlokalisasi menghasilkan m buah vektor kolom x berdimensi p, hasil ini dijadikan satu matriks vektor berukuran p x m dengan bentuk sebagai berikut : x11 x12 x1m x 21 x 22 x 2 m Pi xp1 xp 2 xpm
5
………………………(3.2)
Nilai m yang digunakan pada sistem ini adalah 3 Aksara Bali yang diambil dari beberapa buku cetak, dengan pertimbangan bahwa 3 Aksara Bali tersebut diharapkan mampu untuk mewakili variasi yang ada dari sebuah karakter Aksara Bali, di samping itu sistem nantinya bekerja dengan tidak terlalu lambat. Jadi ukuran matriks vektor acuan pada sistem pengenalan ini adalah 23 x 3 untuk 23 pola model serta 42 x 3 untuk 42 pola model. Matriks vektor yang didapatkan disimpan pada basisdata acuan dengan kata kunci nomor identitas Aksara Bali.
v. Pembandingan (comparison) Tahap pembandingan merupakan inti dari keseluruhan proses pengenalan. Pada tahap pembandingan ini, ciri citra Aksara Bali masukan akan dibandingkan dengan ciri acuan yang ada pada basis data. Pada tahap inilah dilakukan perhitungan-perhitungan dari frekuensi yang didapat pada proses ekstraksi ciri. Berdasarkan proses pembandingan tersebut didapatkan nilai ketidaksamaan (dissimilarity measure) masing-masing acuan dengan citra input. Nilai ketidaksamaan atau nilai beda inilah yang digunakan sebagai dasar untuk pengambilan keputusan hasil pengenalan. Basisdata acuan dibaca satu record data acuan karakter. Acuan yang berbentuk matriks p x m ini selanjutnya dihitung rata-rata kemunculan setiap pola model dengan cara : m
xi k 1
xik
m …………………………………………….(3.3)
Nilai-nilai yang dihasilkan yaitu x1/, x2/, … xp/, ditempatkan sebagai elemen vektor kolom x/ berdimensi p, yang merupakan rata-rata acuan. Lalu dicari matriks varians V berdimensi p x p dari acuan dengan persamaan: m
V xj x / xj x / / m ……………....(3.4) t
j 1
Mencari frekuensi kemunculan pola model pada citra karakter yang dibandingkan sama halnya dengan mencari frekuensi pola model acuan. 6
Misalkan Aksara Bali yang dibandingkan disebut Q maka vektor kolom hasilnya adalah xq. Varians V, rata-rata acuan x/ dan vektor kolom xq, digunakan menghitung nilai beda (Yoshimura I. dkk, 1994, hal.61) dengan persamaan sebagai berikut: q
D ( Pi, Q )
( Z Qk Z /k ) 2
k 1
k
p
( Z Qk Z /k ) 2
k q 1
q
Z Qk lkt xQ ……………………………………….
... (3.5)
(3.6)
Z /k l kt x / ………………………………………...(3.7) dengan ketentuan : D(Pi,Q) : nilai ketidaksamaan antara acuan Pi dengan pembanding Q.
: vektor kolom yang berisi nilai eigen dengan urutan menurun (descending order) yaitu (, , …, p)
lk
: vektor eigen yang berbentuk vektor kolom terurut sesuai dengan nilai eigen yang berhubungan.
xQ
: vektor kolom yang berisi frekuensi munculnya pola model pada citra karakter pembanding.
x/
: vektor kolom rata-rata acuan.
t
: transpose.
p
: dimensi vektor kolom
q
: suatu integer dengan syarat 1q p. Konstanta q merupakan nomor pemotongan dari nilai eigen.
vi. Perancangan Basis Data Acuan Perancangan basisdata acuan adalah merupakan proses pembentukan file basisdata yang akan dijadikan acuan pada saat proses pengenalan. Metode yang dipakai dalam pembuatan data acuan mengacu pada metode Leave-One-Out, yang menyarankan pembentukan basisdata dari sampel Aksara Bali yang dimasukkan, menggunakan sebanyak 3 sampai 10 buah Aksara Bali untuk sebuah karakter. Dalam pengerjaan sistem pengenalan ini digunakan 6 buah sampel Aksara Bali untuk masingmasing karakter, dengan perincian : 3 Aksara Bali untuk acuan serta 3
7
Aksara Bali sisanya sebagai pembanding untuk menentukan nilai ambang. Tahap perancangan basisdata acuan terdiri dari dua pokok penting yaitu pendaftaran Aksara Bali acuan dan penentuan nilai ambang batas yang akan disimpan dalam satu record dengan kata kunci nomor identitas. Setelah dilakukan proses pendaftaran tersebut dilanjutkan dengan membandingkan Aksara Bali yang akan dipergunakan untuk menentukan nilai ambang. Berdasarkan hasil pembandingan tiga Aksara Bali ini didapatkan nilai ketidaksamaannya masing-masing. Median dari nilai ketidaksamaan inilah yang disimpan pada basisdata acuan melengkapi frekuensi sampel sebelumnya, dan dipergunakan sebagai nilai ambang (threshold) atau nilai kritis yang dikalikan dengan suatu konstanta Cd. Nilai kritis dilambangkan dengan Cc. Besarnya konstanta pengali nilai kritis untuk keseluruhan sistem ditentukan melalui proses pengujian, yang dipengaruhi oleh prosentase terjadinya kesalahan.
vii. Pengambilan keputusan (decision making) Tahap
ini
bertugas
untuk
memberikan
keputusan
dari
proses
pembandingan yang telah dilakukan. Nilai-nilai ketidaksamaan yang didapatkan pada proses sebelumnya diurutkan. Identitas acuan dengan nilai ketidaksamaan terkecil dan memenuhi nilai ambang batas (thereshold) diputuskan sebagai jenis karakter Aksara Bali yang sesuai dengan citra Aksara Bali yang diinputkan. Jika nilai ketidaksamaan terkecil yang didapatkan masih diatas nilai ambang batas, maka disimpulkan karakter Aksara Bali masukan tersebut tidak dikenali. Nilai ambang batas didapatkan dengan pengujian-pengujian sebelumnya. Apabila d(Pj, Qi) didefinisikan sebagai nilai ketidaksamaan antara Aksara Bali acuan yang dimiliki oleh sebuah karakter Aksara Bali Pj dengan Aksara Bali yang diuji Qi, Ccj adalah nilai kritis yang telah didapat sebelumnya dari sebuah karakter Aksara Bali Pj serta Cd adalah konstanta pengali, maka berlaku hubungan : Jika d(Pj, Qi) Ccj x Cd
maka keputusannya ‘DIKENALI’
Selain itu keputusannya ‘TIDAK TERDAFTAR’.
8
3.6 Perancangan Sistem Perancangan sistem merupakan tahap untuk mentransformasikan berbagai kebutuhan ke bentuk data dan arsitektur program yang akan diimplementasikan pada tahap pembuatan sistem nantinya. Perancangan tersebut meliputi penjelasan dalam bentuk bagan alir proses, serta perancangan struktur data.
3.7.1
Diagram Jackson Sistem Pengenalan Rancangan sistem pengenalan yang berupa struktur program, ditampilkan
dalam Diagram Jackson yang direpresentasikan dalam bentuk struktur diagram dan struktur teks. Adapun struktur diagram sistem pengenalan ini adalah seperti yang terlihat pada Gambar 3.2. Pada struktur diagram sistem pengenalan tersebut terlihat gambaran sistem secara lebih rinci, pendefinisian kebutuhan menu-menu pokok dan modul-modul program yang nantinya diperlukan oleh sistem pengenalan, baik modul-modul yang dijalankan secara iterasi ataupun yang bersifat pilihan. Sistem pengenalan dibagi menjadi dua modul utama yaitu modul PERSIAPAN LINGKUNGAN SISTEM dan modul SISTEM UTAMA. Hal terpenting
yang perlu diperhatikan adalah persiapan lingkungan sistem berupa memasukkan pola model ke file dan setting konstanta mutlak harus ada pada saat sistem untuk pertama kali dijalankan sebelum melakukan pemrosesan terhadap yang lainnya, sedangkan untuk yang kedua kali atau seterusnya file pola model dan konstanta ini bisa diubah melalui menu-menu pada modul sistem utama.
9
SISTEM PENGENALAN
*
PERSIAPAN LINGKUNGAN SISTEM
o
SISTEM UTAMA
o
MASUKAN SETTING POLA MODEL KONSTANTA KE FILE
o
o
PEMBUATAN
UBAH LINGKUNGAN SISTEM
o
o
PENGENALAN
DATA ACUAN
o
MASUKAN POLA MODEL KE FILE
*
SETTING KONSTANTA
PROSES PENGENALAN
BUAT LAPORAN
* PROSES PEMBUATAN BACA CITRA AKSARA
DATA ACUAN
* MASUKAN IDENTITAS AKSARA
CARI FREKUENSI ACUAN
BACA CITRA AKSARA
EKSTRAKSI CIRI
EKSTRAKSI CIRI
* CARI NILAI AMBANG
CARI MEDIAN TULIS KE NILAI FILE ACUAN AMBANG
PEMBANDINGAN
BACA CITRA AKSARA
PENGAMBILAN KEPUTUSAN
EKSTRAKSI CIRI
Keterangan
PEMBANDINGAN
* : iterasi o : pilihan
Gambar 3.2 Struktur Diagram Jackson Sistem Pengenalan
10
Struktur Diagram Jackson sistem pengenalan pada Gambar 3.2 selanjutnya ditulis dalam bentuk struktur teks sebagai berikut : SISTEM_PENGENALAN seq PERSIAPAN_LINGKUNGAN_SISTEM PERSIAPAN_LINGKUNGAN_SISTEM sel (MASUKAN_POLA_MODEL_KE_FILE) MASUKAN_POLA_MODEL_KE_FILE; PERSIAPAN_LINGKUNGAN_SISTEM alt (SETTING_KONSTANTA) SETTING_KONSTANTA; PERSIAPAN_LINGKUNGAN_SISTEM end; SISTEM_UTAMA itr while (UBAH_LINGKUNGAN_SISTEM or PEMBUATAN_DATA_ACUAN or PENGENALAN) SISTEM_UTAMA sel (UBAH_LINGKUNGAN_SISTEM) UBAH_LINGKUNGAN_SISTEM UBAH_LINGKUNGAN_SISTEM sel (MASUKAN_POLA_MODEL_KE_FILE) MASUKAN_POLA_MODEL_KE_FILE; UBAH_LINGKUNGAN_SISTEM alt (SETTING_KONSTANTA) SETTING_KONSTANTA; UBAH_LINGKUNGAN_SISTEM end; SISTEM_UTAMA sel (PEMBUATAN_DATA_ACUAN) PEMBUATAN_DATA_ACUAN c_aksara 1; PROSES_PEMBUATAN_DATA_ACUAN itr while (c_aksara banyak_aksara) MASUKAN_IDENTITAS_AKSARA; c_acuan 1; CARI_FREKUENSI_ACUAN itr while (c_acuan banyak_acuan) BACA_CITRA_AKSARA; EKSTRAKSI_CIRI; CARI_FREKUENSI_ACUAN end; c_banding 1; CARI_NILAI_AMBANG itr while (c_banding banyak_banding) BACA_CITRA_AKSARA; EKSTRAKSI_CIRI; PEMBANDINGAN; CARI_NILAI_AMBANG end: CARI_MEDIAN_NILAI_AMBANG; TULIS_KE_FILE_ACUAN; PROSES_PEMBUATAN_DATA_ACUAN end; PEMBUATAN_DATA_ACUAN end; SISTEM_UTAMA alt (PENGENALAN) RECOGNATION seq AKTIFKAN_DATAAKSARA; PROSES_PENGENALAN itr while (banyak_uji_coba) BACA_CITRA_AKSARA;
11
EKSTRAKSI_CIRI; PEMBANDINGAN; PENGAMBILAN_KEPUTUSAN; PROSES_PENGENALAN end; BUAT_LAPORAN; PENGENALAN end; SISTEM_UTAMA end; SISTEM_PENGENALAN end.
Variabel pembantu dalam struktur teks di atas (c_aksara, c_acuan c_banding) serta konstanta pembantu (banyak_aksara,
banyak_acuan
dan dan
banyak_banding) digunakan untuk menentukan berapa kali pengulangan proses
(iterasi) pada masing-masing modul, yang pada struktur diagram belum terlihat secara jelas. Banyak_aksara adalah banyak aksara yang akan didaftar, banyak_acuan adalah banyak aksara acuan, banyak_banding adalah banyak aksara
pembanding yang dicari median nilai bedanya sebagai nilai ambang.
3.7.2 Bagan Alir Proses Bagan alir diperlukan untuk memperjelas proses-proses yang dilakukan, terutama pada proses pengenalan dan tahap pendaftaran. Langkah-langkah yang dilakukan sehingga bisa menghasilkan suatu keputusan yang dapat mengenali jenis karakter yang diuji, mencakup tahap ekstraksi ciri, tahap pembandingan dan tahap pengambilan keputusan terlihat pada Gambar 3.3 mengenai bagan alir proses pengenalan Aksara Bali. Bagan alir ini sebagai perincian dari langkah-langkah dan perhitungan yang terjadi pada modul Pengenalan. Sedangkan bagan alir yang merupakan perincian dari langkah-langkah serta perhitungan pada modul PEMBUATAN_DATA_ACUAN diperlihatkan dalam Gambar 3.4..
Proses pembandingan baik yang ada pada modul Pengenalan maupun pada tahap pendaftaran (modul PEMBUATAN_DATA_ACUAN) adalah bagian yang paling banyak memerlukan proses perhitungan (persamaannya ada pada Sub Bab 3.3.2). Perhitungan-perhitungan yang dilakukan diantaranya perhitungan untuk mendapatkan frekuensi kemunculan rata-rata (mean frequency), varians, nilai eigen, vektor eigen dan perhitungan nilai ketidaksamaan, sehingga tahap pembandingan dapat menghasilkan laporan tentang nilai ketidaksamaan yang akan dipakai sebagai dasar pengambilan keputusan.
12
Start
Masukkan Aksara Uji Ekstraksi ciri citra Aksara Bali uji Q
Aktifkan data acuan ke i, Pi Hitung frekuensi rata-rata (x/) Hitung varians ( V ) Hitung nilai eigen (), vektor eigen (l) serta urutannya secara menurun
Hitung ketidaksamaan D(Pi,Q) Simpan di Array Nilai Ketidaksamaan Aksara uji Q Ya
Tidak
Record Terakhir ?
Inc(i)
D(Pi,Q) Cci x Cd
Proses Pencarian Nilai D(Pii,Q) Terkecil
Ya
Hasil uji Q “Dikenali Sebagai aksara ke-i”
Tidak
Hasil uji Q “Tidak Terdaftar”
Ya
Uji lagi ? Tidak
Laporan Gambar -
3.3
daftar hasil daftar D(Pi,Q) waktu proses
Stop
Gambar 3.3. Bagan alir proses pengenalan Aksara Bali
13
Start m=0 t=0 Masukkan Nomor Id
Ya
Id sudah terdaftar ? Tidak
Masukkan nama Aksara Bali Aktifkan citra Aksara Bali Acuan Inc(m) Tidak
Baca citra
m>3 Ya
Ekstraksi ciri, simpan ke array Pid[m]
Hitung frekuensi rata-rata (x/) dari Pid Hitung varians ( V ) Hitung nilai eigen (), vektor eigen (l) serta urutannya secara menurun Inc(t) Tidak
Baca citra
t>3 Ya
Ekstraksi ciri Aksara Bali ke-t+3
Cari median dari D(Pid,Qt) sebagai nilai ambang (Ccid)
Hitung nilai ketidaksamaan D(Pid,Qt)
Tulis Pid ke file basis data
acuan Ya
Mendaftarkan Aksara Bali baru lagi?
Tidak
Stop
Gambar 3.4 Bagan alir tahap pendaftaran
14
3.6.3. Struktur Data Melihat rancangan sistem yang ada maka selanjutnya disiapkan struktur data dari rancangan sistem pengenalan yang nantinya dipergunakan pada saat implementasi ke dalam bentuk program berbasis Borland Delphi. Adapun struktur data utama dari program sistem pengenalan ini adalah sebagai berikut : TModelPattern = record Nomor : byte; //nomor pola Model : byte; //nomor model Pattern : array[0..4,0..4] of byte; //pola model 5x5 end; TArrModelPattern = array [1..DimVector] of TModelPattern;
Struktur “TModelPattern” dipakai sebagai struktur record dari file pola model dan disimpan dalam struktur array “TArrModelPattern”. Besarnya array yang dialokasikan untuk struktur “TArrModelPattern“ adalah sebanyak jumlah maksimum pola model yang ada, dalam hal ini diwakili oleh konstanta “DimVector”. THuruf = record IdNumber : word; Name : string[35]; Freq :array[1.. DimVector,1..6] of word; RefFileName : string[70]; ADis : array[1..3] of real; Critical : real; end; Person : THuruf; FileReference : file of THuruf;
Struktur “THuruf” dipakai sebagai struktur record dari variabel “Huruf“ yang berisi data masing-masing karakter Aksara Bali, selanjutnya nanti juga akan dipergunakan sebagai struktur record dari variabel file basisdata acuan. Struktur “THuruf” ini berisi nomor identitas, nama karakter Aksara Bali, frekuensi kemunculan pola model dari 3 Aksara Bali acuan, nama file beserta directory dari lokasi penyimpan file citra acuan, nilai ketidaksamaan yang dihasilkan dari 3 Aksara Bali pembanding yang dipakai untuk mencari nilai ambang, serta nilai ambang terpilih yang dicari dari median ketiga nilai ketidaksamaan Aksara Bali tersebut. TPosGambar = record AwalX, AkhirX, AwalY, AkhirY : integer; end;
15
Struktur “TPosGambar” merupakan struktur variabel dari posisi koordinat pojok masing-masing citra Aksara Bali. Struktur data pendukung yang diperlukan dalam proses-proses perhitungan maupun penyimpanan data adalah sebagai berikut: TFrequency = array[1.. DimVector] of word;
Struktur “TFrequency” merupakan struktur variabel penyimpan frekuensi kemunculan masing-masing pola model dari hasil ekstraksi ciri Aksara Bali. TMeanFrequency = array[1.. DimVector] of real;
Struktur “TMeanFrequency” merupakan struktur variabel penyimpan nilai ratarata kemunculan setiap pola model dari ekstraksi ciri beberapa Aksara Bali acuan. TFreqMinMean = array[1.. DimVector,1..Number] of real;
Struktur “TFreqMinMean” merupakan struktur variabel penyimpan nilai frekuensi kemunculan masing-masing pola model dari setiap Aksara Bali acuan yang telah dikurangi dengan frekuensi rata-rata yang bersesuaian, juga merupakan struktur dari variabel yang menyimpan perhitungan nilai eigen. TVariance = array[1.. DimVector,1.. DimVector] of real;
Struktur “TVariance” merupakan struktur dari variabel penyimpan hasil perhitungan varians dan vektor eigen.
TGambar = array[1..SignHeigh,1..SignWidth] of byte;
Struktur “TGambar” merupakan struktur variabel penyimpan nilai pola biner dari setiap piksel citra Aksara Bali, yang dalam hal ini bernilai 0 untuk piksel berwarna putih dan bernilai 1 untuk piksel berwarna hitam. Konstanta “SignHeigh” dan “SignWidth” adalah ukuran ruang pembatas Aksara Bali, yang dalam hal ini nilai konstanta tersebut masing-masingnya adalah 140 piksel dan 165 piksel. TSort = array[1.. DimVector] of byte;
Struktur “TSort” merupakan struktur variabel penyimpan hasil pengurutan dari frekuensi kemunculan pola model.
16
3.7
Pembuatan Sistem Pembuatan sistem merupakan tahap pengembangan dan implementasi dari
rancangan sistem yang telah dibuat sebelumnya menjadi suatu sistem pengenalan Aksara Bali dalam bentuk program komputer. Tahapan ini meliputi penentuan kebutuhan sistem dan pemrograman yang di dalamnya.
3.7.1
Kebutuhan Sistem Pembuatan sistem pengenalan Aksara Bali yang intinya pengembangan
rancangan sistem sebelumnya melalui pemrograman komputer, memerlukan perangkat-perangkat pendukung berupa perangkat keras (hardware) dan perangkat lunak (software) yang dibutuhkan agar sistem dapat bekerja dengan baik. Kebutuhan-kebutuhan tersebut dijelaskan sebagai berikut. 3.7.1.1 Kebutuhan Perangkat Keras Spesifikasi komputer yang digunakan untuk mengembangkan maupun pengujian sistem pengenalan ini adalah prosesor Intel Core i5 M 450 @2.40 GHz, dengan memori SDRAM 2 GB dan kapasitas harddisk 500 GB. 3.7.1.2 Kebutuhan Perangkat Lunak Sistem pengenalan ini dikembangkan dalam lingkungan sistem operasi Microsoft Windows 7 ultimate. Pemilihan sistem operasi tersebut didasarkan atas pertimbangan bahwa sistem pengenalan Aksara Bali secara baik hanya dapat diimplementasikan dalam modus grafik. Microsoft Windows 7 ultimate merupakan suatu sistem operasi berbasis grafik yang banyak menjadi pilihan saat ini. Dalam lingkungan Windows, pembuatan antar muka grafis dapat dilakukan dengan lebih mudah. Di samping itu Windows 7 ultimate juga mendukung bahasa pemrograman yang dipakai mengembangkan sistem ini yaitu Borland Delphi 7.0. Perangkat lunak lain yang diperlukan adalah program paket pengolahan citra, dan dipergunakan pada tahapan prapemrosesan. Dalam pengerjaan penelitian ini perangkat lunak paket pengolahan citra yang dipergunakan adalah Paint Shop Pro.
17
3.7.2 Pemrograman Aspek pemrograman yang dibuat dalam sistem pengenalan Aksara Bali ini meliputi implementasi struktur program yang telah dirancang ke dalam kode-kode bahasa pemrograman. Implementasi pemrogramannya menggunakan perangkat lunak Borland Delphi 7.0, yaitu perangkat lunak pemrograman visual yang dijalankan di bawah sistem operasi Windows, dengan bahasa pemrograman berbasis Pascal. 3.7.2.1 Konstanta dan Variabel Global Konstanta-konstanta beserta nilainya yang digunakan pada keseluruhan program dari sistem verifikasi ini adalah sebagai berikut: MaxHuruf = 255; DimVector23 = 23; DimVector42 = 42; JumModel23 = 23; JumModel42 = 52; Number = 3; DefaultQi = 3; DefaultReferName = 'R2331.Dat'; PatternName23 = 'Model23.Dat'; PatternName42 = 'Model42.Dat'; DefPartName DefaultCd = SignWidth = SignHeigh =
= 'Aksara1.Dat'; 3; 165; 140;
Variabel global merupakan variabel yang dideklarasikan di luar semua fungsi dan prosedur yang ada, sehingga ia dapat diakses (dibaca, ditulisi atau diubah) oleh fungsi dan prosedur apapun
yang ada dalam
program itu. Adapun variabel-variabel global yang dipakai dalam sistem pengenalan ini adalah : FileReference : file of THuruf; Person : THuruf; ArrModelPattern : TArrModelPattern; Berubah : Boolean; Cd : Real; Qi : Integer; FParticipantName, FReferName, FPatternName String; FilePattern : File Of TModelPattern;
18
:
Error, CountPattern, CounterList, PrevCounterList : byte; PosGambar : Array[1..9] of TPosGambar; awalX,awalY,akhirX,akhirY : Integer; DefDirectory : String; EnrollLoad : Boolean; PrMeanFreq, PrEigenValue: TMeanFrequency; PrVariance,PrEigenVector : TVariance; PrSort : TSort; JumPattern : Byte; //banyaknya keseluruhan pola DimVector : Byte; //banyaknya model ArrHuruf : Array[1..MaxHuruf] of THuruf; BanyakHuruf : Byte; Participant : TParticipant; FileParticipant : File Of TParticipant;
3.7.2.2 Form Utama Window Form adalah tempat di mana semua komponen visual dan komponen non visual diletakkan untuk membentuk sebuah aplikasi. Bagian yang tak terpisahkan dari form adalah unit yang berhubungan langsung dengan form tersebut. Unit berisi deklarasi tipe data, fungsi dan prosedur. Rancangan form utama dari sistem pengenalan ini diberi nama FUtama.frm adalah seperti terlihat pada Gambar 3.5 dengan unit bernama Sign1.pas. Dalam form utama ini berisi menu dalam bentuk tombol-tombol (push button menu) yang diperlukan oleh pengguna dalam menjalankan sistem pengenalan serta memanggil form-form lainnya, juga sebagai tempat berlangsungnya sebagian besar proses.
19
1b
Grup 1
1a
Grup 4 1c 1d
1e
Grup 3 Grup 2
3a
2a
2c
2d
2b
Gambar 3.5 Tampilan Form Utama sistem pengenalan Selanjutnya diuraikan mengenai keterangan masing-masing nomor dan tombol-tombol pada tampilan Gambar 3.5 beserta beberapa baris penting dari fungsi atau prosedur pendukungnya.
Grup 1 Grup 1 merupakan panel yang digunakan untuk melakukan proses pengenalan sebuah aksara uji serta menampilkan hasilnya, juga menampilkan citra aksara yang sedang aktif. 1.
Nomor 1a adalah panel yang digunakan untuk menampilkan nama file citra aksara aktif.
2.
Nomor 1b adalah tempat menampilkan citra aksara aktif.
20
3.
Nomor 1c adalah tempat menampilkan hasil pengenalan, yaitu “Huruf ke-K” untuk aksara yang dikenali atau “Tidak Terdaftar” untuk huruf
yang tidak dikenali oleh sistem. 4.
Nomor 1d adalah tempat untuk menampilkan nilai beda dari hasil pengenalan.
5.
Nomor 1e adalah tempat menampilkan waktu proses.
6.
Tombol Proses digunakan untuk menjalankan proses pengenalan terhadap aksara aktif. Adapun program yang dijalankan adalah :
procedure TFUtama.SBVerifyClick(Sender: TObject); var Beda : Real; S : String; WaktuMulai, WaktuSelesai : TDateTime; JamMulai, JamSelesai, Menit, Detik, MDetik : Word; MDetikMulai, MDetikSelesai, TotalWaktu : Double; i : byte; ArrayBeda : TArrBeda; Gambar : TGambar; Hurufke : Byte; begin //FVerificate.Show; FGauge.Height := 134; FGauge.Gauge1.Progress := 0; FGauge.Show; FGauge.Refresh; WaktuMulai := Time; Gambar := BacaHuruf; for i := 1 to BanyakHuruf do Begin {Mencari Variance, EigenVektor, EigenValue dan MeanFrek} Person := ArrHuruf[i]; PrMeanFreq := CountMeanFrequency(Person); PrVariance := CountVariance(PrMeanFreq,Person); EigenSort(PrVariance,PrEigenVector,PrEigenValue,PrSort; ArrayBeda[i] := Recognice(Gambar) End; Hurufke := Terkecil(ArrayBeda); WaktuSelesai := Time; Fgauge.Close; FGauge.Height := 238; If ArrayBeda[Hurufke] <= Cd * ArrHuruf[Hurufke].Critical Then Begin ST_Status.Font.Color := clBlue; Str(ArrayBeda[Hurufke],S); ST_Dissimilarity.Caption := S; Str(Hurufke,S); ST_Status.Caption:='(' + S + ')' + ArrHuruf[Hurufke].Name;
21
End Else Begin ST_Status.Font.Color := clRed; Str(ArrayBeda[Hurufke],S); ST_Dissimilarity.Caption := S; Str(Hurufke,S); ST_Status.Caption := '(' + S + ')' + ' Tidak Terdaftar' ; End; //Hitung waktu proses DecodeTime(WaktuMulai,JamMulai,Menit,Detik,MDetik); MDetikMulai :=((JamMulai*60+Menit)*60 + Detik)*1000 + MDetik; DecodeTime(WaktuSelesai,JamSelesai,Menit,Detik,MDetik); If JamSelesai >= JamMulai Then MDetikSelesai:=((JamSelesai*60+Menit)*60+Detik)*1000+MDetik Else //antisipasi melewati jam 12 MDetikSelesai:=(((JamSelesai+12)*60+Menit)*60+Detik)*1000 MDetik; TotalWaktu := MDetikSelesai - MDetikMulai; ST_Time.Caption := ' ' + FloatToStr(TotalWaktu) + ' Milli Second'; end;
Grup 2 Grup 2 adalah panel untuk tempat memilih Aksara Bali yang akan dikenali, baik nama file, filter, drive, maupun directory citra Aksara. 1.
Nomor 2a adalah filter combo box, yang digunakan untuk menyaring file-file yang ditampilkan yaitu file-file citra yang penamaannya disesuaikan khusus untuk citra Aksara Bali pada penelitian ini, filter tersebut adalah : All Bitmap File (*.bmp), adalah filter untuk semua nama file citra bitmap.
2.
Nomor 2b
adalah
file list box
yang digunakan
untuk
tempat
menampilkan nama-nama file citra yang telah disaring menurut filter yang telah dipilih, dari nama-nama file ini dipilih Aksara Bali mana saja yang akan dikenali. 3.
Nomor 2c adalah drive combo box yang digunakan untuk memilih drive.
4.
Nomor 2d adalah directory list box yang digunakan sebagai tempat untuk memilih direktori.
5.
Tombol Select digunakan untuk memilih nama file yang akan dikenali.
22
Grup 3 List of Selected Files Grup 3 adalah panel untuk tempat menampilkan daftar Aksara bali yang telah dipilih dan akan dikenali, beserta tombol-tombol untuk mengurangi pilihan dan melihat hasil pengenalan. 1.
Nomor 3a adalah obyek list box, yang digunakan untuk menampung nama-nama file citra Aksara Bali terpilih yang akan dikenali.
2.
Tombol Verify List digunakan untuk menjalankan proses pengenalan terhadap file-file citra Aksara Bali yang ada dalam daftar dan selanjutnya menampilkan hasilnya dalam form FRptGroup.frm. Adapun program yang dijalankan adalah sebagai berikut :
procedure TFUtama.SBVerifyListClick(Sender: TObject); var i,j,k, HurufKe : byte; S : String; Beda : Real; WaktuMulai, WaktuSelesai : TDateTime; JamMulai, JamSelesai, Menit, Detik, MDetik : Word; MDetikMulai, MDetikSelesai, TotalWaktu : Double; Gambar : TGambar; ArrayBeda : TArrBeda; begin FGauge.Gauge1.Progress := 0; FGauge.Gauge2.Progress := 0; FGauge.Label4.Caption := IntToStr(CounterList); FGauge.Show; FGauge.Refresh; For i := 0 To PrevCounterList-1 Do For j := 0 To 3 Do FRptGroup.StringGrid1.Cells[j,i] := ''; WaktuMulai := Time; For i := 1 To CounterList Do Begin Image1.Picture.LoadFromFile(ListBox2.Items[i-1]); Gambar := BacaHuruf; for k := 1 to BanyakHuruf do Begin {Mencari Variance,EigenVektor,EigenValuedan MeanFrek} Person := ArrHuruf[k]; PrMeanFreq := CountMeanFrequency(Person); PrVariance := CountVariance(PrMeanFreq,Person); EigenSort(PrVariance,PrEigenVector,PrEigenValue, PrSort); ArrayBeda[k] := Recognice(Gambar) End; Hurufke := Terkecil(ArrayBeda); FRptGroup.StringGrid1.Cells[0,i-1] := IntToStr(i); FRptGroup.StringGrid1.Cells[1,i-1] := ListBox1.Items[i-1]; Str(ArrayBeda[Hurufke],S); FRptGroup.StringGrid1.Cells[2,i-1] := S;
23
Str(Hurufke,S); If ArrayBeda[Hurufke]<= Cd*ArrHuruf[Hurufke].Critical Then FRptGroup.StringGrid1.Cells[3,i-1] := '(' + S + ')' + ArrHuruf[Hurufke].Name Else FRptGroup.StringGrid1.Cells[3,i-1] := '(' + S + ')' + ' Tidak Terdaftar'; FGauge.Gauge2.Progress := (i*100) div CounterList; End; WaktuSelesai := Time; Fgauge.Close; PrevCounterList := CounterList; //Hitung waktu proses DecodeTime(WaktuMulai,JamMulai,Menit,Detik,MDetik); MDetikMulai :=((JamMulai*60+Menit)*60 + Detik)*1000 + MDetik; DecodeTime(WaktuSelesai,JamSelesai,Menit,Detik,MDetik); If JamSelesai >= JamMulai Then MDetikSelesai := ((JamSelesai*60+Menit)*60+Detik)*1000 +MDetik Else //antisipasi melewati jam 12 MDetikSelesai :=(((JamSelesai+12)*60+Menit)*60+ Detik)*1000 + MDetik; TotalWaktu := MDetikSelesai - MDetikMulai; FRptGroup.STVer.Caption := ' ' + IntToStr(CounterList); FRptGroup.STTime.Caption := ' ' + FloatToStr(TotalWaktu) + ' Milli Second'; SBResult.Enabled := True; FRptGroup.Position := poScreenCenter; FRptGroup.ShowModal; end;
Tombol New List digunakan untuk mengosongkan daftar nama file
1.
yang ada pada obyek list box nomor 3a. Tombol Unselect digunakan untuk membuang nama file citra Aksara
2.
Bali yang ditunjuk pada obyek list box nomor 3a. Tombol Result digunakan untuk melihat kembali daftar hasil
3.
pengenalan yang telah dilakukan sebelumnya dengan memanggil form FRptGroup.frm. Grup 4 Grup 4 merupakan panel tempat tombol-tombol perintah umum yang digunakan dalam sistem pengenalan ini. Adapun tombol-tombolnya adalah : 1.
Tombol About digunakan untuk memanggil form FSignAbout.frm yang berisi informasi tentang sistem pengenalan.
24
2.
Tombol Setting digunakan untuk memanggil form FSetEnv.frm yang berisi tempat untuk mengubah nilai variabel lingkungan sistem.
3.
Tombol Enrollment
digunakan
untuk
memanggil
form
FEnrollGroup.frm yang merupakan tempat pendaftaran aksara baru. 4.
Tombol Browse digunakan untuk memanggil form FBrowse.frm yang berisi nama-nama aksara yang telah terdaftar pada basisdata acuan.
5.
Tombol New Model digunakan untuk memasukkan pola model baru ke file referensi melalui pemanggilan form FModel.frm.
6.
Tombol Show Model digunakan untuk menampilkan pola model referensi yang telah ada melalui pemanggilan form FModel.frm.
7.
Tombol Exit digunakan untuk keluar dari sistem pengenalan.
Selain fungsi dan prosedur yang telah dipaparkan di atas, juga ada beberapa fungsi dan prosedur penting lainnya dalam unit Sign1.pas ini. Fungsi dan prosedur tersebut diantaranya : Rutin untuk menghitung nilai eigen serta vektor eigen procedure ROTATE(s, tau : real; var ATemp : TVariance; i,j,k,l : integer); var g, h : real; begin g := ATemp[i,j]; h := ATemp[k,l]; ATemp[i,j] := g-s*(h+g*tau); ATemp[k,l] := h+s*(g-h*tau); end; procedure Jakobi(A :TVariance;var V : TVariance; var D:TMeanFrequency); var B,Z : array[1..DimVector67] of real; ip,iq, i, j : integer; sm,tresh,theta,t,c,s,tau,g,h : double; begin for ip := 1 to DimVector do begin for iq := 1 to DimVector do V[ip,iq] := 0; V[ip,ip] := 1; B[ip] := A[ip,ip]; D[ip] := A[ip,ip]; Z[ip] := 0; end; for i := 1 to 50 do begin sm := 0; for ip := 1 to DimVector-1 do
25
for iq := ip+1 to DimVector do sm := sm + abs(A[ip,iq]); if sm = 0 then exit; if i < 4 then tresh := 0.2*sm/(DimVector*DimVector) else tresh := 0; for ip := 1 to DimVector-1 do begin for iq := ip+1 to DimVector do begin g := 100 * abs(A[ip,iq]); if ((i>4) and ((abs(d[ip])+g) = abs(d[ip])) and ((abs(d[iq])+g) = abs(d[iq]))) then A[ip,iq] := 0 else if abs(A[ip,iq]) > tresh then begin h := d[iq]-d[ip]; if ((abs(h)+g) = abs(h)) then t := A[ip,iq]/h else begin theta := 0.5*h/A[ip,iq]; t := 1/(abs(theta)+sqrt(1+theta*theta)); if theta < 0 then t := -t; end; c := 1/sqrt(1+t*t); s := t*c; tau := s/(1+c); h := t*A[ip,iq]; Z[ip] := Z[ip] - h; Z[iq] := Z[iq] + h; D[ip] := D[ip] - h; D[iq] := D[iq] + h; A[ip,iq] := 0; for j := 1 to ip-1 do ROTATE(s,tau,A,j,ip,j,iq); for j := ip+1 to iq-1 do ROTATE(s,tau,A,ip,j,j,iq); for j := iq+1 to DimVector do ROTATE(s,tau,A,ip,j,iq,j); for j := 1 to DimVector do ROTATE(s,tau,V,j,ip,j,iq); end; end; end; for ip := 1 to DimVector do begin b[ip] := b[ip] + z[ip]; d[ip] := b[ip]; z[ip] := 0; end; end; ShowMessage('error : terlalu banyak iterasi'); end; procedure Eigensort(A : TVariance; var V : TVariance; var D : TMeanFrequency; var Urut : TSort); var i,j,k,temp : integer; pe : real; TD : TMeanFrequency; begin for i:= 1 to DimVector do begin D[i] := 0; Urut[i] := i; end; Jakobi(A,V,D);
26
TD := D; for i := 1 to DimVector do begin pe := TD[i]; k := i; for j := i+1 to DimVector do if TD[j] >= pe then begin pe := TD[j]; k := j; end; if k <> i then begin TD[k] := TD[i]; TD[i] := pe; temp := Urut[i]; Urut[i] := Urut[k]; Urut[k] := temp; end; end; end;
Prosedur untuk menghitung frekuensi kemunculan pola model procedure CountFrequency(var Freq:TFrequency; Gambar : TGambar); var i,j,x,y : integer; CountPattern : byte; cocok : boolean; awalX_L, awalY_L,akhirX_L, akhirY_L : byte; begin awalX_L := 1; awalY_L := 1; akhirX_L := SignHeigh; akhirY_L := SignWidth; for i := 1 to DimVector do freq[i] := 0; for CountPattern := 1 to JumPattern do begin ModelPattern := ArrMOdelPattern[CountPattern]; for x := (awalX_L-4) to (akhirX_L - 4) do for y := (awalY_L-4) to (akhirY_L - 4) do begin i := 0; cocok := true; repeat inc(i); j := 0; repeat inc(j); if ((i+x-1)
0 then cocok := false; end else if ModelPattern.Pattern[i-1,j-1] <> gambar[i+x-1,j+y-1] then cocok := false; until (cocok = false) or (j = 5); until (cocok = false) or (i = 5); if (cocok = true) and (i=5) and (j=5) then inc(Freq[ModelPattern.Model]); end;
27
FGauge.Gauge1.Progress := CountPattern; end; end;
Rutin untuk menghitung matriks varians function CountMeanFrequency(sampel: TPersonSign) : TmeanFrequency; var i : integer; bantu : word; Mi : byte; begin for i := 1 to DimVector do begin bantu := 0; for Mi := 1 to Number do bantu := bantu + sampel.freq[i,Mi]; CountMeanFrequency[i] := bantu / number; end; end; function CountFreqMinMean(Mean : TMeanFrequency; Pr : TPersonSign) : TFreqMinMean; var i,j : integer; begin for i := 1 to Number do for j := 1 to DimVector do CountFreqMinMean[j,i] := Pr.Freq[j,i];//-Mean[j]; end; function CountVariance(Mean : TMeanFrequency; Pr : TpersonSign): TVariance; var Bantu : TVariance; i,j,k : integer; temp : real; vector : TFreqMinMean; begin Vector := CountFreqMinMean(Mean,Pr); for i := 1 to DimVector do for j := 1 to DimVector do begin Temp := 0; for k := 1 to Number do Temp := Temp + Vector[i,k]*Vector[j,k]; Bantu[i,j] := Temp/Number; end; CountVariance := Bantu; end;
Rutin untuk menghitung nilai ketidaksamaan function CountZ1(L : TVariance; k : integer; X : TFrequency; Urut : TSort) : real; var bantu : real; i : integer; begin bantu := 0; for i := 1 to DimVector do bantu := bantu + L[i,Urut[k]]*X[Urut[i]]; CountZ1 := bantu;
28
end; function CountZ2(L : TVariance; k : integer; X : TMeanFrequency; Urut : TSort) : real; var bantu : real; i : integer; begin bantu := 0; for i := 1 to DimVector do bantu := bantu + L[i,Urut[k]]*X[Urut[i]]; CountZ2 := bantu; end; function CountDissimilarity (L : TVariance; Lamda, XMean : TMeanFrequency; X : TFrequency; Urut : TSort) : real; var dis1, dis2 : real; k : integer; begin dis1 := 0; for k := 1 to qi do begin if Lamda[Urut[k]] <> 0 then dis1 := dis1 + (SQR(CountZ1(L,k,X,Urut)countZ2(L,k,XMean,Urut))/Lamda[Urut[k]]) else begin if error <> 2 then Error := 1; exit; end; end; dis2 := 0; for k := qi+1 to DimVector do dis2 := dis2 + (SQR(CountZ1(L,k,X,Urut)countZ2(L,k,XMean,Urut))/Lamda[Urut[qi]]); CountDissimilarity := dis1 + dis2; end;
Rutin pengenalan Function BacaHuruf : TGambar; var i,j : byte; Gambar : TGambar; Begin for i := 1 to SignHeigh do for j := 1 to SignWidth do Gambar[i,j] := 0; for i := 0 to SignHeigh-1 do for j := 0 to SignWidth-1 do Begin if FUtama.Image1.Canvas.Pixels[j,i] (clWhite div 3)) Then Gambar[i+1,j+1] := 0 else Gambar[i+1,j+1] := 1; End; BacaHuruf := Gambar; End; Function Recognice(Gambar : TGambar) : Real; Var FreqCounterSign : TFrequency;
29
>=
(clWhite
-
Begin CountFrequency(FreqCounterSign,Gambar); Recognice := CountDissimilarity(PrEigenVector, PrEigenValue,PrMeanFreq,FreqCounterSign,PrSort); End;
3.7.2.3 Form Pendaftaran Form
pendaftaran
diberi
nama
FEnrollGroup.frm
(terlihat
pada
Gambar 3.6) dengan unit programnya bernama UEnrollGroup.pas. Form ini digunakan sebagai form tempat pendaftaran aksara baru yang datanya akan dimasukkan ke dalam file basisdata acuan. Dalam sekali pemanggilannya bisa digunakan untuk mendaftarkan lebih dari satu aksara baru. Selain itu form ini juga digunakan untuk menampilkan citra Aksara Bali acuan tersebut
2
4
3
1
7
6 5
Gambar 3.6 Tampilan Form Pendaftaran 1.
Nomor 1 adalah tempat untuk menampilkan nomor identitas Aksara Bali yang akan didaftarkan.
2.
Nomor 2 adalah tempat memasukkan atau menampilkan nama Aksara Bali.
3.
Nomor 3 adalah tempat untuk menampilkan waktu proses.
4.
Nomor 4 adalah tempat menampilkan citra Aksara Bali acuan. 30
5.
Nomor 5 adalah tempat menampilkan nilai beda antara aksara acuan dengan aksara pembanding C1.
6.
Nomor 6 adalah tempat menampilkan nilai beda antara aksara acuan dengan aksara pembanding C2.
7.
Nomor 7 adalah tempat menampilkan nilai beda antara aksara acuan dengan aksara pembanding C3.
8.
Tombol Close digunakan untuk keluar dari form pendaftaran.
Adapun program yang dijalankan adalah sebagai berikut : procedure TFEnrollGroup.BBProcessClick(Sender: TObject); var Mi,Ms : byte; i,j, Code : integer; TempPerson : THuruf; Freq : TFrequency; EGMeanFreq, EGEigenValue: TMeanFrequency; TempFreq :Array[1..DimVector67,1..3] Of Real; EGVariance,EGEigenVector : TVariance; EGSort : TSort; Temp : Array[1..3] of Real; S : String; IDNumber : word; Dissimilarity, Selisih, selisih2, bantu : real; Gambar : TGambar; WaktuMulai, WaktuSelesai : TDateTime; JamMulai, JamSelesai, Menit, Detik, MDetik : Word; MDetikMulai, MDetikSelesai, TotalWaktu : Double; k : String; begin BBProcess.Enabled := False; error := 0; FGauge.Show; FGauge.Label4.Caption := '6'; FGauge.Refresh; FGauge.Gauge1.Progress := 0; FGauge.Gauge2.Progress := 0; WaktuMulai := Time; Val(EdIDNumber.Text,IDNumber,Code); TempPerson.IDNumber := IDNumber; TempPerson.Name := EdName.Text; TempPerson.RefFileName := RefFileName; For Mi := 1 to Number do Begin Image1.Picture.LoadFromFile(ListBox2.Items[Mi-1]); AwalX := 1;//PosGambar[1].AwalX; AkhirX := 1;//PosGambar[1].AkhirX; AwalY := 1;//PosGambar[1].AwalY; AkhirY := 1;//PosGambar[1].AkhirY; for i := 1 to SignHeigh do for j := 1 to SignWidth do Gambar[i,j] := 0; for i := AwalX to AkhirX do
31
for j := AwalY to AkhirY do Begin if Image1.Canvas.Pixels[j,i] >= (clWhite (clWhite div 3)) Then Gambar[i-AwalX+1,j-AwalY+1] := 0 else Gambar[i-AwalX+1,j-AwalY+1] := 1; End; CountFrequency(Freq, Gambar); for i := 1 to DimVector do TempPerson.freq[i,Mi] := Freq[i];
-
FGauge.Gauge2.Progress := 10*Mi; End; EGMeanFreq := CountMeanFrequency(TempPerson); EGVariance := CountVariance(EGMeanFreq, TempPerson); EigenSort(EGVariance,EGEigenVector, EGEigenValue, EGSort); FGauge.Gauge2.Progress := 70; For Ms := 1 to 3 do Begin Image1.Picture.LoadFromFile(LstBox2.Items[Number+Ms1]); for i := 1 to SignHeigh do for j := 1 to SignWidth do Gambar[i,j] := 0; for i := AwalX to AkhirX do for j := AwalY to AkhirY do Begin if Image1.Canvas.Pixels[j,i] >= (clWhite (clWhite div 3)) Then Gambar[i-AwalX+1,j-AwalY+1] := 0 else Gambar[i-AwalX+1,j-AwalY+1] := 1; End; CountFrequency(Freq, Gambar);
-
Dissimilarity:=CountDissimilarity(EGEigenVector,EGEigen Value, EGMeanFreq,Freq,EGSort); If error = 1 Then Begin EdDissC1.Text := ''; EdDissC2.Text := ''; EdDissC3.Text := ''; ShowMessage('Divided by zero, next or Qi !') End else Begin TempPerson.ADis[Ms] := Dissimilarity; Temp[Ms] := Dissimilarity; Str(Temp[Ms], S); Case Ms of 1 : EdDissC1.Text := S; 2 : EdDissC2.Text := S; 3 : EdDissC3.Text := S; End; End; FGauge.Gauge2.Progress := 10*(Ms+7); End; If Error <> 1 Then Begin for i := 1 to 2 do for j := i+1 to 3 do
32
be
smaller
if Temp[i] < Temp[j] Then Begin bantu := Temp[i]; Temp[i] := Temp[j]; Temp[j] := bantu; End; TempPerson.Critical := Temp[2]; Write(FileReference,TempPerson); Inc(BanyakHuruf); ArrHuruf[BanyakHuruf] := TempPerson; FUtama.SBVerify.Enabled := True; FUtama.SBBrowsePerson.Enabled := True; End; WaktuSelesai := Time; FGauge.Close; //Hitung waktu proses DecodeTime(WaktuMulai,JamMulai,Menit,Detik,MDetik); MDetikMulai := ((JamMulai*60+Menit)*60+ Detik)*1000 + MDetik; DecodeTime(WaktuSelesai,JamSelesai,Menit,Detik,MDetik); If JamSelesai >= JamMulai Then MDetikSelesai :=((JamSelesai*60 + Menit)*60 + Detik)*1000 + MDetik Else //antisipasi melewati jam 12 MDetikSelesai := (((JamSelesai+12)*60 + Menit)*60 + Detik) *1000 + MDetik; TotalWaktu := MDetikSelesai - MDetikMulai; STTime.Caption := ' Second';
' + FloatToStr(TotalWaktu) + '
Milli
EdIDNumber.SetFocus; //FCoba1.Show; end;
3.7.2.4 Form-Form Pendukung Form-form pendukung sistem adalah form-form tambahan yang digunakan oleh sistem pengenalan untuk menampilkan informasi atau mengerjakan bagianbagian yang tidak bisa dikerjakan pada form utama karena keterbatasan tempat. Adapun form-form tersebut adalah sebagai berikut :
33
Gambar 3.7 Tampilan Form Daftar Aksara Bali Form Daftar Aksara Bali Form daftar Aksara Bali dinamakan FBrowse.frm seperti yang terlihat pada Gambar 3.7 dengan unit UBrowse.pas digunakan sebagai tempat untuk menampilkan data aksara yang telah terdaftar pada file basisdata acuan. Data tersebut diantaranya nomor identitas aksara, nama aksara, nilai ambang dan nilai ketidaksamaan aksara acuan dengan aksara pembanding C1, C2 dan C3.
Form Lingkungan Sistem Form lingkungan sistem dinamakan FSetEnv.frm seperti yang terlihat pada Gambar 3.8 dengan unit USetEnv.pas digunakan sebagai tempat untuk mengubah variabel-variabel lingkungan sistem, seperti memilih pola model yang digunakan (memakai obyek radio button), nomor pemotongan nilai eigen (Q) dan koefisien pengali nilai kritis (Cd). Setelah dilakukan perubahan nilai salah satu variabel, maka sistem akan secara otomatis mengaktifkan file-file yang sesuai dengan variabel itu, baik file basisdata acuan maupun file pola model.
34
b Gambar 3.8 Tampilan Form Lingkungan Sistem Form Pola Model Form pola model dinamakan FModel.frm seperti yang terlihat pada Gambar 3.9 dengan unit UModel.pas digunakan sebagai tempat untuk menampilkan pola model yang sedang aktif dan memasukkan pola model baru yang akan digunakan dalam sistem pengenalan. Form pola model akan menampilkan sebuah pola dalam tabel berukuran 5 x 5 kotak beserta nomor urut dan nomor modelnya. Form ini juga menyediakan fasilitas untuk menyimpan pola model (melalui tombol Save), untuk melihat pola nomor urut sebelumnya (menggunakan tombol Back), serta pola nomor urut sesudahnya (menggunakan tombol Next). Form Indikator Proses Form indikator proses dinamakan FGauge.frm seperti yang terlihat pada Gambar 3.10 dengan unit UTtdGauge.pas digunakan sebagai tempat indikator proses pengenalan sedang berlangsung, baik pengenalan untuk sebuah Aksara bali maupun pengenalan Aksara Bali secara berkelompok. Indikator ini memanfaatkan fasilitas obyek gauge. Form Informasi Sistem Form informasi sistem dinamakan FSignAbout.frm seperti yang terlihat pada Gambar 3.11 dengan unit USignAbout.pas digunakan sebagai tempat
35
untuk menampilkan informasi tentang sistem pengenalan. Informasi ini berupa judul sistem, gambar, nama pengembang sistem, serta nama instansi program pascasarjana
Gambar 3.9 Tampilan Form Pola Model
Gambar 3.10 Tampilan Form Indikator Proses
36
DOKUMENTASI SISTEM UJI COBA DAN ANALISA HASIL APLIKASI PENGENALAN AKSARA BALI BAB IV. HASIL DAN PEMBAHASAN Bab Pengujian dan Analisis Hasil ini diawali dengan pembahasan mengenai implementasi sistem, dilanjutkan dengan pengujian sistem serta analisis dari hasil pengujian tersebut. Sebelum itu terlebih dahulu dijelaskan faktor-faktor yang berpengaruh terhadap proses pengujian. Kemudian dibahas mengenai hasil pengujian beserta analisisnya. Selain itu juga dilengkapi dengan analisis terhadap kompleksitas waktu eksekusi dan ruang penyimpanan.
4.1 Pengujian Pembuatan sistem pengenalan Aksara Bali dalam penelitian ini memakai pola-pola model dari Metode Pola Busur Terlokalisasi untuk mengekstraksi ciri Aksara Bali masukan. Di samping menggunakan 52 buah pola (dikelompokkan menjadi 42 pola model) seperti yang terlihat pada Gambar 2.4, juga akan dipakai pola model baru yang pembuatannya tetap mengacu kepada batasan yang ada dalam Metode Pola Busur Terlokalisasi ini, yaitu lokalisasi permasalahan pada pola model yang didefinisikan di dalam sebuah bujur sangkar kecil berukuran 5 x 5, tetapi pemilihannya berbasis pada sampel Aksara Bali yang dimasukkan. 4.1.1
Pembentukan Pola Model Pola-pola yang dibentuk oleh titik karakteristik dalam bujur sangkar 5 x 5
menghasilkan 125 buah kemungkinan pola awal dan bisa dikelompokkan menjadi 103 pola model awal seperti terlihat pada Gambar 4.1(a) dan 4.1(b) berikut ini.
37
No.1 Model 1
No.2 Model 2
No.3 Model 3
No.4 Model 4
No.5 Model 5
No.6 Model 6
No.7 Model 7
No.8 Model 8
No.9 Model 9
No.10 Model 10
No.11 Model 11
No.13 Model 13
No.14 Model 14
No.12 Model 12
No.18 Model 18
No.19 Model 19
No.20 Model 20
No.21 Model 21
No.15 Model 15
No.16 Model 16
No.17 Model 17
No.22 Model 22
No.23 Model 23
No.24 Model 24
No.25 Model 25
No.26 Model 26
No.27 Model 27
No.28 Model 28
No.29 Model 29
No.30 Model 30
No.31 Model 31
No.32 Model 32
No.33 Model 33
No.34 Model 34
No.35 Model 35
No.36 Model 36
No.37 Model 37
No.38 Model 38
No.39 Model 39
No.40 Model 40
No.41 Model 41
No.42 Model 42
No.46 Model 46
No.47 Model 47
No.48 Model 48
No.49 Model 49
No.43 Model 43
No.44 Model 44
No.45 Model 45
No.50 Model 50
No.51 Model 51
No.52 Model 52
No.53 Model 53
No.54 Model 54
No.55 Model 55
No.58 Model 58
No.59 Model 59
No.60 Model 59
No.61 Model 59
No.62 Model 60
No.57 Model 57
No.56 Model 56
No.63 Model 61
Gambar 4.1 (a) Kemungkinan pola-pola dari Pola Busur Terlokalisasi untuk Pola Bujursangkar 5X5 (nomor urut 1 sampai 63)
38
No.64 Model 61
No.65 Model 61
No.67 Model 63
No.68 Model 64
No.73 Model 66
No.74 Model 66
No.75 Model 67
No.66 Model 62
No.70 Model 64
No.71 Model 65
No.69 Model 64
No.72 Model 66
No.76 Model 68
No.77 Model 69
No.78 Model 69
No.79 Model 70
No.81 Model 71
No.82 Model 72
No.83 Model 73
No.84 Model 74
No.85 Model 74
No.86 Model 75
No.80 Model 71
No.88 Model 76
No.89 Model 77
No.90 Model 78
No.91 Model 78
No.98 Model 84
No.87 Model 76
No.92 Model 79
No.93 Model 80
No.94 Model 81
No.95 Model 81
No.96 Model 82
No.97 Model 83
No.99 Model 85
No.100 Model 86
No.106 Model 92
No.107 Model 92
No.101 Model 87
No.103 Model 89
No.108 Model 92
No.109 Model 93
No.104 Model 90
No.105 Model 91
No.102 Model 88
No.110 Model 94
No.111 Model 94
No.112 Model 94
No.113 Model 95
No.114 Model 96
No.115 Model 97
No.116 Model 98
No.117 Model 98
No.118 Model 98
No.119 Model 99
No.121 Model 101
No.122 Model 101
No.123 Model 101
No.124 Model 102
No.125 Model 103
No.120 Model 100
Gambar 4.1(b) Kemungkinan pola-pola dari Pola Busur Terlokalisasi untuk Pola Bujursangkar 5X5 (nomor urut 64 sampai 125)
39
4.1.2
Pemilihan Pola Model Pengurangan waktu proses dilakukan dengan pemilihan pola dari 125 pola
di atas yang memang sering muncul pada Aksara Bali. Pemilihan pola-pola itu dilakukan dengan menggunakan bantuan program untuk menghitung keseringan muncul masing-masing pola tersebut pada sejumlah citra biner Aksara Bali. Sampel data yang dipergunakan untuk membentuk pola model dalam penelitian sebanyak 600 buah citra Aksara Bali yang diambil dari beberapa buku cetak dan internet. Adapun tipe data dan potongan program (berupa fungsi dan prosedur) yang dipergunakan adalah sebagai berikut: SignWidth = 165; SignHeigh = 140; MaxModel = 1500; PatternName125 = 'WModel125.dat'; type TPattern = array[0..4,0..4] of byte; TAGambar = array[1..SignHeigh,1..SignWidth] of byte; TWModelPattern = record Nomor : byte; Model : byte; Pattern : TPattern; Freq : word; end; TWArrModelPattern = array [1..125] of TWModelPattern; var WArrModelPattern TotalSampelSign
: TWArrModelPattern; : word;
function BacaGambar : TAGambar; var i,j : byte; Gambar : TAGambar; begin for i := 1 to SignHeigh do for j := 1 to SignWidth do Gambar[i,j] := 0; for i := 0 to SignHeigh-1 do for j := 0 to SignWidth-1 do begin if FModelDesign.Image1.Canvas.Pixels[j,i] >= (clWhite - (clWhite div 3)) Then Gambar[i+1,j+1] := 0 else Gambar[i+1,j+1] := 1; end; BacaGambar := Gambar; end;
40
procedure TFModelDesign.SBCount125Click(Sender: TObject); var NSign : word; Gambar : TAGambar; i,j,x,y : integer; cocok : boolean; NM : byte awalX_L, awalY_L,akhirX_L, akhirY_L : byte; begin awalX_L := 1; akhirX_L := SignHeigh; awalY_L := 1; akhirY_L := SignWidth; for NM := 1 to 125 do WArrModelPattern[NM].Freq := 0; for NSign := 1 to TotalSampelSign do begin Image1.Picture.LoadFromFile(ListBox2.Items[NSign-1]); Gambar := BacaGambar; for NM := 1 to 125 do begin for x := (awalX_L-4) to (akhirX_L - 4) do for y := (awalY_L-4) to (akhirY_L - 4) do begin i := 0; cocok := true; repeat inc(i); j := 0; repeat inc(j); if ((i+x-1) 0 then cocok := false; end else if WArrModelPattern[NM].Pattern[i-1,j-1] <> Gambar[i+x-1,j+y-1] then cocok := false; until (cocok = false) or (j = 5); until (cocok = false) or (i = 5); if (cocok = true) and (i=5) and (j=5) then inc(WArrModelPattern[NM].Freq); end; end; end; end;
Setelah dieksekusi dengan mempergunakan 600 buah sampel citra Aksara Bali, hasil dari potongan program di atas adalah berupa cacah keseringan muncul masing-masing pola model yang tersimpan pada variabel freq dalam variabel WArrModelPattern. Tabel cacah keseringan muncul dari 125 pola tersebut seperti terlihat pada Tabel 4.1.
41
Tabel 4.1 Frekuensi kemunculan masing-masing pola pada 600 citra biner Aksara Bali No Model Freq 1
1
2
2
489
3
3
4
No Model Freq No Model Freq No Model
36365 26
Fr eq
No Model
Fr eq
26
19
51
51
0
76
68
0
101
87
0
27
27
0
52
52
0
77
69
0
102
88
8
223
28
28
9
53
53
0
78
69
0
103
89
0
4
743
29
29
0
54
54
2
79
70
0
104
90
15
5
5
226
30
30
0
55
55
6
80
71
0
105
91
0
6
6
244
31
31
15
56
56
0
81
71
0
106
92
1
7
7
5
32
32
0
57
57
0
82
72
0
107
92
0
8
8
171
33
33
6
58
58
58154 83
73
0
108
92
0
9
9
4
34
34
1
59
59
0
84
74
0
109
93
3
10
10
23
35
35
0
60
59
0
85
74
0
110
94
0
11
11
8
36
36
1
61
59
0
86
75
0
111
94
0
12
12
49
37
37
0
62
60
0
87
76
0
112
94
0
13
13
14
38
38
0
63
61
0
88
76
0
113
95
0
14
14
68
39
39
0
64
61
0
89
77
0
114
96
0
15
15
0
40
40
0
65
61
2
90
78
5
115
97
1
16
16
0
41
41
0
66
62
0
91
78
0
116
98
0
17
17
0
42
42
0
67
63
17262 92
79
6
117
98
1
18
18
0
43
43
0
68
64
2
93
80
2
118
98
0
19
19
30
44
44
0
69
64
0
94
81
0
119
99
0
20
20
0
45
45
0
70
64
0
95
81
0
120
100
0
21
21
0
46
46
11319 71
65
0
96
82
126 121
101
0
22
22
0
47
47
10
72
66
0
97
83
539 122
101
0
23
23
0
48
48
0
73
66
0
98
84
0
123
101
3
24
24
0
49
49
8896 74
66
0
99
85
7
124
102
3
25
25
0
50
50
67
0
100
86
32
125
103
0
2
75
Hasil dari model pola yang didapat, kemudian diurutkan berdasarkan frekuensi kemunculan terbanyak, hasilnya dapat dilihat pada Tabel 4.2.
42
Tabel 4.2 Frekuensi kemunculan masing-masing pola pada 600 citra Aksara Bali yang sudah diurut No
Model
Freq
No
Model
Freq
No
Model
Freq
8
51
103
0
76
92
0
101
87
0
85
7
52
98
0
77
94
0
102
69
0
28
79
6
53
68
0
78
59
0
103
69
0
11319
29
33
6
54
92
0
79
103
0
104
70
0
49
8896
30
55
6
55
78
0
80
17
0
105
71
0
6
4
743
31
78
5
56
64
0
81
38
0
106
71
0
7
83
539
32
7
5
57
84
0
82
44
0
107
72
0
8
2
489
33
9
4
58
81
0
83
66
0
108
56
0
9
6
244
34
102
3
59
101
0
84
62
0
109
74
0
10
5
226
35
93
3
60
66
0
85
53
0
110
75
0
11
3
223
36
101
3
61
101
0
86
57
0
111
76
0
12
8
171
37
64
2
62
73
0
87
66
0
112
76
0
13
82
126
38
50
2
63
94
0
88
41
0
113
95
0
14
14
68
39
61
2
64
81
0
89
35
0
114
77
0
15
12
49
40
54
2
65
24
0
90
100
0
115
59
0
16
86
32
41
80
2
66
52
0
91
27
0
116
37
0
17
19
30
42
34
1
67
95
0
92
30
0
117
45
0
18
10
23
43
92
1
68
51
0
93
29
0
118
64
0
19
26
19
44
98
1
69
22
0
94
25
0
119
60
0
20
90
15
45
97
1
70
59
0
95
16
0
120
65
0
21
31
15
46
36
1
71
15
0
96
48
0
121
61
0
22
13
14
47
94
0
72
40
0
97
21
0
122
23
0
23
47
10
48
48
0
73
99
0
98
42
0
123
66
0
24
28
9
49
98
0
74
32
0
99
91
0
124
61
0
25
88
8
50
43
0
75
94
0
100
18
0
125
75
0
No
Model
Freq
No
Model Freq
1
58
58154
26
11
2
1
36365
27
3
63
17262
4
46
5
Cacah keseringan muncul dari masing-masing pola seperti yang terlihat pada Tabel 4.2 dipergunakan sebagai bahan pertimbangan untuk memilih pola model sistem yaitu dengan menentukan batas cacah terkecil keseringan muncul, tetapi sebelumnya dilakukan penjumlahan frekuensi kemunculan pola-pola dengan model yang sama. Batas terkecil yang dipakai adalah 10 kali. Hasilnya adalah 23 pola model terpilih seperti terllihat pada Tabel 4.3. 43
Tabel 4.3 Frekuensi kemunculan masing-masing pola pada 600 citra Aksara Bali yang sudah diurut dengan batasan terkecil 10 kali No Model Freq
No Model Freq
1
58
58154
13
82
126
2
1
36365 14
14
68
3
63
17262
15
12
49
4
46
11319
16
86
32
5
49
8896
17
19
30
6
4
743
18
10
23
7
83
539
19
26
19
8
2
489
20
90
15
9
6
244
21
31
15
10
5
226
22
13
14
11
3
223
23
47
10
12
8
171
Hasil dari ke 23 pola model tersebut akan diurutkan sesuai dengan nomor modelnya, sehingga diperoleh hasil seperti yang terlihat pada Tabel 4.4. Tabel 4.4 Frekuensi kemunculan masing-masing pola pada 600 citra Aksara Bali yang sudah diurut berdasarkan nomor model dengan batasan terkecil 10 No Model Freq 1
1
2
2
489
3
3
4
No Model Freq
36365 13
26
19
14
31
15
223
15
46
11319
4
743
16
47
10
5
5
226
17
49
8896
6
6
244
18
58
58154
7
8
171
19
63
17262
8
10
23
20
82
126
9
12
49
21
83
539
10
13
14
22
86
32
11
14
68
23
90
15
12
19
30
44
Hasil dari model pola yang didapat dari tabel diatas dapat digambarkan pada Gambar 4.2 dan setelah penomorannya disesuaikan maka diperoleh pola model seperti terlihat pada Gambar 4.3. Pola-pola inilah yang dipergunakan sistem untuk mengekstraksi ciri citra aksara.
No. 1 Model1
No. 2 Model2
No. 3 Model3
No. 4 Model4
No. 5 Model5
No. 6 Model6
No. 8 Model8
No. 10 Model10
No. 12 Model12
No. 13 Model13
No. 14 Model14
No. 100 Model86
No. 26 Model26
No. 31 Model31
No. 19 Model19
No. 46 Model46
. No. 47 Model47
No. 49 Model49
No. 58 Model58
No. 67 Model63
No. 104 Model90
Gambar 4.2 Pola-pola terpilih sebanyak 23 pola
45
No. 96 Model82
No. 97 Model83
No. 1 Model1
No. 2 Model2
No. 3 Model3
No. 4 Model4
No. 5 Model5
No. 6 Model6
No. 7 Model7
No. 8 Model 8
No. 9 Model 9
No. 10 Model10
No. 11 Model11
No. 13 Model13
No. 14 Model14
. No. 16 Model16
No. 17 Model17
No. 18 Model18
No. 22 Model22
No. 12 Model12
No. 15 Model15
No. 19 Model19
No. 20 Model20
No. 21 Model21
No. 23 Model23
Gambar 4.3 Pola-pola terpilih sebanyak 23 pola yang penomorannya telah disesuaikan
4.1.3
Penentuan Konstanta Efektifitas dan unjuk kerja metode pengenalan Aksara Bali yang digunakan
dipengaruhi oleh nilai-nilai konstanta yang ditetapkan. Konstanta ini sebelum dipergunakan oleh sistem secara permanen, harus dilakukan pengujian terlebih dahulu dengan beberapa variasi yang disesuaikan dengan anjuran dari pustaka. Konstanta
yang
mempengaruhi
sistem
pengenalan
Aksara
Bali
dengan
menggunakan metode Pola Busur Terlokalisasi ada dua yakni:
i.
Konstanta nomor pemotongan nilai eigen (q) Perhitungan nilai ketidaksamaan pada Persamaan 3.7 terdapat sebuah konstanta yang nilainya ditentukan menurut hasil pengujian. Konstanta ini adalah konstanta nomor pemotongan nilai eigen (q), yang mana q adalah bilangan integer positif yang kurang dari dimensi vektor kolom (p). Saat pembuatan basis data acuan, nilai q yang dicoba adalah mulai dari 1 sampai nantinya dihentikan pada nilai q yang memberikan pesan kesalahan bahwa
46
telah terjadi proses pembagian dengan bilangan nol. Hal ini mengingat nilai eigen yang dihasilkan dengan urutan menurun pada nomor urut besar cenderung menghasilkan bilangan yang sangat kecil atau bahkan nol. Hal ini tentunya akan menyebabkan kesalahan sistem akan besar. Berdasarkan hasil pengujian terhadap variasi nilai q dipilih satu nilai yang mengakibatkan sistem mengalami kesalahan terkecil, dan seterusnya dipergunakan sebagai konstanta nomor pemotongan nilai eigen dalam setiap proses pengenalan.
ii. Konstanta pengali nilai ambang (Cd) Konstanta Cd merupakan koefisien pengali dari median nilai ketidaksamaan yang didapat pada saat pengenalan tiga Aksara Bali pembanding dengan Aksara Bali acuan yang didaftar (C), untuk menghasilkan nilai ambang atau nilai kritis (Cc). Pengujian terhadap Cd dilakukan pada nilai 2,0; 3,0; 4,0 dan 5,0 . Nilai ini dipakai agar nilai ambang yang dihasilkan tidak terlalu jauh menyimpang dari nilai C yang didapatkan. Jika Cd kurang dari 2,0 maka batas penerimaan akan sangat sempit sehingga prosentase kesalahan tidak dikenalinya karakter Aksara Bali tersebut akan besar. Sebaliknya jika Cd lebih besar dari 5,0 maka batas penerimaan akan terlalu lebar sehingga menyebabkan kesalahan mengenali karakter Aksara Bali. Nilai Cd yang memberikan prosentase kesalahan terkecil akan ditetapkan seterusnya sebagai konstanta pengali nilai ambang sistem pengenalan ini.
4.1.4
Tahap Pengujian Tahap-tahap pengujian sistem dilakukan sebagai berikut: i.
Pengumpulan karakter Aksara Bali acuan Sumber data yang dipakai sebagai sampel Aksara Bali yang digunakan untuk melakukan pembentukan pola model dan pengujian sistem pengenalan karakter ini adalah sebagian diambil
dari data citra Aksara Bali dalam
penelitian I Komang Gede Suamba Dharmayasa (Dharmayasa, 2009). Sampel Aksara Bali yang digunakan diperoleh dari hasil scan buku ajar Bahasa Bali yang diambil menggunakan segmentasi per blok karakter dan juga dari internet. 47
ii.
Pengumpulan karakter Aksara Bali uji
Banyak dan variasi Aksara Bali yang diuji bervariasi sesuai dengan data yang dimiliki. iii.
Ujicoba antarmuka sistem
Sebelum dilakukan pengujian ke tahapan berikutnya, terlebih dahulu dilakukan dulu uji coba terhadap keseluruhan antarmuka sistem yang telah dibuat. Tujuannya adalah untuk mengetahui kesiapan komponen-komponen antarmuka sistem tersebut untuk mendukung pengujian sistem pengenalan selanjutnya. iv.
Pendaftaran Aksara Bali acuan
Aksara Bali yang telah dikumpulkan sebagai Aksara acuan selanjutnya didaftarkan melalui proses pendaftaran, yang pada intinya data Aksara Bali ini dimasukkan ke dalam file basis data acuan, dimana setiap karakter bisa didaftarkan lebih dari sekali sesuai dengan variasi model citra karakter yang didapatkan. Setiap nilai konstanta pemotongan nilai eigen (q) terhubung dengan sebuah file basis data acuan, baik yang menggunakan pola model Aksara Bali maupun pola model tandatangan Indonesia. v.
Pengenalan Aksara Bali uji
Setelah keseluruhan file basis data acuan selesai dibuat baru dilakukan pengenalan terhadap karakter Aksara Bali uji yang telah terkumpul.
4.1.5
Hasil Pengujian Adapun hasil pengujian yang dilakukan terhadap sistem pengenalan karakter
Aksara Bali dalam penelitian ini, sesuai dengan tahap-tahap yang telah dipaparkan di atas adalah sebagai berikut:
4.1.5.1 Ujicoba Antarmuka Sistem Gambar-gambar berikut ini adalah beberapa contoh tampilan antarmuka sistem pengenalan karakter Aksara Bali, yang mana kegunaan serta rancangannya
48
sesuai dengan apa yang telah dipaparkan sebelumnya pada bab Perancangan dan Pembuatan Sistem Pengenalan sub bab Pemrograman.
Gambar 4.4 Tampilan awal sistem pengenalan
Gambar 4.5 Tampilan Setting Lingkungan untuk proses pendaftaran
49
Gambar 4.6 Contoh tampilan saat Aksara A diuji
Gambar 4.7 Contoh laporan hasil pengenalan
50
4.1.5.2 Pendaftaran karakter Aksara Bali Acuan Tahap pendaftaran yang bertujuan untuk mendaftarkan masing-masing karakter Aksara pada file basis data acuan, dari dua jenis pola model yang digunakan yaitu pola model Aksara Bali dan pola model tandatangan Indonesia, masing-masing memiliki file basis data acuan sendiri-sendiri untuk setiap konstanta pemotongan nilai eigen (q) yang dicobakan. Hasil pengujian berupa waktu proses dan nilai ambang terpilih Aksara Bali uji diperlihatkan dalam tabel-tabel berikut. Tabel 4.5 Nilai ambang terpilih dengan menggunakan 23 pola model Aksara Bali Aksara
Threshold (q=1)
Threshold (q=2)
Threshold (q=3)
Threshold (q=4)
No
Id
1
1
A
7,8356 x 10-3
2,6111 x 101
4,1528 x 102
4,1844 x 1014
2
2
A
3,5359 x 10-2
2,8208 x 101
4,1162 x 103
3,0881 x 1015
3
3
A
5,3718 x 10-2
2,9877 x 101
1,7439 x 1017
6,3372 x 1017
4
4
Adeg-adeg
3,4843 x 10-3
4,1283
3,4868 x 101
1,4751 x 1015
5
5
Adeg-adeg
3,5312 x 10-3
1,0355 x 101
2,9691 x 102
3,8614 x 1015
6
6
Adeg-adeg
1,8635 x 10-2
8,3574 x 101
4,8726 x 1015
8,6688 x 1016
7
7
Ba
6,1542 x 10-3
4,8289 x 101
3,2722 x 102
6,8846 x 1016
8
8
Ba
1,7686 x 10-2
5,4475 x 101
5,5792 x 102
1,3167 x 1017
9
9
Ba
3,8216 x 10-2
1,6810 x 1016
1,5766 x 1017
4,5468 x 1019
10
10
Ca
4,6162 x 10-3
6,6159
1,9444 x 102
9,8612 x 1015
11
11
Ca
2,2540 x 10-3
4,7262 x 1014
8,7554 x 1016
Error
12
12
Carik
4,9926 x 10-4
6,1385
6,1913 x 101
5,8130 x 1015
13
13
Carik
1,8823 x 10-4
4,8888 x 10-1
2,7572 x 101
1,6687 x 1014
14
14
Cecek
8,6293 x 10-4
1,7145
1,6507 x 102
5,1732 x 1014
15
15
Cecek
8,2661 x 10-3
1,4342 x 101
3,0979 x 102
5,7669 x 1015
16
16
Cecek
2,1929 x 10-2
2,1806 x 1016
4,1926 x 1019
Error
17
17
Da
1,8310 x 10-3
3,3838
1,9988 x 101
8,8574 x 1014
18
18
Da
2,6951 x 10-2
6,5725 x 101
7,0882 x 102
1,6984 x 1016
19
19
Da
5,9961 x 10-2
7,4486 x 1014
2,9995 x 1017
1,9849 x 1019
20
20
Ga
4,7171 x 10-3
3,3614
2,7621 x 102
2,0612 x 1016
21
21
Ga
8,2606 x 10-2
1,8526 x 1016
1,2328 x 1018
1,1157 x 1020
22
22
Gantungan E
3,7141 x 10-3
6,5534
1,6580 x 102
3,6772 x 1015
23
23
Gantungan E
3,7141 x 10-3
6,5534
1,6580 x 102
3,6772 x 1015
51
Threshold (q=2)
Threshold (q=3)
2,8754 x 10-4
3,4465 x 1014
1,6950 x 1016
Error
Gantungan E
2,0424 x 10-4
2,4722 x 1012
6,2731 x 1014
2,5646 x 1017
26
Ha
9,5921 x 10-4
3,1541
8,1163
3,7987 x 1014
27
27
Ja
5,5808 x 10-3
5,0124 x 101
2,2521 x 102
4,6131 x 1014
28
28
Ja
2,7912 x 10-2
8,8293 x 1015
1,9779 x 1018
Error
29
29
Ja
7,0583 x 10-4
3,4664 x 1014
4,2591 x 1015
Error
30
30
Ka
5,1982 x 10-3
7,7039
3,4347 x 101
3,8597 x 1015
31
31
Ka
1,9940 x 10-2
3,9804
4,2883 x 102
4,7399 x 1015
32
32
Ka
9,6744 x 10-2
5,3690 x 1017
1,5202 x 1019
1,9046 x 1020
33
33
Ka
6,4724 x 10-3
8,6226 x 1016
3,6667 x 1018
Error
34
34
La
2,9913 x 10-3
4,1971
1,9796 x 102
1,3907 x 1016
35
35
La
3,0361 x 10-3
5,3548 x 1015
3,1782 x 1016
2,5179 x 1017
36
36
Li
1,3203 x 10-2
6,6306 x 101
6,1675 x 102
2,5259 x 1015
37
37
Li
1,6428 x 10-1
2,5296 x 1016
9,1886 x 1018
2,8250 x 1019
38
38
Ma
8,0646 x 10-3
3,1638
2,1486 x 102
1,2625 x 1016
39
39
Ma
1,9831 x 10-2
1,0118 x 1016
4,0426 x 1018
Error
40
40
Na
0
0
0
Error
41
41
Na
3,1400 x 10-3
5,8828 x 1015
5,3150 x 1017
Error
42
42
Nga
4,8930 x 10-4
1,2132 x 101
6,7628
1,5864 x 1015
43
43
Nga
6,7087 x 10-4
1,3643 x 1014
2,4135 x 1016
2,3653 x 1017
44
44
Ngi
1,1514 x 10-2
6,3709
3,0620 x 102
1,2498 x 1016
45
45
Ngi
7,0567 x 10-3
1,0909 x 101
3,2172 x 101
1,4764 x 1015
46
46
Nya
5,6901 x 10-3
3,0989 x 101
7,4286 x 101
5,1635 x 1019
47
47
Nya
1,2049 x 10-2
2,6756 x 1015
3,9365 x 1016
5,1525 x 1019
48
48
Pa
2,8619 x 10-3
1,0972 x 101
1,7268 x 102
1,3028 x 1016
49
49
Pa
1,3719 x 10-3
1,1490 x 1016
1,7841 x 1018
Error
50
50
Pa
3,2950 x 10-3
1,9820 x 1015
5,2415 x 1017
Error
51
51
Ra
9,3137 x 10-3
1,3700 x 101
4,0432 x 102
2,9042 x 1015
52
52
Ra
4,3535 x 10-2
4,6613 x 1015
1,0888 x 1018
3,2739 x 1018
53
53
Ra
2,4031 x 10-2
1,7941 x 101
5,9910 x 1020
Error
54
54
Ri
3,7696 x 10-3
2,1059
6,9325 x 101
3,6780 x 1015
55
55
Sa
6,3259 x 10-4
8,4236 x 101
5,1131
6,4470 x 1014
56
56
Sa
1,5114 x 10-3
2,2430 x 1016
3,4128 x 1018
Error
No
Id
Aksara
24
24
Gantungan E
25
25
26
Threshold (q=1)
52
Threshold (q=4)
Aksara
Threshold (q=1)
Threshold (q=2)
Threshold (q=3)
Threshold (q=4)
No
Id
57
57
Su
1,0525 x 10-4
1,2369 x 101
3,2591 x 102
4,1940 x 1015
58
58
Su
3,6213 x 10-1
8,1935 x 1016
1,1557 x 1018
3,0126 x 1020
59
59
Ta
6,3948 x 10-4
5,5588
8,2758
5,7954 x 1014
60
60
Ta
5,9957 x 10-2
2,0063 x 1016
4,5311 x 1018
1,6572 x 1019
61
61
Ta
1,9852 x 10-4
1,2244 x 1014
1,5291 x 1016
2,7858 x 1016
62
62
Tang
9,9590 x 10-3
3,3741 x 101
1,7751 x 102
2,6635 x 1015
63
63
Tur
9,6710 x 10-3
9,9533
2,6410 x 102
2,3916 x 1014
64
64
Tya
4,9552 x 10-3
9,0300
3,2519 x 101
4,0577 x 1015
65
65
Wa
1,0622 x 10-3
2,9249
3,3657 x 101
6,1986 x 1013
66
66
Wa
2,6553 x 10-4
8,7230 x 1013
8,7916 x 1015
Error
67
67
Wa
5,4214 x 10-3
4,0310
1,8087 x 1015
1,9716 x 1018
68
68
Ya
8,3370 x 10-4
1,0470
8,3040 x 101
6,6480 x 1013
69
69
Ya
2,2893 x 10-3
2,2455 x 1014
2,0377 x 1016
5,3135 x 1023
70
70
Ya
4,1719 x 10-4
4,2141 x 1014
4,3331 x 1015
Error
Tabel 4.5 diatas menampilkan sudah terjadi kesalahan proses pembagian dengan bilangan nol untuk Q=4 dengan nomor identitas karakter 11, sehingga pendaftaran dengan konstanta pemotongan nilai eigen (q) yang lebih besar dari 4 tidak dilanjutkan lagi dan nantinya pengujian hanya dilakukan sampai pada q=3. Tabel 4.6 Nilai ambang terpilih dengan menggunakan 42 pola model tandatangan Aksara
Threshold (q=1)
Threshold (q=2)
Threshold (q=3)
Threshold (q=4)
No
Id
1
1
A
7,8191 x 10-3
2,5942 x 101
4,1247 x 102
8,7704 x 1014
2
2
A
3,5332 x 10-2
2,8234 x 101
6,0409 x 103
1,5768 x 1017
3
3
A
5,3118 x 10-2
2,9843 x 101
1,7419 x 1017
6,3301 x 1017
4
4
Adeg-adeg
3,3834 x 10-3
4,0270
3,3742 x 101
1,2140 x 1015
5
5
Adeg-adeg
3,5312 x 10-3
1,0355 x 101
2,9691 x 102
2,5868 x 1016
6
6
Adeg-adeg
1,8635 x 10-2
8,3574 x 101
4,8726 x 1015
8,6688 x 1016
7
7
Ba
6,1247 x 10-3
4,7952 x 101
3,0434 x 102
4,1610 x 1016
8
8
Ba
1,7686 x 10-2
5,4475 x 101
5,5792 x 102
1,3174 x 1017
9
9
Ba
3,8216 x 10-2
1,6810 x 1016
1,5766 x 1017
4,5468 x 1019
10
10
Ca
4,6099 x 10-3
6,6431
1,9385 x 102
1,6435 x 1016
53
Threshold (q=2)
Threshold (q=3)
2,8689 x 10-3
3,4555 x 1014
2,9528 x 1016
Error
Carik
4,8413 x 10-4
6,7567
6,2582 x 101
9,2270 x 1015
13
Carik
1,8823 x 10-4
4,8888 x 10-1
2,7572 x 101
7,7356 x 1014
14
14
Cecek
7,9042 x 10-4
1,5769
1,7100 x 102
1,3435 x 1014
15
15
Cecek
8,1948 x 10-3
1,4219 x 101
3,0712 x 102
1,9769 x 1016
16
16
Cecek
2,1929 x 10-2
2,1806 x 1016
4,1992 x 1019
Error
17
17
Da
1,7347 x 10-3
3,2803
2,2385 x 101
3,1917 x 1014
18
18
Da
2,6951 x 10-2
6,5111 x 101
7,0867 x 102
1,6913 x 1016
19
19
Da
6,0026 x 10-2
7,4923 x 1014
3,0006 x 1017
1,6691 x 1019
20
20
Ga
4,7117 x 10-3
3,3334
3,4316 x 102
2,1261 x 1016
21
21
Ga
8,2606 x 10-2
1,8526 x 1016
1,2328 x 1018
1,1157 x 1020
22
22
Gantungan E
3,7141 x 10-3
6,5528
1,6628 x 102
4,9319 x 1015
23
23
Gantungan E
3,7141 x 10-3
6,5528
1,6628 x 102
4,9319 x 1015
24
24
Gantungan E
3,5942 x 10-4
4,1205 x 1014
2,0450 x 1016
2,4298 x 1015
25
25
Gantungan E
2,0424 x 10-4
2,4724 x 1012
5,7668 x 1014
8,8231 x 1015
26
26
Ha
9,4590 x 10-4
3,1432
8,4637
9,2776 x 1014
27
27
Ja
5,4752 x 10-3
4,9925 x 101
2,5031 x 102
9,3853 x 1014
28
28
Ja
2,7848 x 10-2
8,8293 x 1015
4,8067 x 1016
1,7227 x 1018
29
29
Ja
7,0583 x 10-4
3,5237 x 1014
4,2591 x 1015
Error
30
30
Ka
4,9808 x 10-3
7,9715
3,7108 x 101
1,6986 x 1014
31
31
Ka
1,9891 x 10-2
3,9709
5,9000 x 102
4,3264 x 1015
32
32
Ka
9,6744 x 10-2
3,7242 x 1016
8,8394 x 1017
2,2099 x 1019
33
33
Ka
6,4724 x 10-3
2,4058 x 1017
7,2964 x 1017
Error
34
34
La
2,9821 x 10-3
4,2185
2,0419 x 102
3,9402 x 1017
35
35
La
2,9729 x 10-3
2,2070 x 1015
2,3323 x 1018
Error
36
36
Li
1,3164 x 10-2
7,1286 x 101
6,9980 x 102
7,2826 x 1014
37
37
Li
1,6428 x 10-1
2,9621 x 1016
7,0529 x 1018
1,4748 x 1019
38
38
Ma
8,0541 x 10-3
3,1581
2,1370 x 102
6,8360 x 1016
39
39
Ma
1,9953 x 10-2
1,0166 x 1016
4,0516 x 1018
Error
40
40
Na
0
0
0
Error
41
41
Na
3,1400 x 10-3
5,8281 x 1015
5,3150 x 1017
Error
42
42
Nga
4,8930 x 10-4
6,2435 x 101
6,7742
1,0693 x 1014
43
43
Nga
6,7087 x 10-4
4,6754 x 1014
7,9949 x 1015
3,2531 x 1016
No
Id
11
11
Ca
12
12
13
Threshold (q=1)
Aksara
54
Threshold (q=4)
Aksara
Threshold (q=1)
Threshold (q=2)
Threshold (q=3)
Threshold (q=4)
No
Id
44
44
Ngi
1,1492 x 10-2
6,3927
3,5960 x 102
4,1857 x 1016
45
45
Ngi
7,0019 x 10-3
1,1502 x 101
3,5266 x 101
2,9261 x 1014
46
46
Nya
5,6774 x 10-3
3,1847 x 101
7,6438 x 101
4,7632 x 1015
47
47
Nya
1,2048 x 10-2
2,6672 x 1015
3,8268 x 1016
4,5973 x 1019
48
48
Pa
2,8560 x 10-3
1,0951 x 101
2,2490 x 102
9,1179 x 1015
49
49
Pa
7,1731 x 10-2
1,9217 x 1016
4,8439 x 1018
2,1114 x 1019
50
50
Pa
4,8366 x 10-3
1,9820 x 1015
5,2415 x 1017
Error
51
51
Ra
9,3072 x 10-3
1,3734 x 101
4,4646 x 102
1,6233 x 1015
52
52
Ra
4,3788 x 10-2
8,8407 x 1015
1,0729 x 1018
2,9851 x 1018
53
53
Ra
2,4104 x 10-2
1,7995 x 101
6,0092 x 1020
Error
54
54
Ri
3,7464 x 10-3
2,0930
7,4038 x 101
4,2006 x 1015
55
55
Sa
5,5117 x 10-4
7,3527 x 101
4,6129
1,7469 x 1013
56
56
Sa
1,5117 x 10-3
2,3784 x 1016
3,3560 x 1018
Error
57
57
Su
1,0513 x 10-4
1,2842 x 101
3,5915 x 102
4,1934 x 1016
58
58
Su
3,6213 x 10-1
8,1932 x 1016
1,1547 x 1018
3,0099 x 1020
59
59
Ta
6,3392 x 10-4
5,6857
8,2600
1,3019 x 1013
60
60
Ta
5,9957 x 10-2
1,1167 x 1016
1,6819 x 1018
6,3496 x 1019
61
61
Ta
1,9852 x 10-4
6,7491 x 1013
2,8912 x 1016
Error
62
62
Tang
9,8836 x 10-3
3,4408 x 101
4,2306 x 102
4,1377 x 1015
63
63
Tur
9,6710 x 10-3
9,9567
2,5991 x 102
1,7777 x 1014
64
64
Tya
4,9112 x 10-3
8,9951
3,4263 x 101
1,8784 x 1015
65
65
Wa
1,0496 x 10-3
2,9420
3,5527 x 101
3,0626 x 1016
66
66
Wa
3,3192 x 10-4
1,0903 x 1014
1,1551 x 1016
Error
67
67
Wa
5,5000 x 10-3
4,0732
1,4505 x 1015
6,2045 x 1019
68
68
Ya
8,2779 x 10-4
1,0892
8,5665 x 101
4,9609 x 1013
69
69
Ya
2,2893 x 10-3
2,2455 x 1014
2,0377 x 1016
5,3135 x 1023
70
70
Ya
4,1719 x 10-4
4,2141 x 1014
4,3331 x 1015
Error
Pengujian aksara dengan menggunakan 42 model yang diperoleh dari Pola Model tandatangan Indonesia, ditunjukkan pada Tabel 4.6 diatas. Pengujian tersebut dengan variasi nilai q = 1, 2, 3 dan seterusnya. Hasil pengujian yang relative sama juga terjadi seperti pada penggunaan 23 model Aksara Bali, yaitu sudah terjadi kesalahan proses pembagian dengan bilangan nol untuk q=4 dengan nomor identitas 55
karakter 11, sehingga pendaftaran dengan konstanta pemotongan nilai eigen (q) yang lebih besar dari 4 tidak dilanjutkan lagi dan nantinya pengujian hanya dilakukan sampai pada q=3.
4.1.5.3 Pengenalan Karakter Aksara Bali Uji Pengujian terhadap karakter Aksara Bali dilakukan dengan mengatur variasi konstanta pengali nilai ambang (Cd) yaitu 2, 3, 4 dan 5. Pada Gambar 4.8 terlihat contoh jenis Aksara Bali yaitu Aksara A diuji dengan pengaturan lingkungan dengan 23 pola model Aksara Bali, nilai q=3 dan Cd=3.
Gambar 4.8 Tampilan hasil pengenalan untuk satu huruf
Selengkapnya hasil pengujian yang berupa banyaknya kesalahan (error) yang terjadi pada pengujian keseluruhan aksara uji dengan masing-masing variasi nilai Cd serta waktu proses untuk 23 pola model Aksara Bali, terlihat dalam tabeltabel berikut ini:
56
Tabel 4.7 Jumlah kesalahan pada pengenalan dengan q = 1 dengan menggunakan 23 pola model Aksara Bali
No
Jenis Aksara
Waktu Uji (ms)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
A Adeg-adeg Ba Ca Carik Cecek Da Ga Gantungan E Ha Ja Ka La Li Ma Na Nga Ngi Ni Nya Pa Ra Ri Sa Su Ta Tang Tur Tya Wa Ya
11685 15912 15600 8346 13697 15553 14133 11591 16692 6131 10530 13291 6303 10546 8346 7629 8517 7894 8923 13541 9953 9812 8315 7925 11512 10623 8736 10608 10811 8861 9734
TOTAL
Cd = 2
Jml Uji
diken al
6 9 13 7 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 8
6 9 10 2 11 11 11 9 13 3 8 9 6 7 7 7 6 5 1 9 7 8 6 7 7 8 6 6 6 7 7
24 7
22 5 91,1 %
Cd = 3
Tidak terda ftar
Diken al aksar a lain
0 0 3 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 7 2,8 %
0 0 0 3 0 1 1 0 0 1 0 3 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 1 15 6,1 %
diken al
6 9 10 2 11 11 11 9 13 4 8 9 6 7 7 7 6 5 1 9 7 8 6 7 7 8 6 6 6 7 7 22 6 91, 5%
8,9%
57
Cd = 4
Tidak terda ftar
Diken al aksar a lain
0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 4 1,6 %
0 0 0 5 0 1 1 0 0 1 0 3 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 1 17 6,9 %
8,5%
diken al
6 9 10 2 11 11 11 9 13 4 8 9 6 7 7 7 6 5 1 9 7 8 6 7 7 8 6 6 6 7 7 22 6 91, 5%
Cd = 5
Tidak terda ftar
Diken al aksar a lain
0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 4 1,6 %
0 0 0 5 0 1 1 0 0 1 0 3 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 1 17 6,9 %
8,5%
diken al
6 9 10 2 11 11 11 9 13 4 8 9 6 7 7 7 6 5 1 9 7 8 6 7 7 8 6 6 6 7 7 22 6 91, 5%
Tidak terda ftar
Diken al aksar a lain
0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1,2 %
0 0 0 5 0 1 1 0 0 1 0 3 0 0 0 0 0 0 5 0 1 0 0 0 0 0 0 0 0 0 1 18 7,3 %
8,5%
Tabel 4.8 Jumlah kesalahan pada pengenalan dengan q = 2 dengan menggunakan 23 pola model Aksara Bali
No
Jenis Aksara
Waktu Uji (ms)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
A Adeg-adeg Ba Ca Carik Cecek Da Ga Gantungan E Ha Ja Ka La Li Ma Na Nga Ngi Ni Nya Pa Ra Ri Sa Su Ta Tang Tur Tya Wa Ya
11715 16115 15647 8533 13806 15615 14212 11653 16801 6178 10654 13323 6380 10546 8362 7691 8518 7909 9391 14009 10327 10250 8643 8252 11996 11263 9094 11044 11325 9345 10296
TOTAL
Cd = 2
Jml Uji
diken al
6 9 13 7 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 8
3 9 11 2 6 11 8 9 13 3 2 9 3 6 7 7 6 5 0 9 6 8 6 7 7 6 0 6 6 7 5
24 7
193 78, 2%
Cd = 3
Tidak terda ftar
Diken al aksar a lain
0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1,2 %
3 0 2 4 5 1 4 0 0 2 6 3 3 0 0 0 0 0 6 0 2 0 0 0 0 2 6 0 0 0 2 51 20, 6%
diken al
3 9 11 2 6 11 8 9 13 3 2 9 3 6 7 7 6 5 0 9 6 8 6 7 7 6 0 6 6 7 5 193 78, 2%
21,8%
58
Cd = 4
Tidak terda ftar
Diken al aksar a lain
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0,4 %
3 0 2 5 5 1 4 0 0 2 6 3 3 1 0 0 0 0 6 0 2 0 0 0 0 2 6 0 0 0 2 53 21, 4%
21,8%
diken al
3 9 11 2 6 11 8 9 13 3 2 9 3 6 7 7 6 5 0 9 6 8 6 7 7 6 0 6 6 7 5 193 78, 2%
Tidak terda ftar
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Cd = 5 Diken al aksar a lain
3 0 2 5 5 1 4 0 0 2 6 3 3 1 0 0 0 0 6 0 2 0 0 0 0 2 6 0 0 0 3 54 21, 8%
21,8%
diken al
3 9 11 2 6 11 8 9 13 3 2 9 3 6 7 7 6 5 0 9 6 8 6 7 7 6 0 6 6 7 5 193 78, 2%
Tidak terda ftar
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Diken al aksar a lain
3 0 2 5 5 1 4 0 0 2 6 3 3 1 0 0 0 0 6 0 2 0 0 0 0 2 6 0 0 0 3 54 21, 8%
21,8%
Tabel 4.9 Jumlah kesalahan pada pengenalan dengan q = 3 dengan menggunakan 23 pola model Aksara Bali
No
Jenis Aksara
Waktu Uji (ms)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
A Adeg-adeg Ba Ca Carik Cecek Da Ga Gantungan E Ha Ja Ka La Li Ma Na Nga Ngi Ni Nya Pa Ra Ri Sa Su Ta Tang Tur Tya Wa Ya
11248 15256 15116 8112 13120 15022 13728 11201 16630 5912 10187 13229 6115 10093 8081 7488 8175 7520 8923 13478 9906 9797 8252 7878 11466 110624 8674 10592 11029 8783 9672
TOTAL
Cd = 2
Jml Uji
diken al
6 9 13 7 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 8
6 9 12 0 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 7
24 7
23 8 92, 7%
Cd = 3
Tidak terda ftar
Diken al aksar a lain
0 0 1 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 5 2,0 %
0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1,6 %
diken al
6 9 12 0 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 7 23 8 92, 7%
7,3%
59
Cd = 4
Tidak terda ftar
Diken al aksar a lain
0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1,2 %
0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 2,4 %
7,3%
diken al
6 9 12 0 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 7 23 8 92, 7%
Cd = 5
Tidak terda ftar
Diken al aksar a lain
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0,4 %
0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 3,2 %
7,3%
diken al
6 9 12 0 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 7 23 8 92, 7%
Tidak terda ftar
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0%
Diken al aksar a lain
0 0 1 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 9 3,6 %
7,3%
Tabel 4.10 Jumlah kesalahan pada pengenalan dengan q = 1 dengan menggunakan 42 pola model tandatangan Indonesia
No
Jenis Aksara
Waktu Uji (ms)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
A Adeg-adeg Ba Ca Carik Cecek Da Ga Gantungan E Ha Ja Ka La Li Ma Na Nga Ngi Ni Nya Pa Ra Ri Sa Su Ta Tang Tur Tya Wa Ya
24227 32978 33540 17987 28860 32682 30061 24289 35100 13057 22011 28470 13806 21684 17581 16333 17581 16708 19297 29546 21699 21419 18018 17706 25303 23072 18767 22869 23213 19047 21154
TOTAL
Cd = 2
Jml Uji
diken al
6 9 13 7 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 8
6 9 10 2 11 11 11 9 13 3 8 9 6 7 7 7 6 5 2 9 8 8 6 7 7 8 6 6 6 7 7
24 7
22 7 91, 9%
Cd = 3
Tidak terda ftar
Diken al aksar a lain
0 0 3 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 7 2,8 %
0 0 0 3 0 1 1 0 0 1 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 13 5,3 %
diken al
6 9 10 2 11 11 11 9 13 3 8 9 6 7 7 7 6 5 2 9 8 8 6 7 7 8 6 6 6 7 7 22 7 91, 9%
8,1%
60
Cd = 4
Tidak terda ftar
Diken al aksar a lain
0 0 3 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 6 2,4 %
0 0 0 4 0 1 1 0 0 1 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 14 5,7 %
8,1%
diken al
6 9 10 2 11 11 11 9 13 4 8 9 6 7 7 7 6 5 2 9 8 8 6 7 7 8 6 6 6 7 7 22 8 92, 3%
Cd = 5
Tidak terda ftar
Diken al aksar a lain
0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1,2 %
0 0 0 5 0 1 1 0 0 1 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 1 16 6,5 %
7,7%
diken al
6 9 10 2 11 11 11 9 13 4 8 9 6 7 7 7 6 5 2 9 8 8 6 7 7 8 6 6 6 7 7 22 8 92, 3%
Tidak terda ftar
Diken al aksar a lain
0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1,2 %
0 0 0 5 0 1 1 0 0 1 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 1 16 6,5 %
7,7%
Tabel 4.11 Jumlah kesalahan pada pengenalan dengan q = 2 dengan menggunakan 42 pola model tandatangan Indonesia
No
Jenis Aksara
1 2 3 4 5 6 7 8 9 10 11
A Adeg-adeg Ba Ca Carik Cecek Da Ga Gantungan E Ha Ja
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Ka La Li Ma Na Nga Ngi Ni Nya Pa Ra Ri Sa Su Ta Tang Tur Tya Wa Ya
TOTAL
Waktu Uji (ms) 23228 31824 33041 17846 29578 33805 30669 25101 35926 13401 22230 8 28688 13759 22090 17940 16474 17722 16271 19344 29546 21684 21512 17987 17597 24960 23182 18970 22901 23447 19110 21169
Cd = 2
Cd = 3
Cd = 4
Cd = 5
Jml Uji
diken al
Tidak terda ftar
Diken al aksar a lain
6 9 13 7 11 12 12 9 13 5
3 9 11 2 6 11 7 9 13 3
0 0 0 2 0 0 0 0 0 0
3 0 2 3 5 1 4 0 0 2
3 9 11 2 6 11 7 9 13 3
0 0 0 2 0 0 0 0 0 0
3 0 2 3 5 1 4 0 0 2
3 9 11 2 6 11 7 9 13 3
0 0 0 1 0 0 0 0 0 0
3 0 2 4 5 1 4 0 0 2
3 9 11 2 6 11 7 9 13 3
0 0 0 1 0 0 0 0 0 0
3 0 2 4 5 1 4 0 0 2
8
2
0
6
2
0
6
2
0
6
2
0
6
12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 8
9 3 5 7 7 6 5 0 9 6 8 6 7 7 6 0 6 6 7 5
0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 5
3 3 0 0 0 0 0 6 0 2 0 0 0 0 2 6 0 0 0 2 50 20, 2%
9 3 5 7 7 6 5 0 9 6 8 6 7 7 6 0 6 6 7 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1,2 %
3 3 2 0 0 0 0 6 0 2 0 0 0 0 2 6 0 0 0 2 52 21 %
9 3 5 7 7 6 5 0 9 6 8 6 7 7 6 0 6 6 7 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0,4 %
3 3 2 0 0 0 0 6 0 2 0 0 0 0 2 6 0 0 0 3 54 21, 8%
9 3 5 7 7 6 5 0 9 6 8 6 7 7 6 0 6 6 7 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0,4 %
3 3 2 0 0 0 0 6 0 2 0 0 0 0 2 6 0 0 0 3 54 21, 8%
24 7
192 77, 8%
2%
diken al
192 77, 8%
22,2%
61
Tidak terda ftar
Diken al aksar a lain
diken al
22,2%
192 77, 8%
Tidak terda ftar
Diken al aksar a lain
diken al
Tidak terda ftar
Diken al aksar a lain
22,2%
192 77, 8%
22,2%
Tabel 4.12 Jumlah kesalahan pada pengenalan dengan q = 3 dengan menggunakan 42 pola model tandatangan Indonesia
No
Jenis Aksara
Waktu Uji (ms)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
A Adeg-adeg Ba Ca Carik Cecek Da Ga Gantungan E Ha Ja Ka La Li Ma Na Nga Ngi Ni Nya Pa Ra Ri Sa Su Ta Tang Tur Tya Wa Ya
23166 31559 33126 17722 29094 31605 29125 23884 34257 12605 21372 27675 13260 20935 17160 15897 17051 15663 19453 29734 22090 21622 18065 17644 25241 22418 18174 21981 22324 18579 20639
TOTAL
Cd = 2
Jml Uji
diken al
6 9 13 7 11 12 12 9 13 5 8 12 6 7 7 7 6 5 6 9 8 8 6 7 7 8 6 6 6 7 8
6 9 12 0 11 12 12 9 13 5 6 12 6 7 7 7 6 5 6 9 4 8 6 6 7 8 2 6 6 7 7
24 7
22 7 91, 9%
Cd = 3
Tidak terda ftar
Diken al aksar a lain
0 0 1 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 1 0 0 2 0 0 0 1 12 4,9 %
0 0 0 4 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 8 3,2 %
diken al
6 9 12 0 11 12 12 9 13 5 6 12 6 7 7 7 6 5 6 9 4 8 6 7 7 8 2 6 6 7 7 22 8 92, 3%
8,1%
62
Cd = 4
Tidak terda ftar
Diken al aksar a lain
0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 2 0 0 0 1 10 4,0 %
0 0 0 5 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 9 3,7 %
7,7%
diken al
6 9 12 0 11 12 12 9 13 5 6 12 6 7 7 7 6 5 6 9 4 8 6 7 7 8 2 6 6 7 7 22 8 92, 3%
Tidak terda ftar
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 5 2%
Cd = 5 Diken al aksar a lain
0 0 0 7 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 1 14 5,7 %
7,7%
diken al
6 9 12 0 11 12 12 9 13 5 6 12 6 7 7 7 6 5 6 9 4 8 6 7 7 8 2 6 6 7 7 22 8 92, 3%
Tidak terda ftar
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 5 2%
Diken al aksar a lain
0 0 0 7 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 1 14 5,7 %
7,7%
4.2 Analisis Hasil Analisis
hasil
yang
dilakukan
adalah
terhadap
hasil
pengujian,
pembandingan dengan metode lain, kompleksitas waktu dan kompleksitas ruang penyimpanan.
4.2.1
Analisis Hasil Pengujian Hasil pengujian yang dilakukan baik dalam hal pembuatan basis data acuan
maupun pengujian pengenalan aksara uji, telah dipresentasikan dalam bentuk tabel. Berdasarkan apa yang terlihat pada tabel-tabel hasil pengujian itulah dilakukan analisis terhadap sistem pengenalan ini. Besarnya masing-masing variabel lingkungan sistem yang masih efektif digunakan pada sistem pengenalan untuk 23 pola model Aksara Bali maupun 42 pola model Tandatangan Indonesia adalah:
Konstanta pemotongan nilai eigen (q) adalah 1, 2 dan 3. Nilai q yang kecil, akan menyebabkan hasil pengenalan menjadi tidak stabil, karena nilai eigen pada urutan kecil belum bisa menggambarkan karakteristik suatu matriks, sedangkan nilai q yang besar (dalam hal ini lebih dari 3) akan cenderung menyebabkan terjadinya kesalahan sistem yaitu adanya pembagian dengan bilangan nol, karena nilai eigen pada urutan besar cenderung bernilai sangat kecil bahkan terkadang mendekati nol.
Konstanta pengali nilai ambang (Cd) adalah 2,0; 3,0; 4,0 dan 5,0. Nilai ini dipakai agar nilai ambang yang dihasilkan tidak terlalu jauh menyimpang dari nilai C yang didapatkan.
4.2.1.1 Analisis Pengujian Pengenalan Hasil pengenalan terhadap karakter Aksara Bali terlihat pada Tabel 4.7 sampai dengan Tabel 4.12 dengan menampilkan banyaknya kesalahan yang terjadi pada masing-masing variasi pengujian. Total kesalahan pada masing-masing variasi lingkungan sistem diperlihatkan kembali dalam Tabel 4.13 yang digunakan untuk mempermudah melakukan analisis.
63
Tabel 4.13 Banyaknya kesalahan yang terjadi pada pengujian sistem pengenalan Cd = 2,0
Cd = 3,0
POLA MODEL
q
diken al
Tidak terdaf tar
Diken al aksar a lain
Aksara Bali (p=23)
1 2 3 1 2 3
225 193 238 227 192 227
7 3 5 7 5 12
15 51 4 13 50 8
Tandatangan Indonesia (p=42)
diken al
226 193 238 227 192 228
Cd = 4,0
Tidak terdaf tar
Diken al aksar a lain
diken al
4 1 3 6 3 10
17 53 6 14 52 9
226 193 238 228 192 228
Cd = 5,0
Tidak terdaf tar
Diken al aksar a lain
diken al
Tidak terdaf tar
Diken al aksar a lain
4 0 1 3 1 5
17 54 8 16 54 14
226 193 238 228 192 228
3 0 0 3 1 5
18 54 9 16 54 14
Angka kesalahan yang terjadi pada pengujian seperti terlihat dari Tabel 4.13 di atas kemudian dihitung prosentase kesalahannya masing-masing, yaitu kesalahan tipe I (kesalahan dimana aksara uji dianggap tidak terdaftar padahal sudah ada), serta kesalahan tipe II (kesalahan sistem yang terjadi akibat kesalahan mengenali aksara uji yang berbeda). Rumusan dari perhitungan masing-masing tipe kesalahan tersebut adalah sebagai berikut : Error Tipe I
ErrorUj
ErrorUj
N Uj 247
100% 100%
Error Tipe II
ErrorUj
ErrorUj
N Uj 247
(4.1)
100%
(4.2)
100%
Error Sistem Error Tipe I Error Tipe II
(4.3)
Hasil perhitungan dari prosentase kesalahan Tipe I dan Tipe II sistem pengenalan menggunakan rumusan di atas, dengan dasar data yang ada pada Tabel 4.13 diperlihatkan dalam Tabel 4.14, prosentase kesalahan rata-rata dalam Tabel 4.15 dan prosentase keberhasilan yang digunakan sebagai tolok ukur unjuk kerja sistem dalam Tabel 4.16 , sedangkan presentasi dalam bentuk grafik terlihat pada Gambar 4.9, Gambar 4.10, Gambar 4.11 dan Gambar 4.12.
64
Tabel 4.14 Prosentase kesalahan tipe I dan tipe II pada pengujian sistem pengenalan
POLA MODEL
q
Aksara Bali (p=23)
1 2 3 1 2 3
Tandatangan Indonesia (p=42)
Cd = 2,0 Tipe I (%) 2,8 1,2 2,0 2,8 2 4,9
Tipe II (%) 6,1 20,6 1,6 5,3 20,2 3,2
Cd = 3,0 Tipe I (%) 1,6 0,4 1,2 2,4 1,2 4,0
Tipe II (%) 6,9 21,4 2,4 5,7 21 3,7
Cd = 4,0 Tipe I (%) 1,6 0 0,4 1,2 0,4 2
Tipe II (%) 6,9 21,8 3,2 6,5 21,8 5,7
Cd = 5,0 Tipe I (%) 1,2 0 0 1,2 0,4 2
Tipe II (%) 7,3 21,8 3,6 6,5 21,8 5,7
Tabel 4.15 Prosentase kesalahan rata-rata pada pengujian sistem pengenalan POLA MODEL
q
Aksara Bali (p=23)
1 2 3 1 2 3
Tandatangan Indonesia (p=42)
Cd = 2,0
Cd = 3,0
Cd = 4,0
Cd = 5,0
(%) 8,9 21,8 7,3 8,1 22,2 8,1
(%) 8,5 21,8 7,3 8,1 22,2 7,7
(%) 8,5 21,8 7,3 7,7 22,2 7,7
(%) 8,5 21,8 7,3 7,7 22,2 7,7
Tabel 4.16 Prosentase keberhasilan pada pengujian sistem pengenalan POLA MODEL
q
Aksara Bali (p=23)
1 2 3 1 2 3
Tandatangan Indonesia (p=42)
Cd = 2,0
Cd = 3,0
Cd = 4,0
Cd = 5,0
(%) 91,1 78,2 92,7 91,9 77,8 91,9
(%) 91,5 78,2 92,7 91,9 77,8 92,3
(%) 91,5 78,2 92,7 92,3 77,8 92,3
(%) 91,5 78,2 92,7 92,3 77,8 92,3
65
Gambar 4.9 Grafik prosentase kesalahan Tipe I
Gambar 4.10 Grafik prosentase kesalahan Tipe II
66
Gambar 4.11 Grafik prosentase kesalahan rata-rata
Gambar 4.12 Grafik prosentase keberhasilan unjuk kerja sistem
Grafik prosentase kesalahan Tipe I pada Gambar 4.9 menunjukkan bahwa semakin besar konstanta pengali nilai ambang (Cd) maka prosentase kesalahan yang 67
terjadi akan semakin kecil, karena rentang penerimaan semakin besar sehingga sistem akan semakin toleran menerima variasi aksara dengan beda yang lebih besar. Grafik prosentase kesalahan Tipe II pada Gambar 4.10 menunjukkan bahwa semakin besar nilai Cd maka prosentase kesalahan semakin besar pula. Hal ini disebabkan karena aksara yang sebelumnya dianggap tidak terdaftar setelah Cdnya diperbesar maka dikenali sebagai aksara yang berbeda. Kedua hal ini berlaku untuk semua variasi lingkungan sistem baik variasi konstanta q maupun pola model. Grafik pada Gambar 4.11 yang merupakan grafik prosentase kesalahan ratarata yang terjadi pada sistem pengenalan menunjukkan bahwa ada titik minimum prosentase kesalahan yang didapat dari kombinasi lingkungan sistem, yaitu menggunakan 23 pola model Aksara Bali dengan konstanta pemotongan nilai eigen q (noktah segiempat) bernilai 3 untuk semua nilai Cd. Kombinasi lingkungan sistem ini memberikan prosentase kesalahan terkecil yaitu sebesar 7,3%. Grafik pada Gambar 4.12 menunjukkan prosentase keberhasilan unjuk kerja sistem tidak terlalu dipengaruhi oleh perubahan pengali nilai ambang (Cd) kecuali pada kasus-kasus tertentu yang mana karakter yang sebelumnya dinyatakan tidak terdaftar setelah Cdnya diperbesar maka karakter tersebut dapat dikenali. Variasi nilai q sangat berpengaruh terhadap unjuk kerja sistem baik pada 23 pola model Aksara Bali maupun 42 pola model tandatangan Indonesia, kecuali pada q=2. Hal lain yang bisa diamati dari hasil pengujian adalah waktu proses yang diperlukan untuk melakukan pengenalan pada masing-masing lingkungan sistem seperti terlihat dalam Tabel 4.17. Tabel 4.17 Perbandingan waktu proses untuk 23 pola model Aksara Bali dan 42 pola model Tandatangan Indonesia
No
Jumlah Uji
Pola Model
1 2
247 247
23 42
10 t(ms) 50825 108398
Jumlah Basis data Acuan yang terdaftar 20 30 40 50 60 t(ms) t(ms) t(ms) t(ms) t(ms) 101291 163925 189431 231442 276043 196950 292626 388721 487423 591428
70 t(ms) 317679 695777
Grafik dari waktu proses dari Tabel 4.17 terlihat seperti pada Gambar 4.12. Grafik tersebut menunjukkan waktu proses pengenalan untuk jumlah basis data acuan yang semakin banyak memerlukan waktu yang lebih lama untuk masingmasing pola model. Waktu proses pengenalan yang diperlukan jika menggunakan 68
23 pola model Aksara Bali lebih cepat dibandingkan dengan menggunakan 42 pola model Tandatangan Indonesia. Variasi besarnya konstanta pengali nilai ambang Cd relatif tidak berpengaruh pada waktu proses. Pada spesifikasi perangkat keras yang sama, hal yang paling berpengaruh terhadap waktu proses adalah banyaknya perangkat lunak atau program yang aktif secara bersamaan pada saat pengujian.
Gambar 4.13 Grafik waktu proses pengenalan sistem Hasil pengujian dan analisis hasil di atas menjelaskan bahwa prosentase keberhasilan unjuk kerja dalam sistem pengenalan Aksara Bali dengan menggunakan Metode Pola Busur Terlokalisasi sudah sangat tinggi yaitu 96,4%. Hal ini dipengaruhi oleh konstanta pemotongan nilai eigen (q), semakin besar nilai (q) maka kesalahan pengenalan semakin kecil.
4.2.2
Analisa Perbandingan Keberhasilan Pengenalan Aksara Bali Sistem pengenalan Aksara Bali dengan menggunakan metode Pola Busur
Terlokalisasi seperti yang dijelaskan pada sub bab diatas mendapatkan prosentase keberhasilan sebesar 92,7%. Hasil pengenalan ini sudah lebih tinggi bila dibandingkan dengan menggunakan pola dari tandatangan Indonesia yang sebesar 92,3 % dan apabila dibandingkan dengan hasil penelitian I Komang Gede Suamba Dharmayasa yang menggunakan metode moment invariant dan LVQ untuk 69
pengenalan Aksara Bali yang memperoleh hasil sebesar 99,4, hasil yang diperoleh dengan menggunakan metode Pola Busur memang relative lebih kecil. Hal ini disebabkan pada metode LVQ, citra Aksara Bali dibagi ke dalam 3 kelompok citra yaitu citra golongan persegi, persegi panjang dengan panjang kesamping, atau persegi panjang dengan panjang ke bawah. Nilai setiap pola akan dicari jaraknya dengan bobot dari kelas-kelas yang memiliki golongan sama di dalam basis data selanjutnya kelas di basis data yang memiliki jarak terpendek dan lebih kecil dari nilai ambang yang ditetapkan adalah merupakan hasil dari pengenalan. Hal ini akan berbeda dengan metode Pola Busur Terlokalisasi dimana citra uji akan dicocokkan dengan semua citra acuan yang tersimpan dalam basis data. Kelebihannya pada penelitian ini dapat mengenali aksara dengan ukuran pixel citra yang berbeda sedangkan pada metode LVQ menggunakan ukuran pixel citra yang sama. Hal lain yang dapat dipergunakan untuk menambah unjuk kerja dari sistem pengenalan dengan metode Pola Busur Terlokalisasi ini yaitu dengan membagi citra acuan maupun citra uji ke dalam empat ruang dimana citra pada masing-masing ruang tersebut akan diekstraksi cirinya. Kekurangannya adalah menyebabkan waktu proses yang lama karena untuk 1 citra aksara, 23 pola model Aksara Bali akan diproses sebanyak 4 kali untuk mengekstraksi citra dimasing-masing ruang. Ukuran vektor untuk menyimpan ciri serta proses berikutnya juga 4 kali lebih banyak yang berdampak pada bertambah tingginya kompleksitas waktu proses pengenalan.
4.2.3
Analisis Kompleksitas Waktu Selain waktu proses yang bisa dicatat langsung pada saat pengujian sistem
(yang dipengaruhi oleh konfigurasi perangkat keras serta program yang aktif saat pengujian), dapat juga dianalisis kompleksitas waktu sistem pengenalan secara umum. Kompleksitas waktu pada suatu sistem ditentukan oleh banyaknya operasi matematis yang terjadi terutama operasi perkalian dan pembagian, serta operasioperasi lain yang diperlukan selama sistem tersebut menjalankan fungsinya. Sistem pengenalan ini kebutuhan waktu sistem ada dua bagian, yaitu:
Kebutuhan waktu yang tidak dapat dianalisis secara pasti, yaitu pada tahap pengambilan data dan prapemrosesan. Kebutuhan waktu kedua tahapan ini tidak termasuk dalam analisis kompleksitas waktu yang dilakukan.
70
Kebutuhan waktu yang dapat dianalisis, yaitu pada tahap ekstraksi ciri, pembandingan dan tahap pembuatan basis data acuan.
Jika dimisalkan banyaknya pola dilambangkan dengan N dan banyaknya pola model yang dikelompokkan dari pola tersebut dilambangkan dengan p, maka dapat dilakukan perhitungan untuk mencari kompleksitas waktu sistem pengenalan ini adalah sebagai berikut : Kompleksitas waktu tahap ekstraksi ciri Tahap ekstraksi ciri terjadi proses pembandingan pola berukuran 5 x 5 pada citra Aksara Bali yang berukuran 140 x 165 piksel. Pola digerakkan di atas citra baik secara horisontal maupun vertikal sehingga keseluruhan piksel citra Aksara Bali terlingkupi. Banyaknya perbandingan maksimum setiap melakukan sekali ekstraksi ciri adalah: 5 x 5 x 140 x 165 x N = 577500N kali perbandingan Dalam kondisi praktis perbandingan yang terjadi biasanya jauh di bawah 577500N kali, karena pola 5 x 5 yang tidak cocok biasanya sudah diketahui sebelum perbandingan ke-25 pada masing-masing pola. Kompleksitas waktu tahap pembandingan. Kompleksitas waktu pada tahap pembandingan dicari sesuai dengan prosedur atau fungsi yang dikerjakan yaitu: -
Menghitung matriks varians function CountMeanFrequency(sampel: TPersonSign) : TmeanFrequency; begin for i := 1 to DimVector do begin bantu := 0; for Mi := 1 to Number do bantu := bantu + sampel.freq[i,Mi]; CountMeanFrequency[i] := bantu / number; end; end;
Operasi yang terjadi : Penjumlahan = 3p kali. Pembagian
= p kali. 71
function CountFreqMinMean(Mean : TMeanFrequency; Pr : TPersonSign) : TFreqMinMean; begin for i := 1 to Number do for j := 1 to DimVector do CountFreqMinMean[j,i] := Pr.Freq[j,i]-Mean[j]; end;
Operasi yang terjadi: Pengurangan = 3p kali. function CountVariance(Mean : TMeanFrequency; Pr : TpersonSign): TVariance; begin Vector := CountFreqMinMean(Mean,Pr); for i := 1 to DimVector do for j := 1 to DimVector do begin Temp := 0; for k := 1 to Number do Temp := Temp + Vector[i,k]*Vector[j,k]; Bantu[i,j] := Temp/Number; end; CountVariance := Bantu; end;
Operasi terjadi : Perkalian
= p x p x 3 = 3p2 kali.
Pembagian
= p x p = p2 kali.
Penjumlahan = p x p x 3 = 3p2 kali. Total operasi pada perhitungan matriks varians : Perkalian/pembagian = p + 3p2 + p2 = (4p2 + p) kali. Penjumlahan/pengurangan = 3p + 3p + 3p2 = (6p + 3p2) kali
-
Menghitung nilai eigen dan vektor eigen. Metode Jacobi yang dipergunakan untuk mencari nilai eigen dan vektor eigen, memerlukan maksimum sebanyak 15n3 operasi matematis perkalian atau pembagian (n adalah orde matriks), dengan rincian : rotasi yang dilakukan sebanyak 5n3 kali, sedangkan pada setiap rotasi terjadi 3n operasi matematis. Oleh karena matriks varian berukuran p x p maka operasi perkalian atau pembagian maksimum yang dilakukan pada perhitungan nilai eigen dan vektor eigen adalah 15p3 kali operasi.
72
-
Menghitung nilai ketidaksamaan. function CountZ(L : TVariance; k : integer; X : TFrequency; Urut : TSort) : real; begin bantu := 0; for i := 1 to DimVector do bantu := bantu + L[i,Urut[k]]*X[Urut[i]]; CountZ := bantu; end;
Operasi terjadi : Perkalian
= p kali.
Penjumlahan = p kali. function CountDissimilarity (L : TVariance; Lamda, XMean : TMeanFrequency; X : TFrequency; Urut : TSort) : real; begin dis1 := 0; for k := 1 to qi do begin if Lamda[Urut[k]] <> 0 then dis1 := dis1 + (SQR(CountZ(L,k,X,Urut)countZ(L,k,XMean,Urut))/Lamda[Urut[k]]) else begin if error <> 2 then Error := 1; exit; end; end; dis2 := 0; for k := qi+1 to DimVector do dis2 := dis2 + (SQR(CountZ(L,k,X,Urut)CountZ(L,k,XMean,Urut))/Lamda[Urut[qi]]); CountDissimilarity := dis1 + dis2; end;
Operasi yang terjadi : Penjumlahan
= (p + 1) kali.
Pengurangan
= p kali.
Pembagian
= p kali.
Perpangkatan
= p kali.
Operasi mencari Z
= p x 2 = 2p kali.
Total operasi perhitungan nilai ketidaksamaan: Perkalian/pembagian
= 2p + p + p = 4p kali.
Penjumlahan/pengurangan
= 2p + p + 1 + p = (4p + 1) kali
73
Jadi total operasi maksimum yang terjadi pada tahap pembandingan adalah : Perkalian/pembagian
= (4p2 + p) + (15p3 ) + (4p) = (15p3 + 4p2 + 5p) kali.
Penjumlahan/pengurangan
= (6p + 3p2) + (4p + 1) = (3p2 + 10p + 1) kali
Setiap tahap pembandingan sebelumnya pasti didahului dengan ekstraksi ciri aksara, maka dari itu secara keseluruhan tahap pembandingan memerlukan maksimum (15p3 + 4p2 + 5p) kali operasi perkalian atau pembagian, (3p2 + 10p + 1) kali operasi penjumlahan atau pengurangan serta ditambah 577500N
kali
perbandingan pada tahap ekstraksi ciri. Kompleksitas waktu pembuatan basis data acuan. Untuk setiap karakter, memerlukan 6 citra karakter sebagai acuan. Dari 6 citra ini, 3 citra dicari frekuensi kemunculan pola modelnya yang akan disimpan dalam file acuan, sedangkan 3 sisanya dipergunakan untuk mencari nilai ambang. Kompleksitas waktunya adalah : Tiga citra aksara pertama : Ekstraksi ciri = 3 x 577500N = 1.732.500N kali perbandingan. Perhitungan matriks varians : Perkalian/pembagian
= (4p2 + p) kali.
Penjumlahan/pengurangan
= (6p + 3p2) kali
Perhitungan nilai eigen = 15p3 kali operasi perkalian . Tiga citra aksara sisanya : Ekstraksi ciri = 3 x 577500N = 1.732.500N kali perbandingan. Menghitung ketidaksamaan : Perkalian/pembagian
= 3 x 4p = 12p kali.
Penjumlahan/pengurangan
= 3 x (4p + 1) = (12p + 3) kali
Sorting 3 nilai ketidaksamaan = 6 kali perbandingan. Total perbandingan = 1.732.500N + 1.732.500N + 6 = 3.465.006N kali. 74
Total operasi matematis: = (15p3 + 4p2 + 5p) + 12p
Perkalian/pembagian
= (15p3 + 4p2 + 17p) kali. Penjumlahan/pengurangan
= (12p + 6p2) + (12p + 3)
= (6p2 + 24p + 3) kali Jadi kompleksitas waktu maksimum pembuatan basis data acuan untuk satu aksara adalah: (15p3 + 4p2 + 17p) kali operasi perkalian atau pembagian, (6p2 + 24p + 3) kali operasi penjumlahan atau pengurangan, ditambah dengan 3.465.006N kali perbandingan. Melihat demikian tingginya kompleksitas waktu yang diperlukan sistem pengenalan ini, maka diperlukan perangkat keras yang berupa komputer dengan kecepatan proses yang memadai agar pengoperasian sistem tidak terlalu lambat.
4.2.4
Analisis Kompleksitas Ruang Penyimpanan Kompleksitas ruang penyimpanan yang diperlukan oleh suatu sistem sangat
tergantung dari struktur data yang digunakan untuk mengembangkan sistem tersebut, terutama struktur yang nantinya akan berhubungan langsung dengan fasilitas media penyimpan. Masing-masing tipe data yang digunakan memerlukan ruang penyimpan yang berbeda pula. Tipe-tipe data yang digunakan dalam sistem pengenalan ini yang berhubungan dengan keperluan media penyimpan terlihat dalam Tabel 4.18 berikut ini: Tabel 4.18 Tipe data dan ruang penyimpan yang diperlukan No
Tipe
Ruang Penyimpan
1
Byte
1 byte
2
Integer
4 byte
3
Word
4 byte
4
Real
6 byte
5
String[35]
35 byte + 1 byte
75
Mengacu pada tabel di atas dan struktur data yang telah dirancang, maka keperluan ruang penyimpan masing-masing file pada sistem pengenalan ini dapat dihitung sebagai berikut: Pola model TModelPattern = record Nomor : byte; // 1 byte Model : byte; // 1 byte Pattern : array[0..4,0..4] of byte; // 5 x 5 x 1 byte end;
Pola model tandatangan Indonesia sebanyak 52 pola, maka keperluan ruang penyimpannya adalah : (1 + 1 + 25) x 52 = 1.404 byte. Pola model Aksara Bali sebanyak 23 pola, maka keperluan ruang penyimpannya adalah : (1 + 1 + 25) x 23 = 621 byte. Data sebuah karakter THuruf = record IdNumber : word; // 4 byte Name : string[35]; // 36 byte Freq :array[1.. DimVector,1..6] of word; // 52 x 6 x 4 = 1248 byte RefFileName : string[70]; //71 byte ADis : array[1..3] of real; // 3 x 6 = 18 byte Critical : real; end;
Guna menyederhanakan program, maka dalam sistem pengenalan ini dimensi vektor yang digunakan adalah dimensi vektor terbesar, yaitu sebanyak pola model yang dimiliki oleh Tandatangan Indonesia yaitu 42. Dapat disimpulkan bahwa banyaknya keperluan ruang penyimpan untuk data sebuah aksara adalah : 4 + 36 + 1248 + 71 + 18 + 6 = 1383 byte.
Jika sistem ini dimanfaatkan secara nyata, maka ada beberapa komponen data aksara yang tidak diperlukan. Adapun struktur data yang dipakai jika sistem dimanfaatkan secara nyata dengan menggunakan pola model Aksara Bali adalah:
76
TPersonSign = record IdNumber : word; // 4 byte Name : string[35]; // 36 byte Freq :array[1..23 ,1..6] of word; // 23 x 6 x 4 = 1008 byte Critical : real; // 6 byte end;
Keperluan ruang penyimpannya adalah : (4 + 36 + 1008 + 6) = 552 byte.
Kompleksitas ruang penyimpanan pada sistem pengenalan menggunakan metode masukan statis secara umum cukup besar, hal tersebut dipengaruhi oleh faktor disimpan atau tidaknya aksara sampel. Pada kondisi praktis file citra aksara acuan maupun uji tidak perlu disimpan, karena ciri-ciri yang diperlukan untuk proses pengenalan sudah diekstraksi pada saat pembuatan basis data acuan dan disimpan dalam sebuah file. Sistem pengenalan dalam penelitian ini menggunakan format file citra bitmap dua warna untuk penyimpanan citra aksara, masing-masing citra aksara berukuran 140 x 165 piksel memerlukan ruang penyimpan sebanyak 23.100 byte. Sehingga jika semua file citra aksara acuan maupun uji harus disimpan, maka akan memerlukan ruang penyimpan yang cukup banyak.
77