Anda di halaman 1dari 120

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PENGENALAN POLA ANGKA DENGAN WAVELET HAAR

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat


Memperoleh Gelar Sarjana Sains
Program Studi Ilmu Komputer

Oleh :

Fransisca Pramesti
NIM: 023124019

PRODI ILMU KOMPUTER JURUSAN MATEMATIKA


FAKULTAS MIPA
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

SKRIPSI

PENGENALAN POLA ANGKA DENGAN WAVELET HAAR

Oleh :

Fransisca Pramesti
NIM: 023124019

Telah disetujui oleh:

Pembimbing

A. Rita Widiarti, S.Si, M.Kom Tanggal………………………...


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

HALAMAN PENGESAHAN

PENGENALAN POLA ANGKA DENGAN WAVELET HAAR

Dipersiapkan dan ditulis oleh

FRANSISCA PRAMESTI
NIM : 023124019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini

tidak memuat karya/bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Kesuksesan adalah kebanggaan, dan proses dibalik semua


itu adalah pelajaran

Allah turut bekerja dalam segala sesuatu untuk


mendatangkan kebaikan bagi mereka yang mengasihi Dia...
Roma 8:28

Tugas akhir ini kupersembahkan untuk :

TUHAN YESUS, BUNDA MARIA

Bapak Nararyohadi &Ibu Dwi Purwaningsih

Adikku Adi dan Tyas


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ABSTRAK

Usaha untuk menghasilkan alat yang dapat meniru kemampuan manusia


dalam pengenalan obyek terus dilakukan diberbagai bidang. Usaha-usaha tersebut
telah mendukung berkembangnya suatu disiplin dan metodologi yang kemudian
dikenal dengan nama Pengenalan Pola (Pattern Recognition). Salah satu yang
populer adalah aplikasi Optical Character Recognition.
Aplikasi dari Optical Character Recognition yang terdapat dalam tugas
akhir ini digunakan untuk mengenali tulisan tangan yang ditulis dengan alat bantu
mouse yang telah disimpan dalam bentuk file .bmp. Proses pengenalan karakter
ini diterapkan menggunakan metode template matching, dimana cara kerja metode
ini adalah melakukan pengenalan pola terhadap karakter yang ingin dikenali
dengan membandingkan antara input pattern dengan template yang sudah
disimpan. Proses recognition yang diterapkan menggunakan feature extraction
dengan wavelet Daubechies 1 atau yang biasa disebut dengan wavelet Haar. Hasil
yang dicapai dari sistem ini menunjukkan bahwa unjuk kerja pengenalan
meningkat cukup signifikan untuk masukan dengan dimensi 32 x 32
(dekomposisi wavelet level 1) yaitu sebesar 83.33%, untuk masukan berdimensi
16 x 16 (dekomposisi wavelet level 2) sebesar 63.33%, dan masukkan dengan
dimensi 8 x 8 (dekomposisi wavelet level 3) sebesar 60%. Prosentase
keberhasilan yang relatif kecil pada level 2 dan level 3 disebabkan karena semakin
kecil dimensi gambar masukan, maka informasi yang tersimpan pada gambar
masukan juga semakin sedikit.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ABSTRACT
Efforts for producting tools which can imitate human skill in recognizing an
object have been conducting in many different aspects. The efforts support the
development of a kind of disciplined methodology called Pattern Recognition.
One of the most popular ones is Optical Character Recognition Application.
The application of Optical Character Recognition which have been stored in
this thesis is need to recognize handwriting written by mouse. The character
recognition process is applied using template matching method, in which the
method works by recognizing the pattern in the character which suppose to be
recognized by comparing the input pattern with stored template. The recognition
process applied uses feature extraction with daubechies1 wavelet, also known as
Haar wavelet. The result achieved from this system shows that the recognition
result increase significantly for the input with 32 x 32 dimensions (Level 1 of
wavelet decomposition) that is for about 83.33%. Compared with the input with
16 x 16 dimensions (level 2 of wavelet decomposition) and the input with 8 x 8
dimensions (level 3 of wavelet decomposition). The percentage of the success on
level 2 and level 3 caused by the input images dimension in become smaller. So
the information which has been restore on the input image also become smaller.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

KATA PENGANTAR

Puji dan syukur penulis ungkapkan pada Tuhan Yesus dan Bunda Maria,

karena hanya berkat dan bimbingan-Nya penulis bisa menyelesaikan tugas akhir

ini. Dengan usaha yang keras dan diiringi doa yang tiada henti juga atas bantuan

semua pihak maka skripsi ini dapat diselesaikan.

Dengan selesainya tugas akhir yang merupakan salah satu syarat untuk

meraih gelar Sarjana pada Program Studi Ilmu Komputer Universitas Sanata

Dharma Yogyakarta, penulis mengucapkan terima kasih yang sebesar - besarnya

kepada:

1. Ibu PH Prima Rosa, S.Si., M.Sc selaku Ketua Program Studi Ilmu Komputer

Universitas Sanata Dharma.

2. Ibu Rita Widiarti, S.Si, M.Kom selaku Dosen pembimbing atas segala

pemikiran dalam membimbing, ide, tenaga dalam menyelesaikan skripsi ini,

serta kesabaran dan sarana yang sangat penulis perlukan untuk

menyelesaikan tugas akhir ini dari awal hingga selesai.

3. Bapak St. Eko Hari Permadi, S.Si., M.Kom dan Bapak Y.Joko Nugroho,

S.Si selaku Dosen penguji dan semua dosen Ilmu Komputer Universitas

Sanata Dharma yang telah memberikan dukungan dalam penyelesaian

skripsi ini.

4. Orang tua tercinta Bapak Nararyohadi dan Ibu Dwi Purwaningsih. Terima

kasih atas doa, dukungan untuk terus maju, cinta dan kesabaran dalam

mendidik penulis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

5. Adikku Adi dan Tyas, makasih buat dukungan dan hiburannya ☺

6. Agustinus Adi Santoso, makasih buat doa, dukungan dan kesabaran

menemani menyelesaikan tugas akhir ini.

7. Hendy, Agus, Uus, Oscar, Tina, Pipit, Evy, Agnes Putri, Ikoq, Lusi, Agnes

Novens, dan Teman-teman IKOM 02 yang tidak bisa disebutkan satu per

satu.

8. Bpk/Ibu Joko Pamungkas, dan teman-teman wisma Rosari yang telah

bersedia menjadi pengisi template angka (Dinta+Yoyo, Nine+Presto, Devi,

Agnes (D’ Patkay), Agnes Psi, Jean, Suci, Dewi, Vivi, Tina, Tika, Nice, De’

e, Sri ), dan seluruh penghuni Rosari!!!!!

9. Galuh, Titis dan Keluarga Besar Papringan.

10. Petugas Laboran dan Sekre MIPA (Pak Tukijo, Ibu Linda) terima kasih buat

bantuannya.

Penulis menyadari bahwa dalam penulisan tugas akhir ini masih

banyak kekurangan, kelemahan dan jauh dari sempurna. Oleh sebab itu

penulis dengan kerendahan hati mengharapkan kritik dan saran yang

membangun untuk penyempurnaan tugas akhir ini.

Yogyakarta, April 2007

Penulis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

10

DAFTAR ISI

HALAMAN JUDUL……………………………………………………….. i
HALAMAN PERSETUJUAN....................................................................... ii
HALAMAN PENGESAHAN....................................................................... iii
PERNYATAAN KEASLIAN KARYA…………………………………… iv
HALAMAN PERSEMBAHAN................................................................... v
ABSTRAK………………………………………………………………….. vi
ABSTRAC..................................................................................................... vii
KATA PENGANTAR.................................................................................. viii
DAFTAR ISI……………………………………………………………….. x
DAFTAR TABEL……………………………………................................ xii
DAFTAR GAMBAR……………………………………………………….. xiii
BAB I PENDAHULUAN………………………………………………….. 1
A. Latar Belakang………………………………………………………. 1
B. Rumusan Masalah…………………………………………………… 2
C. Batasan Masalah…………………………………………………….. 2
D. Tujuan Penulisan…………………………………………………….. 2
E. Manfaat Penulisan…………………………………………………… 2
F. Metodologi Penelitian………………………………………………... 3
G. Sistematika Pembahasan…………………………………………….. 3
BAB II LANDASAN TEORI……………………………………………… 5
A. Pengertian Pengenalan Pola………………………………………… 5
B. Sistem Pengenalan Pola………………………………….................. 6
1. Pendekatan Statistik…………………………………………….. 6
2. Pendekatan Sintaktik……………………………………………….10
C. Ekstraksi Ciri Dengan Dekomposisi Wavelet…………………… 11
1. Vektor……………………………………………………….. 11
2. Wavelet……………………………………………………………12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

11

3. Transformasi Terhadap Citra…………………………………… 17


4. Contoh Dekomposisi Citra Dengan Wavelet Haar………………..18
D. Euclidean Algoritma……………………………………………… 21
BAB III ANALISA DAN PERANCANGAN SISTEM…………………... 22
A. Analisa Sistem……………………………………............................. 22
1. Desain Sistem Pembuat Basis Data…………………………… 23
2. Desain Sistem Pengenalan Angka…………………………….. 24
B. Analisa Kebutuhan Hardware dan Software……………………….. 25
C. Perancangan User interface………………………………………… 26
D. Perancangan Proses………………………………………………… 35
1. Input Data Baru……………………………………………….. 35
2. Preprocessing ………………………………………………… 36.
3. Ekstraksi Ciri………………………………………………… 37
4. Pengenalan Angka……………………………………………. 38
BAB IV IMPLEMENTASI………………………………………………... 40
A. Algoritma..………………………………………………………… 40
B. Jalannya Program…….…………………………………………… 43
BAB V HASIL DAN PEMBAHASAN………………………………… 55
C. Hasil Pengujian……………………………………………………… 55
D. Analisa Hasil………………………………………………………… 59
BAB VI KESIMPULAN DAN SARAN…………………………………… 60
DAFTAR PUSTAKA…………………………............................................. 61
LAMPIRAN A............................................................................................. 63
LAMPIRAN B.............................................................................................. 93
LAMPIRAN C............................................................................................... 95
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

12

DAFTAR TABEL

Tabel 2.1 Tabel Pola dan Cirinya………………………… 5

Tabel 2.2 Analogi pendekatan statistika dan sintatik……………………… 10

Tabel 2.3 Scalling, Mother Wavelet, Mother Wavelet Dilasi, Mother

Wavelet Dilasi digeser.................................................................. 14

Tabel 5.1 Hasil Pengujian………………………………………………… 55

Tabel 5.2 Prosentase Kebenaran Pengenalan……………………………. 59


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

13

DAFTAR GAMBAR

2.1 Grafik fungsi kerapatan dan ciri diameter apel dan jeruk......................... 7
2.2 Diagrampendekatanstatistik..................................................................... 8
2.3 Contoh Pembagian Kelas Pola………………………………………… 9

2.4 Diagram Pendekatan Sintaktik……………………………………… 10

2.5Vektor h0, h1, h2, h3 dalam Bentuk Sinyal……………………………… 13

2.6 Algortima Pyramida Mallat…………………………………………….. 15

2.7 Proses Dekomposisi wavelet…………………………………………….. 17

2.8 Hasil Dekomposisi wavelet …………………………………… 18

2.9 Diagram Ruang ciri set sample belajar. Sampel i

dimasukkan ke kategori k=3 berdasarkan

metode tetangga terdekat dengan pengukuran jarak educlidean…..... 21

3.1 Hubungan antara sistem pembuat basis data dengan sistem

pengenalan angka……………………………………………………… 22

3.2 DFD level 0……………………………………………………………. 23

3.3 DFD level 1 ……………………………………………………………. 23

3.4 DFDlevel2…………………………………………………………… 24

3.5 DFD level 0………………………………………………………… 24

3.6 DFD level 1……………………………………………………………… 24

3.7 DFD level 2……………………………………………………………… 25

3.8 Flowchart umum………………………………………………………… 27

3.9 Form awal……………………………………………………………….. 28

3.10 Form menu utama……………………………………………………… 29

3.11 Form perancangan struktur menu utama……………………………….. 29


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

14

3.12 Form ambil gambar………………………………………………………. 30

3.13 Form tampilan gambar masukan……………………………………… 31

3.14 Perancangan form tampilan gambar preprocessing……………………… 32

3.15 Perancangan form tampilan gambar ekstraksi ciri……………………….. 33

3.16 Perancangan form hasil pengenalan……………………………………… 33

3.17 Perancangan peringatan………………………………………………….. 34

3.18 Perancangan konfirmasi………………………………………………….. 34

3.19 Perancangan informasi………………………………………………….. 34

3.20 Flowchart input data baru………………………………………………. 35

3.21 Flowchart preprocessing……………………………………………… 36

3.22 Flowchart ekstraksi ciri………………………………………………… 37

3.23 Flowchart pengenalan angka…………………………………………… 39

4.1 Form welcome…………………………………………………………… 43

4.2 menu utama……………………………………………………………… 44

4.3 Open file gambar angka………………………………………………… 44

4.4 Form waitbar……………………………………………………………… 45

4.5 Form proses pengenalan tampil gambar………………………………… 45

4.6 Hasil preprocessing……………………………………………………… 46

4.7 ekstraksi ciri level 1……………………………………………………… 47

4.8 ekstraksi ciri level 2……………………………………………………… 48

4.9 ekstraksi ciri level 3……………………………………………………… 49

4.10 Hasil pengenalan……………………………………………………….. 50

4.11 Input data baru………………………………………………………… 51


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

15

4.12 Form data baru…………………………………………………………… 51

4.13 Form data baru preprocessing………………………………………… 52

4.14 Form vektor ciri……………………………………………………….. 52

4.15 Form dialog simpan…………………………………………………… 53

4.16 Kesalahan preprocessing……………………………………………… 53

4.17 Kesalahan ekstraksi ciri………………………………………………… 53

4.18 Dialog keluar dari program……………………………………………… 54


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

16

BAB I

PENDAHULUAN

A. Latar Belakang

Manusia mempunyai kemampuan luar biasa untuk mengenali obyek-

obyek berdasarkan ciri-ciri atau pengetahuan yang pernah diamatinya dari obyek-

obyek bersangkutan. Misalnya manusia dapat membedakan dengan mudah antara

tiang listrik dengan pohon, atau antara kursi dengan meja. Begitu juga

kemampuan pengenalan manusia dalam mengenali tulisan tangan maupun tulisan

cetak dalam bentuk angka maupun huruf.

Usaha untuk menghasilkan alat yang dapat meniru kemampuan manusia

dalam pengenalan obyek terus dilakukan diberbagai bidang. Usaha-usaha tersebut

telah mendukung berkembangnya suatu disiplin dan metodologi yang kemudian

dikenal dengan nama Pengenalan Pola (Pattern Recognition). Salah satu yang

populer adalah aplikasi Optical Character Recognition.

Pada proses pengenalan itu sendiri, terdapat beberapa metode untuk

mendapatkan hasil pengenalan yang lebih akurat. Salah satu yang populer adalah

Dekomposisi Wavelet Haar. Disini Wavelet Haar digunakan untuk penarikan

vektor ciri. Wavelet Haar merupakan wavelet yang paling sederhana. Selain itu,

dibandingkan dengan penyimpanan langsung (tanpa transformasi), penyimpanan

citra digital sebagai deret Haar (yang diwakili oleh koefisien Haar) mempunyai

keunggulan yaitu semakin tinggi resolusi citra digital tersebut, semakin banyak

koefisien Haar dan semakin kecil nilainya (banyak di antaranya malah akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

17

bernilai nol). Pembulatan koefisien-koefisien Haar yang bernilai "kecil" menjadi

nol akan menghemat banyak memori penyimpanan dan tidak akan mengubah

banyak citra semula. Dan juga Wavelet Haar dapat membawa keluar ciri (feature)

asli dari citra yang dikenainya. Dengan demikian penulis tertarik untuk membuat

aplikasi pengenalan angka dengan ekstraksi ciri Wavelet Haar.

B. Rumusan Masalah

Membangun program apliksi untuk mengenali angka dengan Wavelet Haar.

C. Batasan masalah

1. Metode ekstraksi ciri wavelet Haar yang dipakai hanya pada level 1, level

2, dan level 3

2. Gambar masukan berupa gambar angka yang ditulis dengan alat bantu

mouse dengan format .bmp

3. Posisi gambar angka tegak

4. Ukuran gambar minimal 64 pixel x 64 pixel

D. Tujuan

Membuat aplikasi yang dapat mengenali gambar angka dengan

pemrosesan awal wavelet .

E. Manfaat

Hasil pengenalan dapat dikembangkan untuk aplikasi pengenalan pola

yang lain, misalnya pengenalan kode pos

F. Metodologi

Metodologi dalam Rekayasa Perangkat Lunak yang digunakan adalah

metode Waterfall. Tahap-tahap yang akan dilakukan adalah :


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

18

1. Perancangan sistem : mengumpulkan input untuk sistem dan output apa


saja yang akan dihasilkan oleh sistem yang dibuat.
2. Analisis : Semua kebutuhan yang sudah dikumpulkan diidentifikasi dan
difokuskan secara khusus pada program aplikasi.
3. Desain : Pada tahap ini semua kebutuhan yang sudah diidentifikasi akan
diubah menjadi suatu representasi software sepert flowchart yang dapat
dipelajari kualitasnya sebelum memasuki tahap coding.
4. Implementasi: Hasil dari tahap desain akan diubah menjadi bentuk yang
dapat dibaca dan dieksekusi oleh mesin , dalam hal ini adalah dalam
bentuk listing program.
5. Pengujian: Untuk menemukan error dan memastikan bahwa input yang
sudah diidentifikasikan pada tahap perancangan dan analisis akan
menghasilkan output seperti yang diinginkan.
G. Sistematika Penulisan

BAB I Pendahuluan
Pada bab ini akan dibahas latar belakang masalah, rumusan masalah,

batasan masalah, metodologi, tujuan dan manfaat, sistematika

penulisan.

BAB II Landasan Teori


Dalam bab ini akan dijelaskan mengenai pengetahuan yang menjadi

dasar teori untuk mengimplementasikan pengenalan pola dengan

menggunakan transformasi wavelet sebagai pemrosesan awal dan

euclidean algoritma sebagai metode pengambilan keputusan.

BAB III Analisis Sistem


Dalam bab ini akan diidentifikasikan masalah yang akan diselesaikan

dan tahap-tahap penyelesaian masalah pengenalan pola

BAB IV Implementasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

19

Dalam bab ini akan dibahas algoritma untuk implementasi pengenalan

pola dan tampilan jalannya program

BAB V Hasil dan Pembahasan

Dalam bab ini akan ditampilkan hasil pengujian program dan analisa

terhadap hasil pengujian.

BAB VI Kesimpulan dan Saran

Dalam bab ini memuat kesimpulan dan saran dari masalah yang telah

dibahas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

20

BAB II

DASAR TEORI

A. Pengertian Pengenalan Pola

Pola adalah entitas yang terdefinisi dan dapat didefinisikan melalui ciri-

cirinya (feture) (Rinaldi Munir, 2004). Feature adalah deskriptor yang

menggambarkan karakteristik dari suatu obyek (Dina Chahyati, 2003). Ciri ini

digunakan untuk membedakan suatu pola dengan pola lainnya. Ciri yang bagus

adalah ciri yang memiliki daya pembeda yang tinggi, sehingga pengelompokan

pola berdasarkan ciri yang dimiliki dapat dilakukan dengan keakuratan yang

tinggi. Berikut contoh pola beserta ciri yang dimiliki sebagai pembeda

Tabel 2.1 Contoh Pola dan Cirinya

Pola Ciri

Tinggi, tebal, titik sudut, lengkungan


Huruf
garis,dll

Amplitude, frekuensi, nada, intonasi,


Suara
warna, dll

Tanda tangan Panjang, kerumitan, tekanan,dll

Sidik jari Lengkungan, jumlah garis, dll

Sedangkan pengertian pengenalan pola sendiri adalah proses pengenalan

suatu obyek dengan menggunakan berbagai metode dimana dalam proses

pengenalannya memiliki tingkat akurasi yang tinggi (Suta Wijaya, 2004).


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

21

Memiliki tingkat akurasi yang tinggi mengandung pengertian bahwa suatu objek

yang secara manual tidak dapat dikenali, tetapi bila menggunakan salah suatu

metode pengenalan yang diaplikasikan pada komputer masih dapat dikenali.

Pengenalan pola bertujuan menentukan kelompok atau kategori pola berdasarkan

ciri-ciri yang dimiliki oleh pola tersebut. Dengan kata lain, pengenalan pola

membedakan suatu obyek dengan obyek lain ( Rinaldi Munir, 2004).

B. Sistem Pengenalan Pola

Dalam pengenalan pola terbagi ke dalam dua fase proses pengenalan yaitu :

1) fase pelatihan, pada fase ini beberapa contoh citra dipelajari untuk

menentukan ciri yang akan digunakan dalam proses pengenalan

serta prosedur klasifikasinya.

2) Fase pengenalan, pada fase ini citra diambil cirinya kemudian

ditentukan kelas kelompoknya.

Pendekatan yang digunakan dalam sistem pengenalan pola yaitu

pendekatan secara statistik dan pendekatan secara sintatik atau struktural (Rinaldi

Munir,2004)

1. Pendekatan Statistik

Pendekatan ini menggunakan teori-teori ilmu peluang dan statistik. Ciri-

ciri yang dimiliki oleh suatu pola ditentukan distribusi statistiknya. Pola

yang berbeda memiliki distribusi yang berbeda pula. Dengan

menggunakan teori keputusan di dalam statistik, digunakan distribusi ciri

untuk mengklasifikasi pola.


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

22

Contoh teori keputusan:

Misalkan ada N pola yang dikenali, yaitu w1, w2,...,wN dan fungsi

peluang atau kerapatan dari ciri – ciri pada pola diketahui. Jika x

merupakan hasil pengukuran ciri – ciri, maka

P( x | wi ) , i = 1, 2, ..., N

dapat dihitung.

Sebagai contoh, misalkan diketahui fungsi kerapatan dari diameter

buah jeruk dan apel.

peluang 1 P ( diameter | jeruk )

P ( diameter | apel )

diameter

0 a b 1

Gambar 2.1. : Grafik Fungsi Kerapatan dari ciri diameter jeruk dan apel
Jika sebuah objek diukur dan diperoleh diameternya adalah a cm, maka dapat

diklasifikasikan objek tersebut sebagai “ jeruk “, karena

p ( a | jeruk ) > p ( a | apel )

dan jika sebuah objek diukur dan diperoleh diameternya adalah b cm, maka

dapat diklasifikasikan objek tersebut sebagai “ apel “, karena

p ( a | jeruk ) > p ( a | apel ). Gambar sistem pengenalan pola dengan

pendekatan statistik ditunjukkan oleh diagram pada Gambar 2.2 (Rinaldi

Munir,2004).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

23

Gambar 2.2 Diagram Pendekatan Statistik

Langkah-langkah sistem pengenalan pola dengan pendekatan statistik pada

gambar 2.2 diterangkan sebagai berikut :

1) Preprocessing

Preprocessing adalah proses awal yang dilakukan untuk memperbaiki

kualitas citra dengan menggunakan teknik-teknik pengolahan citra

(Rinaldi Munir,2004). Teknik pengolahan citra yang digunakan dalam

penulisan ini adalah binerisasi dan pengubahan ukuran (imresize).

Binerisasi adalah proses mengubah pixel citra yang memiliki dua nilai

keabuan yaitu hitam dan putih (Rinaldi Munir,2004).

2) Feature Extraction

Feature Extraction adalah proses mengambil ciri-ciri yang terdapat pada

obyek di dalam citra. Pada proses ini obyek di dalam citra mungkin

perlu dideteksi seluruh tepinya lalu menghitung properti-properti obyek

yang berkaitan sebagai ciri. Proses ekstraksi ciri menggunakan

dekomposisi wavelet
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

24

3) Classification

Classification adalah proses mengelompokkan obyek ke dalam kelas

yang sesuai.

4) Feature Selection

Feature selection adalah proses memilih ciri pada suatu obyek agar

diperoleh ciri yang optimum, yaitu ciri yang dapat digunakan untuk

membedakan suatu obyek dengan obyek lainnya.

5) Learning

Learning adalah proses belajar membuat aturan klasifikasi sehingga

jumlah kelas yang tumpang tindih dibuat sekecil mungkin. Kumpulan

ciri dari suatu pola dinyatakan sebagai vektor ciri dalam ruang multi

dimensi. Jadi, setiap pola dinyatakan sebagai sebuah titik dalam ruang

multi dimensi. Ruang multi dimensi dibagi menjadi sejumlah subruang.

Tiap subruang dibentuk berdasarkan pola-pola yang sudah dikenali

kategori dan ciri-cirinya .

Gambar 2.3 Contoh Pembagian Kelas Pola

(Sumber : Pengolahan Citra Digital Dengan Pendekatan Algoritmik, Rinaldi Munir)


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

25

2. Pendekatan sintatik

Pendekatan sintaktik adalah pendekatan untuk pengenalan pola menggunakan

teori bahasa formal. Ciri-ciri yang terdapat pada suatu pola ditentukan primitif

dan hubungan struktural antara primitif kemudian menyusun tata bahasanya.

Kelompok ini ditentukan dari aturan produksi pada tata bahasa yang telah

disusun. Gambar 2.4 memperlihatkan sistem pengenalan pola dengan

pendekatan sintaktik.

Gambar 2.4 Pendekatan sintaktik

Pendekatan yang digunakan dalam membentuk tata bahasa untuk mengenali

pola adalah mengikuti kontur atau tepi batas obyek dengan sejumlah segmen

garis terhubung satu sama lain, lalu mengkodekan setiap garis tersebut,

misalnya dengan kode rantai. Setiap segmen garis mempresentasikan primitif

pembentuk obyek. Analogi Pendekatan Statistik dan Sintaktik pada tabel 2.2

Tabel 2.2 Analogi Pendekatan Statistik dan Sintatik

Ciri/feture (warna,tekstur) Primitif (garis lurus, orientasi)

Density Function Grammar (natural language)


(probabilitas)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

26

Inferensi (aplikasi primitif pada grammar)


Estimation (mean, varian)
Classification (kategori Description (kategori obyek)
obyek)

Contoh beberapa Sistem Pengenalan Pola :

• Prosedur dasar computer untuk klasifikasi obyek otomatis dan

pembuatan keputusan.

• Pengenalan sidik jari, suara

• Pengenalan barcode untuk industri

C. Ekstraksi Ciri Dengan Dekomposisi Wavelet

1. Vektor

Apabila diketahui sebuah ruang vektor dua dimensi, maka akan terdapat

vektor [1 0]T dan [0 1]T untuk merepresentasikan semua vektor yang dapat

terbentuk di ruangan tersebut.

Contoh : [2 3] T = 2 [1 0] T + 3 [0 1] T.

Dengan demikian, dikatakan bahwa vektor [0 1]T dan [1 0]T merupakan basis dari

ruang vektor dua dimensi karena dapat merepresentasikan semua vektor sebagai

kombinasi linier dari basis [0 1]T dan [1 0]T. Atau dapat pula dikatakan bahwa

basis [0 1]T, [1 0]T merentang ruang dua dimensi.

Bila ingin mempresentasikan sebauh titik atau vektor, maka basis [0 1]T

dan [1 0]T sudah cukup memadai. Tetapi, basis [0 1]T, [1 0]T bukan satu-satunya

basis yang bisa merentang ruang dua dimensi. Ada basis-basis lainnya yang bisa

digunakan, contohnya [1 2]T, [2 -1] T. Selain berbentuk kumpulan vektor, basis

dapat juga berbentuk kumpulan fungsi.


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

27

2. Wavelet

Wavelet juga merupakan sebuah basis. Basis wavelet berasal dari sebuah

fungsi penskalaan atau dikatakan juga sebuah scaling function. Scaling function

memiliki sifat yaitu dapat disusun dari sejumlah salinan dirinya yang telah

didilasikan, ditranslasikan dan diskalakan . Fungsi ini diturunkan dari persamaan

dilasi (dilation equation), yang dianggap sebagai dasar dari teori wavelet.

Persamaan dilasi berbunyi demikian :

φ ( x) = ∑ c k φ (2 x − k ) …………….. (2.1)

Dari persamaan scaling function ini dapat dibentuk persamaan wavelet yang

pertama (atau disebut juga mother wavelet), dengan bentuk sebagai berikut :

ϕ 0 ( x) = ∑ (−1) k c1− k φ (2 x − k ) ………………(2.2)


k

Dari mother wavelet ini kemudian dapat dibentuk wavelet-wavelet

berikutnya (ψ1, ψ2 dan seterusnya) dengan cara mendilasikan (memampatkan atau

meregangkan) dan menggeser mother wavelet.

Scaling function yang dapat membentuk wavelet bermacam-macam

jenisnya. Berdasarkan scaling function inilah basis wavelet memiliki nama yang

berbeda-beda.

• Wavelet Haar memiliki scaling function dengan koefisien c0 = c1 = 1.

• Wavelet Daubechies dengan 4 koefisien (DB4) memiliki scaling function

dengan koefisien c0 = (1+√3)/4, c1 = (3+√3)/4, c2 = (3-√3)/4, c3 = (1-

√3)/4

• Wavelet B-Spline kubik memiliki scalilng function dengan koefisien c0 =

1/8, c1 = 4/8, c2 = 6/8, c3 = 4/8, c4 = 1/8.


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

28

Wavelet Haar dapat dijelaskan dalam ruang vektor 4 dimensi. Basis paling

sederhana yang sudah sering digunakan adalah basis orthonormal sebagai berikut :

1  0 0 0


0 1  0 0
v 0 =   , v 1 =  , v 2 =   , v 3 =  
0 0 1  0
       
0 0 0 1 
Wavelet Haar juga merentang ruang vektor 4 dimensi dengan vektor-vektor basis

sebagai berikut

1 1 1 0


1 1 − 1 0
h0 =   ,h =   ,h =   ,h =  
1 1  − 1 2  0  3  1 
      
1  − 1 0 − 1
yang bila digambarkan dalam bentuk sinyal akan berbentuk sebagai berikut :

Gambar 2.5 Gambar vektor h0, h1, h2, h3 dalam bentuk sinyal

Sumber : Dina Chahyati. Fakultas Ilmu Komputer Universitas Indonesia Jakarta


http://www.ui.cs.ac.id , diakses November 2006
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

29

Tabel 2. 3 Scaling, mother wavelet, mother wavelet dilasi, mother wavelet didilasi dan digeser

Jika menggunakan basis orthonormal v0, v1, v2, dan v3, dapat untuk

merepresentasikan suatu vektor sebagai kombinasi linier dari v0, v1, v2, dan v3.

Misalkan ada vektor

6
4
x= 
− 7 
 
5
Jika vektor x dituliskan sebagai berikut,

x = a v0 + b v1 + c v2 + d v3 ……………………….. (2.3)

Maka dapat dengan mudah ditemukan bahwa a=6, b=4, c=-7, dan d=5

Jika suatu vektor dipresentasikan sebagai kombinasi linear dari vektor-

vektor dalam wavelet Haar, maka nilai a,b,c dan d dalam persamaan (2.4)

 x0  1 1 1 0


x  1 1   0
 1  = a   + b   + c − 1 + d   ……………………. (2.4)
 x2  1  − 1 0 1
        
 x3  1  − 1 0 − 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

30

Dapat dicari dengan :


Menurunkan persamaan (2.4) sebagai berikut :
x0 = a + b + c
x1 = a + b – c
x2 = a – b +d
x3 = a – b –d
sehingga didapatkan :
x2 – x3 = 2d
x0 – x1 = 2c
(x0 + x1) – (x2 + x3) = 4b
(x0 + x1) + (x2 + x3) = 4a
Dengan demikian dapat diambil kesimpulan bahwa
d = ½ (x2 – x3)
c = ½ (x0 – x1)
b = ½ ( ½ (x0 + x1) – ½ (x2 + x3))
a = ½ ( ½ (x0 + x1) + ½ (x2 + x3))
Terlihat bahwa sebenarnya koefisien-koefisian a,b,c,d dapat diperoleh dari operasi

averaging (penambahan) dan differencing (selisih) terhadap nilai x0, x1, x2 dan x3

dengan aturan tertentu.

Stephane Mallat kemudian memperkenalkan cara mudah menghitung

koefisien a, b, c dan d dengan cara yang dikenal dengan algoritma piramida

Mallat. Algoritma tersebut dapat ditunjukkan dengan gambar berikut.

aj 
→
L
a j −1 
→
L
a j − 2 ... 
→
L
a0
H H H

d j −1 d j −2 d0
Gambar 2.6 Gambar algoritma pyramida Mallat
dimana aj adalah vektor awal dengan ukuran 2j, dan koefisien a, b, c, d dapat

diperoleh dari aproksimasi a0 detail-detail d0, d1 dan seterusnya. Matriks L dan H


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

31

masing masing adalah matriks lowpass (averaging) dan highpass (differencing)

dengan bentuk:

 c0 c1 c2 c3 ...   c3 − c2 c1 − c0 ... 
 c0 c1 c2 c3 ...   c3 − c2 c1 − c0 ... 
1  1 
L= . . H = . .
2 . .
 2 . . − c2 − c0

 c0 c1 c2 c3
  c3 c1

.c 2 c3 . c0 c1 
 .c1 − c0 . c3 − c2 

Matriks L dan H untuk basis Haar dimana c0 = c1 = 1 adalah sebagai berikut :

 12 1
2 0 0  12 − 12 0 0 
L= H =
1  − 1 2 
0 0 1
2 2 0 0 1
2

Proses mencari koefisien a, b, c dan d seperti ini disebut dengan proses

dekomposisi. Sebagai contoh, untuk vektor x di atas didekomposisi menjadi:

6  1 1 
 4  L =  2 2 10 10 
 5  L =[1 1 ]
 
→ a 0 = [2]
 0 0 
a 2 =    
 2
2→

a 1 =     2
2
− 7   − 1
 
 
5
 
H =
 12 −1
2
0 0  H = [1 2 − 12]
 0 0 1
2
−1
2

1 
d1 =   d 0 = [3]
− 6

Nilai a,b, c dan d pada persamaan 2.4 kemudian dapat diperoleh dengan melihat

nilai aproksimasi terakhir a0 dan semua nilai-nilai detail d0,d1 dan d1 dimana

a = 1 (1 2 (x0 ÷ x1 ) ÷ 1 2(x2 ÷ x3 )) = a 0 = 2
2
b= 1
2
(1 2 (x0 ÷ x1 ) − 1 2(x2 ÷ x3 )) = d 0 = 3
c = 1 (1 2 ( x0 − x1 )) = d 1 (0 ) = 1
2
d = 1 (1 2 (x2 − x3 )) = d 1 (1) = −6
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

32

6 1  1   1  0


4       
  = 2 1 + 3 1  + 1− 1 + ( −6)  0 
− 7  1 − 1  0  1
        
5 1 − 1  0  − 1
3. Transformasi terhadap citra

Untuk citra dua dimensi, prosedur dekomposisi level tunggal terdiri dari

citra satu dimensi yang di-filter pada arah mendatar kemudian diikuti oleh citra

satu dimensi yang di-filter pada arah tegak yang diutilisasi dengan menggunakan

filter tapis rendah dan filter tapis tinggi. Proses dekomposisi transformasi wavelet

untuk citra dua dimensi dapat dijelaskan pada gambar

Lowpassi terhadap kolom


Lowpass terhadap baris
Highpass terhadap kolom
Citra

Highpass terhadap baris Lowpassi terhadap kolom

Highpass terhadap kolom

Gambar 2.7 Gambar proses dekomposisi wavelet

Pada notasi Matlab, bagian LL disebut bagian aproksimasi (A), bagian LH disebut

detail vertikal (V), bagian HL disebut detail horizontal (H), dan bagian HH

disebut detail diagonal (D) (Dina Chahyati,2003).


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

33

Gambar 2.8 Gambar hasil dekomposisi wavelet

4. Contoh Dekomposisi Citra Dengan Wavelet Haar

citra berukuran 8x8 dengan nilai sebagai berikut:

47 73 47 30 45 37 27 8
67 69 46 42 63 26 24 14
72 40 59 36 62 11 15 57
67 35 72 52 51 35 30 83
39 37 65 61 41 20 24 70
51 70 54 68 37 36 111 88
64 50 44 50 44 48 119 148
86 46 50 37 34 86 99 145

Langkah-langkah dekomposisi wavelet Haar terhadap potongan citra tersebut


adalah:

1. Tentukan filter dekomposisi LH, yaitu

½ ½ 0 0 0 0 0 0
½ -½ 0 0 0 0 0 0
0 0 ½ ½ 0 0 0 0
0 0 ½ -½ 0 0 0 0
0 0 0 0 ½ ½ 0 0
0 0 0 0 ½ -½ 0 0
0 0 0 0 0 0 ½ ½
0 0 0 0 0 0 ½ -½

2. Untuk setiap kolom, kalikan kolom tersebut dengan matriks dekomposisi


di atas.

Contoh untuk kolom pertama:


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

34

½ ½ 0 0 0 0 0 0 47 57
½ -½ 0 0 0 0 0 0 67 -10
0 0 ½ ½ 0 0 0 0 72 69
0 0 ½ -½ 0 0 0 0 * 67 = 2.5
0 0 0 0 ½ ½ 0 0 39 45
0 0 0 0 ½ -½ 0 0 51 - 6
0 0 0 0 0 0 ½ ½ 64 75
0 0 0 0 0 0 ½ -½ 86 -11

Hasil dekomposisi perbaris ini akan menghasilkan matriks D2 sbb

57.0000 71.0000 46.5000 36.0000 54.0000 31.5000 25.5000 11.0000


-10.0000 2.0000 0.5000 -6.0000 -9.0000 5.5000 1.5000 -3.0000
69.5000 37.5000 65.5000 44.0000 56.5000 23.0000 22.5000 70.0000
2.5000 2.5000 -6.5000 -8.0000 5.5000 -12.0000 -7.5000 -13.0000
45.0000 53.5000 59.5000 64.5000 39.0000 28.0000 67.5000 79.0000
-6.0000 -16.5000 5.5000 -3.5000 2.0000 -8.0000 -43.5000 -9.0000
75.0000 48.0000 47.0000 43.5000 39.0000 67.0000 109.0000 146.5000
-11.0000 2.0000 -3.0000 6.5000 5.0000 -19.0000 10.0000 1.5000

Keterangan:
- warna biru adalah hasil aproksimasi
- warna merah adalah hasil detail

3. Atur hasil pada point 3 supaya bagian aproksimasi berkumpul di bagian


atas dan bagian detail mengumpul di bagian bawah (matriks D3)

57.0000 71.0000 46.5000 36.0000 54.0000 31.5000 25.5000 11.0000


69.5000 37.5000 65.5000 44.0000 56.5000 23.0000 22.5000 70.0000
45.0000 53.5000 59.5000 64.5000 39.0000 28.0000 67.5000 79.0000
75.0000 48.0000 47.0000 43.5000 39.0000 67.0000 109.0000 146.5000
-10.0000 2.0000 0.5000 -6.0000 -9.0000 5.5000 1.5000 -3.0000
2.5000 2.5000 -6.5000 -8.0000 5.5000 -12.0000 -7.5000 -13.0000
-6.0000 -16.5000 5.5000 -3.5000 2.0000 -8.0000 -43.5000 -9.0000
-11.0000 2.0000 -3.0000 6.5000 5.0000 -19.0000 10.0000 1.5000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

35

4. Setelah itu, lakukan hal yang sama dengan cara mengambil perbaris.

½ ½ 0 0 0 0 0 0 57 64
½ -½ 0 0 0 0 0 0 71 -7
0 0 ½ ½ 0 0 0 0 46.5 41.25
0 0 ½ -½ 0 0 0 0 * 36 = 5.25
0 0 0 0 ½ ½ 0 0 54 72.7
0 0 0 0 ½ -½ 0 0 31.5 11.25
0 0 0 0 0 0 ½ ½ 25.5 18.25
0 0 0 0 0 0 ½ -½ 11 7.25

Kemudian hasilnya diletakkan di matriks hasil kembali dalam bentuk baris,

sehingga hasilnya (matriks D4) akan sebagai berikut:

64.0000 -7.0000 41.2500 5.2500 42.7500 11.2500 18.2500 7.2500


53.5000 16.0000 54.7500 10.7500 39.7500 16.7500 46.2500 -23.7500
49.2500 -4.2500 62.0000 -2.5000 33.5000 5.5000 73.2500 -5.7500
61.5000 13.5000 45.2500 1.7500 53.0000 -14.0000 127.7500 -18.7500
-4.0000 -6.0000 -2.7500 3.2500 -1.7500 -7.2500 -0.7500 2.2500
2.5000 0 -7.2500 0.7500 -3.2500 8.7500 -10.2500 2.7500
-11.2500 5.2500 1.0000 4.5000 -3.0000 5.0000 -26.2500 -17.2500
-4.5000 -6.5000 1.7500 -4.7500 -7.0000 12.0000 5.7500 4.2500

5. Atur hasil pada point 4 supaya bagian aproksimasi berkumpul di bagian

kiri dan bagian detail mengumpul di bagian kanan (matriks D5)

64.0000 41.2500 42.7500 18.2500 -7.0000 5.2500 11.2500 7.2500


53.5000 54.7500 39.7500 46.2500 16.0000 10.7500 16.7500 -23.7500
49.2500 62.0000 33.5000 73.2500 -4.2500 -2.5000 5.5000 -5.7500
61.5000 45.2500 53.0000 127.7500 13.5000 1.7500 -14.0000 -18.7500
-4.0000 -2.7500 -1.7500 -0.7500 -6.0000 3.2500 -7.2500 2.2500
2.5000 -7.2500 -3.2500 -10.2500 0 0.7500 8.7500 2.7500
-11.2500 1.0000 -3.0000 -26.2500 5.2500 4.5000 5.0000 -17.2500
-4.5000 1.7500 -7.0000 5.7500 -6.5000 -4.7500 12.0000 4.2500

6. Hasilnya sebagai berikut :

64.0000 41.2500 42.7500 18.2500 -7.0000 5.2500 11.2500 7.2500


53.5000 54.7500 39.7500 46.2500 16.0000 10.7500 16.7500 -23.7500
49.2500 62.0000 33.5000 73.2500 -4.2500 -2.5000 5.5000 -5.7500
61.5000 45.2500 53.0000 127.7500 13.5000 1.7500 -14.0000 -18.7500
-4.0000 -2.7500 -1.7500 -0.7500 -6.0000 3.2500 -7.2500 2.2500
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

36

2.5000 -7.2500 -3.2500 -10.2500 0 0.7500 8.7500 2.7500


-11.2500 1.0000 -3.0000 -26.2500 5.2500 4.5000 5.0000 -17.2500
-4.5000 1.7500 -7.0000 5.7500 -6.5000 -4.7500 12.0000 4.2500

Keterangan:
- warna biru adalah bagian aproksimasi
- warna merah adalah bagian detail horizontal
- warna coklat adalah bagian detai vertikal
- warna hijau adalah bagian detail diagonal

7. Penentuan vektor ciri

Dari masing-masing kelompok pada poin 6 tersebut kemudian diambil rata-

ratanya.

D. Euclidean Algoritma

Dari sampel i yang akan ditentukan kategorinya, dihitung jaraknya ke masing-

masing template. Rumus jarak euclidean

d= ((x − x )
1 2
2 2
)
+ ( y1 − y 2 ) …………….(2.5)

Sampel i dimasukkan pada kategori obyek dengan harga d yang terkecil (Aniati

Murni, 1992) Gambar klasifikasi berdasarkan Euclidean ditunjukkan pada gambar

2.9
Ciri 2 Sampel i
d1
Kelas 3

d3
d2

Kelas1
Kelas 2

Ciri 1
Gambar 2.9 Diagram ruang ciri set sampel belajar. Sampel
i dimasukkan ke kategori obyek k = 3 berdasarkan metode
tetangga terdekat dengan pengukuran jarak euclidean
(Sumber : Aniati murni,1992)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

37

BAB III

ANALISA DAN PERANCANGAN SISTEM

A. Analisa Sistem

Sistem yang dibuat adalah sistem untuk pengenalan pola tulisan tangan,

lebih khusus yaitu pola angka menggunakan metode statistik sederhana yaitu

euclidean algoritma dengan ekstraksi ciri wavelet.

Dalam sistem ini, gambar masukan akan dicari vektor ciri kemudian

dibandingkan dengan vektor ciri pada template. Gambar akan dikenali ke template

tertentu dengan melihat jarak euclidean yang paling minimal. Vektor ciri template

disimpan dalam tabel tbciri pada database AngkaCetak Hubungan antara sistem

pembuat basis data sebagai penyedia template dengan sistem pengenalan angka

dapat digambarkan sebagai berikut :

gambar Sistem
Developer Pembuat
gambar
Basis Data

ciri ciri

gambar Sistem
User Pengenalan
hasil_pengenalan Angka

Gambar 3.1 Gambar hubungan antara Sistem Pembuat Basis Data


dengan Sistem Pengenalan Angka

Desain Sistem Pembuat Basis Data dan desain Sistem Pengenalan Angka

dapat digambarkan dengan DFD sebagai berikut :


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

38

1. Desain Sistem Pembuat Basis Data

DFD Level 0

Developer memasukkan gambar angka ke dalam sistem pembuat basis

data. Dari sistem pembuat basis data memperoleh ciri . Digambarkan pada DFD

level 0 gambar 3.2

Gambar 3.2 DFD Level 0

DFD Level 1

Di dalam sistem pembuat basis data gambar angka akan diolah melalui

proses preprocessing, dan ekstraksi ciri. Hasilnya berupa vektor ciri yang akan

disimpan dalam tbciri. Digambarkan pada gambar 3.3

gambar_angka gambar_angka
gambar_normal_biner ciri
1. 2. 3.
developer ciri
input preprocessing ekstraksi_ciri

ciri

Gambar 3.3 DFD Level 1

DFD Level 2

Pada proses preprocessing, gambar masukkan akan diubah menjadi

gambar biner, dan normalisasi ukuran gambar. Proses preprocessing digambarkan

pada gambar 3.4


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

39

gambar_angka gambar_biner gambar_normal_biner


2.1 2.2
binerisasi ubah_ukuran

Gambar 3.4 DFD Level 2

2. Desain Sistem Pengenalan Angka

DFD Level 0

User memasukkan gambar angka ke sistem pengenalan angka. Dalam

sistem ini gambar angka diproses sehingga menghasilkan hasil pengenalan angka

sesuai gambar masukkan. Digambarkan pada DFD level 0 gambar 3.5

Gambar 3.5 DFD Level 0

DFD Level 1

gambar_angka gambar_angka
gambar_biner_normal
1 2 3
user
Input Preprocessing Ekstraksi ciri

ciri

ciri

ciri

4
hasil_pengenalan_angka keputusan

Gambar 3.6 DFD Level 1


User memasukkan gambar angka, kemudian gambar angka akan diproses

pada proses preprocessing. Hasilnya adalah gambar biner dengan ukuran yang

sudah disesuaikan yaitu 64 x 64. Hasil proses preprocessing masuk ke proses


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

40

ekstraksi ciri. Hasilnya berupa vektor ciri yang nantinya digunakan sebagai input

pada proses pengenalan.

DFD Level 2

Gambar 3.7 DFD Level 2

Pola template yang disediakan berjumlah 50 buah. Terdiri dari pola angka

0 sampai dengan 9. Untuk ujicoba program akan dicobakan terhadap 30 pola

angka. Sistem akan memberi informasi hasil pengenalan pola masukkan sebagai

pola angka tertentu.

B. Analisa Kebutuhan Hardware dan Software

1. Analisa kebutuhan hardware

Kebutuhan hardware merupakan kebutuhan akan perangkat keras

komputer untuk mendukung sistem yang akan dibuat. Yang dibutuhkan

untuk membangun sistem ini antara lain :

1. Main board : MSI PM8M2 V

2. Procesor : Intel P4 2.66 GHz

3. Memori : RAM 256 MB

4. Hard disk : HDD 40 Gbyte

5. Monitor : LG 15’

6. Disk Drive : Samsung 52x


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

41

2. Analisis kebutuhan software

Analisis kebutuhan software untuk mendukung pengoperasian dan

pengembangan sistem.

1. Sistem operasi : Sistem Operasi Windows XP

2. Source Code : Matlab 6.5

3. Browser : Internet Explorer

4. Data base : SQLyog

C. Perancangan User Interface

Sistem yang dibuat terdiri dari 2 menu yaitu : File dan Informasi.

1. Menu File terdiri dari sub menu Input pola yaitu untuk memasukkan pola

angka yang ingin dikenali, Input Data Baru yaitu untuk memasukkan data

baru. Sub menu keluar untuk menutup program

2. Menu informasi untuk menampilkan informasi tentang penggunaan program.

Gambaran sistem secara umum adalah sebagai berikut :


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

42

mulai

Menu Pilihan
1. File
2. Informasi
Masukkan pilihan(pil)?

Menu Pilihan
1. Input Pola
2. Input Data Baru
If pil=1 ya
3.Keluar
Masukkan pilihan(x)?

tidak

If pil=2 ya informasi
If x=1 ya Input pola

tidak

Input data
tidak If x=2 ya
baru

tidak

Selesai

If x=3

Gambar 3.8 Flowchart secara umum


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

43

a. Form awal program dimulai

Gambar 3.9 Form Awal (Welcome)

Dalam form awal ini terdiri dari

1. 4 buah static text yang digunakan sebagai pembuat dua garis siku atas dan

bawah.

2. Satu buah axes untuk menampilkan gambar pada tulisan judul : Program

pengenalan angka.

3. Satu buah pushbutton (tombol) untuk masuk ke menu utama


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

44

b. Form Menu Utama

LOGO

Gambar 3.10 Form Menu Utama


Form ini terdiri dari satu buah axes yang menampilkan latar belakang menu utama

Pada form ini terdiri dari sebuah menu editor dimana terdapat menu-menu sebagai

berikut :

File Informasi

Input Pola

Input Data Baru

Keluar

Gambar 3.11 Perancangan Menu Utama


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

45

Gambar 3.12 Form ambil gambar

Form ini untuk mengambil pola yang akan dijadikan data baru dan juga pola yang

akan dikenali.

c. Perancangan form proses pengenalan angka

Dalam form ini semua proses pengenalan ditampilkan mulai dari tampil hasil

input , preprocessing, ekstraksi ciri, dan pengenalan angka. Pada saat form

muncul pertama kali yang ditampilkan adalah :

1. axes untuk menampilkan gambar masukkan

2. Static text dibawah axes untuk menampilkan tulisan ‘gambar asli’

3. 3 buah pushbutton (tombol) untuk proses preprocessing, pengenalan,

dan kembali ke menu utama.


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

46

Gambar 3.13 Perancangan Form tampilan gambar masukkan

Saat memilih tombol preprocessing maka akan muncul axes yang menampilkan

gambar hasil preprocessing. Axes ini tidak terlihat ketika user belum memilih

tombol preprocessing.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

47

Gambar 3.14 Perancangan Form tampilan gambar preprocessing

Untuk memilih dan menampilkan hasil ekstraksi ciri pilih popupmenu sesuai

level. Level pilihan akan muncul pada ‘edittext’ disebelah popupmenu.


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

48

Gambar 3.15 Perancangan Form tampilan gambar ekstraksi ciri

Axes warna putih muncul saat memilih level 1, axes warna biru muncul pada saat

memilih level 2, axes warna abu-abu muncul pada saat memilih level 3

d. Perancangan form pengenalan angka

Form ini terdiri dari statictext sebagai keterangan ‘gambar dikenali sebagai angka’

dan edit text untuk menampilkan hasil pengenalan.

Pushbutton untuk menutup form hasil pengenalan

Gambar 3.16 Perancangan Form hasil pengenalan


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

49

e. Perancangan form peringatan

Ada dua form yaitu peringantan preprocessing, dan ekstraksi ciri

Gambar 3.17 Perancangan Form peringatan


f. Perancangan form konfirmasi

Ada dua form yaitu dialog keluar program dan simpan data baru

Gambar 3.18 Perancangan Form konfirmasi


g. Perancangan Form Informasi

Terdiri 1 buah axes untuk gambar background, dan static text untuk penulisan

informasi program, nama pembuat, dan dosen pembimbing

Gambar 3.19 Perancangan Form informasi


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

50

D. Perancangan proses

1. Input Data Baru

Cara kerja proses ini

a. Ambil gambar baru

b. Preprocessing

c. Ekstraksi ciri untuk penarikan vektor ciri

d. Simpan vektor ciri

mulai

Input
gambar

preprocessing

If
preprocessing= ya Pesan kesalahan
0

tidak

Ekstraksi ambil
vektor ciri

simpan

selesai

Gambar 3.20 Flowchart input data baru


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

51

2. Preprocessing

Cara kerja proses ini

a. Ambil gambar dari input

b. binerisasi citra, yaitu pengubahan citra grayscale menjadi citra

hitam putih yang bernilai 1 dan 0. angka 1 menyatakan warna

putih, dan 0 menyatakan warna hitam

c. Pengubahan ukuran citra menjadi citra dengan ukuran 64 x 64.

mulai

Ambil
gambar
angka

binerisasi

Ubah ukuran

Citra normal
biner

selesai

Gambar 3.21 Flowchart Preprocessing


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

52

3. Proses Ekstraksi ciri

mulai

Input
gambar

preprocessimg

If
preprocessing= ya Pesan kesalahan
0

tidak

Dekomposisi
wavelet

Hitung rata
approksimasi,horis
ontal,diagonal,verti
kal

Vektor ciri

selesai

Gambar 3.22 Flowchart proses ekstraksi ciri


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

53

Pada proses ini langkah-langkah yang dilakukan sehingga mendapatkan vektor

ciri :

1. Ambil gambar hasil preprocessing yaitu gambar normal biner

2. Kenai dengan dekomposisi wavelet

3. Hasil dekomposisi wavelet adalah approksimasi, detail vertikal,

horisontal,dan diagonal hitung rata-rata sehingga menjadi vektor ciri

4. Proses pengenalan angka

Dalam proses ini gambar input setelah dicari vektor cirinya akan dibandingkan

dengan vektor ciri yang ada pada template. Dengan melihat nilai paling minimum

jarak antara vektor ciri input dengan vektor ciri masing-masing template. Gambar

akan dikenali sebagai anggota template tertentu jika memiliki jarak yang paling

dekat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

54

mulai

Ambil vektor ciri


input

i=1

ya

If i<=panjangbaris

Hitung d

tidak

Cari nilai d
paling min

Tampil hasil
pengenalan

selesai

Gambar 3.23 Flowchart proses pengenalan angka


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

55

BAB IV

IMPLEMENTASI

A. Algoritma Program

Sistem yang dibangun terdiri dari proses masukkan data baru, proses

preprocessing, proses ekstraksi ciri, dan proses pengenalan angka. Dalam bab ini

akan diuraikan algoritma tiap proses.

1. Algoritma proses masukkan data baru

a. Ambil gambar hasil preprocessing

b. Kenai dengan filter dekomposisi wavelet

c. Untuk setiap kolom gambar hasil preprocessing kalikan dengan

matrik dekomposisi

d. Hasilnya, baris ganjil letakkan di bagian atas, baris genap di bagian

bawah. (dalam penulisan ini implementasi menggunakan toolbox

matlab sehingga sehingga secara langsung akan diatur demikian)

e. Lakukan hal yang sama dengan mengambil per baris

f. Kolom ganjil disebelah kanan kolom genap disebelah kiri

g. Untuk penarikan vektor ciri hasil dekomposisi terbagi menjadi 4

bagian. ¼ approksimasi, ¼ horisontal, ¼ vertikal, dan ¼ diagonal.

Masing-masing bagian hitung rata-rata. Hasilnya gunakan sebagai

vektor ciri.

h. Untuk level 2 dan level 3 juga dengan cara yang sama yaitu

lakukan pada operasi baris dan kolom. Hanya pada level 2


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

56

dekomposisi dikenakan pada hasil approksimasi level 1, dan pada

level 3 dekomposisi dikenakan pada hasil approksimasi level 2.

i. Pada penyimpanan vektor ciri, koneksikan dengan database

perintah yang digunakan :

conn=database('myodbc','root','');

ping(conn);

q. masukkan data ke tabel tempbaru

curs = exec(conn, 'select * from tempbaru');

setdbprefs('DataReturnFormat','cellarray');

curs = fetch(curs);

AA=curs.Data;

r. Simpan data hasil vektor ciri dalam variabel data1

s. Simpan variabel vektor ciri yang ada pada tabel di data2

t. Masukkan data1 pada data2 di tabel tempbaru

insert(conn, 'tempbaru', data2, data1);

2. Proses Preprocessing

a. Ambil gambar input

b. Lakukan ubah ukuran (imresize), pola masukkan diubah ke ukuran

64 x 64

ubah= imresize(citra,[64 64]);

c. Binerisasi, ubah pixel gambar menjadi 2 nilai derajat keabuan yaitu

0 dan 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

57

3. Proses ekstraksi ciri

a. Ambil gambar hasil preprocessing

b. Lakukan dekomposisi wavelet dengan operasi baris dan operasi

kolom,

c. Hasil dekomposisi bagi menjadi 4 bagian dengan ukuran ¼ citra

awal,

d. Untuk semua level langkah-langkah sama, hanya untuk level 2

citra awal yang didekomposisi adalah approksimasi level 1, dan

untuk level 3 adalah aprroksimasi level 2

4. Proses pengenalan angka

a. Ambil vektor ciri hasil dekomposisi

b. Hitung jarak vektor ciri hasil dekomposisi dengan vektor ciri yang

ada pada template, dengan euclidean pada rumus (2.5)

d. a2, b2, c2, d2 adalah ciri dari pola masukkan

f. Jarak euclidean disimpan pada variabel d

g. Cari nilai d yang paling minimum.

h. Pola masukkan akan dikenali ke template sesuai dengan nilai d

yang paling minimum.

i. Langkah-langkah yang sama untuk level 2 dan level 3

j. Jika level 2 template yang digunakan template vektor ciri level 2,

jika level 3 template yang digunakan template vektor ciri level 3


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

58

B. Jalannya Program

Pertama kali program dijalankan akan keluar form WELCOME, ini adalah form

awal sebelum masuk ke menu utama

Gambar 4.1 Form welcome

Pilih tombol MASUK untuk ke menu utama.

Dalam menu utama terdapat menu File dan Informasi

Untuk mengenali gambar pilih menu File  Input Pola


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

59

Gambar 4.2 Menu Utama

Masuk ke form menu utama pilih input pola akan keluat jendela open file gambar

Gambar 4.3 Jendela Open File gambar angka


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

60

Pada saat tampil gambar masukkan akan muncul form waitbar sebagai tanda

program sedang memproses gambar masukan

Gambar 4.4 Form waitbar

Gambar Masukkan tampil dalam Form proses, disini semua proses pengenalan

akan dilakukan.

Gambar 4.5 Form proses pengenalan tampil gambar


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

61

Pilih tombol preprocessing untuk menampilkan gambar hasil preprocessing

Gambar 4.6 Hasil preprocessing


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

62

Pilih level wavelet pilihan pada popupmenu jika level 1 maka akan tampil

Gambar 4.7 Hasil ekstraksi level 1


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

63

Jika yang dipilih level 2 maka hasil ekstraksi akan tampil sebagai berikut :

Gambar 4.8 Hasil ekstraksi level 2


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

64

Jika yang dipilih level 3 maka akan tampil hasil ekstraksi sebagai berikut :

Gambar 4.9 Hasil ekstraksi level 3


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

65

Pilih hasil pengenalan maka akan tampil hasil pengenalan gambar yang

dimasukkan

Gambar 4.10 Hasil pengenalan

Jika user menginginkan untuk input data baru,

Pada form data baru user cukup memasukkan gambar pola baru yang ingin

dijadikan template
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

66

Gambar 4.11 input data baru

Gambar 4.12 Form data baru


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

67

Data baru juga harus melalui tahap preprocessing.

Gambar 4.13 Form data baru preprocessing

Pilih tombol simpan maka akan tersimpan dalam tabel


Gambar 4.14 Form vektor ciri
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

68

Ketika memilih tombol simpan akan ada konfirmasi ulang apakah benar-benar

ingin menyimpan atau tidak, jika ya maka akan langsung masuk ke tabel

Gambar 4.15 Form dialog simpan

Terdapat form peringatan jika belum melakukan tahap preprocessing dan

ekstraksi ciri pada proses pengenalan

Gambar 4.16 Form pesan kesalahan preprocessing

Gambar 4.17 Form pesan kesalahan ekstraksi ciri

Jika akan keluar dari program pilih sub menu keluar dari menu file, akan muncul

dialog untuk memastikan user benar-benar keluar dari program


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

69

Gambar 4.18 Form dialog keluar dari program


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

70

BAB V

HASIL DAN PEMBAHASAN

A. Hasil Pengujian

Pengujian dilakukan terhadap 30 sampel gambar angka. Dari masing-masing

level ekstraksi menghasilkan hasil pengenalan yang berbeda. Berikut

disajikan tabel hasil pengujian pada tiga level ekstraksi.

Tabel 5.1 Hasil pengujian

Gambar Hasil Pengujian


Level 1 Level 2 Level 3

0 0 9

0 0 8

8 8 9

1 1 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

71

1 1 1

1 1 1

2 2 2

2 2 2

2 2 5

3 0 3

3 3 0

3 8 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

72

4 4 4

8 8 4

4 8 4

5 5 7

7 7 5

7 5 5

6 6 6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

73

6 6 6

6 6 6

7 2 5

7 4 3

7 8 2

8 8 8

8 8 8

8 8 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

74

6 9 6

9 9 9

9 8 9

Bagian tabel yang berwarna abu-abu adalah hasil gambar yang dikenali sebagai

obyek lain.

Dari hasil 30 kali pengujian dapat dilihat ketepatan dan kesalahan pengenalan

sebagai berikut :
Tabel 5.2 Prosentase kebenaran pengenalan

Jumlah Pengenalan Jumlah Pengenalan Keterangan Prosentase


Benar Salah Pengenalan Benar
Level 1 25 5 25/30 x 100% =83.33%
Level 2 19 11 19/30 x 100%=63.33%
Level 3 18 12 18/30 x 100%=60%

B. ANALISA HASIL

Dari hasil pengujian terlihat bahwa masukkan dengan dimensi lebih besar

memberikan unjuk kerja yang lebih baik dibandingkan dengan masukkan dengan

dimensi yang lebih kecil. Dari ketiga level masukkan untuk proses pengenalan

yang mempunyai dimensi lebih besar dibanding yang lain adalah level 1, sehingga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

75

level pengenalan paling baik didapat pada level 1 dengan prosentase kebenaran

83.33%. Pada level 2 dan level 3 hasilnya masing-masing adalah 63.33% dan

60%. Hal ini karena gambar masukan pada level 2 dan level 3 mempunyai ukuran

lebih kecil, sehingga informasi yang ada pada gambar juga lebih sedikit.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

76

BAB VI

KESIMPULAN DAN SARAN

A. Kesimpulan

1. Unjuk kerja pengenalan meningkat cukup signifikan untuk masukan

dengan dimensi 32 x 32 (dekomposisi level 1) yaitu sebesar 83.33%,

sedangkan masukan berdimensi 16 x 16 (dekomposisi level 2) sebesar

63,33%, dan masukkan dengan dimensi 8 x 8 (dekomposisi level 3)

sebesar 60%. Pada level 2 dan level 3 prosentase keberhasilan kecil

dikarenakan semakin kecil dimensi gambar masukan, maka informasi

yang diwakili gambar juga semakin sedikit.

2. Wavelet Haar relatif bisa dipakai untuk ekstraksi ciri pada pengenalan

gambar angka.

B. Saran

Berdasarkan hasil dari analisa tugas akhir, program masih belum

sempurna sehingga penulis memberi saran untuk pengembangan lebih lanjut

antara lain:

1. Perlu dicoba metode ekstraksi ciri yang lain sehingga didapatkan

ciri yang benar-benar mewakili suatu pola, dengan demikian dapat

meningkatkan prosentase kebenaran pengenalan pola

2. Program dapat juga dikembangkan dengan metode pengenalan

yang lain, misalnya Metode bayes, Mahalanobis distance atau juga


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

77

dengan jaringan syaraf tiruan, untuk mengurangi kesalahan

pengenalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

78

DAFTAR PUSTAKA

Anonymous. Haar Transform.


http://www.math.rutgers.edu/courses/357/s06lab4.pdf , diakses Desember

2006

Chahyati, Dina. Fakultas Ilmu Komputer Universitas Indonesia Jakarta


http://www.ui.cs.ac.id , diakses November 2006

Gonzales, Rafael C, Woods, Richard E and Eddins, Steven L. Digital Image


Processing Using Matlab. New Jersey: Prentice-Hall, Inc., 2004

Murni, Aniati dan Suryana, Setiawan. Pengantar Pengolahan Citra. Jakarta : PT.
Elex Media Komputindo. 1992

Munir, Rinaldi. Pengolahan Citra Digital dengan Pendekatan Algoritmik.


Bandung: Penerbit Informatika. 2004

Minarni. Klasifikasi Sidik Jari dengan Pemrosesan Awal Transformasi Wavelet.


Fakultas Teknik Industri jurusan Teknik Elektro Institut Teknologi
Padang.2004

Wijaya, I Gede Pasek Suta dan Kanata, Bulkis. Pengenalan Citra Sidik jari
Berbasis Transformasi Wavelet dan Jaringan Syaraf Tiruan. Fakultas Teknik
Universitas Mataram.

http://mathworld.wolfram.com/EuclideanAlgorithm, diakses Februari 2007


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

61

LAMPIRAN A

A. Listing Program Proses Preprocessing,Ekstraksi ciri


function varargout = coba_proses(varargin)
% COBA_PROSES M-file for coba_proses.fig
% COBA_PROSES, by itself, creates a new COBA_PROSES or raises the
existing
% singleton*.
%
% H = COBA_PROSES returns the handle to a new COBA_PROSES or the handle
to
% the existing singleton*.
%
% COBA_PROSES('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in COBA_PROSES.M with the given input
arguments.
%
% COBA_PROSES('Property','Value',...) creates a new COBA_PROSES or
raises the
% existing singleton*. Starting from the left, property value pairs
are
% applied to the GUI before coba_proses_OpeningFunction gets called.
An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to coba_proses_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help coba_proses

% Last Modified by GUIDE v2.5 23-Mar-2007 08:28:25

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @coba_proses_OpeningFcn, ...
'gui_OutputFcn', @coba_proses_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before coba_proses is made visible.


function coba_proses_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to coba_proses (see VARARGIN)

% Choose default command line output for coba_proses


handles.output = hObject;

61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

62

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes coba_proses wait for user response (see UIRESUME)


% uiwait(handles.figure1);
data = [1];
imwrite(uint8(data),'cek_preprocessing.bmp');
data = [0];
imwrite(uint8(data),'cek_ekstraksiciri.bmp');
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
tunggu;
c=imread('gambar_awal.bmp');
imwrite(uint8(c),'gambar_awal.bmp');
cek_input = 0;
cek_input = imread('cek_input.bmp');
data = [1];
position = get(hObject, 'Position');
axes(handles.axes1);
imshow(c);
%set(handles.axes1,'visible','on')
%set(handles.axes2,'visible','off')

% --- Outputs from this function are returned to the command line.
function varargout = coba_proses_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
citra = imread('gambar_awal.bmp');
data = [1];
imwrite(uint8(data),'cek_preprocessing.bmp');
data = [0];
imwrite(uint8(data),'cek_ekstraksiciri.bmp');
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
tunggu;
ubah= imresize(citra,[64 ,64]); % untuk mengubah ukuran citra menjadi 64
x 64
[m,n]=size(ubah)
for i=1:m
for j=1:n
if ubah(i,j)<= 128
ubah1(i,j)=0;
else
ubah1(i,j)=1;
end
end
end
whos ubah
%ubah=im2bw(ubah)
imwrite(uint8(data),'cek_input.bmp');
position2 = get(hObject, 'Position');
axes(handles.axes2);
imshow(ubah1);
imwrite(uint8(ubah1),'gambar_openfile.bmp');

62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

63

set(handles.text38,'visible','on')
set(handles.axes2,'visible','on')

% --- Executes on button press in pushbutton2.


function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

data=[1]
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
cek_preprocessing = imread('cek_preprocessing.bmp');
cek_ekstraksiciri = imread('cek_ekstraksiciri.bmp');
cek_kesimpulan = imread('cek_kesimpulan.bmp');
if( cek_preprocessing == 0 )
% %
button = questdlg('Maaf.. Anda belum melakukan Tahap
Preprocessing. Apakah Anda mau melakukannya ?',...
'Pesan Kesalahan Preprocessing Citra','Yes','No','No');
if strcmp(button,'Yes')
close;
gambar_proses;
break;
elseif strcmp(button,'No')
close;

break;
end
break;
end
if( cek_preprocessing == 1 )
if ( cek_ekstraksiciri == 0)
button = questdlg('Maaf.. Anda melewatkan tahap Ekstraksi Ciri.
Apakah Anda mau melakukannya?',...
'Pesan Kesalahan ','Yes','No','No');
if strcmp(button,'Yes')
close;
coba_proses;
break;
elseif strcmp(button,'No')
menunya;
%
break;
end
break;
end
end
end

end
%cek level wavelet
%cek level wavelet
obyek = imread('gambar_wav0.bmp');
obyek = double(mean2(obyek));
% %
obyek1 = imread('gambar_wav1.bmp');
obyek1 = double(mean2(obyek1));
% %
obyek2 = imread('gambar_wav2.bmp');
obyek2 = double(mean2(obyek2));
% %
obyek3 = imread('gambar_wav3.bmp');
obyek3 = double(mean2(obyek3));
%
%
% % % untuk mengetahui tingkatan level wavelet

63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

64

if (obyek == obyek1)
wav_nilai = 1;
else if (obyek == obyek2)
wav_nilai = 2;
else if (obyek == obyek3)
wav_nilai = 3;
end
end
end
for z = 1 : 3
if (wav_nilai == 1)
level = 1;

break;
else if(wav_nilai == 2)
level = 2;

break;
else if(wav_nilai == 3)
level = 3;

break;
end
end
end
end
if (wav_nilai==1)

%kenaldata
formhasil

elseif (wav_nilai==2)

formhasilL2
elseif (wav_nilai==3)

formhasilL3
end

% --- Executes during object creation, after setting all properties.


function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% --- Executes on selection change in popupmenu1.


function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu1 contents as


cell array
% contents{get(hObject,'Value')} returns selected item from
popupmenu1
cb_cek;
global isi
global val_lp

64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

65

val_lp = get(hObject,'Value')
string_list = get(hObject,'String')
isi = string_list{val_lp}
set(handles.edit1,'string',isi)
if (isi=='Level 1')

data1 = [3];
imwrite(uint8(data1),'cek_ekstraksiciri.bmp');
c=imread('gambar_openfile.bmp');
load wbarb;
whos;
%image(c); colormap(map);colorbar;
[cA1,cH1,cV1,cD1] = dwt2(c,'db1');
A1 = upcoef2('a',cA1,'db1',1);
H1 = upcoef2('h',cH1,'db1',1);
V1 = upcoef2('v',cV1,'db1',1);
D1 = upcoef2('d',cD1,'db1',1);

colormap(map);
position2 = get(hObject, 'Position');
axes(handles.axes3);
image(wcodemat(abs(A1),192));
set(handles.axes3,'visible','on')
set(handles.text33,'visible','on')

position3 = get(hObject, 'Position');


axes(handles.axes4);
image(wcodemat(abs(H1),192));
set(handles.axes4,'visible','on')
set(handles.text34,'visible','on')

position4 = get(hObject, 'Position');


axes(handles.axes5);
image(wcodemat(abs(V1),192));
set(handles.axes5,'visible','on')
set(handles.text35,'visible','on')

position5 = get(hObject, 'Position');


axes(handles.axes6);
image(wcodemat(abs(D1),192));
set(handles.axes6,'visible','on')
set(handles.text36,'visible','on')

data = [1];
imwrite(uint8(data),'gambar_wav1.bmp');
imwrite(uint8(data),'gambar_wav0.bmp');
%set(handles.popupmenu1,'enable','off')
%menuekstraksi;
elseif (isi=='Level 2')
data1 = [3];
imwrite(uint8(data1),'cek_ekstraksiciri.bmp');
c=imread('gambar_openfile.bmp');
load wbarb;
whos;
%image(c); colormap(map);colorbar;
[cA1,cH1,cV1,cD1] = dwt2(c,'db1');
A1 = upcoef2('a',cA1,'db1',1)
H1 = upcoef2('h',cH1,'db1',1)
V1 = upcoef2('v',cV1,'db1',1);
D1 = upcoef2('d',cD1,'db1',1);
Xsyn = idwt2(cA1,cH1,cV1,cD1,'db1');
[C,S] = wavedec2(c,2,'db1');
cA2 = appcoef2(C,S,'db1',2);

cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2);
cH1 = detcoef2('h',C,S,1);

65
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

66

cV1 = detcoef2('v',C,S,1);
cD1 = detcoef2('d',C,S,1);

A2 = wrcoef2('a',C,S,'db1',2);

H1 = wrcoef2('h',C,S,'db1',1);
V1 = wrcoef2('v',C,S,'db1',1);
D1 = wrcoef2('d',C,S,'db1',1);
H2 = wrcoef2('h',C,S,'db1',2);
V2 = wrcoef2('v',C,S,'db1',2);
D2 = wrcoef2('d',C,S,'db1',2);
colormap(map);
position2 = get(hObject, 'Position');
axes(handles.axes7);
image(wcodemat(abs(A2),192));
set(handles.text39,'visible','on')
set(handles.axes3,'visible','off')
set(handles.text33,'visible','off')

position3 = get(hObject, 'Position');


axes(handles.axes8);
image(wcodemat(abs(H2),192));
set(handles.text40,'visible','on')
set(handles.axes4,'visible','off')
set(handles.text34,'visible','off')

position4 = get(hObject, 'Position');


axes(handles.axes9);
image(wcodemat(abs(V2),192));
set(handles.text41,'visible','on')
set(handles.axes5,'visible','off')
set(handles.text35,'visible','off')

position5 = get(hObject, 'Position');


axes(handles.axes10);
image(wcodemat(abs(D2),192));
set(handles.text42,'visible','on')
set(handles.axes6,'visible','off')
set(handles.text36,'visible','off')

data = [2];
imwrite(uint8(data),'gambar_wav2.bmp');
imwrite(uint8(data),'gambar_wav0.bmp');
%set(handles.popupmenu1,'enable','off')
elseif (isi=='Level 3')
data1 = [3];
imwrite(uint8(data1),'cek_ekstraksiciri.bmp');
c=imread('gambar_openfile.bmp');
load wbarb;
whos;
%image(c); colormap(map);colorbar;
[cA1,cH1,cV1,cD1] = dwt2(c,'db1');
A1 = upcoef2('a',cA1,'db1',1);
H1 = upcoef2('h',cH1,'db1',1);
V1 = upcoef2('v',cV1,'db1',1);
D1 = upcoef2('d',cD1,'db1',1);

Xsyn = idwt2(cA1,cH1,cV1,cD1,'db1');
[C,S] = wavedec2(c,2,'db1');
cA2 = appcoef2(C,S,'db1',2);

cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2);
cH1 = detcoef2('h',C,S,1);
cV1 = detcoef2('v',C,S,1);
cD1 = detcoef2('d',C,S,1);

66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

67

A2 = wrcoef2('a',C,S,'db1',2);

H1 = wrcoef2('h',C,S,'db1',1);
V1 = wrcoef2('v',C,S,'db1',1);
D1 = wrcoef2('d',C,S,'db1',1);
H2 = wrcoef2('h',C,S,'db1',2);
V2 = wrcoef2('v',C,S,'db1',2);
D2 = wrcoef2('d',C,S,'db1',2);

Xsyn = idwt2(cA1,cH1,cV1,cD1,'db1');
[C,S] = wavedec2(c,3,'db1');
cA3 = appcoef2(C,S,'db1',3);

cH3 = detcoef2('h',C,S,3);
cV3 = detcoef2('v',C,S,3);
cD3 = detcoef2('d',C,S,3);
cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2);
cH1 = detcoef2('h',C,S,1);
cV1 = detcoef2('v',C,S,1);
cD1 = detcoef2('d',C,S,1);

A3 = wrcoef2('a',C,S,'db1',3);

H1 = wrcoef2('h',C,S,'db1',1);
V1 = wrcoef2('v',C,S,'db1',1);
D1 = wrcoef2('d',C,S,'db1',1);
H2 = wrcoef2('h',C,S,'db1',2);
V2 = wrcoef2('v',C,S,'db1',2);
D2 = wrcoef2('d',C,S,'db1',2);
H3 = wrcoef2('h',C,S,'db1',3);
V3 = wrcoef2('v',C,S,'db1',3);
D3 = wrcoef2('d',C,S,'db1',3);

colormap(map);
position2 = get(hObject, 'Position');
axes(handles.axes11);
image(wcodemat(abs(A3),192));
set(handles.text43,'visible','on')
set(handles.axes3,'visible','off')
set(handles.text33,'visible','off')
set(handles.axes7,'visible','off')
set(handles.text39,'visible','off')

position3 = get(hObject, 'Position');


axes(handles.axes12);
image(wcodemat(abs(H3),192));
set(handles.text44,'visible','on')
set(handles.axes4,'visible','off')
set(handles.text34,'visible','off')
set(handles.axes8,'visible','off')
set(handles.text40,'visible','off')

position4 = get(hObject, 'Position');


axes(handles.axes13);
image(wcodemat(abs(V3),192));
set(handles.text45,'visible','on')
set(handles.axes5,'visible','off')
set(handles.text35,'visible','off')
set(handles.axes9,'visible','off')
set(handles.text41,'visible','off')

position5 = get(hObject, 'Position');


axes(handles.axes14);
image(wcodemat(abs(D3),192));
set(handles.text46,'visible','on')
set(handles.axes6,'visible','off')

67
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

68

set(handles.text36,'visible','off')
set(handles.axes10,'visible','off')
set(handles.text42,'visible','off')

data = [ 3 ];
imwrite(uint8(data),'gambar_wav3.bmp');
imwrite(uint8(data),'gambar_wav0.bmp');
%set(handles.popupmenu1,'enable','off')

end

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


% str2double(get(hObject,'String')) returns contents of edit1 as a
double

% --- Executes on button press in pushbutton3.


function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close
menunya

% --- Executes during object creation, after setting all properties.


function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit2_Callback(hObject, eventdata, handles)


% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

69

% Hints: get(hObject,'String') returns contents of edit2 as text


% str2double(get(hObject,'String')) returns contents of edit2 as a
double
global n
n=get(str2num(handles.edit2,'string'))

% --- Executes on button press in pushbutton4.


function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

close
menunya;
B. Listing Program Tampil Hasil Pengenalan

function varargout = formhasil(varargin)


% FORMHASIL M-file for formhasil.fig
% FORMHASIL, by itself, creates a new FORMHASIL or raises the existing
% singleton*.
%
% H = FORMHASIL returns the handle to a new FORMHASIL or the handle to
% the existing singleton*.
%
% FORMHASIL('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in FORMHASIL.M with the given input
arguments.
%
% FORMHASIL('Property','Value',...) creates a new FORMHASIL or raises
the
% existing singleton*. Starting from the left, property value pairs
are
% applied to the GUI before formhasil_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to formhasil_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help formhasil

% Last Modified by GUIDE v2.5 23-Mar-2007 08:06:55

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @formhasil_OpeningFcn, ...
'gui_OutputFcn', @formhasil_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

70

% --- Executes just before formhasil is made visible.


function formhasil_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to formhasil (see VARARGIN)

% Choose default command line output for formhasil


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes formhasil wait for user response (see UIRESUME)


% uiwait(handles.figure1);
data=[1]
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
cek_preprocessing = imread('cek_preprocessing.bmp');
cek_ekstraksiciri = imread('cek_ekstraksiciri.bmp');
cek_kesimpulan = imread('cek_kesimpulan.bmp');
citra = imread('gambar_openfile.bmp');
ubah=citra;
[cA1,cH1,cV1,cD1] = dwt2(ubah,'db1'); %dekomposisi level 1
%membangun detail dan approksimasi dari koefisien matrik diatas
A1 = upcoef2('a',cA1,'db1',1);
H1 = upcoef2('h',cH1,'db1',1);
V1 = upcoef2('v',cV1,'db1',1);
D1 = upcoef2('d',cD1,'db1',1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%menampilkan dekomposisi level 1


A1 = wcodemat(abs(A1));
ciri_A1 = double(mean2(A1));
H1 = wcodemat(abs(H1));
ciri_H1 = double(mean2(H1));
V1 = wcodemat(abs(V1));
ciri_V1 = double(mean2(V1));
D1 = wcodemat(abs(D1));
ciri_D1 = double(mean2(D1));
L1=[ciri_A1 ciri_H1 ciri_V1 ciri_D1];
a2=ciri_A1;
b2=ciri_H1;
c2=ciri_V1;
d2=ciri_D1;

conn=database('myodbc','root','');
ping(conn);
curs_kelas = exec(conn, 'select * from tbciri');
curs_kelas = fetch(curs_kelas);
panjangbaris = rows(curs_kelas);

for i=1:panjangbaris
temp{i}=cell2mat([curs_kelas.Data(i,1) curs_kelas.Data(i,2)
curs_kelas.Data(i,3) curs_kelas.Data(i,4)]);
x{i}=cell2mat(curs_kelas.Data(i,1));
y{i}=cell2mat(curs_kelas.Data(i,2));
z{i}=cell2mat(curs_kelas.Data(i,3));
v{i}=cell2mat(curs_kelas.Data(i,4));
d{i}=abs(sqrt(((x{i}-a2)^2)+((y{i}-b2)^2)+((z{i}-c2)^2)+((v{i}-d2)^2)));
end
%hitung nilai d

h=[d{1} d{2} d{3} d{4} d{5} d{6} d{7} d{8} d{9} d{10} d{11} d{12} d{13}
d{14} d{15} d{16} d{17} d{18} d{19} d{20} d{21} d{22} d{23} d{24} d{25}
d{26} d{27} d{28} d{29} d{30} d{31} d{32} d{33} d{34} d{35} d{36} d{37}

70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

71

d{38} d{39} d{40} d{41} d{42} d{43} d{44} d{45} d{46} d{47} d{48} d{49}
d{50}]
hmin=min(h)

if hmin==d{1}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{2}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{3}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{31}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{32}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{4}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{5}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{6}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{33}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{34}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{7}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{8}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{9}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{35}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{36}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{10}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{11}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{12}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{37}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{38}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{13}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{14}

71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

72

disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{15}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{39}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{40}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{16}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{17}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{18}
disp('5')
elseif hmin==d{41}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{42}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{19}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{20}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{21}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{43}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{44}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{22}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{23}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{24}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{45}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{46}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{25}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{26}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{27}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{47}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{48}

72
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

73

disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{28}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{29}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{30}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{49}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{50}
disp('9')
set(handles.edit1,'string','9')
end

% --- Outputs from this function are returned to the command line.
function varargout = formhasil_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


% str2double(get(hObject,'String')) returns contents of edit1 as a
double

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

Close

Level 2
function varargout = formhasil(varargin)
% FORMHASIL M-file for formhasil.fig

73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

74

% FORMHASIL, by itself, creates a new FORMHASIL or raises the existing


% singleton*.
%
% H = FORMHASIL returns the handle to a new FORMHASIL or the handle to
% the existing singleton*.
%
% FORMHASIL('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in FORMHASIL.M with the given input
arguments.
%
% FORMHASIL('Property','Value',...) creates a new FORMHASIL or raises
the
% existing singleton*. Starting from the left, property value pairs
are
% applied to the GUI before formhasil_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to formhasil_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help formhasil

% Last Modified by GUIDE v2.5 23-Mar-2007 08:06:55

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @formhasil_OpeningFcn, ...
'gui_OutputFcn', @formhasil_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before formhasil is made visible.


function formhasil_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to formhasil (see VARARGIN)

% Choose default command line output for formhasil


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes formhasil wait for user response (see UIRESUME)


% uiwait(handles.figure1);
data=[1]
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
cek_preprocessing = imread('cek_preprocessing.bmp');

74
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

75

cek_ekstraksiciri = imread('cek_ekstraksiciri.bmp');
cek_kesimpulan = imread('cek_kesimpulan.bmp');
citra = imread('gambar_openfile.bmp');
ubah=citra;
[cA1,cH1,cV1,cD1] = dwt2(ubah,'db1'); %dekomposisi level 1
%membangun detail dan approksimasi dari koefisien matrik diatas
A1 = upcoef2('a',cA1,'db1',1);
H1 = upcoef2('h',cH1,'db1',1);
V1 = upcoef2('v',cV1,'db1',1);
D1 = upcoef2('d',cD1,'db1',1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%dekomposisi level 2
[C,S] = wavedec2(ubah,2,'db1');
%ekstraksi koefisien approksimasi level 2
cA2 = appcoef2(C,S,'db1',2);
%ekstraksi keofisien detail level 1 dan level 2
cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2);
cH1 = detcoef2('h',C,S,1);
cV1 = detcoef2('v',C,S,1);
cD1 = detcoef2('d',C,S,1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%Ciri Level 2%%%%%%%%%%%%%%%
A2 = wcodemat(abs(cA2));
ciri_A2 = double(mean2(cA2));
H2 = wcodemat(abs(cH2));
ciri_H2 = double(mean2(cH2));
V2 = wcodemat(abs(cV2));
ciri_V2 = double(mean2(cV2));
D2 = wcodemat(abs(cD2));
ciri_D2 = double(mean2(cD2));
L1=[ciri_A2 ciri_H2 ciri_V2 ciri_D2]
x2=ciri_A2;
y2=ciri_H2;
z2=ciri_V2;
v2=ciri_D2;

conn=database('myodbc','root','');
ping(conn);
curs_kelas = exec(conn, 'select * from tbciri');
curs_kelas = fetch(curs_kelas);
panjangbaris = rows(curs_kelas);

for i=1:panjangbaris
temp{i}=cell2mat([curs_kelas.Data(i,5) curs_kelas.Data(i,6)
curs_kelas.Data(i,7) curs_kelas.Data(i,8)]);
x{i}=cell2mat(curs_kelas.Data(i,5));
y{i}=cell2mat(curs_kelas.Data(i,6));
z{i}=cell2mat(curs_kelas.Data(i,7));
v{i}=cell2mat(curs_kelas.Data(i,8));
d{i}=abs(sqrt(((x{i}-x2)^2)+((y{i}-y2)^2)+((z{i}-z2)^2)+((v{i}-v2)^2)));
end
%hitung nilai d

h=[d{1} d{2} d{3} d{4} d{5} d{6} d{7} d{8} d{9} d{10} d{11} d{12} d{13}
d{14} d{15} d{16} d{17} d{18} d{19} d{20} d{21} d{22} d{23} d{24} d{25}
d{26} d{27} d{28} d{29} d{30} d{31} d{32} d{33} d{34} d{35} d{36} d{37}
d{38} d{39} d{40} d{41} d{42} d{43} d{44} d{45} d{46} d{47} d{48} d{49}
d{50}]
hmin=min(h)

if hmin==d{1}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{2}

75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

76

disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{3}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{31}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{32}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{4}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{5}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{6}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{33}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{34}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{7}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{8}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{9}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{35}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{36}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{10}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{11}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{12}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{37}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{38}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{13}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{14}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{15}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{39}
disp('4')
set(handles.edit1,'string','4')

76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

77

elseif hmin==d{40}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{16}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{17}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{18}
disp('5')
elseif hmin==d{41}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{42}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{19}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{20}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{21}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{43}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{44}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{22}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{23}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{24}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{45}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{46}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{25}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{26}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{27}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{47}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{48}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{28}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{29}
disp('9')
set(handles.edit1,'string','9')

77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

78

elseif hmin==d{30}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{49}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{50}
disp('9')
set(handles.edit1,'string','9')
end
% --- Outputs from this function are returned to the command line.
function varargout = formhasil_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


% str2double(get(hObject,'String')) returns contents of edit1 as a
double

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

Close
Level 3
function varargout = formhasil(varargin)
% FORMHASIL M-file for formhasil.fig
% FORMHASIL, by itself, creates a new FORMHASIL or raises the existing
% singleton*.
%
% H = FORMHASIL returns the handle to a new FORMHASIL or the handle to
% the existing singleton*.
%
% FORMHASIL('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in FORMHASIL.M with the given input
arguments.
%

78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

79

% FORMHASIL('Property','Value',...) creates a new FORMHASIL or raises


the
% existing singleton*. Starting from the left, property value pairs
are
% applied to the GUI before formhasil_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to formhasil_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help formhasil

% Last Modified by GUIDE v2.5 23-Mar-2007 08:06:55

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @formhasil_OpeningFcn, ...
'gui_OutputFcn', @formhasil_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before formhasil is made visible.


function formhasil_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to formhasil (see VARARGIN)

% Choose default command line output for formhasil


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes formhasil wait for user response (see UIRESUME)


% uiwait(handles.figure1);
data=[3]
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
cek_preprocessing = imread('cek_preprocessing.bmp');
cek_ekstraksiciri = imread('cek_ekstraksiciri.bmp');
cek_kesimpulan = imread('cek_kesimpulan.bmp');
citra = imread('gambar_openfile.bmp');
ubah=citra;
[cA1,cH1,cV1,cD1] = dwt2(ubah,'db1'); %dekomposisi level 1
%membangun detail dan approksimasi dari koefisien matrik diatas
A1 = upcoef2('a',cA1,'db1',1);
H1 = upcoef2('h',cH1,'db1',1);
V1 = upcoef2('v',cV1,'db1',1);
D1 = upcoef2('d',cD1,'db1',1);

79
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

80

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% %dekomposisi level 2
[C,S] = wavedec2(ubah,2,'db1');
%ekstraksi koefisien approksimasi level 2
cA2 = appcoef2(C,S,'db1',2);
%ekstraksi keofisien detail level 1 dan level 2
cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2);
cH1 = detcoef2('h',C,S,1);
cV1 = detcoef2('v',C,S,1);
cD1 = detcoef2('d',C,S,1);

% % %%%%%%%%%%level 3%%%%%%%%%%%%%%%%%%%%%%%
[C,S] = wavedec2(ubah,3,'db1');
% % %ekstraksi koefisien approksimasi level 3
cA3 = appcoef2(C,S,'db1',3);
% %ekstraksi keofisien detail level 1 dan level 2 dan 3
cH3 = detcoef2('h',C,S,3);
cV3 = detcoef2('v',C,S,3);
cD3 = detcoef2('d',C,S,3);
cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2);
cH1 = detcoef2('h',C,S,1);
cV1 = detcoef2('v',C,S,1);
cD1 = detcoef2('d',C,S,1);
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % %%%%%%Ciri Level 3%%%%%%%%%%%%%%%
A3 = wcodemat(abs(cA3));
ciri_A3 = double(mean2(cA3));
H3 = wcodemat(abs(cH3));
ciri_H3 = double(mean2(cH3));
V3 = wcodemat(abs(cV3));
ciri_V3 = double(mean2(cV3));
D2 = wcodemat(abs(cD3));
ciri_D3 = double(mean2(cD3));

L1=[ciri_A3 ciri_H3 ciri_V3 ciri_D3]


x2=ciri_A3;
y2=ciri_H3;
z2=ciri_V3;
v2=ciri_D3;

conn=database('myodbc','root','');
ping(conn);
curs_kelas = exec(conn, 'select * from tbciri');
curs_kelas = fetch(curs_kelas);
panjangbaris = rows(curs_kelas);

for i=1:panjangbaris
temp{i}=cell2mat([curs_kelas.Data(i,9) curs_kelas.Data(i,10)
curs_kelas.Data(i,11) curs_kelas.Data(i,12)]);
x{i}=cell2mat(curs_kelas.Data(i,9));
y{i}=cell2mat(curs_kelas.Data(i,10));
z{i}=cell2mat(curs_kelas.Data(i,11));
v{i}=cell2mat(curs_kelas.Data(i,12));
d{i}=abs(sqrt(((x{i}-x2)^2)+((y{i}-y2)^2)+((z{i}-z2)^2)+((v{i}-v2)^2)));
end
%hitung nilai d

h=[d{1} d{2} d{3} d{4} d{5} d{6} d{7} d{8} d{9} d{10} d{11} d{12} d{13}
d{14} d{15} d{16} d{17} d{18} d{19} d{20} d{21} d{22} d{23} d{24} d{25}
d{26} d{27} d{28} d{29} d{30} d{31} d{32} d{33} d{34} d{35} d{36} d{37}
d{38} d{39} d{40} d{41} d{42} d{43} d{44} d{45} d{46} d{47} d{48} d{49}
d{50}]
hmin=min(h)

80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

81

if hmin==d{1}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{2}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{3}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{31}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{32}
disp('0')
set(handles.edit1,'string','0')
elseif hmin==d{4}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{5}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{6}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{33}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{34}
disp('1')
set(handles.edit1,'string','1')
elseif hmin==d{7}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{8}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{9}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{35}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{36}
disp('2')
set(handles.edit1,'string','2')
elseif hmin==d{10}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{11}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{12}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{37}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{38}
disp('3')
set(handles.edit1,'string','3')
elseif hmin==d{13}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{14}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{15}

81
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

82

disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{39}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{40}
disp('4')
set(handles.edit1,'string','4')
elseif hmin==d{16}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{17}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{18}
disp('5')
elseif hmin==d{41}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{42}
disp('5')
set(handles.edit1,'string','5')
elseif hmin==d{19}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{20}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{21}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{43}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{44}
disp('6')
set(handles.edit1,'string','6')
elseif hmin==d{22}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{23}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{24}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{45}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{46}
disp('7')
set(handles.edit1,'string','7')
elseif hmin==d{25}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{26}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{27}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{47}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{48}
disp('8')
set(handles.edit1,'string','8')
elseif hmin==d{28}

82
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

83

disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{29}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{30}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{49}
disp('9')
set(handles.edit1,'string','9')
elseif hmin==d{50}
disp('9')
set(handles.edit1,'string','9')
end
% --- Outputs from this function are returned to the command line.
function varargout = formhasil_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


% str2double(get(hObject,'String')) returns contents of edit1 as a
double

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

close

C. Listing Program Tambah Template Baru


function varargout = newtemplate(varargin)
% NEWTEMPLATE M-file for newtemplate.fig
% NEWTEMPLATE, by itself, creates a new NEWTEMPLATE or raises the
existing

83
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

84

% singleton*.
%
% H = NEWTEMPLATE returns the handle to a new NEWTEMPLATE or the handle
to
% the existing singleton*.
%
% NEWTEMPLATE('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in NEWTEMPLATE.M with the given input
arguments.
%
% NEWTEMPLATE('Property','Value',...) creates a new NEWTEMPLATE or
raises the
% existing singleton*. Starting from the left, property value pairs
are
% applied to the GUI before newtemplate_OpeningFunction gets called.
An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to newtemplate_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help newtemplate

% Last Modified by GUIDE v2.5 20-Mar-2007 10:58:15

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @newtemplate_OpeningFcn, ...
'gui_OutputFcn', @newtemplate_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before newtemplate is made visible.


function newtemplate_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to newtemplate (see VARARGIN)

% Choose default command line output for newtemplate


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes newtemplate wait for user response (see UIRESUME)


% uiwait(handles.figure1);
data = [1];
imwrite(uint8(data),'cek_preprocessing.bmp');
data = [0];

84
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

85

imwrite(uint8(data),'cek_ekstraksiciri.bmp');
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
tunggu;
c=imread('gambar_awal.bmp');
imwrite(uint8(c),'gambar_awal.bmp');
cek_input = 0;
cek_input = imread('cek_input.bmp');
data = [1];
position = get(hObject, 'Position');
axes(handles.axes1);
imshow(c);

% --- Outputs from this function are returned to the command line.
function varargout = newtemplate_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton2.


function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
citra = imread('gambar_awal.bmp');
data = [1];
imwrite(uint8(data),'cek_preprocessing.bmp');
data = [0];
imwrite(uint8(data),'cek_ekstraksiciri.bmp');
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
tunggu;
ubah= imresize(citra,[64 64]); % untuk mengubah ukuran citra menjadi 64 x
64
ubah=im2bw(ubah)
imwrite(uint8(data),'cek_input.bmp');
position2 = get(hObject, 'Position');
axes(handles.axes2);
imshow(ubah);
imwrite(uint8(ubah),'gambar_openfile.bmp');

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

85
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

86

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


% str2double(get(hObject,'String')) returns contents of edit1 as a
double

% --- Executes during object creation, after setting all properties.


function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit2_Callback(hObject, eventdata, handles)


% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text


% str2double(get(hObject,'String')) returns contents of edit2 as a
double

% --- Executes during object creation, after setting all properties.


function edit3_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit3_Callback(hObject, eventdata, handles)


% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit3 as text


% str2double(get(hObject,'String')) returns contents of edit3 as a
double

% --- Executes during object creation, after setting all properties.


function edit4_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

86
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

87

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit4_Callback(hObject, eventdata, handles)


% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit4 as text


% str2double(get(hObject,'String')) returns contents of edit4 as a
double

% --- Executes during object creation, after setting all properties.


function edit5_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit5_Callback(hObject, eventdata, handles)


% hObject handle to edit5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit5 as text


% str2double(get(hObject,'String')) returns contents of edit5 as a
double

% --- Executes during object creation, after setting all properties.


function edit6_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit6_Callback(hObject, eventdata, handles)


% hObject handle to edit6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

87
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

88

% Hints: get(hObject,'String') returns contents of edit6 as text


% str2double(get(hObject,'String')) returns contents of edit6 as a
double

% --- Executes during object creation, after setting all properties.


function edit7_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit7_Callback(hObject, eventdata, handles)


% hObject handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit7 as text


% str2double(get(hObject,'String')) returns contents of edit7 as a
double

% --- Executes during object creation, after setting all properties.


function edit8_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit8_Callback(hObject, eventdata, handles)


% hObject handle to edit8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit8 as text


% str2double(get(hObject,'String')) returns contents of edit8 as a
double

% --- Executes during object creation, after setting all properties.


function edit9_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else

88
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

89

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit9_Callback(hObject, eventdata, handles)


% hObject handle to edit9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit9 as text


% str2double(get(hObject,'String')) returns contents of edit9 as a
double

% --- Executes during object creation, after setting all properties.


function edit10_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit10_Callback(hObject, eventdata, handles)


% hObject handle to edit10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit10 as text


% str2double(get(hObject,'String')) returns contents of edit10 as a
double

% --- Executes during object creation, after setting all properties.


function edit11_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit11 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit11_Callback(hObject, eventdata, handles)


% hObject handle to edit11 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit11 as text


% str2double(get(hObject,'String')) returns contents of edit11 as a
double

% --- Executes during object creation, after setting all properties.

89
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

90

function edit12_CreateFcn(hObject, eventdata, handles)


% hObject handle to edit12 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit12_Callback(hObject, eventdata, handles)


% hObject handle to edit12 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit12 as text


% str2double(get(hObject,'String')) returns contents of edit12 as a
double

% --- Executes on button press in pushbutton3.


function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global ciri_A1
global ciri_H1
global ciri_V1
global ciri_D1
global ciri_A2
global ciri_H2
global ciri_V2
global ciri_D2
global ciri_A3
global ciri_H3
global ciri_V3
global ciri_D3

data=[1]
imwrite(uint8(data),'cek_kesimpulan.bmp');
cek_input = imread('cek_input.bmp');
cek_preprocessing = imread('cek_preprocessing.bmp');
cek_ekstraksiciri = imread('cek_ekstraksiciri.bmp');
cek_kesimpulan = imread('cek_kesimpulan.bmp');
citra = imread('gambar_openfile.bmp');
ubah=citra;
[cA1,cH1,cV1,cD1] = dwt2(ubah,'db1'); %dekomposisi level 1
%membangun detail dan approksimasi dari koefisien matrik diatas
A1 = upcoef2('a',cA1,'db1',1);
H1 = upcoef2('h',cH1,'db1',1);
V1 = upcoef2('v',cV1,'db1',1);
D1 = upcoef2('d',cD1,'db1',1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%menampilkan dekomposisi level 1


A1 = wcodemat(abs(A1));
ciri_A1 = double(mean2(A1));
H1 = wcodemat(abs(H1));
ciri_H1 = double(mean2(H1));
V1 = wcodemat(abs(V1));
ciri_V1 = double(mean2(V1));
D1 = wcodemat(abs(D1));

90
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

91

ciri_D1 = double(mean2(D1));
L1=[ciri_A1 ciri_H1 ciri_V1 ciri_D1]
[C,S] = wavedec2(ubah,2,'db1');
%ekstraksi koefisien approksimasi level 2
cA2 = appcoef2(C,S,'db1',2);
%ekstraksi keofisien detail level 1 dan level 2
cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2);
cH1 = detcoef2('h',C,S,1);
cV1 = detcoef2('v',C,S,1);
cD1 = detcoef2('d',C,S,1);

A2 = wcodemat(abs(cA2));
ciri_A2 = double(mean2(cA2));
H2 = wcodemat(abs(cH2));
ciri_H2 = double(mean2(cH2));
V2 = wcodemat(abs(cV2));
ciri_V2 = double(mean2(cV2));
D2 = wcodemat(abs(cD2));
ciri_D2 = double(mean2(cD2));
L2=[ciri_A2 ciri_H2 ciri_V2 ciri_D2]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%level 3
[C,S] = wavedec2(ubah,3,'db1');
%ekstraksi koefisien approksimasi level 3
cA3 = appcoef2(C,S,'db1',3);
%ekstraksi keofisien detail level 1 dan level 2 dan 3
cH3 = detcoef2('h',C,S,3);
cV3 = detcoef2('v',C,S,3);
cD3 = detcoef2('d',C,S,3);
cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2);
cH1 = detcoef2('h',C,S,1);
cV1 = detcoef2('v',C,S,1);
cD1 = detcoef2('d',C,S,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%Ciri Level 3%%%%%%%%%%%%%%%
A3 = wcodemat(abs(cA3));
ciri_A3 = double(mean2(cA3));
H3 = wcodemat(abs(cH3));
ciri_H3 = double(mean2(cH3));
V3 = wcodemat(abs(cV3));
ciri_V3 = double(mean2(cV3));
D2 = wcodemat(abs(cD3));
ciri_D3 = double(mean2(cD3));
L3=[ciri_A3 ciri_H3 ciri_V3 ciri_D3]
set(handles.edit1,'string',(ciri_A1))
set(handles.edit1,'visible','on')
set(handles.edit2,'string',(ciri_H1))
set(handles.edit2,'visible','on')
set(handles.edit3,'string',(ciri_V1))
set(handles.edit3,'visible','on')
set(handles.edit4,'string',(ciri_D1))
set(handles.edit4,'visible','on')
set(handles.edit5,'string',(ciri_A2))
set(handles.edit5,'visible','on')
set(handles.edit6,'string',(ciri_H2))
set(handles.edit6,'visible','on')
set(handles.edit7,'string',(ciri_V2))
set(handles.edit7,'visible','on')
set(handles.edit8,'string',(ciri_D2))
set(handles.edit8,'visible','on')
set(handles.edit9,'string',(ciri_A3))
set(handles.edit9,'visible','on')

91
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

92

set(handles.edit10,'string',(ciri_H3))
set(handles.edit10,'visible','on')
set(handles.edit11,'string',(ciri_V3))
set(handles.edit11,'visible','on')
set(handles.edit12,'string',(ciri_D3))
set(handles.edit12,'visible','on')
set(handles.text1,'visible','on')
set(handles.text2,'visible','on')
set(handles.text3,'visible','on')
set(handles.text4,'visible','on')
set(handles.text5,'visible','on')
set(handles.text6,'visible','on')
set(handles.text7,'visible','on')
set(handles.text8,'visible','on')
set(handles.text9,'visible','on')
set(handles.text10,'visible','on')
set(handles.text11,'visible','on')
set(handles.text12,'visible','on')

% --- Executes on button press in pushbutton4.


function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global ciri_A1
global ciri_H1
global ciri_V1
global ciri_D1
global ciri_A2
global ciri_H2
global ciri_V2
global ciri_D2
global ciri_A3
global ciri_H3
global ciri_V3
global ciri_D3
button = questdlg('Anda Akan Menyimpan ?',...
'Message Box','Yes','No','No');
if strcmp(button,'Yes')
h = waitbar(0,'Sedang Menyimpan ...');
for i=1:1000
waitbar(i/100)
end
conn=database('myodbc','root','');
ping(conn);
%masukkan data ke database ESTI tabel
curs = exec(conn, 'select * from tempbaru');
setdbprefs('DataReturnFormat','cellarray');
curs = fetch(curs);
AA=curs.Data;
data1 =
{ciri_A1,ciri_H1,ciri_V1,ciri_D1,ciri_A2,ciri_H2,ciri_V2,ciri_D2,ciri_A3,cir
i_H3,ciri_V3,ciri_D3};
data2 = {'app1', 'hor1','ver1','det1','app2', 'hor2','ver2','det2','app3',
'hor3','ver3','det3'};
insert(conn, 'tempbaru', data2, data1);
commit(conn);
cursor = exec(conn,'commit');
close (curs);
close (conn);
close(h)

elseif strcmp(button,'No')

end

92
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

93

% --- Executes on button press in pushbutton5.


function pushbutton5_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close;
menunya

93
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

93

LAMPIRAN B

User Guide

• Sebelum menjalankan program ini, pastikan matlab 6.5 sudah terinstall dengan

sukses,

• SQL Yog sudah terinstall dengan baik,

• MyODBC-3.51.06 sudah terinstall dengan baik,

• Koneksikan matlab dengan database penyimpanan tabel ciri template.

Langkah-langkah sebagai berikut :

• Control Panel  Administrative Tools  Data Source (ODBC)myodbc

configureisikan database name : AngkaCetak  Test Data Source  OK

Pada program ini terdapat menu-menu untuk menjalankan proses pengenalan

A. Menu File

1. Input Pola

Pada sub menu ini user memilih pola angka yang ingin dikenali,

Pola hasil pilihan akan tampil pada form Proses Pengenalan. Di dalam

form ini semua tahapan proses pengenalan dilakukan. User harus

mengikuti semua tahapan proses sesuai urutan gambar tanda panah pada

form. Urutan pertama adalah tahapan preprocessing, tahapan kedua,

gambar hasil preprocessing akan diekstraksi. Pada pilihan level ekstraksi,

user memilih level pada popupmenu, maka hasil pilihan akan tampil pada

edit text disamping popupmenu. Setelah ekstraksi ciri user dapat

melakukan proses pengenalan angka dengan memilih push button (tombol)

Pengenalan Angka. Tahapan preprocessing, dan ekstraksi ciri tidak boleh

dilewatkan. Jika sampai terlewat maka akan muncul peringatan.


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

94

2. Input Data Baru

Pada sub menu ini user dapat memasukkan gambar baru sebagai template.

Gambar baru dicari vektor cirinya kemudian vektor cirinya akan disimpan

atau tidak. Mencari vektor ciri dengan memilih tombol Penarikan Vektor

Ciri. Tombol simpan adalah pilihan untk menyimpan vektor ciri jika tidak

ingin menyimpan bisa langsung memilih tombol keluar

3. Keluar

Sub menu ini untuk keluar dari program

B. Menu Informasi

Berisi software yang dipakai dalam pembuatan program dan tentang pembuat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

95

LAMPIRAN C
Template
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

96

Contoh Hasil Running

Dari masuk ke menu memilih gambar angka untuk dikenali tambah template

baru lihat informasi  keluar


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

97
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

98
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

99
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

101

Anda mungkin juga menyukai