You are on page 1of 70
PENGENALAN SISTEM PAKAR SS EEE — 1.1, PENGENALAN 1.1, PENGENALAN Bab ini merupakan pengenalan yang luas pada sistem pakar. Prinsip sistem pakar yang fundamental, diperkenalkan disini, Keuntungan dan kerugian sistem pakar didiskusikan dan area aplikasi untuk sistem pakar yang sesuai juga dijelaskan. ‘Tuga didiskusikan hubungan sistem pakar ke metode pernrograman yang lain. 1.2. APAKAH SISTEM PAKAR ITU ? 1.2, APAKAH SISTEM ree ‘Langkah pertama dalam pemecahan suatu masalzh adalah dengan menentukan area problem atau "domain" untuk dipecahkan, Pertimbangan ini sama kebenarannya dalam Artificial Intelligence (AI) dengan pemrograman Konvensional. Namun ‘demikan, oleh Karena mistik yang digabungkan dengan AI, maka ada kecenderungan tetap hidup untuk tetap percaya peribahasa lama "Itu adalah problem Al jika belum terpecahkan”. Type serangkaian pemikiran ini mungkin populer pada tahun 19704 an ketika AI keseluruhanya ada dalam tahap penelitian, Namun demikian, sekarang ini ada banyak problem dunia nyata yang dipecabkan oleh AI dan beberapa aplik AL komersil ‘Meskipun pemecahan umum pada problem Al klasik seperti translasi natural, pemahaman percakapan, dan penglihatan belum diketemukan, pembatas problem domain mungkin tetap membuat solusi yang berguna, Misalnya, ti ‘akan sukar untuk membuat sistem bahasa natural yang sederhana jika input dibat pada kalimat dari bentuk, kata benda, Kata kerja, dan obyek. Sekarang ini, sist Gari type ini bekerja dengan sangat balk dalam menyediakan interface user-friendly ke beberapa produk software seperti sistem basis data dan (spreadsheet). Kenyataannya, (parsers) yang digabungkan dengan permainan tex-adventui komputer yang populer sckarang ini menunjukkan tingkat kemampuan yang ‘mengagumkan dalam pemahaman bahasa natural ‘Seperti dalam Gambar 1.1, menunjukkan AT mempunyai banyak area yang menarik. Area sistem pakit sangat sukses dalam hal pemecahan problem pemograman intelligence AI yang klasik. Profesor Edward Feigenbaum dari Stanfor University, pelopor awal teknologi sistem pakar, telah menentukan sistem pakar sebagai ” .. program komputer intelligent yang menggunakan pengetahuan din prosedur inference untuk memecahkan masalah/problem yang cukup sulit yang memerlukan manusia abli yang memadai untuk pemecahannya”. (Feigenbaum 82), Yaitu, sistem pakar merupakan sistem komputer yang “emulasi” kemampuan membuat keputusan manusia ahli, Bentuk emulasi berartibahwa sistem pakar —_—_—€ i diperuntukkan untuk beraksi dalam semua respek seperti manusia ahli, Emulasi Jauh lebih kuat dari pada simulasi yang hanya memerlukan untuk beraksi seperti sesuatu yang riil dalam beberapa respek. Meskipun tujuan umum pemecahan masalah tetap mengelakkan kita, fungsi sistem pakar sangat baik dalam domain terbatasnya. Karena pembuktian Keberhasilannya, kita hanya memerlukan observasi beberapa aplikasi sistem pakar Sekarang ini dalam bisnis, Kesehatan, ilmu pengetahuan, dan engineering termasuk buku, jumal, konferensi dan produk yang dicurahkan ke sistem pakar. Robotika Gambar 1-1 Beberapa area intelegensi buatan Expert sistem merupakan cabang dari AI yang raembuat penggunaan Pengetahuan yang dikhususkan secara ekstensif untuk memecahkan masalah pada level human “expen”, Expert adalah seseorang yang mempunyai “expertise” dalam bidang tertentu. Yaitu, expert mempunyai pengetahuan atau ketrampilan tertenty yang tidak diketahui atau ada untuk Kebanyakan orang. Seorang expert dapat ‘memecahkan masalah yang tidak dapat dipecahkan sama sekali oleh orang lain atau ‘memecahkannya dengan lebih efisien(tetap tidak mudah) Jka sistem pakar pertama kali dikembangkan pada tahun 1970-an, sistem pakar tersebut berisi pengetahuan expert secara eksklusif. Namun demikian, bentuk sistem pakar sering diterapkan sekarang ini pada beberapa sistem yang menggunakan teknologi sistem pakar. "Teknologi sistem pakar ini mungkin mencakup bahasa sistem pakartertentwkhusus, program, dan hardware yang ditentukan untuk tambahan dalam pengembangan dan pembuatan sistem pakear. Pengetahuan dalam sistem pakar mungkin berupa expertise, atau pengetahuan yang pada umumnya ada dari buku, majalah, dan pengetahuan perseorangan. Bentuk sistem pakar, "sistem yang berdasarkan pengetahuan” atau ” sistem pakar yang berdasarkan pengetahuan” sering digunakan secara sinonim. Hampir semua orang ‘menggunakan sistem pakar sederhana karena kependekannya, bahkan tidak ada expertise dalam sistem pakar, hanya pengetahuan umum. ‘Gambar 1.2 mengilustrasikan konsep pokok dari sistem pakar yang berdasarkan pada pengetahuan. Pemakai men-supply fakta atau informasi lainnya ke sistema pakar dan menerima nasihat expert atau “expertise” sebagai jawabannya. Secara intemal, sistem pakar berisi dua komponen pokok. Yang berdasarkan pengetahuan berisi pengetahuan yang "inference engine” menggambbarkan kesimpulan, ‘Kesimpulan ini adalah respond sistem pakar tas pemrintaan pernakai untuk expertise, Gambar 1-2 Konsep dasar dari Fungsi Sistem Pakar —— System yang berdasarkan pengetahuan juga di-design untuk beraksi sebagai asisten intelligent pada ahli manusia. Asisten intelligent ini di-design dengan teknologi sistem pakar karena keuntungan pengembangan, Karena banyak pengetahuan ditambahkan ke asisten intelligent, maka akan’ beraksi lebih seperti exper. ‘Pengembangan asisten intelligent mungkin akan merupakan satu peringatan yang berguna dalam pembuatan expert system yang lengkap. Sebagai tambahan, Pengembangan asisten intelligent tersebut akan lebih bebas dalam waktu expert ‘oleh kecepatan pemecahan masalah. Pengetahuan expert Khusus untuk satu "problem domain: sebagai kebalikan dari pengetahuan tentang teknik pemecahan masalah pada umununya, Problem domain merupakan area problem khusus seperti pengobatan, keuangan, pengetahuan atau engineering dan sebagainya dimana expert dapat memecahkan problem dengan sangat baik. Expert sistem, seperti manusia abli, pada umuimaya di-design menjadi expert dalam satu problem domain. Misalnya, secara normal kta tidak mengharapkan abi catur mempunyai pengetahuan abli tentang pengobatan. Expertise dalam satt problem domain tidak secara otomatis dapat menjadi expert untuk bidang lainnya, Pengetahuan expert tentang pemecahan problem khusus ‘isebut dengan "domain PPengetahuan” expert. Misalnya, sistem expert pengobatan di-design untuk diagnosa Penyakit infeksi akan mempunyai banyak hubungan dengan gejala tertentu yang stop the light is green — go ‘Aturan produksi dapat diekspresikan dengan pseudocode format IF THEN yang sama seperti Rule: Red_tight IF the light is ted THEN stop Rule: Greenlight r the light is green THEN g0 ‘Setiap aturan ditunjukkan dengan nama, Mengikuti nama adalah bagian IF Consequent person has fever — take aspirin dimana anak panah menunjukkan transformasi satu string ke string lainnya. Kita dapat mengintepretasikan aturan ini ke dalam bentuk notasi IF THEN yang lebih cenak seperti: If person has fever THEN take aspirin ‘Aturan produksi dapat juga mempunyai beberapa kejadian sebelumnya. Misalnya, : person has fever AND fever is greater than 102 + see doctor Perhatikan bahwa hubungan AND khusus bukan merupakan bagian dari string. AND menunjukkan bahwa aturan mempunyai beberapa kejadian sebelumnya. ‘System produksi Post bersi kelompok aturan produksi, seperti berikut ini (Gimana angka di dalam kurung merupakan diskusi kita) (1) car won’t start — check battery (2) car won't start + check gas (3) CHECK BATTERY AND battery bad. replace battexy (4) check gas AND no gas — fill gas tank Jika ada string "car won’t start”. aturan/rule (1) dan (2) mungkin digunak untuk membuat string “check battery” dan "check gas”. Namun demikian tida: ada mekanisme kontrol yang menerapkan seluruh aturan tersebut ke dalam string. Hanya satu barisaturan mungkin diterapkan, seluruhnya atau tidak semuanya Jika ada string "battery bad” lain dan string "check battery”, maka aturan/rule (3) rmungkin diterapkan untuk membuat string "replace battery”. ‘Tidak ada significant khusus untuk perintah dimana aturan dituliskan. Atut dari contoh kita juga dapat dituliskan dengan order berikut ini dan akan tet. ‘menjadi system yang sama. (4) check gas AND no gas + fill gas tank (2) car won’t start + check gas (1) car won't start + check battery (3) check battery AND battery bad + replace batter ‘Meskipun aturan Post produksi sangat berguna dalam meletakkan bagia fondasi dari expert system, tetapi aturan tersebut tidak sesuai untuk penulisar program praktis. BAtasan pokok dari aturan produksi Post untuk pemrograman adalah (lack) "control strategy” untuk menuntun aplikasi aturan. Post system ‘memungkinkan aturan diterapkan pada string dengan berbagai cara karena tidak ada spesifikasi yang diberikan atas bagaimana aturan seharusnya diterapkan. Seperti analogi, anggap kita ingin pergi ke perpustakaan untuk menemuka: bbuku expert system. Di perpustakaan, kita mulai melihat buku pada rak untu, bbuku yang kita inginkan. Jika perpustakaan cukup besar, maka akan memeriukar. ‘waktu yang lama untuk menemukan buku yang kita inginkan. Bahkan jika kita menemukan bagian buku expert system, pilihan acak kita, dapat membuat kita pada seluruh bagian yang berbeda, seperti masakan Perancis. Situasi akan menjadi lebih jelek jika kita memeriukan materi dari buku pertama untuk membantu kita dalam menentukan buku kedua yang kita perlukan untuk ditemukan. Penelitian acak untuk buku kedua juga akan memerlukan waktu yang lama, Algoritma Markov. Lanjutan berikutnya dalam menerapkan aturan produksi dibuat oleh Markov. yang menentukan struktur kontrol untuk system produksi (Markov 54). "Algoritma markov” merupakan kelompok produksi yang ter-order yang diterapkan untuk prioritas ke input string. Jika aturan prioritas tertinggi tidak dapat diterapkan, ‘maka yang berikutnya diterapkan dan seterusnya. Algoritma Markov berakhit 45 jika baik (1) produksi terakhir tidak dapat diterapkan pada string, maupun (@) suatu produksi yang berakhir dengan periode, diterapkan. Algoritma Markov dapat juga diterapkan pada substring dari string, dimulai dari sebelah kiri. Misalnya, system produksi yang berisi aturat/baris tunggal. AB HIT jika diterapkan pada input string GABKAB akan membuat string bam (GHDKAB. Jika produksi sekarang diterapkan pada string baru, hasil akhir akan ‘menjadi GHUKHD. Karakter khusus * menunjukkan "string nof” dari yang bukan karakter. Misalnya, produksi : AOA akan menghilangkan seluruh kejadian karakter A dalam suatu string. Symbol khusus lainnya menunjukkan karakter tunggal dan ditunjukkap dengan huruf kecil, a, b,c, dan sebagainya. Symbol ini menunjukkan variabel karakter tunggal dan merupakan bagian yang penting dari bahasa expert system yang modem, Misalnya, aturan/baris : AXB ~ BxA. akan mengubah karakter A dan B. ‘Huruf Yunani a, B, dan sebagainya digunakan untuk pungtuasi string khusus, ‘Huruf Yunani digunakan Karena membedakan dari alphabet huruf ordinar Suatu contoh dari algoritma Markov yang memindahkan huruf pertama string input ke akhir, ditunjukkan sebagai berikut (Elson 73). Aturan/baris dipesan dalam bentuk prioritas tertinggi (I), tertinggi berikutnya (2), dan seterusnya. Aturan/baris diprioritas agar dapat dimasukkan, (1) axy > yox Qa+* B+ > Untuk string input ABC, pembuatan trace ditunjukkan dalam Tabel 1.11 1 Aturan Sukses atau gagal String 1 F ABC ! 2 F ABC 3 s @ABC 1 s BaAC \ Ul s BCaA I 1 F BCaA ! a s BCA | abel 1-11 Jejak Eksekusi Algoritma Markov Perhatikan bahwa simbol ot beraksi secara analogi pada variable temporer dalam bahasa pemrograman Konvensional. Namun demikian, sebagai pengganti pengisian angka, o digunakan sebagai tempat menyimpan untuk menandai progresi perubahan dalam string input. Sekali pekerjaan ini dikerjakan, maka a. akan T (Gersting 82). Fungsi "range" f adalah set dari seluruh “images” J(8) dimana s adalah elemen dari S. Dalam hal fungsi kubus, imaginasi dari s adalah s*s*s* dan rentangannya dalah set dari seluruh angka rill. Rentangan dan codomain adalah sama untuk fungsi kubus. Namun demikian, hal ini mungkin tidak benar untuk fungsi lan seperti fungsi square, x*r*, dengan domain dan codomain dari angka rill Jika rentangan fungsi square hanya merupakan angka Fill non-negatif, rentangan dan codomain tidak akan sama. Dengan menggunakan set notasi, rentangan fungsi dapat diituliskan seperti : eC eia | ee cle) "Curle braces { )” menunjukkan set”. "Bar, |, dibaca dengan "where"/ dimana, Pemyataan diatas dapat dibaca bahwa rentangan R adalah sama dengan set angka f(s) dimana setiap elemen s adalah dalam set S. Gabungan merupakan set dari pasangan yang diperintahkan (s,1) dimana s (lihat buku) S, ¢ (ihat buku) T, dan t=f(s). Setiap anggota S harus mempunyai satu atau hanya satu elemen T yang digabungkan dengannya. Namun demkian, angka multiple + mungkin digabungkan dengan s tunggal. Seperti contoh sederhana, setiap angka n positif, mempunyai square root, + ¥ (lihat buku) n, Fungsi mungkin juga ditentukan secara recursif seperti dalam : factorial (n) = n*factorial (n-1) Where n is an integer and factorial is an integer function 53, es Fungsi recursif secara umum digunakan dalam bahasa fungsional seperti LISP. Konsep matematika dan ekspres merupakan "referentially transparent” karena arti dati keseluruhan ditentukan dengan lengkap dari bagiannya, Tidak ada (synergism), yang dimasukkan antara bagian. Seperti dalam contoh, perhatikan ekspresi fugsional x+(2*r). Hasilnya adalah 3%x, Baik x+(2*x) maupun 3% ‘memeberikan hasil yang sama dengan apapun angka yang dimasukkan untuk x. ‘Bahkan fungsi lain dapat dmasukkan untuk x dan hasilnya adalah sama. Misalnya, ‘(y) menjadi fungsi arbitrari. Kemudian f(y) + (2*h(y)) akan tetap sama dengan Shy). Sekarang perhatikan pemyataan susunan berikut ini dalam bahasa komputer imperatif seperti Pascal sum : = £ (x) + x Jika parameter x dikirmkan oleh referensi dan angkanya diubah dalam fungsi panggilan, f(x), angka apa yagn akan digunakan untuk x?. BErdasarkan pada bagaimana compiler dituliskan, angka x mungkin merupakan angka yang asli jika disimpan pada stack. atau angka baru jika x tidak disimpan, Sumber lain dati kebingungan terjadi jika satu compiler mengevaluasi ekspresi kanan-ke-kiti sementara yang lainnya mengevaluasi kir-ke-kanan. Dalam hal ini f(x) + x tidak akan mengevaluasi yang sama dengan x+f(x) pada compiler yang berbeda ‘meskipun menggunakan bahasa yang sama. Efek samping lainnya mungkin terjadi karena variabel global. Dengan demikiann tidak seperti fugnsi matematika, fungsi program tidak transparent secara referenstial Bahasa pemrograman fungsional dibuat agar transparent secara referensial Lima bagian akan membuat bahasa fungsional : — "Data object” untuk fungsi bahasa untuk dioperasikan ~ "primitivee function” untuk beroperasi pada obyek data ~ “fhinctional forms” untuk mensintesa fungsi baru dari fungsi lain, — “application operations” pada fungsi yang mengembalikan angka. = “naming procedures” untuk menentukan fungsi baru Problem tambahan adalah bahwa pancangan AI dengan bahasa pemrograman konvensional seperti C, Ada, Pascal, dan FORTRAN. Misalnya, aplikasi tertenta yang memerlukan (number-crunching) ekstensif akan lebih baik dilakukan dalam bahasa konvensional bukannya dalam LISP, atau bahasa expert system yang