- Sistem pakar disebut juga sebagai knowledge based system karena system pakar merupakan sistem yang berusaha mengapdosi pengetahuan manusia ke komputer, agar komputer dapat menyelesaikan masalah seperti yang biasa dilakukan oleh para ahli. Sistem pakar yang baik dirancang agar dapat menyelesaikan suatu permasalahan tertentu dengan meniru kerja dari para ahli.
- Komponen utama dalam sistem pakar:
- User Interface (Antarmuka Pemakai): Antarmuka pemakai, memungkinkan pemakai untuk berinteraksi dengan expert system. User interface digunakan manajer untuk meng-enter instruksi dan informasi ke dalam sistem pakar dan menerima informasi dari sistem pakar.
- Knowledge Base (basis pengetahuan): Knowledge Base berisi pengetahuan-pengetahuan (pengetahuan gabungan) dalam memahami, merumuskan, dan penyelesaian masalah. Knowledge Base adalah bagian dari sistem pakar yang berisi domain pengetahuan.
Knowledge
base terdiri dari fakta yang menggambarkan area problem atau problem
domain dan juga teknik penyajian yang menggunakan fakta sesuai
logika. Domain pengetahuan seorang pakar pada dasarnya adalah
spesifik terhadap domain masalah.
- Inference Engine (mesin inferensi): Inference engine bertugas untuk menganalisis pengetahuan, memberikan kemampuan penalaran dan menarik kesimpulan berdasarkan knowledge base.
- Development Engine: Komponen yang digunakan untuk mengolah sistem pakar, terdiri dari bahasa pemrograman
- Elemen-elemen dalam sistem pakar
- User interface (antarmuka): Mekanisme komunikasi antara user dan Expert System.
- Explanation facility (subsistem Penjelasan): Digunakan untuk melacak respon dan memberikan penjelasan tentang kelakuan sistem pakar secara interaktif.
- Working memory: Database global dari fakta yang digunakan dalam prosedur.
- Agenda: Daftar prioritas prosedur yang dibuat oleh motor inferensi dan direkam dalam working memori.
- Inference engine (motor inferensi): Program yang berisi metodologi yang digunakan untuk melakukan penalaran terhadap informasi-informasi dalam basis pengetahuan untuk memformulasikan konklusi (keismpulan).
- Knowledge acquisiton facility: Berisi pengetahuan-pengetahuan yang dibutuhkan untuk memahami, memformulasikan dan menyelesaikan masalah
- Kesalahan dalam sistem pakar diantaranya adalah :
- Kesalahan Sintaks : A:=X+(B*(C+D) {jumlah kurungnya kurang}
- Kesalahan Semantik :
- Tipe data yang salah.
Contoh
: Var
Siswa : Integer
Siswa :=
'Yanuar' {tipe
string}
- Variabel belum didefinisikan:
Contoh :B
:= B + 1 {B
belum didefinisikan}
- Aplikasi Sederhana: Sistem Pakar Bengkel Mobil
Ini adalah contoh
Sistem Pakar sederhana, yang bertujuan untuk mencari apa yang salah
sehingga mesin mobil pelanggan yang tidak mau hidup, dengan
memberikan gejala-gejala yang teramati. Anggap Sistem Pakar kita
memiliki aturan-aturan berikut:
- JIKA mesin_mendapatkan_bensin DAN starter_dapat_dihidupkan MAKA ada_masalah_dengan_pengapian
- JIKA TIDAK BENAR starter_dapat_dihidupkan DAN TIDAK BENAR lampu_menyala MAKA ada_masalah_dengan_aki
- JIKA TIDAK BENAR starter_dapat_dihidupkan DAN lampu_menyala MAKA ada_masalah_dengan_starter
- JIKA ada_bensin_dalam_tangki_bahan_bakar MAKA mesin_mendapatkan_bensin
Terdapat
3 masalah yang mungkin, yaitu: ada_ masalah_ dengan _pengapian, ada_
masalah_ dengan_ aki dan ada_ masalah_ dengan_ starter. Dengan sistem
terarah-tujuan (goal-driven), kita hendak membuktikan keberadaan
setiap masalah tadi.
Pertama, Sistem
Pakar berusaha untuk membuktikan kebenaran
ada_masalah_dengan_pengapian. Di sini, aturan 1 dapat digunakan,
sehingga Sistem Pakar akan menset goal baru untuk membuktikan apakah
mesin_mendapatkan_bensin serta starter_dapat_dihidupkan. Untuk
membuktikannya, aturan 4 dapat digunakan, dengan goal baru untuk
membuktikan mesin_mendapatkan_bensin. Karena tidak ada aturan lain
yang dapat digunakan menyimpulkannya, sedangkan sistem belum
memperoleh solusinya, maka Sistem Pakar kemudian bertanya kepada
pelanggan: “Apakah ada bensin dalam tangki bahan bakar?”.
Sekarang, katakanlah jawaban klien adalah “Ya”, jawaban ini
kemudian dicatat, sehingga klien tidak akan ditanyai lagi dengan
pertanyaan yang sama.
Nah, karena sistem
sekarang sudah dapat membuktikan bahwa mesin mendapatkan bensin, maka
sistem sekarang berusaha mengetahui apakah starter_dapat_dihidupkan.
Karena sistem belum tahu mengenai hal ini, sementara tidak ada aturan
lagi yang dapat menyimpulkannya, maka Sistem Pakar bertanya lagi ke
klien: “Apakah starter dapat dihidupkan?”. Misalkan jawabannya
adalah “Tidak”, maka tidak ada lagi aturan yang dapat membuktikan
ada_masalah_dengan pengapian, sehingga Sistem Pakar berkesimpulan
bahwa hal ini bukanlah solusi dari problem yang ada, dan kemudian
melihat hipotesis berikutnya: ada_masalah_dengan_aki. Sudah diketahui
(dibuktikan) bahwa mesin tidak dapat distarter, sehingga yang harus
dibuktikan adalah bahwa lampu tidak menyala. Sistem Pakar kemudian
bertanya: “Apakah lampu menyala?”. Misalkan jawabannya adalah
“Tidak”, maka sudah terbukti bahwa ada masalah dengan aki.
Sistem ini mungkin
berhenti sampai di sini, tetapi biasanya ada kemungkinan terdapat
lebih dari satu solusi (misalnya terdapat lebih dari satu kerusakan),
atau ada kemungkinan terdapat solusi lain yng lebih tepat, sehingga
biasanya semua hipotesis diperiksa kebenarannya. Sistem Pakar ini
kemudian mencoba membuktikan bahwa ada_masalah_dengan_starter, namun
dari fakta yang sudah diperoleh, yaitu lampu tidak menyala, maka
pembuktiannya menjadi gagal. Dengan demikian solusi yang diberikan
oleh Sistem Pakar adalah ada masalah dengan aki.
Secara
lengkap, interaksi antara Sistem Pakar dengan klien mungkin seperti
ini:
System
Pakar: Apakah ada bensin dalam tangki bahan bakar?
Klien:
Ya
System
Pakar: Apakah starter dapat dihidupkan?
Klien:
Tidak
System
Pakar: Apakah lampu menyala?
Klien:
Tidak
System
Pakar: Saya berkesimpulan bahwa ada masalah dengan aki
Fasilitas
Penjelasan
Kebanyakan Sistem
Pakar mempunyai fasilitas penjelasan yang mengijinkan klien untuk
bertanya mengapa dia diberi suatu pertanyaan atau bagaimana dapat
mencapai suatu kesimpulan. Pertanyaan dari klien tersebut dijawab
dengan mengacu pada goal, aturan yang dipakai, dan data-data yang
ada. Contoh pemakaian fasilitas penjelas dalam Sistem Pakar di atas
dapat dilihat pada percakapan berikut:
System
Pakar: Apakah ada bensin dalam tangki bahan bakar?
Klien:
Ya
System
Pakar: Apakah starter dapat dihidupkan?
Klien:
Tidak
System
Pakar: Apakah lampu menyala?
Klien:
Mengapa?
System
Pakar: Saya mencoba membuktikan bahwa ada masalah dengan aki. Sudah
ditunjukkan adalah tidak benar starter dapat dihidupkan. Sehingga
jika tidak benar bahwa lampu menyala, maka ada masalah dengan aki.
Apakah lampu menyala?
Klien:
Tidak
System
Pakar: Saya berkesimpulan bahwa ada masalah dengan aki
Klien:
Bagaimana bisa?
System
Pakar: Hal ini sesuai dengan aturan no 2: JIKA TIDAK BENAR
starter_dapat_dihidupkan DAN TIDAK BENAR lampu_menyala MAKA
ada_masalah_dengan_aki bahwa tidak benar starter_dapat_dihidupkan
sudah dijawab, bahwa tidak benar lampu_menyala sudah dijawab,
sehingga dapat disimpulkan bahwa ada_masalah_dengan_aki.
Fasilitas penjelasan
berhubungan dengan pencatatan aturan apa saja yang digunakan untuk
mengambil kesimpulan, dan menggunakan catatan tersebut untuk menyusun
penjelasan. Pembangkitan penjelasan sederhana seperti contoh di atas
bukanlah persoalan yang sulit, namun pemahaman klien terhadap
penjelasan tersebut tidaklah sama, sehingga seringkali klien tetap
tidak mengerti maksudnya. Hal ini karena biasanya penjelasan hanya
meliputi pengetahuan yang dangkal atau hanya permukaan saja
sebagaimana tercantum dalam autran yang dipunyai, bukannya
pengetahuan yang mendalam yang mendasari aturan tersebut. Dalam
contoh di atas, Sistem Pakar hanya mengatakan bahwa hal ini sesuai
dengan aturan no 2, tetapi tidak menjelaskan secara lebih detil
mengenai aturan 2 tersebut. Mungkin klien perlu diberi pengertian
bahwa lampu dan starter dua-duanya menggunakan aki untuk
menyalakannya. Hal penting lain adalah ketika klien gagal mengerti
atau menerima penjelasan yang diberikan, biasanya Sistem Pakar tidak
dapat memberi penjelasan dengan cara lain (tidak begitu halnya dengan
seorang pakar yang mampu menggunakan kalimat yang lain untuk mencoba
menjelaskannya).
siip
ReplyDelete