Anda di halaman 1dari 12

SISTEM PAKAR Referensi: Durkin. Expert Systems: Design and Development. MacMillan. Dologite.

Developing Knowledge Based Systems using VP Expert. MacMillan. Definisi Sistem Pakar Sumber: Durkin, halaman 7 Sistem Pakar adalah sebuah program komputer yang dirancang untuk memodelkan kemampuan penyelesaian masalah dari seorang pakar. Arsitektur Sistem Pakar Explanation Facility user User Interface Inference Engine Working Memory Knowledge Base

Penyusun Sistem Pakar Sumber: Durkin, halaman 7, 27-32; Dologite, halaman 3-6 Knowledge Base, Working Memory, Inference Engine, Explanation Facility, dan User Interface. Knowledge Base Berisi kumpulan informasi atau pengetahuan khusus pada area masalah yang diberikan oleh pakar. Knowledge Engineer: seorang spesialis komputer yang mempunyai kemampuan menambang pengetahuan pakar dan mentransferkannya ke dalam Knowledge Base yang terkomputerisasi. Representasi pengetahuan secara umum adalah rule. Working Memory Berisi fakta-fakta yang telah ditemukan selama proses konsultasi.
1

Fakta ini bisa berupa: - Informasi yang diberikan oleh user - Konklusi yang diberikan oleh rule Inference Engine Adalah mesin pengetahuan yang dimodelkan menurut reasoning seorang pakar. Merupakan otak dari sistem pakar. Dapat dibuat secara manual oleh programmer, tetapi sistem pakar sekarang ini umumnya dibuat menggunakan sebuah shell yang mempunyai built-in inference engine. Shell ini disebut Expert System Shell. Contoh ES Shell: VP Expert. Explanation Facility Menyimpan history selama konsultasi seorang user. History berisi rule-rule yang digunakan untuk membangkitkan konklusi akhir. User Interface Mengakomodasi interaksi antara sistem pakar dan user, menggunakan bahasa alami. Model umum user interface adalah pertanyaan-pertanyaan dengan sejumlah opsi jawaban. Rule sebagai Knowledge Representation Sumber: Durkin, halaman 59-60 Rule adalah struktur pengetahuan yang menghubungkan informasi-informasi yang telah diketahui ke informasi baru. Struktur rule biasanya berupa IF-THEN. Bagian IF berisi sejumlah antecedent (atau premis). Bagian THEN berisi sejumlah concequent (atau conclusion). Contoh: IF bola berwarna merah THEN saya menyukai bola itu Rule dapat mempunyai banyak premis yang digabungkan dengan AND (conjunction), atau OR (disjunction), atau kombinasi keduanya.
2

Rule juga dapat berisi bagian ELSE, yang akan dinyatakan TRUE jika salah satu premisnya FALSE. Contoh: IF jam sekarang lewat jam 10 AND hari ini adalah Senin sampai Jumat AND saya sedang di rumah OR bos menelepon saya dan mengatakan saya terlambat bekerja THEN saya terlambat bekerja ELSE saya tidak terlambat bekerja Perlu diperhatikan: secara umum AND lebih kuat daripada OR. Inference Sumber: Durkin, halaman 94-95, 60-61 Inference adalah proses yang digunakan oleh sistem pakar untuk membangkitkan informasi baru dari informasi-informasi yang telah diketahui. Inference melibatkan Knowledge Base sebagai long-term memory dan Working Memory sebagai short-term memory. Contoh inference: KNOWLEDGE BASE IF Bola berwarna merah Step 3 THEN Saya menyukai bola itu IF Saya menyukai bola itu Step 5 THEN Saya akan membeli bola itu USER INTERFACE Q: Apa warna bola? A: merah WORKING MEMORY Step 2 Bola berwarna merah Step 4 Saya menyukai bola itu Saya akan membeli bola itu

Step 1

Inference diawali dengan menanyakan kepada user tentang warna bola. Sistem mendapatkan jawaban merah dan memasukkan fakta ini ke dalam working memory (Step 1). Selanjutnya sistem mencocokkan premis rule pertama (Step 2), sehingga menyebabkan rule pertama dipanggil dan konklusi saya menyukai bola itu ditambahkan ke dalam working memory (Step 3). Informasi baru ini cocok dengan premis rule kedua (Step 4), sehingga menyebabkan rule kedua dipanggil dan konklusi saya akan membeli bola itu ditambahkan ke dalam working memory (Step 5). Pada titik ini, tidak ada lagi rule lain yang ada dalam sistem untuk diperhatikan, sehingga proses berhenti. Ada dua macam inference: Forward Chaining dan Backward Chaining. Forward Chaining Sumber: Durkin, halaman 100-103 Memasukkan semua informasi yang diketahui user ke dalam working memory

Semua rule sudah dijalankan?

T Memeriksa rule berikutnya yang belum pernah dijalankan T

F Menambahkan konklusi ke working memory

Semua premis cocok dengan working memory

F F Masih ada rule lagi F STOP

Contoh rule: RULE 1 IF pasien merasa tenggorokannya sakit AND pasien diduga terinfeksi bakteri THEN pasien terkena radang tenggorokan RULE 2 IF suhu pasien > 100 THEN pasien terkena demam RULE 3 IF lama pasien sakit > 1 bulan AND pasien terkena demam THEN pasien diduga terinfeksi bakteri Contoh kumpulan fakta dari user: Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Forward chainning berangkat dari FAKTA. Inference menurut Forward Chaining: Siklus 1 Rule 1 Premis 1 Pasien merasa tenggorokannya sakit True WORKING MEMORY Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit

Rule 1 Premis 2 Pasien diduga terinfeksi bakteri

Unknown

Rule 2 Premis 1 Suhu pasien > 100

True

Rule 2 dijalankan Pasien terkena demam

Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Pasien terkena demam

Siklus 2 Rule 1 Premis 1 Pasien merasa tenggorokannya sakit Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Pasien terkena demam Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Pasien terkena demam

True

Rule 1 Premis 2 Pasien diduga terinfeksi bakteri

Unknown

Rule 2: sudah dijalankan Rule 3 Premis 1 Lama pasien sakit > 1 bulan True Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Pasien terkena demam Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Pasien terkena demam Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Pasien terkena demam Pasien diduga terinfeksi bakteri

Rule 3 Premis 2 Pasien terkena demam

True

Rule 3 dijalankan Pasien diduga terinfeksi bakteri

Siklus 3 Rule 1 Premis 1 Pasien merasa tenggorokannya sakit True Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit

Pasien terkena demam Pasien diduga terinfeksi bakteri Rule 1 Premis 2 Pasien diduga terinfeksi bakteri True Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Pasien terkena demam Pasien diduga terinfeksi bakteri Suhu pasien = 102 Lama pasien sakit = 2 bulan Pasien merasa tenggorokannya sakit Pasien terkena demam Pasien diduga terinfeksi bakteri Pasien terkena radang tenggorokan

Rule 1 dijalankan Pasien terkena radang tenggorokan

Siklus 4 Semua rule telah dijalankan -> STOP Conflict Resolution pada Forward Chaining Sumber: Durkin, halaman 102, 104-106 Contoh rule: RULE 1 IF The Steelers main hari ini AND saya mempunyai uang $20 THEN saya seharusnya pergi ke stadion RULE 2 IF film favorit saya main hari ini AND saya mempunyai uang $20 THEN saya seharusnya pergi ke bioskop Andaikata semua premis kedua rule ini benar, maka dengan Forward Chaining konvensional, kedua rule akan dijalankan dan konklusinya menjadi: saya seharusnya pergi ke stadion dan ke bioskop. Di sini terjadi konflik antara dua rekomendasi.

Strategi sederhana mengatasi konflik: 1. Menetapkan sebuah goal. 2. Menghentikan chaining jika goal telah diperoleh. Berdasarkan contoh sebelumnya: Goal: saya seharusnya pergi ke mana? Setelah rule 1 dijalankan dan menghasilkan konklusi: ke stadion, maka sistem dihentikan, dan rekomendasi yang dihasilkan adalah ke stadion. Kelemahan yang terjadi: jawaban bisa tidak mengenai sasaran sebenarnya. Cara mengatasinya: memberikan prioritas kepada setiap rule. Mula-mula mencari semua rule yang belum pernah dijalankan dan yang semua premisnya terpenuhi, dan menjalankan rule yang prioritasnya tertinggi. Prioritas tertinggi dapat diganti dengan: - Yang paling spesifik. - Yang mengacu fakta yang barusan ditambahkan ke working memory. Backward Chaining Sumber: Durkin, halaman 106-109 Contoh rule: RULE 1 IF pasien merasa tenggorokannya sakit AND pasien diduga terinfeksi bakteri THEN pasien terkena radang tenggorokan RULE 2 IF suhu pasien > 100 THEN pasien terkena demam RULE 3 IF lama pasien sakit > 1 bulan AND pasien terkena demam THEN pasien diduga terinfeksi bakteri Backward chainning berangkat dari GOAL. Goal: apakah pasien terkena radang tenggorokan?

Inference menurut Backward Chaining: Step 1 Goal: pasien terkena radang tenggorokan? -> belum diketahui Step 2 Cari rule dengan konklusi Pasien terkena radang tenggorokan -> Rule 1 RULE 1 IF pasien merasa tenggorokannya sakit AND pasien diduga terinfeksi bakteri THEN pasien terkena radang tenggorokan Step 3 Premis 1 Rule 1: pasien merasa tenggorokannya sakit? -> belum diketahui Step 4 Cari rule dengan konklusi Pasien merasa tenggorokannya sakit? -> tidak ditemukan Step 5 Menanyakan Pasien merasa tenggorokannya sakit? Q: Apakah pasien merasa tenggorokannya sakit? A: True WORKING MEMORY Step 6 Pasien merasa tenggorokannya sakit Kembali ke Step 2 (Rule 1) Premis 2 Rule 1: pasien diduga terinfeksi bakteri? -> belum diketahui Step 7 Cari rule dengan konklusi Pasien diduga terinfeksi bakteri? -> Rule 3 RULE 3 IF lama pasien sakit > 1 bulan AND pasien terkena demam THEN pasien diduga terinfeksi bakteri Step 8 Premis 1 Rule 3: lama pasien sakit > 1 bulan? -> belum diketahui Step 9 Cari rule dengan konklusi Lama pasien sakit > 1 bulan? -> tidak ditemukan Step 10 WORKING MEMORY Menanyakan Lama pasien sakit > 1 bulan? Pasien merasa tenggorokannya sakit Q: Berapa lama pasien sakit? Lama pasien sakit > 1 bulan A: 2 bulan
9

Step 11 Kembali ke Step 7 (Rule 3) Premis 2 Rule 3: pasien terkena demam? -> belum diketahui Step 12 Cari rule dengan konklusi Pasien terkena demam? -> Rule 2 RULE 2 IF suhu pasien > 100 THEN pasien terkena demam Step 13 Premis 1 Rule 2: suhu pasien > 100? -> belum diketahui Step 14 Cari rule dengan konklusi WORKING MEMORY Suhu pasien > 100? -> tidak ditemukan Pasien merasa tenggorokannya sakit Step 15 Lama pasien sakit > 1 bulan Menanyakan Suhu pasien > 100? Suhu pasien > 100 Q: Berapa suhu pasien? A: 102 WORKING MEMORY Step 16 Pasien merasa tenggorokannya sakit Kembali ke Step 12 (Rule 2) Lama pasien sakit > 1 bulan Rule 2 dijalankan Suhu pasien > 100 Konklusi: Pasien terkena demam Pasien terkena demam Step 17 Kembali ke Step 7 (Rule 3) WORKING MEMORY Rule 3 dijalankan Pasien merasa tenggorokannya sakit Konklusi: Pasien diduga terinfeksi bakteri Lama pasien sakit > 1 bulan Step 18 Suhu pasien > 100 Kembali ke Step 2 (Rule 1) Pasien terkena demam Rule 1 dijalankan Pasien diduga terinfeksi bakteri Konklusi: Pasien terkena radang tenggorokan WORKING MEMORY Step 19 Pasien merasa tenggorokannya sakit Goal telah diketahui -> True Lama pasien sakit > 1 bulan Suhu pasien > 100 Pasien terkena demam Pasien diduga terinfeksi bakteri Pasien terkena radang tenggorokan
10

Forward Chaining dan Backward Chaining Sumber: Durkin, halaman 112-116 Keunggulan Forward Chaining: - Bekerja baik apabila masalah alaminya berawal dengan mengumpulkan semua fakta dan selanjutnya mengamati apa saja yang dapat ditarik daripadanya. - Dapat menyediakan sejumlah informasi dari sekumpulan kecil data. Kelemahan Forward Chaining: - Sistem harus menanyakan semua pertanyaan, padahal mungkin saja hanya butuh sedikit pertanyaan untuk tiba pada konklusi akhir. - Pertanyaan-pertanyaan yang diajukan bisa saja tidak ada hubungannya. Contoh: Q: Apakah suhu anda tinggi? Q: Apakah anda baru-baru ini mengunjungi Inggris? Keunggulan Backward Chaining: - Bekerja baik apabila masalah alaminya berawal dengan membentuk sebuah hipotesis dan selanjutnya mengamati apakah dapat dibuktikan. - Berfokus pada goal yang diberikan. - Pertanyaan-pertanyaan yang diajukan hanya yang berhubungan dengan konklusi. Cara menentukan apakah menggunakan Forward Chaining atau Backward Chaining: - Bagaimana cara pakar menyelesaikan permasalahan? Apabila mula-mula mengumpulkan data lalu mencari kesimpulan daripadanya -> FORWARD Apabila mula-mula membentuk hipotesis dan lalu membuktikannya -> BACKWARD - Memperhatikan search space Apabila jumlah konklusi lebih banyak dari jumlah fakta -> FORWARD Apabila jumlah fakta lebih banyak dari jumlah konklusi -> BACKWARD Kombinasi Forward Chaining dan Backward Chaining: - Separate systems Perancang sistem pakar membagi masalah menjadi subtask. Menentukan subtask yang harus dikerjakan -> FORWARD Menyelesaikan masalah dalam sebuah subtask -> BACKWARD
11

Contoh: Diagnosa penyakit: Semua fakta awal diambil untuk menentukan hipotesis -> FORWARD Diagnosa penyakit untuk membuktikan hipotesis -> BACKWARD - Demon rule Ada sejumlah demon rule. Sebuah demon rule terdiri atas sejumlah rule. Penyelesaian dalam sebuah demon rule -> BACKWARD Sebuah demon rule mempengaruhi demon rule yang lain -> FORWARD Contoh demon rule: DEMON 1 Masalah tekanan tangki IF sumber daya mati AND tekanan tangki > 1000 THEN problem = masalah tekanan tangki DEMON 2 Situasi darurat IF problem = masalah tekanan tangki THEN situasi = darurat DEMON 3 Evakuasi IF situasi = darurat THEN respon = evakuasi personel

12