A. Pendahuluan
Ketika hendak membuat suatu
keputusan yang komplek atau memecahkan masalah, seringkali kita meminta nasehat
atau berkonsultasi dengan seorang pakar atau ahli. Seorang pakar adalah
seseorang yang mempunyai pengetahuan dan pengalaman spesifik dalam suatu
bidang; misalnya pakar komputer, pakar uji tak merusak, pakar politik dan
lain-lain. Semakin tidak terstruktur situasinya, semakin mengkhusus (dan mahal)
konsultasi yang dibutuhkan.
Sistem Pakar (Expert System) adalah
usaha untuk menirukan seorang pakar. Biasanya Sistem Pakar berupa perangkat
lunak pengambil keputusan yang mampu mencapai tingkat performa yang sebanding
seorang pakar dalam bidang problem yang khusus dan sempit. Ide dasarnya adalah:
kepakaran ditransfer dari seorang pakar (atau sumber kepakaran yang lain) ke
komputer, pengetahuan yang ada disimpan dalam komputer, dan pengguna dapat
berkonsultasi pada komputer itu untuk suatu nasehat, lalu komputer dapat
mengambil inferensi (menyimpulkan, mendeduksi, dll.) seperti layaknya seorang
pakar, kemudian menjelaskannya ke pengguna tersebut, bila perlu dengan
alasan-alasannya. Sistem Pakar malahan terkadang lebih baik unjuk kerjanya
daripada seorang pakar manusia!
Kepakaran (expertise) adalah
pengetahuan yang ekstensif (meluas) dan spesifik yang diperoleh melalui
rangkaian pelatihan, membaca, dan pengalaman. Pengetahuan membuat pakar dapat
mengambil keputusan secara lebih baik dan lebih cepat daripada non-pakar dalam
memecahkan problem yang kompleks. Kepakaran mempunyai sifat berjenjang, pakar
top memiliki pengetahuan lebih banyak daripada pakar yunior.
Tujuan Sistem Pakar adalah untuk
mentransfer kepakaran dari seorang pakar ke komputer, kemudian ke orang lain
(yang bukan pakar). Proses ini tercakup dalam rekayasa pengetahuan (knowledge
engineering) yang akan dibahas kemudian.
B. Manfaat dan
Keterbatasan Sistem Pakar
1. Manfaat Sistem Pakar
Mengapa Sistem Pakar menjadi
sangat populer? Hal ini disebabkan oleh sangat banyaknya kemampuan dan manfaat
yang diberikan oleh Sistem Pakar, di antaranya:
Diktat Mata Kuliah Kecerdasan Buatan Ir.
Balza Achmad, M.Sc.E. 8
a. Meningkatkan output dan produktivitas,
karena Sistem Pakar dapat bekerja lebih cepat dari manusia.
b. Meningkatkan kualitas, dengan memberi
nasehat yang konsisten dan mengurangi kesalahan.
c. Mampu menangkap kepakaran yang sangat
terbatas.
d. Dapat beroperasi di lingkungan yang
berbahaya.
e. Memudahkan akses ke pengetahuan.
f. Handal. Sistem Pakar tidak pernah
menjadi bosan dan kelelahan atau sakit. Sistem Pakar juga secara konsisten
melihat semua detil dan tidak akan melewatkan informasi yang relevan dan solusi
yang potensial.
g. Meningkatkan kapabilitas sistem
terkomputerisasi yang lain. Integrasi Sistem Pakar dengan sistem komputer lain
membuat lebih efektif, dan mencakup lebih banyak aplikasi .
h. Mampu bekerja dengan informasi yang
tidak lengkap atau tidak pasti. Berbeda dengan sistem komputer konvensional,
Sistem Pakar dapat bekerja dengan inofrmasi yang tidak lengkap. Pengguna dapat
merespon dengan: “tidak tahu” atau “tidak yakin” pada satu atau lebih
pertanyaan selama konsultasi, dan Sistem Pakar tetap akan memberikan
jawabannya.
i. Mampu menyediakan pelatihan. Pengguna
pemula yang bekerja dengan Sistem Pakar akan menjadi lebih berpengalaman.
Fasilitas penjelas dapat berfungsi sebagai guru.
j. Meningkatkan kemampuan problem solving,
karena mengambil sumber pengetahuan dari banyak pakar.
k. Meniadakan kebutuhan perangkat yang
mahal.
l. Fleksibel.
2. Keterbatasan Sistem Pakar
Metodologi
Sistem Pakar yang ada tidak selalu mudah, sederhana dan efektif. Berikut adalah
keterbatasan yang menghambat perkembangan Sistem Pakar:
a. Pengetahuan yang hendak diambil tidak
selalu tersedia.
b. Kepakaran sangat sulit diekstrak dari
manusia.
c. Pendekatan oleh setiap pakar untuk suatu
situasi atau problem bisa berbeda-beda, meskipun sama-sama benar.
d. Adalah sangat sulit bagi seorang pakar
untuk mengabstraksi atau menjelaskan langkah mereka dalam menangani masalah
e. Pengguna Sistem Pakar mempunyai batas
kognitif alami, sehingga mungkin tidak bisa memanfaatkan sistem secara
maksimal.
f. Sistem Pakar bekerja baik untuk suatu
bidang yang sempit.
g. Banyak pakar yang tidak mempunyai jalan
untuk mencek apakah kesimpulan mereka benar dan masuk akal.
h. Istilah dan jargon yang dipakai oleh
pakar dalam mengekspresikan fakta seringkali terbatas dan tidak mudah
dimengerti oleh orang lain.
i. Pengembangan Sistem Pakar seringkali
membutuhkan perekayasa pengetahuan (knowledge engineer) yang langka dan mahal.
j. Kurangnya rasa percaya pengguna
menghalangi pemakaian Sistem Pakar.
k. Transfer pengetahuan dapat bersifat
subyektif dan bias.
C.
Komponen Sistem Pakar
Secara umum,
Sistem Pakar biasanya terdiri atas beberapa komponen yang masing-masing
berhubungan seperti terlihat pada Gambar II-1.
Basis Pengetahuan, berisi pengetahuan yang dibutuhkan untuk
memahami, memformulasi, dan memecahkan masalah. Basis pengetahuan tersusun atas
2 elemen dasar:
1. Fakta, misalnya: situasi, kondisi, dan
kenyataan dari permasalahan yang ada, serta teori dalam bidang itu
2. Aturan, yang mengarahkan penggunaan
pengetahuan untuk memecahkan masalah yang spesifik dalam bidang yang khusus
Mesin Inferensi (Inference Engine), merupakan otak
dari Sistem Pakar. Juga dikenal sebagai penerjemah aturan (rule interpreter).
Komponen ini berupa program komputer yang menyediakan suatu metodologi untuk
memikirkan (reasoning) dan memformulasi kesimpulan. Kerja mesin inferensi
meliputi:
1. Menentukan aturan mana akan dipakai
2. Menyajikan pertanyaan kepada pemakai,
ketika diperlukan.
3. Menambahkan jawaban ke dalam memori
Sistem Pakar.
4. Menyimpulkan fakta baru dari sebuah
aturan
5. Menambahkan fakta tadi ke dalam memori.
Papan Tulis (Blackboard/Workplace), adalah
memori/lokasi untuk bekerja dan menyimpan hasil sementara. Biasanya berupa
sebuah basis data.
Antarmuka Pemakai (User Interface). Sistem Pakar
mengatur komunikasi antara pengguna dan komputer. Komunikasi ini paling baik
berupa bahasa alami, biasanya disajikan dalam bentuk tanya-jawab dan kadang
ditampilkan dalam bentuk gambar/grafik. Antarmuka yang lebih canggih dilengkapi
dengan percakapan (voice communication).
Subsistem Penjelasan (Explanation Facility). Kemampuan
untuk menjejak (tracing) bagaimana suatu kesimpulan dapat diambil merupakan hal
yang sangat penting untuk transfer pengetahuan dan pemecahan masalah. Komponen
subsistem penjelasan harus dapat menyediakannya yang secara interaktif menjawab
pertanyaan pengguna, misalnya:
1. “Mengapa pertanyaan tersebut anda
tanyakan?”
2. “Seberapa yakin kesimpulan tersebut
diambil?”
3. “Mengapa alternatif tersebut ditolak?”
4. “Apa yang akan dilakukan untuk mengambil
suatu kesimpulan?”
5. “Fakta apalagi yang diperlukan untuk
mengambil kesimpulan akhir?”
Sistem Penghalusan Pengetahuan (Knowledge
Refining System). Seorang pakar mempunyai sistem penghalusan pengetahuan,
artinya, mereka bisa menganalisa sendiri performa mereka, belajar dari
pengalaman, serta meningkatkan pengetahuannya untuk konsultasi berikutnya. Pada
Sistem Pakar, swa-evaluasi ini penting sehingga dapat menganalisa alasan
keberhasilan atau kegagalan pengambilan kesimpulan, serta memperbaiki basis
pengetahuannya.
D.
Pembangunan Sebuah Sistem Pakar
Mengembangkan
Sistem Pakar dapat dilakukan dengan 2 cara:
1. Membangun sendiri semua komponen di
atas, atau
2. Memakai semua komponen yang sudah ada
kecuali isi basis pengetahuan.
Yang kedua
disebut sebagai membangun Sistem Pakar dengan shell, yakni semua komponen
Sistem Pakar, kecuali basis pengetahuan, bersifat generik; sehingga dapat
dipakai untuk bidang yang berlainan. Membangun Sistem Pakar dengan shell dapat
dilakukan dengan lebih cepat dan lebih sedikit keterampilan memprogram, namun
berkurang fleksibilitasnya karena harus mengikuti kemampuan dari shell
tersebut. Salah satu shell Sistem Pakar yang populer dipakai adalah CLIPS (C
Language Integrated Production System) yang dapat didownload dari internet.
1. Pemilihan Masalah
Pembuatan
Sistem Pakar membutuhkan waktu dan biaya yang banyak. Untuk menghindari
kegagalan yang memalukan dan kerugian yang besar, maka dibuat beberapa pedoman
untuk menentukan apakah Sistem Pakar cocok untuk memecahkan suatu problem:
a. Biaya yang diperlukan untuk pembangunan Sistem Pakar
ditentukan oleh kebutuhan untuk memperoleh solusi. Sehingga harus ada
perhitungan yang realistis untuk cost and benefit.
b. Pakar manusia tidak mudah ditemui untuk semua situasi di
mana dia dibutuhkan. Jika pakar pengetahuan tersebut terdapat di mana saja dan
kapan saja, maka pembangunan Sistem Pakar menjadi kurang berharga.
c. Problem yang ada dapat diselesaikan dengan teknik
penalaran simbolik, dan tidak membutuhkan kemampuan fisik.
d. Problem tersebut harus terstruktur dengan baik dan tidak
membutuhkan terlalu banyak pengetahuan awam (common sense), yang terkenal sulit
untuk diakuisisi dan dideskripsikan, dan lebih banyak berhubungan dengan bidang
yang teknis.
e. Problem tersebut tidak mudah diselesaikan dengan metode
komputasi yang lebih tradisionil. Jika ada penyelesaian algoritmis yang bagus
untuk problem tersebut, maka kita tidak perlu memakai Sistem Pakar.
f. Ada
pakar yang mampu memberikan penjelasan tentang kepakarannya serta mau
bekerjasama. Adalah sangat penting bahwa pakar yang dihubungi benar-benar mempunyai
kemauan kuat untuk ikut berpartisipasi serta tidak merasa pekerjaannya akan
menjadi terancam.
g. Problem tersebut mempunyai sekup yang
tepat. Biasanya merupakan problem yang membutuhkan kepakaran yang sangat khusus
namun hanya membutuhkan seorang pakar untuk dapat menyelesaikannya dalam waktu
yang relatif singkat (misalnya paling lama 1 jam).
2. Rekayasa Pengetahuan (Knowledge
Engineering)
Proses dalam
rekayasa pengetahuan meliputi (Gambar II-2):
a. Akuisisi pengetahuan, yaitu bagaimana
memperoleh pengetahuan dari pakar atau sumber lain (sumber terdokumentasi,
buku, sensor, file komputer, dll.).
b. Validasi pengetahuan, untuk menjaga
kualitasnya misalnya dengan uji kasus.
c. Representasi pengetahuan, yaitu
bagaimana mengorganisasi pengetahuan yang diperoleh, mengkodekan dan
menyimpannya dalam suatu basis pengetahuan.
d. Penyimpulan pengetahuan, menggunakan
mesin inferensi yang mengakses basis pengetahuan dan kemudian melakukan
penyimpulan.
e. Transfer pengetahuan (penjelasan). Hasil inferensi berupa
nasehat, rekomendasi, atau jawaban, kemudian dijelaskan ke pengguna oleh
subsistem penjelas.
3. Partisipan Dalam Proses Pengembangan
Pakar, yaitu seseorang yang mempunyai pengetahuan, pengalaman, dan
metode khusus, serta mampu menerapkannya untuk memecahkan masalah atau memberi
nasehat. Pakar menyediakan pengetahuan tentang bagaimana nantinya Sistem Pakar
bekerja.
Perekayasa pengetahuan (knowledge engineer), yang membantu
pakar untuk menyusun area permasalahan dengan menerjemahkan dan
mengintegrasikan jawaban pakar terhadap pertanyaan-pertanyaan dari klien,
menarik analogi, serta memberikan contoh-contoh yang berlawanan, kemudian
menyusun basis pengetahuan.
Pengguna, yang mungkin meliputi: seorang klien non-pakar yang sedang
membutuhkan nasehat (Sistem Pakar sebagai konsultan atau advisor), seorang
siswa yang sedang belajar (Sistem Pakar sebagai instruktur), seorang pembuat
Sistem Pakar yang hendak meningkatkan basis pengetahuan (Sistem Pakar sebagai
partner), seorang pakar (Sistem Pakar sebagai kolega atau asisten, yang dapat
memberikan opini kedua).Partisipan lain, dapat meliputi: pembangun sistem (system
builder), tool builder, staf administrasi dsb.
4.
Akuisisi Pengetahuan
Dalam proses
akuisisi pengetahuan, seorang perekayasa pengetahuan menjembatani antara pakar
dengan basis pengetahuan. Perekayasa pengetahuan mendapatkan pengetahuan dari
pakar, mengolahnya bersama pakar tersebut, dan menaruhnya dalam basis
pengetahuan, dengan format tertentu. Pengambilan pengetahuan dari pakar dapat
dilakukan secara (Gambar II-3):
Manual, di mana perekayasa pengetahuan mendapatkan pengetahuan dari
pakar (melalui wawancara) dan/atau sumber lain, kemudian mengkodekannya dalam
basis pengetahuan. Proses ini biasanya berlangsung lambat, mahal, serta
kadangkala tidak akurat.
Semi-otomatik, di mana terdapat peran komputer untuk: (1)
mendukung pakar dengan mengijinkannya membangun basis pengetahuan tanpa (atau
dengan sedikit) bantuan dari perekayasa pengetahuan, atau (2) membantu
perekayasa pengetahuan sehingga kerjanya menjadi lebih efisien dan efektif.
Otomatik, di mana peran pakar, perekayasa pengetahuan, dan pembangun
basis pengetahuan (system builder) digabung. Misalnya dapat dilakukan oleh
seorang system analyst seperti pada metode induksi.
E.
Representasi Pengetahuan
Setelah
pengetahuan berhasil diakuisisi, mereka harus diorganisasi dan diatur dalam
suatu konfigurasi dengan suatu format/representasi tertentu. Metode
representasi pengetahuan yang populer adalah aturan produk dan bingkai.
1.
Aturan Produk (Production Rules)
Di sini
pengetahuan disajikan dalam aturan-aturan yang berbentuk pasangan keadaan-aksi
(condition-action): “JIKA keadaan terpenuhi atau terjadi MAKA suatu aksi akan
terjadi”. Sistem Pakar yang basis pengetahuannya melulu disajikan dalam bentuk
aturan produk disebut sistem berbasis-aturan (rule-based system). Kondisi dapat
terdiri atas banyak bagian, demikian pula dengan aksi. Urutan keduanya juga
dapat dipertukarkan letaknya. Contohnya:
a.JIKA suhu berada di bawah 20ºC MAKA udara terasa dingin.
b.Udara terasa dingin JIKA suhu berada di bawah 20ºC.
c.JIKA suhu berada di bawah 20ºC ATAU suhu berada di antara
20-25ºC DAN angin bertiup cukup kencang MAKA udara terasa dingin.
d.Contoh dari MYCIN, Sistem Pakar untuk mendiagnosis dan
merekomendasikan perlakuan yang tepat untuk infeksi darah tertentu:
IF the
infection is pimary-bacteremia
AND the site of
the culture is one of the sterile sites
AND the
suspected portal of entry is the gastrointestinal tract
THEN there is suggestive evidence (0.7)
that infection is bacteroid.
2. Bingkai (frame)
Bingkai adalah
struktur data yang mengandung semua informasi/pengetahuan yang relevan dari
suatu obyek. Pengetahuan ini diorganisasi dalam struktur hirarkis khusus yang
memungkinkan pemrosesan pengetahuan. Bingkai merupakan aplikasi dari
pemrograman berorientasi obyek dalam AI dan Sistem Pakar. Pengetahuan dalam bingkai
dibagi-bagi ke dalam slot atau atribut yang dapat mendeskripsikan pengetahuan
secara deklaratif ataupun prosedural. Contoh frame untuk menggambarkan sebuah
mobil diberikan dalam Gambar II-4 berikut ini.
F.
Bagaimana Sistem Pakar Melakukan Inferensi?
1. Sistem Perantaian Maju (Forward Chaining
Systems)
Pada sistem
perantaian maju, fakta-fakta dalam dalam sistem disimpan dalam memori kerja dan
secara kontinyu diperbarui. Aturan dalam sistem merepresentasikan aksi-aksi
yang harus diambil apabila terdapat suatu kondisi khusus pada item-item dalam
memori kerja, sering disebut aturan kondisi-aksi. Kondisi biasanya berupa pola
yang cocok dengan item yang ada di dalam memori kerja, sementara aksi biasanya
berupa penambahan atau penghapusan item dalam memori kerja.
Aktivitas
sistem dilakukan berdasarkan siklus mengenal-beraksi (recognise-act).
Mula-mula, sistem mencari semua aturan yang kondisinya terdapat di memori
kerja, kemudian memilih salah satunya dan menjalankan aksi yang bersesuaian
dengan aturan tersebut. Pemilihan aturan yang akan dijalankan (fire)
berdasarkan strategi tetap yang disebut strategi penyelesain konflik. Aksi
tersebut menghasilkan memori kerja baru, dan siklus diulangi lagi sampai tidak
ada aturan yang dapat dipicu (fire), atau goal (tujuan) yang dikehendaki sudah
terpenuhi.
Sebagai contoh,
lihat pada sekumpulan aturan sederhana berikut (Di sini kita memakai kata yang
diawali huruf kapital untuk menyatakan suatu variabel. Pada sistem lain,
mungkin dipakai cara lain, misalnya menggunakan awalan ? atau ^):
1.
JIKA (mengajar X) DAN (mengoreksi_tugas X) MAKA TAMBAH
(terlalu_banyak_bekerja X)
2.
JIKA (bulan maret) MAKA TAMBAH (mengajar balza)
3.
JIKA (bulan maret) MAKA TAMBAH (mengoreksi_tugas balza)
4.
JIKA (terlalu_banyak_bekerja X) ATAU (kurang_tidur X) MAKA
TAMBAH (mood_kurang_baik X)
5.
JIKA (mood_kurang_baik X) MAKA HAPUS (bahagia X)
6.
JIKA (mengajar X) MAKA HAPUS (meneliti X)
Kita asumsikan,
pada awalnya kita mempunyai memori kerja yang berisi fakta berikut:
- (bulan maret)
- (bahagia balza)
- (meneliti balza)
Sistem Pakar
mula-mula akan memeriksa semua aturan yang ada untuk mengenali aturan manakah
yang dapat memicu aksi, dalam hal ini aturan 2 dan 3. Sistem kemudian memilih salah satu di
antara kedua aturan tersebut dengan strategi penyelesaian konflik. Katakanlah
aturan 2 yang terpilih, maka fakta (mengajar balza) akan ditambahkan ke dalam
memori kerja. Keadaan memori kerja sekarang menjadi:
- (mengajar balza)
- (bulan maret)
- (bahagia balza)
- (meneliti balza)
Sekarang siklus
dimulai lagi, dan kali ini aturan 3 dan 6 yang kondisinya terpenuhi. Katakanlah
aturan 3 yang terpilih dan terpicu, maka fakta (mengoreksi_tugas balza) akan
ditambahkan ke dalam memori kerja. Lantas pada siklus ketiga, aturan 1 terpicu,
sehingga variabel X akan berisi (bound
to) balza, dan fakta (terlalu_banyak_bekerja balza) ditambahkan, sehingga
isi memori kerja menjadi:
- (terlalu_banyak_bekerja balza)
- (mengoreksi_tugas balza)
- (mengajar balza)
- (bulan maret)
- (bahagia balza)
- (meneliti balza)
Aturan 4 dan 6
dapat diterapkan. Misalkan aturan 4 yang terpicu, sehingga fakta
(mood_kurang_baik balza) ditambahkan. Pada siklus berikutnya, aturan 5 terpilih
dan dipicu, sehingga fakta (bahagia balza) dihapus dari memori kerja. Kemudian
aturan 6 akan terpicu dan fakta (meneliti balza) dihapus pula dari memori kerja
menjadi:
- (mood_kurang_baik balza)
- (terlalu_banyak_bekerja balza)
- (mengoreksi_tugas balza)
- (mengajar balza)
- (bulan maret)
Urutan aturan
yang dipicu bisa jadi sangat vital, terutama di mana aturan-aturan yang ada
dapat mengakibatkan terhapusnya item dari memori kerja. Tinjau kasus berikut:
andaikan terdapat tambahan aturan pada kumpulan aturan di atas, yaitu:
7. JIKA
(bahagia X) MAKA TAMBAH (memberi_nilai_bagus X)
Jika aturan 7
ini terpicu sebelum (bahagia balza) dihapus dari memori, maka Sistem Pakar akan
berkesimpulan bahwa saya akan memberi nilai bagus. Namun jika aturan 5 terpicu
dahulu, maka aturan 7 tidak akan dijalankan (artinya saya tidak akan memberi nilai
bagus).
2. Strategi
penyelesaian konflik (conflict resolution strategy)
Strategi
penyelesaian konflik dilakukan untuk memilih aturan yang akan diterapkan
apabila terdapat lebih dari 1 aturan yang cocok dengan fakta yang terdapat
dalam memori kerja. Di antaranya adalah:
- No duplication. Jangan memicu sebuah aturan dua kali menggunakan fakta/data yang sama, agar tidak ada fakta yang ditambahkan ke memori kerja lebih dari sekali.
- Recency. Pilih aturan yang menggunakan fakta yang paling baru dalam memori kerja. Hal ini akan membuat sistem dapat melakukan penalaran dengan mengikuti rantai tunggal ketimbang selalu menarik kesimpulan baru menggunakan fakta lama.
- Specificity. Picu aturan dengan fakta prakondisi yang lebih spesifik (khusus) sebelum aturan yang mengunakan prakondisi lebih umum. Contohnya: jika kita mempunyai aturan “JIKA (burung X) MAKA TAMBAH (dapat_terbang X)” dan “JIKA (burung X) DAN (pinguin X) MAKA TAMBAH (dapat_berenang X)” serta fakta bahwa tweety adalah seekor pinguin, maka lebih baik memicu aturan kedua dan menarik kesimpulan bahwa tweety dapat berenang.
- Operation priority. Pilih aturan dengan prioritas yang lebih tinggi. Misalnya ada fakta (bertemu kambing), (ternak kambing), (bertemu macan), dan (binatang_buas macan), serta dua aturan: “JIKA (bertemu X) DAN (ternak X) MAKA TAMBAH (memberi_makan X)” dan “JIKA (bertemu X) DAN (binatang_buas X) MAKA TAMBAH (melarikan_diri)”, maka kita akan memilih aturan kedua karena lebih tinggi prioritasnya.
3.
Sistem Perantaian Balik (Backward Chaining Systems)
Sejauh ini kita
telah melihat bagaimana sistem berbasis aturan dapat digunakan untuk menarik
kesimpulan baru dari data yang ada, menambah kesimpulan ini ke dalam memori
kerja. Pendekatan ini berguna ketika kita mengetahui semua fakta awalnya, namun
tidak dapat menebak konklusi apa yang bisa diambil. Jika kita tahu kesimpulan
apa yang seharusnya, atau mempunyai beberapa hipotesis yang spesifik, maka
perantaian maju di atas menjadi tidak efisien. Sebagai contoh, jika kita ingin
mengetahui apakah saya dalam keadaan mempunyai mood yang baik sekarang,
kemungkinan kita akan berulangkali memicu aturan-aturan dan memperbarui memori
kerja untuk mengambil kesimpulan apa yang terjadi pada bulan Maret, atau apa
yang terjadi jika saya mengajar, yang sebenarnya perlu terlalu kita ambil
pusing. Dalam hal ini yang diperlukan adalah bagaimana dapat menarik kesimpulan
yang relevan dengan tujuan atau goal.
Hal ini dapat
dikerjakan dengan perantaian balik dari pernyataan goal (atau hipotesis yang
menarik bagi kita). Jika diberikan sebuah goal yang hendak dibuktikan, maka
mula-mula sistem akan memeriksa apakah goal tersebut cocok dengan fakta-fakta
awal yang dimiliki. Jika ya, maka goal terbukti atau terpenuhi. Jika tidak,
maka sistem akan mencari aturan-aturan yang konklusinya (aksinya) cocok dengan
goal. Salah satu aturan tersebut akan dipilih, dan sistem kemudian akan mencoba
membuktikan fakta-fakta prakondisi aturan tersebut menggunakan prosedur yang
sama, yaitu dengan menset prakondisi tersebut sebagai goal baru yang harus
dibuktikan.
Perhatikan
bahwa pada perantaian balik, sistem tidak perlu memperbarui memori kerja, namun
perlu untuk mencatat goal-goal apa saja yang dibuktikan untuk membuktikan goal
utama (hipotesis).
Secara prinsip,
kita dapat menggunakan aturan-aturan yang sama untuk perantaian maju dan balik.
Namun, dalam prakteknya, harus sedikit dimodifikasi. Pada perantaian balik,
bagian MAKA dalam aturan biasanya tidak diekspresikan sebagai suatu aksi untuk
dijalankan (misalnya TAMBAH atau HAPUS), tetapi suatu keadaan yang bernilai
benar jika premisnya (bagian JIKA) bernilai benar. Jadi aturan-aturan di atas
diubah menjadi:
- JIKA (mengajar X) DAN (mengoreksi_tugas X) MAKA (terlalu_banyak_bekerja X)
- JIKA (bulan maret) MAKA (mengajar balza)
- JIKA (bulan maret) MAKA (mengoreksi_tugas balza)
- JIKA (terlalu_banyak_bekerja X) ATAU (kurang_tidur X) MAKA (mood_kurang_baik X)
- JIKA (mood_kurang_baik X) MAKA TIDAK BENAR (bahagia X)
dengan fakta
awal:
- (bulan maret)
- (meneliti balza)
Misalkan kita
hendak membuktikan apakah mood sedang kurang baik. Mula-mula kita periksa
apakah goal cocok dengan fakta awal. Ternyata tidak ada fakta awal yang menyatakan
demikian, sehingga langkah kedua yaitu mencari aturan mana yang mempunyai
konklusi (mood_kurang_baik balza). Dalam hal ini aturan yang cocok adalah
aturan 4 dengan variabel X diisi dengan (bound
to) balza. Dengan demikian kita harus membuktikan bahwa prakondisi aturan
ini, (terlalu_banyak_bekerja balza) atau (kurang_tidur balza), salah satunya
adalah benar (karena memakai ATAU). Lalu diperiksa aturan mana yang dapat
membuktikan bahwa adalah (terlalu_banyak_bekerja balza) benar, ternyata aturan
1, sehingga prakondisinya, (mengajar X) dan (mengoreksi_tugas X), dua-duanya
adalah benar (karena memakai DAN). Ternyata menurut aturan 2 dan 3, keduanya
bernilai bernilai benar jika (bulan maret) adalah benar. Karena ini sesuai
dengan fakta awal, maka keduanya bernilai benar. Karena semua goal sudah
terpenuhi maka goal utama (hipotesis) bahwa mood saya sedang kurang baik adalah
benar (terpenuhi).
Untuk mencatat
goal-goal yang harus dipenuhi/dibuktikan, dapat digunakan stack (tumpukan).
Setiap kali ada aturan yang konklusinya cocok dengan goal yang sedang
dibuktikan, maka fakta-fakta prakondisi dari aturan tersebut ditaruh (push) ke
dalam stack sebagai goal baru. Dan setiap kali goal pada tumpukan teratas
terpenuhi atau dapat dibuktikan, maka goal tersebut diambil (pop) dari
tumpukan. Demikian seterusnya sampai tidak ada goal lagi di dalam stack, atau
dengan kata lain goal utama (yang terdapat pada tumpukan terbawah) sudah
terpenuhi.
4. Pemilihan Sistem Inferensi
Secara umum
kita dapat memakai panduan berikut untuk menentukan apakah kita hendak memilih
perantaian maju atau balik untuk Sistem Pakar yang kita bangun. Panduan tersebut
tercantum dalam Tabel II-1 berikut ini.
5.
Ketidakpastian dalam Aturan
Sejauh ini kita
menggunakan nilai kebenaran tegas dalam fakta dan aturan yang dipakai,
misalnya: jika terlalu banyak bekerja maka pasti mood kurang baik. Pada
kenyataanya, seringkali kita tidak bisa membuat aturan yang absolut untuk
mengambil kesimpulan secara pasti, misalnya: jika terlalu banyak bekerja maka
kemungkinan besar mood kurang baik. Untuk itu, seringkali aturan yang dipakai
memiliki nilai kepastian (certainty value). Contohnya: jika terlalu banyak
bekerja maka pasti mood kurang baik (kepastian 0,75).
1.
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).
2. Eliza
Eliza adalah
salah satu Sistem Pakar yang paling awal dikembangkan. Ini adalah program
komputer terapis yang dibuat oleh Joseph Weizenbaum di MIT. Pengguna berkomunikasi
dengannya sebagaimana sedang berkonsultasi dengan seorang terapis. Berikut ini
adalah contoh percakapan antara Eliza dengan seorang klien:
Eliza: Hello. I
am ELIZA. How can I help you?
Klien:
My name is Balza.
Eliza:
I have told you before, I do not care about names.
Klien:
I don’t have any money. That’s my problem.
Eliza:
Why do you say your problem?
Klien:
Because you asked me.
Eliza:
Do any other reasons not come to mind?
Klien:
No.
Eliza:
You are being a bit negative.
Klien:
Why?
Eliza:
Please go on.
Klien:
OK. I am bankrupt.
Eliza:
How long have you been bankrupt?
Klien:
A year.
Eliza:
Please go on.
Klien:
So, what should I do?
Eliza:
Does that question interest you?
Klien:
Yes, how can I make big money?
Eliza:
You are sure?
Klien:
Of course I’m sure.
...
3.
Parry
Parry adalah
Sistem Pakar yang juga paling awal dikembangkan di Stanford University
oleh seorang psikiater, Kenneth Colby, yang mensimulasikan seorang paranoid.
Berikut ini contoh respon Parry terhadap pertanyaan seorang psikiater yang
menginterviunya.
Psikiater: Why
are you in the hospital?
Parry:
I shouldn't be here.
Psikiater:
Who brought you here?
Parry:
The police.
Psikiater:
What trouble did you have with the police?
Parry:
Cops don't do their job.
Psikiater:
What do they do instead?
Parry:
Cops arrest the wrong people.
Psikiater:
They arrest the right ones sometimes
Parry:
The law should get those Italian crooks.
Psikiater:
Are you Italian?
Parry:
My background is British but I was born in this country.
Psikiater:
Do you know any Italian crooks?
Parry:
I try to avoid the underworld.
...
Jangan lupa
tinggalkan pesan berupa saran dan kritik yang bermanfaat untuk blog ini.
Untuk teman-teman yang hendak mencopy artikel ini untuk dipasang pada blog atau
web-nya, dengan sangat diharapkan untuk mencantumkan Link keblog ini sebagai
sumber artikel sekaligus sebagai backlink untuk blog ini. Terima kasih untuk pengertian
dan kerjasamanya, mari berkembang bersama.