Aplikasi Pengenalan Aksara Bali dengan Pola Model Khusus berbasis Pola Busur Terlokalisasi.

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

Nilai threshold

Proses
Pengambilan
Keputusan

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 

 
 x23 

.......................................(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 
 x21 x22  x2 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

xi  

setiap pola model dengan cara :
m

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:

V    xj  x /  xj  x /  / m ……………....(3.4)
m

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:

D ( Pi , Q )  
q

( ZQk  Z /k ) 2

k 1

k




p

( ZQk  Z /k ) 2

k  q 1



q

ZQk  lkt xQ ……………………………………….

... (3.5)

(3.6)

Z /k  l kt x/ ………………………………………...(3.7)
dengan ketentuan :

 D(P i,Q) : nilai ketidaksamaan antara acuan P i dengan pembanding Q.
 

: vektor kolom yang berisi nilai eigen dengan urutan menurun

 lk

: vektor eigen yang berbentuk vektor kolom terurut sesuai

 xQ
 x/

 t

 p

 q

(descending order) yaitu (, , …, p)

dengan nilai eigen yang berhubungan.
: vektor kolom yang berisi frekuensi munculnya pola model pada
citra karakter pembanding.
: vektor kolom rata-rata acuan.
: transpose.
: dimensi vektor kolom

: suatu integer dengan syarat 1q 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

o

* : iterasi
: 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] = 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]= 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)=
(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
pemili