• Tidak ada hasil yang ditemukan

PENGENALAN POLA HURUF JAWA MENGGUNAKAN ALGORITMA BACKPROPAGATION

N/A
N/A
Protected

Academic year: 2019

Membagikan "PENGENALAN POLA HURUF JAWA MENGGUNAKAN ALGORITMA BACKPROPAGATION"

Copied!
130
0
0

Teks penuh

(1)

BACKPROPAGATION

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains

Program Studi Ilmu Komputer

Oleh:

Damianus Beni Cahyo Nugroho NIM : 043124004

PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

2008

(2)

ALGORITHM

A Thesis

Presented as Partial Fulfillment of the Requirements to obtain Sarjana Sains Degree

in Computer Science

By:

Damianus Beni Cahyo Nugroho Student Number : 043124004

COMPUTER SCIENCE STUDY PROGRAM DEPARTEMENT OF MATHEMATIC FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA

2008

(3)
(4)
(5)

1. Kedua orang tuaku, Bapak dan Ibu

Terima kasih atas semua perjuangannya untuk selalu setia menemaniku hingga selesai semuanya.

2. Kakak dan adik, Bambang dan Erni Atas segala bantuannya.

(6)

Huruf jawa (hanacaraka) merupakan salah satu warisan budaya dari masyarakat jawa kuno yang digunakan untuk menuliskan karya sastra mereka. Keberadaan dari huruf jawa wajib untuk dilestarikan. Tetapi hal tersebut tidak didukung sepenuhnya oleh generasi muda. Hal ini ditunjukkan dengan kurang berminatnya atau enggannya generasi muda untuk mempelajari tulisan huruf-huruf jawa sehingga semakin sedikit jumlah orang yang dapat mengetahui bentuk huruf-huruf jawa. Oleh karena itu, peneliti membuat sistem pengenalan pola huruf-huruf jawa menggunakan jaringan syaraf tiruan backpropagation.

Sistem pengenalan pola huruf jawa tersebut digunakan untuk mengenali huruf jawa carakan (nglegeno) dan sandhangan. Sistem akan melatih jaringan backpropagation menggunakan template / data pelatihan yang disimpan dalam database. Jaringan backpropagation dilatih agar mendapatkan bobot jaringan yang mampu mengenali gambar template dan masukan yang sejenis dengan template. Masukan berupa sebuah karakter huruf jawa. Masukan dapat menggunakan mouse atau file bitmap. Masukan akan dikenai preprocessing dan selanjutnya diolah dengan jaringan backpropagation.

Dari hasil pengujian, sistem mampu mengenali data uji sebesar 58,75 % dengan benar dan dapat mengenali data template yang telah dilatih dengan jaringan backpropagation sebesar 91,15%.

(7)

Javanese character (hanacaraka) is one of culture legacies from old Javanese peoples that is used to write their literary work. The existence of Javanese character must be conserved. However it’s not supported fully by young generation. It is showed by the lack of young generation’s interest or the unwilling to study Javanese characters article so that fewer of number of people who can understand Javanese characters pattern. Therefore, researcher is developing the system of Javanese character pattern recognition using backpropagation neural network.

The system of Javanese character pattern recognition is used to recognize Javanese character of carakan (nglegeno) and sandhangan. The system will train the backpropagation network using template or training data which saved in database. The backpropagation network is trained to get network weight which can recognize template image and input that is same as template. The input is a Javanese character. The input can use mouse or bitmap file. The input will do preprocessing and then processed with backpropagation network.

From the result of test, system can recognize test data in the amount of 58,75% well and can recognize template data that have been trained by backpropagation network in the amount of 91,15 %.

(8)
(9)

pertolongan dan selalu setia mendampingi sehingga penulis dapat menyelesaikan penelitian dan penyusunan skripsi berjudul “Pengenalan Pola Huruf Jawa Menggunakan Algoritma Backpropagation”. Skripsi ini disusun sebagai salah satu syarat memperoleh gelar Sarjana Sains (S.Si) Program Studi Ilmu Komputer.

Dalam pelaksanaan penelitian dan penyusunan skripsi ini tidak terlepas dari bantuan berbagai pihak. Oleh karena itu penulis ucapkan terima kasih kepada:

1. Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku kaprodi Ilmu Komputer. Terima kasih atas kebijakan-kebijakan yang diberikan dan telah menemani kami hingga akhir.

2. Anastasia Rita Widiati, S.Si., M.Kom. selaku dosen pembimbing. Terima kasih atas bantuannya.

3. Yanuaris Joko Nugroho, S.Si. selaku dosen pembimbing. Terima kasih atas bantuannya.

4. Eko Hari Parmadi, S.Si., M.Kom dan Sri Hartati Wijono, S.Si., M.Kom. selaku dosen penguji.

5. Kedua orang tuaku, Bapak dan Ibu. 6. Kakak dan adikku, Bambang dan Erni.

7. Bpk Tukija dan Mbak Linda di Sekretariat. Terima kasih atas bantuannya. 8. Mas Susilo selaku Laboran LKD.

(10)

Tina, Madya, Fitria, Amel, Eka, Desy, Trivo, Elin, Arum, Monik, Anas, Mita. Terima kasih atas bantuan dan kerjasamanya.

10. Teman-teman lab TA: Yus, Gurit, Lilik, Henry Kriting, Puguh, Fatso, Wiwid. Terima kasih atas bantuan dan informasinya.

11. Pihak-pihak lain yang belum saya sebutkan diatas.

Penulis menyadari masih adanya kekurangan dalam skripsi ini dan jauh dari sempurna.

Yogyakarta, 10 Oktober 2008 Penulis

(11)
(12)

HALAMAN PERSETUJUAN PEMBIMBING ... ii

HALAMAN PENGESAHAN... iii

HALAMAN PERSEMBAHAN ... iv

ABSTRAK ... v

ABSTRACT... vi

KATA PENGANTAR ... vii

PERNYATAAN KEASLIAN KARYA ... ix

DAFTAR ISI... x

DAFTAR TABEL... xiii

DAFTAR GAMBAR ... xiv

BAB I PENDAHULUAN ... 1

A. Latar Belakang ... 1

B. Perumusan Masalah ... 2

C. Batasan Masalah ... 2

D. Tujuan Penelitian ... 4

E. Manfaat Penelitian ... 4

F. Metode Penelitian ... 4

G. Sistematika Penulisan ... 5

BAB II LANDASAN TEORI ... 7

A. Pengenalan Pola ... 7

(13)

C. Jaringan Syaraf Tiruan... 12

1. Arsitektur Jaringan ... 12

2. Metode Pembelajaran (Learning) atau Training... 13

3. Fungsi Aktivasi ... 14

D. Jaringan Syaraf Tiruan Backpropagation... 16

1. Arsitektur Jaringan Backpropagation... 17

2. Algoritma Pelatihan Jaringan Backpropagation... 18

BAB III ANALISA DAN PERANCANGAN SISTEM... 22

A. Gambaran Umum Sistem... 22

B. Analisa Sistem ... 23

C. Perancangan Sistem ... 25

1. Perancangan Proses ... 25

2. Perancangan Menu ... 44

3. Perancangan Antarmuka / Interface... 45

BAB IV IMPLEMENTASI ... 52

A. Implementasi Proses ... 52

B. Implementasi Menu ... 61

C. Implementasi Antarmuka... 62

BAB V PENGUJIAN DAN ANALISA HASIL... 66

A. Pelatihan Jaringan Backpropagation... 66

(14)

A. Kesimpulan ... 91

B. Saran ... 92

DAFTAR PUSTAKA ... 93

LAMPIRAN... 94

(15)

Tabel 5.2 Hubungan Laju Pemahaman dengan MSE dan Waktu Pelatihan ... 67

Tabel 5.3 Hubungan Target Kesalahan dengan Waktu Pelatihan... 68

Tabel 5.4 Hubungan Jumlah Epoch dengan MSE dan Waktu Pelatihan ... 69

Tabel 5.5 Hasil Pengujian Data Kelompok 1 (Citra Tulisan Tangan yang Di-scan).. 70

Tabel 5.6 Hasil Pengujian Data Kelompok 2 (Citra Tulisan Tangan yang Di-scan).. 73

Tabel 5.7 Hasil Pengujian Data Kelompok 3 (Huruf Jawa Cetak) ... 76

Tabel 5.8 Hasil Pengujian Data Kelompok 4 (Huruf Jawa Cetak) ... 79

Tabel 5.9 Hasil Pengujian Data Kelompok 5 (Citra Masukan Melalui Mouse) ... 82

Tabel 5.10 Contoh kesalahan pengenalan... 90

(16)

Gambar 1.2 Aksara Jawa Carakan / Nglegena... 3

Gambar 2.1 Skema pengenalan pola secara umum... 8

Gambar 2.2 Sigmoid biner ... 14

Gambar 2.2 Sigmoid bipolar... 15

Gambar 2.4 Arsitektur jaringan syaraf tiruan Backpropagation dengan 1 lapisan tersembunyi ... 16

Gambar 3.1 (a)Gambaran umum sistem (b) Contoh proses dengan data ... 22

Gambar 3.2 DAD level 0 / Diagram Konteks... 25

Gambar 3.3 DAD level 1 ... 26

Gambar 3.4 DAD level 2 Proses 1 / Pengenalan Pola ... 29

Gambar 3.5 DAD level 2 Proses 2 / Pengolahan Data Pelatihan... 31

Gambar 3.6 DAD level 3 Proses 1.2 / binerisasi ... 32

Gambar 3.7 Flowchart Grayscaling... 33

Gambar 3.8 Flowchart Cari Nilai Ambang... 36

Gambar 3.9 Flowchart Ubah Biner ... 37

Gambar 3.10 Flowchart Penghilangan Pinggiran Putih... 38

Gambar 3.11 Ekstraksi Data ... 39

Gambar 3.12 Flowchart Ekstraksi Data ... 40

Gambar 3.13 Flowchart Proses Pelatihan (training)... 42

(17)

Gambar 3.17 Rancangan Tampilan Utama ... 46

Gambar 3.18 Rancangan Antarmuka Tampilan Pengujian... 47

Gambar 3.19 Rancangan Antarmuka Tampilan Pelatihan... 48

Gambar 3.20 Rancangan Antarmuka Tampilan Data Pelatihan ... 49

Gambar 3.21 Rancangan Antarmuka Tampilan Matriks Bobot dan Bias... 50

Gambar 3.22 Rancangan Antarmuka Tampilan Form Tentang ... 50

Gambar 3.23 Rancangan Antarmuka Tampilan Form Bantuan... 51

Gambar 4.1 Tampilan Menu ... 61

Gambar 4.2 Form Splash Screen... 62

Gambar 4.3 Form Utama ... 62

Gambar 4.4 Form Pengujian ... 63

Gambar 4.5 Form Pelatihan (training)... 63

Gambar 4.6 Form Data Pelatihan... 64

Gambar 4.7 Form Bobot dan Bias ... 64

Gambar 4.8 Form Tentang ... 65

Gambar 4.9 Form Bantuan... 65

Gambar 5.1 Contoh kesalahan pengenalan ... 86

Gambar 5.2 Template huruf Ja... 86

Gambar 5.3 Huruf Nga ... 87

(18)

Gambar 5.7 Hasil Ektraksi Ciri Huruf Ca Uji... 88 Gambar 5.8 Hasil Ekstraksi Ciri Gambar Template Huruf Ca ... 89

(19)

A. LATAR BELAKANG

Huruf jawa (hanacaraka) merupakan salah satu warisan budaya dari masyarakat jawa kuno yang digunakan untuk menuliskan karya sastra mereka. Sebagai bangsa Indonesia atau suku jawa khususnya wajib untuk melestarikan keberadaan dari huruf-huruf jawa tersebut, seperti halnya kitab-kitab, naskah-naskah jawa kuno, tembang-tembang jawa, prasasti-prasasti, cara penulisan huruf jawa, bentuk huruf jawa dan lain sebagainya (Rochkyatmo, 1997). Pelestarian budaya atau keberadaan huruf-huruf jawa tidak didukung sepenuhnya oleh generasi muda. Hal ini ditunjukkan dengan kurang berminatnya atau enggannya generasi muda untuk mempelajari tulisan huruf-huruf jawa sehingga semakin sedikit jumlah orang yang dapat mengetahui bentuk huruf-huruf jawa (Sayoga, 2006).

Saat ini bentuk huruf-huruf jawa kuno tersebut dapat diterjemahkan ke huruf jawa latin secara otomatis dengan menggunakan sebuah sistem komputer. Perkembangan komputer sudah semakin pesat dimana komputer dapat digunakan untuk penyelesaian permasalahan-permasalahan yang kompleks, pengolahan gambar, dan pengenalan pola gambar. Sebagai contoh adalah telah banyak dikembangkan sistem-sistem pengenalan pola huruf seperti sistem pengenalan pola huruf latin, huruf arab, huruf cina dan huruf jepang. Jaringan syaraf tiruan merupakan salah satu pendekatan pengenalan pola dimana jaringan tersebut merupakan sistem komputasi

(20)

yang disusun dengan meniru proses alamiah yang terjadi dalam jaringan syaraf biologis pada otak manusia. Jaringan syaraf tiruan ini juga memiliki keunggulan yaitu dapat menangani noise sehingga bentuk huruf-huruf yang tidak begitu bagus atau rusak tetap dapat dikenali. Salah satu metode jaringan syaraf tiruan adalah jaringan backpropagation. Sebagai perwujudan pelestarian huruf jawa dan menyediakan alat bantu untuk mengenali huruf jawa maka peneliti melakukan penelitian pengenalan pola huruf jawa menggunakan algoritma backpropagation untuk membangun suatu sistem pengenalan pola huruf jawa.

B. PERUMUSAN MASALAH

Berdasarkan latar belakang, penulis membuat rumusan masalah sebagai berikut :

Bagaimana membuat sistem pengenalan pola huruf jawa dengan menerapkan algoritma jaringan syaraf tiruan backpropagation ?

C. BATASAN MASALAH

(21)

Gambar 1.1 Aksara Jawa Sandhangan

Gambar 1.2 Aksara Jawa Carakan / Nglegena 2. Pola masukan berupa sebuah karakter huruf jawa.

3. Masukan huruf pada sistem menggambar menggunakan mouse atau menggunakan file bitmap.

4. Ukuran matriks masukan dan template adalah 40x40.

(22)

D. TUJUAN PENELITIAN

Berdasarkan rumusan masalah, tujuan dari penelitian ini adalah :

Membuat suatu sistem pengenalan pola yang dapat mengidentifikasi huruf-huruf jawa dengan menerapkan algoritma jaringan syaraf tiruan backpropagation.

E. MANFAAT PENELITIAN

Manfaat dari penelitian ini adalah

1. Hasil penelitian ini (sistem pengenalan pola huruf jawa) dapat digunakan sebagai alat bantu untuk mengidentifikasi huruf-huruf jawa khususnya huruf jawa carakan dan sandhangan.

2. Hasil penelitian ini (sistem pengenalan pola huruf jawa) diharapkan dapat menjadi informasi atau tambahan referensi bagi Universitas Sanata Dharma dan mahasiswa untuk menambah pengetahuan tentang pengenalan pola.

F. METODE PENELITIAN

Metode yang digunakan dalam pembuatan tugas akhir ini adalah sebagai berikut:

1. Analisa

(23)

penyelesaiannya, peneliti mempelajari metode jaringan syaraf tiruan backpropagation.

2. Perancangan Sistem

Tahap ini dilakukan untuk membuat suatu rancangan sistem yang akan digunakan untuk pengembangan sistem pengenalan pola. Ada beberapa hal yang dilakukan yaitu perancangan antarmuka (interface design), menentukan input dan output dari sistem.

3. Implementasi

Implementasi berarti peneliti melakukan pemrograman (coding) atau pengembangan sistem pengenalan pola, melakukan testing (pengecekan kesalahan / error yang terjadi pada sistem), perbaikan sistem pada kesalahan / error yang terjadi.

4. Pengujian

Sistem yang telah dibuat diuji apakah sistem tersebut sudah sesuai mengidentifikasi huruf-huruf jawa yang dimasukkan dan telah sesuai dengan rancangan sistem.

G. SISTEMATIKA PENULISAN

BAB I PENDAHULUAN

(24)

BAB II LANDASAN TEORI

Berisi landasan teori yang dipakai penulis dalam membuat skripsi yang meliputi materi jaringan syaraf tiruan backpropagation dan teori-teori lainnya yang digunakan dalam pembuatan skripsi.

BAB III ANALISA DAN PERANCANGAN SISTEM

Bab ini meliputi analisa tentang permasalahan yang diteliti dan bagaimana penyelesaiannya dan perancangan sistem yang meliputi desain antarmuka (interface), desain menu dan desain proses.

BAB IV IMPLEMENTASI

Bab ini berisi implementasi rancangan proses, implementasi rancangan menu, dan implementasi rancangan antarmuka (interface) yang dikembangkan dari hasil analisa dan perancangan sistem.

BAB V PENGUJIAN DAN ANALISA HASIL

Hasil pengujian sistem pengenalan pola huruf jawa dan analisa hasil. BAB VI PENUTUP

(25)

A. PENGENALAN POLA

Pola merupakan deskripsi kuantitatif atau struktural pada sebuah objek atau beberapa entitas lain. Kelas pola merupakan sekumpulan pola yang terdiri atas beberapa properties / ciri yang sama (Bow, 2002).

Pengenalan pola merupakan suatu aktivitas manusia secara normal dimana manusia menerima informasi melalui berbagai sensor tubuh yang diproses seketika oleh otak, dan dalam sekejap manusia dapat mengenali sumber informasi tanpa melakukan usaha yang tampak. Hal yang lebih mengesankan adalah keakuratan manusia untuk dapat melakukan tugas-tugas pengenalan dengan kondisi yang tidak ideal, misalnya, ketika informasi yang dibutuhkan untuk pemrosesan tersebut tidak jelas atau tidak lengkap. Sesungguhnya, sebagian besar aktivitas sehari-hari kita berdasarkan pada berhasilnya kita dalam melakukan berbagai tugas pengenalan pola. Contohnya, ketika kita membaca buku, kita mengenali huruf, kata, dan pada akhirnya konsep dan pemikiran, dari sinyal-sinyal visual yang diterima oleh otak kita yang diprosesnya secara cepat dan mungkin dilakukan oleh sebuah jaringan syaraf biologi yang mengimplementasikan pencocokan template (Sankar, 2004).

Pengenalan pola (pattern recognition) merupakan suatu proses untuk mengenali pola-pola yang terdapat pada sekumpulan data dan menggolongkannya dalam kelompok-kelompok sedemikian sehingga pola-pola yang berada dalam

(26)

satu kelompok mempunyai derajat kemiripan yang tinggi dan pola-pola yang berada dalam kelompok yang berbeda mempunyai derajat kemiripan yang rendah (Susilo, 2006).

Pengenalan pola bertujuan menentukan kelompok atau kategori pola berdasarkan ciri-ciri yang dimiliki oleh pola tersebut. Dengan kata lain, pengenalan pola dapat membedakan suatu objek dengan objek lain (Munir, 2004). Skema pengenalan pola secara umum ditunjukkan oleh skema berikut:

Gambar 2.1 Skema pengenalan pola secara umum(Majumdar,1985)

Sistem pengenalan pola memiliki beberapa pendekatan diantaranya (Friedman,1999) yaitu:

• Pendekatan Statistik • Pendekatan Sintaktik

• Pendekatan Logika Kabur

(27)

Pendekatan yang digunakan dalam penelitian ini adalah pendekatan menggunakan jaringan syaraf tiruan. Jadi pendekatan yang akan dibahas lebih lanjut pada subbab berikutnya adalah pendekatan menggunakan jaringan syaraf tiruan.

B. PREPROCESSING

1. Grayscaling

Citra grayscale merepresentasikan setiap piksel hanya dengan satu nilai warna dalam skala keabuan. Grayscaling adalah proses pengubahan nilai piksel dari citra RGB menjadi citra gray-level. Pengubahan warna RGB ke perkiraan tingkat keabuannya (gray-level) diawali dengan mendapatkan nilai-nilai utamanya yaitu merah (red), hijau (green), dan biru (blue) atau RGB. Kemudian jumlahkan 30% nilai merah, 59% nilai hijau dan 11% nilai biru. Persentase tersebut tidak menjadi persoalan untuk skala apapun yang digunakan, misalnya 0.0 sampai 1.0, 0 sampai 255, atau 0% sampai 100%. Secara matematis dinyatakan sebagai berikut:

Gray = 0,30*Red + 0,59*Green + 0,11*Blue

(28)

2. Binerisasi

Binerisasi merupakan proses untuk memisahkan objek gambar dengan latar belakangnya. Gambar biner tersebut bernilai 0 dan 1, nilai 0 sebagai objek dan nilai 1 sebagai latar belakang. Proses binerisasi ini menggunakan algoritma iterative selection. Iterative selection merupakan suatu proses memperkirakan nilai ambang awal yang menyaring gambar kedalam objek dan latar belakang secara berulang kali dan menggunakan tingkatan-tingkatan (levels) dalam setiap kelompok untuk memperbaiki nilai ambang tersebut. Algoritma iterative selection (Parker,1997)adalah sebagai berikut:

a) Asumsikan tidak diketahui lokasi objek yang sebenarnya. Anggaplah sebagai perkiraan pertama bahwa empat pojok gambar berisi piksel-piksel latar belakang (background) dan sisanya berisi piksel-piksel objek.

b) Pada langkah t, hitung dan sebagai nilai rata-rata background dan

objek tingkat keabuan, dimana pembagian background dan objek pada

langkah t ditetapkan dengan nilai threshold

t B μ t O μ t

T yang ditentukan pada langkah sebelumnya. pixels background j i f background j i t B _ # ) , ( ) , (

∈ = μ pixels object j i f object j i t O _ # ) , ( ) , (

∈ = μ

c) Hitung nilai T(t+1) yang merupakan nilai ambang yang baru, dengan rumus: 2 ) 1 ( t O t B t

(29)

Nilai T(t+1) digunakan untuk memperbaharui perbedaan background dan obyek.

d) Jika T(t+1) sama dengan Tt maka iterasi dihentikan. Jika kondisi sebaliknya maka kembali ke langkah b.

C. JARINGAN SYARAF TIRUAN

Jaringan syaraf tiruan merupakan suatu sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. Jaringan syaraf tiruan dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan asumsi bahwa:

1. Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron). 2. Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung. 3. Penghubung antar neuron memiliki bobot yang akan memperkuat atau

memperlemah sinyal.

4. Untuk menentukan hasil keluaran, setiap neuron menggunakan fungsi aktivasi yang dikenakan pada jumlahan masukan yang diterima.

Jaringan syaraf tiruan ditentukan oleh 3 komponen yaitu arsitektur jaringan, metode pembelajaran (learning) atau training dan fungsi aktivasi

1. Arsitektur Jaringan.

(30)

a) Jaringan Layar Tunggal (single layer network)

Semua unit masukan neuron dihubungkan dengan semua unit keluarannya dan menggunakan bobot yang berbeda-beda. Tidak ada unit masukan yang dihubungkan dengan unit masukan lainnya dan begitu juga dengan unit keluarannya. Selama proses pelatihan, bobot yang digunakan mengalami modifikasi untuk meningkatkan keakuratan hasil.

b) Jaringan Layar Jamak (multi layer network)

Jaringan ini memiliki satu atau beberapa layar lainnya selain layar masukan dan keluaran yaitu layar tersembunyi. Unit-unit dalam satu layar tidak saling berhubungan. Semua unit masukan berhubungan dengan semua unit layar tersembunyi, semua unit layar tersembunyi berhubungan dengan semua unit layar tersembunyi lainnya (jika ada) dan berhubungan dengan semua unit keluaran.

c) Jaringan Reccurent

Model jaringan ini mirip dengan jaringan layar tunggal maupun layar jamak, hanya saja ada neuron keluaran yang memberikan sinyal pada unit masukan yang sering dsebut feedback loop.

2. Metode pembelajaran (learning) atau training.

(31)

dengan supervisi memiliki sejumlah pasangan data (masukan dan target keluaran) yang digunakan untuk melatih jaringan hingga memperoleh bobot yang diinginkan. Suatu masukan diberikan pada jaringan dan jaringan memproses dan menghasilkan keluaran. Setiap pelatihan hasil keluaran dibandingkan dengan target keluaran. Jika berbeda maka jaringan akan menghitung kesalahan yang terjadi dengan cara menghitung selisih antara keluaran jaringan dengan target keluaran. Kesalahan tersebut digunakan jaringan untuk memodifikasi bobot jaringan. Salah satu jaringan yang menggunakan pelatihan dengan supervisi adalah jaringan backpropagation.

Pelatihan tanpa supervisi tidak menggunakan pasangan data hasil keluaran dan target keluaran untuk mengarahkan proses pelatihan. Perubahan bobot jaringan dilakukan berdasarkan parameter tertentu dan jaringan dimodifikasi menurut ukuran parameter tersebut.

3. Fungsi aktivasi.

Fungsi aktivasi dipakai untuk menentukan keluaran suatu neuron. Ada beberapa fungsi aktivasi yang sering dipakai yaitu fungsi threshold (batas ambang), fungsi sigmoid dan fungsi identitas.

a) Fungsi threshold (batas ambang)

( )

⎩ ⎨ ⎧ < ≥ = a x jika a x jika x f 0 1

a = nilai threshold

(32)

b) Fungsi sigmoid

Fungsi sigmoid terbagi atas fungsi sigmoid biner dan fungsi sigmoid bipolar.

1) Fungsi Sigmoid Biner (binary sigmoid function)

Fungsi ini memiliki jangkauan (range) antara 0 dan 1 dan didefinisikan sebagai

( )

( )

x x f − + = exp 1 1 1

dengan turunan :

( )

x f

( )

x

[

f

( )

x

]

f1' = 1 1− 1

x f(x)

Sigmoid Biner, range(0,1)

Gambar 2.2 Sigmoid biner 2) Fungsi Sigmoid Bipolar (bipolar sigmoid function)

Fungsi ini memiliki jangkauan (range) antara -1 dan 1 dan didefinisikan sebagai

( )

( )

1 exp

1 2

2 = +

x x

f

dengan turunan:

( )

x

[

f

( )

x

]

[

f

( )

x

]

f2' 1 2 1 2

2

1 +

(33)

x f(x)

Sigmoid Bipolar, range(-1,1)

Gambar 2.3 Sigmoid bipolar

c) Fungsi identitas

Fungsi identitas menghasilkan nilai output sama dengan nilai masukannya.

( )

x x f =

D. JARINGAN SYARAF TIRUAN BACKPROPAGATION

(34)

1. Arsitektur Jaringan Backpropagation

Arsitektur jaringan backpropagation terdiri dari 3 lapisan yaitu lapisan masukan, lapisan tersembunyi dan lapisan keluaran. Jaringan backpropagation bisa memiliki lebih dari satu lapisan tersembunyi. Gambar 2.4 menunjukan arsitektur jaringan backpropagation dengan n buah masukan (ditambah dengan bias), sebuah layar tersembunyi yang terdiri dari p unit (ditambah dengan bias), serta m buah unit keluaran.

Vij merupakan bobot garis dari unit masukan xi ke unit layar

tersembunyi zj (vj0 merupakan bobot garis yang menghubungkan bias di unit

masukan ke unit layar tersembunyi zj). wkj merupakan bobot dari unit layar

tersembunyi zj ke unit keluaran yk (wk0 merupakan bobot dari bias di layar

tersembunyi ke unit keluaran zk).

(35)

2. Algoritma Pelatihan Jaringan Backpropagation

Pelatihan sebuah jaringan dengan backpropagation meliputi 3 tahap yaitu perambatan maju (feedforward) pelatihan pola masukan, penghitungan kesalahan (error) propagasi mundur, dan perubahan bobot.

Selama perambatan maju, setiap unit masukan (Xi) menerima sebuah

sinyal masukan dan menyebarkan sinyal ini ke setiap unit pada lapisan tersembunyi (hidden unit) Z1,…,Zp. Setiap unit tersembunyi kemudian

menghitung fungsi aktivasinya dan mengirimkan sinyal yang dihasilkan dari fungsi aktivasi ke setiap unit lapisan tersembunyi diatasnya dan setiap unit lapisan tersembunyi yang terakhir mengirimkan sinyal yang dihasilkan dari fungsi aktivasi ke setiap unit lapisan keluaran (output unit). Setiap unit keluaran (Yk) menghitung fungsi aktivasinya dengan membentuk tanggapan

(response) pada jaringan untuk pola masukan yang diberikan.

Selama pelatihan, perhitungan aktivasi setiap unit keluaran dibandingkan dengan nilai target yang harus dicapai untuk menentukan kesalahan yang terjadi pada pola. Kesalahan dihitung dari nilai selisih target dikurangi hasil fungsi aktivasi unit lapisan keluaran. Secara matematis dinyatakan sebagai berikut:

(

)

= − = m k k k y t E 1 2 2 1

Rata-rata kuadrat kesalahan(error) dalam satu epoch:

(36)

Berdasarkan kesalahan (error) ini, faktor gradien dihitung dan digunakan untuk mendistribusikan kembali kesalahan pada unit keluaran ke semua unit pada lapisan sebelumnya (unit tersembunyi yang terhubung langsung ke unit lapisan keluaran). Faktor gradien juga digunakan untuk memperbarui bobot antara lapisan keluaran dan lapisan tersembunyi yang terhubung langsung ke lapisan keluaran. Dengan cara yang sama, faktor gradien dihitung untuk setiap unit lapisan tersembunyi. Faktor tersebut bukan dibutuhkan untuk mendistribusikan kesalahan kembali ke lapisan masukan (input layer), tetapi faktor tersebut digunakan untuk memperbarui bobot antara lapisan tersembunyi dengan lapisan tersembunyi dibawahnya dan memperbarui bobot antara lapisan input dengan lapisan tersembunyi yang berhubungan langsung lapisan input.

Setelah semua faktor gradien dihitungkan, bobot untuk semua lapisan (layer) disetel secara bersamaan. Penyetelan bobot (dari unit tersembunyi ke unit output) berdasarkan pada faktor gradien dan aktivasi pada unit tersembunyi. Penyetelan bobot (dari unit masukan ke unit tersembunyi) berdasarkan pada faktor gradien dan aktivasi pada unit masukan.

(37)

Algoritma pelatihan pada jaringan syaraf tiruan Backpropagation (Fausett,1994) adalah

Langkah 0 :

Inisialisasi semua bobot dengan bilangan acak kecil. Langkah 1 :

Jika kondisi penghentian masih salah (belum terpenuhi) maka lakukan langkah 2 – 9.

Langkah 2 :

Untuk setiap pasang data pelatihan lakukan langkah 3 - 8. Perambatan Maju (Feedforward) :

Langkah 3 :

Setiap unit masukan menerima sinyal masukan dan menyebarkan sinyal ini ke semua unit pada lapisan berikutnya (unit lapisan tersembunyi/ hidden unit).

Langkah 4 :

Setiap unit lapisan tersembunyi menghitung masukan bobot dengan rumus:

= + = n i ij i j

j v xv

in z

1 0

_

dan gunakan fungsi aktivasi yang ditentukan untuk menghitung sinyal keluaran dengan rumus:

(

j

)

j f z in

z = _ ; f

(

z_inj

)

= fungsi aktivasi
(38)

Langkah 5 :

Setiap unit keluaran menghitung masukan bobot dengan rumus:

= + = p j jk j k

k w z w

in y

1 0

_

dan gunakan fungsi aktivasi yang ditentukan untuk menghitung sinyal keluaran dengan rumus:

(

k

k f y in

y = _

)

; f

(

y_ink

)

= fungsi aktivasi Penghitungan kesalahan propagasi mundur (Backpropagation of error):

Langkah 6 :

Setiap unit keluaran membandingkan hasil pelatihan dengan target, kemudian menghitung kesalahan yang terjadi (selisih hasil pelatihan dengan target). Hitung faktor unit keluaran berdasarkan kesalahan tersebut dengan rumus:

(

k k

) (

k

)

k = ty f' y_in

δ

Hitung perbaikan bobot (digunakan untuk perubahan bobot(Wjk) pada proses

selanjutnya),

j k

jk z

w =αδ

Δ

Hitung perbaikan bias (digunakan untuk perubahan bias(W0k) pada proses

selanjutnya),

k k

w =αδ Δ 0

(39)

Langkah 7 :

Setiap unit tersembunyi menghitung masukan delta (dari unit-unit pada lapisan diatasnya), dengan rumus :

= = m k jk k j w in 1 _ δ δ

Kalikan delta dengan turunan fungsi aktivasi untuk menghitung kesalahannya, dengan rumus :

(

j

)

j

j δ _in f' z_in

δ =

Hitung perbaikan bobot (digunakan untuk perubahan bobot(Vij) pada proses

selanjutnya),

i j

ij x

v =αδ

Δ

Hitung perbaikan bias (digunakan untuk perubahan bias(V0j) pada proses

selanjutnya),

j j

v =αδ

Δ 0

Perubahan bobot dan bias :

Langkah 8 :

Setiap unit keluaran mmemperbarui nilai bias dan bobot, dengan rumus :

(

)

jk

(

)

ij

jk baru w lama w

w = +Δ

Setiap unit tersembunyi memperbarui niali bobot dan bias, dengan rumus :

(

)

ij

(

)

ij

ij baru v lama v

v = +Δ

Langkah 9 :

(40)

BAB III

ANALISA DAN PERANCANGAN SISTEM

A. GAMBARAN UMUM SISTEM

Secara umum, program yang dibuat digunakan untuk mengenali gambar-gambar huruf jawa carakan (nglegeno) dan sandangan. Pengenalan gambar-gambar huruf jawa tersebut menggunakan algoritma jaringan syaraf tiruan backpropagation. Masukan yang diperlukan adalah gambar bitmap (*.bmp) atau menggambar menggunakan mouse. Sebelum diolah menggunakan jaringan backpropagation, masukan mengalami proses preprocessing. Dari sistem tersebut akan menghasilkan keluaran berupa nama huruf yang teridentifikasi dari gambar masukan tersebut.

(a)

(b)

Gambar 3.1 (a)Gambaran umum sistem (b) Contoh proses dengan data Pengguna dimungkinkan untuk meng-update data pelatihan backpropagation yang terdiri dari penambahan, pengubahan, dan penghapusan data.

(41)

B. ANALISA SISTEM

Sistem pengenalan pola huruf jawa ini merupakan suatu alat bantu yang digunakan untuk mengidentifikasi masukan huruf jawa yang diberikan. Masukan terdiri dari dua macam yaitu masukan melalui mouse dan masukan berupa gambar yang diambil dari suatu file. Setiap masukan harus diubah terlebih dahulu ke bentuk biner (nilai setiap piksel dari masukan tersebut 0 atau 1) dan dihilangkan latarbelakang putih yang berada di luar objek lalu dinyatakan dalam ukuran 40x40. Citra masukan diubah ke ukuran 40x40 dimaksudkan agar ukuran file tidak terlalu besar sekitar 380 byte dan objek huruf jawa yang diperoleh tetap memiliki karakteristik dari huruf-huruf jawa atau tidak terlalu banyak kehilangan informasi piksel-piksel dari huruf tersebut. Selanjutnya masukan disegmentasi 8 x 8 agar diperoleh bagian-bagian dengan ukuran 5x5 dan objek huruf jawa terbagi dengan baik. Dari proses segmentasi diperoleh 64 region dan jumlahkan piksel yang aktif (berwarna hitam) untuk setiap regionnya. 64 region ini akan digunakan sebagai input jaringan backpropagation. Sebelumnya 64 data tersebut harus diubah kedalam interval [0,1]. Karena fungsi aktivasi yang digunakan adalah fungsi sigmoid dan fungsi sigmoid bersifat asimtotik atau tidak akan pernah mencapai nilai 0 dan 1 maka data tersebut dinormalisasikan terlebih dahulu ke interval [0.1,0.9] menggunakan rumus berikut (Siang,2005):

(

)

1 . 0 8 . 0 ' + − − = a b a x x dimana:
(42)

a = minimum data b = maksimum data

(43)

huruf yang memiliki target tersebut dan dihasilkan suatu nilai error / kesalahannya.

C. PERANCANGAN SISTEM

1. Perancangan Proses

a). Diagram Aliran Data (DAD)

1). DAD level 0 / Diagram Konteks

Gambar 3.2 DAD level 0 / Diagram Konteks

(44)

2). DAD level 1

Gambar 3.3 DAD level 1

(45)

kedua adalah proses pengolahan data pelatihan. Proses tersebut berfungsi untuk mengelola database template atau data pelatihan jaringan backpropagation. Masukan proses pengolahan data pelatihan adalah nama huruf, target, gambar data pelatihan dan data template (nama huruf, target dan gambar data pelatihan biner). Keluaran proses tersebut berupa pesan. Proses terakhir adalah proses pengolahan data pelatihan, proses ini membutuhkan masukan berupa nama huruf, target, dan gambar data pelatihan biner. Proses ini akan mengolah data-data masukan sehingga data tersebut tersimpan didalam database template.

3). DAD level 2 Proses 1 / Pengenalan Pola

(46)
(47)

Keluaran tersebut merupakan keluaran dari sistem pengenalan pola huruf jawa.

Gambar 3.4 DAD level 2 Proses 1 / Pengenalan Pola

4). DAD level 2 Proses 2 / Pengolahan Data Pelatihan

(48)
(49)

Gambar 3.5 DAD level 2 Proses 2 / Pengolahan Data Pelatihan

(50)

besar dengan nilai ambang maka akan bernilai 1 atau sebagai latar belakang. Keluaran berupa gambar input biner.

Gambar 3.6 DAD level 3 Proses 1.2 / binerisasi

b). Desain Modul (Flowchart) 1). Flowchart Grayscaling

(51)

Gambar 3.7 Flowchart Grayscaling

2). Flowchart Cari Nilai Ambang

(52)
(53)
(54)

Gambar 3.8 Flowchart Cari Nilai Ambang

3). Flowchart Ubah Biner

(55)

Gambar 3.9 Flowchart Ubah Biner

4). Flowchart Penghilangan Pinggiran Putih

(56)

dari objek. Masukan berupa citra biner dan keluaran berupa citra biner tanpa pinggiran putih.

(57)

5). Ekstraksi Ciri

Citra masukan berukuran 40x40 dibagi (disegmentasi) menjadi 8x8 dan menghasilkan bagian berukuran 5x5. Setiap bagian dihitung jumlah piksel yang aktif (berwarna hitam). Data-data tersebut dinormalisasikan ke interval [0.1,0.9].

Gambar 3.11 Ekstraksi Data

(58)
(59)

6). Flowchart Pelatihan Backpropagation

(60)
(61)

7). Flowchart Pengujian Backpropagation

Gambar 3.14 Flowchart Proses Pengujian (testing)

(62)

keluaran pada template. Pencarian nilai kesalahan yang paling kecil dan ditampilkan error dan nama huruf yang teridentifikasi.

2. Perancangan Menu

Berikut merupakan rancangan menu sistem dan keterkaitannya: • Menu Pengujian berfungsi menampilkan tampilan pengujian.

• Menu Pelatihan berfungsi menampilkan tampilan pelatihan

backpropagation

• Menu Data pelatihan digunakan untuk menampilkan tampilan

pengolahan data pelatihan.

• Menu Matriks bobot dan bias digunakan untuk menampilkan

tampilan bobot dan bias hasil pelatihan backpropagation.

• Menu Buka Gambar berfungsi membuka file citra dokumen *.bmp.

• Menu bantuan berfungsi informasi cara penggunaan sistem dan

informasi mengenai program yang dibuat.

• Menu tentang berfungsi memberikan informasi-informasi tentang

sistem.

• Menu keluar berfungsi untuk mengakhiri sistem atau keluar dari sistem.

(63)

3. Perancangan Antarmuka / Interface

Sistem pengenalan pola huruf jawa diawali dengan tampilan selamat datang yang akan muncul ketika sistem dijalankan dan akan menampilkan tampilan utama sistem setelah beberapa detik. Tampilan splashscreen menampilkan informasi tentang judul skripsi, logo universitas, pembuat, dosen pembimbing, dan keterangan prodi. Rancangan antarmuka tampilan splashscreen adalah sebagai berikut:

Gambar 3.16 Rancangan antarmuka Splash Screen

(64)

pelatihan, menu data pelatihan dan menu matriks bobot dan bias ditampilkan dalam bentuk page control. Menu buka gambar akan aktif hanya jika tampilan atau menu pengujian aktif. Rancangan antarmuka tampilan utama adalah sebagai berikut:

Gambar 3.17 Rancangan Tampilan Utama

(65)

Gambar 3.18 Rancangan Antarmuka Tampilan Pengujian

(66)

Gambar 3.19 Rancangan Antarmuka Tampilan Pelatihan

Tampilan data pelatihan ini berfungsi untuk mengolah data yang akan digunakan dalam proses pelatihan yang terdiri dari:

1). Editbox1 berfungsi untuk menampilkan kode.

2). Combobox berfungsi untuk memasukan nama karakter dimana tersedia 32 karakter yang dapat dipilih user.

3). Editbox2 berfungsi untuk menampilkan target dari huruf yang dipilih pada combobox.

(67)

5). Grid berfungsi untuk menampilkan semua data yang ada di dalam database.

6). Tombol berfungsi untuk menjalankan proses navigator yaitu first, prior, next dan last dan proses pengolahan data yaitu tambah, edit, hapus, simpan, batal dan refresh.

Gambar 3.20 Rancangan Antarmuka Tampilan Data Pelatihan

Tampilan matriks bobot dan bias menampilkan hasil proses training berupa bobot dan bias yaitu:

1). Bobot dan bias dari lapisan masukan (input layer) ke lapisan tersembunyi (hidden layer) yang ditampilkan pada StringGrid1. 2). Bobot dan bias dari lapisan tersembunyi (hidden layer) ke lapisan

(68)

Rancangan antarmuka tampilan matriks bobot dan bias adalah sebagai berikut:

Gambar 3.21 Rancangan Antarmuka Tampilan Matriks Bobot dan Bias

Tampilan form tentang berisi informasi tentang nama sistem dan profil pembuat. Tersedia tombol ok untuk keluar dari form ini.

(69)

Tampilan form bantuan terdiri dari 2 bagian, bagian kiri berfungsi untuk meletakkan menu dan bagian kanan digunakan untuk menampilkan informasi bantuan dari menu yang telah dipilih.

(70)

A. IMPLEMENTASI PROSES

1. Pelatihan Backpropagation

Proses ini berfungsi untuk melatih jaringan backpropagation untuk mengenali template yang disimpan dalam database. Bobot awal menggunakan bilangan acak kecil dengan interval [-1,1]. Fungsi aktivasi yang digunakan adalah sigmoid biner. Pelatihan akan dihentikan jika nilai epoch telah mencapai maksimum atau mse telah mencapai target kesalahan. Selain itu pelatihan akan dihentikan jika nilai mse tidak menurun (naik). Selanjutnya nilai bobot jaringan yang diperoleh akan disimpan ke file weight.dat.

{Backpropagation Net} dtGbr := TBitmap.Create; Randomize;

{---Inisialisasi bobot dan bias---} for i:=0 to InputUnit do

begin

for j:=1 to HiddenUnit1 do begin

Vij[i,j]:=((random(2000) - 1000) / 1000.0); end;

end;

for j:=0 to HiddenUnit1 do begin

for k:=1 to OutputUnit do begin

Wjk[j,k]:=((random(2000) - 1000) / 1000.0); end;

end;

{---} {get data train}

(71)

totpatt := utama.ADOQuery1.RecordCount; utama.ADOQuery1.First;

for a:=1 to totpatt do begin

tgt:='';

bf := utama.ADOQuery1.FieldByName('gambar') as TBlobField; bs := TADOBlobStream.Create(bf, bmRead);

dtGbr.LoadFromStream(bs); datatrain := ExtractCiri(dtGbr); k:=1;

for i:=1 to kolom do for j:=1 to baris do begin

dttrain[k,a]:=datatrain[i,j]; k:=k+1;

end; bs.Free;

tgt := utama.ADOQuery1.FieldByName('target').AsString; for t:=1 to OutputUnit do

begin dtTarget[t,a]:= StrToInt(tgt[t]); end; utama.ADOQuery1.Next; end; Epoch:=0;

ProgressBar1.Max := StrToInt(Edit3.Text); ProgressBar1.Position := 0;

while (Epoch < EpochTol) do begin

Epoch := Epoch + 1; Mse:=0;

for a:=1 to totpatt do begin

{FEEDFORWARD step 3-5}

{- step 3 ---Sinyal Input Layer---} X[0]:=1;

for i:=1 to InputUnit do begin

X[i] := dtTrain[i,a]; end;

{--end of step 3---} {- step 4 ---Sinyal Hidden Layer---} Z[0]:=1;

for j:=1 to HiddenUnit1 do begin

JumHid := 0;

for i:=0 to InputUnit do //1(bias)+inputunit begin

JumHid := JumHid + X[i]*Vij[i,j]; end;

(72)

Z[j] := 1/(1+exp((-1)*(Zin[j]))); //sigmoid biner end;

{--end of step 4---} {- step 5 ---Sinyal Output Layer---} for k:=1 to OutputUnit do

begin

JumOut:=0;

for j:=0 to HiddenUnit1 do //1(bias)+hiddenunit begin

JumOut := JumOut + Z[j]*Wjk[j,k]; end;

Yin[k] :=JumOut;

Y[k] := 1/(1+exp((-1)*(Yin[k]))); //sigmoid biner end;

{---end of step 5---} {hitung error}

JumE:=0;

for k:=1 to OutputUnit do begin

Eunit[k] := dtTarget[k,a]-Y[k]; JumE := JumE + sqr(Eunit[k]); end;

Eiter[a] := JumE * 0.5; Mse := Mse + Eiter[a];

{BACKPROPAGATION OF ERROR step 6-7} {- step 6 ---} for k:=1 to OutputUnit do

begin

ErrorOutput[k] := (dtTarget[k,a]-Y[k])*(Y[k])*(1-Y[k]); end;

for j:=0 to HiddenUnit1 do //1(bias)+hiddenunit begin

for k:=1 to OutputUnit do begin

deltaWjk[j,k] := alpha*ErrorOutput[k]*Z[j]; //Z[0]/bias = 1; end;

end;

{---end of step 6---} {- step 7 ---} for j:=1 to HiddenUnit1 do

begin

jumError:=0; for k:=1 to OutputUnit do begin

jumError := jumError + ErrorOutput[k]*Wjk[j,k]; end;

ErrorHiddenIn[j] := jumError; end;

for j:=1 to HiddenUnit1 do begin

(73)

end;

for i:=0 to InputUnit do //1(bias)+inputunit begin

for j:=1 to HiddenUnit1 do begin

deltaVij[i,j] := alpha*ErrorHidden[j]*X[i]; //X[0]/bias = 1; end;

end;

{---end of step 7---} {UPDATE WEIGHTS AND BIASES step 8} {- step 8 ---} for j:=0 to HiddenUnit1 do

begin

for k:=1 to OutputUnit do begin

Wjk[j,k] := Wjk[j,k] + deltaWjk[j,k]; end;

end;

for i:=0 to InputUnit do begin

for j:=1 to HiddenUnit1 do begin

Vij[i,j] := Vij[i,j] + deltaVij[i,j]; end;

end;

{---end of step 8---} end; {end for}

Mse := Mse / totpatt;

if (Mse <= ErrorTol)or(Mse > tempMse)then begin

break; end; {end if} tempMse := Mse;

ProgressBar1.StepBy(1); end;{end while}

ProgressBar1.StepBy(StrToInt(Edit3.Text)); Label16.Caption := IntToStr(Epoch); Str(Mse:10:6,SMSE);

Label17.Caption := SMSE; {simpan bobot}

nfile := ExtractFilePath(Application.ExeName)+'data\weight.dat'; assignfile(Fweight,nfile);

rewrite(Fweight); for i:=0 to InputUnit do begin

for j:=1 to HiddenUnit1 do begin

net.bobot1[i,j] := Vij[i,j]; end;

end;

(74)

begin

for k:=1 to OutputUnit do begin

net.bobot2[j,k] := Wjk[j,k]; end;

end;

write(Fweight,net); closefile(Fweight); {end simpan bobot} end;

2. Pengujian Backpropagation

Proses ini akan membuka nilai bobot jaringan yang disimpan di file weight.dat. Nilai bobot jaringan diperoleh dari proses pelatihan backpropagation. Citra masukan dikenai proses ekstraksi ciri. Vektor data yang telah ternormalisasi diolah menggunakan feedforward jaringan backpropagation. Selanjutnya dilakukan penghitungan error antara keluaran jaringan dengan target semua karakter dan dicari nilai error terkecil. Citra masukan dikenali sebagai karakter dengan nilai error yang terkecil tersebut. {buka bobot}

nfile := ExtractFilePath(Application.ExeName)+'data\weight.dat'; assignfile(Fweight,nfile);

reset(Fweight); read(Fweight,net); for i:=0 to InputUnit do begin

for j:=1 to HiddenUnit1 do begin

Vij[i,j] := net.bobot1[i,j]; end;

end;

for j:=0 to HiddenUnit1 do begin

for k:=1 to OutputUnit do begin

Wjk[j,k] := net.bobot2[j,k]; end;

end;

(75)

{get data input}

datain := ExtractCiri(gambarinput); k:=0;

for i:=1 to kolom do for j:=1 to baris do begin

datainput[k]:=datain[i,j]; k:=k+1;

end; {end}

{FEEDFORWARD step 3-5}

{- step 3 ---Sinyal Input Layer---} X[0]:= 1;

for i:=1 to InputUnit do begin

X[i] := datainput[i-1]; end;

{--end of step 3---} {- step 4 ---Sinyal Hidden Layer---} Z[0]:= 1;

for j:=1 to HiddenUnit1 do begin

JumHid:=0;

for i:=0 to InputUnit do begin

JumHid := JumHid + X[i]*Vij[i,j]; end;

Zin[j] :=JumHid;

Z[j] := 1/(1+exp((-1)*(Zin[j]))); //sigmoid biner end;

{--end of step 4---} {- step 5 ---Sinyal Output Layer---} for k:=1 to OutputUnit do

begin

JumOut := 0;

for j:=0 to HiddenUnit1 do begin

JumOut := JumOut + Z[j]*Wjk[j,k]; end;

Yin[k] :=JumOut;

Y[k] := 1/(1+exp((-1)*(Yin[k]))); //sigmoid biner end;

{---end of step 5---}

jumdaftar := utama.ADOQuery2.RecordCount; utama.ADOQuery2.First;

for a:=1 to jumdaftar do begin

desire := utama.ADOQuery2.FieldByName('target').AsString; JumE:=0;

(76)

begin

Eunit[t]:= Y[t]-StrToInt(desire[t]); JumE := JumE + sqr(Eunit[t]); end;

Error[a] := 0.5 * JumE; utama.ADOQuery2.Next; end;

jumdaftar := utama.ADOQuery2.RecordCount; utama.ADOQuery2.First;

min := Error[1];

for a:=1 to jumdaftar do begin

if min >= Error[a] then begin

min := Error[a];

Label5.Font.Size := 36;

kenal := utama.ADOQuery2.FieldByName('namahuruf').AsString; Label5.Caption := kenal;

Str(min:10:6,salah); Edit1.Text := salah;

bf := utama.ADOQuery2.FieldByName('gambar') as TBlobField; bs := TADOBlobStream.Create(bf, bmRead);

Image2.Picture.Bitmap.LoadFromStream(bs); bs.Free;

end;

utama.ADOQuery2.Next; end;

3. Proses Grayscaling

Proses grayscaling berfungsi untuk mengkonversi citra masukan menjadi citra grayscale 8bit. Nilai abu-abu untuk setiap pikselnya diperoleh dari penjumlahan 30% komponen merah, 59% komponen hijau dan 11% komponen biru.

function Grayscale(const Bitmap: TBitmap): TBitmap; var

i, j: Integer;

Gray, Red, Green, Blue: Byte; PixelColor: Longint;

begin

with Bitmap do

(77)

begin

PixelColor := ColorToRGB(Canvas.Pixels[i,j]); Red := PixelColor;

Green := PixelColor shr 8; Blue := PixelColor shr 16;

Gray := Round(0.30 * Red + 0.59 * Green + 0.11 * Blue); Canvas.Pixels[i,j] := RGB(Gray,Gray,Gray);

end;

Result := Bitmap; end;

4. Proses Binerisasi

Proses binerisasi berfungsi mengubah citra grayscale 8bit ke citra biner 1bit. Thresholding menggunakan nilai ambang yang diperoleh menggunakan algoritma iterative selection.

function Binerisasi(gambar: TBitmap): TBitmap; var

gbrbiner : TBitmap; i,j :integer;

T : longint; gray : Pbytearray; begin

gbrbiner := TBitmap.Create; gambar.PixelFormat := pf8bit; T := ThresholdIterative(gambar); try

gbrbiner.PixelFormat := pf1bit; gbrbiner.Width := gambar.Width; gbrbiner.Height := gambar.Height; for j:=0 to gambar.Height-1 do begin

gray := gambar.ScanLine[j]; for i:=0 to gambar.Width-1 do begin

if(gray[i]<=T)then

gbrbiner.Canvas.Pixels[i,j] := 0 else

gbrbiner.Canvas.Pixels[i,j] := 16777215; end;

end;

gbrbiner.PixelFormat := pf1bit; Binerisasi := gbrbiner;

(78)

end;

5. Proses Ektraksi Ciri

Proses ini akan mengsegmentasi citra masukan akan disegmentasi “kolom” x “baris” bagian. Setiap bagian dihitung jumlah piksel hitam dan dinormalisasikan ke interval [0.1,0.9]. Nilai setiap bagian dimasukan kesebuah vektor data.

function ExtractCiri(const gambar: TBitmap):akudat;

var

i,j,jum,x,y,max,min,a,b: integer;

jumPixel : array[1..kolom,1..baris]of integer; begin

{Extraksi Data} for j := 1 to baris do begin

for i := 1 to kolom do begin

jum:=0;

for y := ((j-1)*round(barisinput/baris)) to (j*round(barisinput/baris)-1) do begin

for x := ((i-1)*round(kolominput/kolom)) to (i*round(kolominput/kolom)-1) do begin

if (gambar.Canvas.Pixels[x,y] = 0) then jum := jum + 1;

end; end;

jumPixel[i,j]:=jum; end;

{Normalisasi}

max := jumPixel[1,1]; min := jumPixel[1,1]; for b := 1 to baris do for a := 1 to kolom do begin

if(max < jumPixel[a,b])then max := jumPixel[a,b]; if(min > jumPixel[a,b])then min := jumPixel[a,b]; end;

(79)

ExtractCiri[a,b] := ((0.8*(jumPixel[a,b]-min))/(max-min))+0.1; end;

end; end;

B. IMPLEMENTASI MENU

Ketika sistem dijalankan, sistem akan menampilkan menu pagecontrol pengujian dan menu buka gambar aktif, ditunjukkan pada gambar (a). Jika menu pagecontrol selain pagecontrol pengujian maka menu buka gambar menjadi tidak aktif, ditunjukkan pada gambar (b).

(a)

(b)

(80)

C. IMPLEMENTASI ANTARMUKA

Implementasi tampilan antarmuka form splash screen adalah sebagai berikut:

Gambar 4.2 Form Splash Screen

Implementasi tampilan antarmuka form utama adalah sebagai berikut:

(81)

Implementasi tampilan antarmuka form pengujian adalah sebagai berikut:

Gambar 4.4 Form Pengujian

Implementasi tampilan antarmuka form pelatihan adalah sebagai berikut:

(82)

Implementasi tampilan antarmuka form data pelatihan adalah sebagai berikut:

Gambar 4.6 Form Data Pelatihan

Implementasi tampilan antarmuka form bobot dan bias adalah sebagai berikut:

(83)

Implementasi tampilan antarmuka form tentang adalah sebagai berikut:

Gambar 4.8 Form Tentang

Implementasi tampilan antarmuka form bantuan adalah sebagai berikut:

(84)

A. PELATIHAN JARINGAN BACKPROPAGATION

Arsitektur jaringan backpropagation yang digunakan terdiri dari lapisan masukan, satu lapisan tersembunyi dan lapisan keluaran. Lapisan masukan terdiri dari 64 neuron, jumlah neuron lapisan tersembunyi dapat diubah sesuai kebutuhan dan lapisan keluaran terdiri dari 5 neuron. Lapisan masukan terdiri dari 64 neuron karena lapisan tersebut akan mendapatkan 64 masukan data dari proses ekstraksi ciri. Lapisan keluaran terdiri dari 5 neuron karena target keluaran yang akan dicapai merupakan bilangan 5 bit yang mendefinisikan 32 huruf jawa yang akan dikenali sistem. Pelatihan jaringan backpropagation menggunakan 192 gambar template / data pelatihan (terlampir). Pelatihan jaringan backpropagation dipengaruhi beberapa parameter yaitu:

1. Jumlah Neuron Lapisan Tersembunyi

Percobaan dilakukan terhadap 192 gambar template dengan laju pemahaman 0.1, jumlah epoch 10000 dan target kesalahan 0. Hasil percobaan menunjukkan bahwa semakin banyak jumlah neuron maka waktu yang diperlukan untuk pelatihan semakin lama. MSE terkecil yang diperoleh pada jumlah neuron 45 yaitu 0,002696 dengan waktu 123,328 detik.

Tabel 5.1 Hubungan jumlah neuron lapisan tersembunyi dengan MSE dan waktu.

Jumlah Neuron Lap. Tersembunyi

Mean Square Error (MSE)

Waktu (detik)

5 0,094533 17,937

10 0,013332 31,563

(85)

15 0,008004 44,469

20 0,007978 59,969

25 0,007916 72,844

30 0,007946 85,188

35 0,005326 98,266

40 0,007931 110,922

45 0,002696 123,328

50 0,007931 136,125

55 0,007927 148,282

60 0,007926 161,343

65 0,005305 174,578

70 0,005304 186,218

75 0,005302 199,438

80 0,005299 212,093

85 0,007918 224,110

90 0,010534 236,891

95 0,010534 249,250

100 0,010535 262,312

2. Laju Pemahaman

Percobaan dilakukan terhadap 192 data template dengan arsitektur jaringan 64 neuron lapisan masukan, 45 neuron lapisan tersembunyi dan 5 neuron lapisan keluaran, epoch maksimum 10000, target kesalahan 0. Laju pemahaman berpengaruh pada perbaikan bobot jaringan sehingga berpengaruh pula pada nilai MSE yang diperoleh. Dari hasil percobaan diperoleh bahwa laju pemahaman yang lebih baik untuk digunakan dalam pengenalan huruf jawa adalah 0.7 karena menghasilkan nilai MSE terkecil yaitu 0,002627.

Tabel 5.2 Hubungan Laju Pemahaman dengan MSE dan Waktu Pelatihan Laju pemahaman MSE Jumlah epoch Waktu (detik)

0.1 0,002696 10000 123,328

0.2 0,002655 10000 123,344

(86)

0.4 0,007870 10000 123,610

0.5 0,002631 10000 123,625

0.6 0,007865 10000 123,641

0.7 0,002627 10000 123,656

0.8 0,005244 10000 123,609

0.9 0,005243 10000 123,594

3. Target Kesalahan

Percobaan dilakukan dengan arsitektur jaringan 64 neuron lapisan masukan, 45 neuron lapisan tersembunyi dan 5 neuron lapisan keluaran, epoch maksimum 10000 dan laju pemahaman 0,7. Semakin kecil nilai target kesalahan maka pengenalannya semakin baik dan semakin lama pula waktu pelatihan. Hal tersebut ditunjukkan pada hasil percobaan dibawah.

Tabel 5.3 Hubungan Target Kesalahan dengan Waktu Pelatihan

Target Kesalahan Waktu (detik)

0,1 0,859 0,01 13,313 0,001 84,343 0,0001 85,313 0,00001 123,647

4. Jumlah Epoch

(87)

semakin kecil atau proses pelatihan mendekati target. Selain itu, semakin besar jumlah epoch maka semakin lama pula proses pelatihan.

Tabel 5.4 Hubungan Jumlah Epoch dengan MSE dan Waktu Pelatihan

Jumlah Epoch MSE Waktu (detik)

100 0,015905 1,391

500 0,013355 4,703

1000 0,005353 8,890

5000 0,000021 42,218

10000 0,00001 123,647

B. HASIL PENGUJIAN

(88)

Tabel 5.5 Hasil Pengujian Data Kelompok 1 (Citra Tulisan Tangan yang

Di-scan)

Hasil Pengujian Nama Huruf

Sebenarnya

Citra

Masukan Nama Huruf Kesalahan(Error)

Durasi Proses (detik)

Ha Ha 0.000989 0,015

Na Na 0.064875 0,016

Ca Ha 0.002613 0,000

Ra Ra 0.008500 0,000

Ka Ka 0.000556 0,016

Da Ha 0.032493 0,000

Ta Ka 0.130357 0,000

Sa Sa 0.049967 0,000

(89)

La Sa 0.018892 0,000

Pa Dha 0.005858 0,015

Dha Nga 0.186560 0,016

Ja Ja 0.002053 0,015

Ya Ya 0.000147 0,000

Nya Ha 0.040944 0,000

Ma Ja 0.160216 0,016

Ga Ga 0.025190 0,000

Ba Ca 0.001760 0,000

(90)

Nga Pa 0.084772 0,000

Suku Suku 0.077182 0,016

Wulu Wulu 0.003753 0,000

Pepet Pa 0.195658 0,016

Cecak Cecak 0.006335 0,016

Layar Layar 0.028520 0,016

Taling Taling 0.070089 0,016

Tarung Tarung 0.007076 0,016

Wignyan Cecak 0.005405 0,015

(91)

Pengkal Pengkal 0.077542 0,016

Cakra ra Cakra ra 0.096467 0,016

Cakra keret Nga 0.001204 0,000

Dari data diatas terdapat 32 huruf masukan dan 16 masukan yang dapat dikenali

dengan benar atau sebesar 100% 50% 32

16

=

x

Tabel 5.6 Hasil Pengujian Data Kelompok 2 (Citra Tulisan Tangan yang

Di-scan)

Hasil Pengujian Nama Huruf

Sebenarnya

Citra

Masukan Nama Huruf Kesalahan(Error)

Durasi Proses (detik)

Ha Ha 0.001366 0,016

Na Na 0.000475 0,000

Ca Ha 0.000034 0,000

Ra Ra 0.002650 0,016

(92)

Da Da 0.034932 0,016

Ta Wa 0.056329 0,000

Sa Sa 0.000001 0,000

Wa La 0.072655 0,015

La La 0.123504 0,000

Pa Dha 0.079949 0,000

Dha Nga 0.007483 0,015

Ja Pangkon 0.026519 0,000

Ya Ya 0.030047 0,000

Nya Ja 0.006115 0,016

Ma Dha 0.001036 0,016

(93)

Ba Nga 0.070247 0,016

Tha Nga 0.025073 0,016

Nga Tha 0.131339 0,016

Suku Pengkal 0.029753 0,016

Wulu Wulu 0.086120 0,016

Pepet Nga 0.000047 0,000

Cecak Wignyan 0.123215 0,015

Layar Layar 0.000001 0,015

Taling Cakra ra 0.028625 0,015

Tarung Cakra keret 0.013103 0,016

Wignyan Cecak 0.065659 0,016

(94)

Pengkal Ya 0.058690 0,016

Cakra ra Cakra ra 0.000478 0,015

Cakra keret Cakra ra 0.000578 0,016

Dari data diatas terdapat 32 huruf masukan dan 12 masukan yang dapat dikenali

dengan benar atau sebesar 100% 37,5% 32

12

=

x

Tabel 5.7 Hasil Pengujian Data Kelompok 3 (Huruf Jawa Cetak)

Hasil Pengujian Nama Huruf

Sebenarnya

Citra

Masukan Nama Huruf Kesalahan(Error)

Durasi Proses (detik)

Ha Ha 0.000129 0,015

Na Na 0.002078 0,016

Ca Ta 0.002278 0,016

Ra Ra 0.000011 0,000

Ka Ka 0.000001 0,016

(95)

Ta Ka 0.013578 0,000

Sa Sa 0.001823 0,016

Wa Wa 0.074352 0,000

La La 0.000359 0,000

Pa Pa 0.018534 0,000

Dha Dha 0.000123 0,016

Ja Ja 0.000964 0,000

Ya Ya 0.000090 0,000

Nya Nya 0.055661 0,016

Ma Nya 0.059605 0,016

(96)

Ba Ba 0.003619 0,016

Tha Tha 0.004509 0,016

Nga Ca 0.035566 0,016

Suku Wulu 0.152831 0,000

Wulu Taling 0.086872 0,016

Pepet Pepet 0.000060 0,016

Cecak Cecak 0.004297 0,016

Layar Layar 0.000000 0,016

Taling Taling 0.000001 0,000

Tarung Tarung 0.000001 0,016

(97)

Pangkon Pangkon 0.000006 0,016

Pengkal Pengkal 0.003997 0,000

Cakra ra Cakra ra 0.000000 0,016

Cakra keret Cakra keret 0.000015 0,016

Dari data diatas terdapat 32 huruf masukan dan 26 masukan yang dapat dikenali

dengan benar atau sebesar 100% 81,25% 32

26 =

x

Tabel 5.8 Hasil Pengujian Data Kelompok 4 (Huruf Jawa Cetak)

Hasil Pengujian Nama Huruf

Sebenarnya

Citra

Masukan Nama Huruf Kesalahan(Error)

Durasi Proses (detik)

Ha Ha 0.001254 0,000

Na Na 0.162777 0,000

Ca Ka 0.045452 0,016

Ra Ra 0.137006 0,016

(98)

Da Da 0.003725 0,000

Ta Ka 0.000128 0,015

Sa Sa 0.046179 0,000

Wa Wulu 0.116002 0,015

La La 0.000005 0,015

Pa Ka 0.091147 0,016

Dha Da 0.000197 0,000

Ja Wulu 0.071846 0,016

Ya Ya 0.000004 0,016

Nya Ka 0.072829 0,000

Ma Ba 0.052801 0,000

Ga Ha 0.051383 0,000

Ba Da 0.009927 0,000

(99)

Nga Na 0.051675 0,000

Suku Suku 0.002550 0,000

Wulu Wulu 0.000090 0,015

Pepet Pepet 0.075956 0,000

Cecak Cecak 0.012597 0,016

Layar Ba 0.016792 0,016

Taling Taling 0.000049 0,016

Tarung Tarung 0.009633 0,000

Wignyan Taling 0.011868 0,000

Pangkon Pangkon 0.000001 0,015

Pengkal Pengkal 0.006261 0,016

Cakra ra Cakra ra 0.000003 0,000

Cakra keret Cakra keret 0.000219 0,015

Dari data diatas terdapat 32 huruf masukan dan 18 masukan yang dapat dikenali

dengan benar atau sebesar 100% 56,25% 32

18

=

(100)

Tabel 5.9 Hasil Pengujian Data Kelompok 5 (Citra Masukan Melalui

Mouse)

Hasil Pengujian Nama Huruf

Sebenarnya

Citra

Masukan Nama Huruf Kesalahan(Error)

Durasi Proses (detik)

Ha Ha 0.008217 0,016

Na Na 0.033730 0,000

Ca Ca 0.007765 0,000

Ra Tha 0.005654 0,000

Ka Ha 0.114335 0,000

Da Da 0.067826 0,000

Ta Ta 0.008459 0,016

Sa Sa 0.000053 0,015

(101)

La La 0.026723 0,015

Pa Pa 0.073599 0,016

Dha Dha 0.078312 0,016

Ja Ja 0.000012 0,000

Ya Ya 0.005959 0,015

Nya Nya 0.033247 0,016

Ma Ga 0.010616 0,015

Ga Ga 0.000030 0,015

Ba Ba 0.072295 0,000

(102)

Nga Tha 0.004590 0,000

Suku Wignyan 0.048077 0,016

Wulu Pepet 0.130564 0,000

Pepet Pepet 0.041731 0,000

Cecak Cecak 0.017109 0,016

Layar Layar 0.000008 0,016

Taling Tha 0.000103 0,015

Tarung Cakra ra 0.000069 0,016

Wignyan Wignyan 0.000000 0,000

Pangkon Pangkon 0.015394 0,016

(103)

Cakra ra Cakra ra 0.000215 0,000

Cakra keret Cecak 0.002179 0,015

Dari data diatas terdapat 32 huruf masukan dan 22 masukan yang dapat dikenali

dengan benar atau sebesar 100% 68,75% 32

22

=

x

C. ANALISA HASIL

Berdasarkan pengujian terhadap 160 data masukan (5x32 data) yang ditunjukan pada tabel 5.5, tabel 5.6, tabel 5.7, tabel 5.8, dan tabel 5.9 diperoleh bahwa sistem dapat mengenali citra masukan sebanyak 94 data dengan benar atau sebesar 58,75 %. Sistem dapat mengenali data template dengan benar sebesar

% 15 , 91 % 100 192 175

=

x (hasil pengujian data template terlampir).

(104)

1. Pengaruh dari preprocessing citra masukan.

Huruf ja Huruf wulu

Gambar 5.1 Contoh kesalahan pengenalan

Kedua huruf diatas dikenali sebagai huruf wulu. Huruf ja yang dikenai proses preprocessing menjadi terlalu tebal jika dibandingkan dengan template huruf ja sehingga karakteristik bentuk huruf ja tidak terlalu jelas.

Gambar 5.2 Template huruf Ja

Kejadian seperti diatas banyak terjadi pada data 4 terutama huruf-huruf carakan (nglegeno) terdapat 11 data termasuk huruf ja diatas.

2. Hasil proses ekstraksi ciri

(105)

a) Huruf nga.

Gambar 5.3 Huruf Nga

Gambar diatas adalah gambar uji dan dikenali sebagai huruf tha. Hasil proses ekstraksi ciri pola tersebut sebagai berikut:

Gambar 5.4 Hasil Ektraksi Ciri Huruf Nga Uji

(106)

Gambar 5.5 Hasil ekstraksi ciri gambar template huruf nga

b) Huruf ca.

Gambar 5.6 Huruf Ca

Gambar diatas adalah gambar uji dan dikenali sebagai huruf Ha. Hasil proses ekstraksi ciri pola tersebut sebagai berikut:

(107)

Nilai –nilai tersebut tidak terlalu sama dengan hasil proses ekstraksi ciri data template yang ditunjukkan dengan lingkaran. Beberapa hasil proses ekstraksi ciri data template sebagai berikut:

(108)

3. Hasil keluaran jaringan Backpropagation

Penentuan hasil pengenalan berdasarkan keluaran dari jaringan backpropagation. Dari beberapa hasil pengujian dapat terlihat bahwa kesalahan pengenalan karena adanya perbedaan satu nilai dari lima nilai yang ada yang ditunjukkan pada tabel berikut.

Tabel 5.10 Contoh kesalahan pengenalan

Nama huruf Target Nama huruf Target Perbedaan Contoh

(109)

A. KESIMPULAN

Berdasarkan dari hasil penelitian ini dapat disimpulkan bahwa:

1. Dari percobaan terhadap data template yang terdapat 192 gambar yang ditunjukan pada tabel 5.1 dan tabel 5.2 disimpulkan bahwa proses pelatihan dan pengenalan huruf jawa jaringan backpropagation menggunakan arsitektur 64 neuron lapisan masukan, 45 neuron lapisan tersembunyi dan 5 neuron lapisan keluaran dan laju pemahaman 0,7 karena menghasilkan nilai MSE yang terkecil.

2. Terciptanya sistem yang dapat mengenali gambar huruf jawa uji sebesar 58,75 % dengan benar dan mengenali gambar huruf jawa template yang telah dilatih dengan jaringan backpropagation sebesar 91,15 % dengan benar. 3. Kesalahan sistem untuk mengenali huruf jawa masukan dipengaruhi

beberapa hal yaitu proses preprocessing, ekstraksi ciri dan hasil keluaran jaringan backpropagation.

(110)

B. SARAN

Beberapa saran yang dapat digunakan untuk menyempurnakan sistem adalah: 1. Penggunaan algoritma ekstraksi ciri yang lain untuk mendapatkan ciri yang lebih

mence

Gambar

Gambar 1.1 Aksara Jawa Sandhangan
Gambar 2.3 Sigmoid bipolar
Gambar 2.4 Arsitektur jaringan syaraf tiruan Backpropagation dengan 1 lapisan tersembunyi (Fausett,1994)
Gambar 3.3 DAD level 1
+7

Referensi

Dokumen terkait

Pada penelitian ini didapatkan 80% sampel mempunyai tingkat pengetahuan tentang antenatal yang baik dengan tindakan untuk melakukan perawatan antenataljuga baik dimana

Untuk itu perusahaan properti harus dapat mempertimbangkan masalah-masalah yang dihadapi seperti konsep perumahan dengan fasilitas dan lokasi yang strategis untuk mempengaruhi

1 Diabetes melitus tipe 2 sering juga di sebut diabetes life style karena penyebabnya selain faktor keturunan, faktor lingkungan meliputi usia, obesitas, resistensi insulin,

Chattri Sigit Widyastuti, M.Hum., Kepala Program Studi Sastra Indonesia Fakultas Ilmu Budaya Universitas Sebelas Maret Surakarta, yang telah meluangkan waktu,

Analisis Kepuasan Konsumen Susu UHT Merk Real Good di Kota Bogor.. Jakarta: Penerbit Bhratara

dimana PER merupakan price earnings ratio , RR merupakan retention ratio , ROE merupakan return on equity , IHD merupakan imbal hasil yang disyaratkan atau tingkat

25 BERBAH SEHAT Jl Raya Berbah Gd Kuning-Krikilan, Tegaltirto 26 BEDOG FARMA Bedog RT/RW 03/24 Trihanggo Gamping Sleman 27 BERKAH FARMA Jl Raya Kadisoka RT 01/01 Maguwoharjo.. 28

Hasil penelitian ini dijadikan sebagai bahan evaluasi terhadap kepala madrasah apakah kepala madrasah telah memiliki kepemimpinan yang tinggi dalam menciptakan