Identifikasi tumbuhan kacang-kacangan (Papilionaceae) menggunakan sistem pakar dengan pendekatan forward chaining

(1)

TAUFIQ 104091002887

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA


(2)

viii

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.


(3)

ix

Jakarta, Nopember 2010


(4)

iv

BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN.

Jakarta, Nopember 2010

Taufiq


(5)

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.


(6)

vi

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.


(7)

vii

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


(8)

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


(9)

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


(10)

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


(11)

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


(12)

(13)

(14)

xiv

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……….……….……… 15 16 23 35 35 36 37 40 47 53 54 54 57 59 60 62 62 63 64


(15)

xv

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……….….

65 66 66

67 69 69 70 70 Gambar 4.15


(16)

xvii

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)


(17)

xviii

kolom


(18)

1

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.


(19)

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 :


(20)

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


(21)

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.


(22)

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.


(23)

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.


(24)

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


(25)

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)


(26)

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


(27)

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 :


(28)

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.


(29)

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


(30)

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


(31)

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


(32)

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).


(33)

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 aturan R2 fakta D Tujuan 1


(34)

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.


(35)

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


(36)

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


(37)

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


(38)

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


(39)

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).


(40)

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.


(41)

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).


(42)

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


(43)

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


(44)

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)


(45)

• 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


(46)

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


(47)

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


(48)

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 :


(49)

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 :


(50)

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.


(51)

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)


(52)

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)


(53)

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


(54)

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


(55)

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.


(56)

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.


(57)

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.


(58)

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)


(59)

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.


(60)

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.


(61)

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


(62)

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


(63)

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. Sedangkanmetode 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) :


(64)

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 :


(65)

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


(66)

dapat diketahui kesalahan-kesalahan apa yang terjadi, sehingga dapat diperbaiki dalam pengembangan selanjutnya.


(67)

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


(68)

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.


(69)

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.


(70)

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 :


(1)

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


(2)

% 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


(3)

% --- 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


(4)

% 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


(5)

% 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


(6)

% 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