7 BAB 2 LANDASAN TEORI
Pada bab ini diuraikan tentang definisi, teori, konsep yang terkait dengan Artificial Intelligence (kecerdasan buatan), Image Processing (pemrosesan citra) dan Expert System (sistem pakar), sebagai landasan dalam merancang sistem pengenalan dan penentuan kesesuaian kondisi akuarium ikan hias air laut.
2.1 Kecerdasan Buatan Teori mengenai kecerdasan buatan terdiri Definisi Kecerdasan Buatan, Perbandingan Kecerdasan Buatan dan Kecerdasan Alami, serta Lingkup Kecerdasan Buatan.
2.1.1 Definisi Kecerdasan Buatan Kecerdasan buatan merupakan bagian dari ilmu komputer yang digunakan untuk menciptakan perangkat lunak dan perangkat keras dengan tujuan untuk menghasilkan sesuatu seperti yang dihasilkan oleh manusia. Definisi – definisi tentang kecerdasan buatan, antara lain : a.
Luger dan Stubblefield (Turban dan Frenzel, 1992, p3). Kecerdasan buatan adalah cabang dari ilmu komputer yang berkaitan dengan perilaku dari kecerdasan.
b.
Rich dan Knight (Turban dan Frenzel, 1992, p3). Kecerdasan buatan adalah salah satu bagian dari ilmu komputer yang membuat komputer dapat melakukan pekerjaan seperti dan sebaik yang
8 dilakukan oleh manusia. Untuk melakukan aplikasi kecerdasan buatan ada 2 bagian utama yang sangat dibutuhkan, yaitu : 1) Basis Pengetahuan (Knowledge Base), berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya. 2) Mesin Inferensi (Inference Engine), yaitu kemampuan untuk menarik kesimpulan berdasarkan pengalaman yang diperoleh sebelumnya.
Gambar 2.1 Penerapan Konsep Kecerdasan Buatan di Komputer
2.1.2 Kecerdasan Buatan dan Kecerdasan Alami Menurut Turban dan Frenzel (1992), jika dibandingkan dengan kecerdasan alami, kecerdasan buatan memiliki beberapa keuntungan secara komersil, diantaranya : a.
Kecerdasan buatan lebih permanen dalam knowledgenya. Kecerdasan alami akan mengalami perubahan yang cepat. Hal ini disebabkan karena sifat manusia yang pelupa (lupa akan suatu hal). Kecerdasan buatan tidak akan berubah sepanjang sistem komputer dan program tersebut tidak dirubah.
b.
Kecerdasan buatan lebih mudah diduplikasi dan disebarkan. Mentransfer pengetahuan manusia dari satu orang ke orang lain membutuhkan waktu proses yang sangat lama, dan juga keahlian itu tidak akan pernah diduplikasi
9 secara lengkap. Oleh karena itu, jika pengetahuan terletak pada suatu sistem komputer, pengetahuan tersebut dapat disalin dari komputer dan dipindahkan dengan mudah kedalam komputer lainnya. c.
Kecerdasan buatan lebih murah dibandingkan dengan kecerdasan alami. Menyediakan layanan komputer akan lebih mudah dan lebih murah dibandingkan dengan harus mendatangkan seseorang untuk mengerjakan sejumlah pekerjaan dalam jangka waktu yang sangat lama.
d.
Kecerdasan buatan lebih bersifat konsisten. Hal ini disebabkan karena kecerdasan buatan adalah bagian dari teknologi komputer. Sedangkan kecerdasan alami yang merupakan bagian dari manusia akan senantiasa selalu berubah-ubah.
e.
Kecerdasan buatan dapat didokumentasikan. Keputusan yang dibuat oleh komputer dapat didokumentasikan dengan mudah dengan cara melacak setiap aktivasi dari sistem tersebut. Kecerdasan alami sangat sulit untuk direproduksi.
f.
Kecerdasan buatan dapat mengerjakan pekerjaan lebih cepat dibandingkan dengan kecerdasan alami.
g.
Kecerdasan buatan dapat mengerjakan pekerjaan lebih baik dibandingkan dengan kecerdasan alami.
Keuntungan dari kecerdasan alami adalah : 1) Kecerdasan alami sangat kreatif. Kemampuan untuk menambah ataupun memenuhi pengetahuan sangat melekat pada jiwa manusia. Pada kecerdasan buatan, untuk menambah pengetahuan harus dilakukan melalui sistem yang
10 akan dibangun. 2) Kecerdasan alami memungkinkan seseorang untuk menggunakan pengalaman secara langsung. Sedangkan pada kecerdasan buatan harus bekerja dengan input–input yang simbolik. 3) Pemikiran manusia dapat digunakan secara luas, sedangkan kecerdasan buatan sangat terbatas.
2.1.3 Lingkup Kecerdasan Buatan Lingkup utama dalam kecerdasan buatan menurut Turban dan Frenzel (1992) adalah :
a.
Sistem Pakar (Expert System). Komputer digunakan sebagai suatu sarana untuk menyimpan pengetahuan dari para pakar untuk dapat digunakan dikemudian hari sebagai suatu sistem yang akan membantu bagi pengguna. Dengan demikian komputer akan memiliki keahlian untuk menyelesaikan permasalahan dengan menggunakan dan meniru keahlian yang dimiliki oleh pakar yang telah disimpan tersebut.
b.
Pengolahan Bahasa Alami (Natural Languange Processing). Dengan pengolahan bahasa alami ini diharapkan pengguna dapat berkomunikasi dengan komputer menggunakan bahasa yang digunakan oleh pengguna seharihari.
c.
Pengenalan Ucapan (Speech Understanding). Melalui pengenalan ucapan diharapkan manusia dapat berkomunikasi dengan komputer dengan menggunakan suara.
d.
Robotika dan Sistem Sensori (Robotic and Sensory System). Dengan
11 robotika dan sistem sensori membuat komputer menjadi suatu sistem yang dapat meniru pergerakan dari manusia. e.
Computer Vision dan Scene Recognition. Mencoba untuk dapat menginterpretasikan gambar atau obyek-obyek yang terlihat melalui komputer.
f.
Intelligent Computer-aided Instruction. Komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar kepada manusia atau pengguna.
2.2 Computer Vision Computer Vision atau juga disebut machine vision adalah ilmu pengetehuan yang mengembangkan teori-teori dan algoritma dimana informasi yang berguna mengenai dunia dapat secara otomatis diekstraksi dan dianalisis dari sebuah citra penelitian, sekumpulan citra, atau citra yang berurutan dari sebuah komputasi yang dibuat oleh komputer. Computer Vision berhubungan dengan otomatisasi interpretasi citra untuk membuat berbagai pengukuran yang objektif atau untuk meningkatkan visibilitas ketelitian. Computer Vision oleh beberapa ahli didefinisikan sebagai berikut : • Michael C. Fairhurst (1995) Computer Vision sesuai dengan sifatnya, merupakan suatu subjek yang merangkul berbegai disiplin tradisional secara luas guna mendasari prinsipprinsip formalnya, dan dalam mengembangkan suatu metodologi yang berlainan
12 dari apa yang dimilikinya, pertama-tama harus menggabungkan dan secara berurutan membangun materi yang mendasari ini. • Adrian Low (1991) Computer
Vision
berhubungan
dengan
perolehan
gambar,
pemrosesan,
klasifikasi, pengenalan, dan menjadi penggabungan, pengurutan pembuatan keputusan menuju pengenalan. • J. R. Parker (1994) Computer Vision menyangkut pengekstrakan informasi dari citra, dan dalam identifikasi dan klasifikasi objek-objek dalam citra. Masalah umum dari Computer Vision adalah manusia tidak tahu bagaimana mereka mengenali objekobjek.
2.2.1 Teori Pengenalan Objek Dalam kehidupan sehari-hari manusia melihat dan mengenali berbagai bentuk objek disekitarnya. Objek dikenali berdasarkan perbedaan titik-titik (dari sisi depan, samping dan belakang) pada tempat yang berbeda dan ukuran yang berbeda. Ada beberapa teori pengenalan objek, masing-masing dengan cara pengenalan yang berbeda, diantaranya PFT (Particulate Feature Theory) dan RBC (Recognition by Components). PFT merupakan teori pengenalan objek dimana objek hanya dilihat secara lokal saja, jika seluruh keistimewaan lokal dipenuhi maka objek tetap dikenali dengan tidak mempertimbangkan hubungan antar komponen lokal yang seharusnya dipenuhi. Sebagai ilustrasinya, suatu objek tetap dikenali
13 sebagai manusia ketika komponen-komponennya dapat dikenali (adanya kepala, badan dan kaki) walaupun hubungan antar komponennya tidak sesuai dengan yang seharusnya (misalnya, kepala di bawah, kaki di tengah dan badan di atas). RBC adalah sebuah teori tentang pengenalan objek pada manusia yang bekerja untuk keberhasilan identifikasi objek meskipun terdapat perubahan dalam ukuran atau orientasi objek. Dalam hal ini RBC merupakan penerapan pengenalan PFT tetapi dengan mempertimbangkan hubungan komponen-komponen lokal yang harus dipenuhi agar suatu objek dapat dikenali secara tepat. Jika dikenali sebagai manusia tetapi harus dipenuhi agar suatu objek dapat dikenali secara tepat. Jika dikenali sebagai manusia tetapi memiliki kaki di atas, kepala di bawah dan kepala di antaranya maka pengenalan tersebut adalah pengenalan yang salah. RBC tidak akan mengenali objek seperti itu sebagai manusia, karena selain melakukan pengenalan lokal juga pengenalan secara global.
2.2.2 Pengertian Citra pada Computer Vision •
Pearson (1991) Citra adalah representasi 2 dimensi dari dunia visual, menyangkut berbagai macam disiplin ilmu yang mencakup seni, human vision, astronomi, teknik dsb. Citra merupakan sutu kumpulan piksel-piksel atau titik-titik yang berwarna yang membentuk 2 dimensi.
•
Michael C. Fairhurst (1995)
14 Citra adalah suatu fungsi 2 dimensi, dimana harga-harga fungsi tersebut f(x,y) pada koordiat spasial (x,y) di bidang x-y mendefinisikan suatu ukuran intensitas cahaya atau kecemerlangan titik tersebut. •
Foley, James D (1996, p816) Citra adalah array dari nilai-nilai dimana sebuah nilai adalah sekumpulan angka yang mendeskripsikan atribut dari piksel di dalamnya.
•
J.R Parker (1994) Sebuah gambar yang tersimpan dalam komputer adalah 2 dimensi dan terbatas pada 2 dimensi itu, terdiri dari sejumlah warna atau tingkat keabuan. Gambar itu juga tersimpan dalam bentuk numerik. Representasi dari yang mengkarakterisasi semua properti diatas disebut raster image dan itu adalah cara yang paling umum dalam menyimpan gambar dalam komputer. Raster image juga dikenal sebagai format image bitmap, dimana format ini sering digunakan pada foto hasil kamera digital. Ukuran dari format ini adalah yang terbesar diantara format-format gambar lain seperti GIF (Graphic Interchange Format), JPEG (Joint Photographic Expert Group) dan PNG (Portable Network Graphic), karena pada format ini tidak dilakukan kompresi.
•
Wolfram Research, Inc. (2002) Citra digital adalah sinyal diskrit 2 dimensi. Secara matematis, sinyal ini dapat dipresentasikan sebagai fungsi dari variabel-variabel 2 dimensi. Setiap elemen array disebut piksel.
15 •
Anonymous (2001) Suatu citra yang menggambarkan “dunia nyata” dianggap sebagai suatu fungsi dari 2 variabel, sebagai contoh, a(x,y) dimana a adalah brightness dari citra yang terletak pada posisi koordinat (x,y).Citra 2 dimensi a(x,y) ini dibagi menjadi N baris dan M kolom. Pemotongan dari baris dan kolom disebut piksel. Nilai yang terdapat pada koordinat [m,n] dengan {m=0,1,2,...,M-1} dan {n=0,1,2,...,N-1} adalah a[m,n]. Dalam beberapa kasus a(x,y) adalah sebuah fungsi dengan variabel seperti depth(z), color(λ) dan time(t).
•
Windows XP Experiences Glossary “A stored description of a graphic picture, either as a set of brightness and color values of pixels or as a set of instruction for reproducing the picture”. Dimana citra adalah deskripsi dari gambar grafik yang tersimpan sebagai kumpulan nilai warna dan tingkat cahaya dari piksel atau kumpulan instruksi untuk mengasilkan gambar.
Berdasarkan pengertian citra pada Computer Vision diatas maka dapat disimpulkan bahwa citra pada Computer Vision adalah citra yang terdiri dari array 2 dimensi dari titik-titik piksel. Dimana definisi piksel itu sendiri menurut para ahli adalah :
Michael C. Fairhurst (1995) Piksel adalah titik pada suatu citra yang telah didigitkan secara spasial dan terdiri dari NxN sampel yang terdistribusi secara sama.
16
J.R Parker (1994) Piksel adalah bagian array 2 dimensi dari suatu raster image. Setiap piksel merepresentasikan warna atau tingkat keabuan dan terletak pada posisi vertikal dan horizontal, atau yang lebih dikenal dengan baris dan kolom.
Murni (1992) Piksel (picture element) merupakan bagian terkecil dari gambar yang mengandung informasi.
Adrian Low (1991) Piksel dianggap sebagai bagian terkecil dari citra. Dapat berupa logic maupun fisik. Dengan kata lain dapat berupa lokasi elemen dari suatu citra atau menampilkan salah satu dari tingkat keabuan.
Oliver (1996) Piksel adalah titik yang merupakan penyusun dari citra yang ditampilkan komputer.
2.2.3 Representasi Citra Menurut J.R Parker (1994), hal-hal yang harus dibuat agar suat gambar dapat tampil pada komputer adalah resolusi. Setiap piksel merepresentasikan area kecil dari gambar aslinya dan tidak ada yang lebih kecil daripada piksel. Ukuran dari piksel bergantung pada jumlah piksel yang dibutuhkan untuk merepresentasikan gambar dan
17 medefinisikan resolusi dari suatu gambar. Sebuah gambar yang beresolusi tinggi, terdiri dari sejumlah piksel, dimana masing-masing meyimpan daerah kecil dari gambar. Sebuah gambar yang beresolusi rendah, terdiri dari piksel yang berjumlah lebih sedikit, dimana masing-masing menyimpan daerah yang lebih besar dari setiap gambar. Pada image bitmap keanekaragaman warna diperoleh dari perpaduan nilai dari masing-masing unsur warna R, G dan B dimana pada umumnya bernilai dari 0 sampai 255 atau bisa dikatakan merupakan format piksel 24-bit. Hal ini dikarenakan masing-masing unsur R,G dan B mempunyai nilai sebesar yang
menghasilkan
kombinasi
warna
sebanyak
warna. Menurut Oliver (1996, p566), pada model piksel RGB direpresentasikan dengan 24-bit warna. 8-bit untuk masingmasing R,G dan B. Dengan ini masing-masing warna R,G dan B memiliki 256 tingkatan intensitas, yang menghasilkan sekitar 16 juta kombinasi warna.
2.2.4 Pengolahan Citra Pengolahan citra adalah suatu pernyataan yang digunakan untuk menggambarkan operasi-operasi yang dilakukan pada suatu citra, dengan sasaran mencapai tujuan tertentu. Menurut Murni (1992), pengolah citra merupakan peningkatan mutu citra yang bertujuan untuk memperbaiki mutu citra untuk memperoleh keindahan gambar, untuk kepentingan analisa citra dan untuk mengoreksi citra
18 dari segala gangguan yang terjadi sewaktu perekaman data. Ada tiga bagian yaitu : a.
Peningkatan tingkat keabuan citra Bertujuan meningkatkan mutu suatu citra melalui perbaikan kontras.
b.
Filtering Bertujuan menanggulangi gangguan seperti : •
Gangguan
bersifat
frekuensi
rendah,
dimana
terjadi
proses
pemerataan intensitas cahaya pada suatu titik sampel dengan titik-titik tetangganya. •
Terjadinya gangguan berbentuk garis-garis sebagai akibat adanya kerusakan sebagian detektor sensor.
•
c.
Gangguan dalam bentuk bercak hitam yang acak.
Transformasi 2 dimensi dan koreksi geometri a) Transformasi 2 dimensi Umumnya untuk gangguan bersifat sederhana dan bersifat linier. Gangguan ini terjadi karena adanya : • Pergeseran pusat • Perubahan ukuran citra • Perubahan oriantasi koordinat citra atau skewed Untuk mengatasinya maka diberlakukan transformasi 2 dimensi yaitu : • Rotasi citra • Skala citra
19 • Translasi citra b) Koreksi geometri Meningkatkan mutu citra dengan ketelitian yang tinggi, misalnya untuk pembentukan peta dasar.
Menurut Allan Hanbury (1998), pengolahan citra secara kasar dibagi menjadi 3 bagian, yaitu : Image Compression, Image Enhancement and Restoration, Measurement Extraction. Image Compression mengurangi jumlah memori yang dibutuhkan untuk menampilkan gambar digital. Sedangkan Image Enhancement and Restoration berguna untuk perbaikan gambar. Image Measurement Extraction operation digunakan untuk mengambil informasi yang berguna dari citra, tujuannya adalah untuk mencari distribusi luas dari objek yang terdapat pada citra tersebut. Langkah pertama adalah memisahkan
objek
dengan
background,
dengan
mengunakan
teknih
thresholding dimana men-set nilai piksel yang diatas (atas sebagai objek dan bawah sebagai background) menjadi warna putih dan sisanya sebagai warna hitam. Menurut Anonymous (2001) pengolahan citra adalah teknologi digital modern yang dapat memanipulasi sinyal multi dimensi dengan sistem yang berjangkauan dari sirkuit teknologi sederhana sampai paralel komputer canggih. Teknologi ini memanipulasi citra dan hasil manipulasi juga berupa citra.
20
2.2.5 Grayscale (tingkat keabuan) Mencari tingkat keabuan adalah proses pengubahan warna citra menjadi format warna yang hanya berdasarkan tingkat keabuan. Proses ini menghilangkan informasi hue dan saturation dari piksel dan hanya meninggalkan nilai brightness. Setiap piksel dari tingkat keabuan citra memiliki nilai brightness antara 0 (hitam) sampai 255 (putih). Foto hitam putih merupakan contoh umum dari model warna tingkat keabuan. Walaupun disebut hitam puti, sesungguhnya foto tersebut terbentuk dari banyak warna abu-abu yang berbeda.
Gambar 2.2 Nilai Tingkat Keabuan pada Adobe Photoshop
Tujuan perhitungan tingkat keabuan adalah memudahkan proses selanjutnya yaitu proses thresholding. Dengan algoritma perhitungan tingkat keabuan, piksel dari suatu citra yang mengandung warna-warna RGB (merah, hijau dan biru) diubah menjadi warna dalam berbagai tingkat keabuan ( I ) dengan menjumlahkan nilai warna merah, hijau dan biru kemudian dibagi tiga sehingga didapatkan nilai rata-rata dari ketiga warna.
21
2.2.6 Binerisasi (Thresholding) Thresholding adalah proses penyederhanaan citra dari tingkat kabuan menjadi warna biner sehingga berdasarkan tingkat keabuannya piksel-piksel dibagi menjadi latar dan objek interest. Tujuan thresholding adalah untuk memisahkan objek dengan latar belakang. Hal ini dilakukan dengan cara mengubah intensitas piksel-piksel dari suatu citra yang ada menjadi hanya 2 intensitas yaitu hitam dan putih. Thresholding dapat dikatakan sebagai modifikasi tingkat keabuan yang mengubah intensitas-intensitas piksel yang ada, menjadi hanya 2 intensitas saja, yaitu hitam dan putih. Menurut Adrian Low (1991), thresholding mengubah dari tingkat keabuan yang lama ke tingkat keabuan yang baru (hanya 2) jadi contrast antar tingkat keabuan dapat ditingkatkan. Menurut J.R Parker (1994), thresholding adalah mengubah citra menjadi citra biner. Thresholding melihat pada setiap piksel kemudian memutuskannya apakah dibuat putih (255) atau hitam (0). Keputusan ini secara umum dibuat dengan cara membandingkan nilai numerik piksel dengan nilai tertentu yang disebut nilai threshold. Jika nilai piksel lebih kecil daripada nilai threshold, maka piksel tersebut diubah menjadi 0; sebaliknya yang lain diubah menjadi 255. Hal ini juga dapat dilakukan sebaliknya. Menurut Antti Nurminen (1996), thresholding merupakan cara termudah untuk membagi citra tingkat keabuan. Dengan memilih suatu nilai
22 tertentu dan mengatur semua piksel yang bernilai di bawahnya menjadi 1 (putih) dan semua piksel diatasnya menjadi 0 (hitam), maka akan didapatkan citra biner. Menurut Ma Yi (1996), thresholding merupakan suatu cara untuk menyingkirkan efek dari noise dan meningkatkan rasio signal-noise. Menurut
Anonymous
(2001)
thresholding
merupakan
teknik
memisahkan antara objek dan latar belakang. Teknik ini didasarkan pada konsep sederhana. Sebuah parameter θ disebut brightness threshold dipilih dan diterapkan pada citra a[m,n] sebagai berikut :
Jika hendak dipilih objek berwarna hitam dan latar belakang putih maka :
Outputnya adalah label objek dan latar belakang yang dapat direpresentasikan sebagai variabel Boolean “1” atau “0”. Secara prinsip, kondisi ini juga bisa berlaku dengan properti lain ketimbang hanya dengan brightness.
23 2.2.7 Kuantisasi Warna Rgb2ind merupakan suatu image processing tool box yang berguna untuk mengkonvert citra rgb, mengurangi jumlah warna di dalam proses tersebut. Rgb mempunyai 2 metode pemrosesan yaitu kuantisasi dan pemetaan colormap. Banyaknya warna dalam citra asli tergantung digunakan atau tidaknya dithering. Metode yang berbeda akan menghasilkan hasil yang lebih baik untuk citra yang berbeda. 1.
Kuantisasi Pendekatan ini melibatkan pemotongan warna rgb dalam jumlah daerahdaerah yang lebih kecil dan memetakan semua warna yang ada dalam sebuah daerah tersebut ke dalam nilai yang ada di tengah-tengah daerah tersebut.
2.
Colormap Rgb2ind menggunakan pemetaan colrmap untuk mencari warna dalam colormap yang dispesifikasikan yang cocok dengan warna pada citra rgb. Metode ini berguna jika kita membuat citra dalam penampilan 8 bit, maka kita dapat menghindari masalah warna dengan mengharuskan semuanya menggunakan colormap yang sama.
3.
Dithering Fungsi rgb2ind akan melakukan dithering untuk meningkatkan resolusi warna citra hasilnya. Dithering mengubah warna dari piksel yang bertetangga, jadi warna rata-rata disekitar setiap piksel yang mendekati
24 citra aslinya. Dithering menyediakan resolusi warna tambahan dengan spatial resolution.
2.2.8 Mengubah ke Daerah Warna Lain Pada image processing tool box menyatakan warna dalam rgb baik secara langsung, maupun tidak langsung. Tetapi ada model lain selain rgb untuk merepresentasikan nilai warna-warna. Fungsi rgb.hsv dan hxv.rgb mengkonversikan citra antara rgb dan warna hue, saturation dan value (HSV). Daerah warna hsv sering digunakan untuk mengambil warna (contoh paint dan inks) dari sebuah pallete warna, sebab lebih mudah bereksperimen warna dengannya dari pada menggunakan daerah warna rgb.
2.2.9 Edge Detection Menurut Michael C. Fairhurst (1995), penurunan batas outline dari objek dalam sebuah citra sama saja halnya dengan menandai tepi yang membagi objek itu sendiri dari latar belakangnya. Algoritma yang mengoperasikan demikian guna menandai piksel citra yang terletak pada suatu tepi ini disebut dengan deteksi tepi. Sebuah metode yang lazim menandakan adanya diskontinuitas intensitas yang menandai tepi objek mencakup perhitungan sebuah gradien terhadap intensitas citra, berdasarkan bahwa suatu gradien intensitas lokal
25 yang sangat tinggi menandai transisi intensitas mendadak, kelihatannya sangat kuat menyatakan terjadinya diskontinuitas tepi. Pada operator deteksi tepi, operator Sobel merupakan salah satu yang patut dipertimbangkan, dimana operator ini mempunyai keuntungan dapat menampung tingkat keterpaduan penghalusan bertetangga, sebagai tambahan terhadap fungsi utamanya dalam mengevaluasikan sebuah harga gradien. Operator Sobel menggunakan jendela 3x3 dalam menghitung fungsi gradien G(x,y).
Gambar 2.3 Model Jendela 3x3
Operator deteksi tepi yang telah diproses akan menghasilkan sebuah larik yang setiap titik diberi suatu harga (harga tepi) yang memperkirakan kemungkinan bahwa titik yang dimaksud terletak pada sebuah tepi dalam citra semula. Semakin tinggi harga tepi, semakin besar kemungkinan bahwa titik
26 tersebut membentuk bagian dari tepi sebuah objek. Kita perlu untuk memberi ambang batas untuk menemukan titik-titik tepi yang sebenarnya.
Dalam memberikan ambang batas, maka pemilihan ideal θ umumnya tidak mencapai dalam praktek, memungkinkan munculnya harga θ yang terlalu tinggi, atau harga θ yang terlalu rendah, sehingga gambar tepi yang dihasilkan menjadi tidak terlalu jelas. Outline yang dihasilkan oleh suatu gradien operator/ambang tidak akan sempurna, keduanya mengandung tepi-tepi serta diskontinuitas yang palsu pada tepi yang berlaku, sehingga dibutuhkan langkah berikut yaitu penghalusan pelicinan. Menurut J.R Parker (1994), edge detection adalah suatu cara yang berguna untuk mencari batas-batas dari objek pada suatu citra. Tujuannya adalah untuk memisahkan dan mengidentifikasi objek pada suatu citra. Terdapat suatu prinsip dalam egde detection yaitu : “Batas antara dua wilayah (edge) ditandai oleh suaty perubahan mendadak pada tingkat keabuan”. Adalah
suatu
keharusan
pada
metode
edge
detection
untuk
mempertimbangkan semua arah yang mungkin. Pemikiran mask pada implementasi merupakan salah satu hal yang paling banyak disebut dalam masalah edge detection. Suatu mask adalah gambar kecil, biasanya 3x3 piksel dimana piksel bagian tengan merupakan bagian yang diperiksa. Nilai dari
27 setiap piksel pada mask dikalikan dengan nilai dari piksel citra yang berkorespondensi dengan orientasi terakhir. Nilai baru piksel yang berada di tengah adalah jumlah dari produk individual tadi. Mask dapat diaplikasikan pada semua piksel pada citra yang pertama kali, kemudian hasilnya dapat diakumulasikan pada gambar berikutnya. Proses ini disebut discrete convolution. Jika suatu mask merepresentasikan sebuah operator edge detection maka hasil citranya akan jelas menunjukkan edge, sebaliknya bila tidak maka hasilnya adalah gelap atau hitam. Menurut Luong Chi Mai (1999), edge detection amat berguna karena edge dari suatu citra mengandung banyak informasi. Suatu edge dapat memberi tahu dimana suatu objek berada, apa bentuk dan berapa ukurannya serta teksturnya. Edge dari suatu citra adalah intensitas suatu citra dari nilai paling rendah sampai nilai paling tinggi. Menurut Adrian Low (1991), edge detection merupakan cara pertama yang baik untuk menemukan bentuk geometrik dari suatu objek dalam citra. Sebuah edge detector yaitu operator Sobel, memberikan pengukuran seberapa pantas setiap piksel menjadi bagian dari edge yang sesungguhnya. Ukuran ini disebut juga gradient magnitude. Edge detection yang optimal harus memenuhi kondisi berikut : 1.
Edge detection dapat menemukan seluruh edge yang ada, tidak ada satu pun edge yang hilang/terlewatkan.
2.
Selisih jarak antara batasan piksel yang ditemukan dengan edge yang sesungguhnya harus seminimal mungkin.
28 3.
Jika hanya ada satu edge maka edge detection tidak boleh mendeteksinya sebagai piksel ganda.
2.2.10 Pengenal Pola Pengenalan pola merupakan “suatu fakta yang secara psikologis tidak bisa dimengerti, tapi kita bisa mensimulasikannya apabila kita mengerti sifatsifat”. Pengenalan pola akan menghasilkan suatu pola yang kemudian akan diambil ciri-cirinya atau fitur-fiturnya. Menurut Parker (1994), fitur adalah semua pengukuran yang dilakukan terhadap suatu citra, dapat berupa panjang, luas, keliling, roundness, kelengkungan,
orientasi
dan
sebagainya.
Fitur
digunakan
untuk
mengkarakterisasi objek-objek dalam citra. Lebih baik mempergunakan banyak fitur yang mudah dihitung secara akurat daripada fitur yang sedikit tapi kompleks dengan tingkat keakuratan yang kecil. Cara untuk menemukan fitur dalam citra juga harus mendapat perhatian khusus karena hal tersebut tidaklah mudah dilakukan. Teknik pengenalan pola terbagi menjadi 2 teknik, yaitu prototype dan statistical method. Protoype merupakan teknik pengenalan pola dimana dalam proses klasifikasi membutuhkan basis data. Objek yang akan diuji akan dibandingkan dengan data yang dimiliki pada basis data. Apabila objek tersebut dikenali maka proses klasifikasi dapat berjalan dengan baik. Sedangkan pada teknik statistical method terdapat 2 langkah penting, yaitu : ekstraksi fitur yang tugasnya mengumpulkan dan mengorganisasi data yang
29 menyangkut objek-objek yang terdapat pada citra, kemudian hasilnya yang berupa vector akan diberikan pada pattern classifier kemudian pattern classifier dengan menggunakan classifier akan melokasikan ke kelas yang paling cocok, serupa atau paling tidak mendekati berdasarkan pole yang diterima dari ekstraksi fitur.
Gambar 2.4 Statistical Pattern Recognizer
Menurut Sing-Tze Bow (1984), pengenalan pola kita dapat membagi keseluruhan kerja dalam 3 tahap : •
Perolehan data
•
Data preprocessing
•
Decision classification
Gambar 2.5 Conceptual Representation of a Pattern Recognition Problem
Dalam fase akuisisi data analog dari dunia nyata akan dikumpulkan oleh tranducer lalu dikonversi ke dalam format digital yang cocok untuk
30 preprocessing yang dilakukan komputer. Dalam tahap ini, variabel-variabel fisik dikonversi menjadi data terukur yang mengindikasi intensitas cahaya dan tranducer-nya adalah photocell. Data-data yang terukur kemudian akan dijadikan sebagai input fase dua (data preprocessing) dan kemudian dikumpulkan menjadi satu set fitur karakterisitik sebagai output. Fase ketiga sebenarnya adalah classifier dimana di dalamnya adalah sekumpulan dari decision functions. Dengan kumpulan fitur ini objek tersebut akan diklasifikasi. Menurut Michael C. Fairhurst (1995), pattern didefinisikan dengan sebuah vector pattern (X), yang mengandung elemen-elemen yang bersesuaian dengan ciri-ciri yang dapat diukur dari pattern atau data yang diamati. Jadi X = {x1, x2, x3, ..., xn} adalah suatu vector berdimensi ke-n, dimana x1, x2, x3, ..., xn merupakan pengukuran karakteristik pattern, yang biasa diacu sebagai ciri-ciri atau pendefinisi pattern. Pada sistem pengenal pola perlu dipikirkan mengenai keanggotaan pattern tersebut dalam suatu kelas tertentu atau kategori. Suatu kelas pattern dapat didefinisikan sebagai sekelompok pola yang mengambil bagian dalam beberapa karakteristik dan atribut yang sama.
31
Gambar 2.6 Kerangka Umum Sistem Pengenalan Pola Menurut J.R Parker (1994), semua program yang menampilkan pengenalan pola mempunyai 2 komponen utama. Pertama, ekstraksi fitur, bertugas
untuk
mengumpulkan
dan
mengorganisasi
informasi
yang
menyangkut objek pada citra. Kedua, classifier, menempatkan pattern dari objek pada kelas berdasarkan fitur yang tersedia. Menurut Luong Chi Mai (1999), masalah pada pengenalan pola dapat didefinisikan sebagai memberi label pada objek. Idealnya adalah sistem diberi citra yang terdiri dari objek-objek dan satu set dari label yang berkorespondensi ke model yang sudah dikenal oleh sistem, kemudian sistem tersebut memberikan label kepada daerah objek pada citra. Dalam melaksanakan tugasnya sebuah pengenalan pola harus mempunyai beberapa komponen, yaitu : •
Database dari model Berisi semua model yang sudah dikenal oleh sistem.
32 •
Pendeteksi fitur Pendeteksi fitur menerapkan operator pada citra dan mengidentifikasi lokasi dari fitur yang akan menolong dalam membentuk hipotesis objek.
•
Penghipotesis (hypothesizer)
2.2.11 Artificial Neural Network (Jaringan Saraf Tiruan) Berdasarkan pendapat Rao (1995, p2) Neural Network atau yang biasa disebut juga Artificial neural network merupakan jaringan saraf tiruan dari otak manusia sehingga memiliki prinsip kerja yang sama dengan otak manusia. Pendapat dari Fausett (1993, p3) menyatakan “An artificial neural networks is an information-processing system that has certain perfomance characteristic in common with biological neural networks.” Atau menyatakan jaringan saraf tiruan adalah sistem pemrosesan informasi dengan mengikuti cara kerja jaringan saraf pada manusia. Menurut Haykin (1998, p1), jaringan saraf tiruan adalah prosesor yang didistribusikan secara paralel dalam jumlah besar yang sebenarnya merupakan processing unit sederhana, memiliki kecenderungan alami untuk menyimpan pengetahuan (knowledge) yang sudag dilatih sebelumnya dan dapat dipakai kapan saja. Neural network memiliki sifat seperti otak manusia dalam dua macam bentuk, yaitu: 1. knowledge diperoleh dari jaringan setelah mealui proses pembelajaran (learning process)
33 2. Hubungan antar-neuron yang juga dikenal sebagai sypnatic weight digunakan untuk menyimpan knowledge yang sudah diperoleh sebelumnya. Knowledge sendiri didefinisikan (Haykin, 1998, p23) sebagai informasi yang disimpan atau model yang dipakai oleh seseorang atau mesin untuk menginterpretasikan, memperkirakan, dan memberikan respon yang tepat terhadap dunia luar. Jaringan saraf tiruan digunakan jika terdapat kondisi yang memerlukan: 1. Ketidaklinearan (nonlinearity) Jaringan saraf tiruan terbuat dari interkoneksi neuron non linear. Sifat ketidaklinearan ini terdistribusi dalam jaringan. Ketidaklinearan adalah properti yang sangat penting, terutama bila mekanisma fisik yang mendasarinya bertanggungjawab dalam menghasilkan sinyal input. 2. Input-output mapping Paradigma pembelajaran yang popuer sering disebut supervised learning yang melibatkan modifikasi dari bobot sinapsis sebuah jaringan neural dengan melibatkan contoh pelatihan yang terlabel. 3. Neurobiological Analogy Perancangan neural network dimotivasi oleh anatomi otak, dimana pemrosesan paralel toleransi kesalahan tidak hanya memungkinkan secara fisik, tapi juga secara kecepatan. 4. Adaptivity Neural network mempunyai kemampuan dasar untuk meyesuaikan
34 bobot untuk mengubah lingkungan sekitar. Neuralnetwork yang terlatih di lingkungan khusus dapat dilatih ulang dengan mudah dalam menghadapi perubahan yang sedikit dalam mengubah kondisi lingkungan yang sedang beroperasi. 5. Evidental response (respon yang jelas) Pada klasifikasi pola (pattern classification), neural network dapat dirancang untuk menyediakan informasi tidak hanya pola yang penting yang terpilih, tapi juga kepercayaan dalam pembuatan keputusan. Informasi yang terakhir ini dapat digunakan untuk menolal pola yang tidak jelas. 6. Fault tolerance (toleransi kesalahan) Ketika jaringan saraf tiruan diimplementasikan dalam bentuk hardware, kemungkinan untuk menjadi toleransi kesalahan yang terpadu atau kemampuan dari komputasi yang kuat dan perkerjaannya, dapat menurun secara perlahan di bawah kondisi pengoperasian yang kurang baik. Misal, bila sebuah neuron atau sambungan koneksinya rusak, pemanggilan kembali pola penyimpanannya rendah. Namun karena penyimpanan informasi dalam jaringan terdistribusi, kerusakan dapat diperluas sebelum respons jaringan diturunkan dengan sungguhsungguh. Sebuah jaringan saraf buatan terdiri dari sejumlah elemen pemrosesan (processing element/PE) sederhana, yaitu sel/neuron yang terhubungkan satu sama lain dengan weight yang akan digunakan untuk menyelesaikan masalah
35 dalam jaringan. Elemen pemrosesan ini menerima masukan berupa sinyal elektrik yang direpresentasikan dalam nilai numerik (angka). Berbeda dengan cara kerja otak manusia, pada jaringan saraf tiruan total sinyal yang diterima akan dihitung oleh fungsi aktivasi untuk menentukan besarnya kekuatan sinyal keluaran sebuah elemen pemrosesan. Jaringan saraf tiruan telah dikembangkan sebagai hasil generalisasi dari model matematika yang berasal dari saraf manusia dengan dasar asumsi sebagai berikut (Fausett, 1994, p3): Jaringan saraf tiruan telah dikembangkan sebagai hasil generalisasi dari model matematika yang berasal dari saraf manusia dengan dasar asumsi sebagai berikut (Fausett, 1994, p3): a.
Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron).
b.
Sinyal dikirim antar neuro melalui connection link.
c. Setiap connection link mempunyai weight yang saling berhubungan. d. Setiap neuron mempunyai sebuah fungsi activasi dalam masukkan jaringan untuk menentukan sinyal keluaran.
Gambar 2.7 Struktur sebuah Neuron
36 Karakteristik dari jaringan saraf tiruan (Fausett, 1994,p3) adalah: 1.
Pola koneksi antara neuron atau arsitektur
2.
Kemampuan untuk menentukan weight pada koneksi (training, learning atau algoritma)
3.
Fungsi aktivasinya.
2.2.12 Arsitektur Jaringan Saraf Tiruan Sebuah jaringan saraf tiruan terdiri dari sekumpulan elemen dimana satu subgroup melakukan perhitungan independent dan mengirimkan hasilnya kepada subgroup lainnya (Rao, 1995, P2). Neuron biasanya dioperasikan secara paralel atau dikonfigurasikan pada arsitektur yang regular. Neuron juga sering dihubungkan secara layer (lapisan). Setiap koneksi diwakilkan dengan angka yang disebut weight (bobot), yang berubah-ubah sesuai dengan input yang diberikan. Pada kenyataannya, kebanyakkan JST harus dilatih untuk memperlajari pola dari masukkanmasukkan yang diberikan. Jaringan saraf tiruan terdiri dari tiga proses, yaitu : learning, networks storing, dan recalling. Setelah semua citra diproses dan fitur diekstrak, data akan dipelajari oleh Jaringan saraf tiruan melalui proses learning yang akan menghasilkan data yang direpresentasikan dalam bentuk nilai weight. Kemudian weight hasil learning yang mengandung data identitas buah dan karakteristik buah akan disimpan ke dalam sebuah file melalui proses network storing, yang digunakan untuk proses recalling pada saat pengujian.
37
2.2.13 Backpropagation (Propagasi Balik) Backpropagasi merupakan metode pelatihan yang menggunakan multilayer perceptron untuk memecahkan masalah yang rumit dengan metode pelatihan terawasi, yaitu pelatihan yang menggunakan pasangan masukan dan keluaran dimana bobot yang akan dihitung, disesuaikan berdasarkan proses pelatihan yang dilakukan hingga mencapai target keluaran yang diinginkan. Backpropagation diperkenalkan pertama kali oleh G. E. Hinton, E. Rumehart dan R.J. Williams pada tahun 1986 sebagai sebuah teknik umum untuk melakukan pelatihan pada jaringan saraf tiruan berlayer banyak yang memegang peranan penting yang membuat jaringan saraf tiruan alat bantu untuk memecahkan banyak variasi masalah. Paradigma dan algoritma backpropagation dikembangkan oleh Paul Werbos. Menurut Rao (1995, p87), tipe network ini adalah yang paling umum digunakan karena memiliki prosedur pelatihan yang relatif mudah. Haykin (1998, p156) mengatakan backpropagation sendiri menggunakan memory yang lebih sedikit daripada algoritma yang lainnya dan dapat memberikan hasil dengan tingkat kesalahan yang masih dapat diterima dengan kecepatan pemrosesan yang cukup cepat. Pada metode ini, jaringan tidak memiliki koneksi khusus untuk melakukan perhitungan mundur dari satu layer menuju layer sebelumnya. Namun error pada output layer akan dipropagasikan ke belakang menuju input layer.
38
2.2.14 Arsitektur Backpropagation Backpropagation merupakan jaringan saraf tiruan dengan multilayer, yang terdiri dari input layer (lapisan masukan), hidden layer (lapisan tersembunyi/ tengah), output layer (lapisan keluaran) (Fausett, 1994, p290). Banyaknya lapisan pada lapisan tengah dapat terdiri dari 1 atau lebih lapisan. Selain itu, lapisan keluaran dan lapisan tengah dapat mempunyai bias. Tiap lapisan pada backpropagation terdiri dari unit-unit yang saling terhubung antar lapisan. Jadi setiap neuron pada suatu lapisan dalam backpropagasi mendapat nilai masukan dari semua neuron pada lapisan sebelumnya beserta satu sinyal bias.
Gambar 2.8 Lapisan Neural Network
2.2.15 Metode Kerja Backpropagation Backpropagasi memiliki metode pembelajaran supervised learning dimana lapisan masukan akan menerima pola masukan dan melakukan proses
komputasi berdasarkan bobot awal yang diperoleh secara acak (random). Jika keluaran dari jaringan berbeda dengan target yang diharapkan maka jaringan
39 melakukan penyesuaian terhadap bobot yang ada. Proses ini akan terus berlanjut hingga keluaran dari jaringan dan target yang diharapkan menjadi sama. Proses pembelajaran membutuhkan waktu yang lama hingga mencapai nilai tersebut. Oleh karena itu proses learning dibatasi dan akan berhenti jika perbedaan antara output dan target sudah mencapai nilai yang lebih kecil dari nilai toleransi (error rate). Besarnya penyesuaian bobot pada setiap siklus pembelajaran ditentukan oleh parameter yang disebut learning rate. Setelah tahap pembelajaran, jaringan saraf tiruan siap untuk memasuki tahap recalling / searching yang merupakan proses dimana jaringan saraf tiruan menerima masukan dari dunia luar melalui lapisan masukan dan melalui komputasi pda masing-masing neuron yang terdapat di dalam lapisan akan dihasilkan keluaran pada lapisan keluaran analogi pada otak manusia seperti menerima masukan berupa gambar buah kemudian otak manusia akan melakukan komputasi sehingga mengenali nama buah tersebut. Pada pelatihan backpropagation terdapat 2 fase, yaitu proses propagasi nilai aktivasi atau masukan dan proses penyesuaian dengan keluaran yang diharapkan (Fausett, 1994, p290). Proses propagasi nilai aktivasi tersebut adalah proses perubahan nilai bobot koneksi antar neuron yang menghubungkan lapisan jaringan, baik itu antar lapisan masukan dengan lapisan tersembunyi, lapisan tersembunyi yang satu dengan yang lainnya, maupun bobot koneksi lapisan tersembunyi dengan lapisan keluaran. Nilai neuron dari setiap keluaran merupakan hasil dari fungsi aktivasi. Fungsi ini biasanya digunakan untuk menurunkan nilai aktivasi dan
40 mengubahnya menjadi suatu nilai keluaran yang berarti. Kadang-kadang fungsi ini juga digunakan untuk menambahkan nilai bias. Fungsi sigmoid merupakan fungsi aktivasi yang digunakan dalam skripsi ini. Selain fungsi sigmoid biner ini, fungsi aktivasi lainnya adalah step, ramp, dan linear. Dikenal dua fungsi sigmoid, yaitu bipolar sigmoid dan binary sigmoid (sigmoid biner). Menurut Fausett (1994, p293) fungsi sigmoid memiliki dua jenis formula yang berbeda dalam hal rentang nilai yang dihasilkan :
1. ƒ(x) =
2 - 1 , akan menghasilkan rentang nilai antara -1 sampai 1 1+℮
-x
Gambar 2.9 Fungsi Sigmoid Bipolar
2. ƒ(x) =
1 1+℮
, akan menghasilkan rentang nilai antara 0 sampai 1 -x
41
Gambar 2.10 Fungsi Sigmoid Biner
Ciri-ciri node fungsi aktivasi adalah sebagai berikut : a.
Kontinu
b.
Dapat dideteksi
c.
Turunan fungsi mudah dihitung
d.
Fungsi yang banyak digunakan : Fungsi Sigmoid Biner dan Fungsi Sigmoid Bipolar.
Gambar 2.11 Model Fungsi Sigmoid Biner
Proses penyesuaian dengan keluaran yang diharapkan adalah pengecekan nilai keluaran yang dihasilkan oleh jaringan dengan keluaran yang
42 diharapkan dengan batas toleransi kesalahan tertentu. Selama nilai keluaran tidak sesuai dengan keluaran yang diharapakan, maka proses pelatihan akan diulang kembali.
2.2.16 Tahapan Pelatihan Backpropagation Seperti halnya otak manusia membutuhkan proses learning (belajar) dimana otak akan menerima semua input dari semua indera disimpan dalam memory (ingatan manusia). Demikian juga pada jaringan saraf tiruan membutuhkan
sebuah
proses
pembelajaran
yang
disebut
proses
pembelajaran/training/learing/storing. Haykin (1998, p50) mengatakan learning adalah proses dimana parameter bebas dari jaringan saraf tiruan diadaptasi melalui stimulasi dari lingkungan di mana jaringan tersebut diletakkan. Dalam proses pelatihan jaringan backpropagation ini, digunakan fungsi nilai ambang batas binary sigmoid. Sebelum melakukan proses pelatihan, terdapat beberapa parameter jaringan yang harus ditentukan dahulu (Fausett, 1994, p292) yaitu: a.
Tingkat pelatihan (learning rate) yang dilambangkan dengan alpha. Parameter ini harus diberikan dan mempunyai nilai positif kurang dari 1. Semakin tinggi nilainya, semakin cepat kemampuan jaringan untuk belajar, tetapi hal ini kurang baik karena error yang dihasilkan tidak merata.
b.
Toleransi kesalahan (error tolerance), semakin kecil maka jaringan akan
43 memiliki nilai bobot yang lebih akurat, tetapi akan memperpanjang waktu pelatihan. c.
Nilai ambang batas atau bias (threshold value), dilambangkan dengan Theta. Parameter ini tidak harus diberikan (optional). Secara
garis
besar
langkah-langkah
yang
terjadi
di
dalam
backpropagation pada saat proses pembelajaran terbagi menjadi tiga tahapan: 1.
Feedforward Pada tahap ini setiap unit pada unit masukan menerima masukan dari fitus yang telah diekstrak, kemudian masukan tersebut akan diproses oleh unit dengan fungsi aktivasi yang digunakanuntuk menghasilkan keluaran. Hasil keluaran yang didapatkan akan diteruskan oleh unit masukan ke setiap unit pada unit di lapisan tengah pertama, kedua dan seterusnya. Setiap unit pada unit lapisan tengah akan menjumlahkan semua masukan yang dterima, kemudia memprosesnya dengan fungsi aktivasi yang digunakan untuk menghasilkan keluaran yang akan diteruskan ke unit lapisan tengah seterusnya atau ke unit lapisan keluaran. Terakhir, setiap unit pada unit lapisan keluaran akan menjumlahkan semua masukan yang diterima dari unit lapisan tengah terakhir yang akan diproses dengan fungsi aktivasi yang di gunakan untuk mendapatkan sebuah nilai keluaran yang akan dibandingkan dengan nilai target yang telah ditentukan.
2.
Backpropagation of the associated error Hasil perbandingan nilai keluaran yang dihasilkan oleh unit lapisan keluaran dengan nilai terget keluaran yang telah ditentukan akan
44 digunakan untuk menghitung error system (nilai mutlak dari selisih nilai keluaran pada unit lapisan keluaran dengan target keluaran yang telah ditentukan). Kemudian nilai error tersebut digunakan untuk menghitung error di setiap unit pada lapisan tengah yang akan digunakan pada weight adjusment. 3.
Adjustment of the weight Setelah didapatkan nilai error disetiap unit pada lapisan tengah semua bobot yang menghubungkan unit pada lapisan masukan denan unit lapisan tengah, unit lapisan tengah dengan unit lapisan tengah lain dan unit lapisan tengah dengan unit lapisan keluaran akan diperbaharui berdasarkan learning rate (kecepatan belajar pada jaringan) dan nilai error yang didapatkan disetiap unit.
2.2.17 Algoritma Pelatihan Backpropagation Berikut adalah algoritma untuk melakukan tahapan-tahapan pelatihan metode backpropagation: Feedforward: Input dan output untuk input unit; FOR a = 0 TO x i_ina = feature ke-a yang diekstrak dari pola i_outa = i_ina END FOR Input dan output untuk hidden units: FOR b = 0 TO y h_inb = 0
45
FOR a = 0 TO x+1 h_inb = h_inb + i_outa * iab END FOR h_outb =activation (h_inb) END FOR
Input dan output untuk output units: FOR c = 0 TO z o_inc = 0 FOR b = 0 TO y+1 o_inc = o_inc + h_outb * hbc END FOR o_outc = activation (o_inc) END FOR
Backpropagation of error Error input dan error output pada output units: FOR c = 0 TO z o_errinc = (target keluaran dari pola yang ke-c – o_outc) * deactivation (o_inc) o_erroutc = o_errinc FOR b = 0 TO y+1 h_correctionbc = a * o_erroutc * h_outb dimana a adalah learning rate END FOR END FOR Error input dan erro output pada hidden units: FOR b = 0 TO y
46 h_errinb = FOR c = 0 TO z h_errinb = h_errinb + o_erroutc * hbc END FOR h_erroutb = h_errinb * deactivation (h_inb) FOR a = 0 To x+1 i_correctionab = a * h_erroutb * i_outa END FOR END FOR Weight adjustment: Weight dari hidden units ke output units: FOR b = 0 TO y+1 FOR c = 0 TO z Hbc = hbc + h_correctionbc END FOR END FOR Weight dari input units ke hidden units: FOR a = 0 TO x+1 FOR b = 0 TO y Iab = iab + i_correctionab END FOR END FOR
2.3 Sistem Pakar Sistem pakar terdiri atas Definisi Sistem Pakar, Konsep Dasar Sistem Pakar, Perbandingan Sistem Pakar dengan Sistem Konvensional, Elemen Manusia dalam Sistem Pakar, Kelebihan dan Keterbatasan Sistem Pakar, Akuisisi Pengetahuan, Representasi Pengetahuan, Teknik Inferensi, Faktor Ketidakpastian Sistem Pakar, Faktor Kepastian, dan Kombinasi Faktor Kepastian.
47
2.3.1 Definisi Sistem Pakar Sistem Pakar menurut Turban dan Frenzel (1992, p74) adalah suatu sistem yang diusahakan dapat mengadopsi pengetahuan manusia kedalam komputer, agar komputer tersebut dapat menyelesaikan masalah seperti yang biasa dilakukan oleh para pakar. Sistem pakar yang baik dirancang untuk dapat menyelesaikan suatu permasalahan tertentu dengan meniru prinsip kerja dari para pakar. Dengan sistem ini, user akan mampu menyelesaikan masalah yang cukup rumit yang sebenarnya hanya dapat diselesaikan dengan bantuan para pakar. Bagi para pakar sendiri, sistem ini juga akan membantu aktivitasnya sebagai seorang asisten yang sangat berpengalaman. Beberapa definisi tentang sistem pakar, antara lain : a.
Giarratano dan Riley (1998, p2) Sistem pakar adalah suatu sistem komputer yang bisa menyamai atau meniru kemampuan dari seorang pakar.
b.
Jackson (1992, p2) Sistem pakar adalah program komputer yang mewakili dan menelusuri pengetahuan dari beberapa subyek spesial untuk memecahkan masalah atau memberikan nasihat.
c.
Rich dan Knight (1991, p574) Sistem pakar adalah suatu sistem yang memiliki tujuan untuk menyelesaikan masalah yang biasa dilakukan oleh seorang pakar.
48 2.3.2 Konsep Dasar Sistem Pakar Menurut Turban dan Frenzel (1992, pp78-81), konsep dasar sistem pakar terdiri atas : a.
Expertise (keahlian). Keahlian adalah suatu kelebihan penguasaan pengetahuan di bidang tertentu yang diperoleh dari pelatihan, membaca dan pengalaman sendiri. Contoh bentuk pengetahuan yang termasuk keahlian adalah : 1) Fakta-fakta pada lingkup permasalahan tertentu 2) Teori-teori pada lingkup tertentu 3) Prosedur-prosedur dan aturan-aturan berkenaan dengan lingkup permasalahan tertentu 4) Strategi-strategi global untuk meyelesaikan masalah 5) Meta-knowledge.
Bentuk-bentuk
ini
memungkinkan
para
ahli
untuk
dapat
mengambil keputusan lebih cepat dan lebih baik daripada seseorang
yang bukan seorang ahli.
b.
Expert (pakar) Cukup sulit untuk menjelaskan arti “pakar” karena sebenarnya yang dibicarakan adalah mengenai derajat atau tingkatan dari keahlian seseorang. Untuk menjelaskan arti pakar itu sendiri terdapat pemikiran seberapa banyak keahlian yang harus dimiliki dari seseorang sebelum dapat dikatakan sebagai seorang pakar. Sedangkan tingkah laku yang
49 menyangkut aktivitas seorang pakar meliputi kemampuan pengenalan dan perumusan masalah, penyelesaian masalah secara cepat dan tepat, penjelasan dari solusi yang dihasilkan, penyusunan kembali pengetahuan, pemecahan aturan-aturan jika dibutuhkan, menentukan relevan tidaknya keahlian mereka.
c.
Transferring expertise (pengalihan keahlian) Tujuan utama dari sistem pakar adalah pengalihan keahlian yang dimiliki seorang pakar ke dalam suatu sistem komputer untuk kemudian diahlikan lagi ke orang lain yang bukan pakar. Proses ini membutuhkan 4 aktivitas yaitu : penambahan pengetahuan (dari para ahli atau sumber-sumber lainnya), representasi pengetahuan (ke komputer), inferensi pengetahuan, dan pengalihan pengetahuan ke pengguna. Pengetahuan yang disimpan di komputer disebut sebagai basis pengetahuan. Ada dua tipe pengetahuan, yaitu: fakta dan prosedur (umumnya berupa aturan).
d.
Inference (kesimpulan) Kesimpulan dari sistem pakar adalah kemampuannya dalam memberikan penalaran, yaitu dengan menyimpan semua keahlian dalam basis pengetahuan dan ketersediaan program yang dapat mengakses basis data sehingga komputer dapat memberikan kesimpulan. Penarikan kesimpulan dilakukan oleh sebuah komponen yang disebut mesin inferensi / mesin pengambil kesimpulan (inference engine) yang berisi aturan-aturan penyelesaian masalah.
50 e.
Rules (aturan) Sebagian besar dari sistem pakar adalah sistem yang berbasiskan aturan. Karena basis pengetahuan yang diterapkan ke dalam komputer disimpan dalam bentuk aturan-aturan sebagai prosedur pemecahan masalah.
f.
Explanation capability (kemampuan menjelaskan) Kemampuan dalam menjelaskan dan memberikan rekomendasi mengapa suatu solusi tertentu digunakan. Kemampuan inilah yang membedakan sistem pakar dengan sistem konvensional.
2.3.3 Perbandingan Sistem Pakar dengan Sistem Konvensional Perbandingan sistem pakar dengan sistem konvensional dapat dilihat pada tabel 2.1 (Turban dan Frenzel, 1992, p82).
Tabel 2.1 Perbandingan Sistem Pakar dengan Sistem Konvensional
SISTEM KONVENSIONAL Informasi dan pemrosesannya biasanya digabungkan dalam satu program sekuensial. Program yang telah dibuat tidak dapat melakukan kesalahan kecuali programmernya yang dapat membuat kesalahan (human error). Pada umumnya sistem konvensional tidak dapat menjelaskan mengapa suatu input data itu dibutuhkan, atau bagaimana output itu diperoleh. Dalam melakukan pengubahan program cukup sulit dilakukan. Sistem hanya akan beroperasi jika sistem tersebut telah lengkap. Eksekusi dilakukan setahap demi setahap.
SISTEM PAKAR Basis pengetahuan dipisahkan secara jelas dari proses mekanisme dalam penarikan kesimpulan. Program dapat melakukan kesalahan.
Dalam sistem pakar penjelasan merupakan bagian terpenting.
Pengubahan aturan dapat dilakukan dengan mudah. Sistem dapat beroperasi hanya dengan beberapa aturan. Eksekusi dilakukan pada keseluruhan basis pengetahuan.
51 Dapat memanipulasi basis data yang banyak secara efektif. Representasi dengan menggunakan Data.
Dapat memanipulasi basis pengetahuan yang banyak secara efektif. Representasi dengan menggunakan pengetahuan.
2.3.4 Elemen Manusia dalam Sistem Pakar Menurut Turban dan Frenzel (1992,pp85-87) ada paling sedikit dua manusia atau lebih, yang terlibat dalam pengembangan dan penggunaan dari sistem pakar. Setidaknya terdapat seorang pakar dan seorang penggguna. a.
Expert (pakar) Pakar biasanya ditunjukan sebagai seorang yang ahli dibidangnya. Orang yang memiliki pengetahuan khusus, berpengalaman, dan memiliki kemampuan untuk mengembangkan pengetahuan yang dimiliki untuk memberikan saran dan memecahkan masalah. Pekerjaan utama seorang pakar adalah memberikan saran tentang bagaimana seorang dapat melakukan
pekerjaannya
sehingga
sistem
pengetahuan
dapat
dilaksanakan. Seorang pakar mengetahui fakta yang penting dan mengerti maksud hubungan yang ada diantara fakta tersebut. b.
Knowledge Engineer Seorang knowledge engineer membantu para pakar dalam menyusun bidang permasalahan dengan menafsirkan dan menggabungkan jawabanjawaban manusia kedalam pertanyaan-pertanyaan, menggambarkan persamaannya, memberikan contoh-contoh, dan mengembangkannya menjadi suatu konsep yang jelas. Biasanya seorang knowledge engineer juga merupakan seorang system builder.
52 c.
User (pengguna) Sistem pakar mempunyai beberapa jenis pengguna, yaitu : 1) Pengguna nonpakar : mencari saran-saran secara langsung, dalam hal ini sistem pakar berfungsi sebagai konsultan atau penasehat. 2) Seorang pelajar yang ingin belajar, dalam hal ini sistem pakar berfungsi sebagai instruktur. 3) Seorang pembangun sistem pakar yang ingin membangun atau meningkatkan basis pengetahuan, dalam hal ini sistem pakar berfungsi sebagai mitra (partner). 4) Seorang pakar, dalam hal ini sistem pakar berfungsi sebagai asisten. Seorang pengguna tidak harus seorang yang ahli dalam komputer tetapi bisa juga seseorang yang kurang memiliki pengetahuan dalam bidang masalah yang akan dipecahkan. Seorang pengguna harus memiliki keinginan untuk membuat keputusan menjadi lebih baik, lebih murah, lebih cepat dengan menggunakan sistem pakar.
d.
Partisipan lain Beberapa contoh partisipan lain yang mungkin terlibat dalam sistem pakar, seorang system builder yang membantu di dalam penggabungan sistem pakar dengan sistem komputerisasi lainnya. Seorang tool builder yang menyediakan atau membangun alat khusus. Vendor, yang menyediakan alat-alat dan sarana, dan support staff yang memberikan bantuan teknikal.
53 2.3.5 Kelebihan dan Keterbatasan Sistem Pakar Sistem pakar memiliki beberapa kelebihan (Turban dan Frenzel, 1992,pp94-98), yaitu :
a.
Meningkatkan output dan produktivitas. Sistem pakar dapat bekerja lebih cepat dari manusia, sehingga dapat menghemat waktu dan biaya yang dikeluarkan.
b.
Meningkatkan kualitas. Sistem pakar dapat meningkatkan kualitas dengan memberikan saran yang konsisten dan dapat mengurangi terjadinya kesalahan (error rate).
c.
Mengurangi downtime. Banyak sistem pakar operasional digunakan untuk mendiagnosa kesalahan fungsi dan menentukan perbaikan-perbaikan yang harus dilakukan. Sistem pakar dapat mendeteksi kesalahan (malfunction) dalam produksi yang terjadi sehingga dapat mengurangi terjadinya kehilangan waktu yang sangat merugikan perusahaan.
d.
Menyimpan kepakaran yang langka. Kelangkaan kepakaran menjadi nyata pada situasi dimana hanya terdapat sedikit pakar untuk suatu masalah, seperti pakar tersebut pensiun atau meninggalkan pekerjaannya. Sistem pakar dapat digunakan untuk memperoleh keahlian yang dimiliki oleh pakar tersebut.
e.
Fleksibilitas. Sistem pakar memberikan fleksibilitas dalam menyediakan pelayanan serta dalam pengembangannya.
54 f.
Peralatan pengoperasian yang lebih mudah. Sistem pakar dapat membuat peralatan yang kompleks pengoperasiannya sehingga menjadi lebih mudah untuk dioperasikan.
g.
Penghilangan kebutuhan akan peralatan yang mahal. Pada umumnya manusia harus bergantung pada peralatan yang mahal dalam melakukan pengawasan dan kontrol. Sistem pakar dapat melakukan tugas yang sama dengan peralatan yang lebih murah, oleh karena memiliki kemampuan untuk melakukan penyelidikan informasi yang disediakan oleh peralatan tersebut secara menyeluruh dan cepat.
h.
Beroperasi pada lingkungan yang berbahaya. Banyak pekerjaan yang menyebabkan manusia bekerja pada lingkungan yang
berbahaya.
Sistem
pakar
memungkinkan
manusia
untuk
menghindari lingkungan yang berbahaya, misalnya seperti pada konflik militer dan juga pada lingkungan yang panas, lembab, ataupun beracun. i.
Memiliki kemampuan untuk mengakses pengetahuan. Sistem pakar membuat pengetahuan dan informasi menjadi lebih mudah untuk dapat diakses.
j.
Kehandalan (reliabilitas). Sistem pakar dapat dihandalkan karena sistem pakar tidak pernah lelah, bosan, dan sakit. Sistem pakar secara konsisten menaruh perhatian pada setiap detil sehingga tidak melewatkan informasi yang relevan dan memberikan solusi yang potensial.
55 k.
Meningkatkan kemampuan dari sistem komputerisasi lain. Penggabungan sistem pakar dengan sistem yang lain menyebabkan sistem tersebut menjadi lebih efektif, bekerja lebih cepat, dan memberikan solusi dengan kualitas yang lebih baik.
l.
Penggabungan opini dari beberapa pakar. Penggabungan opini dari beberapa pakar ke dalam basis pengetahuan dapat meningkatkan kualitas saran dan kesimpulan yang diberikan.
m. Memiliki kemampuan untuk bekerja dengan informasi yang tidak lengkap dan mengandung ketidakpastian. Berbeda dengan sistem komputer konvensional, sistem pakar dapat bekerja dengan informasi yang tidak lengkap, seperti jawaban “tidak tahu”, dengan menggunakan tingkat kemungkinan (probabilitas) terhadap hasil yang diberikan. n.
Penyediaan pelatihan. Sistem pakar dapat menyediakan pelatihan, bagi pemula yang bekerja dengan sistem pakar maka pengalamannya akan terus meningkat.
o.
Meningkatkan solusi pemecahan masalah. Sistem pakar meningkatkan solusi pemecahan masalah karena merupakan penggabungan dari analisis pakar yang terbaik. Sistem pakar juga dapat meningkatkan pemahaman pengguna dengan menggunakan penjelasan dan sistem pakar juga dapat mendukung pemecahan dari masalah yang rumit.
56 p.
Memiliki kemampuan untuk memecahkan masalah yang sulit. Beberapa sistem pakar telah mampu memecahkan permasalahan yang kebutuhan lingkup pengetahuannya melebihi manusia.
q.
Memungkinkan untuk mentransfer pengetahuan ke tempat yang jauh. Salah satu keuntungan utama dari sistem pakar adalah sistem pakar tersebut dapat melewati perbatasan internasional, misalnya dapat digunakan pada daerah atau negara yang tidak dapat membayar keahlian dari pakar ataupun ke tempat yang tidak cukup memiliki pakar. Selain memiliki kelebihan, sistem pakar juga memiliki permasalahan
dan keterbatasan (Turban dan Frenzel, 1992, pp98-99), antara lain : 1) Pengetahuan tidak selalu tersedia. 2) Kepakaran sulit didapat dari seorang pakar. 3) Pendekatan dari setiap pakar untuk situasi yang dinilai dapat berbeda. 4) Sulit bagi seseorang pakar untuk menilai situasi yang baik ketika berada di bawah tekanan waktu. 5) Penggunaan sistem pakar memiliki keterbatasan kemampuan alami. 6) Sistem pakar bekerja dengan baik hanya pada ruang lingkup yang sempit. 7) Kosakata yang digunakan para pakar untuk mengekspresikan fakta dan hubungan biasanya terbatas dan tidak dimengerti oleh pakar lain. 8) Konstruksi sistem pakar menjadi mahal karena dibutuhkan bantuan dari knowledge engineer yang jarang dan mahal. 9) Kurang kepercayaan dari pengguna dapat menjadi halangan untuk penggunaan sistem pakar.
57 2.3.6 Akuisisi Pengetahuan Berdasarkan Turban dan Frenzel (1992, pp126-128) proses akuisisi pengetahuan dibagi ke dalam lima tahap, yaitu : a.
Identifikasi. Pada tahapan ini diidentifikasi masalah yang akan dikaji. Masalah bisa dibagi menjadi beberapa sub-masalah jika perlu, partisipan (pakar dan pengguna) diidentifikasi, dan sumber daya diuraikan. Knowledge engineer mempelajari situasi dan menyetujui maksud dari pembuatan aplikasi kecerdasan buatan.
b.
Konseptualisasi. Konseptualisasi merupakan tahapan dalam menentukan konsep untuk menggambarkan pengetahuan yang relevan dengan mengambil keputusan untuk situasi yang sangat beragam sehingga perlu ditentukan konsep dan hubungannya.
c.
Perumusan. Pengetahuan pengetahuan.
diperoleh
untuk
Bagaimana
direpresentasikan pengetahuan
ke
dalam
basis
diorganisasikan
dan
direpresentasikan dapat menentukan metodologi akuisisi. d.
Implementasi. Pada tahap ini, dilakukan pemrograman dari pengetahuan ke dalam komputer. Perbaikan pengetahuan dibuat dengan penambahan akuisisi atau perubahan. Sebuah prototipe sistem pakar dikembangkan pada tahapan ini.
58 e.
Pengujian. Pada tahap ini, seorang knowledge engineer akan menguji sistem dengan memakai contoh-contoh kasus yang ada. Kemudian hasilnya akan ditunjukan kepada pakar-pakar dan aturan-aturannya akan direvisi bila diperlukan. Dengan kata lain validitas dari pengetahuan diperiksa.
2.3.7 Representasi Pengetahuan Ada beberapa cara untuk merepresentasikan pengetahuan (Turban dan
Frenzel, 1992, pp170-187) yaitu melalui : a.
Logika (logic) Dua bentuk komputasi logic adalah proporsional logic (logika proporsi) dan predicate logic (logika predikat). Representasi pengetahuan dengan logika dapat dilihat pada gambar 2.12
Gambar 2.12 Proses Logika
1) Logika proposisi Logika proposisi adalah sebuah pernyataan yang bisa bernilai benar atau salah yang dapat menjadi premis yang dapat digunakan untuk menurunkan proporsi baru. Aturan digunakan untuk menentukan kebenaran (true) atau kesalahan (false) pada proporsi baru. Pada
59 logika proposisi digunakan simbol seperti huruf alfabet untuk menampilkan berbagai proposisi, premis atau kesimpulan. Contoh :
Pernyataan A : Hasan pergi kuliah setiap hari Selasa dan Sabtu. Pernyataan B : Hari ini adalah hari Senin. Kesimpulan : Hasan tidak akan pergi kuliah pada hari ini.
2) Logika Predikat Logika predikat merupakan bentuk logika yang lebih kompleks dimana konsep dan aturan yang digunakan sama dengan logika proposisi. Logika predikat memberikan kemampuan tambahan untuk merepresentasikan pengetahuan secara mendetil. Logika predikat memungkinkan untuk penguraian objek, karakteristik objek atau penegasan objek.
b.
Semantic Network Semantic network adalah gambaran grafis dari pengetahuan yang terdiri dari simpul (node) dan hubungan antara node (link) yang memperlihatkan hubungan hirarkis antar objek. Representasi pengetahuan dengan semantic network.
60 c.
Script Script merupakan bentuk representasi pengetahuan yang mirip dengan frame, tetapi selain menggambarkan objek script juga menggambarkan urutan kejadian-kejadian. Elemen-elemen script terdiri dari entry conditions, props, roles, tracks dan scenes.
d.
Pohon Keputusan Pohon keputusan adalah tree yang berhubungan dengan tabel keputusan dan sering digunakan dalam analisis sistem (bukan sistem kecerdasan buatan). Representasi pengetahuan dengan tree dapat dilihat pada gambar 2.13.
Gambar 2.13 Representasi Pengetahuan dengan Tree
61 e.
Objects, Attribute dan Values Salah satu cara yang paling umum untuk merepresentasikan pengetahuan adalah dengan menggunakan objects, attribute, dan value (O-A-V triplet). Objects dapat berupa fisik atau konseptual. Atrribute adalah karakteristik dari object. Value adalah ukuran spesifik dari attribute dalam situasi tertentu. Representasi pengetahuan menggunakan O-A-V triplet dapat dilihat pada tabel 2.2.
Tabel 2.2 Representatif O-A-V Object
Atrributes
Values
Rumah
Kamar tidur
2, 3, 4
Rumah
Warna
Hijau, putih, cokelat
Penerimaan di
Rata-rata nilai ujian masuk
3.0, 3.5, 3.7
Kontrol inventori
Level dari inventori
15, 20, 30
Kamar tidur
Ukuran
9 x 10, 10 x 12
universitas
2.3.8 Teknik Inferensi Dalam sistem pakar, teknik inferensi untuk memecahkan persoalan dapat dilakukan dengan merangkai kaidah produksi (chaining). Jenis pencarian menurut Luger dan Stubblefield (1993,p86) yaitu : a.
Forward Chaining Forward chaining adalah cara pemecahan masalah yang dimulai dari fakta masalah yang diberikan dan kumpulan langkah-langkah sah atau
62 aturan-aturan untuk berpindah state. Tanda-tanda atau kunci keberhasilan akan terkumpul dengan sendirinya ketika mulai mengarah ke kesimpulan. Contoh diagram Forward Chaining dapat dilihat pada gambar 2.14.
Gambar 2.14 Diagram Forward Chaining
b.
Backward Chaining Backward chaining adalah cara pemecahan masalah yang dimulai dari tujuan yang ingin kita cari. Melihat aturan-aturan atau langkah-langkah sah yang dapat digunakan untuk menghasilkan tujuan ini dan menentukan kondisi apa yang harus benar untuk menggunakannya. Prosesnya dimulai dari hipotesis kemudian pencarian dimulai untuk menentukan dan membuktikan fakta-fakta pendukung yang diperlukan. Proses akan berhasil dengan penerimaan atau penolakan hipotesis. Contoh dapat dilihat pada gambar 2.15.
63
Gambar 2.15 Diagram Backward Chaining
Sebagai tambahan untuk menspesifikkan arah pencarian (forward atau backward), sebuah algoritma pencarian menentukan urutan pemeriksaan setiap node (state) dalam tree atau graph. Dalam bagian ini algoritma dibagi menjadi 2 yaitu breadth-first search dan depth-first search (Turban dan Frenzel, 1992, pp53-56). 1) Breadth-first search Cara pencarian dengan menguji semua node pada setiap tingkat yang ada pada pohon pencarian, dimulai dari node akar. Node-node yang ada pada setiap tingkat diuji terlebih dahulu sebelum pindah ke tingkat lainnya. Angka-angka yang ada dalam node menunjukkan urutan pencarian. Biasanya cara pencarian seperti ini akan menemukan jalan terpendek antara status awal dan status akhir, dengan jumlah langkah terkecil. Proses pada breadth-first search ini diawali dari node awal dan bekerja secara menurun dari kiri dan kanan setelah itu pindah ke tingkat lainnya. Node terakhir. Sebagai
64 contoh, pada gambar 2.16, pencarian akan berkahir pada node 7 sebagai tujuan akhir.
Gambar 2.16 Diagram Pencarian Breadth-First Search 2) Depth-first search Dimulai dari node dan bekerja secara menurun sampai ke tingkat terendah. Sebuah node menggunakan sebuah operator untuk menghasilkan node selanjutnya yang lebih dalam urutannya. Proses ini berlangsung sampai sebuah solusi ditemukan atau dengan cara jalan mundur (back-tracking) sampai menemukan jalan akhir. Saat pencarian (searching) di level dalam jalur (path), jika sudah sampai level paling dalam belum ditemukan solusi, maka proses yang berlangsung disebut back-tracking, yaitu pencarian akan naik satu level diatasnya, angka-angka yang ada dalam node menunjukkan urutan dari pecarian. Proses ini mencari kemungkinan node yang paling dalam. Jika status akhir belum tercapai, proses pencarian kembali ke node berikutnya yang lebih tinggi. Hal ini berlangsung terus ke bawah dan dari kiri ke kanan, sampai status akhir ditemukan.
65 Sebagai contoh, pada gambar 2.17, pencarian akan berakhir pada node 13 sebagai tujuan akhir.
Gambar 2.17 Diagram Pencarian Depth-First Search
2.4 Delapan Aturan Emas Perancangan User Interface 1. Konsisten 2. Shortcuts 3. Umpan balik yang informatif 4. Adanya pentupan (keadaan akhir) 5. Pencegah kesalahan 6. Pembalikan aksi 7. Pusat kendali internal (internal locust of control) 8. Ingatan jangka pendek dikurangi