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
111
Embed
IDENTIFIKASI TUMBUHAN KACANG-KACANGAN … · identifikasi tumbuhan kacang-kacangan (papilionaceae) menggunakan sistem pakar dengan pendekatan forward chaining taufiq 104091002887
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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,
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
• 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,
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);
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