86
1 KLASIFIKASI SEGMENT DARI KARAKTER TULISAN TANGAN MENGGUNAKAN MATLAB 7.0 Hasil penelitian Diajukan oleh Nama : Marnita Elfinta Br. Tampubolon No. Mahasiswa : 50404468 Jurusan : T.Informatika Angkatan : 2004 Telah disetujui oleh Dosen Pembimbing Pada tanggal ……………………… Dosen Pembimbing, (Prof.Dr.B.E.F.da Silva,MSc.,DEA) BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Saat ini peranan komputer dalam peradaban manusia bukan hanya lagi sekedar sebagai alat bantu pekerjaan, namun sudah sampai ke arah pemenuhan kebutuhan. Termasuk kebutuhan manusia dalam hal hiburan, hobi, selera, gaya hidup dan lain lain. Inovasi - inovasi baru terus dikembangkan untuk membuat komputer menjadi lebih user-friendly, lebih nyaman untuk dilihat, dan lebih nyaman dalam penggunaan. Salah satu alternatif untuk membuat pemakaian komputer lebih nyaman antara lain adalah inovasi dalam cara memasukkan data ke dalam komputer. Cara yang saat ini paling konvensional adalah dengan memasukkan data melalui device yang disebut keyboard, dengan cara diketik. Cara ini dapat diganti dengan metode lain yang lebih ’manusiawi’, yaitu dengan cara ditulis. Menulis, dalam konteks membuat tulisan dengan cara menggoreskan alat tuliskertas, merupakan salah satu cara yang sangat alami bagi manusia untuk berkomunikasi, menuangkan ide, dan lain-lain. Cara ini bisa diterapkan untuk memasukkan data ke komputer, sehingga pengguna komputer tidak lagi harus mengetik, namun bisa dengan cara menulis. Tingkat kesulitan kegiatan menulis setiap orang berbeda – beda, dalam hal ini khususnya anak – anak. Seorang anak dianggap mahir menulis jika menghasilkan

Klasifikasi Segment Tulisan Tangan Dengan Matlab

Embed Size (px)

Citation preview

Page 1: Klasifikasi Segment Tulisan Tangan Dengan Matlab

1

KLASIFIKASI SEGMENT DARI KARAKTER TULISAN

TANGAN MENGGUNAKAN MATLAB 7.0

Hasil penelitian

Diajukan olehNama : Marnita Elfinta Br. TampubolonNo. Mahasiswa : 50404468Jurusan : T.InformatikaAngkatan : 2004

Telah disetujui oleh Dosen PembimbingPada tanggal ………………………Dosen Pembimbing,

(Prof.Dr.B.E.F.da Silva,MSc.,DEA)

BAB IPENDAHULUAN

1.1 Latar Belakang MasalahSaat ini peranan komputer dalam peradaban manusia bukan hanya lagi sekedar sebagaialat bantu pekerjaan, namun sudah sampai ke arah pemenuhan kebutuhan. Termasukkebutuhan manusia dalam hal hiburan, hobi, selera, gaya hidup dan lain lain. Inovasi -inovasi baru terus dikembangkan untuk membuat komputer menjadi lebih user-friendly,lebih nyaman untuk dilihat, dan lebih nyaman dalam penggunaan. Salah satu alternatifuntuk membuat pemakaian komputer lebih nyaman antara lain adalah inovasi dalam caramemasukkan data ke dalam komputer. Cara yang saat ini paling konvensional adalahdengan memasukkan data melalui device yang disebut keyboard, dengan cara diketik.Cara ini dapat diganti dengan metode lain yang lebih ’manusiawi’, yaitu dengan caraditulis.Menulis, dalam konteks membuat tulisan dengan cara menggoreskan alat tuliskertas,merupakan salah satu cara yang sangat alami bagi manusia untuk berkomunikasi,menuangkan ide, dan lain-lain. Cara ini bisa diterapkan untuk memasukkan data kekomputer, sehingga pengguna komputer tidak lagi harus mengetik, namun bisa dengancara menulis. Tingkat kesulitan kegiatan menulis setiap orang berbeda – beda, dalam halini khususnya anak – anak. Seorang anak dianggap mahir menulis jika menghasilkan

Page 2: Klasifikasi Segment Tulisan Tangan Dengan Matlab

2

tulisan tangan dengan usaha yang minimum. Untuk mengetahui tingkat kemahiranmenulis seorang anak serta mengenali karakter dari tulisan tangan seorang anak makadilakukan pengumpulan contoh tulisan tangan dengan mengunakan digitizer untukdianalisis. Dalam pengenalan tulisan tangan, terdapat beberapa langkah, salah satunyaadalah klasifikasi dari karakter yang telah disegmentasi. Dilatarbelakangi kondisi tersebutdi atas, pada penulisan ini dibuat aplikasi untuk melakukan pengenalan tulisan tangandengan klasifikasi dari karakter yang telah disegmentasi.

1.2 Rumusan MasalahRumusan masalah yang dapat dituliskan berdasarkan latar belakang di atas adalah

melakukan proses klasifikasi dari karakter yang telah disegmentasi. Dengana.) Membuat labeling dari setiap segmen potongan karakter huruf a sampai huruf emenjadi 16 segmen dasar.b.) Setiap segmen diperlakukan sebagai vektor, dimana setiap elemen vektornya memilikidua nilai yaitu koordinat x dan y.c.) Membuat rumusan baru (fungsi) untuk membandingkan vektor. Dari hasilperbandingan tersebut, yang nilai errornya yang paling kecil adalah yang paling mirip1.3 Batasan Masalah

Dari rumusan masalah diatas, masalah yang akan dibahas hanya dibatasi padaproses klasifikasi dari karakter yang telah disegmentasi Aplikasi tersebut dibuat denganmenggunakan tools MATLAB 7. 11.4 Tujuan Penulisan

Penulisan tugas akhir ini bertujuan untuk membuat suatu program klasifikasi darikarakter yang telah disegmentasi untuk memudahkan pengenalan tulisan tangan. Dimanasebelum tahap klasifikasi karakter terlebih dahulu tulisan tangan di segmentasi. Selain ituPenulisan tugas akhir ini juga bertujuan untuk mengaplikasikan materi kuliah yang telahdipelajari oleh penulis serta mengembangkan penulisan tentang Artificial inteligentAplikasi ini dibuat dengan menggunakan tools MATLAB 7. 1 dikarenakan fasilitas yangdisediakan oleh MATLAB 7. 1 telah berbasis GUI (Graphical User Interface) sehinggalebih mudah digunakan oleh user atau user friendly.1.5 Metode Penelitian

Metode yang digunakan oleh penulis dalam membuat tugas akhir ini adalah:1. Penelusuran Literatur

Yaitu studi pustaka dengan membaca buku – buku serta halaman – halamansitus yang berhubungan dengan skripsi ini.

2. Melakukan Perancangan Perancangan diawali dengan mengumpulkan karakter huruf yang ada, dandilakukan klasifikasi karakter.

3. Uji programPengujian program ini dilakukan dengan memakai karakter yang telahdikumpulkan dan memastikan bahwa program ini dapat berfungsi untukmengklasifikasikan dengan baik dan sesuai dengan rumusan rancangan yangtelah ditetapkan sebelumnya.

Page 3: Klasifikasi Segment Tulisan Tangan Dengan Matlab

3

1.6 Sistematika PenulisanSistematika penulisan Tugas Akhir ini terdiri dari beberapa bab, yaitu :

BAB I PENDAHULUANBab ini menguraikan tentang latar belakang masalah, rumusan masalah,batasan masalah, tujuan penulisan, metode penulisan, dan sistematikapenulisan.

BAB II LANDASAN TEORIBab ini berisi pembahasan tentang konsep dasar dari aplikasi yang dibuat,Kecerdasan Buatan, Sistem Pakar, Flowchart. dan software Matlab 7.1.

BAB III PERANCANGAN DAN PEMBUATAN PROGRAMBab ini berisi pembahasan tahap – tahap pembuatan Klasifikasi Segmentdari Karakter Tulisan Tangan menggunakan Matlab 7.0 , mulai dariflowchart . dan implementasi dari perancangan tersebut.

BAB IV PENGUJIAN PROGRAMBab ini berisi mengenai hasil pengujian dari aplikasi yang telah dibuat,untuk menguji dan memastikan bahwa program yang dibuat dapatberfungsi untuk mengklasifikasikan sesuai dengan rumusan rancanganyang telah ditetapkan sebelumnya.

BAB V PENUTUPBab ini berisi tentang kesimpulan dari Tugas Akhir yang telah dibuat danjuga saran–saran yang sekiranya diperlukan untuk menyempurnakan tugasakhir.

BAB IILANDASAN TEORI2.1 Kecerdasan Buatan ( Artificial Intelligence ) [1,2]• Merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan

pemrograman komputer untuk melakukan sesuatu hal - yang dalam pandanganmanusia adalah – cerdas (H. A. Simon [1987])

• Sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang padasaat ini dapat dilakukan lebih baik oleh manusia (Rich and Kinight [1991])

Teknik Kecerdasan buatan merupakan sebuah keajaiban dari dunia komputer,dapat kita bayangkan bahwa sebuah komputer dapat menggantikan tugas-tugas manusia,walaupun sampai saat ini hal itu masih merupakan perdebatan sengit dan terusdikembangkan keberadaanya.

Teknik kecerdasan buatan (artificial intelligence) adalah teknik untuk membuatkomputer mampu mengolah pengetahuan tertentu.Bagaimana membuat komputer yangcerdas seperti manusia. Sehingga manusia mencoba membuat komputer yang dapatberpikir seperti yang dilakukan oleh manusia ketika menyelesaikan suatu masalah yangsedang dihadapi. Bidang teknik kecerdasan buatan yang paling populer saat ini adalahsistem pakar, disamping juga bidang-bidang lain di dalam intelegensi buatan yaitu:pengolahan bahasa alami (natural language) dan robotika (robotics). Sistem pakar

Page 4: Klasifikasi Segment Tulisan Tangan Dengan Matlab

3

biasanya diterapkan di dalam bidang, seperti kedokteran, perekonomian, dan masihbanyak bidang lainnya termasuk dalam bidang bisnis yang sering kali digunakan untukpengambilan keputusan atau prediksi bursa saham.

Tujuan Intelegensi Buatan :a. Simulator untuk mengerti mekanisme intelegensi manusia.b. Sebagai satu cara untuk menambah kemampuan komputer untuk menyelesaikan

masalah-masalah yang perlu keahlian khusus.Dua Ide Dasar yang berkaitan dengan AI

• Pertama, ide yang melibatkan pembelajaran proses pemikiran manusia (untukmemahami apa yang dimaksud dengan kecerdasan)Kecerdasan adalah kemampuan untuk belajar atau mengerti dari pengalaman,

memahami pesan yang kontradiktif dan ambigu, menanggapi dengan cepat dan baik atassituasi yang baru, menggunakan penalaran dalam memecahkan masalah serta menyelesaikannya dengan efektif (Winston dan Pendergast, 1994)• Kedua, berkaitan dengan representasi dan duplikasi proses tersebut melalui mesin(misalnya, komputer dan robot).

2.1.1 Sistem Pakar [2] Sistem pakar adalah sebuah perangkat lunak komputer yang memiliki basispengetahuan untuk domain tertentu dan menggunakan penalaran inferensi menyerupaiseorang pakar dalam memecahkan suatu masalah yang sedang di hadapi. Sistem pakaradalah sebuah teknik inovatif baru dalam menangkap dan memadukan pengetahuan.Kemampuan sistem pakar ini karena didalamnya terdapat basis pengetahuan yang berupapengetahuan non formal yang sebagian besar berasal dari pengalaman, bukan dari “textbook” yang sudah baku. Pengetahuan ini diperoleh seorang (pakar) yang ahli dibidangnyadari pengalamannya bekerja selama bertahun-tahun pada suatu bidang keahlian tertentuyang telah ditekuni.2.1.2 Ciri-ciri sistem pakar Ciri-ciri dari sistem pakar adalah sebagai berikut:

a. Terbatas pada sebuah domain keahlian tertentu saja.b. Sistem dapat mengaktifkan kaidah secara searah yang sesuai, dituntun oleh dialog

dengan user/pemakai.c. Keluaran bersifat anjuran/saran/nasihat.d. Berdasarkan pada kaidah/rule tertentu yang telah ditetapkan.e. Dapat memberikan penalaran untuk data-data yang tidak pasti.f. Dirancang untuk dapat dikembangkan secara bertahap.g. Pengetahuan dan mekanisme inferensi jelas terpisah.h. Dapat mengemukakan rangkaian alasan-alasan yang diberikannya dengan cara

dapat dipahami.2.1.3 Keuntungan sistem pakar Beberapa keuntungan penerapan sistem pakar adalah sebagai berikut:

a. Waktu kerja menjadi lebih singkat.b. Pekerjaan menjadi lebih sederhana.c. Menjadikan seorang yang masih awam bekerja layaknya seorang pakar.

Page 5: Klasifikasi Segment Tulisan Tangan Dengan Matlab

5

d. Asrip yang terpercaya dari sebuah keahlian tertentu, sehingga bagi pemakaisistem pakar akan seolah-olah berkonsultasi atau berkomunikasi langsung dengansang pakar, walaupun mungkin pakar tersebut sudah meninggal.

e. Produktivitas menjadi meningkat akibat meningkatnya kualitas hasilpekerjaan/produksi. Meningkatnya hal itu dikarenakan meningkatnya efisiensikerja.

f. Memperluas jangkuan, dari keahlian seorang pakar. Di mana sebuah sistem pakaryang telah disahkan, akan sama saja artinya dengan seorang pakar yang tersediadalam jumlah besar (dapat diperbanyak dengan kemampuan yang sama persis),dapat diperoleh dan dipakai dimana saja.

g. Dapat menggabungkan kemampuan/pengalaman seorang pakar dengan para pakaryang lain, sehingga diperoleh sebuah hasil layaknya kita berkonsultasi denganbanyak pakar.

2.1.4 Komponen Sistem Pakar Sebuah program sistem pakar terdiri atas komponen sebagai berikut: Basispengetahuan (Knowledge Base), Basis Data (Data Base), Mesin Inferensi (InferenceEngine), Antar Muka (User Interface).

Pakar atau Knowledge engineer Pemakai

Gambar 2.1 Hubungan komponen sistem pakar

Basis PengetahuanKaidah - Fakta

Memori Kerja

BasisData

Mesin Inferensi

Inferensi - Kontrol

SubSistemPenjelasan

SubSistemPenerimaanPengetahuan

MediaKomunikasi

Page 6: Klasifikasi Segment Tulisan Tangan Dengan Matlab

6

a. Basis PengetahuanBasis Pengetahuan merupakan inti program sistem pakar di mana basis

pengetahuan merupakan representasi pengetahuan dari seorang pakar yang telah ahli dibidangnya. Basis pengetahuan tersusun atas fakta-fakta berupa objek.b. Basis Data

Basis Data merupakan bagian yang mengandung semua fakta,baik fakta awalpada saat sistem mulai dijalankan maupun fakta yang diperoleh saat pengambilankeputusan sedang dilakukan. Biasanya basis data berada di dalam memori komputer.b. Mesin Inferensi merupakan bagian yang mengandung mekanisme fungsi berpikirdan pola-pola penalaran sistem yang digunakan oleh seorang pakar. Mekanisme akanmenganalisa suatu masalah tertentu dan selanjutnya akan mencari jawaban, kesimpulanatau keputusan yang terbaik. Teknik Inferensi ada dua macam yaitu : Pelacakan kebelakang (Backward Chaining) yang memulai penalarannya dari sekumpulan hipotesamenuju fakta yang mendukungnya. Dan Pelacakan ke depan (Forward Chaining) yangmerupakan kebalikan dari pelacakan ke belakang, memulai dari sekumpulan data menujukeputusan. Sebenarnya metode tersebut dipengaruhi oleh tiga macam teknik penelusuranyaitu: depth-first seach (melakukan penelusuran kaidah secara mendalam dari simpulakar bergerak menurun ke tingkat dalam yang berurutan), breadth-first search (Bergerakdari simpul akar, simpul yang ada pada setiap tingkat diuji sebelum pindah ke tingkatselanjutnya), dan best-first search (bekerja berdasarkan kombinasi dari kedua tekniktersebut).c. Antarmuka Pemakai

Antar pemakai merupakan bagian penghubung antara program aplikasi sistempakar dengan pemakai. Biasanya pada bagian ini akan terjadi dialog atau menu-menupilihan yang nantinya harus dijawab oleh pemakai agar sistem pakar dapat mengambilkeputusan berdasarkan jawaban dari pemakai tersebut.

Selain komponen tersebut ,agar sistem pakar lebih baik dalam mengambilkeputusan diperlukan komponen-komponen tambahan lain yaitu :Ø Kemampuan BelajarØ KompatibilitasØ Fasilitas PenjelasanØ Kemudahan Memodifikasi

2.1.5 Pembagian Sistem Pakar Sistem pakar dibagi berdasarkan kegunaannya yaitu:

1. DiagnosisDiagnosis digunakan untuk mendiagnosis obat untuk orang sakit, kerusakanmesin mobil, kerusakan perangkat komputer dan sebagainya.

2. PerencanaanPerencanaan penggunaan untuk perencanaan sangatlah luas, mulai dariperancanaan mesin sampai manajemen bisnis.

3. Prediksi

Page 7: Klasifikasi Segment Tulisan Tangan Dengan Matlab

7

Predikdi digunakan untuk memprediksi sesuatu hal, seperti ramalan cuaca,ataupun bursa saham. Prediksi biasanya dilakukan dengan melihat data-dataataupun informasi yang sebelumnya telah diperoleh.

4. PengajaranPengajaran digunakan untuk media pengajaran, kemampuannya dapatmendiagnosis apa penyebab kekurangan seorang siswa kemudian memberi solusicara memperbaiki.

5. InterpretasiInterpretasi digunakan untuk menganalisa data yang tidak lengkap, tidak teraturdan data yang kontradiktif. Misal untuk interpretasi citra digital.

6. KontrolKontrol digunakan untuk mengontrol suatu sistem, seperti pengontrolan padaindustri berteknologi tinggi.

7. SimulasiSimulais digunakan untuk mensimulasikan sebuah permasalahan dan menemukanjawaban atas permasalahan tersebut.

2.2 Matlab 7.1 [3,4]MATLAB (Matrix Laboratory) merupakan suatu bahasa pemrograman lanjutan yangdibentuk dengan dasar pemikiran menggunakan sifat dan bentuk dari matriks. Padaawalnya, program ini merupakan antar muka untuk koleksi rutin-rutin numerik dariproyek LINPACK dan EASTPACK. MATLAB awalnya dikembangkan denganmenggunakan bahasa pemrograman FORTRAN, namun sekarang ini sudah merupakanproduk komersial dari perusahaan Mathworks.Inc yang dalam perkembanganselanjutnya dikembangkan menggunakan bahasa C++ dan Assembler (terutama untukfungsi-fungsi dasar).

MATLAB merupakan bahasa canggih untuk komputasi teknik. MATLABmerupakan integrasi dari komputasi, visualisasi dan pemrograman dalam suatulingkungan yang mudah digunakan, karena permasalahan dan pemecahannya dinyatakandalam notasi matematika biasa. Kegunaan MATLAB secara umum :• Matematika dan komputansi• Pengembangan algoritma• Pemodelan, simulasi dan pembuatan prototype• Analisa data, eksplorasi, dan visualisasi• Pembuatan aplikasi termasuk pembuatan graphical user interface

MATLAB adalah sistem interaktif dengan elemen dasar array yang merupakanbasis datanya. Array tersebut tidak perlu dinyatakan khusus seperti di bahasapemograman yang ada sekarang. Hal ini memungkinkan anda untuk memecahkan banyakmasalah perhitungan teknik, khususnya yang melibatkan matriks dan vektor denganwaktu yang lebih singkat dari waktu yang dibutuhkan untuk menulis program dalambahasa C atau FORTRAN. Untuk memahami MATLAB, terlebih dahulu anda harussudah paham mengenai matematika terutama operasi vektor dan matriks, karena operasimatriks merupakan inti utama dari MATLAB.

Pada intinya MATLAB merupakan sekumpulan fungsi-fungsi yang dapatdipanggil dan dieksekusi. Fungsi-fungsi tersebut dibagi-bagi berdasarkan kegunaannyayang dikelompokan didalam toolbox-toolbox yang ada pada MATLAB. Toolboxmerupakan kompulan koleksi dari fungsi-fungsi MATLAB (M-files) yang memperluas

Page 8: Klasifikasi Segment Tulisan Tangan Dengan Matlab

8

lingkungan MATLAB untuk memecahkan masalah-masalah tertentu. Toolbox-toolboxyang tersedia pada MATLAB antara lain:• Signal Processing Toolbox• Control Systems Toolbox• Neural Networks Toolbox• Fuzzy Logic Toolbox• Wavelets Toolbox• Simulation Toolbox• Image Processing Toolbox

MATLAB juga memiliki sifat extensible, dalam arti bahwa pengguna dariMATLAB dapat membuat suatu fungsi baru untuk ditambahkan kedalam library jikafungsi-fungsi built-in yang tersedia tidak dapat melakukan tugas tertentu.2.2.1 Desktop MATLAB

Ketika mulai membuka program MATLAB, akan muncul desktop MATLAByang berisi tools (Graphical User Interface) untuk mengatur file, variabel dan aplikasiyang berhubungan dengan MATLAB. Gambar 2.2 merupakan tampilan desktop yangpertama muncul ketika menjalankan MATLAB 7.1.

Gambar 2.2 Desktop MATLAB versi 7.1Ada beberapa desktop tools yang terdapat pada MATLAB, antara lain:

1. Jendela perintah (Command Window)Jendela ini merupakan tempat untuk memasukkan variabel dan menjalankan functionatau M-files. Setiap perintah yang ditulis pada jendela ini akan langsung ditampilkanhasilnya. Tampilan jendela ini bisa dilihat pada gambar 2.3

2. Jendela daftar perintah (Command History)Jendela ini memuat daftar perintah yang pernah diketikkan pada jendela perintah. Padajendela ini perintah yang pernah diketikkan dapat dikopi kedalam jendela perintah lalumengeksekusi perintah tersebut. Tampilan jendela ini bisa dilihat pada gambar 2.4

Page 9: Klasifikasi Segment Tulisan Tangan Dengan Matlab

9

Gambar 2.3 Tampilan Jendela Perintah

Gambar 2.4 Tampilan Jendela Command History

3. Jendela direktori (Current Directory)Jendela ini menampilkan file-file yang terdapat pada direktori yang aktif. . Tampilanjendela ini bisa dilihat pada gambar 2.5

Gambar 2.5 Tampilan Jendela Current Directory

Page 10: Klasifikasi Segment Tulisan Tangan Dengan Matlab

10

4. Jendela WorkspaceJendela ini menampilkan variabel-variabel yang pernah dibuat selama menjalankanMATLAB. Tampilan jendela ini bisa dilihat pada gambar 2.6

Gambar 2.6 Tampilan Jendela Workspace5. Tombol Start

Tombol ini memudahkan akses ke tools, demo dan dokumentasi. Tampilan dari menuini bisa dilihat pada gambar 2.7

Gambar 2.7 Tampilan Tombol Start6. Teks Editor

MATLAB juga menyediakan fasilitas editor program. Cara membukanya adalahdengan memilih menu File – New – M-file atau dengan menekan tombol shortcutAlt+n, atau bisa juga dengan mengetikkan edit pada jendela perintah. Tampilanjendela ini bisa dilihat pada gambar 2.8

Gambar 2.8 Tampilan Teks Editor Pada MATLAB

Page 11: Klasifikasi Segment Tulisan Tangan Dengan Matlab

11

2.2.2 Dasar–Dasar Matriks dalam MATLABArray (matriks) merupakan variabel dengan tipe data tunggal (skalar) hanya dapat

digunakan untuk meyimpan sebuah nilai saja, sehingga untuk menyimpan beberapa nilaisekaligus dalam suatu variabel khusus dibutuhkan variabel array atau variabel berindeks.Variabel array dapat digunakan untuk menampung banyak data yang sejenis (numerikatau string).

Karena array atau matriks merupakan hal yang mendasar dalam MATLAB, makaterdapat banyak cara untuk memanipulasinya. Sekali matriks dibuat, MATLABmenyediakan cara untuk meyisipkan, mengambil dan mengatur kembali isi matrikstersebut. Penguasaan akan hal ini merupakan kunci untuk menggunakan MATLABsecara efisien. Untuk membuat matriks dalam MATLAB, yang perlu dilakukan hanyalahmengetikkan kurung kotak kiri ([) diikuti dengan elemen-elemen yang dipisahkan spasiatau tanda koma (,), lalu ditutup dengan kurung kotak kanan (]).x = [2 3 4]x =

2 3 4Untuk membuat suatu array berdimensi dua (matriks) sama saja, hanya untuk

memisahkan elemen yang berbeda baris digunakan simbol titik koma (;).x = [4 5 6; 7 8 9; 1 2 3]x =

4 5 6 7 8 9 1 2 3

Berikut ini akan diberikan beberapa contoh manipulasi array :• Pengalamatan array

Dalam MATLAB elemen-elemen array diakses menggunakan subscript, misalnyax(1) adalah elemen pertama dari x atau y(1,3) adalah elemen pada baris 1 kolom 3pada matriks y. Selain dengan cara sebelumnya suatu array juga bisa diidikan dengancara sebagai berikut :

x = 1: 1: 5x = 1 2 3 4 5

Artinya bahwa array x diisikan dengan angka dari 1 sampai 5 dengan penambahan1 (default). Penambahan dapat bernilai sembarang, bahkan bisa bernilai negatif, seperticontoh berikut :

y = 5: -2: 1y = 5 3 1

Nilai dari suatu array juga dapat diisikan dengan bilangan 1 atau 0 saja, seperticontoh berikut :

z = ones(3, 3)z =

1 1 1 1 1 1 1 1 1

Page 12: Klasifikasi Segment Tulisan Tangan Dengan Matlab

12

a = zeros(3, 3)a = 0 0 0 0 0 0 0 0 0

• Menambahkan elemen arrayMisalkan suatu array sebagai berikut :

b = [2 4]b = 2 4

Untuk menambahkan 2 elemen dibelakang array diatas maka dapat dilakukanseperti berikut ini :

b = [b 3 4]b = 2 4 3 4Atau untuk menambahkan 1 baris baru pada array diatas, sehingga menjadi suatu

matriks maka dapat dilakukan seperti berikut ini :b = [b; 3 4]b =

2 43 4

• Mengakses sebagian elemen arrayMisalkan suatu array sebagai berikut:

b = [1 2 3 4 5 6]b =

1 2 3 4 5 6Maka untuk mengakses elemen yang ke-2 sampai elemen ke-4, dilakukan sebagai

berikut :c = b(2: 4)c = 2 3 4

• Menghapus elemen arrayMisalkan suatu array sebagai berikut :

b = [1 2 3 4 5 6]b = 1 2 3 4 5 6

Maka untuk menghapus elemen terakhir dari array, dilakukan sebagai berikut :b = b(1: length(b) 1)b = 1 2 3 4 5

Sedangkan, untuk menghapus elemen pada indeks tertentu, dilakukan sebagaiberikut :b([2 4]) = []b = 1 3 5

Operasi-operasi aritmatika yang bisa digunakan pada array hampir sama denganoperasi pada tipe data skalar, hanya saja ada beberapa operasi tambahan sebagai berikut :• Transpose non-konjugasi (.`)

Page 13: Klasifikasi Segment Tulisan Tangan Dengan Matlab

13

• Perkalian antar elemen array (.*)• Perpangkatan antar elemen array (.^)• Pembagian kiri antar elemen array (.\)• Pembagian kanan antar elemen array (./)

2.3 Tipe Data Dalam MATLABMATLAB mengenal 3 tipe data yaitu :

1. StringString dalam MATLAB adalah tipe data yang terdiri dari huruf-huruf dan atau

nilai-nilai ASCII yang ditampilkan representasinya. String adalah teks yang diawalidan diakhiri dengan apostrof ( ). Berikut contoh memasukkan suatu stringkedalam variabel :

p = hallo semuap disini merupakan variabel yang bertipe data string, dan dibaca sebagai array denganjumlah 11 elemen , karena setiap karakter dalam suatu string adalah satu elemendalam array, dengan setiap elemen berukuran 2 byte.

Berikut merupakan beberapa perintah MATLAB yang berkaitan dengan tipedata string :• Disp, digunakan untuk menampilkan string tanpa menampilkan variabelnya.• Input, digunakan untuk menampung variabel input dari user.• Fprintf, digunakan untuk menampilkan output dilayar atau menyimpan output

di suatu external file (sama halnya dengan command fprint di C atau C++).2. Skalar

Skalar adalah nama lain dari data numerik. Dalam MATLAB data skalar dapatdimanipulasi dengan menggunakan beberapa fungsi seperti tipe string sebelumnya.

3. MatriksMatriks merupakan bentuk utama MATLAB. Seperti halnya array, matriks juga

didefinisikan elemen demi elemen.

2.3.1 Bilangan dan Operator Matematika dalam MATLABTerdapat 3 tipe bilangan MATLAB , yaitu :

1. Bilangan bulat (integer), contoh :x = 12x = 12

2. Bilangan real, contoh :x = 20.02x = 20.0200

3. Bilangan kompleks.Di dalam MATLAB tidak perlukan penanganan khusus untuk bilangan

kompleks. Bilangan kompleks di beri i atau j, contoh :y = sqrt(-3)

Page 14: Klasifikasi Segment Tulisan Tangan Dengan Matlab

14

y = 0 + 1.7321i

Selain tipe bilangan diatas, MATLAB juga mempunyai variabel yang bukanmerupakan bilangan, yang di lambangkan dengan :

• -inf• inf• Nan

Berikut merupakan daftar operasi-operasi aritmatika dasar dalam MATLAByang diurutkan berdasarkan prioritas dari yang tertinggi hingga yang terendah :• Tanda kurung (())• Tranpose (`)• Pangkat (^)• Pembagian Kiri (\)• Pembagian (/)• Perkalian (*)• Pengurangan (-)• Pertambahan (+)

2.3.2 Operator Logika dan Relasional dalam MATLABMATLAB menyediakan operasi logika dan relasional, hal ini diperlukan untuk

menjawab pertanyaan benar atau salah. Salah satu manfaat yang penting dari kemampuanini adalah untuk mnegontrol urutan eksekusi sederetan perintah MATLAB (biasanyadalam M-file) berdasarkan hasil pertanyaan benar atau salah.

Sebagai masukan pada semua ekspresi relasi dan logika, MATLAB menganggapsemua angka tidak nol sebagai benar dan nol sebagai salah. Hasil semua ekspresi logikarelasi dan logika adalah satu untuk benar dan nol untuk salah dengan tipe array logika,yaitu hasilnya memuat bilangan 1 dan 0 yang tidak saja dapat digunakan untukpengalamatan. Berikut adalah operator-operator logika dalam MATLAB :

• ~ (not)• & (and)• ! (or)

Operator-operator logika tersebut diurutkan berdasarkan prioritas dari yangtertinggi hingga yang terendah. Operator-operator relasional pada MATLAB :

• Kurang dari (<)• Lebih dari (>)• Kurang dari atau sama dengan (<=)• Lebih dari atau sama dengan (>=)• Sama dengan (=)• Tidak sama dengan (~=)

2.3.3 Fungsi-Fungsi Matematik Umum pada MATLAB

Page 15: Klasifikasi Segment Tulisan Tangan Dengan Matlab

15

MATLAB mempunyai berbagai fungsi matematik umum yang biasa di gunakandalam matematika. Sebagian besar fungsi tersebut hampir sama dengan bila andamenuliskannya secara matematis . Sebagai contoh:

pians = 3.1416

y= sin(pi / 5)y = 0.5878

y = asin(0.6)y = 0.6435

Berikut beberapa fungsi trigonometri pada MATLAB :

• sin, asin, sinh, asinh• cos, acos, cosh, acosh• tan, atan, tanh, atanh• cot, acot, coth, acoth• sec, asec, sech, asech• csc, acsc, csh, acsh

Berikut beberapa fungsi matematika dasar pada MATLAB :

• abs, nilai absolut atau amplitudo bilangan kompleks.• sqrt, akar kuadrat.• real, bagian real dari bilangan kompleks.• imag, bagian imajiner dari bilangan kompleks.• round, pembulatan ke bilangan terdekat.• fix, pembulatan kearah nol.• floor, pembulatan kearah -∞.• ceil, pembulatan kearah ∞.• rem, sisa hasil bagi.• exp, eksponensial berbasis bilangan e• log, logaritma murni.

2.4 Fungsi M-File dalam MATLABFungsi M-File harus mengikuti beberapa aturan dan sejumlah sifat penting.

Aturan-aturan dan sifat-sifat tersebut meliputi :• Nama fungsi dan nama file harus identik misalnya akan dibuat suatu fungsi dengan

nama pangkat maka nama M-file harus pangkat juga.• Setiap fungsi mempunyai ruang kerjanya sendiri yang berbeda dengan ruang kerja

MATLAB. Satu-satunya hubungan antara ruang kerja MATLAB dengan variabel-variabel dalam fungsi adalah variabel-variabel input dan dan output fungsi. Jikasuatu fungsi mengubah nilai dalam suatu variabel input, perubahan itu hanya tampakdalam fungsi dan tidak mempengaruhi variabel yang ada dalam ruang kerja

Page 16: Klasifikasi Segment Tulisan Tangan Dengan Matlab

16

MATLAB. Variabel yang dibuat oleh suatu fungsi tinggal hanya dalam ruang kerjafungsi.

• Jumlah dari argumen input dan output yang digunakan jika suatu fungsi dipanggilhanya ada dalam fungsi tersebut. Fungsi ruang kerja memuat jumlah argumen input.Fungsi kerja nargout memuat jumlah argumen output. Dalam praktek,variabel-variabel nargout dan nargin biasanya digunakan untuk mengeset variabel inputstandar dan menentukan variabel output yang diperlukan user.

Berikut merupakan syntaks untuk membuat fungsi :function y = nama_fungsi (x)y merupakan keluaran dari fungsi, keluaran dapat berupa 1 variabel atau lebih dari 1variabel, jika keluaran lebih dari 1 variabel maka digunakan sintaks sebagai berikut :function [y,z,a,b] = nama_fungsi (x)x merupakan masukan dari fungsi, masukan dapat berupa 1 variabel atau lebih dari 1variabel, jika masukan lebih dari 1 variabel maka digunakan sintaks sebagai berikut :function y = nama_fungsi (a,b,c,d)

2.4.1 Fungsi–Fungsi Image Processing dalam MATLABFungsi-fungsi yang terdapat pada image processing toolbox, berhubung akan

dilakukan pemrosesan terhadap suatu citra. Berikut beberapa fungsi dalam imageprocessing toolbox :1. Image file I/O

• imread, untuk membaca citra dari suatu file kedalam variabel.• imwrite, untuk menyimpan citra dari suatu variabel kedalam file.• iminfo, untuk mengetahui informasi dari suatu citra.

2. Menampilkan citra• imshow, untuk menampilkan citra.• imagesc, untuk menampilkan citra berdasarkan skala.

3. Konversi ruang warna• hsv2rgb, mengkonversi nilai HSV kedalam nilai RGB.• ntsc2rgb, mengkonversi nilai NTSC kedalam nilai RGB.• ycbcr2rgb, mengkonversi nilai YCbCr kedalam nilai RGB.• rgb2hsv, mengkonversi nilai RGB kedalam nilai HSV.• rgb2ntsc, mengkonversi nilai RGB kedalam nilai NTSC.• rgb2ycbcr, mengkonversi nilai RGB kedalam nilai YCbCr.

2.4.2 Membuat Graphical User Interface dalam MATLABMATLAB menyediakan suatu fasilitas untuk merancang dan membuat suatu

user interface, yaitu GUIDE (Graphical User Interface Development Interface). Untukmemulai editor perancangan GUI pada MATLAB 7. 1 adalah dengan mengetikkanguide pada jendela perintah atau dengan mengklik tombol Start MATLAB dan pilihMATLAB, lalu pilih GUIDE (GUI Builder), seperti terlihat pada gambar 2. 9, maka akanmuncul suatu jendela baru seperti terlihat pada gambar 2.10. Pada jendela tersebutterdapat dua pilihan untuk masuk kedalam editor tampilan GUI, yaitu membuatrancangan GUI yang baru (Create New GUI) atau membuka rancangan GUI yang telah

Page 17: Klasifikasi Segment Tulisan Tangan Dengan Matlab

17

ada (Open Existing GUI). Untuk membuat suatu rancangan GUI yang baru, MATLABmenyediakan suatu bantuan berupa beberapa template GUI yang bisa dimodifikasi.

Gambar 2. 9 Memulai editor perancangan GUI pada MATLAB 7. 1

Gambar 2.10 Jendela GUIDE Pada MATLAB 7. 1Untuk memulai proses perancangan, kemudian akan muncul suatu editor

tampilan GUI seperti terlihat pada gambar 2. 11. Pada editor tersebut terdapat beberapatools yang tersedia untuk membuat suatu GUI, seperti static text, push buttons, axes,frame, dan sebagainya. GUIDE secara otomatis akan menyimpan GUI kedalam 2 buahfile yang terbentuk pada saat pertama kali menyimpan (save) atau menjalankan (run) GUItersebut, file-file tersebut adalah :• File berekstension .fig, yang berisi rancangan tampilan GUI.• File berekstension .m, yang berisi kode-kode yang mengatur tampilan GUI.

Page 18: Klasifikasi Segment Tulisan Tangan Dengan Matlab

18

Gambar 2. 11 Editor Tampilan GUI

2.5 Pengenalan Flowchart [5]Flowchart adalah gambar atau bagan yang memperlihatkan urutan dan hubungan

antar proses beserta instruksinya gambaran ini dinyatakan dengan simbol. Flowchartmerupakan langkah awal dalam melakukan pembuatan program sehingga sebelummembuat suatu program kita dapat membuat suatu rancangannya terlebih dahulu. Denganflowchart para analis dan programmer terbantu untuk memecahkan masalah ke dalamsegmen – segmen yang lebih kecil dan menolong dalam menganalisis alternative –alternative lain dalam pengoperasian. Terdapat dua macam flowchart yangmenggambarkan proses dengan computer, yaitu:• Sistem Flowchart

Adalah gambar yang memperlihatkan urutan prosedur dan proses dari beberapafile di dalammedia tertentu.

• Program FlowchartAdalah bagian yang memperlihatkan urutan dan hubungan di dalam programmenjadi jelas.

• Simbol - simbol FlowchartFlowchart terbagi atas tiga simbol, yaitu Flow Direction symbols, ProsessingSymbol, Input Output Simbol.

1. Flow Direction Symbol :Adalah simbol yang dipakai untuk menghubungkan antar simbol satu dengan

simbol yang lainnya, simbol ini sering disebut juga dengan Connecting Line.

Page 19: Klasifikasi Segment Tulisan Tangan Dengan Matlab

19

Tabel 2.1 Flow Direction SymbolSimbol Penjelasan

Simbol arus/ flow

Simbol Penghubung antar prosedur

Simbol Comunication

Simbol Transmisi untuk inf dari 1lokasi ke lokasi yang lain

Simbol Connector

Simbol untuk keluar/masuk prosedureatau proses dalam lembar/ hal yangsama

Simbol Off-line Control

Simbol Untuk Keluar / masuk prosedur/ proses dalam lembar / halaman lain

2. Prossesing SimbolAdalah simbol yang menunjukkan jenis operasi pengolahan dalam suatu prosedur.

Tabel 2.2 Prossesing SymbolSimbol Penjelasan

Simbol Proses

Simbol yang menunjukkanpengolahan yang dilakukan olehcomputer

Simbol Manual Operation

Simbol yang menunjukkanpengolahan yang tidak dilakukanoleh komputer

Simbol Decision

Simbol untuk kondisi yang akanmenghasilkan beberapakemungkinan jawaban

Page 20: Klasifikasi Segment Tulisan Tangan Dengan Matlab

20

Simbol Predifined Process

Simbol untuk mempersiapkanpenyimpanan yang akandigunakan sebagai tempatpengolahan di dalam storage

Simbol Terminal

Simbol untuk permulaan dan akhirdari suatu program

Simbol Keying Operation

Simbol operasi denganmenggunakan mesin yangmempunyai keyboard

Simbol Off-Line Storage

Simbol yang menunjukkan bahwadata di dalam simbol akandisimpan

Simbol Manual Input

Simbol untuk pemasukkan datasecara manual on-line keyboard

3. Input Output SymbolAdalah simbol yang digunakan untuk menyatakan jenis peralatan yang dipakai

sebagai media input/ output.Tabel 2.3 Input – Output Symbol

Simbol Penjelasan

Simbol Punched CardSimbol yang menyatakan inputberasal dari kartu

Page 21: Klasifikasi Segment Tulisan Tangan Dengan Matlab

21

Simbol Magnetik Tape

Simbol yang menyatakan inputberasal dari pita magnetik

Simbol Disk and On Line Storage

Simbol yang menyatakan inputberasal dari kertas atau diketik kekertas

Simbol Dokumen

Simbol yang menyatakan inputberasal dari dokumen dari kertasatau diketik ke kertas

Simbol Display

Simbol yang menyatakanperalatan output yang digunakanyaitu layar, printer dll

BAB IIIPERANCANGAN DAN PEMBUATAN PROGRAM

Penulisan ini dirancang dengan mengurangi noise pada karakter tulisan tangandengan menggunakan frekuensi kecepatan dan frekuensi percepatan. Data input yangberupa karakter masih memiliki banyak getaran yang mengandung dua komponen yaitu,frekuensi getaran tinggi ( getaran yang mengandung noise ) dan frekuensi rendah (getaran yang membentuk huruf asli ). Sehingga untuk mengenali huruf harusmeminimalkan noise. Gambar 3.1 dibawah ini didasarkan pada sistem pakar berbasispengetahuan yang merupakan representasi pengetahuan dari seorang pakar yang telahahli dibidangnya. Basis pengetahuan tersusun atas fakta-fakta berupa objek. Dan kaidahyang merupakan informasi tentang cara menemukan fakta baru atas fakta yang telahditemukan sebelumnya

Page 22: Klasifikasi Segment Tulisan Tangan Dengan Matlab

22

Gambar 3.1 Sistem Pakar Berbasis Pengetahuan

3.1 Struktur Menu

87

1

9

1

4 4

6 5

3

4

12

4

32

3

4

12 3

4

4321

Page 23: Klasifikasi Segment Tulisan Tangan Dengan Matlab

23

Gambar 3. 2 Struktur Menu

3.2 Flowchart

Load File

start

Cari min datadari x,y

Ubah posisix-minx, y-miny padahuruf lain

CetakFigure 1

Cari kecepatan

Filter percepatan

Cetakfigure 2

Caripercepatan

Filterpercepatan

Cetakfigure 3

Segmentasihuruf lain

1

1

Cari min datadari

ex1,ex2,ex3,es4,ex5

Ubah posisidariex1,ex2,ex3,es4,ex5

Cari kecepatan

Filter kecepatan

Cari percepatan

Filter percepatan

Segmentasihuruf data

pembanding

Carimax,min,panjang,tinggi,normalhuruf lain

2

2

3

Page 24: Klasifikasi Segment Tulisan Tangan Dengan Matlab

24

T

Y

3

Perbandingankemiripan

Carimax,min,panjang,tinggi,normaldata pembanding

if0.5<mirip<1.5

Labeling

Cetak segmenhuruf lain

Page 25: Klasifikasi Segment Tulisan Tangan Dengan Matlab

25

Struktur menu dari aplikasi program yang dibuat, digambarkan pada gambar 3.2diatas. Dimana pada program dipanggil sebuah karakter huruf kemudian dilakukanproses segmentasi. Pada aplikasi ini terdapat 4 Figure yaitu,a. Figure 1 merupakan tampilan dari karakter huruf yang dipanggil dalam program yangadab. Figure 2 merupakan tampilan dari grafik kecepatanc. Figure 3 merupakan tampilan grafik percepatand. Figure 4 merupakan tampilan figure hasil segmentasi, setelah proses segmentasikemudian dibuat klasifikasinya.3.3 Klasifikasi Segmen huruf a sampai huruf e

%Loading databaseload data/lettrea.dat;load data/lettreb.dat;load data/lettrec.dat;load data/lettred.dat;load data/lettree.dat;ex1=lettrea;ex2=lettreb;ex3=lettrec;ex4=lettred;ex5=lettree;

Aplikasi ini akan membentuk klasifikasi segmen yang diambil dari huruf asampai huruf e menjadi 15 segmen dasar. Dimana komputer akan menyimpan potongan15 segmen ini tanpa ditampilkan. Ketika huruf lain diinput, maka huruf lain tersebut akandiproses dengan rumus yang ada dan membentuk segment.%Data Pembandingmin_xex1=min(min(ex1(:,1))); %mengambil posisi Xmin_xex2=min(min(ex2(:,1)));min_xex3=min(min(ex3(:,1)));min_xex4=min(min(ex4(:,1)));min_xex5=min(min(ex5(:,1)));min_yex1=min(min(ex1(:,2))); %mengambil posisi Ymin_yex2=min(min(ex2(:,2)));min_yex3=min(min(ex3(:,2)));min_yex4=min(min(ex4(:,2)));min_yex5=min(min(ex5(:,2)));xex1=ex1(:,1)-min_xex1; % merubah koordinatxex2=ex2(:,1)-min_xex2;xex3=ex3(:,1)-min_xex3;xex4=ex4(:,1)-min_xex4;xex5=ex5(:,1)-min_xex5;yex1=ex1(:,2)-min_yex1;yex2=ex2(:,2)-min_yex2;yex3=ex3(:,2)-min_yex3;yex4=ex4(:,2)-min_yex4;yex5=ex5(:,2)-min_yex5;

Untuk membuat data pembanding ini diambil dari grafik percepatan, dimana akanmembentuk histogram, dan diambil lima titik yaitu

- Titik max - Tinggi- Titik min - Panjang- Titik normal

Page 26: Klasifikasi Segment Tulisan Tangan Dengan Matlab

26

%Perbandingantemp=0;lbl_segment(1)=0;k=1;jml_segment=nb_segmentsEx1+nb_segmentsEx2+nb_segmentsEx3+nb_segmentsEx4+nb_segmentsEx5;for i=1:nb_segments lbl=1;

for j=1:jml_segmentif ((j>0)&&(j<=nb_segmentsEx1))%huruf a

n1=max_l(i)/max_lex1(j); n2=min_l(i)/min_lex1(j); n3=norm(i)/normex1(j); n4=panjang(i)/panjangex1(j); n5=tinggi(i)/tinggiex1(j);

if (((n1>0.5) && (n1<1.5)) && ((n2>0.5) && (n2<1.5)) &&((n3>0.5) && (n3<1.5)) && ((n4>0.5) && (n4<1.5)) && ((n5>0.5) &&(n5<1.5))) lbl_segment(i)=lbl;

break; %Berpindah ke iend;

3.3.1 Tampilan Huruf a Pada figure 1 menampilkan karakter huruf yang dipanggil dalam sebuah programyang ada. Labeling atau penamaan berdasarkan segmen potongan karakter huruf asampai huruf e menjadi 15 segmen dasar , sehingga digunakan sebagai pembandinguntuk karakter yang lain. Contoh dibawah ini adalah karakter a

Gambar 3. 3 Huruf a

clear;close all;load LETTRE_OASIS/lettrea.dat;lettre=lettrea;

Page 27: Klasifikasi Segment Tulisan Tangan Dengan Matlab

27

%load LETTRE_OASIS/let_C.txt; % modifications january 07%lettre=LETTRE_OASIS_let_C;%%taille_fichier=size(lettre);min_x=min(min(lettre(:,1))); % coordonnee x minimummin_y=min(min(lettre(:,2))); % coordonnee y minimumx=lettre(:,1)-min_x; % chgt originey=lettre(:,2)-min_y;figure(1);plot(x,y);%cetak matriks X&Y di figure 1

Pada program diatas merupakan listing untuk memanggil karakter huruf a dimanahuruf a terdiri dari piksel – piksel. Akan diambil titik x minimum dan titik y minimumyang disimpan pada variabel min_x dan variabel min_y, dimana titik diperoleh daripiksel yang ada. Ketika variabel min_x dan variabel min_y didapat maka dilakukanproses perhitungan dengan rumus x=lettre(:,1)-min_x ; y=lettre(:,2)-min_y, sehingga diperoleh titik yang baru yang disimpan dalam variabel x dan variabely.

Tabel 3.1 Piksel huruf a

X Y Z

Tekanan

X

Tekanan

Y

8084 5690 1 22 -38

8084 5689 2 22 -38

8085 5692 4 22 -38

8086 5694 5 21 -37

8086 5695 7 21 -37

8083 5696 8 21 -37

8086 5705 9 21 -37

8078 5708 10 21 -37

8078 5710 11 21 -37

8077 5721 12 21 -37

8071 5724 12 21 -37

8067 5737 14 21 -37

8063 5740 17 21 -37

8059 5740 17 21 -37

8044 5744 17 21 -37

8034 5755 17 21 -37

8026 5758 18 21 -37

8017 5760 18 21 -37

8001 5770 18 21 -37

Page 28: Klasifikasi Segment Tulisan Tangan Dengan Matlab

28

7987 5773 18 21 -37

7971 5773 19 21 -37

7949 5776 19 21 -37

7925 5787 19 21 -37

7901 5787 19 21 -37

7874 5787 19 21 -37

7856 5786 19 21 -37

7829 5787 19 21 -38

7803 5776 18 21 -38

7761 5773 18 21 -38

7730 5758 18 21 -38

7697 5753 18 21 -38

7661 5737 18 21 -38

7630 5722 18 21 -38

7601 5705 18 21 -38

7570 5679 18 21 -38

7575 5661 18 21 -38

7514 5642 18 21 -38

7483 5610 17 21 -38

7460 5583 18 22 -38

7436 5565 18 22 -38

7413 5545 18 22 -37

7396 5517 18 22 -37

7376 5497 18 22 -37

7370 5469 18 22 -37

7359 5449 18 22 -37

7346 5422 18 23 -37

7343 5390 18 23 -37

7329 5369 18 23 -36

7326 5337 18 23 -36

7317 5305 18 23 -36

7316 5276 18 23 -36

7313 5244 18 23 -36

7308 5211 18 23 -35

7308 5178 18 23 -35

7313 5148 18 23 -35

Page 29: Klasifikasi Segment Tulisan Tangan Dengan Matlab

29

7322 5113 18 23 -35

7325 5084 18 23 -34

7336 5040 18 23 -34

7342 5006 18 23 -34

7353 4976 18 23 -34

7364 4944 18 23 -34

7380 4911 18 23 -34

7394 4891 18 23 -34

7410 4875 18 23 -34

7427 4860 18 23 -34

7449 4847 18 23 -33

7470 4841 18 23 -33

7490 4830 18 23 -33

7513 4828 18 22 -33

7536 4827 18 22 -33

7571 4831 18 22 -33

7600 4843 18 22 -32

7621 4848 18 22 -32

7650 4873 18 22 -32

7681 4889 18 22 -32

7715 4909 18 21 -32

7740 4940 18 21 -32

7771 4971 18 21 -32

7797 5004 18 21 -32

7823 5035 19 21 -32

7844 5054 19 21 -32

7862 5088 18 21 -32

7891 5129 19 21 -32

7913 5164 19 21 -32

7939 5196 19 21 -32

7958 5226 19 21 -32

7975 5260 19 21 -32

7990 5292 19 21 -32

8004 5324 19 21 -32

8020 5356 19 22 -32

8034 5388 19 22 -32

Page 30: Klasifikasi Segment Tulisan Tangan Dengan Matlab

30

8038 5420 19 22 -32

8045 5451 19 22 -32

8051 5483 19 22 -32

8053 5516 19 23 -32

8054 5549 18 23 -32

8061 5583 18 23 -33

8064 5625 19 23 -33

8062 5659 18 23 -33

8059 5691 18 23 -33

8059 5710 18 23 -34

8061 5738 18 23 -34

8057 5756 18 23 -34

8054 5770 19 23 -34

8051 5775 19 23 -35

8050 5776 19 23 -35

8047 5787 19 23 -35

8047 5788 20 23 -35

8046 5787 20 23 -35

8043 5788 20 23 -35

8044 5787 20 23 -36

8044 5786 20 23 -36

8047 5776 20 23 -36

8043 5785 20 23 -36

8045 5771 20 23 -36

8045 5759 20 23 -36

8044 5753 20 23 -36

8044 5740 20 23 -36

8049 5726 20 23 -36

8051 5711 20 23 -36

8049 5693 20 23 -36

8051 5677 20 23 -36

8044 5661 20 23 -36

8044 5645 21 23 -36

8051 5627 22 23 -35

8055 5600 22 23 -35

8053 5582 22 23 -35

Page 31: Klasifikasi Segment Tulisan Tangan Dengan Matlab

31

8059 5563 22 23 -35

8058 5536 22 23 -35

8058 5516 23 23 -35

8053 5482 23 23 -34

8050 5450 23 23 -34

8049 5417 24 23 -34

8050 5385 24 22 -34

8049 5355 24 22 -34

8049 5323 24 22 -33

8051 5280 24 22 -33

8056 5244 25 22 -33

8056 5200 25 22 -33

8059 5167 26 22 -32

8066 5134 26 22 -32

8070 5101 26 21 -32

8076 5069 26 21 -32

8084 5050 26 21 -31

8099 5022 26 21 -31

8110 4990 27 21 -31

8117 4960 26 21 -31

8133 4941 27 21 -31

8148 4924 26 21 -31

8162 4908 27 21 -31

8177 4894 27 21 -31

8198 4880 27 21 -30

8220 4877 26 20 -30

8234 4873 27 20 -30

8256 4859 26 20 -30

8273 4858 26 20 -30

8289 4858 26 20 -29

8307 4857 27 20 -29

8330 4846 27 20 -29

8340 4847 27 20 -29

8350 4847 26 20 -29

8367 4859 27 20 -29

8387 4863 27 20 -28

Page 32: Klasifikasi Segment Tulisan Tangan Dengan Matlab

32

8395 4874 27 20 -28

8416 4880 27 19 -28

8436 4894 27 19 -28

8459 4910 26 19 -28

8479 4928 24 19 -28

8504 4959 23 19 -28

8520 4990 20 19 -28

8541 5019 15 19 -28

8559 5049 7 19 -28

3.3.2 Grafik Kecepatan Grafik kecepatan terdapat pada figure 2, dimana ketika telah diperoleh titik – titikbaru yang disimpan pada variable x dan variabel y maka dilakukan filterisasi denganmengurangi noise yang ada melalui kecepatannya.

Gambar 3.4 Grafik Kecepatan

Pada Gambar 3.4 merupakan grafik kecepatan pada huruf a, dimana terdapat duaplot yaitu plot yang atas merupakan grafik yang belum difilter sedangkan grafik pada plotyang dibawah telah di filter.%===================================================%% Calcul des vetesses:kecepatan%kecepatan_x=diff(x,1);

Page 33: Klasifikasi Segment Tulisan Tangan Dengan Matlab

33

kecepatan_y=diff(y,1);taille=length(kecepatan_x);for i=1:taille, kecepatan(i)=sqrt(kecepatan_x(i)^2 + kecepatan_y(i)^2);end,h=ones(1,15);kecepatan_filter=conv(kecepatan,h);%conv=filterfigure(2);subplot(2,1,1);plot(kecepatan);subplot(2,1,2);plot(kecepatan_filter);%========================================================

Pada listing diatas merupakan program untuk mencari kecepatan yangmemudahkan dalam segmentasi. Rumus kecepatan yang digunakan yaitu , Kec :

22 YX + . Kecepatan yang telah di filter disimpan pada variabel kecepatan_filter3.3.3 Grafik Percepatan

Grafik percepatan terdapat pada figure 3, dimana ketika telah diperoleh titik –titik baru yang disimpan pada variable x dan variabel y maka dilakukan filterisasi denganmengurangi noise yang ada melalui kecepatannya yang disimpan pada variabelkecepatan_filter. Seteleh diperoleh grafik kecepatannya maka dihitung percepatan untukmenuju tahap segmentasi.

Gambar 3.5 Grafik Percepatan

Pada Gambar 3.5 merupakan Grafik Percepatan pada huruf a, dimana terdapatdua plot yaitu plot yang atas merupakan grafik yang belum difilter sedangkan grafik padaplot yang dibawah telah di filter. Percepatan didapat setelah dilakukan proses perhitungankecepatan. Dimana percepatan yang ada disimpan dalam percepatan_filterCalcul des accélérations:percepatan%percepatan=diff(kecepatan_filter,1);percepatan_filter=conv(percepatan,h);

Page 34: Klasifikasi Segment Tulisan Tangan Dengan Matlab

34

figure(3); %cetak percepatansubplot(2,1,1);plot(percepatan);subplot(2,1,2);plot(percepatan_filter);%======================================================3.3.4 Karakter Huruf b Sampai Huruf e Pada saat klasifikasi huruf yang digunakan sebagai pembanding yaitu huruf asampai huruf e. Huruf a dapat dilihat pada proses sebelumnya. Dibawah ini merupakantampilan proses segmentasi pada huruf b sampai huruf e .3.3.4.1 Tampilan Huruf b Sampai Huruf e

Gambar 3.6 Huruf b

Gambar 3.7 Huruf c

Page 35: Klasifikasi Segment Tulisan Tangan Dengan Matlab

35

Gambar 3.8 Huruf d

Gambar 3.9 Huruf e

Page 36: Klasifikasi Segment Tulisan Tangan Dengan Matlab

36

3.3.4.2 Piksel Huruf b Sampai Huruf e

Tabel 3.2 Piksel huruf b

X Y Z

Tekanan

X

Tekanan

Y

11293 4142 1 23 -31

11284 4153 1 23 -31

11287 4153 1 23 -31

11285 4153 1 23 -31

11286 4153 1 22 -31

11281 4154 3 22 -31

11284 4153 4 22 -31

11286 4154 5 21 -31

11286 4154 6 21 -31

11287 4154 7 21 -31

11287 4153 7 21 -31

11285 4154 8 21 -31

11286 4154 9 20 -31

11290 4154 10 20 -31

11296 4154 10 20 -31

11296 4155 11 20 -31

11300 4154 12 20 -31

11305 4154 12 20 -31

11311 4156 13 20 -31

11327 4160 14 20 -31

11342 4172 14 20 -31

11365 4185 15 20 -31

11384 4192 16 20 -31

11402 4205 16 21 -31

11438 4224 16 21 -31

11466 4253 17 21 -31

11501 4284 18 20 -31

11538 4313 18 20 -31

11573 4336 18 20 -31

11604 4368 18 20 -31

11644 4410 19 20 -31

Page 37: Klasifikasi Segment Tulisan Tangan Dengan Matlab

37

11668 4445 19 20 -31

11704 4489 19 20 -31

11732 4526 19 20 -31

11762 4572 19 20 -31

11790 4608 19 20 -31

11816 4652 19 20 -31

11838 4697 19 19 -32

11865 4732 20 19 -32

11878 4777 20 19 -32

11890 4813 20 19 -32

11913 4857 20 19 -32

11929 4905 20 19 -33

11952 4944 21 19 -33

11960 4985 20 19 -33

11960 5023 20 19 -34

11964 5069 20 19 -34

11982 5113 20 19 -34

11987 5146 20 18 -34

11991 5166 21 18 -35

11986 5181 21 18 -35

11977 5199 20 18 -35

11978 5225 20 18 -35

11977 5243 20 18 -35

11967 5258 21 18 -35

11955 5261 21 18 -35

11939 5262 21 18 -36

11927 5264 21 18 -36

11918 5274 21 18 -36

11909 5275 21 18 -36

11898 5274 21 18 -36

11893 5263 21 18 -36

11879 5260 20 18 -36

11868 5246 20 18 -36

11848 5228 20 18 -36

11832 5209 20 18 -36

11821 5179 20 18 -36

Page 38: Klasifikasi Segment Tulisan Tangan Dengan Matlab

38

11804 5147 20 19 -36

11789 5114 21 19 -36

11773 5067 21 19 -36

11759 5018 21 19 -36

11746 4971 21 19 -36

11736 4928 21 19 -36

11730 4890 21 19 -36

11718 4843 21 19 -36

11707 4795 22 19 -36

11704 4747 22 19 -35

11700 4699 22 19 -35

11689 4640 22 19 -35

11679 4589 23 19 -35

11671 4528 23 19 -34

11670 4478 23 19 -34

11673 4427 23 18 -34

11663 4368 24 18 -33

11659 4314 24 18 -33

11651 4252 24 18 -32

11644 4201 24 18 -32

11636 4142 24 18 -31

11640 4080 24 18 -31

11637 4016 24 18 -30

11647 3963 24 18 -30

11651 3917 24 18 -29

11662 3871 24 18 -29

11670 3839 24 18 -29

11680 3807 25 18 -29

11694 3785 24 18 -28

11707 3757 24 18 -28

11716 3741 24 18 -28

11732 3725 24 18 -28

11745 3710 23 18 -28

11758 3696 23 18 -28

11770 3694 22 18 -28

11784 3693 22 17 -27

Page 39: Klasifikasi Segment Tulisan Tangan Dengan Matlab

39

11800 3693 22 17 -27

11821 3696 22 17 -27

11842 3712 22 17 -27

11863 3728 22 17 -27

11881 3757 22 17 -27

11888 3786 22 17 -27

11904 3808 23 17 -27

11910 3835 22 17 -27

11917 3865 22 17 -27

11930 3898 22 17 -27

11934 3936 22 17 -27

11938 3981 22 17 -27

11934 4012 22 17 -27

11923 4045 22 16 -27

11917 4074 22 17 -27

11912 4092 23 17 -27

11899 4110 23 17 -27

11883 4127 23 17 -27

11875 4141 25 17 -27

11861 4154 25 17 -27

11858 4157 25 17 -27

11843 4170 26 17 -27

11843 4172 27 17 -28

11840 4173 27 17 -28

11830 4174 27 17 -28

11825 4175 27 17 -28

11823 4185 27 17 -28

11825 4176 27 17 -28

11825 4176 27 17 -28

11820 4186 26 17 -28

11825 4176 26 17 -28

11828 4174 26 17 -28

11830 4175 25 17 -28

11835 4173 25 17 -28

11849 4172 26 17 -28

11867 4170 26 17 -28

Page 40: Klasifikasi Segment Tulisan Tangan Dengan Matlab

40

11884 4158 26 17 -28

11898 4156 26 17 -28

11926 4156 26 17 -28

11953 4155 27 17 -28

11994 4154 27 17 -28

12031 4154 27 17 -28

12070 4156 27 17 -28

12110 4158 27 17 -28

12141 4158 27 17 -28

12170 4160 27 17 -28

12204 4170 27 17 -28

12240 4174 27 17 -27

12268 4188 28 17 -27

12292 4190 28 17 -27

12315 4201 28 17 -27

12331 4206 28 17 -27

12348 4208 28 17 -27

12356 4220 28 17 -27

12361 4219 29 17 -27

12366 4208 30 17 -27

12363 4218 31 17 -27

12360 4220 31 17 -27

12369 4218 32 17 -27

12368 4220 32 17 -27

12366 4219 32 17 -27

12369 4217 32 17 -27

12366 4219 31 17 -27

12362 4218 29 17 -27

12366 4218 24 17 -27

12366 4217 19 17 -27

12364 4217 10 17 -27

Page 41: Klasifikasi Segment Tulisan Tangan Dengan Matlab

41

Tabel 3.3 Piksel huruf c

X Y Z

Tekanan

X

Tekanan

Y

11801 7422 23 16 -35

11795 7421 22 17 -35

11757 7418 22 17 -35

11727 7407 22 17 -35

11706 7402 22 17 -35

11680 7387 22 18 -35

11639 7372 22 18 -35

11609 7355 22 18 -35

11577 7340 22 18 -35

11530 7323 22 18 -35

11502 7295 22 19 -35

11469 7276 22 19 -35

11444 7258 22 19 -35

11428 7232 22 19 -35

11405 7225 22 19 -35

11392 7198 22 19 -35

11369 7181 22 20 -34

11352 7162 22 20 -34

11339 7132 22 20 -34

11320 7104 22 20 -34

11317 7083 22 20 -34

11318 7052 22 20 -34

11300 7018 22 21 -34

11294 7001 22 21 -34

11300 6973 22 21 -34

11299 6944 22 21 -34

11300 6921 22 21 -34

11291 6880 22 21 -34

11299 6859 22 21 -34

11306 6841 22 21 -34

11307 6814 22 21 -34

11312 6794 22 21 -34

11322 6768 22 21 -34

Page 42: Klasifikasi Segment Tulisan Tangan Dengan Matlab

42

11332 6750 22 22 -35

11348 6729 22 22 -35

11351 6713 22 21 -34

11375 6700 22 21 -34

11393 6685 22 21 -34

11428 6665 22 21 -34

11451 6639 22 21 -33

11470 6637 22 21 -33

11509 6623 22 21 -33

11541 6620 22 21 -33

11568 6618 22 21 -33

11600 6608 22 21 -32

11633 6618 22 21 -32

11671 6621 22 20 -32

11701 6623 22 20 -32

11731 6634 22 20 -32

11760 6637 22 20 -32

11789 6639 22 20 -32

11803 6650 22 20 -32

11822 6653 22 20 -31

11842 6667 22 20 -31

Tabel 3.4 Piksel huruf d

X Y Z

Tekanan

X

Tekanan

Y

13410 7627 0 17 -35

13410 7628 2 17 -35

13409 7630 4 17 -35

13407 7630 5 17 -35

13410 7631 7 16 -35

13411 7631 8 16 -35

13410 7641 9 16 -35

13413 7642 10 16 -35

13408 7643 11 16 -35

13412 7643 12 16 -35

13408 7643 13 16 -35

Page 43: Klasifikasi Segment Tulisan Tangan Dengan Matlab

43

13415 7642 14 16 -35

13408 7645 15 16 -35

13410 7645 16 16 -35

13404 7646 17 16 -35

13400 7648 18 16 -35

13401 7648 19 16 -35

13396 7660 20 16 -35

13399 7660 22 17 -35

13399 7660 22 17 -35

13397 7661 23 17 -35

13386 7664 24 17 -35

13391 7663 25 17 -35

13382 7674 26 17 -35

13385 7674 26 17 -35

13376 7675 26 17 -35

13373 7678 27 17 -35

13368 7680 26 17 -35

13355 7695 28 17 -35

13355 7696 28 17 -35

13350 7695 28 17 -35

13343 7696 27 17 -35

13320 7709 27 17 -35

13307 7709 27 17 -35

13279 7712 27 17 -35

13263 7721 27 17 -35

13245 7721 27 17 -35

13228 7711 27 17 -35

13203 7711 27 17 -35

13188 7706 27 18 -36

13164 7706 27 18 -36

13146 7706 27 18 -36

13136 7695 27 18 -36

13120 7695 27 18 -36

13098 7680 27 18 -36

13075 7676 27 18 -36

13055 7661 27 18 -35

Page 44: Klasifikasi Segment Tulisan Tangan Dengan Matlab

44

13025 7648 26 18 -35

13018 7632 27 18 -35

13003 7627 26 18 -35

12992 7610 27 17 -35

12974 7581 26 17 -35

12964 7563 26 17 -35

12954 7548 26 17 -35

12940 7520 26 17 -35

12938 7503 26 17 -35

12931 7481 26 17 -35

12923 7455 26 16 -34

12915 7437 26 17 -34

12917 7419 26 17 -34

12913 7390 26 17 -34

12917 7370 25 17 -34

12913 7344 25 17 -34

12918 7324 25 17 -33

12918 7308 24 17 -33

12930 7289 24 17 -33

12929 7274 24 17 -33

12928 7261 24 17 -33

12942 7246 24 17 -33

12948 7242 23 17 -33

12960 7229 23 18 -32

12973 7225 23 18 -32

12983 7213 23 18 -32

12994 7213 23 18 -32

13007 7212 23 18 -32

13028 7211 23 18 -32

13046 7214 23 18 -32

13067 7227 23 18 -32

13096 7242 23 18 -32

13119 7257 23 18 -32

13137 7273 23 18 -31

13156 7292 23 18 -31

13176 7306 23 18 -31

13191 7324 23 18 -32

Page 45: Klasifikasi Segment Tulisan Tangan Dengan Matlab

45

13221 7353 23 18 -32

13231 7373 23 18 -32

13250 7402 23 18 -32

13267 7422 23 18 -32

13284 7440 24 18 -32

13294 7469 24 18 -32

13316 7500 24 18 -32

13323 7516 25 18 -32

13329 7546 25 18 -32

13349 7578 25 18 -32

13350 7597 26 19 -32

13350 7630 25 19 -33

13366 7663 25 19 -33

13384 7710 27 18 -33

13388 7741 27 18 -33

13404 7772 27 18 -33

13398 7817 27 18 -34

13398 7850 27 18 -34

13408 7884 26 18 -34

13424 7919 27 18 -34

13425 7951 27 18 -34

13425 7980 27 18 -35

13426 8010 27 18 -35

13425 8027 27 18 -35

13429 8044 28 18 -35

13428 8060 28 18 -36

13432 8063 28 18 -36

13434 8076 28 18 -36

13435 8077 29 18 -36

13431 8079 29 18 -37

13434 8080 29 18 -37

13433 8077 30 18 -37

13430 8080 30 17 -37

13437 8080 30 17 -37

13433 8079 30 17 -37

13430 8080 29 17 -37

13430 8078 29 17 -37

Page 46: Klasifikasi Segment Tulisan Tangan Dengan Matlab

46

13432 8079 29 17 -37

13428 8076 28 17 -37

13426 8076 28 17 -37

13432 8062 28 17 -37

13426 8058 28 17 -37

13425 8043 28 17 -37

13426 8030 28 17 -37

13423 8026 28 17 -37

13422 8012 29 17 -37

13411 7995 29 17 -37

13417 7977 29 17 -37

13405 7951 28 17 -37

13408 7935 29 17 -37

13409 7904 30 17 -37

13401 7869 30 17 -36

13390 7822 31 17 -36

13382 7771 32 17 -36

13384 7723 33 17 -36

13371 7659 33 17 -36

13362 7614 33 17 -35

13370 7565 34 17 -35

13355 7503 34 17 -35

13349 7453 35 17 -34

13350 7405 35 17 -34

13339 7358 35 17 -34

13339 7312 36 17 -33

13341 7280 36 17 -33

13336 7246 36 17 -33

13340 7212 36 18 -32

13354 7181 36 18 -32

13361 7152 36 18 -31

13371 7136 36 18 -31

13381 7116 36 18 -31

13386 7102 35 17 -31

13395 7087 35 17 -31

13403 7084 35 17 -30

13431 7071 36 17 -30

Page 47: Klasifikasi Segment Tulisan Tangan Dengan Matlab

47

13448 7068 35 17 -30

13461 7068 34 17 -30

13468 7069 34 17 -30

13489 7072 34 17 -30

13522 7099 34 17 -30

13546 7115 32 17 -30

13593 7132 30 17 -30

13634 7152 29 17 -30

13658 7178 25 16 -30

13688 7194 21 16 -30

13715 7214 16 16 -30

13738 7241 9 16 -31

Tabel 3.5 Piksel huruf e

X Y Z

Tekanan

X

Tekanan

Y

10225 4971 4 26 -42

10220 4973 5 26 -41

10217 4973 6 25 -41

10213 4973 6 25 -40

10213 4971 8 25 -39

10209 4971 10 25 -39

10209 4971 12 24 -38

10209 4972 13 24 -37

10210 4971 14 24 -37

10214 4969 15 24 -36

10212 4971 16 24 -36

10214 4971 16 24 -36

10215 4969 17 23 -36

10217 4969 17 23 -36

10222 4959 18 23 -36

10226 4957 18 23 -36

10229 4957 18 23 -36

10236 4955 18 23 -36

10245 4953 18 23 -36

10257 4944 19 23 -36

Page 48: Klasifikasi Segment Tulisan Tangan Dengan Matlab

48

10272 4940 19 23 -36

10288 4942 20 23 -35

10314 4953 20 23 -35

10336 4959 20 23 -35

10358 4969 20 23 -35

10387 4976 20 23 -35

10419 5001 20 23 -35

10448 5022 21 23 -35

10480 5037 21 23 -35

10508 5053 21 23 -35

10533 5072 21 22 -35

10560 5099 21 22 -34

10587 5120 21 22 -34

10618 5146 21 22 -34

10638 5165 21 22 -34

10654 5182 21 22 -34

10667 5199 21 22 -34

10678 5225 21 21 -34

10687 5244 21 21 -34

10694 5261 21 21 -33

10693 5279 21 21 -33

10700 5259 21 21 -33

10696 5311 21 21 -33

10685 5327 22 21 -33

10684 5343 22 21 -33

10680 5357 23 21 -33

10670 5373 23 21 -34

10662 5386 23 21 -34

10649 5401 23 21 -34

10635 5406 23 21 -34

10628 5418 24 21 -34

10609 5420 23 21 -35

10589 5421 23 21 -35

10565 5420 23 20 -35

10548 5417 23 20 -35

10537 5404 23 20 -35

Page 49: Klasifikasi Segment Tulisan Tangan Dengan Matlab

49

10518 5392 23 20 -35

10495 5374 23 20 -35

10471 5356 23 20 -35

10460 5328 23 20 -35

10447 5308 23 20 -35

10428 5275 23 20 -35

10412 5243 23 20 -35

10396 5200 23 21 -35

10378 5165 23 21 -35

10366 5136 23 21 -35

10365 5099 23 21 -35

10352 5039 24 21 -35

10341 4992 24 21 -34

10348 4959 24 21 -34

10353 4923 24 21 -34

10356 4892 24 21 -34

10358 4858 24 21 -34

10359 4827 25 21 -34

10370 4799 25 21 -34

10383 4780 25 21 -34

10396 4763 25 21 -34

10415 4746 25 21 -34

10426 4733 25 21 -34

10452 4717 25 21 -34

10479 4713 25 21 -34

10507 4713 25 21 -34

10537 4704 26 21 -34

10564 4704 25 21 -34

10590 4715 26 20 -34

10620 4718 26 20 -34

10652 4730 26 20 -34

10683 4746 26 20 -34

10709 4761 26 20 -34

10728 4764 26 19 -34

10741 4767 26 19 -34

10754 4779 26 19 -34

Page 50: Klasifikasi Segment Tulisan Tangan Dengan Matlab

50

10764 4783 26 19 -34

10775 4784 26 19 -34

10778 4793 26 19 -34

10778 4794 26 19 -34

10781 4795 26 19 -34

10778 4795 26 19 -34

10777 4797 25 18 -34

10776 4797 24 18 -34

10778 4798 23 18 -34

10776 4800 20 18 -33

10777 4800 15 18 -33

10770 4800 6 18 -33

3.3.4.3 Tampilan Grafik Kecepatan Huruf b sampai Huruf e

Gambar 3.10 Grafik Kecepatan Huruf b

Page 51: Klasifikasi Segment Tulisan Tangan Dengan Matlab

51

Gambar 3.11 Grafik Kecepatan Huruf c

Gambar 3.12 Grafik Kecepatan Huruf d

Gambar 3.13 Grafik Kecepatan Huruf e

Page 52: Klasifikasi Segment Tulisan Tangan Dengan Matlab

52

3.3.4.4 Tampilan Grafik Percepatan Huruf b sampai Huruf e

Gambar 3.14 Grafik Percepatan Huruf b

Gambar 3.15 Grafik Percepatan Huruf c

Page 53: Klasifikasi Segment Tulisan Tangan Dengan Matlab

53

Gambar 3.16 Grafik Percepatan Huruf d

Gambar 3.17 Grafik Percepatan Huruf e

3.3.5 Segmentasi dan KlasifikasiSegmentasi karakter diperoleh perhitungannya dari grafik percepatan yang telah

difilterisasi. Untuk menentukan setiap segment diperoleh dari histogram grafikpercepatan dengan membentuk satu lembah dan satu bukit, dimana titik awal dan titikakhir terdapat pada sejajar sumbu x = 0. Hasil segmentasi terdapat pada figure 4.% Segmentation:%j=1;for i= 2:length(percepatan_filter)-1;

if (percepatan_filter(i-1)<0) && (percepatan_filter(i)>0) %segmente(j)=i; j=j+1;

end;end;

Page 54: Klasifikasi Segment Tulisan Tangan Dengan Matlab

54

%segmente=segmente-30segmente=segmente-10; %nb_segments=length(segmente)+1; %%num_figure=4;%3.3.5.1 Klasifikasi Huruf a Sampai Huruf e

Setiap huruf yang telah di segmen akan dibuat klasifikasinya. Seperti dijelaskansebelumnya, aplikasi ini membuat dasar labeling atau penamaan menjadi 15 segmentyang diperoleh dari huruf a sampai huruf e, sehingga setiap ada input karakter selain darihuruf a sampai huruf e akan dibandingkan dengan 15 segment tersebut dan dibuatklasifikasinya.%Loading databaseload data/lettrea.dat;load data/lettreb.dat;load data/lettrec.dat;load data/lettred.dat;load data/lettree.dat;ex1=lettrea;ex2=lettreb;ex3=lettrec;ex4=lettred;ex5=lettree;

Program diatas akan diambil file huruf a sampai huruf e dan disimpan padavariabel ex.in_lex1(j);%labeling

%Pengambilan Nilaimax_l(1)=0;min_l(1)=0;max_lex1(1)=0;min_lex1(1)=0;max_lex2(1)=0;min_lex2(1)=0;max_lex3(1)=0;min_lex3(1)=0;max_lex4(1)=0;min_lex4(1)=0;max_lex5(1)=0;min_lex5(1)=0;for i=1:nb_segments;

if (i==1)for j=1:segmente(i);

if (percepatan_filter(j) > max_l(i)) max_l(i)=percepatan_filter(j);

end;if (percepatan_filter(j)<min_l(i))

min_l(i)=percepatan_filter(j);end;if (percepatan_filter(j)>=0 && percepatan_filter(j+1)<0)

norm(i)=j;end;

panjang(i)=segmente(i); tinggi(i)=max_l(i)-min_l(i);

end;elseif (i==nb_segments)

Page 55: Klasifikasi Segment Tulisan Tangan Dengan Matlab

55

max_l(i)=0; min_l(i)=0;

for j=segmente(i-1):length(percepatan_filter);if (percepatan_filter(j) > max_l(i))

max_l(i)=percepatan_filter(j);end;if (percepatan_filter(j)<min_l(i))

min_l(i)=percepatan_filter(j);end;if (percepatan_filter(j-1)>=0 && percepatan_filter(j)<0)

norm(i)=j-1;end;

panjang(i)=length(percepatan_filter)-segmente(i-1); tinggi(i)=max_l(i)-min_l(i);

end;else

max_l(i)=0; min_l(i)=0;

for j=segmente(i-1):segmente(i);if (percepatan_filter(j) > max_l(i))

max_l(i)=percepatan_filter(j);end;if (percepatan_filter(j)<min_l(i))

min_l(i)=percepatan_filter(j);end;if (percepatan_filter(j)>=0 && percepatan_filter(j+1)<0)

norm(i)=j;end;

panjang(i)=segmente(i); tinggi(i)=max_l(i)-min_l(i);

end;end

end;

%Nilai X1for i=1:nb_segmentsEx1;

if (i==1)for j=1:segmenteex1(i);

if (percepatan_filterex1(j) > max_lex1(i)) max_lex1(i)=percepatan_filterex1(j);

end;if (percepatan_filterex1(j)<min_lex1(i))

min_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j)>=0 &&

percepatan_filterex1(j+1)<0) normex1(i)=j;

end; panjangex1(i)=segmenteex1(i); tinggiex1(i)=max_lex1(i)-min_lex1(i);

end;elseif (i==nb_segmentsEx1)

max_lex1(i)=0; min_lex1(i)=0;

for j=segmenteex1(i-1):length(percepatan_filterex1);if (percepatan_filterex1(j) > max_lex1(i))

max_lex1(i)=percepatan_filterex1(j);

Page 56: Klasifikasi Segment Tulisan Tangan Dengan Matlab

56

end;if (percepatan_filterex1(j)<min_lex1(i))

min_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j-1)>=0 &&

percepatan_filterex1(j)<0) normex1(i)=j-1;

end; panjangex1(i)=length(percepatan_filterex1)-segmenteex1(i-1); tinggiex1(i)=max_lex1(i)-min_lex1(i);

end;else

max_lex1(i)=0; min_lex1(i)=0;

for j=segmenteex1(i-1):segmenteex1(i);if (percepatan_filterex1(j) > max_lex1(i))

max_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j)<min_lex1(i))

min_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j)>=0 &&

percepatan_filterex1(j+1)<0) normex1(i)=j;

end; panjangex1(i)=segmenteex1(i); tinggiex1(i)=max_lex1(i)-min_lex1(i);

end;end

end; Program diatas merupakan kalsifikasi untuk huruf a sampai huruf e.sehinggamembentuk 16 segmen dasar.3.1.6 Tampilan Klasifikasi Segmen Huruf a Sampai Huruf e

Gambar 3.18 Klasifikasi Segmen Huruf a

Page 57: Klasifikasi Segment Tulisan Tangan Dengan Matlab

57

Gambar 3.19 Klasifikasi Segmen Huruf b

Gambar 3.20 Klasifikasi Segmen Huruf c

Page 58: Klasifikasi Segment Tulisan Tangan Dengan Matlab

58

Gambar 3.21 Klasifikasi Segmen Huruf d

Gambar 3.22 Klasifikasi Segmen Huruf e

Page 59: Klasifikasi Segment Tulisan Tangan Dengan Matlab

59

BAB IVPENGUJIAN PROGRAM4.1 Tujuan Pengujian

Percobaan ini bertujuan untuk membuktikan apakah program aplikasi ini mampumengklasifikasi setiap karakter yang diinput.4.2 Kerangka Sistem yang Diuji

Kerangka sistem yang akan diuji adalah program aplikasi perbaikan kualitascitra digital untuk menghasilkan citra keluaran yang mempunyai kualitas lebih baikdaripada citra masukan.

Spesifikasi perangkat keras yang digunakan oleh penulis adalah sebagai berikut :Hardware : - Prosesor Intel Pentium 4 2.26 GHz.

- Memori 256 MB. - Harddisk 80GB.

Software : - Windows XP Profesional - Matlab 7.14.3 Cara Pengujian

Hal utama yang perlu dilakukan untuk melakukan pengujian program adalahmeng-install software Matlab 7.1 pada komputer yang akan menjalankan program ini.Setelah itu, jalankan aplikasi Matlab 7.1 tersebut dengan meng-klik ikon Matlab 7.1 padadesktop window atau dari toolbar Start Windows, lalu klik All Programs dan pilih Matlab7.1, kemudian browse (pilih direktori) file yang akan di ujikan.4.4 Contoh Kasus4.4.1 Kasus

Akan disegmentasi dan dibuat Klasifikasinya Huruf m4.4.2 Penyelesaian

1. Untuk Huruf mKarakter yang telah diinput disimpan dalam sebuah file, file yang disimpan

berupa piksel – piksel. Kemudian buka aplikasi yang telah dibuat., dengan memanggilfile yang telah disimpan tadi seperti dibawah ini..clear;close all;load LETTRE_OASIS/lettrem.dat;lettre=lettrem;

Gambar 4.1 Tampilan Karakter m

Page 60: Klasifikasi Segment Tulisan Tangan Dengan Matlab

60

%Mengambil data dari lettremin_x=min(min(lettre(:,1))); % coordonnee x minimummin_y=min(min(lettre(:,2))); % coordonnee y minimumx=lettre(:,1)-min_x; % chgt originey=lettre(:,2)-min_y;figure(1);plot(x,y);%cetak matriks X&Y di figure 1%===================================================

Pada program diatas merupakan listing untuk memanggil karakter huruf mdimana huruf m terdiri dari piksel – piksel. Akan diambil titik x minimum dan titik yminimum yang disimpan pada variabel min_x dan variabel min_y, dimana titik diperolehdari piksel yang ada. Ketika variabel min_x dan variabel min_y didapat maka dilakukanproses perhitungan dengan rumus x=lettre(:,1)-min_x ; y=lettre(:,2)-min_y, sehingga diperoleh titik yang baru yang disimpan dalam variabel x dan variabely

Tabel 4.1 Piksel Huruf m

X Y ZTekanan

XTekanan

Y4327 17645 0 23 -324327 17642 1 23 -324327 17642 3 23 -324325 17641 4 23 -324327 17631 5 23 -324325 17630 6 23 -324321 17629 7 23 -324321 17628 9 24 -324322 17628 10 24 -324319 17628 11 24 -324321 17628 12 24 -324323 17628 14 24 -324319 17629 15 24 -324323 17630 17 24 -324324 17632 18 24 -324324 17641 19 24 -324327 17644 20 24 -324331 17657 21 24 -324338 17661 22 24 -324339 17677 22 24 -324347 17696 22 24 -324351 17726 22 24 -324351 17755 22 24 -324362 17785 23 24 -324369 17803 24 24 -324377 17819 24 24 -324387 17850 24 24 -324395 17871 24 24 -32

Page 61: Klasifikasi Segment Tulisan Tangan Dengan Matlab

61

4413 17903 24 24 -334431 17935 24 24 -334448 17978 24 24 -334469 18009 24 24 -334482 18028 25 24 -334490 18042 25 24 -334504 18062 25 24 -334510 18076 25 25 -344515 18089 25 25 -344524 18105 25 25 -344545 18110 25 25 -344551 18124 25 25 -344564 18128 25 25 -344565 18128 24 25 -354570 18128 24 25 -354572 18127 24 25 -354580 18127 23 25 -354585 18124 23 25 -354596 18110 23 25 -354606 18096 23 25 -354619 18078 23 25 -354632 18057 23 25 -354649 18029 23 25 -354664 17999 23 24 -354678 17965 23 24 -354688 17931 23 24 -354696 17898 23 24 -354711 17867 23 24 -344723 17836 24 23 -344716 17805 24 23 -344727 17760 24 23 -344726 17727 24 22 -334731 17695 24 22 -334724 17663 24 22 -334721 17641 24 22 -334723 17599 24 22 -324730 17580 24 22 -324720 17550 25 21 -324716 17532 24 21 -314714 17518 24 21 -314713 17513 24 21 -314714 17499 24 21 -314711 17488 24 21 -314713 17487 24 21 -314713 17488 24 21 -314714 17487 24 21 -314714 17486 25 21 -304714 17488 25 21 -30

Page 62: Klasifikasi Segment Tulisan Tangan Dengan Matlab

62

4709 17497 25 21 -304715 17500 25 21 -304716 17514 25 21 -294719 17534 25 21 -294725 17561 25 21 -304728 17580 25 21 -304734 17612 25 21 -304736 17628 25 21 -304749 17660 24 21 -304751 17692 24 21 -304765 17726 24 21 -304780 17758 24 21 -304792 17803 23 21 -314812 17835 23 22 -314828 17869 23 22 -314840 17900 23 22 -314862 17919 23 22 -314873 17935 23 23 -324885 17952 23 23 -324892 17968 23 23 -324902 17981 23 23 -324913 17982 23 24 -324913 17982 22 24 -324918 17981 21 24 -324927 17977 20 24 -334934 17966 20 24 -334942 17951 20 25 -334950 17933 20 25 -334957 17913 20 25 -334968 17884 20 25 -334976 17854 20 25 -334986 17822 20 25 -324994 17790 20 24 -324999 17757 20 24 -325004 17723 20 24 -325011 17692 20 24 -325018 17660 20 24 -325019 17632 20 23 -325019 17613 20 23 -325023 17593 20 23 -325022 17568 20 23 -315024 17552 20 23 -315021 17548 20 23 -315020 17535 20 23 -315020 17529 20 22 -315022 17519 21 22 -315021 17518 21 22 -305022 17518 21 22 -30

Page 63: Klasifikasi Segment Tulisan Tangan Dengan Matlab

63

5023 17517 21 22 -305021 17520 22 22 -305018 17529 22 22 -305019 17545 22 22 -305017 17564 22 22 -305023 17582 21 22 -305024 17609 21 22 -305027 17631 21 22 -305033 17661 21 22 -305034 17689 21 23 -305039 17722 21 23 -305053 17756 20 23 -305067 17791 20 23 -305080 17824 21 23 -315092 17856 21 23 -315103 17897 21 23 -315125 17920 21 23 -315141 17948 21 23 -315160 17965 21 23 -315170 17978 21 23 -325175 17982 21 23 -325184 17994 21 23 -325191 17995 21 23 -325197 17994 20 23 -325201 17983 20 23 -325211 17967 20 23 -325222 17950 20 23 -325224 17919 20 22 -325228 17888 20 22 -325237 17853 21 22 -325234 17820 21 22 -325237 17789 21 22 -325244 17757 21 22 -325246 17725 22 22 -325250 17695 22 22 -325259 17675 22 22 -325262 17661 22 22 -325276 17645 22 21 -315283 17625 23 21 -315297 17600 23 21 -315304 17584 23 21 -315320 17581 23 21 -315335 17578 23 21 -305347 17577 23 21 -305361 17577 24 21 -305382 17578 24 21 -305394 17583 24 21 -305410 17597 24 21 -30

Page 64: Klasifikasi Segment Tulisan Tangan Dengan Matlab

64

5423 17613 24 20 -305444 17629 23 20 -295457 17647 22 20 -295478 17675 21 20 -295495 17691 19 20 -295508 17708 12 20 -295521 17728 6 20 -29

4.4.3 Grafik KecepatanGrafik kecepatan terdapat pada figure 2, dimana ketika telah diperoleh titik –

titik baru yang disimpan pada variable x dan variabel y maka dilakukan filterisasi denganmengurangi noise yang ada melalui kecepatannya.% Calcul des vetesses:kecepatan%kecepatan_x=diff(x,1);kecepatan_y=diff(y,1);taille=length(kecepatan_x);for i=1:taille, kecepatan(i)=sqrt(kecepatan_x(i)^2 + kecepatan_y(i)^2);end;h=ones(1,15);kecepatan_filter=conv(kecepatan,h);figure(2);subplot(2,1,1);plot(kecepatan);subplot(2,1,2);plot(kecepatan_filter);%========================================================

Gambar 4.2Grafik Kecepatan Karakter mPada gambar 4.2 terdapat dua plot yaitu plot yang atas merupakan histogram yang

belum difilter. Untuk plot yang bawah merupakam histogram yang telah di filter. Untuk

menentukan kecepatan digunakan rumus 22 yx + . Sintaxnya:kecepatan(i)=sqrt(kecepatan_x(i)^2 + kecepatan_y(i)^2).

Page 65: Klasifikasi Segment Tulisan Tangan Dengan Matlab

65

4.4.4 Grafik PercepatanPada grafik percepatan ini merupakan dasar dari segmentasi. Dimana histogram

kecepatan akan diproses kembali yang disimpan dalam variabel percepatan dan difilter.Grafik percepatan terdapat pada figure 3, dimana ketika telah diperoleh titik – titik baruyang disimpan pada variable percepatan.Calcul des accélérations:percepatan%percepatan=diff(kecepatan_filter,1);percepatan_filter=conv(percepatan,h);figure(3); %cetak percepatansubplot(2,1,1);plot(percepatan);subplot(2,1,2);plot(percepatan_filter);%======================================================

Gambar 4.3 Grafik Percepatan Karakter m4.4.5 Segmentasi dan Klasifikasi Tahap ini diperoleh setelah dilakukan proses perhitungan kecepatan dan prosesperhitungan percepatan yang telah di filterisasi. Hasil segmentasi terdapat pada figure 4.Klasifikasi dilakukan dari huruf yang diinput berdasarkan grafik percepatan. Dimanadicari perbandingan nilai pada piksel yang ada, dan pada saat klasifikasi segmen huruf makan dibandingkan dengan segmen yang telah ada yaitu 15 segmen yang diperoleh darisegmen karakter huruf a sampai huruf e. Jika pada saat dibandingkan ternyata segmenpada huruf m tidak ada yang mirip dengan 15 segmen dasar maka akan dibuatpenamaan baru.

Page 66: Klasifikasi Segment Tulisan Tangan Dengan Matlab

66

Gambar 4.4 Hasil Segmentasi Dan Klasifikasi Huruf m Pada gambar 4.3 dapat dilihat klasifikasi segmen. Dimana huruf m ini terdiridari :a.Segmen 14b.Segmen 5c.Segmen 3d.Segmen 15e.Segmen 1

4.5 Hasil PengujianHasil pengujian dari program aplikasi ini adalah :

1. Program ini mampu melakukan perbandingan pada setiap segmen yang telahdihasilkan pada aplikasi yang dibuat.

2. Program ini mampu melakukan Klasifikasi untuk memudahkan pengenalan tulisantangan

4.6 PembahasanDari hasil pengujian ternyata program ini mampu melakukan segmentasi pada

setiap karakter yang diinput dan disimpan dalam sebuah file. Karakter yang diinputberupa piksel dan piksel ini akan diproses melalui beberapa tahap yaitu, tahap filterisasiKecepatan, filterisasi Percepatan kemudian dilakukan segmentasi berdasarkan grafikPercepatan. Karakter yang disegmentasi akan diklasifikasi dan dilakukan labeling ataupenamaan. Aplikasi ini mengambil huruf a sampai huruf e sebagai dasar labeling.Kemudian huruf yang diinput akan disegmen dan dibandingakan 15 dasar segmen yangada.

Page 67: Klasifikasi Segment Tulisan Tangan Dengan Matlab

67

BAB VPENUTUP

5. 1 SimpulanDari hasil percobaan di atas ternyata aplikasi ini mampu melakukan klasifikasi

dari karakter yang diinput, dimana data input yang berupa karakter difilterisasi olehproses kecepatan dan proses percepatan kemudian disegmentasi. Penulisan ini dibuatuntuk membantu melakukan pengenalan tulisan tangan dengan tahap hanya klasifikasidari karakter yang telah disegmentasi, yang kemudian dapat dikembangkan kembali.5. 2 Saran

Untuk mendapatkan analisa dari karakter tulisan tangan maka penulisan inidikembangkan kembali untuk penentuan karakter, sehingga memudahkan sejauh manakemapuan seorang anak dapat menulis.

LAMPIRANA. LISTING PROGRAM%Programme de lecture/affichage fichier lettre.dat et calcul/affichagevitesseclear;close all;load LETTRE_OASIS/lettre.dat;lettre=lettrea;%Loading databaseload data/lettrea.dat;load data/lettreb.dat;load data/lettrec.dat;load data/lettred.dat;load data/lettree.dat;ex1=lettrea;ex2=lettreb;ex3=lettrec;ex4=lettred;ex5=lettree;%%%Mengambil data dari lettremin_x=min(min(lettre(:,1))); % coordonnee x minimummin_y=min(min(lettre(:,2))); % coordonnee y minimumx=lettre(:,1)-min_x; % chgt originey=lettre(:,2)-min_y;figure(1);plot(x,y);%cetak matriks X&Y di figure 1%===================================================

% Calcul des vetesses:kecepatan%kecepatan_x=diff(x,1);kecepatan_y=diff(y,1);taille=length(kecepatan_x);for i=1:taille, kecepatan(i)=sqrt(kecepatan_x(i)^2 + kecepatan_y(i)^2);

Page 68: Klasifikasi Segment Tulisan Tangan Dengan Matlab

68

end;h=ones(1,15);kecepatan_filter=conv(kecepatan,h);figure(2);subplot(2,1,1);plot(kecepatan);subplot(2,1,2);plot(kecepatan_filter);%========================================================

% Calcul des accélérations:percepatan%percepatan=diff(kecepatan_filter,1);percepatan_filter=conv(percepatan,h);figure(3); %cetak percepatansubplot(2,1,1);plot(percepatan);subplot(2,1,2);plot(percepatan_filter);%======================================================

% Segmentation:%j=1;for i= 2:length(percepatan_filter)-1;

if (percepatan_filter(i-1)<0) && (percepatan_filter(i)>0) %modifications january 07 segmente(j)=i; j=j+1;

end;end;%segmente=segmente-30segmente=segmente-10; % modifications january 07nb_segments=length(segmente)+1; % modifications january 07%num_figure=4;%%

%Data Pembanding%%min_xex1=min(min(ex1(:,1))); %mengambil posisi Xmin_xex2=min(min(ex2(:,1)));min_xex3=min(min(ex3(:,1)));min_xex4=min(min(ex4(:,1)));min_xex5=min(min(ex5(:,1)));min_yex1=min(min(ex1(:,2))); %mengambil posisi Ymin_yex2=min(min(ex2(:,2)));min_yex3=min(min(ex3(:,2)));min_yex4=min(min(ex4(:,2)));min_yex5=min(min(ex5(:,2)));

xex1=ex1(:,1)-min_xex1; % merubah koordinatxex2=ex2(:,1)-min_xex2;xex3=ex3(:,1)-min_xex3;

Page 69: Klasifikasi Segment Tulisan Tangan Dengan Matlab

69

xex4=ex4(:,1)-min_xex4;xex5=ex5(:,1)-min_xex5;yex1=ex1(:,2)-min_yex1;yex2=ex2(:,2)-min_yex2;yex3=ex3(:,2)-min_yex3;yex4=ex4(:,2)-min_yex4;yex5=ex5(:,2)-min_yex5;

kecepatan_xex1=diff(xex1,1); %mencari diff Xkecepatan_xex2=diff(xex2,1);kecepatan_xex3=diff(xex3,1);kecepatan_xex4=diff(xex4,1);kecepatan_xex5=diff(xex5,1);kecepatan_yex1=diff(yex1,1); %mencari diff Ykecepatan_yex2=diff(yex2,1);kecepatan_yex3=diff(yex3,1);kecepatan_yex4=diff(yex4,1);kecepatan_yex5=diff(yex5,1);

%Mencari Kecepatantaille=length(kecepatan_xex1);for i=1:taille, kecepatanex1(i)=sqrt(kecepatan_xex1(i)^2 + kecepatan_yex1(i)^2);end;taille=length(kecepatan_xex2);for i=1:taille, kecepatanex2(i)=sqrt(kecepatan_xex2(i)^2 + kecepatan_yex2(i)^2);end;taille=length(kecepatan_xex3);for i=1:taille, kecepatanex3(i)=sqrt(kecepatan_xex3(i)^2 + kecepatan_yex3(i)^2);end;taille=length(kecepatan_xex4);for i=1:taille, kecepatanex4(i)=sqrt(kecepatan_xex4(i)^2 + kecepatan_yex4(i)^2);end;taille=length(kecepatan_xex5);for i=1:taille, kecepatanex5(i)=sqrt(kecepatan_xex5(i)^2 + kecepatan_yex5(i)^2);end;

%Filter kecepatankecepatan_filterex1=conv(kecepatanex1,h);kecepatan_filterex2=conv(kecepatanex2,h);kecepatan_filterex3=conv(kecepatanex3,h);kecepatan_filterex4=conv(kecepatanex4,h);kecepatan_filterex5=conv(kecepatanex5,h);

%Percepatanpercepatanex1=diff(kecepatan_filterex1,1);percepatanex2=diff(kecepatan_filterex2,1);percepatanex3=diff(kecepatan_filterex3,1);percepatanex4=diff(kecepatan_filterex4,1);percepatanex5=diff(kecepatan_filterex5,1);

%Filter Percepatan

Page 70: Klasifikasi Segment Tulisan Tangan Dengan Matlab

70

percepatan_filterex1=conv(percepatanex1,h);percepatan_filterex2=conv(percepatanex2,h);percepatan_filterex3=conv(percepatanex3,h);percepatan_filterex4=conv(percepatanex4,h);percepatan_filterex5=conv(percepatanex5,h);

%Memisahkan Segmenj=1;for i= 2:length(percepatan_filterex1)-1;

if (percepatan_filterex1(i-1)<0) && (percepatan_filterex1(i)>0) segmenteex1(j)=i; j=j+1;

end;end;j=1;for i= 2:length(percepatan_filterex2)-1;

if (percepatan_filterex2(i-1)<0) && (percepatan_filterex2(i)>0) segmenteex2(j)=i; j=j+1;

end;end;j=1;for i= 2:length(percepatan_filterex3)-1;

if (percepatan_filterex3(i-1)<0) && (percepatan_filterex3(i)>0) segmenteex3(j)=i; j=j+1;

end;end;j=1;for i= 2:length(percepatan_filterex4)-1;

if (percepatan_filterex4(i-1)<0) && (percepatan_filterex4(i)>0) segmenteex4(j)=i; j=j+1;

end;end;j=1;for i= 2:length(percepatan_filterex5)-1;

if (percepatan_filterex5(i-1)<0) && (percepatan_filterex5(i)>0) segmenteex5(j)=i; j=j+1;

end;end;

%memperhaluskan segmentsegmenteex1=segmenteex1-10;segmenteex2=segmenteex2-10;segmenteex3=segmenteex3-10;segmenteex4=segmenteex4-10;segmenteex5=segmenteex5-10;

%Menentukan banyaknya segmentnb_segmentsEx1=length(segmenteex1)+1;nb_segmentsEx2=length(segmenteex2)+1;nb_segmentsEx3=length(segmenteex3)+1;nb_segmentsEx4=length(segmenteex4)+1;

Page 71: Klasifikasi Segment Tulisan Tangan Dengan Matlab

71

nb_segmentsEx5=length(segmenteex5)+1;

%labeling%%%Pengambilan Nilaimax_l(1)=0;min_l(1)=0;max_lex1(1)=0;min_lex1(1)=0;max_lex2(1)=0;min_lex2(1)=0;max_lex3(1)=0;min_lex3(1)=0;max_lex4(1)=0;min_lex4(1)=0;max_lex5(1)=0;min_lex5(1)=0;

for i=1:nb_segments;if (i==1)

for j=1:segmente(i);if (percepatan_filter(j) > max_l(i))

max_l(i)=percepatan_filter(j);end;if (percepatan_filter(j)<min_l(i))

min_l(i)=percepatan_filter(j);end;if (percepatan_filter(j)>=0 && percepatan_filter(j+1)<0)

norm(i)=j;end;

panjang(i)=segmente(i); tinggi(i)=max_l(i)-min_l(i);

end;elseif (i==nb_segments)

max_l(i)=0; min_l(i)=0;

for j=segmente(i-1):length(percepatan_filter);if (percepatan_filter(j) > max_l(i))

max_l(i)=percepatan_filter(j);end;if (percepatan_filter(j)<min_l(i))

min_l(i)=percepatan_filter(j);end;if (percepatan_filter(j-1)>=0 && percepatan_filter(j)<0)

norm(i)=j-1;end;

panjang(i)=length(percepatan_filter)-segmente(i-1); tinggi(i)=max_l(i)-min_l(i);

end;else

max_l(i)=0; min_l(i)=0;

for j=segmente(i-1):segmente(i);

Page 72: Klasifikasi Segment Tulisan Tangan Dengan Matlab

72

if (percepatan_filter(j) > max_l(i)) max_l(i)=percepatan_filter(j);

end;if (percepatan_filter(j)<min_l(i))

min_l(i)=percepatan_filter(j);end;if (percepatan_filter(j)>=0 && percepatan_filter(j+1)<0)

norm(i)=j;end;

panjang(i)=segmente(i); tinggi(i)=max_l(i)-min_l(i);

end;end

end;

%Nilai X1for i=1:nb_segmentsEx1;

if (i==1)for j=1:segmenteex1(i);

if (percepatan_filterex1(j) > max_lex1(i)) max_lex1(i)=percepatan_filterex1(j);

end;if (percepatan_filterex1(j)<min_lex1(i))

min_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j)>=0 &&

percepatan_filterex1(j+1)<0) normex1(i)=j;

end; panjangex1(i)=segmenteex1(i); tinggiex1(i)=max_lex1(i)-min_lex1(i);

end;elseif (i==nb_segmentsEx1)

max_lex1(i)=0; min_lex1(i)=0;

for j=segmenteex1(i-1):length(percepatan_filterex1);if (percepatan_filterex1(j) > max_lex1(i))

max_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j)<min_lex1(i))

min_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j-1)>=0 &&

percepatan_filterex1(j)<0) normex1(i)=j-1;

end; panjangex1(i)=length(percepatan_filterex1)-segmenteex1(i-1); tinggiex1(i)=max_lex1(i)-min_lex1(i);

end;else

max_lex1(i)=0; min_lex1(i)=0;

for j=segmenteex1(i-1):segmenteex1(i);if (percepatan_filterex1(j) > max_lex1(i))

Page 73: Klasifikasi Segment Tulisan Tangan Dengan Matlab

73

max_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j)<min_lex1(i))

min_lex1(i)=percepatan_filterex1(j);end;if (percepatan_filterex1(j)>=0 &&

percepatan_filterex1(j+1)<0) normex1(i)=j;

end; panjangex1(i)=segmenteex1(i); tinggiex1(i)=max_lex1(i)-min_lex1(i);

end;end

end;

%Nilai X2for i=1:nb_segmentsEx2;

if (i==1)for j=1:segmenteex2(i);

if (percepatan_filterex2(j) > max_lex2(i)) max_lex2(i)=percepatan_filterex2(j);

end;if (percepatan_filterex2(j)<min_lex2(i))

min_lex2(i)=percepatan_filterex2(j);end;if (percepatan_filterex2(j)>=0 &&

percepatan_filterex2(j+1)<0) normex2(i)=j;

end; panjangex2(i)=segmenteex2(i); tinggiex2(i)=max_lex2(i)-min_lex2(i);

end;elseif (i==nb_segmentsEx2)

max_lex2(i)=0; min_lex2(i)=0;

for j=segmenteex2(i-1):length(percepatan_filterex2);if (percepatan_filterex2(j) > max_lex2(i))

max_lex2(i)=percepatan_filterex2(j);end;if (percepatan_filterex2(j)<min_lex2(i))

min_lex2(i)=percepatan_filterex2(j);end;if (percepatan_filterex2(j-1)>=0 &&

percepatan_filterex2(j)<0) normex2(i)=j-1;

end; panjangex2(i)=length(percepatan_filterex2)-segmenteex2(i-1); tinggiex2(i)=max_lex2(i)-min_lex2(i);

end;else

max_lex2(i)=0; min_lex2(i)=0;

for j=segmenteex2(i-1):segmenteex2(i);if (percepatan_filterex2(j) > max_lex2(i))

max_lex2(i)=percepatan_filterex2(j);end;

Page 74: Klasifikasi Segment Tulisan Tangan Dengan Matlab

74

if (percepatan_filterex2(j)<min_lex2(i)) min_lex2(i)=percepatan_filterex2(j);

end;if (percepatan_filterex2(j)>=0 &&

percepatan_filterex2(j+1)<0) normex2(i)=j;

end; panjangex2(i)=segmenteex2(i); tinggiex2(i)=max_lex2(i)-min_lex2(i);

end;end

end;

%Nilai X3for i=1:nb_segmentsEx3;

if (i==1)for j=1:segmenteex3(i);

if (percepatan_filterex3(j) > max_lex3(i)) max_lex3(i)=percepatan_filterex3(j);

end;if (percepatan_filterex3(j)<min_lex3(i))

min_lex3(i)=percepatan_filterex3(j);end;if (percepatan_filterex3(j)>=0 &&

percepatan_filterex3(j+1)<0) normex3(i)=j;

end; panjangex3(i)=segmenteex3(i); tinggiex3(i)=max_lex3(i)-min_lex3(i);

end;elseif (i==nb_segmentsEx3)

max_lex3(i)=0; min_lex3(i)=0;

for j=segmenteex3(i-1):length(percepatan_filterex3);if (percepatan_filterex3(j) > max_lex3(i))

max_lex3(i)=percepatan_filterex3(j);end;if (percepatan_filterex3(j)<min_lex3(i))

min_lex3(i)=percepatan_filterex3(j);end;if (percepatan_filterex3(j-1)>=0 &&

percepatan_filterex3(j)<0) normex3(i)=j-1;

end; panjangex3(i)=length(percepatan_filterex3)-segmenteex3(i-1); tinggiex3(i)=max_lex3(i)-min_lex3(i);

end;else

max_lex3(i)=0; min_lex3(i)=0;

for j=segmenteex3(i-1):segmenteex3(i);if (percepatan_filterex3(j) > max_lex3(i))

max_lex3(i)=percepatan_filterex3(j);end;if (percepatan_filterex3(j)<min_lex3(i))

min_lex3(i)=percepatan_filterex3(j);

Page 75: Klasifikasi Segment Tulisan Tangan Dengan Matlab

75

end;if (percepatan_filterex3(j)>=0 &&

percepatan_filterex3(j+1)<0) normex3(i)=j;

end; panjangex3(i)=segmenteex3(i); tinggiex3(i)=max_lex3(i)-min_lex3(i);

end;end

end;

%Nilai X4for i=1:nb_segmentsEx4;

if (i==1)for j=1:segmenteex4(i);

if (percepatan_filterex4(j) > max_lex4(i)) max_lex4(i)=percepatan_filterex4(j);

end;if (percepatan_filterex4(j)<min_lex4(i))

min_lex4(i)=percepatan_filterex4(j);end;if (percepatan_filterex4(j)>=0 &&

percepatan_filterex4(j+1)<0) normex4(i)=j;

end; panjangex4(i)=segmenteex4(i); tinggiex4(i)=max_lex4(i)-min_lex4(i);

end;elseif (i==nb_segmentsEx4)

max_lex4(i)=0; min_lex4(i)=0;

for j=segmenteex4(i-1):length(percepatan_filterex4);if (percepatan_filterex4(j) > max_lex4(i))

max_lex4(i)=percepatan_filterex4(j);end;if (percepatan_filterex4(j)<min_lex4(i))

min_lex4(i)=percepatan_filterex4(j);end;if (percepatan_filterex4(j-1)>=0 &&

percepatan_filterex4(j)<0) normex4(i)=j-1;

end; panjangex4(i)=length(percepatan_filterex4)-segmenteex4(i-1); tinggiex4(i)=max_lex4(i)-min_lex4(i);

end;else

max_lex4(i)=0; min_lex4(i)=0;

for j=segmenteex4(i-1):segmenteex4(i);if (percepatan_filterex4(j) > max_lex4(i))

max_lex4(i)=percepatan_filterex4(j);end;if (percepatan_filterex4(j)<min_lex4(i))

min_lex4(i)=percepatan_filterex4(j);end;

Page 76: Klasifikasi Segment Tulisan Tangan Dengan Matlab

76

if (percepatan_filterex4(j)>=0 &&percepatan_filterex4(j+1)<0) normex4(i)=j;

end; panjangex4(i)=segmenteex4(i); tinggiex4(i)=max_lex4(i)-min_lex4(i);

end;end

end;

%Nilai X5for i=1:nb_segmentsEx5;

if (i==1)for j=1:segmenteex5(i);

if (percepatan_filterex5(j) > max_lex5(i)) max_lex5(i)=percepatan_filterex5(j);

end;if (percepatan_filterex5(j)<min_lex5(i))

min_lex5(i)=percepatan_filterex5(j);end;if (percepatan_filterex5(j)>=0 &&

percepatan_filterex5(j+1)<0) normex5(i)=j;

end; panjangex5(i)=segmenteex5(i); tinggiex5(i)=max_lex5(i)-min_lex5(i);

end;elseif (i==nb_segmentsEx5)

max_lex5(i)=0; min_lex5(i)=0;

for j=segmenteex5(i-1):length(percepatan_filterex5);if (percepatan_filterex5(j) > max_lex5(i))

max_lex5(i)=percepatan_filterex5(j);end;if (percepatan_filterex5(j)<min_lex5(i))

min_lex5(i)=percepatan_filterex5(j);end;if (percepatan_filterex5(j-1)>=0 &&

percepatan_filterex5(j)<0) normex5(i)=j-1;

end; panjangex5(i)=length(percepatan_filterex5)-segmenteex5(i-1); tinggiex5(i)=max_lex5(i)-min_lex5(i);

end;else

max_lex5(i)=0; min_lex5(i)=0;

for j=segmenteex5(i-1):segmenteex5(i);if (percepatan_filterex5(j) > max_lex5(i))

max_lex5(i)=percepatan_filterex5(j);end;if (percepatan_filterex5(j)<min_lex5(i))

min_lex5(i)=percepatan_filterex5(j);end;if (percepatan_filterex5(j)>=0 &&

percepatan_filterex5(j+1)<0)

Page 77: Klasifikasi Segment Tulisan Tangan Dengan Matlab

77

normex5(i)=j;end;

panjangex5(i)=segmenteex5(i); tinggiex5(i)=max_lex5(i)-min_l(i);

end;end

end;

%%%Perbandingantemp=0;lbl_segment(1)=0;k=1;jml_segment=nb_segmentsEx1+nb_segmentsEx2+nb_segmentsEx3+nb_segmentsEx4+nb_segmentsEx5;for i=1:nb_segments lbl=1;

for j=1:jml_segmentif ((j>0)&&(j<=nb_segmentsEx1))%huruf a

n1=max_l(i)/max_lex1(j); n2=min_l(i)/min_lex1(j); n3=norm(i)/normex1(j); n4=panjang(i)/panjangex1(j); n5=tinggi(i)/tinggiex1(j);

if (((n1>0.5) && (n1<1.5)) && ((n2>0.5) && (n2<1.5)) &&((n3>0.5) && (n3<1.5)) && ((n4>0.5) && (n4<1.5)) && ((n5>0.5) &&(n5<1.5))) lbl_segment(i)=lbl;

break; %Berpindah ke iend;

elseif ((j>nb_segmentsEx1)&&(j<=nb_segmentsEx1+nb_segmentsEx2))if (j==nb_segmentsEx1+1)

k=1; %huruf bend;

n1=max_l(i)/max_lex2(k); n2=min_l(i)/min_lex2(k); n3=norm(i)/normex2(k); n4=panjang(i)/panjangex2(k); n5=tinggi(i)/tinggiex2(k);

if (((n1>0.5) && (n1<1.5)) && ((n2>0.5) && (n2<1.5)) &&((n3>0.5) && (n3<1.5)) && ((n4>0.5) && (n4<1.5)) && ((n5>0.5) &&(n5<1.5))) lbl_segment(i)=lbl;

break; %Berpindah ke iend;

k=k+1;elseif

((j>nb_segmentsEx1+nb_segmentsEx2)&&(j<=nb_segmentsEx1+nb_segmentsEx2+nb_segmentsEx3))

if (j==nb_segmentsEx1+nb_segmentsEx2+1) k=1; %huruf c

end; n1=max_l(i)/max_lex3(k); n2=min_l(i)/min_lex3(k); n3=norm(i)/normex3(k); n4=panjang(i)/panjangex3(k);

Page 78: Klasifikasi Segment Tulisan Tangan Dengan Matlab

78

n5=tinggi(i)/tinggiex3(k);if (((n1>0.5) && (n1<1.5)) && ((n2>0.5) && (n2<1.5)) &&

((n3>0.5) && (n3<1.5)) && ((n4>0.5) && (n4<1.5)) && ((n5>0.5) &&(n5<1.5))) lbl_segment(i)=lbl;

break; %Berpindah ke iend;

k=k+1;elseif

((j>nb_segmentsEx1+nb_segmentsEx2+nb_segmentsEx3)&&(j<=nb_segmentsEx1+nb_segmentsEx2+nb_segmentsEx3+nb_segmentsEx4))

if (j==nb_segmentsEx1+nb_segmentsEx2+nb_segmentsEx3+1) k=1;%huruf d

end; n1=max_l(i)/max_lex4(k); n2=min_l(i)/min_lex4(k); n3=norm(i)/normex4(k); n4=panjang(i)/panjangex4(k); n5=tinggi(i)/tinggiex4(k);

if (((n1>0.5) && (n1<1.5)) && ((n2>0.5) && (n2<1.5)) &&((n3>0.5) && (n3<1.5)) && ((n4>0.5) && (n4<1.5)) && ((n5>0.5) &&(n5<1.5))) lbl_segment(i)=lbl;

break; %Berpindah ke iend;

k=k+1;elseif

(j>nb_segmentsEx1+nb_segmentsEx2+nb_segmentsEx3+nb_segmentsEx4)if

(j==nb_segmentsEx1+nb_segmentsEx2+nb_segmentsEx3+nb_segmentsEx4+1) k=1;%huruf e

end; n1=max_l(i)/max_lex5(k); n2=min_l(i)/min_lex5(k); n3=norm(i)/normex5(k); n4=panjang(i)/panjangex5(k); n5=tinggi(i)/tinggiex5(k);

if (((n1>0.5) && (n1<1.5)) && ((n2>0.5) && (n2<1.5)) &&((n3>0.5) && (n3<1.5)) && ((n4>0.5) && (n4<1.5)) && ((n5>0.5) &&(n5<1.5))) lbl_segment(i)=lbl;

break; %Berpindah ke ielseif (j==jml_segment)

lbl_segment(i)=lbl+temp; temp=temp+1;

end; k=k+1;

end; lbl=lbl+1;

end;end;

%=============================================================%

Page 79: Klasifikasi Segment Tulisan Tangan Dengan Matlab

79

%%Menampilkan segmentasifigure(4);nama='Segment =';x1=x(1:segmente(1)); % first segmenty1=y(1:segmente(1));subplot(nb_segments,1,1);plot(x1,y1);title(strcat(nama,int2str(lbl_segment(1))));%num_figure=num_figure+1;clear x1;clear y1;for j=2:nb_segments-1 %modifications january 07 x1=x(segmente(j-1):segmente(j)); y1=y(segmente(j-1):segmente(j)); subplot(nb_segments,1,j); figure(4); plot(x1,y1); title(strcat(nama,int2str(lbl_segment(j)))); clear x1; clear y1;end;if (nb_segments==2) %jk segment cm ada 2 j=1;end;x1=x(segmente(j):length(x)); % last segment (modifications january 07)y1=y(segmente(j):length(y));subplot(nb_segments,1,nb_segments);plot(x1,y1);title(strcat(nama,int2str(lbl_segment(nb_segments))));

B. OUTPUT

Page 80: Klasifikasi Segment Tulisan Tangan Dengan Matlab

80

Page 81: Klasifikasi Segment Tulisan Tangan Dengan Matlab

81

Page 82: Klasifikasi Segment Tulisan Tangan Dengan Matlab

82

Page 83: Klasifikasi Segment Tulisan Tangan Dengan Matlab

83

Page 84: Klasifikasi Segment Tulisan Tangan Dengan Matlab

84

Page 85: Klasifikasi Segment Tulisan Tangan Dengan Matlab

85

Page 86: Klasifikasi Segment Tulisan Tangan Dengan Matlab

86