IDENTIFIKASI TUMBUHAN KACANG-KACANGAN
(PAPILIONACEAE) MENGGUNAKAN SISTEM PAKAR
DENGAN PENDEKATAN FORWARD CHAINING
TAUFIQ 104091002887
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2010 M / 1431 H
viii
HALAMAN PERSEMBAHAN
Penulis dapat menyelesaikan skripsi ini tidak lepas dari doa dan dukungan
dari banyak pihak. Maka perkenankanlah penulis untuk mengucapkan terima
kasih yang sebesar-besarnya kepada :
1. Ibunda Siti Rahmah dan Ayahanda Masrikan, yang tidak pernah berhenti
mendoakan, dan mendukung penulis dengan penuh kasih sayang. Terima
kasih atas semua pengorbanan, usaha dan jerih payah Bunda dan Ayah untuk
selalu membuat penulis merasa bahagia.
2. Kakakku, Nurul Huda Ahmad dan Adikku, Ani Musa Rofah, yang selalu
penulis banggakan dan sayangi sepenuh hati
3. K.H. Ali Mustofa Ya’kub yang telah membimbing dan memberi pencerahan
kepada penulis di semua bidang.
4. Intan Khairiyah, atas semua bentuk dukungan, motivasi dan kasih sayang
yang selalu menemani hari-hari penulis.
5. Teman-teman TI C 2004 : Alvin, Wahyuni, Syukrina, Hani, Endah, Eni, Desi,
Ziah, Sarah, Arie Sur, Rizal, Rahmat, Kautsarina, Budi, Asep, Malik, Sidiq,
Fajar, Dwi, Rahmat Hidayat, Agil dan Egi. Terima kasih atas keceriaan,
dukungan dan motivasi yang selalu kalian tunjukkan, terutama pada saat-saat
sulit yang penulis alami, sehingga menumbuhkan semangat baru untuk
penulis
6. Teman-teman Darus-Sunnah khususnya angkatan 2008.
7. Teman-teman TI dan SI seluruh angkatan.
ix
Semoga Allah selalu melimpahkan rahmat dan karunia-Nya kepada kalian
semua dan melindungi kalian di setiap langkah.
Jakarta, Nopember 2010 Penulis
iv
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR –
BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN
SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI
ATAU LEMBAGA MANAPUN.
Jakarta, Nopember 2010
Taufiq NIM. 104091002887
v
ABSTRAK TAUFIQ. Identifikasi Tumbuhan Kacang-Kacangan (Papilionaceae) Menggunakan Sistem Pakar dengan Pendekatan Forward Chaining. Di bawah bimbing PRIYANTI dan VICTOR AMRIZAL. Klasifikasi adalah kegiatan taksonomi yang mengelompokan makhluk hidup ke dalam sistem klasifikasi yang berlaku internasional. Pengklasifikasian perlu dilakukan karena keanekaragamannya makhluk hidup yang ada di bumi dengan tujuan agar mudah mengelompokan dan mengidentifikasinya berdasarkan persamaan ciri-ciri yang dimiliki.Indonesia adalah Negara yang kaya akan keaneragaman hayati terutama tumbuhan ( +28 ribu jenis). Papilionaceae merupakan tanaman penghasil komoditi yang berharga, bahan pangan dengan nilai gizi yang tinggi karena kandungannya akan protein, lemak, dan vitamin-vitamin dalam bijinya. Polong yang muda, demikian pula daun-daun muda jenis-jenis tertentu banyak yang dimakan sebagai sayuran. Namun masih sedikit sekali yang sudah tergali potensinya dan masih banyak penduduk yang belum mengetahui nama-nama tumbuhan tersebut. Padahal tanaman tersebut ditanam di pekarangan ataupun di ladang penduduk. Oleh karena itu, diperlukan aplikasi untuk pengidentifikasian tumbuhan untuk membantu orang dalam mengenali dan mempelajari tentang tumbuhan khususnya Papilionaceae. Identifikasi ini dapat dilakukan dengan optimal menggunakan sistem pakar dengan pendekatan forward chaining. Sistem pakar adalah bentuk sistem yang mengadopsi kemampuan manusia sehingga komputer mempunyai kemampuan layaknya seorang pakar. forward chaining adalah penalaran dari fakta menuju konklusi yang dihasilkan dari fakta. Pada tugas akhir ini akan dirancang sebuah aplikasi identifikasi tumbuhan kacang-kacangan (Papilionaceae) menggunakan sistem pakar dengan pendekatan forward chaining. Aplikasi ini dibuat dengan menggunakan bahasa pemograman MATLAB 2009 dan metode pengembangan sistemnya adalah RAD (Rapid Aplication Development) karena aplikasinya yang sederhana dan tidak memerlukan waktu yang lama dalam pengembangannya serta RAD akan bekerja dengan baik bila diterapkan pada aplikasi berskala kecil. Hasil yang diperoleh adalah dengan menggunakan metode forward chaining tumbuhan Paplilionaceae dapat diidentifikasi dengan baik. Kata kunci: sistem pakar, klasifikasi, Papilionanceae, forward chaining, RAD,
Matlab 2009.
vi
KATA PENGANTAR
Assalamualaikum wr.wb.
Syukur yang amat dalam penulis panjatkan kepada Allah SWT yang tiada
hentinya memberikan nikmat kepada penulis khususnya keimanan, waktu dan
kesehatan. Shalawat serta salam semoga senantiasa tercurah kepada Rasulullah
SAW yang sangat menyayangi umatnya dan telah membawa kita kepada zaman
yang terang benderang.
Skripsi yang berjudul IDENTIFIKASI TUMBUHAN KACANG-
KACANGAN (PAPILIONACEAE) MENGGUNKAN SISTEM PAKAR
DENGAN PENDEKATAN FORWARD CHAINING merupakan salah satu
tugas wajib mahasiswa sebagai persyaratan untuk mengambil gelar S1 pada
Program Studi Teknik Informatika Universitas Islam Negeri Syarif Hidayatullah
Jakarta.
Penulis mendapat bimbingan dan bantuan dari berbagai pihak dalam
penyusunan skripsi ini. Oleh karena itu, perkenankanlah pada kesempatan ini
penulis mengucapkan terima kasih kepada :
1. Bapak DR. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas Sains dan
Teknologi.
2. Bapak Yusuf Durrachman, M.IT., selaku Ketua Program Studi Teknik
Informatika, Bapak Rivo Agusta, Hendra, Syamsul selaku Administrasi
Akademik, dan seluruh pihak akademik, baik tingkat program studi maupun
tingkat fakultas.
vii
3. Ibu Priyanti, M.Si dan Bapak Victor Amrizal, M.Kom, selaku dosen
pembimbing skripsi, yang secara kooperatif telah memberikan bimbingan,
bantuan dan dukungan, baik moral maupun secara teknis. Terima kasih
banyak atas kesediaan Ibu dan Bapak yang telah meluangkan waktu, tenaga
dan pikirannya untuk membimbing penulis dalam penyusunan skripsi ini.
4. Seluruh dosen yang telah membagikan ilmunya kepada penulis dengan sabar
dan ikhlas.
Pada kesempatan ini pula, penulis ingin memohon maaf yang sebesar-
besarnya kepada semua pihak apabila sewaktu mengerjakan skripsi ini terdapat
hal-hal yang kurang berkenan.
Penulis menyadari bahwa masih banyak kekurangan dari laporan skripsi
ini, baik dari materi maupun teknik penyajiannya, mengingat minimnya
pengetahuan dan pengalaman penulis. Semoga laporan skripsi ini dapat memenuhi
syarat dan bermanfaat bagi siapa saja yang membacanya.
Wassalamualaikum wr.wb.
Jakarta, Nopember 2010
Penulis
x
DAFTAR ISI
Halaman Judul................................................................................................
Halaman Persetujuan Pembimbing.................................................................
Halaman Pengesahan Ujian............................................................................
Halaman Pernyataan.......................................................................................
ABSTRAK......................................................................................................
KATA PENGANTAR....................................................................................
HALAMAN PERSEMBAHAN.....................................................................
DAFTAR ISI...................................................................................................
DAFTAR GAMBAR......................................................................................
DAFTAR TABEL...........................................................................................
DAFTAR LAMPIRAN...................................................................................
DAFTAR ISTILAH........................................................................................
BAB I PENDAHULUAN
1.1 Latar Belakang..............................................................................
1.2 Perumusan Masalah.......................................................................
1.3 Pembatasan Masalah.....................................................................
1.4 Tujuan Penelitian...........................................................................
1.5 Manfaat Penelitian.........................................................................
1.6 Metodologi Penelitian...................................................................
1.6.1 Metode Pengumpulan Data …………………………...
1.6.2 Metode Pengembangan Sistem ……………………....
1.7 Sistematika Penulisan....................................................................
i
ii
iii
iv
v
vi
viii
x
xiv
xvi
xvi
xvii
1
2
2
3
3
4
4
4
5
xi
BAB II LANDASAN TEORI
2.1 Kecerdasan Buatan.......................................................................
2.1.1 Definisi Kecerdasan Buatan............................................
2.1.2 Sejarah Kecerdasan Buatan.............................................
2.2 Sistem Pakar ................................................................................
2.2.1 Keuntungan Sistem Pakar .............................................
2.2.2 Kelemahan Sistem Pakar...............................................
2.2.3 Konsep Dasar Sistem Pakar ..........................................
2.2.4 Bentuk Sistem Pakar .....................................................
2.2.5 Struktur Sistem Pakar ...................................................
2.2.6 Forward Chaining .........................................................
2.2.7 Backward Chaining ......................................................
2.3 Computer Vision..........................................................................
2.4 Digital Image Processing............................................................
2.4.1 Pengertian Citra...............................................................
2.4.2 Image Processing............................................................
2.4.3 Pendeteksian Tepi (Edge Detectioan).............................
2.5 Klasifikasi tumbuhan…………………………………………...
2.6 MATLAB (Matrix Laboratory)...................................................
2.6.1 Sekilas Tentang Matlab..................................................
2.6.2 Cara Bekerja Dengan Matlab.........................................
2.6.3 Perintah Kontrol……………………………………….
2.6.3.1 Struktur Kendali………………….……..……
7
7
8
9
10
10
11
11
12
15
16
16
17
17
19
21
25
28
28
30
30
30
xii
2.6.3.2 Struktur Perulangan…………………….……
2.6.4 Membentuk Fungsi…..……...………….….………...
2.6.5 GUIDE………………………………….….………….
2.6.5.1 Memulai GUIDE………………..….………...
2.6.5.2 Komponen GUIDE………...……………..….
2.7 RGB ………………………………………………...………….
2.8 JPEG …………………………………………………………...
BAB III METODOLOGI PENELITIAN
3.1 Studi Pustaka................................................................................
3.2 Observasi Lapangan.....................................................................
3.3 Model-Model Metode Pengembangan Sistem ...........................
3.4 Perbedaaan Metode Pengembangan Sistem.................................
3.5 Pemilihan Metode ……………………………………………...
3.5.1 Teknik Pengumpulan Data...............................................
3.5.2 Metode Pengembangan Sistem........................................
3.5.2.1 Fase Menentukan Syarat-Syarat.....................
3.5.2.2 Fase Perancangan............................................
3.5.2.3 Fase Konstruksi...............................................
3.5.2.4 Fase Pelaksanaan ...........................................
BAB IV HASIL DAN PEMBAHASAN
4.1 Fase Menentukan Tujuan dan Syarat-syarat..................................
4.1.1 Mendefinisikan Masalah..................................................
4.1.2 Analisa Kebutuhan Masalah............................................
32
32
34
34 36 40 40
42
43
43
43
45
45
46
47
48
48
48
50
50
50
xiii
4.1.3 Tujuan Informasi………………………………………..
4.1.4 Syarat-syarat Informasi…………………………………
4.2 Fase Perancangan...........................................................................
4.2.1 Perancangan Antar Muka.................................................
4.2.2 Form Pembuka.................................................................
4.2.3 Form Utama.....................................................................
4.3 Fase Konstruksi..............................................................................
4.3.1 Instalasi Program...........................................................
4.3.2 Menjalankan Software Matlab.......................................
4.3.3 Mengatur Tata Letak Komponen GUI...........................
4.3.4 Memprogram Komponen GUI.......................................
4.3.5 Menjalankan Program....................................................
4.4 Fase Pelaksanaan............................................................................
4.4.1 Spesifikasi Minimum Kebutuhan Aplikasi....................
4.4.2 Fitur dalam Aplikasi…...................................................
4.4.2 Proses Pengujian Aplikasi.............................................
4.4.3 Hasil Penelitian.............................................................. BAB V PENUTUP
5.1 Kesimpulan.....................................................................................
5.2 Saran...............................................................................................
DAFTAR PUSTAKA .................................................................................
Lampiran A ....................................................................................................
Lampiran B ....................................................................................................
52
52
53
58
58
60
61
61
62
63
65
67
67
68
68
70
71
73
73
74
76
77
xiv
xv
xiv
DAFTAR GAMBAR
Gambar 2.1 Struktur Sistem Pakar. …………………………………….
Gambar 2.2 Proses Forward Chaining……….…………….…………..
Gambar 2.3 Proses Backward Chaining……….……………………….
Gambar 24 Kernel Operator Prewitt…………………………………...
Gambar 2.5 Memulai GUIDE…………………………………………..
Gambar 2.6 GUIDE Quick Start………………………………………..
Gambar 2.5 Menu Utama GUIDE………………………………………
Gambar 2.6 Komponen UIControl……………………………………..
Gambar 2.7 Color Values .….…………………………………..………
Gambar 3.1 Skema Pengembangan Sistem RAD……………….………
Gambar 4.1 Citra Grayscale …………………………………………...
Gambar 4.2 Citra Black & White ……………………………………….
Gambar 4.3 Citra Hasil Operator Sobel ………………………………...
Gambar 4.4 Alur Kerja Identifikasi Tumbuhan Papilionaceae ………..
Gambar 4.5 Perancangan Form Pembuka………………………………
Gambar 4.6 Perancangan Form Utama………………………………….
Gambar 4.7 Menjalankan Software Matlab…..…………………………
Gambar 4.8 Tampilan Awal Software Matlab…………………………..
Gambar 4.9 Membuat GUI Baru………………………………………..
Gambar 4.10 Halaman Kerja GUI…………….…………….……………
13
15
16
23
35
35
36
37
40
47
53
54
54
57
59
60
62
62
63
64
xv
Gambar 4.11 Contoh Pengaturan Tata Letak Komponen pada GUI
Matlab……………………………………………………...
Gambar 4.12 Membuka M-File dari Figure GUI yang Telah
Dirancang…………………………………………………
Gambar 4.13 Tampilan M-File dari Figure GUI……………….…….…
Gambar 4.14 Menyisipkan Kode Program pada Fungsi Callback….......
Menjalankan Kode Program M-File yang Telah
Ditulis…..………….……………………………………..
Gambar 4.16 Tampilan Menu Pembuka..........…………… ………...…
Gambar 4.17 Tampilan Menu Utama……….………………………….
Gambar 4.18 Tampilan Membuka Gambar…..…………………….…..
Gambar 4.19 Tampilan Processing………………………………….….
64
65
66
66
67
69
69
70
70
Gambar 4.15
xvii
DAFTAR ISTILAH
Computer vision : Proses otomatis yang mengintegrasikan sejumlah
besar proses untuk persepsi visual
Deteksi tepi (Edge
detection)
: Operasi yang dijalankan untuk mendeteksi garis
tepi (edges) yang membatasi dua wilayah citra
homogen yang memiliki tingkat kecerahan yang
berbeda
Forward Chaining : Penalaran dari fakta menuju konklusi
Grayscale : Citra wajah abu-abu
Klasifikasi : Menyederhanakan obyek-obyek yang
beranekaragam tersebut dengan cara mencari
persamaan-persamaan tertentu yang dimiliki oleh
obyek-obyek tersebut
Matriks :
Array dua dimensi yang terdiri dari baris dan
kolom
RAD : Singkatan dari Rapid Application Development,
merupakan salah satu metode pengembangan
sistem yang diperkenalkan James Martin pada
tahun 1991
RGB : Singkatan dari RED (merah), GREEN (hijau), dan
BLUE (biru)
xviii
Tepi (edge) : Perubahan nilai intensitas derajat keabuan yang
mendadak (besar) dalam jarak yang singkat
Vektor :
Matriks yang hanya terdiri dari satu baris atau satu
kolom
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Biologi adalah suatu bidang yang mempelajari seluk beluk tentang
kehidupan dan unsur-unsur yang menopang berlangsungnya kehidupan itu sendiri.
Taksonomi adalah salah satu cabang ilmu Biologi yang mempelajari klasifikasi
dan tata nama pada makhluk hidup (Campbell, 2000). Pengklasifikasian perlu
dilakukan karena keanekaragamannya makhluk hidup yang ada di bumi
beranekaragam sehingga perlu dikelompokan dan mengidentifikasinya
berdasarkan persamaan ciri-ciri yang dimiliki (Pratiwi dkk, 2006)
Kegunaan adanya pengelompokan atau klasifikasi dari makhluk hidup ini
berperan penting untuk mengetahui peranan dari masing-masing jenis. Sejak
zaman Aristoteles hingga pertengahan abad ke-20, para pakar Biologi membagi
makhluk hidup menjadi dua kingdom, yaitu Plantae (tumbuhan) dan Animalia
(hewan) (Pratiwi dkk, 2006).
Seiring dengan berkembangnya zaman dan teknologi maka
pengklasifikasian makhluk hidup dibagi menjadi lima kingdom yaitu : protesta,
monera, animalia, plantae dan fungi (Campbell, 2000). Tata nama adalah cara
pemberian nama ilmiah pada makhluk hidup dengan mengacu pada aturan-atuaran
penamaan ilmiah yang telah ditetapkan. Klasifikasi adalah kegiatan taksonomi
yang mengelompokan makhluk hidup ke dalam satu sistem klasifikasi yang
berlaku internasional.
2
Indonesia adalah negara yang kaya akan keaneragaman hayati terutama
tumbuhan (+28 ribu jenis). Papilionaceae merupakan tanaman penghasil komoditi
yang berharga sebagai bahan pangan dengan nilai gizi yang tinggi karena
kandungannya akan protein, lemak, dan vitamin-vitamin dalam bijinya. Polong
yang muda, demikian pula daun-daun muda jenis-jenis tertentu banyak yang
dimakan sebagai sayuran. Namun masih sedikit sekali yang sudah tergali
potensinya dan masih banyak penduduk yang belum mengetahui nama-nama
tumbuhan tersebut. Padahal tanaman dari suku Papilionaceae ini sering ditanam
di pekarangan atau di ladang para penduduk. Oleh karena itu, diperlukan aplikasi
untuk pengidentifikasian tumbuhan yang dapat membantu orang dalam mengenali
dan mempelajari tentang tumbuhan khususnya Papilionaceae.
1.2 Perumusan Masalah
Dengan didasari oleh latar belakang tersebut, maka dibuat perumusan
masalah sebagai berikut :
1. Bagaimana mendapatkan sebuah informasi pengklasifikasian tumbuhan
Papilionanceae dengan menggunakan sistem pakar dengan metode
forward chaining dan dibantu dengan software Matlab 2009.
2. Bagaimana image daun dapat dijadikan inputan dalam sistem pakar
1.3 Pembatasan Masalah
Pembatasan masalah pada penelitian ini sebagai berikut :
1) Input adalah gambar daun asli yang di scan dengan format JPEG.
3
2) Input image daun hanya yang penulis temukan di lapangan.
3) Pengukuran daun hanya pada aspek rasio, form faktor, pucuk daun dan
diagonal daun.
4) Daun yang digunakan adalah daun dewasa dan tidak boleh cacat
5) Pengamatan yang dilakukan dalam pengklasifikasian ini hanya terbatas
pada ciri fisik daun Papilionaceae.
6) Ukuran daun adalah 3cm x 3cm
7) Posisi pucuk daun berada di tengah atas dan pangkal daun berada di
tengah bawah.
8) Outputnya adalah nama tumbuhan.
9) Update data dilakukan secara manual.
10) Aplikasi dibuat dengan menggunakan MATLAB 2009
11) Aplikasi yang dibuat hanya dapat dijalankan dengan komputer yang
memiliki platform windows.
12) Tumbuhan yang disertakan dalam Aplikasi hanya contoh dari
tumbuhan kacang-kacangan (Papilionaceae) dan tidak semua daftar
tumbuhan kacang-kacangan (Papilionaceae) disertakan dalam aplikasi.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk mengkasifikasikan tumbuhan
Papilionaceae dengan daun sebagai objeknya dan komputer sebagai medianya.
1.5 Manfaat
Manfaat dari penulisan penelitian ini antara lain :
4
1) Memahami pengklasifikasian tumbuhan Papilionaceae.
2) Memahami penerapan image processing pada pengklasifikasian
tumbuhan Papilionaceae melalui daun sebagai objeknya.
3) Sebagai contoh dari aplikasi pengklasifikasian tumbuhan untuk dapat
dilakukan pengembangan pada penelitian selanjutnya.
1.6 Metodologi Penelitian
1.6.1 Metode Pengumpulan Data
1. Metode studi pustaka merupakan pengumpulan data dan informasi dengan
cara membaca buku-buku referensi, e-book dan website yang berhubungan
dengan penelitian ini
2. Metode observasi digunakan penulis dengan mengambil daun
Papilionaceae secara langsung, mengamati dan men-scannya
1.6.2 Metode Pengembangan Sistem
Metode pengembangan sistem yang penulis gunakan adalah metode RAD
(Rapid Application Development) yang dikembangkan oleh James Martin.
Menurut Kendall & Kendall (2002), tahap-tahap metode RAD meliputi :
1. Fase menentukan syarat-syarat, yaitu fase yang dilakukan untuk
menentukan tujuan dan syarat-syarat informasi.
2. Fase Perancangan, yaitu fase yang dilakukan untuk perancangan proses-
proses yang akan terjadi dalam sistem dan perancangan antar muka.
5
3. Fase Konstruksi, yaitu fase pengkodean terhadap rancangan-rancangan
yang telah didefinisikan.
4. Fase Pelaksanaan, yaitu fase pengujian terhadap sistem.
1.7 Sistematika Penulisan
Sistematika penulisan terbagi dalam lima bab, yang secara singkat akan
diuraikan sebagai berikut :
BAB I PENDAHULUAN
Dalam bab ini terdiri dari tujuh sub bab yaitu : Latar Belakang,
Perumusan Masalah, Batasan Masalah, Tujuan, Manfaat,
Metodologi Penelitian dan Sistematika Penulisan.
BAB II LANDASAN TEORI
Bab ini berisi teori-teori yang diperlukan untuk menunjang proses
penulisan dalam pengenalan pengklasifikasian tumbuhan
Papilionaceae dan sejumlah materi penunjang yang akan
digunakan dalam proses pengenalan tumbuhan Papilionaceae.
BAB III METODOLOGI PENELITIAN
Bab ini menguraikan metode penelitian yang digunakan penulis,
baik itu metode pengumpulan data maupun metode pengembangan
sistem.
6
BAB IV PEMBAHASAN
Pada bab ini menjelaskan program dan implementasinya yang
menggunakan beberapa tahap dari metode pengembangan sistem
yang dipilih.
BAB V PENUTUP
Bab ini merupakan penutup yang berisi kesimpulan berkenaan
dengan hasil pembahasan masalah yang diperoleh dari penyusunan
tugas akhir ini serta beberapa saran untuk pengembangan lebih
lanjut.
7
BAB II
LANDASAN TEORI
2.1 Kecerdasan Buatan
2.1.1 Definisi Kecerdasan Buatan
Kecerdasan buatan merupakan salah satu bagian ilmu komputer yang
membuat agar komputer dapat melakukan pekerjaan seperti dan sebaik yang
dilakukan manusia. Pada awal diciptakannya, komputer hanya difungsikan
sebagai alat hitung saja. Namun seiring dengan perkembangan zaman, peran
komputer semakin mendominasi kehidupan manusia. Komputer tidak hanya
digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan untuk dapat
diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh
manusia (Kusumadewi, 2003).
Komputer dapat bertindak seperti dan sebaik manusia, jika diberi bekal
pengetahuan dan mempunyai kemampuan untuk menalar. Kecerdasan buatan
(artificial intelligent) memberikan beberapa metode atau cara untuk membekali
komputer dengan kedua komponen tersebut agar komputer dapat menjadi mesin
yang pintar (Kusumadewi, 2003).
Menurut Buchanan dan Shortliffe (1985) menyatakan bahwa kecerdasan
buatan merupakan manipulasi simbol-simbol untuk menyelesaikan masalah.
Waterman (1986) mengatakan bahwa kecerdasan buatan adalah bagian penting
ilmu pengetahuan bidang komputer yang diperlukan untuk mengembangkan
kecerdasan program-program komputer. Rich (1981) mendefinisikan kecerdasan
8
buatan sebagai suatu studi bagaimana membuat komputer mengerjakan sesuatu
sedemikian rupa sehingga pada saat itu orang merasa mendapatkan hasil yang
lebih baik (Pandjaitan, 2007).
Staugaard dan Marvin Minsky memberikan pernyataan bahwa kecerdasan
buatan adalah suatu mekanisasi atau duplikasi proses berpikir manusia. Schidt
(1987) mengatakan bahwa suatu program kecerdasan tiruan akan menunjukan
perilaku program yang menyerupai perilaku manusia jika menghadapi persoalan
yang sama. Charniak dan McDemott (1985) menambahkan bahwa proses
pembelajaran pada program kecerdasan buatan menggunakan model
komputasi(Pandjaitan, 2007).
2.1.2 Sejarah Kecerdasan Buatan
Torres y Quevedo adalah seorang berkebangsaan Spayol pada awal abab
ke 20 membuat sebuah mesin yang dapat men’skak-mat’ raja lawannya dengan
sebuah ratu dan raja Perkembangan secara sistematis setelah diketemukan
komputer digital. Artikel ilmiah pertama tentang Kecerdasan Buatan ditulis oleh
Alan Turing pada tahun 1950, dan kelompok riset pertama dibentuk tahun 1954 di
Carnegie Mellon University oleh Allen Newell and Herbert Simon. Namun
bidang Kecerdasan Buatan baru dianggap sebagai bidang tersendiri konferensi
Dartmouth tahun 1956, 10 peneliti muda memimpikan mempergunakan komputer
untuk memodelkan bagaimana cara berfikir manusia. Hipotesis mereka adalah:
“Mekanisme berfikir manusia dapat secara tepat dimodelkan dan disimulasikan
pada komputer digital”, dan ini yang menjadi landasan dasar Kecerdasan Buatan
(Kusumadewi, 2003)
9
2.2 Sistem Pakar
Sistem pakar merupakan suatu bentuk sistem yang berusaha mengadopsi
ilmu pengetahuan manusia dan diaplikasikan dalam komputer, sehingga komputer
memiliki kemampuan dalam menyelesaikan masalah seperti yang dilakuakn oleh
seorang ahli. Ada beberapa definisi tentang sistem pakar (Kusumadewi, 2003),
antara lain:
• Menurut Durkin :
Sistem pakar adalah suatu program komputer yang dirancang untuk
memodelkan kemampuan penyelesaian masalah yang dilakukan oleh seorang
pakar.
• Menurut Ignizio :
Sistem pakar adalah suatu model dan prosedur yang berkaitan, dalam
suatu domain tertentu, yang mana tingkat keahliannya dapat dibangdingkan
dengan keahlian seorang pakar.
• Menurut Giarratano dan Rilly :
Sistem pakar adalah suatu sistem komputer yang bisa menyamai atau
meniru kemampuan seorang pakar
Knowledge dalam sistem pakar mungkin saja seorang ahli, atau knowlegde
yang umumnya terdapat dalam buku, majalah dan orang yang mempunyai
pengetahuan tentang suatu bidang (Arhami, 2005).
Perancangan suatu sistem pakar dimaksudkan supaya mampu
menyelesaikan suatu permasalahan tertentu dengan meniru cara kerja dari para
ahli dalam melakukan suatu analisa, sehingga orang awam pun bisa
10
menyelesaikan masalah yang cukup rumit seperti halnya menyelesaikan masalah
dengan bantuan para ahli. Sedangkan bagi para ahli, sistem pakar ini juga akan
membantu aktivitasnya sebagai asisten yang sangat berpengalaman.
2.2.1. Keuntungan Sistem Pakar
Secara umum, beberapa manfaat yang dapat diambil dengan adanya sistem
pakar (Kusumadewi, 2003), antara lain:
1. Memungkingkan orang awam bisa mengerjakan perkejaan para ahli.
2. Bisa melakukan proses secara berulang secara otomatis.
3. Menyimpan pengetahuan dan keahlian para pakar.
4. Meningkatkan out put dan produktivitas.
5. Meningkatkan kualitas.
6. Mampu mengambil dan melestarikan keahlian para pakar (terutama yang
termasuk keahlian langka).
7. Mampu beroperasi dalam lingkungan yang berbahaya.
8. Memiliki kemampuan untuk mengakses pengetahuan.
9. Memiliki reliabilitas.
10. Meningkatkan kapabilitas sistem komputer.
11. Memiliki kemampuan untuk bekerja dengan informasi yang tidak lengkap dan
mengandung ketidakpastian.
12. Sebagai media pelengkap dalam penelitian.
2.2.2. Kelemahan Sistem Pakar
Selain memiliki beberapa keuntungan, sistem pakar juga memiliki
beberapa kelemahan (Arhami, 2005) , diantaranya adalah :
11
1. Masalah dalam mendapatkan pengetahuan dimana pengetahuan tidak selalu
bisa didapat dengan mudah, karena kadangkala pakar dari masalah yang kita
buat tidak ada dan kalaupun ada kadang pendekatan yang dimiliki oleh pakar
berbeda-beda.
2. Untuk membuat sistem pakar yang benar-benar berkualitas tinggi sangatlah
sulit dan memerlukan biaya yang sangat besar untuk pengembangan dan
pemeliharaan.
3. Sistem pakar tidak 100% bernilai benar
4. Boleh jadi sistem pakar tidak dapat membuat keputusan
2.2.3. Konsep Dasar Sistem Pakar
Efraim Turban berpendapat, konsep dasar pakar mengandung keahlian,
ahli, pengalihan, inferensi, aturan dan kemampuan menjelaskan. Keahlian adalah
suatu kelebihan penguasaan pengetahuan di bidang tertentu yang diperoleh dari
pelatihan, membaca atau pengalaman (Arhami, 2005). Kemampuan keahlian dari
para ahli ke komputer untuk kemudian dialihkan lagi ke orang lain yang bukan
ahli, merupakan tujuan dari sistem pakar. Proses ini membutuhkan 4 aktivitas
yaitu: tambahan pengetahuan (dari para ahli atau sumber-sumber lainnya),
repsentasi pengetahuan ke komputer, inferensi pengetahuan dan pengalihan
pengetahuan ke pengguna (Arhami, 2005).
2.2.4. Bentuk Sistem Pakar
Ada 4 bentuk sistem pakar (Kusumadewi, 2003), yaitu:
1. Berdiri sendiri. Sistem pakar jenis ini merupakan software yang berdiri
sendiri, tidak bergabung dengan software yang lainnya.
12
2. Tergabung. Sistem pakar jenis ini merupakan bagian program yang
terkandung di dalam suatu algoritma (konvensional), atau merupakan program
dimana didalamnya memanggil algoritma subrutin lain (konvensional).
3. Menghubungkan ke software lain. Bentuk ini biasanya merupakan sistem
pakar yang menghubungkan ke suatu paket program tertentu, misalnya dengan
Data Base Management System (DBMS).
4. Sistem mengabdi. Sistem pakar merupakan bagian dari komputer khusus yang
dihubungkan dengan suatu fungsi tertentu. Misalnya sistem pakar yang
digunakan untuk membantu menganalisis data radar.
2.2.5. Struktur Sistem Pakar
Sistem pakar terdiri dari 2 bagaian pokok, yaitu: lingkungan
pengembangan (development environment) dan lingkungan konsultasi
(consultation environment). Lingkungan pengembangan digunakan sebagai
pembangun sistem pakar baik dari segi pembangun komponen maupun basis
pengetahuan. Lingkungan konsultasi digunakan oleh seseorang yang bukan ahli
untuk berkonsultasi(Arhami, 2005). Komponen-komponen sistem pakar dalam
kedua bagian tersebut dapat dilihat pada gambar 2.1
13
Pengetahuan Ahli
Rekayasa Pengetahuan
Gambar 2.1 Struktur Sistem Pakar
Komponen-komponen yang ada pada sistem pakar gamabar 2.1:
1. Subsistem penambahan pengetahuan
Bagian ini digunakan untuk memasukkan pengetahuan, mengkontruksi atau
memperluas pengetahuan dalam basis pengetahuan. Pengetahuan itu bisa berasal
dari : ahli, buku, basis data, penelitian dan gambar.
Pengguna
Antarmuka Pengguna
Aksi yang direkomendasikan
Fasilitas Pengesahan
Mesin Inferensi interpreter (Penerjemah) Scheduler (Pengontrolan)
Consistency Enforcer (Pemeliharaan Konsistensi)
Papan Tulis (Blackboard)
Perbaikan Pengetahuan
Basis Pengetahuan Fakta : Apa yang diketahui
tentang area domain Aturan : Keterangan logik Fakta tentang
kejadian tertentu
14
2. Basis pengetahuan
Berisi pengetahuan-pengetahuan yang dibutuhkan untuk memahami,
memformulasikan dan menyelesaikan masalah.
3. Mekanisme inferensi
program yang berisi metodologi yang digunakan untuk melakukan
penalaran terhadap informasi-informasi dalam basis pengetahuan dan blackboard,
serta digunakan untuk memformalisasikan konlusi, ada 3 elemen utama
mekanisme inferensi, yaitu:
• Interpreter mengeksekusi item-item agenda yang terpilih dengan
menggunakan aturan-aturan dalam basis pengetahuan yang sesuai.
• Scheduler akan mengontrol agenda.
• Consistency enforcer akan berusah memelihara kekonsistenan dalam
merepresentasikan solusi yang bersifat darurat.
4. Blackboard
Merupakan area dalam memori yang digunakan untuk merekam kejadian
yang sedang berlangsung termasuk keputusan sementara. Ada 3 tipe keputusan
yang dapat direkam, yaitu:
• Rencana : bagaimana menghadapi masalah.
• Agenda aksi-aksi yang potensial yang sedang menunggu untuk dieksekusi.
• Solusi : calon aksi yang akan dibangkitkan.
5. Antarmuka
Digunakan untuk media komunikasi antara user dan program.
15
Observasi A aturan R1 fakta C kesimpulan
aturan R3
fakta D aturan R2 Observasi B kesimpulan
fakta E
aturan R2
6. Subsistem penjelas
Digunakan untuk memberikan penjelasan tentang kelakuan sistem pakar.
7. Sistem penyaring pengetahuan
Sistem ini digunakan untuk mengevaluasi kinerja sistem pakar itu sendiri
untuk melihat apakah pengetahuan-pengetahuan yang ada masih cocok untuk
digunakan dimasa mendatang (Kusumadewi, 2003).
2.2.6 Forward Chaining
Forward chaining disebut juga penalaran dari bawah ke atas karena
penalaran dari evidence(fakta) pada level bawah menuju konklusi pada level atas
didasarkan pada fakta. Forward chaining mencari fakta yang sesuai dengan
bagian IF dari aturan IF-THEN. Gambar 2.2 menunjukan proses forward chaining
(Arhami, 2005).
Gambar 2.2 Proses Forward Chaining
16
2.2.7 Backward Chaining
Backward chaining adalah pendekatan yang dimotori tujuan, dalam
pendekatan ini pelacakan dimulai dari tujuan, selanjutnya dicari aturan yang
memiliki tujuan tersebut untuk kesimpulannya. Gambar 2.3 menunjukan proses
backward chaining (Arhami, 2005).
Gambar 2.3 Proses Backward Chaining
2.3 Computer Vision
Computer vision merupakan proses otomatis yang mengintegrasikan
sejumlah besar proses untuk persepsi visual, seperti akuisisi citra, pegolahan citra,
klasifikasi, pengenalan (recognation), dan membuat keputusan.
Computer vision terdiri dari teknik-teknik untuk mengestimasi ciri-ciri
objek di dalam citra, pengukuran ciri yang berkaitan dengan geometri objek dan
menginterpretasi informasi goemetri tersebut. Mungkin berguna untuk mengingat
persamaan berikut :
Vision = Geometri + Measurement + Interpretation
Observasi A aturan R1 fakta C
aturan R3
aturan R2
Observasi B fakta D aturan R2 Tujuan 1 (kesimpulan)
17
Proses-proses di dalam Computer vision dapat dibagi menjadi tiga
aktivitas (Munir, 2004) :
1. Memperoleh atau mengakuisisi citra digital.
2. Melakukan teknik komputasi untuk memproses atau memodifikasi data citra
(operasi-operasi pengolahan citra).
3. Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan
untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan,
memantau proses manufaktur, dan lain-lain.
Dari penjelasan di atas, dapat dilihat bahwa pengolahan citra dan
pengenalan pola merupakan bagian dari Computer vision. Pengolahan citra
merupakan proses awal (preprocessing) pada Computer vision sedangkan
pengolahan pola merupakan proses untuk menginterpretasi citra. Teknik-teknik di
dalam pengenalan pola memainkan peranan penting dalam Computer vision untuk
mengenal objek.
2.4 Digital Image Processing
2.4.1 Pengertian Citra
Data atau informasi tidak hanya disajikan dalam bentuk teks tetapi juga
dapat berupa gambar, audio (bunyi, suara, musik) dan video. Keempat macam
data atau informasi ini sering disebut multimedia. Era teknologi informasi saat ini
tidak dapat dipisahkan dari multimedia.
18
Citra (image) –istilah lain untuk gambar- sebagai salah satu komponen
multimedia memegang peranan sangat penting sebagai bentuk informasi visual.
Citra mempunyai karakteristik yang tidak dimiliki oleh teks, yaitu citra kaya
dengan informasi (Munir, 2004).
Secara harfiah, citra (image) adalah gambar pada dwimatra (dua dimensi).
Ditinjau dari pandang matematis, citra merupakan fungsi menerus (continue) dari
intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek,
kemudian objek memantulkan kembali sebagian dari teks cahaya tersebut.
Pantulan cahaya ini ditangkap oleh alat optik misalnya mata pada manusia,
kamera, scanner dan sebagainya, sehingga bayangan objek (citra) tersebut
terekam (Munir, 2004).
Citra sebagai keluaran dari suatu sistem perekaman data dapat bersifat
(Munir, 2004) :
1. Optik berupa foto
2. Analog berupa sinyal video seperti gambar pada monitor televisi
3. Digital yang dapat langsung disimpan pada suatu pita magnetik
Adapun citra sendiri dibagi menjadi dua. Pertama, citra diam yaitu citra
tunggal atau diam (still images) yang tidak dapat bergerak. Kedua, citra gerak
(moving images) adalah rangkaian citra diam yang ditampilkan secara beruntun
(sekuensial) sehingga memberi kesan pada mata kita sebagai gambar yang
bergerak. Setiap citra di dalam rangkaian itu disebut frame. Gambar-gambar yang
19
tampak pada film layar lebar atau televisi pada hakikatnya terdiri atas ratusan
sampai ribuat frame (Munir, 2004).
2.4.2 Image Processing
Operasi-operasi yang dilakukan di dalam pengolahan citra banyak
ragamnya. Namun, secara umum, operasi pengolah cintra dapat diklasifikasikan
dalam beberapa jenis sebagai berikut (Munir, 2004):
1. Perbaikan kualitas citra (image enhancement)
Jenis operasi ini merupakan proses penajaman fitur tertentu dari citra yang
bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter-
parameter citra dan memudahkan proses analisis citra selanjutnya. Dengan operasi
ini, ciri-ciri khusus yang terdapat pada citra lebih ditonjolkan seperti perbaikan
kontras gelap atau terang, perbaikan tepian objek (edge enhancement), penajaman
(sharpening), pemberian warna semu (pseudocoloring) dan penapisan (noise
filtering).
2. Pemugaran citra ( image restoration)
Operasi ini bertujuan menghilangkan/meminimumkan cacat pada citra.
Tujuan pemugaran citra hampir sama dengan operasi perbaikan citra bedanya
pada pemugaran citra penyebab degradasi gambar diketahui.
3. Pemampatan citra ( image compression)
Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk
yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting
20
yang harus diperhatikan dalam pemampatan adalah citra yang telah dimampatan
harus tetap mempunyai kualitas gambar yang bagus.
4. Segmentasi citra (image segmentation)
Segmentasi citra ini mempunyai arti membagi citra menjadi wilayah-
wilayah yang homogen berdasarkan kriteria keserupaan yang tertentu antara
tingkat keabuan suatu pixel dengan tingkat keabuan pixel-pixel tetangganya
(Wijaya, 2009 : C-30). Jenis operasi ini bertujuan untuk memecahkan suatu citra
ke dalam beberapa segmen dengan suatu kriteria tertentu. Jenis operasi ini
berkaitan erat dengan pengenalan pola.
5. Pengorakan citra (image analysis)
Jenis operasi ini bertujuan menghitung besaran kuantitif dari citra untuk
menghasilkan deskripsinya. Teknik pengorakan citra mengekstraksi ciri-ciri
tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadangkala
diperlukan untuk melokalisasi objek yang diingikan dari sekelilingnya. Contoh-
contoh operasi pengorakan citra :
a) Pendeteksian tepi objek (edge detection)
b) Ekstraksi batas (boundary)
c) Representasi daerah (region)
6. Rekonstruksi citra (image reconstruction)
Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa
citra hasil proyaksi. Operasi rekontruksi citra banyak digunakan dalam bidang
21
medis. Misalnya, beberapa foto rontgen dengan sinar X digunakan untuk
membentuk ulang gambar organ tubuh.
2.4.3 Pendeteksian Tepi (Edge Detectioan)
Tepi (edge) adalah perubahan nilai intensitas derajat keabuan yang
mendadak (besar) dalam jarak yang singkat. Perbedaan intensitas inilah yang
menampakan rincian pada gambar. Tepi biasanya terdapat pada batas antara dua
buah daerah berbeda pada suatu citra (Munir, 2004).
Deteksi tepi (Edge detection) adalah operasi yang dijalankan untuk
mendeteksi garis tepi (edges) yang membatasi dua wilayah citra homogen yang
memiliki tingkat kecerahan yang berbeda (www.ilkom.fmipa.ipb.ac.id/yeni)
Tujuan operasi pendeteksian tepi adalah untuk meningkatkan penampakan
garis batas suatu daerah atau objek di dalam citra. Tepi termasuk ke dalam
komponen berfrekuensi tinggi. Maka pendeteksian tepi dapat dilakukan dengan
panapis lolos-tinggi (Munir, 2004).
Pendekatan tepi merupakan langkah pertama untuk melingkupi informasi
di dalam citra. Tepi mencirikan batas-batas objek dan karena itu tepi berguna
untuk proses segmentasi dan identifikasi objek di dalam citra.
Beberapa definisi dalam operator pelacakan tepi adalah (Ahmad, 2005) :
1. Sebuah titik tepi adalah sebuah titik dengan koordinat (x,y) pada lokasi yang
intensitasnya berubah secara lokal dan berbeda nyata
22
2. Sebuah potongan garis tepi berkorespondensi dengan koordinat x dan y dari
sebuah tepi dengan arah sudut θ yang merupakan sudut gradien
3. Detektor tepi sebuah algoritma yang menghasilkan sebuah set dari tepi (titik
tepi atau potongan garis tepi) dari sebuah obyek di dalam citra
4. Kontur adalah sebuah deret dari tepi atau kurva matematika yang merupakan
model deret dari tepi
5. Penyambungan tepi adalah proses pembentukan deret yang beraturan dari
deret yang tidak beraturan
6. Penelusuran tepi adalah proses pengolahan citra untuk menemukan kontur.
Terdapat beberapa teknik yang digunakan untuk mendeteksi tepi, antara
lain (Munir, 2004) :
1. Operator gradien pertama (differential gradient)
Ada gradien pertama yang dapat digunakan untuk mendeteksi tepi di dalam
citra (Munir, 2004) yaitu:
a) Operator gradien selisih terpusat (center-difference)
b) Operator Sobel
Pedektian tepi dengan operator sobel menggunakan dua buah kernel
konvolusi. Setiap titik dari citra akan konvousikan dengan kedua kernel citra
tersebut. Salah satu kernel merespon secara maksimal untuk menghasilkan
tepi horizontal dan kernel yang lainnya tepi vertikal. Nilai dari kedua
konvolusi merupakan nilai output pixel (Muhtadan, 2008).
23
c) Operator prewitt
Pendeteksian tepi dengan operator Prewitt kernel konvolusi seperti
gambar di bawah ini. Sama halnya dengan operator sobel, setiap titik citra
dikonvolusikan dengan kedua kernel dan nilai maksimum merupakan output
(Muhtadan, 2008). Kernel operator Prewitt ditunjukan pada gambar 2.2
-1 -1 -1 1 0 -1
0 0 0 1 0 -1
1 1 1 1 0 -1
Gambar 2.4 Kernel Operator Prewitt
d) Operator robert
Metode ini merupakan penjabaran dari teknik diferensial pada arah
horizontal dan diferensial pada arah vertikal dengan menambahkan proses
konversi biner dengan meratakan distribusi warna hitam dan warna putih
(Sartika, 2008).
e) Operator Canny
Pada tahun 1986 John Canny (Canny, 1986) mengusulkan 3 kriteria
yang menjadi basis pengembangan filter untuk mengoptimalkan pendetektian
tepi pada citra bernoise. Ketiga kriteria tersebut adalah :
• Good detection, kriteria ini bertujuan memaksimalkan nilai signal to
noise ration (SNR) sehingga semua tepi dapat terdeteksi dengan baik
atau tidak ada yang hilang.
24
• Good localisation, tepi yang terdeteksi berada pada posisi yang
sebenarnya atau dengan kata lain bahwa jarak antara posisi tepi yang
terdeteksi oleh detektor dengan posisi tepi sebenarnya adalah
seminimum mungkin (idealnya = 0)
• Low multiplicity of the response atau "one response to singel edge"
detektor tidak memberikan tepi yang bukan tepi sesungguhnya.
2. Operator turunan kedua (laplacian)
Operator laplacian mendeteksi lokasi tepi lebih akurat khususnya pada tepi
yang curam. Pada tepi yang curam, turunan keduanya mempunyai persilangan nol
(zero-crossing), yaitu titik di mana terdapat pergantian tanda turunan kedua,
sedangkan pada tepi yang landai tidak terdapat persilangan nol. Persilangan nol
merupakan lokasi tepi yang akurat.
3. Operator kompas (compass operator)
Operator kompas (compass operator) digunakan untuk mendeteksi semua
tepi dari berbagai arah di dalam citra. Operator kompas yang dipakai untuk
pendeteksian tepi menampilkan 8 macam arah mata angin: Utara, Timur Laut,
Timur, Tenggara, Selatan, Barat daya, Barat, dan Barat Laut. Pendeteksian tepi
dilakukan dengan mengkonvolusikan citra dengan berbagai mask kompas, lalu
dicari kekuatan tepi (magnitudo) yang terbesar dan arahnya (Munir, 2004).
Operator kompas yang tersedia yaitu 8 macam arah mata angin dapat juga
digunakan untuk mendeteksi tepi dalam arah tertentu saja. Misalnya diinginkan
mendeteksi tepi dalam arah horizontal dan vertikal saja (Munir, 2004).
25
2.5 Klasifikasi tumbuhan
Adanya keaneragaman hidup sebagai akibat dari adanya evolusi
khususnya adaptasi terhadap fungsi dan lingkungan yang berbeda-beda yang
menyebabkan timbulnya berbagai macam bentuk kehidupan di muka bumi ini.
Hal ini mendasari pemikiran untuk membuat sebuah sistem pengelompokkan
terhadap berbagai macam bentuk kehidupan dalam suatu kelompok-kelompok
kecil dengan obyek keaneragaman bentuk kehidupan tersebut, yang lebih dikenal
dengan sebutan sistem klasifikasi (Pratiwi dkk, 2006).
Klasifikasi sendiri memiliki tujuan untuk menyederhanakan obyek-obyek
yang beranekaragam tersebut dengan cara mencari persamaan-persamaan tertentu
yang dimiliki oleh obyek-obyek tersebut. Dari persamaan-persamaan itulah dapat
dibentuk satuan-satuan (kelompok) yang ditata dengan urutan dan tingkat-tingkat
tertentu. Dengan landasan dari persamaan-persamaan itu, Corolus Linnaeus (1707
– 1778) membagi makhluk hidup ke dalam dua kelompok besar, yaitu:
1) Plantae (dunia tumbuh-tumbuhan)
2) Animalia (dunia hewan)
Semakin majunya ilmu pengetahuan dan teknologi menyebabkan
klasifikasi mekhluk hidup pun mengalami perubahan. Dahulu klasifikasi makhluk
hidup hanya mencakup dua kingdom (kerajaan) maka sekarang klasifikasi
makhluk hidup dibagi menjadi lima kingdom yaitu protista, monera, animalia,
plantea dan fungi (Campbell, 2000).
Kingdom plantae dibagi menjadi dua kelompok yaitu tumbuhan
berpembuluh dan tumbuhan tidak berpembuluh. Tumbuhan berpembuluh
26
beranggotakan pteridhopyta (paku-pakuan) dan spermatophyte (tumbuhan
berbuga). Tumbuhan tidak berpembuluh adalah tumbuhan yang akar, batang dan
daunnya tidak mempunyai pembuluh seperti : alga, jamur dan lumut.
Rosales salah satu bangsa yang beranggotakan Suku Crassulaceae, Suku
Cephalotaceae, Suku Pittosporaceae, Suku Cunoniaceae, Suku Rosaceae, Suku
Brunelliaceae, Suku Connaraceae, Suku Leguminosae, Suku Mimosaceae, Suku
Papilionaceae dan Suku Caesalpiniaceae (Gembong tjitrosoepomo, 1988).
Suku Papilionaceaee (kacang-kacangan), yang mempunyai ciri-ciri
semak, perdu, atau pohon kerapkali memanjat. Daun berseling atau tersebar,
tunggal atau majemuk. Daun penumpu ada. Bunga berkelamin 2, dalam karangan
yang berbeda-beda, kerapkali zygomorph menyolok, kelopak bersatu. Mahkota
berbentuk kupu-kupu terdiri atas lima, lapas atau hampir lepas; 2 yang terbawah
bersama-sama membentuk tunas, kerapkali berlekatan satu dengan yang lainnya,
diapit antara 2 sayap di sebelahnya; daun mahkota teratas kebanyakan 10,
kerapkali 9 bersatu dan 1 lepas (beberkas dua), jarang lebih dari satu lepas; ruang
sari 2. Bakal buah menumpang, beruang 1. Polongan membuka atau tidak
membuka atau patah dalam ruas. Biji 1 atau banyak (Steenis, 1992).
Di antara anggota-anggotanya banyak yang merupakan tanaman penghasil
komoditif yang berharga, merupakan bahan pangan dengan nilai gizi yang tinggi
karena kandungannya akan protein, lemak, dan vitamin-vitamin dalam bijinya.
Polong yang muda, demikian pula daun-daun muda jenis-jenis tertentu banyak
yang dimakan sebagai sayuran. Selain dari itu banyak pula di antara anggotanya
yang dalam pertanian ditanam sebagai pupuk hijau, karena adanya simbosis
27
anggota suku ini dengan bakteri-bakteri penambat zat lemas dari udara. Banyak
pula di antara warga suku ini yang ditanam untuk makanan ternak. Sebagai contoh
adalah
• Soja max (kedelai), bijinya kaya protein dan lemak.
• Phaseolus radiatus: Ph. Radiatus dan Ph. Mungo (kacang hijau), Ph. Lunatus
(kara, krupuk, kratok), Ph. Vulgaris (buncis), sayuran.
• Arachis hypogaea(kacang tanah)
• Pisum sativum(kacang kapri)
• Canavalia ensiformis(kara pedang)
• Mucuna pruriens(kara benguk)
• Cajanus cajan(kacang hiris)
• Crotalaria juncea, Cr. usaramoensis, Cr. anagyroides
Indigofera sumatrana, I. Endecaohylla
• Tephrosia : maxima
• Sesbania grandiflora (janti), S. Grandiflora (turi)
• Centrosema pubescens
• Calopogonium muconoides
• Psophocarpus tetragonolobus (kacang kecipir)
• Clitoria ternatea (kembang telang)
• Pterocarpus undica (angsana kembang)
• Dalbergia latifolia (angsana keling)
Myroxylon balsamun
• Erythrina variegate (dadap)
28
• Vicia faba (kacang babi)
• Voandzeia subterranean (kacang bogor).
Suku ini mempunyai manfaat sebagai Bahan pangan dengan nilai gizi
yang tinggi karena kandungannya akan protein,. Dalam hal ini penulis memilih
suku paplilionaceae sebagai bahasan (Gembong tjitrosoepomo, 1988).
2.6 MATLAB (Matrix Laboratory)
2.6.1 Sekilas Tentang Matlab
Dari Sugiharto (2006), MATLAB adalah sebuah bahasa pemrograman
dengan unjuk kerja tinggi untuk komputasi teknis, yang mengintegrasikan
komputasi, visualisasi dan pemrograman di dalam linkungan yang mudah
penggunaannya dalam memecahkan persoalan dengan solusinya yang dinyatakan
dengan notasi matematik. Penggunaan MATLAB yaitu :
1. Matematika dan komputasi
2. Pengembangan algoritma
3. Pemodelan, simulasi dan pembuatan prototype
4. Analisis data, eksplorasi dan visualisasi
5. Grafik untuk sains dan teknik
6. Pengembangan aplikasi, termasuk pembuatan antarmuka grafis untuk
pengguna
MATLAB adalah sebuah sistem interaktif yang menggunakan elemen
data dasarnya adalah array yang tidak membutuhkan dimensi. Hal ini untuk
29
mempermudah dalam menyelesaikan masalah komputasi, terutama yang
menyangkut matriks dan vektor.
Secara keseluruhan Matlab memiliki 6 buah jendela :
a. Jendela perintah (command window)
Pada jendela perintah, semua perintah Matlab dituliskan dan dieksekusi. Kita
dapat menuliskan perintah yang diperlukan seperti perhitungan biasa, memanggil
fungsi, mencari informasi tentang sebuah fungsi (help), demo program, dan
sebagainya. Setiap penulisan perintah di sini selalu diawali dengan prompt '>>'.
b. Jendela daftar perintah (command history)
Jendela ini memuat daftar perintah yang pernah kita ketikkan dalam
jendela perintah. Untuk mengeksekusi kembali perintah yang pernah dipakai, kita
dapat men-drag perintah tersebut dari jendela daftar perintah ke jendela perintah,
atau menekan tombol panah ke atas atau mengklik perintah pada jendela history,
kemudian melakukan copy-paste ke jendela perintah.
c. Jendela launch pad
Jendela ini berisi fasilitas yang disediakan matlab untuk menjalankan
paket perangkat lunak (toolbox) untuk menyelesaikan masalah tertentu.
d. Jendela Help
Dipakai jika kita mengalami kesulitan sewaktu memilih perintah atau
formatnya.
e. Jendela current directory
Current directory digunakan untuk menentukan direktori aktif yang
digunakan Matlab. Jika akan menjalankan sebuah fungsi, maka kita harus
30
memastikan bahwa fungsi berada di dalam direktori aktif atau kita mengubah
direktori aktifnya ke direktori tempat fungsi berada.
f. Jendela ruang kerja (workspace)
Jendela workspace merupakan sebuah jendela Matlab yang berisi
informasi pemakaian variabel di dalam memori Matlab.
2.6.2 Cara Bekerja dengan Matlab
Dalam melakukan pekerjaan pemrograman menggunakan bahasa Matlab,
terdapat dua cara, yaitu :
1) Secara langsung di Command window
Cara ini adalah yang paling sering dilakukan oleh pemula, namun akan
sulit untuk mengevaluasi perintah secara keseluruhan karena biasanya perintah
hanya dilakukan baris perbaris.
2) Menggunakan M-File
M-File merupakan sederetan perintah Matlab yang dituliskan secara
berurutan sebagai sebuah file. Nama file yang digunakan berekstensi m yang
menandakan bahwa file adalah file Matlab. Pemrograman dengan M-File
memberikan kontrol lebih banyak dibandingkan dengan command line. Dengan
M-File, kita bisa melakukan percabangan, perulangan, dan lain-lain.
2.6.3 Perintah Kontrol
2.6.3.1 Struktur Kendali
Statemen kondisi digunakan untuk mengontrol alur program.
1) If, Else, dan Elseif
31
If merupakan statemen kontrol yang digunakan untuk mengevaluasi
ekspresi logika dan mengeksekusi kelompok statemen yang didasarkan pada
nilai ekspresi. Bentuk sederhana statemen if adalah :
if <ekspresi logika>
statement-statement
end
Jika ekspresi logika bernilai benar (1), maka Matlab akan mengeksekusi
statemen antara if sampai end. Namun, jika ekspresi logikanya bernilai false,
maka Matlab akan melewati semua statemen antara if dan end.
If dapat dipakai lebih dari satu (nested if). Untuk membuat if di dalam if, kita
menggunakan sintaksis seperti berikut :
if <ekspresi-logika1> statemen 1 dikerjakan jika ekspresi-logika 1 bernilai benar)
elseif <ekspresi-logika2> statemen 2 dikerjakan jika ekspresi-logika 2 bernilai benar)
elseif … … else
statemen n (dikerjakan jika semua ekspresi-logika sebelumnya bernilai salah) end
2) Switch
Switch mengeksekusi statemen berdasarkan nilai variabel satu ekspresi.
Bentuk switch adalah :
switch ekspresi (scalar atau string) case nilai 1 statemen 1 case nilai 2 statemen 2 case nilai 3 statemen 3 :
32
case nilai n statemen n
2.6.3.2 Struktur Perulangan
1) While
Statemen while digunakan untuk melakukan proses perulangan.
Banyaknya jumlah perulangan ditentukan oleh sebuah nilai ekspresi. Proses
perulangan pada while akan terus dilakukan selama nilai ekspresinya benar (true).
Namun, begitu dijumpai nilai ekspresi salah (false), maka proses perulangan akan
langsung dihentikan. Bentuk umun statemen while :
while <ekspresi> statemen-statemen end;
2) For
Statemen for digunakan pula untuk melakukan proses perulangan.
Perbedaannya dengan statemen while adalah pada for jumlah perulangan dapat
diketahui (countable), sedangkan pada while tergantung nilai ekspresi.
Bentuk umum statemen for :
for indeks = nilai awal : selisih atau penambahan : nilai akhir statemen-statemen end
2.6.4 Membentuk Fungsi
Fungsi adalah M-File yang menerima argumen input dan menghasilkan
argumen output. Fungsi mengoperasikan variabel di dalam workpace-nya, tetapi
terpisah dari workspace yang diakses oleh command Matlab. Sebuah fungsi
mempunyai beberapa bagian penting diantaranya :
33
function hasil = luas ( p, 1 )
argumen input
nama fungsi
argument output
kata kunci
a) Nama Fungsi
Nama fungsi Matlab secara default sama dengan nama variabelnya. Nama
fungsi harus diawali dengan huruf, selanjutnya boleh diikuti oleh kombinasi
huruf, angka, atau garis bawah (underscore). Sebaiknya, semua karakter
menggunakan huruf kecil. Walaupun nama fungsi dapat mempunyai panjang
berbeda, Matlab hanya menggunakan N sebagai karakter pertama, dimana N
adalah bilangan yang dihasilkan fungsi namelengthmax().
b) Argumen Fungsi
Jika sebuah fungsi Matlab mempunyai nilai output lebih dari satu, maka
nilai dapat dituliskan dalam sebuah kurung siku. Argumen input, jika ada,
dituliskan di dalam tanda kurung biasa. Untuk memisahkan antara argumen
yang ada, baik input maupun output, maka digunakan tanda koma.
c) Mengetahui Jumlah Argumen Fungsi
Matlab memiliki fungsi nargin dan nargout untuk menentukan seberapa
banyak argumen input dan argumen output sebuah fungsi saat dipanggil. Kita
dapat menggunakan sebuah teks kondisi untuk menentukan langkah yang akan
dikerjakan oleh sebuah fungsi jika argumen yang diinputkan tidak sesuai
dengan jumlah argumen input pada fungsi.
34
2.6.5 GUIDE
GUIDE atau GUI builDEr merupakan sebuah graphical user interface
(GUI) yang dibangun dengan objek grafis seperti tombol (button), kotak teks,
slider, sumbu (axes), maupun menu. Tidak seperti bahasa pemrograman lainnya,
GUIDE matlab memiliki banyak keunggulan tersendiri, antara lain :
a) GUIDE matlab banyak digunakan dan cocok untuk aplikasi-aplikasi
berorientasi sains, sehingga banyak peneliti atau mahasiswa, menggunakan
GUIDE Matlab untuk menyelesaikan riset atau tugas akhirnya.
b) Matlab memiliki banyak fungsi built in yang siap digunakan dan pemakai
tidak perlu repot membuatnya sendiri.
c) Ukuran file, baik FIG-file maupun M-file, yang dihasilkan relatif lebih kecil.
d) Kemampuan grafisnya cukup andal dan tidak kalah dibandingkan bahasa
pemrograman lainnya.
2.6.5.1 Memulai GUIDE
Untuk memulai pemrograman GUI Matlab, kita dapat melakukan dengan
dua cara, yaitu :
a) Melalui command matlab ketikkan >>guide atau
b) Klik tombol Start Matlab dan pilihlah MATLAB, lalu pilih GUIDE (GUI
Builder)
35
Gambar 2.5 Memulai GUIDE
Selanjutnya, kita dibawa ke sebuah kotak dialog pilihan GUIDE Quick
Start.
Gambar 2.6 GUIDE Quick Start
Ada dua buah pilihan, yaitu Create New GUI dan Open Existing GUI. Kita
dapat memilih Create New GUI jika memang belum pernah membuat aplikasi
GUI Matlab atau memang ingin membuat figure baru. Menu Create New GUI
akan memberikan beberapa pilihan GUIDE template. Pilih Blank GUI (Default)
36
untuk memulai dengan sebuah GUI dengan figure kosong. Kita dapat mengatur
sendiri komponen yang kita butuhkan sesuai dengan aplikasi yang dibuat.
Gambar 2.7 Menu Utama GUIDE
2.6.5.2 Komponen GUIDE
Untuk membuat sebuah user interface matlab dengan fasilitas GUIDE,
kita harus memulai dengan membuat desain sebuah figure. Untuk membuat desain
sebuah figure, kita dapat memanfaatkan uicontrol (kontrol user interface) yang
telah tersedia pada editor figure.
Kita dapat meletakkan semua kontrol pada layout editor figure dan
selanjutnya hanya tinggal mengaturnya dengan property inspector. Untuk melihat
kontrol user interface, kita dapat membukanya dengan menggunakan blank GUI
maupun yang lainnya. Gambar berikut memperlihatkan beberapa kontrol :
Menu Editor M-File Editor
Alignment Tool Properti Inspector
37
Gambar 2.8 Komponen UIControl
a. Pushbutton
Sebuah pushbutton merupakan jenis kontrol berupa tombol tekan yang akan
menghasilkan sebuah tindakan jika diklik, misalnya tombol OK, CANCEL, dan
lainnya.
b. Togglebutton
Togglebutton menghasilkan efek yang hampir sama dengan pushbutton,
perbedaanya adalah saat pushbutton ditekan, maka tombol akan kembali pada
posisi semula jika tombol mouse dilepas. Sebaliknya, pada togglebutton tombol
tidak akan kembali ke posisi semula, kecuali kita menekannya kembali.
c. Radiobutton
Pada radiobutton, kita hanya dapat memilih atau menandai satu pilihan dari
beberapa pilihan yang ada.
d. Checkbox
Kontrol checkbox menghasilkan suatu tindakan jika diklik, yaitu berupa
tanda atau status. Checkbox berguna jika kita ingin menyediakan sejumlah
pilihan mandiri yang tidak tergantung pada pilihan lainnya. Untuk menandai
38
apakah sebuah checkbox telah ditandai atau tidak, kita dapat melihat pada value
property, yaitu masing-masing bernilai 1 dan 0.
e. Edit Text
Kontrol edit text merupakan sebuah tempat yang memungkinkan kita
memasukkan atau memodifikasi teks. String property berisi teks yang akan
dimunculkan pada kotak edit text. Kemudian, edit text bermanfaat pula untuk
menginputkan suatu data dari keyboard.
f. Static Text
Kontrol static text akan menghasilkan teks bersifat statis (tetap), sehingga
pemakai tidak dapat melakukan perubahan padanya. Pada static text, kita dapat
mengatur teks dengan beberapa fasilitas, antara lain jenis dan ukuran font,
warna, justifikasi, dan lain-lain. Kita dapat memodifikasi semuanya melalui
property inspector.
g. Slider
Slider merupakan komponen GUI yang dapat bergeser secara horizontal
maupun vertikal. Dengan sebuah slider, kita dapat mengaturnya menjadi slider
horizontal atau slider vertikal dengan men-drag mouse sesuai keinginan kita.
Slider digunakan jika kita menginginkan inputan yang tidak dilakukan dari
keyboard. Dengan menggunakan slider, kita lebih fleksibel dalam melakukan
pemasukan data karena kita dapat mengatur sendiri nilai-nilai maksimum,
minimum, atau sliderstep, dan sebagainya.
39
h. Listboxes
Kontrol listbox menampilkan semua daftar item yang terdapat pada String
Property dan membuat kita dapat memilih satu atau lebih item yang ada. Value
property berisi indeks yang dihubungkan dengan daftar item yang dapat dipilih.
Jika kita memilih item lebih dari satu, maka nilai yang dikirimkan merupakan
sebuah vektor. Indeks-indeks item sebuah listbox merupakan bilangan bulat,
dimana item pertama diberi indeks 0, item kedua diberi indeks 1, dan
seterusnya.
i. Popup Menu
Popup menu membuka tampilan daftar pilihan yang didefinisikan pada
string property ketika kita mengklik tanda panah pada aplikasi. Ketika tidak
dibuka, popup menu hanya akan menampilkan satu item yang menjadi pilihan
saat ini, yang ditentukan oleh sebuah indeks berisi Value Property. Item pertama
pada String property sebuah popup menu akan diberi nilai 1, item berikutnya
diberi nilai 2, dan seterusnya. Popup menu sangat bermanfaat ketika kita ingin
memberi pemakai sebuah pilihan atau alternatif tanpa jarak, tidak seperti
radiobutton.
j. Axes
Dengan axes, kita dapat membuat aplikasi yang dapat digunakan untuk
menampilkan sebuah grafik atau gambar (image). Axes sebenarnya tidak
termasuk golongan user interface control, tetapi axes dapat diprogram agar
pemakai dapat berinteraksi dengan axes dan objek grafik yang dapat
ditampilkan melalui sebuah axes.
40
2.7 RGB
Suatu citra biasanya mengacu pada citra RGB. Sebenarnya bagaimana
citra disimpan dan dimanipulasi dalam komputer diturunkan dari teknologi
televisi, yang pertama kali mengaplikasikannya untuk tampilan grafis komputer.
Jika dilihat dengan kaca pembesar, tampilan monitor komputer akan terdiri dari
sejumlah triplet titik warna merah (RED), hijau (GREEN) dan biru (BLUE).
Citra dalam komputer tidak lebih dari sekumpulan sejumlah triplet dimana
setiap triplet terdiri atas variasi tingkat keterangan (brightness) dari elemen red,
green dan blue. Representasinya dalam citra, triplet akan terdiri dari 3 angka yang
mengatur intensitas dari Red (R), Green (G) dan Blue (Blue) dari suatu triplet.
Setiap triplet akan merepresentasikan 1 pixel (picture element). Suatu triplet
dengan nilai 67, 228 dan 180 berarti akan mengeset nilai R ke nilai 67, G ke nilai
228 dan B k nilai 180. Angka-angka RGB ini yang seringkali disebut dengan
color values. Pada format .bmp citra setiap pixel pada citra direpresentasikan
dengan dengan 24 bit, 8 bit untuk R, 8 bit untuk G dan 8 bit untuk B, dengan
pengaturan (Al fatta, 2007 : D-1) seperti pada gambar 1.
Gambar 2.9 Color Values
2.8 JPEG
JPEG singkatan dari Joint Photographic Experts Group yang merupakan
format gambar atau foto yang banyak digunakan untuk menyimpan gambar-
gambar dengan ukuran lebih kecil. Untuk membedakan dengan jenis file lainnya.
41
File jenis ini biasanya berakhiran (memiliki ekstensi) JPG atau JPEG (John miano
1961). Kelemahan JPEG adalah kualitas gambar yang akan menurun, bertambah
kasar dan pecah jika gambar file diedit dan disimpan berulang-ulang (Iwan
binanto, 2010)
42
BAB III
METODOLOGI PENELITIAN
Pada penyusunan skripsi ini diperlukan data-data informasi sebagai bahan
yang dapat mendukung kebenaran materi uraian pembahasan. Untuk menyelesaikan
masalah yang ada dalam sebuah perancangan perangkat lunak ada beberapa tahap
yang harus dilakukan.
Tahap ini dilakukan sebelum tahap pengembangan sistem yang meliputi studi
pustaka dan observasi.
3.1 Studi Pustaka
Studi pustaka adalah teknik pengumpulan data dengan menghimpun dan
menganalisis dokumen. Dokumen-dokumen yang termasuk didalamnya yaitu
penelitian-penelitian terdahulu, buku, artikel dan jurnal yang berkaitan dengan objek
penelitian. Secara rinci yang penulis lakukan pada studi dokumenter adalah :
a) Membaca dan mempelajari buku-buku atau dokumen-dokumen, penelitian-
penelitian terdahulu, artikel dan jurnal yang berhubungan dengan
Papilionaceae dan teknik atau cara pengklasifikasian tumbuhan dalam hal ini
Papilionaceae. Dokumen-dokumen tersebut bisa bersifat hardcopy ataupun
softcopy yang bersumber dari internet.
b) Dokumen-dokumen yang telah dikumpulkan kemudian dipilih dan dihimpun
berdasarkan tujuan dan fokus penelitian.
43
c) Dokumen-dokumen yang telah dipilih dan dihimpun kemudian dilakukan
analisa untuk mendapatkan suatu pemahaman mengenai konsep perancangan
aplikasi pengklasifikasian tumbuhan
3.2 Observasi Lapangan
Observasi merupakan pengamatan langsung dengan cara pengambilan data
dengan menggunakan mata tanpa ada pertolongan alat standar lain untuk keperluan
tersebut (Nazir, 1983). Penulis mengambil daun Papilionacea secara langsung dan
mengamatinya dan men-scannya.
3.3 Model-Model Metode Pengembangan Sistem
Sebuah perancangan perangkat lunak memerlukan model-model proses atau
paradigma rekayasa perangkat lunak berdasarkan sifat aplikasi dan proyeknya,
metode dan alat bantu yang dipakai, dan kontrol serta penyampaian yang dibutuhkan.
Ada beberapa model dari proses perangkat lunak, diantaranya: Model Sequensial
Linear, Model Prototipe, Model RAD (Rapid Application Development), Model
Evolusioner, Model Formal dan lain-lain (Pressman, 2002).
3.4 Perbedaaan Metode Pengembangan Sistem
Untuk menyelesaikan masalah di dalam sebuah sistem harus dilakukan
penggabungan strategi pengembangan yang melingkupi lapisan proses, metode, dan
alat-alat bantu serta fase-fase generik (Presman, 2002). Pada Tabel 3.1 di bawah
dijelaskan beberapa metode dan perbedaaannya.
44
Tabel 3.1 Perbandingan Metode Pengembangan Sistem
Metode
Kelebihan
Kekurangan
Pengunaan secara umum
Sequensial Linier (waterfall)
Metode ini baik digunakan untuk kebutuhan yang sudah diketahui dengan baik
Iterasi yang sering terjadi menyebabkan masalah baru. Bagi pelanggan sulit menentukan kebutuhan secara eksplisit dan harus sabar karena memakan waktu yang lama.
Waterfall bekerja dengan baik pada proyek skala kecil
Prototype
Metode ini cukup efektif dengan mendapatkan kebutuhan dan aturan yang jelas dan pelanggan bisa langsung melihat sistem yang sebenarnya.
Pengembang kadang-kadang membuat implementasi sembarang karena ingin working version selesai dengan cepat.
Prototyping dapat bekerja dengan baik jika ada kerjasama yang baik antara pengembang dengan pengguna
RAD
Metode ini lebih cepat dari waterfall jika kebutuhan dan batasan proyek sudah diketahui dengan baik dan bisa untuk dimodularisasi.
Karena proyek dipecah menjadi beberapa bagian, maka dibutuhkan banyak orang untuk membentuk suatu tim. Karena komponen-komponen yang sudah ada, fasilitas-fasilitas pada tiap komponen belum tentu digunakan seluruhnya sehingga kualitas program bisa menurun.
RAD cocok utuk aplikasai yang tidak mempunyai resiko teknis yang tinggi. RAD cocok untuk proyek yang memiliki SDM yang baik dan sudah berpengalaman.
45
3.5 Pemilihan Metode
3.5.1 Teknik Pengumpulan Data
Setelah mengamati berbagai metode pengumpulan data di atas, maka penulis
memutuskan untuk memakai metode studi pustaka dan metode observasi. Metode
studi pustaka dilakukan penulis dengan melakukan pengumpulan data dan informasi
Incremental Fleksibel dan mudah untuk dikelola dan pengujian yan mudah.
Semua kebutuhan tidak dikumpulkan pada tahap awal sehingga menimbulkan masalah serta sulit untuk mengukur progress karena tidak ada milestone.
Cocok untuk aplikasi yang kebutuhannya telah diidentifikasi dengan baik.
Iterative
Fase desain, pengkodean, pengujian lebih cepat.
Butuh waktu yang banyak untuk menganalisis dan terlalu banyak langkah yang dibutuhkan model
Hanya cocok untuk softwere berskala besar
Spiral Model ini digunakan untuk sistem skala besar. Membutuhkan konsiderasi langsung terhadap resiko teknis, sehingga dapat mengurangi terjadinya resiko yang lebih besar.
Resiko utama tidak ditemukan, maka masalah bisa muncul kemudian. Sehingga membutuhkan kemampuan manajemen dan perkiraan resiko (risk assessment) yang cukup tinggi.
Hanya cocok untuk softwere skala besar
46
dengan cara membaca buku-buku referensi, e-book dan situs internet yang dapat
dijadikan acuan pembahasan dalam masalah ini. Adapun buku-buku dan bahan
referensi lainnya yang dipakai dalam skripsi ini dapat dilihat pada daftar pustaka.
Sedangkan metode observasi dengan cara mengambil dan mengamati langsung bahan
penelitian dalam hal ini adalah daun Papilionaceae. Tanaman yang diamati sebanyak
lima jenis, setiap jenis tanaman diamati lima daun
3.5.2 Metode Pengembangan Sistem
Proses pengembangan sistem diartikan sebagai sekumpulan aktivitas, metode,
best practice, deliverable dan tools-tools otomatis yang digunakan stakeholder untuk
mengembangkan sistem informasi dan software secara kontinu, artinya
pengembangan yang dilakukan secara bertahap dari hal-hal yang menjadi kendala
sistem sampai hal-hal yang menjadi kebutuhan sistem (Whitten, 2004). Dari beberapa
metode pengembangan sistem yang ada, maka penulis menggunakan metode
pengembangan sistem RAD (Rapid Application Development). Penulis menggunakan
model RAD karena melihat aplikasi yang dikembangkan adalah aplikasi yang
sederhana dan tidak membutuhkan waktu yang lama. Metode RAD adalah metode
yang diperuntukkan dalam jangka pendek sesuai dengan aplikasi yang
dikembangkan. Model pengembangan RAD diperkenalkan oleh James Martin pada
tahun 1991 (Pressman, 2002).
Ada pun skema model pengembangan RAD (Rapid Application Development)
dapat dilihat pada gambar 3.1 (Kendall & Kendall, 2002) :
47
Gambar 3.1. Skema Pengembangan Sistem RAD
Model pengembangan RAD memiliki empat fase yaitu fase perencanaan
syarat-syarat, fase perancangan, fase konstruksi, dan fase pelaksanaan (Kendall &
Kendall, 2002). Berikut adalah penjelasan masing-masing fase dalam penelitian ini.
3.5.2.1 Fase Menentukan Syarat-Syarat
Pada tahap ini dilakukan pengidentifikasian tujuan aplikasi atau sistem serta
untuk mengidentifikasi syarat-syarat informasi yang ditimbulkan dari tujuan-tujuan
tersebut. Apabila pengetahuan diformulasikan secara lengkap, maka tahap
implementasi dapat dimulai dengan membuat garis besar masalah, kemudian
memecahkan masalah ke dalam modul-modul. Untuk memudahkan, maka harus
diidentifikasikan hal-hal sebagai berikut :
48
a. Mendefinisikan masalah
b. Analisis kebutuhan masalah
c. Tujuan informasi
d. Syarat-syarat
3.5.2.2 Fase Perancangan
Pada tahap ini dilakukan perancangan antar muka pemakai memberikan
fasilitas komunikasi antar pemakai dan sistem, memberikan berbagai fasilitas
informasi dan berbagai keterangan yang bertujuan untuk membantu mengarahkan
alur penelusuran masalah sampai ditemukannya solusi. Antar muka dirancang
sebagai gambaran pada saat pembuatan komponen-komponen GUI pada fase
konstruksi.
3.5.2.3 Fase Konstruksi
Pada tahap ini dilakukan instalasi ,pengaturan tata letak komponen GUI dan
pengkodean terhadap rancangan-rancangan yang telah didefinisikan. Penulis
menggunakan software MATLAB sebagai pembuatan antar muka dan editor kode
program.
3.5.2.4 Fase Pelaksanaan
Pada tahap ini dilakukan pengujian terhadap sistem untuk mengetahui apakah
program aplikasi pengklasifikasian ini dapat berjalan dengan baik dan dapat
mengenali daun atau tidak. Pada fase ini akan diketahui tingkat keakuratan yang
dihasilkan program aplikasi pengklasifikasian pada penelitian ini. Dari fase ini, juga
49
dapat diketahui kesalahan-kesalahan apa yang terjadi, sehingga dapat diperbaiki
dalam pengembangan selanjutnya.
50
BAB IV
HASIL DAN PEMBAHASAN
Sistem pakar pengklasifikasia tumbuhan menggunakan metode forward
chaining dan menggunakan metode Rapid Aplication Development (RAD) sebagai
pengembangan aplikasi.
4.1. Fase Menentukan Tujuan dan Syarat-syarat
4.1.1. Mendefinisikan Masalah
Masalah yang ingin diselesaikan dengan sistem ini adalah bagaimana
mengimplementasikan suatu metode dalam komputer dan tools apa yang mendukung
implementasi tersebut. Implementasikan pengklasifikasian tumbuhan dengan
menggunakan sistem pakar dengan metode forward chaining.
4.1.2. Analisa Kebutuhan Masalah
Metode pengambilan kesimpulan yang dipakai untuk mengklasifikasikan
tumbuhan ini adalah metode forward chaining dengan alasan karena input aplikasi
dibuat berupa gambar yang diolah menjadi angka atau matrik kemudian dari daun itu
dibuat ukuran-ukuran yang nantinya dijadikan sebagai fakta-fakta sehingga akan
didapatkan nilai konklusi tentang klasifikasi tumbuhan. Antar muka program akan
dirancang dengan menggunakan bahasa pemrograman Matlab 2009 karena matlab
51
merupakan perangkat lunak yang cocok dipakai sebagai alat komputasi yang
melibatkan penggunaan matriks dan vektor. Penulis menerapkan beberapa aturan
untuk memaksimalkan pengklasifikasian tumbuhan Papilionaceae ini, yaitu sebagai
berikut :
1. Objek daun yang ingin dikenali akan diproses dengan image processing
terlebih dahulu dengan cara menjadikan gray scale, black & white dan pola
tepi daun dibaca menggunakan operator sobel.
2. Nilai ukuran daun akan dijadikan sebagai pengenalan tumbuhan
Papilionaceae.
Pemecahan masalah yang dilakukan dalam pengklasifikasian tumbuhan
Papilionaceae sebagai berikut :
1. Metode forward chaining menyelesaikan identifikasi tumbuhan
Papilionaceae dengan melakukan penalaran dari bawah ke atas, yaitu proses
penalaran dan pembacaan dimulai dari fakta-fakta ukuran daun baik itu aspek
rasio, form faktor dan diagonal daun.
2. Pengolah citra yang penulis lakukan adalah menggunakan operator sobel
untuk memudahkan pembacaan bentuk daun.
3. Output citra berdasarkan operator sobel, sehingga garis tepi daun
Papilionaceae dapat terlihat dengan baik.
52
4.1.3. Tujuan Informasi
Tujuan penggunaan aplikasi pengklasifikasian tumbuhan Papilionaceae ini
untuk mengimpelementasikan metode sistem pakar dengan metode forward chaining
sehingga diharapkan dapat mengetahui pengklasifikasian tumbuhan dengan image
sebagai interfacenya menggunakan komputer.
,
4.1.4. Syarat-syarat Informasi
Untuk mewujudkan tujuan tersebut maka dibutuhkan beberapa syarat dalam
penerapan metode forward chaining sebagai solusi dalam penklasifikasian tumbuhan
Papilionaceae, meliputi kelengkapan software dan hardware.
Kelengkapan software yang digunakan untuk pembuatan aplikasi simulasi ini
adalah :
1. Matlab 2009, sebagai bahasa pemrograman yang digunakan dalam pembuatan
aplikasi simulasi ini.
2. Sistem Operasi Windows XP yang berjalan di PC (Personal Computer).
Sedangkan untuk kelengkapan hardware yang digunakan dalam pembuatan
aplikasi simulasi ini adalah seperangkat PC lengkap dengan peralatan pendukungnya.
53
4.2. Fase Perancangan
4.2.1 Perancangan Proses
Sebelum proses indentifikasi tumbuhan Papilionaceae dibutuhkan citra daun
Papilionaceae dengan format JPEG, untuk membedakan daun tumbuhan
Papilinaceae mengggunakan rumus :
1. Ukur aspek rasio daun dengan menggunakan rumus.
Aspek rasio daun = tinggi / lebar
2. Ukur form faktor daun dengan rumus.
Form factor=(4*3.14*luasdaun)/((kelilingdaun)^2)
3. Jumlahkan diagonal objek daun. Selanjutnya, user dapat langsung
memasukan data berupa image daun Papilionaceae ke dalam aplikasi yang
sudah terintegrasi dengan software Matlab 2009, kemudian image tersebut
melewati beberapa tahapan dalam proses pengolahan citra.
Tahap selanjutnya, image ditampilkan dan dilakukan proses penyederhanaan
warna (Grayscale) untuk memudahkan proses pengolahan citra, sehingga citra asli
yang dimasukan berubah menjadi seperti berikut :
Gambar 4.1 Citra Grayscale
54
Selanjutnya, gambar akan dirubah ke dalam black & white, sehingga gambar
tampak seperti di bawah ini :
Gambar 4.2 Citra Black & White
Tahap selanjutnya dilakukan pengolahan citra (edge detection) dengan
menggunakan operator sobel supaya bentuk pinggir daun dapat terlihat dan dapat di
analisa. Perubahan citra dengan menggunakan operator sobel sebagai berikut :
Gambar 4.3 Citra Hasil Operator Sobel
Hasil dari proses ini kemudian dijadikan fakta dalam proses penalaran forwar
chaining sehingga didapat konklusi. Adapun fakta-fakta tersebut dapat dilihat dalam
tabel dibawah ini :
1. Aspek rasio
Tabel 4.1 Range Aspek Rasio Daun
Kacang tanah 1.738 s/d 2.4378
Turi putih 2.8076 s/d 3.09
Kacang panjang 1.6 s/d 1.8605
Angsana 1.418 s/d 1.7318
Dadap 1.023 s/d 1.1306
55
2. Form faktor
Tabel 4.2 Range Form Faktor Daun
Kacang tanah 0.83312 s/d 1.0539
Turi putih 0.70344 s/d 0.76195
Kacang panjang 0.7242 s/d 0.86914
Angsana 0.91601 s/d 1.1038
Dadap 0.73965 s/d 0.90469
3. Diagonal daun
Tabel 4.3 Range Diagonal Daun
Kacang tanah 26 s/d 35
Turi putih 19 s/d 23
Kacang panjang 17 s/d 24
Angsana 29 s/d 40
Dadap 41.5 s/d 51
Struktur pohon dalam penyelesaian masalah pada identifikasi tumbuhan
kacang-kacangan (Papilionaceae) adalah sebagai berikut :
a. Identifikasi kacang tanah, maka struktur pohonnya seperti di bawah ini :
KT Identifikasi Tumbuhan Kacang Tanah
AR Aspek Rasio
FF Form Faktor
D Diagonal
KT
FF D AR
56
b. Identifikasi turi putih, maka struktur pohonnya seperti di bawah ini :
TP Identifikasi Tumbuhan Turi Putih
AR Aspek Rasio
FF Form Faktor
D Diagonal
c. Identifikasi kacang panjang, maka struktur pohonnya seperti di bawah ini :
KP Identifikasi Tumbuhan Kacang Panjang
AR Aspek Rasio
FF Form Faktor
D Diagonal
d. Identifikasi angsana, maka struktur pohonnya seperti di bawah ini :
A Identifikasi Tumbuhan Angsana
AR Aspek Rasio
FF Form Faktor
D Diagonal
e. Identifikasi dadap, maka struktur pohonnya seperti di bawah ini :
D Identifikasi Tumbuhan Dadap
AR Aspek Rasio
FF Form Faktor
D Diagonal
TP
FF D AR
KP
FF D AR
A
FF D AR
D
FF D AR
57
Dari fakta-fakta di atas, maka identifikasi tumbuhan Papilionaceae dapat
dilakukan. Adapun alur kerja proses identifikasi tumbuhan dapat dilihat pada gambar
berikut :
Gambar 4.4 Alur Kerja Identifikasi Tumbuhan Papilionaceae
Hitung aspek rasio, form faktor dan diagonal daun
Tampilkan nama tumbuhan
End
Ya
Tidak
Start
Pilih gambar
Convert to grayscale
Operator sobel
Range aspek rasio, form faktor dan diagonal daun
Convert to black & white
Tumbuhan tidak dikenalai
58
Daun yang ingin diidentifikasi harus melewati beberapa proses terlebih
dahulu, jika sesuai dengan ketentuan-kententuan yang diterapkan dalam program
maka program dapat mengidentifikasi daun yang dimaksud.
4.2.2 Perancangan Antar Muka
Penelitian ini adalah sebuah simulasi dan bukan merupakan aplikasi siap
pakai, maka antarmuka yang dibuat juga cukup sederhana, antara lain:
1. Form Pembuka.
2. Form Utama.
4.2.3 Form Pembuka
Form pembuka, berisi nama perangkat lunak, nama serta NIM mahasiswa
yang membuat perangkat lunak, nama jurusan dan tahun pembuatan tugas akhir,
button tutup dan masuk aplikasi. Rancangan form pembuka dapat dilihat pada gambar
4.5. berikut:
59
Keterangan:
1. Nama perangkat lunak.
2. Nama penyusun tugas akhir.
3. Nim penyusun tugas akhir.
4. Nama jurusan dan tahun pembuatan tugas akhir.
5. Button untuk menutup form pembuka.
6. Button untuk masuk form utama.
2
3
4
1
5
6
Gambar 4.5 Perancangan Form Pembuka
60
Proses
Aspek rasio Daun
Form Faktor
Buka Tutup
Pucuk daun
4.2.4 Form Utama
Form utama menampilkan judul aplikasi dan link untuk membuka form input
kunci, input pesan, form Teori dan form About. Rancangan form Utama dapat dilihat
pada gambar 4.6 berikut:
Gambar 4.6 Perancangan Form Utama
Keterangan:
1. Nama perangkat lunak.
2. Kotak tampilan proses gray scale.
3. Button proses.
Jenis Daun
1
2
3
6
9
4
7
10
8
5
11 12
61
4. Kotak tampilan gambar sebelum diproses yang keluar setalah di click button
buka.
5. Text box untuk menampilkan hasil perhitungan diagonal daun.
6. Button untuk memanggil gambar daun untuk diproses.
7. Kotak tampilan proses black white gambar.
8. Text box untuk menampilkan hasil perhitungan aspek rasio daun.
9. Kotak tampilan hasil proses edge detection (deteksi tepi) dengan operator
sobel.
10. Text box untuk menampilkan hasil perhitungan form faktor daun.
11. Text box untuk menampilkan hasil kesimpulan proses.
12. Button untuk menutup form utama.
4.3 Fase Konstruksi
Transformasikan semua hasil rancangan, lalu diterapkan menjadi program
aplikasi yang dapat dioperasikan. Dalam melakukan proses konstruksi penulis
melalui langkah-langkah sebagai berikut :
4.3.1 Instalasi Program
Sebelum memulai menuliskan kode program, perlu dilakukan penginstalan
perangkat lunak Matlab 2009 terlebih dahulu.
62
4.3.2 Menjalankan Software Matlab
Setelah software terinstal dengan benar, maka selanjutnya adalah
menjalankan Matlab, yaitu dengan cara Start � All Programs �MATLAB �
Matlab R14 seperti ditunjukkan oleh gambar berikut ini :
Gambar 4.7 Menjalankan Software Matlab
Kemudian akan terlihat tampilan sebagai berikut :
Gambar 4.8 Tampilan Awal Software Matlab
63
4.3.3 Mengatur Tata Letak Komponen GUI
Graphical User Interface (GUI) dalam aplikasinya dapat terdiri atas beberapa
komponen user interface yang saling berinteraksi, sehingga membentuk sebuah
program aplikasi. Setelah membuka GUIDE Matlab, langkah selanjutnya adalah
mendesain figure dengan menggunakan komponen palet seperti pushbutton, slider,
static text, edit text, frame, radio button dan sebagainya. Untuk membuat GUI baru
klik File � New � GUI, sehingga muncul tampilan sebagai berikut :
Gambar 4.9 Membuat GUI Baru
Setelah itu penulis, mengatur tata letak masing-masing komponen, baik
string(caption), tag(name), font, maupun color, dengan menggunakan property.
64
Gambar 4.11 Contoh Pengaturan Tata Letak Komponen
pada GUI Matlab
Gambar 4.10 Halaman Kerja GUI
65
Jika selesai didisain, maka langkah berikutnya adalah menyimpan dengan file
berekstensi *.fig. Dari sini, Matlab akan secara otomatis membuat sebuah m-file
dengan nama sama.
4.3.4 Memprogram Komponen GUI
Langkah selanjutnya yang harus dilakukan adalah menulis kode program m-
file yang telah dibuat pada langkah sebelumnya agar komponen dapat bekerja secara
simultan.
Gambar 4.12 Membuka M-file dari Figure GUI yang Telah
dirancang
66
Untuk membuat program pada m-file, penulis cukup memperhatikan fungsi-
fungsi matlab bertanda callback di mana perintah disisipkan.
Gambar 4.13 Tampilan M-file dari Figure GUI
Gambar 4.14 Menyisipkan Kode Program pada Fungsi Callback
67
Inti dari aplikasi simulasi diagnosis penyakit ini terdapat pada kode fungsi
pelatihan_Callback dan kode program dapat dilihat pada Lampiran D.
4.3.5 Menjalankan Program
Setelah figure selesai didesain dan kode selesai ditulis, maka langkah
selanjutnya adalah menjalankan program dengan menekan f5.
4.4 Fase Pelaksanaan
Pada fase pelaksanaan ini, penulis akan melakukan uji coba sistem dalam
melakukan pelatihan data, pengujian data dan prediksi.
Gambar 4.15 Menjalankan Kode Program M-file yang Telah ditulis
68
4.4.1 Spesifikasi Minimum Pemakaian Aplikasi
Agar aplikasi ini dapat berjalan dengan baik, maka dibutuhkan komputer
yang mendukung operasional perangkat lunak Matlab 2009, dengan spesifikasi
minimum sebagai berikut :
1. Prosesor : Intel Pentium (Pentium 4 atau versi diatasnya), Intel Celeron,
Intel Xeon, Intel Core, AMD Athlon, AMD Optheron, AMD Sempron.
2. Sistem Operasi : Windows XP (Service Pack 1 atau 2), Windows Server
(Service Pack 1 atau 2), Windows Vista.
3. RAM : 512 MB
4. Space Harddisk : 2 GB untuk instalasi Matlab.
4.4.2 Fitur dalam Aplikasi
Fitur – fitur dalam aplikasi ini antara lain :
1. Fitur menu pembuka Aplikasi Pengklasifikasian Tumbuhan
menggunakan metode forward chaining
69
2. Fitur menu utama Aplikasi Pengklasifikasian Tumbuhan menggunakan
metode forward chaining
Gambar 4.16 Tampilan Menu Pembuka
Gambar 4.17 Tampilan Menu Utama
70
4.5.3 Proses Pengujian Aplikasi
Misalkan, dipanggil gambar daun seperti terlihat pada gambar 4.14. berikut.
Selanjutnya tekan Button proses, maka akan tampil seperti gambar 4.15
berikut:
Gambar 4.18 Tampilan Membuka Gambar
Gambar 4.19 Tampilan Processing
71
Pada tampilan gambar 4.15 secara otomatis menampilkan semua proses
pendeteksian daun, dimulai dari gray scale, black white dan deteksi tepi (edge
detection) menggunakan operator sobel.
Ukuran aspek rasio, form faktor dan diagonal secara otomatis pula
ditampilkan. metode forward chaining dan output hasilnya pun langsung ditampilkan,
jika termasuk jenis Papilionaceae maka akan muncul nama dari tumbuhannya jika
tidak maka program mengeluarkan output tidak dikenali.
4.5.4 Hasil Penelitian
Proses penelitian dilakukan untuk mengetahui keakuratan dari program
aplikasi yang dibuat. Hasil penelitian pengklasifikasian tumbuhan Papilioneceae
yang telah diuji dapat dilihat pada tabel 4.4 berikut :
Tabel 4.4 Uji Coba Aplikasi
No Aspek Rasio
Form Faktor Diagonal Hasil
1 1.6383 1.0067 33 Angsana1
2 1.5 0.95471 36 Angsana2
3 1.7317 0.91602 29 Angsana3
4 1.4182 1.1037 40 Angsana4
5 1.025 0.8332 50 Dadap1
6 1.026 0.86583 47 Dadap2
7 1.039 0.90467 48 Dadap3
8 1.1304 0.77658 42 Dadap4
72
9 2.4375 0.86439 26 Kacang tanah1
10 1.9048 0.94133 32 Kacang tanah2
11 1.8571 0.96061 35 Kacang tanah3
12 2.4063 0.83313 26 Kacang tanah4
13 1.75 0.86914 24 Kacang panjang1
14 1.75 0.86914 24 Kacang panjang2
15 1.6 0.76443 20 Kacang panjang3
16 1.8571 0.72422 17 Kacang panjang4
17 2.8462 0.76194 20 Turi putih1
18 2.9167 0.70345 22 Turi putih2
19 3.08 0.72492 23 Turi putih3
20 2.9231 0.74759 22 Turi putih4
Dari hasil yang diperoleh, maka dapat disimpulkan bahwa aplikasi sistem
Pakar Pengklasifikasian Tumbuhan Papilionaceae dengan metode forward chaining
ini memiliki keakuratan yang baik.
73
73
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil ujicoba dari aplikasi yang dirancang, maka dapat ditarik
kesimpulan sebagai berikut :
1. Sistem pakar dengan metode forward chaining dapat menghasilkan output
yang sesuai yaitu pengklasifikasian tumbuhan Papilionaceae.
2. Daun dapat dibaca atau dikenali harus melalui proses image processing
terlebih dahulu, setelah itu dicari ukuran aspek rasio, form faktor, dan
diagonal daun.
5.2 Saran
Saran yang diajukan untuk mengembangkan perangkat lunak ini yaitu :
1. Perangkat lunak ini dapat dikembangkan dengan menggunakan neural
netwark.
2. Perangkat lunak dapat dikembangkan dengan menambahkan fitur-fitur lain
sehingga menjadi lebih menarik dan komplek.
74
DAFTAR PUSTAKA
Ahmad, U. 2005. Pengolahan Citra Digital dan Teknik Pemrogramannya.
Yogyakarta : Graha Ilmu.
Arhami, M. 2005, Konsep Dasar Sistem Pakar. Yogyakarta : Andi
Binanto, I. 2010. Multimedia Digital Dasar dan Teori. Yogyakarta : Andi
Canny, J. 1986. A Computational Approach to Edge Detection
D. A. Pratiwi, Maryanti. S, Srikini, Suharno, Bambang, 2006, Biologi SMU Kelas
1 Semester 1. Jakarta: Erlangga
Tjitrosoepomo, G. 1988. Taksonomi Tumbuhan. Yogyakarta : Gadjah Mada
University Pres
Kusumadewi, S. 2003, Artificial Intelegent. Yogyakarta : Graha Ilmu
Kendall, K.E. and J.E. Kendall. 2002. Systems Analysis and Design, Fifth Edition.
New Jersey : Prentice Hall, Inc.
Munir, R. 2004. Pengolahan Citra Digital dengan Pendekatan Algoritmik.
Bandung : Informatika.
75
Nazir, M. 2003. Metode Penelitian. Jakarta : Ghalia Indonesia.
Pressman, R.S. 2002. Rekayasa Perangkat Lunak Edisi Ke-1. Yogyakarta : Andi.
Pandjaitan, L. 2007. Dasar – Dasar Komputasi Cerdas. Yogyakarta : Andi
Sartika, D, 2008. Query Image Pada Database Multimedia Berdasarkan Geometri
Primitif.
Stenis, C.G.G.J.V. 1992. Flora. Jakarta : PT. Pradnya Paramita
Daftar Riwayat Hidup
Data Pribadi
Nama : Taufiq
Jenis kelamin : Laki-laki
Tempat, tanggal lahir : Jepara, 15 Maret 1987
Kewarganegaraan : Indonesia
Status perkawinan : Belum menikah
Agama : Islam
Alamat lengkap :
Telepon, HP : 085283733774
E-mail : [email protected]
Pendidikan formal
1992 - 1998 : SDN Kaduagung Barat 1
1998 - 2001 : MTs Darul Iman Pandeglang
2001 - 2004 : MA Darul Iman Pandeglang
2004 - 2010 : JurusanTeknik Informatika, Fakultas Sains dan
Teknologi, Universitas Islam Negeri (UIN) Syarif
Hidayatullah, Jakarta
Judul Skripsi :
Identifikasi Tumbuhan kacang-kacangan
(Papilionaceae) Menggunakan Sistem Pakar
dengan Pendekatan Forward Chaining
Kp. Cibadas Ds. Kaduagung Barat RT 01/01
Cibadak, Lebak, Banten
xvi
DAFTAR TABEL
Tabel 3.1 Perbandingan Metode Pengembangan Sistem …………………... 44
Tabel 4.1 Range Aspek Rasio Daun ……………………………………….. 54
Tabel 4.2 Range Form Faktor Daun ………………………………………... 55
Tabel 4.3 Range Diagonal Daun …………………………………………… 55
Tabel 4.4 Uji Coba Aplikasi ……………………………………………….. 71
DAFTAR LAMPIRAN
Lampiran Flowchart Program ………………….............................................. 76
Lampiran Source Code Program ….. ……………………………………….. 77
76
LAMPIRAN A
FLOWCHART PROGRAM
Diagram Alur Program
Hitung aspek rasio, form faktor dan diagonal daun
Tampilkan nama tumbuhan
End
Ya
Tidak
Start
Pilih gambar
Convert to grayscale
Operator sobel
Range aspek rasio, form faktor dan diagonal daun
Convert to black & white
Tumbuhan tidak dikenalai
77
LAMPIRAN B
SOURCE CODE PROGRAM
1. Menu pembuka
function varargout = aw(varargin) % AW M-file for aw.fig % AW, by itself, creates a new AW or raises the existing % singleton*. % % H = AW returns the handle to a new AW or the handle to % the existing singleton*. % % AW('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in AW.M with the given input arguments. % % AW('Property','Value',...) creates a new AW or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before aw_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to aw_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help aw % Last Modified by GUIDE v2.5 08-Aug-2010 22:45:46 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @aw_OpeningFcn, ... 'gui_OutputFcn', @aw_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
78
% --- Executes just before aw is made visible. function aw_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to aw (see VARARGIN) % Choose default command line output for aw handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes aw wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = aw_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pbClickMe. function pbClickMe_Callback(hObject, eventdata, handles) % hObject handle to pbClickMe (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) fig=openfig('coba_skripsi.fig'); handles=guihandles(fig); guidata(fig,handles); % --- If Enable == 'on', executes on mouse press in 5 pixel border. % --- Otherwise, executes on mouse press in 5 pixel border or over text2. function text2_ButtonDownFcn(hObject, eventdata, handles) % hObject handle to text2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
79
function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.
80
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close;
2. Menu utama
function varargout = coba_skripsi(varargin) % COBA_SKRIPSI M-file for coba_skripsi.fig % COBA_SKRIPSI, by itself, creates a new COBA_SKRIPSI or raises the existing % singleton*. % % H = COBA_SKRIPSI returns the handle to a new COBA_SKRIPSI or the handle to % the existing singleton*. % % COBA_SKRIPSI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in COBA_SKRIPSI.M with the given input arguments. % % COBA_SKRIPSI('Property','Value',...) creates a new COBA_SKRIPSI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before coba_skripsi_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to coba_skripsi_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help coba_skripsi % Last Modified by GUIDE v2.5 31-Aug-2010 22:55:15 % Begin initialization code - DO NOT EDIT
81
gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @coba_skripsi_OpeningFcn, ... 'gui_OutputFcn', @coba_skripsi_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT function wait_Callback(hObject, eventdata, handles) % hObject handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) h=waitbar(0,'Harap Tunggu...'); n=1; pjg=1000; while n <= pjg n=n+1; waitbar(n/pjg); end close(h); % --- Executes just before coba_skripsi is made visible. function coba_skripsi_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to coba_skripsi (see VARARGIN) % Choose default command line output for coba_skripsi handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes coba_skripsi wait for user response (see UIRESUME) % uiwait(handles.figure1);
82
% --- Outputs from this function are returned to the command line. function varargout = coba_skripsi_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in buka_push. function buka_push_Callback(hObject, eventdata, handles) % hObject handle to buka_push (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) buka = guidata(gcbo); [namafile,direktori]=uigetfile({'*.jpg';'*.tif';'*.*'},'buka citra'); I = imread(strcat(direktori,namafile)); wait_Callback(hObject, eventdata, handles) set(buka.figure1,'CurrentAxes',buka.axes1); set(imshow(I)); set(buka.axes1,'userdata',I); %set(buka.figure1,'userdata',I); % --- Executes on button press in proses_push. function proses_push_Callback(hObject, eventdata, handles) % hObject handle to proses_push (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) buka = guidata(gcbo); I=get(buka.axes1,'userdata'); A=rgb2gray(I); set(buka.figure1,'CurrentAxes',buka.axes2); set(imshow(A)); %set(buka.axes2,'userdata',A); bw = im2bw(A); axes(handles.axes3); imshow(bw); %edgedetection e=edge(bw,'sobel'); axes(handles.axes6); set(imshow(e)); [x,y]=size(e); brs=1;
83
%mencari rasio daun for rep1=1:x; for rep2=1:y; if e(rep1,rep2)==1; kord(brs,1)=rep1; kord(brs,2)=rep2; brs=brs+1; end end end [a,b]=size(kord); atas=kord(1,1); bwh=kord(a,1); tinggi=bwh-atas; ilbr=1; for rep3=2:a hasil=kord(rep3,1)-kord(rep3-1,1); if hasil==0 lbr(ilbr)=kord(rep3,2)-kord(rep3-1,2); ilbr=ilbr+1; end end lebar=max(lbr); rasiodaun=tinggi/lebar; r=num2str(rasiodaun); set(handles.output1,'String',r); guidata(hObject,handles); %mencari keliling daun kelilingdaun=a; %mencari luas daun jumpix=0; for rep4=1:x for rep5=1:y if bw(rep4,rep5)==0 jumpix=jumpix+1; end end end luasdaun=jumpix; %mencari pucuk daun %pucuk=luasdaun/15; %set(handles.output4,'String',pucuk); %guidata(hObject,handles); % mencari form factor formfactor=(4*3.14*luasdaun)/((kelilingdaun)^2); f=num2str(formfactor); set(handles.output2,'String',f); guidata(hObject,handles);
84
%jumlah diag bw1=~bw; g=sum(diag(bw1,20)); %gd=num2str(dg); set(handles.output3,'String',g); guidata(hObject,handles); if ((rasiodaun >= 1.738)&(rasiodaun <= 2.4378))&((formfactor >= 0.83312)&(formfactor <= 1.0539))&((g >= 26)&(g <= 35)) set(handles.outputdaun,'string','kacang tanah'); else if ((rasiodaun >= 2.8076)&(rasiodaun <= 3.09))&((formfactor >= 0.70344)&(formfactor <= 0.76195))&((g >= 19)&(g <= 23)) set(handles.outputdaun,'string','turi putih'); else if ((rasiodaun >= 1.6)&(rasiodaun <= 1.8605))&((formfactor >= 0.7242)&(formfactor <= 0.86914))&((g >= 17)&(g <= 24)) set(handles.outputdaun,'string','kacang panjang'); else if ((rasiodaun >= 1.4181)&(rasiodaun <= 1.7318))&((formfactor >= 0.91601)&(formfactor <= 1.1038))&((g >= 29)&(g <= 40)) set(handles.outputdaun,'string','Angsana'); else if ((rasiodaun >= 1.023)&(rasiodaun <= 1.1306))&((formfactor >= 0.73965)&(formfactor <= 0.90469))&((g >= 41.5)&(g <= 51)) set(handles.outputdaun,'string','Dadap'); else if((rasiodaun <= 1.737)||(rasiodaun >= 2.4380))||((formfactor <= 0.83313)||(formfactor >= 1.0541))||((g <= 25)||(g >= 36))||((pucuk <=54.6648 )||(pucuk >= 61)) set(handles.outputdaun,'string','tidak dikenali'); else if ((rasiodaun <= 2.8070)||(rasiodaun >= 3.12))||((formfactor <= 0.70340)||(formfactor >= 0.76199))||((g <= 18)||(g >= 23.5))||((pucuk <=51 )||(pucuk >= 56.5)) set(handles.outputdaun,'string','tidak dikenali'); else if ((rasiodaun <= 1.54)||(rasiodaun >= 1.866))||((formfactor <= 0.7240)||(formfactor >= 0.86919))||((g <= 16)||(g >= 24.5))||((pucuk <=60 )||(pucuk >= 64.5)) set(handles.outputdaun,'string','tidak dikenali'); else if ((rasiodaun <= 1.4175)||(rasiodaun >= 1.7325))||((formfactor <= 0.9155)||(formfactor >= 1.1041))||((g <= 28)||(g >= 40.5))||((pucuk <=56.3320 )||(pucuk >= 63.6680)) set(handles.outputdaun,'string','tidak dikenali'); else if ((rasiodaun <= 1.020)||(rasiodaun >= 1.1310))||((formfactor <= 0.73960)||(formfactor >= 0.90475))||((g <= 41.)||(g >= 52))||((pucuk <=7.5 )||(pucuk >= 88.5)) set(handles.outputdaun,'string','tidak dikenali'); end end end end end
85
end end end end end function outputdaun_Callback(hObject, eventdata, handles) % hObject handle to outputdaun (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of outputdaun as text % str2double(get(hObject,'String')) returns contents of outputdaun as a double % --- Executes during object creation, after setting all properties. function outputdaun_CreateFcn(hObject, eventdata, handles) % hObject handle to outputdaun (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in tutup_push. function tutup_push_Callback(hObject, eventdata, handles) % hObject handle to tutup_push (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) selection=questdlg(['Keluar dari ',get(handles.figure1,'name'),' ?'],... ['Keluar ',get(handles.figure1,'name'),' ...'],... 'Ya','Tidak','Ya'); if strcmp(selection,'Tidak') return; end delete(handles.figure1); % --------------------------------------------------------------------
86
function Untitled_1_Callback(hObject, eventdata, handles) % hObject handle to Untitled_1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in save_push. function save_push_Callback(hObject, eventdata, handles) % hObject handle to save_push (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %buka = guidata(gcbo); %[namafile,direktori] = uiputfile({'*.JPG';'*.tif'},'simpanfile'); %I = get(proyek.axes6,'Userdata'); %imwrite(I,strcat(direktori,namafile)); %proyek=guidata(gcbo); %I=get(proyek.figure1,'Userdata'); %set(proyek.figure1,'CurrentAxes',proyek.axes1); %set(imshow(I)); %set(proyek.axes1,'Userdata',I); function output1_Callback(hObject, eventdata, handles) % hObject handle to output1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of output1 as text % str2double(get(hObject,'String')) returns contents of output1 as a double % --- Executes during object creation, after setting all properties. function output1_CreateFcn(hObject, eventdata, handles) % hObject handle to output1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function output2_Callback(hObject, eventdata, handles)
87
% hObject handle to output2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of output2 as text % str2double(get(hObject,'String')) returns contents of output2 as a double % --- Executes during object creation, after setting all properties. function output2_CreateFcn(hObject, eventdata, handles) % hObject handle to output2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % -------------------------------------------------------------------- function Untitled_2_Callback(hObject, eventdata, handles) % hObject handle to Untitled_2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on mouse press over axes background. function axes2_ButtonDownFcn(hObject, eventdata, handles) % hObject handle to axes2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function output3_Callback(hObject, eventdata, handles) % hObject handle to output3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of output3 as text % str2double(get(hObject,'String')) returns contents of output3 as a double
88
% --- Executes during object creation, after setting all properties. function output3_CreateFcn(hObject, eventdata, handles) % hObject handle to output3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function output4_Callback(hObject, eventdata, handles) % hObject handle to output4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of output4 as text % str2double(get(hObject,'String')) returns contents of output4 as a double % --- Executes during object creation, after setting all properties. function output4_CreateFcn(hObject, eventdata, handles) % hObject handle to output4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function output5_Callback(hObject, eventdata, handles) % hObject handle to output5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
89
% Hints: get(hObject,'String') returns contents of output5 as text % str2double(get(hObject,'String')) returns contents of output5 as a double % --- Executes during object creation, after setting all properties. function output5_CreateFcn(hObject, eventdata, handles) % hObject handle to output5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) reset; function output6_Callback(hObject, eventdata, handles) % hObject handle to output6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of output6 as text % str2double(get(hObject,'String')) returns contents of output6 as a double % --- Executes during object creation, after setting all properties. function output6_CreateFcn(hObject, eventdata, handles) % hObject handle to output6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.
90
% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function output7_Callback(hObject, eventdata, handles) % hObject handle to output7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of output7 as text % str2double(get(hObject,'String')) returns contents of output7 as a double % --- Executes during object creation, after setting all properties. function output7_CreateFcn(hObject, eventdata, handles) % hObject handle to output7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function output8_Callback(hObject, eventdata, handles) % hObject handle to output8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of output8 as text % str2double(get(hObject,'String')) returns contents of output8 as a double % --- Executes during object creation, after setting all properties. function output8_CreateFcn(hObject, eventdata, handles) % hObject handle to output8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
91
% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function output9_Callback(hObject, eventdata, handles) % hObject handle to output9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of output9 as text % str2double(get(hObject,'String')) returns contents of output9 as a double % --- Executes during object creation, after setting all properties. function output9_CreateFcn(hObject, eventdata, handles) % hObject handle to output9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
Recommended