Skripsi
Oleh :
Fransisca Pramesti
NIM: 023124019
SKRIPSI
Oleh :
Fransisca Pramesti
NIM: 023124019
Pembimbing
HALAMAN PENGESAHAN
FRANSISCA PRAMESTI
NIM : 023124019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya/bagian karya orang lain, kecuali yang telah disebutkan dalam
ABSTRAK
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
Dengan selesainya tugas akhir yang merupakan salah satu syarat untuk
meraih gelar Sarjana pada Program Studi Ilmu Komputer Universitas Sanata
kepada:
1. Ibu PH Prima Rosa, S.Si., M.Sc selaku Ketua Program Studi Ilmu Komputer
2. Ibu Rita Widiarti, S.Si, M.Kom selaku Dosen pembimbing atas segala
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
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
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.
Agnes (D’ Patkay), Agnes Psi, Jean, Suci, Dewi, Vivi, Tina, Tika, Nice, De’
10. Petugas Laboran dan Sekre MIPA (Pak Tukijo, Ibu Linda) terima kasih buat
bantuannya.
banyak kekurangan, kelemahan dan jauh dari sempurna. Oleh sebab itu
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
12
DAFTAR TABEL
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
pengenalan angka……………………………………………………… 22
3.4 DFDlevel2…………………………………………………………… 24
14
15
16
BAB I
PENDAHULUAN
A. Latar Belakang
obyek berdasarkan ciri-ciri atau pengetahuan yang pernah diamatinya dari obyek-
tiang listrik dengan pohon, atau antara kursi dengan meja. Begitu juga
dikenal dengan nama Pengenalan Pola (Pattern Recognition). Salah satu yang
mendapatkan hasil pengenalan yang lebih akurat. Salah satu yang populer adalah
vektor ciri. Wavelet Haar merupakan wavelet yang paling sederhana. Selain itu,
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
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
B. Rumusan Masalah
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
D. Tujuan
E. Manfaat
F. Metodologi
18
BAB I Pendahuluan
Pada bab ini akan dibahas latar belakang masalah, rumusan masalah,
penulisan.
BAB IV Implementasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
Dalam bab ini akan ditampilkan hasil pengujian program dan analisa
Dalam bab ini memuat kesimpulan dan saran dari masalah yang telah
dibahas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
BAB II
DASAR TEORI
Pola adalah entitas yang terdefinisi dan dapat didefinisikan melalui ciri-
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
Pola Ciri
21
Memiliki tingkat akurasi yang tinggi mengandung pengertian bahwa suatu objek
yang secara manual tidak dapat dikenali, tetapi bila menggunakan salah suatu
ciri-ciri yang dimiliki oleh pola tersebut. Dengan kata lain, pengenalan pola
Dalam pengenalan pola terbagi ke dalam dua fase proses pengenalan yaitu :
1) fase pelatihan, pada fase ini beberapa contoh citra dipelajari untuk
pendekatan secara statistik dan pendekatan secara sintatik atau struktural (Rinaldi
Munir,2004)
1. Pendekatan Statistik
ciri yang dimiliki oleh suatu pola ditentukan distribusi statistiknya. Pola
22
Misalkan ada N pola yang dikenali, yaitu w1, w2,...,wN dan fungsi
peluang atau kerapatan dari ciri – ciri pada pola diketahui. Jika x
P( x | wi ) , i = 1, 2, ..., N
dapat dihitung.
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
dan jika sebuah objek diukur dan diperoleh diameternya adalah b cm, maka
Munir,2004).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
1) Preprocessing
Binerisasi adalah proses mengubah pixel citra yang memiliki dua nilai
2) Feature Extraction
obyek di dalam citra. Pada proses ini obyek di dalam citra mungkin
dekomposisi wavelet
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
3) Classification
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
5) Learning
ciri dari suatu pola dinyatakan sebagai vektor ciri dalam ruang multi
dimensi. Jadi, setiap pola dinyatakan sebagai sebuah titik dalam ruang
25
2. Pendekatan sintatik
teori bahasa formal. Ciri-ciri yang terdapat pada suatu pola ditentukan primitif
Kelompok ini ditentukan dari aturan produksi pada tata bahasa yang telah
pendekatan sintaktik.
pola adalah mengikuti kontur atau tepi batas obyek dengan sejumlah segmen
garis terhubung satu sama lain, lalu mengkodekan setiap garis tersebut,
pembentuk obyek. Analogi Pendekatan Statistik dan Sintaktik pada tabel 2.2
26
pembuatan keputusan.
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
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
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
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
dilasi (dilation equation), yang dianggap sebagai dasar dari teori wavelet.
φ ( 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 :
jenisnya. Berdasarkan scaling function inilah basis wavelet memiliki nama yang
berbeda-beda.
√3)/4
28
Wavelet Haar dapat dijelaskan dalam ruang vektor 4 dimensi. Basis paling
sederhana yang sudah sering digunakan adalah basis orthonormal sebagai berikut :
sebagai berikut
Gambar 2.5 Gambar vektor h0, h1, h2, h3 dalam bentuk sinyal
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.
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
vektor dalam wavelet Haar, maka nilai a,b,c dan d dalam persamaan (2.4)
30
averaging (penambahan) dan differencing (selisih) terhadap nilai x0, x1, x2 dan x3
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
31
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
12 1
2 0 0 12 − 12 0 0
L= H =
1 − 1 2
0 0 1
2 2 0 0 1
2
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
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
Pada notasi Matlab, bagian LL disebut bagian aproksimasi (A), bagian LH disebut
detail vertikal (V), bagian HL disebut detail horizontal (H), dan bagian HH
33
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
½ ½ 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 ½ -½
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
Keterangan:
- warna biru adalah hasil aproksimasi
- warna merah adalah hasil detail
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
36
Keterangan:
- warna biru adalah bagian aproksimasi
- warna merah adalah bagian detail horizontal
- warna coklat adalah bagian detai vertikal
- warna hijau adalah bagian detail diagonal
ratanya.
D. Euclidean Algoritma
d= ((x − x )
1 2
2 2
)
+ ( y1 − y 2 ) …………….(2.5)
Sampel i dimasukkan pada kategori obyek dengan harga d yang terkecil (Aniati
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
A. Analisa Sistem
Sistem yang dibuat adalah sistem untuk pengenalan pola tulisan tangan,
lebih khusus yaitu pola angka menggunakan metode statistik sederhana yaitu
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
gambar Sistem
Developer Pembuat
gambar
Basis Data
ciri ciri
gambar Sistem
User Pengenalan
hasil_pengenalan Angka
Desain Sistem Pembuat Basis Data dan desain Sistem Pengenalan Angka
38
DFD Level 0
data. Dari sistem pembuat basis data memperoleh ciri . Digambarkan pada DFD
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
gambar_angka gambar_angka
gambar_normal_biner ciri
1. 2. 3.
developer ciri
input preprocessing ekstraksi_ciri
ciri
DFD Level 2
39
DFD Level 0
sistem ini gambar angka diproses sehingga menghasilkan hasil pengenalan angka
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
pada proses preprocessing. Hasilnya adalah gambar biner dengan ukuran yang
40
ekstraksi ciri. Hasilnya berupa vektor ciri yang nantinya digunakan sebagai input
DFD Level 2
Pola template yang disediakan berjumlah 50 buah. Terdiri dari pola angka
angka. Sistem akan memberi informasi hasil pengenalan pola masukkan sebagai
5. Monitor : LG 15’
41
pengembangan sistem.
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
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
43
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.
44
LOGO
Pada form ini terdiri dari sebuah menu editor dimana terdapat menu-menu sebagai
berikut :
File Informasi
Input Pola
Keluar
45
Form ini untuk mengambil pola yang akan dijadikan data baru dan juga pola yang
akan dikenali.
Dalam form ini semua proses pengenalan ditampilkan mulai dari tampil hasil
input , preprocessing, ekstraksi ciri, dan pengenalan angka. Pada saat form
46
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
Untuk memilih dan menampilkan hasil ekstraksi ciri pilih popupmenu sesuai
48
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
Form ini terdiri dari statictext sebagai keterangan ‘gambar dikenali sebagai angka’
49
Ada dua form yaitu dialog keluar program dan simpan data baru
Terdiri 1 buah axes untuk gambar background, dan static text untuk penulisan
50
D. Perancangan proses
b. Preprocessing
mulai
Input
gambar
preprocessing
If
preprocessing= ya Pesan kesalahan
0
tidak
Ekstraksi ambil
vektor ciri
simpan
selesai
51
2. Preprocessing
mulai
Ambil
gambar
angka
binerisasi
Ubah ukuran
Citra normal
biner
selesai
52
mulai
Input
gambar
preprocessimg
If
preprocessing= ya Pesan kesalahan
0
tidak
Dekomposisi
wavelet
Hitung rata
approksimasi,horis
ontal,diagonal,verti
kal
Vektor ciri
selesai
53
ciri :
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
i=1
ya
If i<=panjangbaris
Hitung d
tidak
Cari nilai d
paling min
Tampil hasil
pengenalan
selesai
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
matrik dekomposisi
vektor ciri.
h. Untuk level 2 dan level 3 juga dengan cara yang sama yaitu
56
conn=database('myodbc','root','');
ping(conn);
setdbprefs('DataReturnFormat','cellarray');
curs = fetch(curs);
AA=curs.Data;
2. Proses Preprocessing
64 x 64
0 dan 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
kolom,
awal,
b. Hitung jarak vektor ciri hasil dekomposisi dengan vektor ciri yang
58
B. Jalannya Program
Pertama kali program dijalankan akan keluar form WELCOME, ini adalah form
59
Masuk ke form menu utama pilih input pola akan keluat jendela open file gambar
60
Pada saat tampil gambar masukkan akan muncul form waitbar sebagai tanda
Gambar Masukkan tampil dalam Form proses, disini semua proses pengenalan
akan dilakukan.
61
62
Pilih level wavelet pilihan pada popupmenu jika level 1 maka akan tampil
63
Jika yang dipilih level 2 maka hasil ekstraksi akan tampil sebagai berikut :
64
Jika yang dipilih level 3 maka akan tampil hasil ekstraksi sebagai berikut :
65
Pilih hasil pengenalan maka akan tampil hasil pengenalan gambar yang
dimasukkan
Pada form data baru user cukup memasukkan gambar pola baru yang ingin
dijadikan template
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
67
68
Ketika memilih tombol simpan akan ada konfirmasi ulang apakah benar-benar
ingin menyimpan atau tidak, jika ya maka akan langsung masuk ke tabel
Jika akan keluar dari program pilih sub menu keluar dari menu file, akan muncul
69
70
BAB V
A. Hasil Pengujian
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
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
A. Kesimpulan
2. Wavelet Haar relatif bisa dipakai untuk ekstraksi ciri pada pengenalan
gambar angka.
B. Saran
antara lain:
77
pengenalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
DAFTAR PUSTAKA
2006
Murni, Aniati dan Suryana, Setiawan. Pengantar Pengolahan Citra. Jakarta : PT.
Elex Media Komputindo. 1992
Wijaya, I Gede Pasek Suta dan Kanata, Bulkis. Pengenalan Citra Sidik jari
Berbasis Transformasi Wavelet dan Jaringan Syaraf Tiruan. Fakultas Teknik
Universitas Mataram.
61
LAMPIRAN A
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
% --- 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)
62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
set(handles.text38,'visible','on')
set(handles.axes2,'visible','on')
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
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')
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')
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')
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
68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
close
menunya;
B. Listing Program Tampil Hasil Pengenalan
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
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)
Close
Level 2
function varargout = formhasil(varargin)
% FORMHASIL M-file for formhasil.fig
73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
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)
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
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
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));
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)
close
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
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
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)
85
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
86
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
87
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
88
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
89
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
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);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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')
elseif strcmp(button,'No')
end
92
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
93
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
LAMPIRAN B
User Guide
• Sebelum menjalankan program ini, pastikan matlab 6.5 sudah terinstall dengan
sukses,
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
mengikuti semua tahapan proses sesuai urutan gambar tanda panah pada
user memilih level pada popupmenu, maka hasil pilihan akan tampil pada
94
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
3. Keluar
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
Dari masuk ke menu memilih gambar angka untuk dikenali tambah template
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