PENGENALAN
SISTEM PAKAR
SSEEE —
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” dalambidang 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 tankJika 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
45jika 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 baruProblem 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