Sistem Berbasis Pengetahuan Irfan Subakti
20
Bab 3 Expert System
Software untuk membangun ES dapat digambarkan pada diagram berikut ini:
Specific Expert Systems
General-Purpose Knowledge
Engineering Languages
Support
Facilities
Explanation Programming
Expert
Systems
Shells
System-Building Aids
General-
Purposes
Programming
Languages
Higher-Level
Programming
Language
General
Purpose
Symbol
Manipulation
Knowledge
Acquisition
Design
T
o
o
l
s
Tahapan-tahapan dalam mengakuisisi knowledge digambarkan dalam diagram ini:
Identify Problem
Characteristics
IDENTIFICATION
Find Concepts to
Represent
Knowledge
Design Structure
to Organize
Knowledge
Formulate Rules
to Embody
Knowledge
Validate Rules
that Organize
Knowledge
CONCEPTUALIZATION
FORMALIZATION
IMPLEMENTATION
TESTING
Requierements
Concepts
Structure
Rules
R
e
f
i
n
e
m
e
n
t
s
R
e
d
e
s
i
g
n
s
R
e
f
o
r
m
u
l
a
t
i
o
n
s
Sistem Berbasis Pengetahuan Irfan Subakti
21
Bab 3 Expert System
Sedangkan proses pengembangan ES itu sendiri digambarkan sebagai berikut:
Problem Selection
(Step 1)
Rapid Prototyping
Select Expert(s)
(Step 2)
Conceptual Planning
(Step 3)
Select Software and
Hardware Tools
(Step 4)
Knowledge Acquisition
(Step 5)
Build a Prototype ES (Step 6)
Inference Engine Knowledge Base J ustifier
Blackboard Interface (Dialog)
Evaluate for Performance (Step 7)
Evaluate for Acceptance Training (Step 8)
Use in Parallel with Existing System (Step 9)
Develop Documentation and Maintenance Plans (Step 10)
System Release Full-Scale ES (Step 11)
Sistem Berbasis Pengetahuan Irfan Subakti
22
Bab 3 Expert System
Salah satu contoh dari ES (IFPS) dapat digambarkan dalam diagram di bawah ini:
Format Reports
SPOOL
RECORD
OPTION
DFNAME
COMMANDS
MODEL *)
COMBINE
CONSOLIDATE
WHAT IF
WHAT IF SAVE
COMPILESAVE
COMPILEGET
Variable List
ALL
INSERT
REMOVE
CHANGE
DATAFILE *)
CMDFILE *)
REPORT *)
Executive
Command
Level
CATALOG
LIST
COPY
DELETE
RESEQUENCE
MERGE
CONSOLDF
FILE
QUIT
AUTO
END
GENREPORT
SOLVE
Solve Options
BASE MODEL
RECOMPILE
Probabilistic
Value Control
ANALYZE
GOAL SEEKING
IMPACT
SENSITIVITY
STORE
STORENT
STOREP
Store Options
PLOT
Plot Options
*) Text Editor
Recognized
AUTO LIST
END SAVE
Editing Commands
Manipulation
Control
Efficiency
MONTE CARLO
Monte Carlo Options
Scenario
Building
Processing and
Interrogation
Risk Analysis
Print
Results
Store
Results
Graph
Results
Entry Processor
Modeling
Subsystem
Data File
Subsystem
Data
Editing
Command File
Subsystem
Report
Subsystem
Sistem Berbasis Pengetahuan Irfan Subakti
23
Bab 3 Expert System
Di bawah ini adalah diagram Financial Decision Support Model:
Growth, Penetration, and
Profit Strategies
Price Units Net Sales
Cost
Reduction
Required
Product
Rationalization
People/Sales
Forecast
Goals
Facilities
Requirements
Cost/sq. ft.
Facilities
Expenditure
Requirements
Cost Reduction
Program
Inventory
Change
Billings
Billings
Per Person
Goal
People
Pay/Person
Payroll
Capital
Ratios
Allowable
Costs
Profits Goals
Return on Assets
Goals
Assets
Inventories
Receivables
Cash and Other
Net Fixed Assets
Depreciation
Capital Expenditures
Contoh-contoh dari tindakan Heuristic:
Action Explanation
Sequence jobs through a machine Do the jobs that require the least time first.
Purchase stocks Do not buy stocks whose price-to-earnings ratio is
larger than 10.
Travel Do not go on the freeway between 8 and 9 A.M.
Capital investment in high-tech projects Consider only projects whose estimated payback
period is less than two years.
Purchase of a house Buy only a good neighborhood, but buy there only at
the lower price range.
Sistem Berbasis Pengetahuan Irfan Subakti
24
Bab 3 Expert System
Di bawah ini adalah diagram Unified Architecture untuk Intelligent Decision Support System:
Knowledge
Engineer
Data
Base
Knowledge
Base
Model
Base
Intelligent
Supervisor
Inference
Engine
Data Base Management
System
(DBMS)
Knowledge Acquisition
Subsystem
Model Base
Management System
(MBMS)
Natural Language
Interface
Central
Intelligence
Manager
User
D
i
a
l
o
g
S
u
b
s
y
s
t
e
m
Integrasi antara ES dengan software lain dapat digambarkan sebagai berikut:
Inference
Engine
Stats
Package
Maths
Package
Rule
Base
Database
User
Interface
Graphics
Package
3.10. Kesimpulan.
ES menirukan proses reasoning dari pakar untuk menyelesaikan masalah yang sulit.
Pendahulu ES adalah GPS (General-purpose Problem Solver). GPS dan yang serupa dengannya
gagal disebabkan mereka mencoba menangani terlalu banyak dan mengabaikan pentingnya
knowledge khusus yang dibutuhkan.
Kekuatan ES diturunkan dari knowledge khusus yang dimiliki, dan bukan dari representasi
knowledge tertentu dan skema inferencing yang dijalankan.
Kepakaran adalah knowledge task khusus yang didapatkan dari pelatihan/training, membaca,
dan pengalaman.
Pakar dapat membuat keputusan yang cepat dan baik berkenaan dengan situasi yang
kompleks.
Kebanyakan knowledge dalam organisasi dimiliki oleh segelintir pakar.
Teknologi ES mencoba untuk mentransfer knowledge dari pakar dan sumber-sumber
terdokumentasi ke komputer dan bisa digunakan oleh yang bukan pakar.
Kemampuan reasoning dalam ES disediakan oleh mesin inference (inference engine).
Sistem Berbasis Pengetahuan Irfan Subakti
25
Bab 3 Expert System
Knowledge dalam ES dipisahkan dari inferencing (pemrosesannya).
ES menyediakan kemampuan menjelaskan (explanation) yang terbatas.
Terdapat perbedaan diantara lingkungan pengembangan (membangun ES) dan lingkungan
konsultasi (menggunakan ES).
Komponen utama dari ES adalah subsistem pengakuisisian knowledge, knowledge base,
inference engine, blackboard, user interface, dan explanation subsystem.
Knowledge engineer menangkap knowledge dari pakar dan memprogramnya ke dalam
komputer.
Walaupun user utama dari ES adalah yang bukan pakar, user yang lain (seperti pelajar, ES
builder, dan mungkin para pakar juga) juga menggunakan ES.
Knowledge dapat berupa deklarasi (fakta) atau prosedur.
ES dapat ditingkatkan dalam langkah-langkah iterasi menggunakan proses yang disebut
dengan rapid prototyping (prototipe cepat).
10 kategori umum ES adalah: interpretasi, prediksi, diagnosis, desain, perencanaan,
pemantauan, debugging, perbaikan, instruksi, dan kontrol.
ES dapat memberikan banyak keuntungan. Yang terpenting adalah peningkatan dalam
produktivitas dan/atau kualitas, penanganan kepakaran yang jarang didapatkan, peningkatan
sistem yang lain, penanganan informasi yang tak lengkap, dan penyediaan training/pelatihan.
Walaupun ada pelbagai keterbatasan penggunaan ES, dengan adanya perkembangan teknologi
semakin lama keterbatasan tersebut akan makin hilang.
ES, seperti halnya pakar, dapat membuat kesalahan.
Terdapat pelbagai pembedaan diantara sistem-sistem pakar (ES), dimana kebanyakan
knowledge datang dari para pakar; serta knowledge systems, dimana mayoritas knowledge
datang dari sumber-sumber terdokumentasi.
Pelbagai ES tersedia sebagai sistem yang siap pakai; ia mengolah dan memberikan
advis/nasehat umum untuk situasi standar.
ES dapat juga bekerja dalam mode real-time (waktu nyata).
Sistem Berbasis Pengetahuan Irfan Subakti
26
Bab 4 Akuisisi dan Validasi Knowledge
BAB 4
AKUI SI SI DAN VALI DASI KNOWLEDGE
4.1. Rekayasa Knowledge.
Rekayasa knowledge dapat dipandang dari 2 perspektif: sempit dan luas.
Dalam perspektif luas, rekayasa knowledge menjelaskan keseluruhan proses pengembangan
dan pengelolaan sistem AI.
Dalam perspektif sempit, rekayasa knowledge berhubungan dengan akuisisi, representasi,
validasi, inferencing, penjelasan, dan pengelolaan knowledge. Pengertian ini yang digunakan
dalam pembahasan bab ini.
Proses Rekayasa Knowledge.
Dapat dilihat pada gambar di bawah ini:
Explanation,
J ustification
Knowledge
Base
Knowledge
Validation
(Test Cases)
Sources of Knowledge
(Experts, Others)
Knowledge
Representation
Inferencing
Knowledge
Representation
Encoding
4.2. Skup Knowledge.
Hal-hal yang berkenaan dengan knowledge, dapat digambarkan dalam bagan berikut ini:
Behavior
Descriptions
and Beliefs
Vocabulary
Definitions
Objects
and
Relationships
Heuristics and
Decision Rules
Procedures for
Problem Solving
Typical
Situations
Knowledge
Base
Knowledge
about Knowledge
(Metaknowledge)
Hypotheses
(Theories)
Uncertaint
Facts
Processes
Constraints
Facts about
the Domain
Disjunctive
Facts
General Knowledge
(e.g., of the World)
Sumber Knowledge.
2 sumber, terdokumentasi dan tak terdokumentasikan.
Sumber tak terdokumentasikan ini yang seringkali dijumpai, ia berada dalam pikiran orang
sehingga sulit didokumentasikan.
Sistem Berbasis Pengetahuan Irfan Subakti
27
Bab 4 Akuisisi dan Validasi Knowledge
Knowledge dapat diidentifikasikan dan dikumpulkan menggunakan indra manusia dan juga
mesin (sensor, scanner).
Keragaman dan pelbagai jenis knowledge menyebabkan akuisisi knowledge menjadi lebih
kompleks.
Akuisisi dari Database.
Pelbagai ES dibangun dari knowledge yang diekstrak baik keseluruhan maupun sebagian dari
database.
Bertambahnya jumlah knowledge yang disimpan dalam database, menjadikan akuisisi lebih
sulit dilakukan.
Level Knowledge.
Shallow knowledge (pengetahuan dangkal). Mengacu pada representasi informasi level
permukaan yang berhubungan dengan situasi yang sangat spesifik. Salah satu contoh adalah
aturan IF-THEN.
Deep knowledge (pengetahuan dalam). Mengacu pada struktur dalam dan penyebab dari
suatu sistem dan mempertimbangkan interaksi diantara komponen-komponen sistem. Ia
berbasis secara penuh pada integrasi, hubungan erat kesadaran manusia yang melibatkan
emosi, akal sehat, intuisi, dan lain-lain. J enis knowledge ini sulit untuk dikomputerisasikan.
Kategori Knowledge.
Knowledge deklaratif. Representasi deskriptif dari suatu knowledge. Ia menceritakan kepada
kita apakah (what) sesuatu itu. Diekspresikan dalam penyataan faktual. Menceritakan
kebenaran yang didapat dan asosiasi-asosiasinya. Biasanya berjenis knowledge dangkal, atau
level permukaan, informasi yang dapat diceritakan pakar secara verbal. Knowledge deklaratif ini
sangat penting dalam tahap awal akuisisi knowledge.
Knowledge prosedural. Mempertimbangkan perilaku dimana sesuatu bekerja di bawah
keadaan-keadaan tertentu. Ia mengikutsertakan urutan langkah demi langkah dan jenis
instruksi bagaimana (how-to); bisa juga mengikutsertakan penjelasan (explanation). Ia
melibatkan tanggapan otomatis terhadap rangsangan. Ia juga menceritakan pada kita
bagaimana menggunakan knowledge deklaratif dan bagaimana membuat inferences. J adi
secara implisit jenis knowledge ini menjelaskan juga pertanyaan mengapa (why).
Metaknowledge. Berarti knowledge mengenai knowledge. Dalam ES, metaknowledge
mengacu pada knowledge mengenai operasi sistem berbasis pengetahuan; yaitu, mengenai
kemampuan reasoning (memberikan alasan/penjelasan).
4.3. Kesulitan dalam Akuisisi Knowledge.
Secara umum, mentransfer informasi dari satu orang ke orang lain adalah hal yang sulit.
Beberapa mekanisme dapat digunakan untuk melakukan transfer ini menuliskan kata-kata,
suara, gambar, musik dan tak satupun dari ini yang sempurna.
Masalah juga ada dalam mentransfer knowledge, walaupun cuma pesan/message yang singkat.
Mentransfer knowledge dalam ES lebih sulit lagi.
Masalah-masalah dalam transfer knowledge.
Mengekspresikan knowledge.
Penyelesaian masalah dari para pakar ini meliputi 2 langkah proses. (1) Pakar
menginputkan informasi mengenai dunia luarnya ke dalam benaknya. Informasi ini disampaikan
oleh orang, komputer, atau media lain. J uga dikumpulkan melalui sensor atau dipanggil kembali
dari ingatan/memory. (2) Pakar menggunakan pendekatan induktif, deduktif, atau pendekatan lain
pada informasi tersebut. Hasil dari seluruh proses ini merupakan rekomendasi tentang bagaimana
menyelesaikan masalah.
Proses ini adalah proses internal. Knowledge engineer, saat mengumpulkan knowledge dari
pakar, harus menanyakan kepada para pakar agar mereka melihat ke dalam dirinya sendiri
mengenai proses pengambilan keputusan dan mengenai pengalaman-pengalaman yang terlibat di
dalamnya. Sangat sulit bagi para pakar dalam mengekspresikan pengalamannya mengenai proses
tadi, khususnya pada pengalaman-pengalaman yang berasal dari sensasi, pertimbangan, ingatan
indrawi, dan perasaan. Pakar sering mengabaikan proses detil bagaimana ia sampai mengambil
kesimpulan. J uga, pakar mungkin menggunakan aturan yang berbeda dalam menyelesaikan
masalah-masalah dalam kenyataannya dibandingkan yang ia nyatakan dalam wawancara akuisisi
knowledge.
Transfer ke mesin. Knowledge ditransfer ke mesin dan diorganisasi dengan cara-cara
tertentu. Mesin membutuhkan knowledge agar bisa mengekspresikannya secara jelas dalam
Sistem Berbasis Pengetahuan Irfan Subakti
28
Bab 4 Akuisisi dan Validasi Knowledge
level yang lebih rendah, lebih detil daripada manusia. Knowledge manusia disimpan dalam
format dengan susunan tertentu. Manusia jelas sulit mengingat semua langkah-langkah antara
yang digunakan otaknya dalam pentransferan atau pemrosesan knowledge. Sehingga, ada
ketidaksesuaian diantara komputer dan pakar.
J umlah partisipan. Dalam transfer umum knowledge ada 2 partisipan (pengirim dan
penerima). Dalam ES, bisa terdapat 4 partisipan (ditambah dengan komputer): pakar,
knowledge engineer, desainer sistem (builder, pembangun), dan user. Terkadang ada
partisipan lain (misal, programer dan vendor). Para partisipan ini memiliki latar belakang yang
berbeda, menggunakan istilah berbeda, dan memiliki ketrampilan dan knowledge yang berbeda
pula. Sebagai contoh, sang pakar, mungkin sedikit sekali mengerti tentang komputer,
sedangkan knowledge engineer sangat sedikit tahu tentang wilayah permasalahan.
Struktur knowledge. ES selain membutuhkan knowledge, juga berkepentingan dengan
struktur dari knowledge tersebut. Knowledge harus disusun menurut aturan tertentu (misal,
sebagai rules/aturan-aturan).
Alasan-alasan lain. Beberapa alasan yang menambahi kerumitan transfer knowledge:
1. Pakar mungkin memiliki keterbatasan waktu atau tak bersedia bekerja sama.
2. Testing dan penghalusan knowledge adalah sesuatu yang rumit.
3. Definisi yang mungkin kurang baik dari metode mendapatkan suatu knowledge.
4. Pembangun sistem bertendensi untuk mengumpulkan knowledge dari satu sumber, namun
knowledge yang relevan mungkin harus diperoleh dari pelbagai sumber.
5. Pembangun mungkin mencoba untuk mengumpulkan knowledge terdokumentasi daripada
memanfaatkan para pakar. Knowledge yang dikumpulkan mungkin tak lengkap.
6. Adalah sulit untuk mengenali knowledge tertentu jika ia tercampur dengan data yang tak
relevan.
7. Pakar mungkin mengubah perilakunya jika ia diamati dan/atau diwawancarai.
8. Masalah komunikasi antarpersonal yang mungkin ada diantara knowledge engineer dan pakar.
Mengatasi Pelbagai Kesulitan.
Banyak usaha telah dilakukan untuk mengatasi kesulitan-kesulitan yang sudah dijelaskan tadi.
Misalnya, mengembangkan program yang mampu menerima saran seperti yang sering
diberikan kepada para user/pemula.
Beberapa paket software pengembangan ES menyederhanakan sintaks dari rules (dalam sistem
berbasis rule/aturan) untuk membuat ES builder lebih mudah membuat dan memahaminya
tanpa pelatihan khusus.
NLP bisa juga digunakan menerjemahkan knowledge ke struktur representasi knowledge
tertentu.
Lebih lanjut, beberapa kesulitan mungkin bisa dikurangi atau dihilangkan dengan tool akuisisi
knowledge berbasis komputer dan dengan integrasi ekstensif dengan pelbagai usaha akuisisi.
Ketrampilan yang dibutuhkan oleh Knowledge Engineer:
Ketrampilan komputer (hardware, pemrograman, software).
Toleransi dan ambivalensi (bisa bersikap mendua, untuk sementara).
Kemampuan komunikasi yang efektif sensitivitas, taktik, dan diplomasi.
Latar belakang pendidikan yang luas.
Ketrampilan verbal di bidang sosial yang canggih dan mendalam.
Kemampuan untuk belajar cepat (dari bermacam-macam domain yang berbeda).
Pemahaman mengenai organisasi dan individu.
Pengalaman yang mumpuni dalam rekayasa knowledge.
Intelijen/kecerdasan.
Empati dan kesabaran.
Ketekunan.
Berpikir lojik.
Mengetahui pelbagai hal dan suka hal-hal baru.
Percaya diri.
4.4. Metode Akuisisi Knowledge: Pendahuluan.
Teknik mendapatkan knowledge dari pakar dapat dilakukan dengan cara manual atau dengan
bantuan komputer.
Kebanyakan teknik manual dipinjam (tetapi seringkali dimodifikasi) dari bidang Psikologi atau
dari analisis sistem.
Metode manual pada dasarnya dicirikan dengan jenis wawancara terstruktur.
Sistem Berbasis Pengetahuan Irfan Subakti
29
Bab 4 Akuisisi dan Validasi Knowledge
Di bawah ini disajikan gambaran metode manual dalam akuisisi knowledge:
Expert(s)
Documented
Knowledge
Knowledge
Engineer
Knowledge
Base
E
lic
ita
tio
n
Coding
Metode semiotomatis dibagi menjadi 2 kategori: (1) yang ditujukan untuk mendukung pakar
dengan mengijinkan mereka membangun basis knowledge dengan tanpa atau sedikit bantuan
knowledge engineer, yang dapat digambarkan seperti ini:
Expert
Computer-aided
(Interactive)
Interviewing
Knowledge
Base
Knowledge
Engineer
Coding
Dan (2) yang ditujukan untuk membantu knowledge engineer dengan mengijinkan mereka
mengeksekusi task/tugas yang diperlukan dengan cara yang lebih efektif dan/atau efisien
(terkadang dengan hanya partisipasi minimal sang pakar).
Pada metode otomatis, peran dari pakar dan/atau knowledge engineer diminimalkan atau
malah dihilangkan. Sebagai contoh, pada metode induksi yang diatur oleh sembarang builder
(misal, seorang sistem analis). Pakar berperan minimal dan knowledge engineer tak diperlukan
disini. Istilah otomatis mungkin salah diartikan. Pasti ada seorang/beberapa builder disitu, tapi
memang tak diperlukan adanya knowledge engineer dan pakar, kalaupun ada itupun hanya
sedikit. Metode induksi dapat digambarkan sebagai berikut:
Case Histories
and Examples
Induction
System
Knowledge
Base
4.5. Wawancara.
Format akuisisi knowledge yang paling umum adalah analisis wawancara tatap muka.
Dalam wawancara, pakar diberi presentasi dengan kasus simulasi atau jika mungkin dengan
masalah nyata secara singkat dimana ES nantinya diharapkan bisa menyelesaikan. Lalu sang
pakar ditanyai untuk menceritakan kepada knowledge engineer mengenai solusinya.
Terkadang metode ini disebut dengan metode walkthrough.
Proses wawancara bisa membosankan. Ia terlalu memusatkan diri pada sang pakar, seorang
yang harus mampu tak hanya mendemonstrasikan kepakarannya tapi juga dalam
mengekspresikannya.
Dengan kata lain, ia hanya membutuhkan perlengkapan kecil, sangat fleksibel dan bisa
dilakukan dimana saja, dan dapat menghasilkan jumlah informasi yang berarti.
2 jenis wawancara: tak terstruktur (informal) dan terstruktur.
Wawancara Tak Terstruktur.
Kebanyakan wawancara akuisisi knowledge dilakukan secara informal, biasanya sebagai tahap
permulaan.
Memulai dengan cara informal bisa menghemat waktu; ia secara cepat membantu
mendapatkan struktur dasar domain permasalahan. Lalu, umumnya hal ini akan diteruskan
dengan teknik formal.
Berbeda dengan anggapan banyak orang, wawancara tak terstruktur tidaklah sederhana.
Kenyataannya, ini memberikan knowledge engineer bermacam-macam masalah efek
berkelanjutan.
Wawancara tak terstruktur jarang dapat menyediakan gambaran lengkap atau terorganisasi
baik dari proses cognitif (pengenalan/pemahaman). Alasannya:
1. domain biasanya rumit.
2. pakar biasanya kesulitan dalam mengekspresikan elemen yang lebih penting dari
knowledgenya.
3. domain pakar mungkin menginterpretasikan struktur yang buruk karena persiapan yang kurang
sebelum diadakan wawancara itu.
Sistem Berbasis Pengetahuan Irfan Subakti
30
Bab 4 Akuisisi dan Validasi Knowledge
4. data yang didapat dari wawancara tak terstruktur sering tak berkaitan, terdiri dari bermacam-
macam level kerumitan, dan sulit bagi knowledge engineer untuk mengkaji ulang,
menginterpretasikan, dan mengintegrasikan.
5. disebabkan kurangnya pelatihan dan pengalaman, sedikit knowledge engineer dapat
melakukan wawancara tak terstruktur dengan efisien.
Wawancara Terstruktur.
Di bawah ini adalah prosedur untuk melakukan wawancara terstruktur:
Knowledge engineer mempelajari materi yang tersedia pada domain untuk mengidentifikasi
garis batas utama knowledge yang relevan.
Knowledge engineer mengkaji ulang kemampuan ES yang direncanakan. Dia mengidentifikasi
tujuan pertanyaan yang akan ditanyakan selama sesi akuisisi knowledge.
Knowledge engineer secara formal menjadwal dan merencanakan (menggunakan form)
wawancara terstruktur. Perencanaan ini termasuk juga janji bertemu secara fisik,
mendefinisikan tujuan dan agenda sesi akuisisi knowledge, dan mengidentifikasi atau
memperhalus wilayah utama pertanyaannya.
Knowledge engineer dapat saja menuliskan contoh pertanyaan, berfokus pada jenis
pertanyaan, level, dan teknik bertanya.
Knowledge engineer meyakinkan pakar domain agar memahami maksud dan tujuan sesi ini dan
mendorong pakar untuk bersiap-siap lebih dulu sebelum dilakukan wawancara tersebut.
Selama wawancara knowledge engineer mengikuti arahan/panduan dalam melakukan
wawancara.
Selama wawancara knowledge engineer menggunakan kontrol arah/navigasi untuk
mempertahankan struktur wawancara.
4.6. Metode Pelacakan.
Mengacu pada teknik yang mencoba untuk melacak proses reasoning dari seorang pakar.
Ia merupakan pendekatan yang populer diantara para psikolog kognitif, yaitu orang yang
tertarik untuk mengetahui jalan pikiran seorang pakar saat sang pakar tersebut mencapai
kesimpulan.
Knowledge engineer dapat menggunakan proses pelacakan ini untuk menemukan informasi apa
yang digunakan dan bagaimana penggunaannya.
Metode pelacakan dapat formal maupun informal.
Metode formal yang paling umum adalah analisis protokol.
Prosedur Analisis Protokol:
Sediakan untuk sang pakar informasi dalam skala penuh yang berhubungan dengan suatu
task/tugas.
Tanyakan pada pakar untuk memverbalkan (mengucapkan secara lisan tugas) tersebut dalam
cara yang sama seperti sang pakar itu menyelesaikannya secara normal, demikian juga minta
sang pakar tersebut memverbalkan proses keputusannya dan catat pemverbalan ini di tape.
Buatlah statemen-statemen dengan menuliskan protokol verbal tadi.
Kumpulkan statemen yang kelihatannya banyak mengandung informasi.
Sederhanakan dan tulis kembali statemen yang terkumpul dan susunlah tabel aturan-aturan
produksi (production rules) dari statemen tadi.
Buatlah serangkaian model dengan menggunakan aturan-aturan produksi tersebut.
Keuntungan dan Keterbatasan Analisis Protokol.
Advantage Limitations
Expert consciously considers decision-making
heuristics.
Expert consciously considers decision
alternatives attributes, values.
Knowledge engineer can observe and analyze
decision-making behavior.
Knowledge engineer can record, and later
analyze with the expert key decision points.
Requires that expert be aware of why he or she
makes a decision.
Requires that expert be able to categorize major
decision alternatives.
Requires that expert be able to verbalize the
attributes and values of a decision alternative.
Requires that expert be able to reason about the
selection of a given alternative.
Subjective view of decision making.
Explanations may not track with reasoning.
Sistem Berbasis Pengetahuan Irfan Subakti
31
Bab 4 Akuisisi dan Validasi Knowledge
4.7. Pengamatan dan Metode Manual Lainnya.
Pengamatan (observasi).
Dalam beberapa kasus, adalah mungkin untuk mengamati pakar saat bekerja di bidangnya.
Dalam banyak kasus ini adalah pendekatan yang jelas dan terang dalam akuisisi knowledge.
Kesulitannya adalah ia sulit diperkirakan.
Contoh, kebanyakan pakar memberikan nasehat kepada beberapa orang, dan kemungkinan
bekerja pada beberapa domain secara bersamaan. Observasi yang dilakukan harus mencakup
semua aktivitas sang pakar. Sehingga, data yang dikumpulkan jumlahnya besar sekali dimana
sebenarnya yang dibutuhkan cuma sedikit. Dalam hal lain, jika kita merekamnya dengan tape
atau video, biaya menuliskan rekaman yang panjang itu patut pula dipertimbangkan.
Pengamatan yang dapat dipandang sebagai kasus khusus dari protokol, terdiri dari 2 jenis:
gerakan motorik dan gerakan mata.
Gerakan motorik adalah kinerja fisik sang pakar (misal, berjalan, menggapai sesuatu,
berbicara) yang didokumentasikan.
Gerakan mata mendokumentasikan dimana sang pakar menetapkan pandangan matanya.
Pengamatan digunakan utamanya sebagai cara mendukung protokol verbal.
Biasanya mahal dan memakan waktu.
Pelbagai metode manual lainnnya:
Case analysis.
Critical incident analysis.
Commentaries.
Conceptual graph.
Brainstorming.
Prototyping.
Multidimensional scaling.
J ohnsons hierarchical clustering.
4.8. Metode Expert-driven.
Ada 2 pendekatan: manual dan dibantu komputer (semiotomatis).
Metode manual: laporan oleh sang pakar itu sendiri.
Terkadang dimungkinkan untuk mendapatkan knowledge dari pakar secara manual dengan
menggunakan daftar pertanyaan yang dapat diatur sendiri atau laporan yang terorganisasi.
Pertanyaan berjenis open-ended (bentuk jawabannya bebas) digunakan untuk mendapatkan
knowledge yang memiliki konsep level tinggi.
Pertanyaan berjenis close-ended (bentuk jawabannya terbatas) lebih terstruktur dan mudah
diisi, tetapi knowledge yang didapat juga terbatas.
Sebagai tambahan dalam daftar pertanyaan, pakar mungkin ditanya mengenai catatan aktivitas
mereka, persiapan mengajar mereka, atau laporan yang dihasilkan mengenai aktivitas
penyelesaian masalah mereka.
Laporan pakar dan daftar pertanyaan memunculkan sejumlah masalah seperti di bawah ini:
1. Secara esensial mengharuskan pakar bertindak sebagai knowledge engineer, tanpa pelatihan
untuk menjadi knowledge engineer.
2. Laporan tersebut cenderung memiliki derajat bias yang tinggi; biasanya merefleksikan opini
sang pakar mengenai bagaimana suatu task/tugas seharusnya dikerjakan daripada bagaimana
yang sebenarnya dikerjakan.
3. Pakar sering menjelaskan ide baru dan belum teruji, serta strategi-strategi yang telah
direnungkannya tetapi hal-hal ini tak termasuk dalam perilaku pengambilan keputusan mereka.
J uga mereka sering mencampuradukkan pengalaman lalu, perilaku sesungguhnya, dan perilaku
ideal masa mendatang.
4. Laporan pakar merupakan usaha yang memakan waktu, dan para pakar akan segera
kehilangan ketertarikan pada suatu hal. Kualitas informasi yang dicapai akan terus berkurang di
saat laporan terus berkembang.
5. Pakar harus cakap dalam teknik diagram alur atau proses dokumentasi lainnya.
6. Pakar mungkin lupa pada bagian khusus tertentu dari suatu knowledge (yang mungkin
menimbulkan kerancuan).
7. Pakar kelihatannya tak terlalu jelas dalam mengasosiasikan suatu kejadian (yang mungkin
menimbulkan bias yang tak tentu).
Sistem Berbasis Pengetahuan Irfan Subakti
32
Bab 4 Akuisisi dan Validasi Knowledge
Pendekatan bantuan komputer.
Tujuan dari dukungan terkomputerisasi ke pakar adalah mengurangi atau menghilangkan
masalah potensial yang sudah dibahas pada pendekatan manual sebelumnya, khususnya pada
masalah bias dan kerancuan.
Tool akuisisi knowledge yang cerdas digunakan untuk menghaluskan dan mengkoreksi
knowledge yang telah ada.
Teknik pemodelan visual sering digunakan untuk menyusun model domain awal.
4.9. Repertory Grid Analysis.
Pengalaman sering berdasarkan persepsi, wawasan, dan intuisi. Sehingga banyak pakar
kesulitan dalam mengekspresikan reasoning-nya.
Pakar sering bingung membedakan fakta dan faktor yang sesungguhnya mempengaruhi
pengambilan keputusan.
Untuk mengatasinya, diturunkan dari bidang Psikologi, digunakan pendekatan yang disebut
dengan classification interview (wawancara terklasifikasi).
Karena terstruktur saat diaplikasikan ke teknologi, metode ini biasanya dibantu dengan
komputer. Metode utamanya disebut dengan Repertory Grid Analysis (RGA).
RGA berdasarkan model yang diusulkan oleh Kelly mengenai pemikiran manusia yang disebut
dengan Personal Construct Theory.
Berdasarkan teori ini, setiap orang dipandang sebagai ilmuwan pribadi yang mencari untuk
memperkirakan dan mengontrol kejadian-kejadian dengan menyusun teori, mengetes hipotesis,
dan menganalisis hasil percobaan. Knowledge dan persepsi mengenai dunia (atau mengenai
domain atau suatu masalah) diklasifikasikan dan dikategorisasikan oleh setiap individu sebagai
model personal, model perseptual. Berdasarkan model yang dikembangkan tadi, setiap
individu mampu mengantisipasi dan lalu beraksi berdasarkan antisipasi ini.
Model personal ini sesuai dengan cara pandang seorang pakar dalam bekerja; ia adalah
gambaran dari pengembangan dan penggunaan knowledge dari sang pakar, dan selanjutnya ia
layak untuk ES.
Cara kerja RGA.
1. Pakar mengidentifikasi objek-objek penting dalam domain kepakaran. Contoh: bahasa
komputer (LISP, C, COBOL) adalah objek dalam kasus memilih bahasa komputer.
2. Pakar mengidentifikasi atribut penting yang diperlukan dalam pengambilan keputusan dalam
domain. Contoh: ketersediaan paket komersial dan kemudahan dalam pemrograman adalah hal
penting dalam kasus memilih bahasa komputer.
3. Untuk setiap atribut, pakar ditanyai untuk membuat skala bipolar dengan pembedaan
karakteristik (sifat) dan lawannya. Contoh: dalam kasus memilih bahasa komputer, disajikan
dalam tabel seperti di bawah ini.
Attributes Trait Opposite
Availability Widely available Not available
Ease of programming High Low
Training time Low High
Orientation Symbolic Numeric
4. Pewawancara mengambil 3 objek sembarang dan bertanya: atribut dan sifat apakah yang
membedakan 2 dari 3 objek ini? J awaban ini diterjemahkan pada skala 1-3 (atau 1-5). Langkah
ini diulang untuk beberapa objek trio lagi. Contoh: jika kumpulannya adalah LISP, PROLOG,
dan COBOL; sang pakar mungkin menekankan pada orientasi. Lalu sang pakar mengatakan
bahwa LISP dan PROLOG bersifat simbolik, sedangkan COBOL bersifat numerik. Dapat
diisajikan dalam tabel seperti di bawah ini:
Attribute Orientation Ease of
Programming
Training Time Availability
Trait
Opposite
Symbolic (3)
Numeric (1)
High (3)
Low (1)
High (1)
Low (3)
High (3)
Low (1)
LISP 3 3 1 1
PROLOG 3 2 2 1
C 2 3 2 2
COBOL 1 2 1 3
Penggunaan RGA dalam ES.
Contohnya adalah: Expertise Transfer System (ETS), Aquinas, dan Kriton.
Sistem Berbasis Pengetahuan Irfan Subakti
33
Bab 4 Akuisisi dan Validasi Knowledge
4.10. Dukungan Knowledge Engineer.
Sejumlah tool akuisisi dan encoding menghemat waktu yang diperlukan (dan/atau level
ketrampilan) oleh knowledge engineer.
Namun demikian, knowledge engineer dalam kasus ini tetap memainkan peran penting dalam
proses tersebut, seperti terlihat pada gambar di bawah ini:
Expert
I
Expert
II
Knowledge
Acquisition
Knowledge
Base
Encoding
Computer
Knowledge
Base
ES Tools
Client
I
Client
II
Knowledge
Engineer
Advise
Manage
Acquisition
Edit
Manage
Encoding
Edit
Validate
Train
Alat bantu akusisi knowledge.
Editor dan antarmuka.
Fasilitas untuk menjelaskan (explanation).
Revisi dari basis pengetahuan.
Pictorial Knowledge Acquisition (PIKA).
Contoh: TEIRESIAS, EMYCIN, dan lain-lain.
Alat bantu akuisisi knowledge terintegrasi.
Masing-masing alat bantu yang sudah disebut diatas, biasanya bekerja sendiri-sendiri.
Namun ada kecenderungan untuk mengintegrasikan semua alat bantu tadi.
Contoh: Auto-Intelligence, KADS (Knowledge Acquisition and Documentation System).
Front-end Tools.
Contoh: Knowledge Analysis Tool (KAT) mengkonversi knowledge ke format rule khusus untuk
satu tool yang disebut Level5. NEXTRA adalah tool serupa yang membantu knowledge engineer
untuk meng-kode rule dalam Nexpert Object.
4.11. Induksi Rule, Case-based Reasoning, dan Komputasi Syaraf.
Metode untuk mendapatkan knowledge yang manual dan semiotomatis ternyata lamban dan
mahal, ternyata masih ditambahi lagi dengan kekurang-kekurangan seperti ini:
Sulit untuk memvalidasi knowledge yang diperoleh.
Seringkali terdapat korelasi lemah diantara laporan verbal dan perilaku mental.
Dalam situasi tertentu pakar tak mampu menyediakan keseluruhan hal tentang bagaimana
suatu keputusan tersebut mereka buat.
Sistem Berbasis Pengetahuan Irfan Subakti
34
Bab 4 Akuisisi dan Validasi Knowledge
Kualitas suatu sistem banyak tergantung pada kualiatas pakar dan knowledge engineer.
Pakar tak memahami teknologi ES.
Knowledge engineer tak memahami, dalam banyak kasus, sifat dasar bisnis.
Sehingga diperlukan pengembangan metode akuisisi knowledge yang dapat mengurangi atau
menghilangkan kebutuhan dari 2 partisipan ini. Metode ini disebut dengan akuisisi knowledge yang
dibantu oleh komputer, atau akuisisi knowledge otomatis, dengan tujuan:
Meningkatkan produktivitas pekerjaan knowledge engineer (mengurangi biaya).
Mengurangi level ketrampilan yang diperlukan oleh knowledge engineer.
Menghilangkan (atau mengurangi secara drastis) kebutuhan akan pakar.
Menghilangkan (atau mengurangi secara drastis) kebutuhan akan knowledge engineer.
Meningkatkan kualitas knowledge yang didapat.
Induksi Rule Otomatis.
Induksi berarti proses reasoning dari hal khusus ke hal umum.
Dalam ES istilah ini mengacu pada proses dimana rule dihasilkan oleh program komputer dari
contoh kasus.
Sistem induksi rule menyediakan contoh-contoh masalah (disebut dengan training
set/kumpulan pelatihan) dimana hasilnya diketahui. Setelah ia diberi cukup contoh, sistem
induksi rule dapat membuat rule yang sesuai dengan contoh kasus. Rule ini lalu dapat
digunakan untuk membantu kasus lain dimana hasilnya tak diketahui. J antung dari sistem
induksi rule adalah algoritma yang digunakan untuk menginduksi rule dari contoh-contoh.
Contoh dari algoritma induksi ini adalah: ID3. Pertama kali ID3 mengkonversi matriks
knowledge ke dalam pohon keputusan. Atribut yang tak relevan dihilangkan dan atribut yang
relevan diorganisasi dalam cara yang efisien.
Contoh dari induksi rule sederhana dapat dilihat pada pekerjaan petugas bagian pinjaman di
bank. Permintaan akan pinjaman meliputi informasi peminta pinjaman, seperti tingkat
pendapatan, aset, usia dan jumlah tanggungannya. Ini merupakan atribut, atau karakteristik
dari peminta pinjaman. J ika kita mencatat beberapa contoh kasus, semuanya dengan
keputusan final, kita akan dapatkan situasi yang dapat digambarkan seperti tabel di bawah ini:
Attributes
Annual
Applicant
Number of
Income ($)
Assets ($)
Age
Dependents
Decision
Mr. White 50,000 100,000 30 3 Yes
Ms. Green 70,000 None 35 1 Yes
Mr. Smith 40,000 None 33 2 No
Ms. Rich 30,000 250,000 42 0 Yes
Dari kasus diatas, adalah mudah mendapatkan 3 rule ini:
1. J ika pendapatannya $70,000 atau lebih, setujui permintaan pinjamannya.
2. J ika pendapatannya $30,000 atau lebih, umurnya paling sedikit 40 tahun, asetnya melebihi
$249,000, dan ia tak mempunyai tanggungan, setujui permintaan pinjamannya.
3. J ika pendapatannya diantara $30,000 dan $50,000 dan asetnya paling sedikit $100,000, setujui
permintaan pinjamannya.
Keuntungan dari induksi rule.
Dengan menggunakan induksi rule maka ES dapat digunakan untuk hal-hal yang lebih rumit,
dan lebih menguntungkan secara komersial.
Keuntungan lainnya adalah pembangun (builder) tak harus menjadi knowledge engineer. Ia
bisa berasal dari seorang pakar atau analis sistem. Ini berarti tak hanya menghemat waktu dan
uang, tapi juga menyelesaikan kesulitan yang berhubungan dengan knowledge engineer yang
merupakan orang luar yang tak familier dengan bisnis.
Mesin induksi juga menawarkan kemungkinan mendeduksi knowledge baru. Dimungkinkan
mendaftar semua faktor yang mempengaruhi keputusan, tanpa pemahaman akan dampaknya,
dan untuk menginduksi rule yang bekerja dengan baik.
Sekali rule dihasilkan, maka ia dapat dikaji ulang oleh pakar dan bila diperlukan bisa
dimodifikasi.
Keuntungan besar dari induksi rule adalah ia meningkatkan proses pemikiran dari sang pakar.
Sistem Berbasis Pengetahuan Irfan Subakti
35
Bab 4 Akuisisi dan Validasi Knowledge
Kesulitan dalam implementasi.
Beberapa program induksi yang dapat menghasilkan rule, mungkin tak mudah bagi orang
untuk memahaminya, disebabkan cara program mengklasifikasikan atribut masalah dan
propertinya mungkin tak sesuai dengan cara manusia melakukan hal itu.
Program induksi rule tak memilih atribut. Sang pakar tetap harus memilih atribut mana yang
signifikan; misal, faktor penting untuk menyetujui pinjaman.
Proses pencarian dalam induksi rule berdasarkan algoritma khusus yang menghasilkan pohon
keputusan yang efisien, yang mengurangi jumlah pertanyaan yang harus ditanyakan sebelum
suatu kesimpulan dapat dicapai. Ada beberapa alternatif algoritma yang lain dan mereka
berbeda-beda dalam proses dan kemampuan.
Metode ini baik hanya untuk rule-based (berbasis aturan), masalah berjenis klasifikasi,
khususnya pada jenis ya0tidak. (Namun demikian, banyak masalah dapat diurai atau dipilah-
pilah sehingga menjadi kategori klasifikasi).
J umlah atribut harus cukup kecil. Kalau atributnya lebih dari 15, mungkin diperlukan
mainframe. Batas atas jumlah atribut ini dengan adanya perkembangan hardware dan software
komputer sekarang ini sudah meningkat jauh.
Kecukupan jumlah contoh-contoh yang diperlukan bisa sangat besar.
Kumpulan contoh-contoh harus di-bersihkan; sebagai contoh, kasus-kasus yang merupakan
pengecualian dari rule harus dihilangkan dulu.
Metode ini terbatas pada situasi yang tertentu (deterministik).
Masalah utama dengan metode ini adalah pembangun (builder) tak tahu lebih jauh apakah
jumlah contoh-contoh sudah mencukupi dan apakah algoritmanya sudah cukup baik.
Induksi interaktif.
Kombinasi dari pakar yang didukung oleh komputer disebut dengan induksi interaktif.
Ia dapat menangkap knowledge dari pakar melalui wawancara interaktif, menyaring
knowledge, dan lalu secara otomatis menghasilkan knowledge berbasis rule.
Case-based reasoning.
Pendekatan pembangunan ES dengan mengakses pengalaman-pengalaman penyelesaian
masalah (studi kasus) untuk memperkirakan solusi dalam penyelesaian masalah di masa depan.
Koleksi dari kasus-kasus historis dan penyelesaiannya membentuk knowledge base.
Pengambil keputusan memanggil kembali kasus-kasus sebelumnya yang mungkin identik
dengan kasus baru, walaupun dalam banyak hal tak bisa identik. Mereka mungkin
menunjukkan sedikit kemiripan dengan kasus baru, tetapi walaupun sedikit hal itu tetap saja
berguna.
Akuisisi knowledge sangat mudah dilakukan, karena data historis berada dalam file dan hanya
memerlukan sedikit verifikasi dari pakar.
Komputasi Syaraf.
Pendekatan penyelesaian masalah yang lain dimana data historis digunakan untuk menurunkan
solusi ke masalah yang baru.
Berbeda dengan case-based reasoning, komputasi syaraf bekerja dalam domain yang cukup
sempit menggunakan pendekatan pengenalan pola. Untuk itu diperlukan sejumlah besar kasus-
kasus historis.
Akuisisi knowledge menjadi sederhana, karena kasus-kasus historis dan penyelesaiannya
biasanya tersedia dalam database perusahaan. Sekali lagi, konsultasi kepada pakar dapat
dilakukan selama validasi dan verifikasi, tetapi peran mereka sudah jauh berkurang, dan juga
usaha dan pengeluaran yang harus dilakukan untuk akuisisi knowledge.
4.12. Memilih Metode yang Sesuai.
Tujuan sistem akuisisi knowledge ideal adalah:
Mengarahkan interaksi dengan pakar tanpa intervensi knowledge engineer.
Dapat diaplikasikan untuk domain masalah yang tak terbatas, atau paling tidak banyak klas.
Kemampuan tutorial untuk menghilangkan kebutuhan akan pelatihan awal bagi sang pakar.
Kemampuan untuk menganalisis pekerjaan yang sedang berlangsung untuk mendeteksi
ketidakkonsistenan dan kesenjangan di dalam knowledge.
Kemampuan untuk menggabungkan bermacam-macam sumber knowledge.
Antarmuka manusia (misal, percakapan biasa) yang membuat penggunaan sistem terasa
nyaman dan menarik.
Sistem Berbasis Pengetahuan Irfan Subakti
36
Bab 4 Akuisisi dan Validasi Knowledge
Kemampuan dalam antarmuka secara mudah dengan pelbagai tool ES yang berbeda yang
sesuai dengan domain permasalahan.
4.13. Akuisisi Knowledge dari Banyak Pakar.
Di bawah ini disajikan keuntungan dan masalah yang terjadi dari partisipasi banyak pakar:
Benefits Problems
On the average, fewer mistakes by a group of
experts than by a single expert.
Several experts in group eliminate need for
using world-class expert (who is difficult to get
and expensive).
Wider domain than a single experts.
Synthesis of expertise.
Enhanced quality from synergy among experts.
Groupthink phenomena.
Fear on the part of some domain experts of
senior experts or a supervisor (lack of
confidentiality).
Compromising solutions generated by a group
with conflicting opinions.
Waste of time in group meeting.
Difficulties in scheduling the experts.
Dominating experts (controlling, not letting
others speak).
Skenario dari banyaknya pakar yang terlibat.
Pakar individu.
Pakar utama dan pakar pendamping.
Grup kecil.
Panel.
Metode penanganan banyak pakar.
Beberapa pendekatan utama dalam hal mengintegrasikan opini dari banyak pakar adalah:
Padukan beberapa jalur reasoning melalui metode konsensus.
Gunakan pendekatan analitis.
J agalah jalur reasoning agar selalu jelas dan pilihlah jalur reasoning yang spesifik berdasarkan
situasi tertentu.
Otomatisasikan prosesnya.
Uraikan knowledge yang sudah didapat ke dalam sumber knowledge khusus (blackboard
systems).
J adi metode yang dipakai adalah:
Metode konsensus.
GDSS.
Pendekatan analitis.
J alur reasoning spesifik.
Proses terotomatisasi.
Blackboard Systems.
4.14. Validasi dan Verifikasi Knowledge Base.
Akuisisi knowledge melibatkan aspek-aspek kontrol kualitas yang muncul dalam istilah evaluasi,
validasi, dan verifikasi.
Evaluasi adalah konsep yang luas. Tujuannya adalah menilai keseluruhan nilai dari ES.
Sebagai tambahan untuk menilai pada level kinerja yang dapat diterima, ia menganalisis jika
sistem tersebut dapat dipakai, efisien, dan efektif dalam hal biayanya.
Validasi adalah bagian dari evaluasi yang berhubungan dengan kinerja dari sistem (misal,
dibandingkan dengan yang dilakukan pakar). Singkatnya, validasi mengacu pada pembangunan
sistem yang benar; sehingga, menandakan bahwa sistem bekerja dengan level akurasi yang
dapat diterima.
Verifikasi mengacu pada pembangunan sistem dengan benar; menandakan bahwa sistem
diimplementasikan dengan benar sesuai dengan spesifikasinya.
Di bawah ini disajikan tabel mengenai ukuran-ukuran validasi:
Measure (Criteria) Description
Accuracy How well the system reflects reality; how correct the
knowledge is in the knowledge base
Adaptability Possibilities for future development, changes
Adequacy (or completeness) Portion of the necessary knowledge that is included in the
knowledge base
Appeal How well the knowledge base matches intuition and
Sistem Berbasis Pengetahuan Irfan Subakti
37
Bab 4 Akuisisi dan Validasi Knowledge
Measure (Criteria) Description
stimulates thought and practicability
Breadth How well the domain is covered
Depth Degree of the detailed knowledge
Face validity Credibilitiy of knowledge
Generality Capability of a knowledge base to be used with a broad range
of similar problems
Precision Capability of the system to replicate particular system
parameters; consistency of advise; coverage of variables in
knowledge base
Realism Accounting for relevan variables and relations; similarity to
reality
Reliability Fraction of the ES predictions that are empirically correct
Robustness Sensitivity of conclusions to model strukture
Sensitivity Impact of changes in the knowledge base on quality of
outputs
Technical and operational validity Goodness of the assumed assumptions, context, constraints,
and conditions, and their impact on other measures
Turing test Ability of a human evaluator to identify if a given conclusion is
made by an ES or by a human expert
Usefulness How adequate the knowledge is (in terms of parameters and
relationships) for solving correctly
Validity Knowledge bases capability of producing empirically correct
predictions
4.15. Analisis, Kodifikasi, Dokumentasi, dan Pendiagraman.
Knowledge yang sudah terkumpul harus dianalisis, dikodekan, dan didokumentasikan.
Langkah-langkah prosesnya adalah: transkripsi, pengindeksan frase, pengkodean knowledge,
dan dokumentasi.
Pendiagraman knowledge adalah pendekatan grafis untuk meningkatkan proses akuisisi
knowledge. Ia terdiri dari deskripsi hirarki, top-down dari tipe-tipe utama knowledge yang
digunakan untuk menjelaskan fakta dan strategi reasoning untuk penyelesaian masalah dalam
ES.
Tipe-tipe itu adalah objek, kejadian, kinerja, dan metaknowledge.
Pendiagraman juga menjelaskan keterkaitan dan interaksi diantara pelbagai tipe knowledge.
4.16. Akuisisi Knowledge Numerik dan Terdokumentasi.
Akuisisi knowledge numerik.
Metode akuisisi knowledge tradisional didesain utamanya berhubungan dengan representasi
simbolik dari suatu knowledge.
Ada saran untuk mengkomplemen akuisisi knowledge simbolik dengan numerik. Metodologinya
disebut dengan abduction (penculikan), yang menangani hubungan numerik, hubungan yang
kompleks, dan tak pasti. Metodologi ini diimplementasikan ke dalam proses yang disebut proses
akuisisi knowledge campuran.
Akuisisi knowledge terdokumentasi.
Dalam banyak kasus, knowledge dapat diperoleh dari sumber-sumber yang lain, selain dari
pakar manusia.
Keuntungan utama dari pendekatan ini adalah: tak diperlukan adanya seorang pakar.
Pendekatan ini digunakan dalam knowledge-based systems (sistem berbasis pengetahuan)
yang perhatiannya ditujukan untuk menangani informasi yang berjumlah besar atau rumit
daripada kepakaran kelas dunia. Contohnya adalah pencarian diantara manual kebijakan
perusahaan atau dari katalog perusahaan.
Pendekatan ini memiliki potensi besar untuk otomatisasi.
Knowledge terdokumentasi kebanyakan mudah (dan murah) di-scan dan ditransfer ke database
komputer.
Kemudian analisis dari knowledge ini dapat dilakukan secara manual, tetapi juga bisa dilakukan
dengan teknologi AI (diharapkan dengan kombinasi pemahaman pembicaraan dan ES).
Sehingga ES dapat digunakan untuk membangun ES yang lainnya.
ES dapat men-scan database dan mendigitalkan buku, jurnal, dan majalah, dan kemampuan ini
bisa ditingkatkan.
Sistem Berbasis Pengetahuan Irfan Subakti
38
Bab 4 Akuisisi dan Validasi Knowledge
Data yang tersimpan dalam sistem komputer lain dapat diambil kembali secara elektronis untuk
membuat atau memperbarui knowledge base dari ES, semuanya dengan tanpa melibatkan
knowledge engineer atau pakar.
4.17. Kesimpulan.
Rekayasa knowledge melibatkan akuisisi, representasi, reasoning (inference), dan penjelasan
(explanation) dari knowledge.
Knowledge tersedia dari banyak sumber, baik itu yang terdokumentasi maupun yang tidak
(para pakar).
Knowledge bisa sempit, menjelaskan relasi input-output sempit; atau luas, menjelaskan
interaksi yang rumit dan operasi sistem.
Akuisisi knowledge, khususnya dari pakar manusia, adalah tugas yang sulit disebabkan masalah
komunikasi dan pemrosesan informasi.
Proses akuisisi knowledge terbagi atas 5 tahapan: identifikasi, konseptualisasi, formalisasi,
implementasi, dan testing.
Metode akuisisi knowledge dapat dibagi menjadi manual, semiotomatis, dan otomatis.
Pendekatan manual utama adalah wawancara. Metode wawancara berkisar dari yang sama
sekali tak terstruktur sampai yang strukturnya tinggi.
Proses reasoning dari para pakar dapat dilacak dengan beberapa metode. Analisis protokol
adalah metode utama yang digunakan dalam AI.
Walaupun dimungkinkan untk mengamati pakar dalam pekerjaannya, pengamatan ini terbatas
dalam hal skupnya.
Dicoba untuk mengurangi atau menghilangkan peran knowledge engineer dengan
menyediakan tool manual dan/atau tool terkomputerisasi ke pakar agar bisa mengakuisisi
knowledge sendiri.
RGA adalah metode yang paling banyak diaplikasikan untuk wawancara semiotomatis,
digunakan dalam AI. Beberapa paket software yang menggunakan RGA dapat meningkatkan
proses akuisisi knowledge.
Bermacam tool produktivitas tersedia buat akuisisi knowledge (misal, editor, antarmuka,
pendiagraman).
Induksi rule menguji kasus-kasus historis dan menghasilkan rule yang digunakan atas dasar
rekomendasi yang pasti.
Induksi rule dapat digunakan oleh system engineer, pakar, atau pun pembangun (builder)
sistem yang lain.
Beberapa prosedur tersedia untuk memilih metode yang sesuai dalam akuisisi knowledge untuk
situasi khusus tertentu.
Ada keuntungan disamping ada keterbatasan dan masalah dalam penggunaan
beberapa/banyak pakar untuk membangun knowledge base.
4 skenario yang mungkin dalam menggunakan banyak kepakaran adalah: pakar individu, pakar
utama dan pakar pendamping, grup kecil, dan panel.
Metode utama yang berkenaan dengan pelibatan banyak pakar adalah metode konsensus,
pendekatan analitis, pemilihan jalur reasoning yang sesuai, otomatisasi proses, dan blackboard
system.
Validasi dan verifikasi knowledge base merupakan faktor penentu keberhasilan dalam
implementasi ES.
Lebih dari selusin ukuran-ukuran spesifik yang tersedia untuk menentukan validitas knowledge.
Metode akuisisi knowledge otomatis lebih mudah untuk memvalidasi dan memverifikasi.
Knowledge yang sudah didapat harus dianalisis dan dikodekan sebelum direpresentasikan
dalam komputer.
Case-based reasoning, komputasi syaraf, dan pelbagai tool pembelajaran mesin dapat lebih
meningkatkan task/tugas dari akuisisi knowledge.
Sistem Berbasis Pengetahuan Irfan Subakti
39
Bab 5 Knowledge-Based Expert Systems
BAB 5
KNOWLEDGE-BASED EXPERT SYSTEMS
5.1. Pengertian.
Knowledge-Based Expert Systems (KBS) pengertiannya serupa dengan Expert Systems
(ES), yaitu program pemberi advis/nasehat yang terkomputerisasi yang ditujukan untuk menirukan
atau menggantikan proses reasoning dan pengetahuan (knowledge) dari para pakar dalam
menyelesaikan permasalahan masalah yang spesifik.
Karakteristiknya:
Dapat belajar dari pengalaman.
Mentransfer knowledge dari satu domain ke domain yang lain.
Dapat memberikan proses reasoning dalam pelbagai level.
Menggunakan tool-tool: heuristics (rule of thumb), mathematical models, simulations.
5.2. Rules dan Rule Chaining.
antecedents
consequents
IF (antecedents) THEN consequents
Contoh: Mengidentifikasi binatang.
Sebuah robot dapat mempersepsikan fitur-fitur dasar: color, size, has hair, gives milk. Tetapi,
kemampuannya mengidentifikasi obyek berdasarkan fitur-fitur tersebut diatas adalah terbatas. Dia
dapat membedakan binatang-binatang dari obyek yang lain, tetapi ia tak dapat menggunakan fakta
bahwa sebagian binatang yang memiliki leher panjang disebut dengan jerapah.
Rule-nya:
Z1 IF ?x has hair
THEN ?x is a mammal
Z2 IF ?x gives milk
THEN ?x is a mammal
Z3 IF ?x has feathers
THEN ?x is a bird
Z4 IF ?x flies
?x lays eggs
THEN ?x is a bird
Z5 IF ?x is a mammal
?x eats meat
THEN ?x is a carnivore
Z6 IF ?x is a mammal
?x has pointed teeth
?x has claws
?x has forward-pointing eyes
THEN ?x is a carnivore
Z7 IF ?x is a mammal
?x has hoofs
THEN ?x is an ungulate
Z8 IF ?x is a mammal
?x chews end
THEN ?x is an ungulate
Z9 IF ?x is a carnivore
?x has tawny color
?x has dark spots
THEN ?x is a cheetah
Z10 IF ?x is a carnivore
?x has tawny color
?x has black strips
THEN ?x is a tiger
Sistem Berbasis Pengetahuan Irfan Subakti
40
Bab 5 Knowledge-Based Expert Systems
Z11 IF ?x is a ungulate
?x has long neck
?x has long legs
?x has tawny color
?x has dark spots
THEN ?x is a giraffe
Z12 IF ?x is a ungulate
?x has white color
?x has black strips
THEN ?x is a zebra
Z13 IF ?x is a bird
?x does not fly
?x has long legs
?x has long neck
?x has black and white
THEN ?x is a ostrich
Z14 IF ?x is a bird
?x does not fly
?x swims
?x has black and white
THEN ?x is a penguin
Z15 IF ?x is a bird
?x is a good flyer
THEN ?x is an albatross
Sistem Deduksi terdiri atas:
Forward chaining.
Backward chaining.
5.3. Forward dan Backward Chaining.
Forward Chaining.
has hair fired 1st
deduced
assertion
Z8
chews end
fired 2nd
is an
ungulate
Z11
has long legs
has a long neck
has a tawny color
has dark spots
is a giraffe fired 3rd
assertions
is a mammal
Z1
Identify an animal
Until no rule produces a new assertion or the animal is identified
For each rule:
- Try to support each of the rules antecedents by matching it to
known facts.
- If all the rules antecedents are supported, assert the consequent
rules there is an identical assertion already.
- Report for all matching and instantiation alternatives.
Sistem Berbasis Pengetahuan Irfan Subakti
41
Bab 5 Knowledge-Based Expert Systems
Backward chaining.
has forward-pointing eyes
has claws
has pointed teeth Z6
4th rule used is a carnivore
has hair
Z1
3rd rule used
is a mammal
Z5 eats meat
2nd rule used is a carnivore
has a tawny color
has dark spots
Z9
1st rule used is a cheetah
Repeat until all hypothesis have been tried and none have been supported or until
the animal is identified.
For each hypothesis,
For each rule whose consequent matches the current hypothesis,
Try to support each of the rules antecedents by matching it
to assertions.
If all the rules antecedents are supported, announce success
And conclude that the hypothesis is true.
Note: The chaining ends unsuccessfully if any required antecedent assertions cannot be supported.
Mana yang dipilih, forward ataukah backward chaining?
Bagaimanakah hubungan antara rule dengan fakta-faktanya, sehingga didapatkan konklusinya.
J ika masalah yang dihadapi lebih dekat ke fan out (sekumpulan fakta yang bisa menuju ke
banyak konklusi), maka pilihlah backward chaining.
J ika masalah yang dihadapi lebih dekat ke fan in (sekumpulan hipotesis yang bisa menuju ke
banyak pertanyaan), maka pilihlah forward chaining.
Banyak cara untuk mendapatkan sedikit konklusi forward chaining.
Sedikit cara untuk mendapatkan banyak konklusi backward chaining.
J ika kita belum mendapatkan pelbagai fakta, dan kita tertarik hanya pada satu konklusi yang
mungkin, maka digunakanlah backward chaining.
J ika kita benar-benar sudah mendapatkan pelbagai fakta, dan kita ingin untuk mendapatkan
konklusi dari fakta-fakta itu, maka digunakanlah forward chaining.
Tipe sistem yang dapat dicari dengan forward chaining:
1. Sistem yang dipresentasikan dengan satu atau beberapa kondisi.
2. Untuk setiap kondisi, sistem mencari rule-rule dalam knowledge base untuk rule-rule yang
berkorespondensi dengan kondisi dalam bagian IF.
3. Setiap rule dapat menghasilkan kondisi baru dari konklusi yang diminta pada bagian THEN.
Kondisi baru ini ditambahkan ke kondisi lain yang sudah ada.
4. Setiap kondisi yang ditambahkan ke sistem akan diproses. J ika ditemui suatu kondisi, sistem
akan kembali ke langkah 2 dan mencari rule-rule dalam knowledge base kembali. J ika tidak ada
konklusi baru, sesi ini berakhir.
Tipe sistem yang dapat dicari dengan backward chaining:
1. Sistem yang dipresentasikan dengan satu atau beberapa kondisi.
2. Untuk setiap konklusi, sistem mencari rule-rule dalam knowledge base untuk rule-rule yang
berkorespondensi dengan konklusi pada bagian THEN.
3. Setiap konklusi dihasilkan dari kondisi-kondisi yang terdapat pada bagian IF. Selanjutnya
kondisi-kondisi tersebut menjadi konklusi baru yang dimasukkan ke stack di atas konklusi yang
sudah ada.
4. Setiap konklusi yang ditambahkan ke sistem akan diproses. J ika ditemui suatu konklusi, sistem
akan kembali ke langkah 2 dan mencari rule-rule dalam knowledge base kembali. J ika tidak ada
konklusi baru, sesi ini berhenti.
Sistem Berbasis Pengetahuan Irfan Subakti
42
Bab 5 Knowledge-Based Expert Systems
5.4. Desain Implementasi Forward dan Backward Chaining.
Forward chaining.
1. Identifikasi kondisi.
2. Variabel kondisi ditempatkan pada Conclusion Var. Queue dan nilainya dicatat pada Variable
List.
3. Diadakan pencarian pada Clause Var. List untuk variabel yang namanya sama dengan nama
pada awal queue. J ika ketemu, nomor rule dan 1 diisikan pada Clause Var. Pointer. J ika tak
ketemu, ke langkah 6.
4. Setiap variabel dalam IF clause dari rule yang belum diisi, selanjutnya diisi. Variabel-variabel
ditempatkan dalam Clause Var. List. J ika semua clause benar kondisinya, bagian THEN
dijalankan.
5. Pengisian bagian THEN pada variabelnya ditempatkan pada bagian belakang di Conclusion Var.
Queue.
6. J ika tak ada lagi statemen IF yang mengandung variabel yang berada di awal Conclusion Var.
Queue, maka variabel tersebut dihapus.
7. J ika tak ada lagi variabel pada Conclusion Var. Queue, pencarian berakhir; jika masih ada
variabel yang lain, kembali ke langkah 3.
Backward chaining.
1. Identifikasi konklusi.
2. Cari pada Conclusion List untuk pengisian pertama kali dari nama konklusi. J ika ketemu,
tempatkan rule pada Conclusion Stack berdasarkan nomor rule dan 1 yang merepresentasikan
nomor clause. J ika tak ketemu, beritahu user bahwa jawaban tersebut tak ada.
3. Isi IF clause (yaitu, setiap variabel kondisi) dari statement.
4. J ika satu dari variabel pada IF clause belum diisi, yang diindikasikan oleh Var. List, dan bukan
merupakan variabel konklusi, yaitu tak ada dalam Conclusion List, tanyakan user untuk
memasukkan suatu nilai.
5. J ika satu dari clause adalah variabel konklusi, tempatkan nomor rule dari variabel konklusi di
top of stack dan kembali ke langkah 3.
6. J ika statement pada top of stack tak dapat di-instantiated menggunakan statement IF-THEN
yang ada, hapus dari top of stack dan cari pada Conclusion List untuk pengisian lain dari nama
variabel konklusi.
7. J ika suatu statement ditemukan, kembali ke langkah 3.
8. J ika tak ada konklusi yang tersisa pada Conclusion Stack, rule untuk konklusi sebelumnya
adalah salah. J ika tak ada konklusi sebelumnya, maka beritahu user jawaban tak ditemukan.
J ika ada konklusi sebelumnya, kembali ke langkah 6.
9. J ika rule pada top of stack dapat di-instantiated, hapus rule tersebut dari stack. J ika ada
variabel konklusi lain di bawahnya (pada stack), increment nomor clause, dan untuk clause
yang tersisa kembali ke langkah 3. J ika tak ada variabel konklusi lain di bawahnya, didapatkan
jawabannya.
Sistem Berbasis Pengetahuan Irfan Subakti
43
Bab 5 Knowledge-Based Expert Systems
Di bawah adalah gambaran dari struktur program implementasi dari forward dan backward
chaining.
Base Vari able List
HeadBase
1 2 3
RuleNumber: 10
Variable: interest
Symbol: =
Value: fall
TVariable: stock
TSymbol: =
TValue: rise
ClauseNo: 1
Next
20
interest
=
rise
stock
=
fall
1
50
fedint
=
fall
interest
=
fall
1
50
fedmon
=
add
interest
=
fall
2
Conclusi on Variable Queue
HeadConVar
1 2 3
BaseVarList
ConclusionVarQ
1-2-3: Out in :1-2-3
Conclusi on Stack
HeadConStack
1 2 3
ConclusionStack
out: 3-2-1
in :1-2-3
Variable List
HeadVar
1 2 3
VarList
FVarList
BVarList
TResult
HeadResult
1 2 3
Result
Sistem Berbasis Pengetahuan Irfan Subakti
44
Bab 5 Knowledge-Based Expert Systems
Sedangkan flowchart dari program forward dan backward chaining tersebut:
Scanner Rules
Buat Base
Variable List
Inisialisasi
Variable List
Ingin Forward
Chaining?
Y
T
Start
End
Proses Forward
Chaining
Proses Bacward
Chaining
Catatan: Base Variable List merupakan pengembangan dari Clause Variable List, tak hanya
mencatat hal-hal di bagian IF, tetapi juga mencatat hal-hal di bagian THEN.
Sistem Berbasis Pengetahuan Irfan Subakti
45
Bab 5 Knowledge-Based Expert Systems
Kemudian flowchat untuk proses forward chaining-nya itu sendiri dapat dilihat pada diagram ini:
Pross Forward
Chaining
Scanner Input
Apakah pada bagian
IF Base Variable List
Input tsb ada?
Proses Kesalahan
Cari variabel di Base
Variable List, catat nomor
rule dan jumlah clause-nya
Update Clause
Variable Pointer
Apakah variabel clause
di Variable List sudah
di-instantiated?
Instantiate variabel
tadi di Variable
List
Apakah clause pada
Base Variable List di
bagian IF, sudah
terpenuhi semua
berdasarkan jumlah
clause yang tercatat?
T
Y
T
Y
Eksekusi bagian
THEN
Update Conclusion
Variable Queue
Catat variabel tsb di record konklusi dan di
Variable List kalau ada variabelnya di situ
Apakah variabel ini ada di
rule lain yang tersisa
pada Base Variable List di
bagian IF?
Y
T
Y
Remove variabel pertama di
Conclusion Variable Queue
Apakah variabel di
Conclusion Variable
Queue terdapat di
Variable List?
T
Y
T
Tampilkan
hasil Forward
Chaining dari
record konklusi
Return
Catat variabel ini
di Variable List
Inisial Conclusion
Variable Queue
Apakah variabel di
variabel clause
memenuhi nilainya
dengan variabel di
Variable List?
T
Catat nomor rule dan
jumlah clausenya
Y
Sistem Berbasis Pengetahuan Irfan Subakti
46
Bab 5 Knowledge-Based Expert Systems
Sedangkan flowchart proses backward chaining-nya adalah sebagai berikut:
Proses
Backward
Chaining
Scanner Input
Apakah pada Base
Variable List di
bagian THEN, Input
tsb ada?
Proses Kesalahan
Update Conclusion
Stack
Apakah variabel di
nomor clause pada top
of stack sudah di-
instantiated di Variable
List, atau, Clause
Number >J umlah
Clause?
Instantiate variabel
tadi di Variable
List
T
Eksekusi bagian THEN
T
Y
Remove variabel
di top of
Conclusion Stack
Catat nomor rule
dan jumlah clause
Apakah variabel ada
di Base Variable List
di bagian THEN?
Y
Return
Apakah variabel
tsb memenuhi
variabel di Base
Variable List pada
nomor rule yang
tercatat?
Y
T
Y
Tampilkan hasil
Backward
Chaining, yaitu
hasil eksekusi
THEN yang
terakhir
T
Apakah ada variabel
lain yang sama dengan
input di Base Variable
List di bagian THEN
yang lain?
Y
T
Apakah bagian THEN
bisa diekseskusi
berdasar jumlah
clause yang tercatat?
Remove Top of Conclusion Stack
Apakah Conclusion
Stack masih ada
isinya?
T
Y
T
Catat nomor rule
dan jumlah clause
Y
Update Conclusion
Stack
Apakah variabel di
nomor clause pada top
of stack sudah di-
instantiated di Variable
List, atau, Clause
Number >J umlah
Clause?
Y
T
Update di Variable List,
jika variabel tersebut
ada
Sistem Berbasis Pengetahuan Irfan Subakti
47
Bab 5 Knowledge-Based Expert Systems
Contoh struktur data dalam program.
Type
Shor t St r i ng = St r i ng[ 2] ;
LongSt r i ng = St r i ng[ MaxSt r i ng] ;
PTBaseVar Li st = ^TBaseVar Li st ;
TBaseVar Li st = Recor d
Rul eNumber : Wor d;
Var i abl e : LongSt r i ng;
Symbol : Shor t St r i ng;
Val ue : LongSt r i ng;
TVar i bl e : LongSt r i ng;
TSymbol : Shor t St r i ng;
TVal ue : LongSt r i ng;
Cl auseNo : Wor d;
Next : PTBaseVar Li st
End;
PTVar Li st = ^TVar Li st ;
TVar l i st = Recor d
Var i abl e : LongSt r i ng;
Si gn : Bool ean;
Symbol : Shor t St r i ng;
Val ue : LongSt r i ng;
Next : PTVar Li st
End;
TCl auseVar Poi nt er = Recor d
Rul eNumber : Wor d;
Cl auseNumber : Wor d
End;
TI nput User = Recor d
Var i abl e : LongSt r i ng;
Symbol : Shor t St r i ng;
Val ue : LongSt r i ng
End;
PTResul t = ^TResul t ;
TResul t = Recor d
Var i abl e : LongSt r i ng;
Symbol : Shor t St r i ng;
Val ue : LongSt r i ng;
Next : PTResul t
End;
PTConcl usi onVar Queue = ^TConcl usi onVar Queue;
TConcl usi onVar Queue = Recor d
Var i abl e : LongSt r i ng;
Next : PTConcl usi onVar Queue
End;
PTConcl usi onSt ack = ^TConcl usi onSt ack;
TConcl usi onSt ack = Recor d
Rul eNumber : Wor d;
Cl auseNumber : Wor d;
Next : PTConcl usi onSt ack
End;
Struktur data diatas sesuai dengan bahasa pemrograman Pascal, tetapi mengingat perkembangan
yang demikian pesat dewasa ini dalam hal pemrograman berorientasi obyek (Object-oriented
Programming), maka anda bisa mengimplementasikan sendiri struktur data di atas dalam bentuk
class/object sehingga lebih berdayaguna.
Sistem Berbasis Pengetahuan Irfan Subakti
48
Bab 5 Knowledge-Based Expert Systems
Contoh Kasus.
(Berdasarkan semua flowchart yang telah diberikan dimuka)
Kasus 1. Forward Chaining.
Rule yang digunakan :
r ul e 10
i f i nt er est = f al l
t hen st ock = r i se
r ul e 20
i f i nt er est = r i se
t hen st ock = f al l
r ul e 30
i f dol l ar = f al l
t hen i nt er est = r i se
r ul e 40
i f dol l ar = r i se
t hen i nt er est = f al l
r ul e 50
i f f edi nt = f al l
and f edmon = add
t hen i nt er est = f al l
INISIALISASI
Sebagai langkah awal program adalah men-scanner rule tadi, yang selanjutnya membuat Base
Variable List dan meng-inisialisasi Variable List.
Dalam Base Variable List, rule-rule tadi disusun sebagai berikut :
10 20 30 40 50 50
i nt er est i nt er est dol l ar dol l ar f edi nt f edmon
= = = = = =
f al l r i se f al l r i se f al l add
st ock st ock i nt er est i nt er est i nt er est i nt er est
= = = = = =
r i se f al l r i se f al l f al l f al l
1 1 1 1 1 2
Inisialiasi Variable List, disini yang dicatat adalah hal-hal di bagian IF (kondisi)
Var i abl e Si gn Symbol Val ue
i nt er est NI
dol l ar NI
f edi nt NI
f edmon NI
Si gn NI = Not I nst ant i at ed, I = I nst ant i at ed, Symbol dan Val ue masi h
ber ni l ai kosong
FORWARD CHAINING
1. Kemudian program akan menanyakan kepada user, hal-hal yang diketahuinya sebagai langkah
awal Forward Chaining, dengan sintaks : <variable> <symbol> <value>. Misal user
menginputkan :
f edmon = add
2. Apakah pada bagian IF Base Variable List, input tersebut ada?
Ada (di rule nomor 50)
3. Catat variabel ini di Variable List
Var i abl e Si gn Symbol Val ue
i nt er est NI
dol l ar NI
f edi nt NI
f edmon I = add
4. Cari variabel di Base Variable List, catat nomor rule dan jumlah clause-nya
Rul eNumber = 50
J uml ah Cl ause = 2
Sistem Berbasis Pengetahuan Irfan Subakti
49
Bab 5 Knowledge-Based Expert Systems
5. Inisial Conclusion Variable Queue
f edmon
6. Update Clause Variable Pointer
Rul eNumber = 50
Cl auseNumber = 1
Berarti yang dicek sekarang adalah fedint
7. Apakah variable clause di Variable List sudah di-instantiated?
fedint belum di-instantiated (Variable : fedint, Sign : NI)
8. Instantiated variable tadi di Variable List, disini ditanyakan kepada user. Misal user
menginputkan :
f edi nt = f al l
Maka di Variable List dilakukan updating, sebagai berikut :
Var i abl e Si gn Symbol Val ue
i nt er est NI
dol l ar NI
f edi nt I = f al l
f edmon I = add
9. Update Clause Variable Pointer
Rul eNumber = 50
Cl auseNumber = 2
Berarti yang dicek sekarang adalah fedmon
10. Apakah variable clause di Variable List sudah di-instantiated?
fedmon sudah di-instantiated (Variable : fedmon, Sign : I)
11. Apakah clause pada Base Variable List di bagian IF, sudah terpenuhi semua berdasarkan
jumlah clause yang tercatat?
Ya, (J umlah Clause = 2, ClauseNumber = 2)
12. Apakah variabel di variable clause memenuhi nilainya dengan variabel di Variable List?
Ya, (fedint = fall dan fedmon = add sebagai variable clause sama nilainya dengan di Variable
List : fedint = fall dan fedmon = add)
13. Eksekusi bagian THEN
i nt er est = f al l
14. Update Conclusion Variable Queue
f edmon
i nt er est
15. Catat variabel tersebut di record konklusi dan di Variable List kalau ada variabelnya di situ
di Result dicatat :
i nt er est = f al l
di Variable List karena variabel interest ada, maka dicatat :
Var i abl e Si gn Symbol Val ue
i nt er est I = f al l
dol l ar NI
f edi nt I = f al l
f edmon I = add
16. Apakah variabel ini ada di rule lain yang tersisa pada Base Variable List di bagian IF?
Tidak, karena RuleNumber = 50 adalah rule terakhir yang ada.
17. Remove variabel pertama di Conclusion Variable Queue
f edmon ( di - r emove)
i nt er est
Sehingga Conclusion Variable Queue menjadi :
i nt er est
Sistem Berbasis Pengetahuan Irfan Subakti
50
Bab 5 Knowledge-Based Expert Systems
18. Apakah variabel di Conclusion Variable Queue terdapat di Variabel List?
Ya, interest di Conclusion Variable Queue terdapat di Variabel List
19. Catat nomor rule dan jumlah clause-nya
Rul eNumber = 10
J uml ah Cl ause = 1
20. Update Clause Variable Pointer
Rul eNumber = 10
Cl auseNumber = 1
21. Apakah variable clause di Variable List sudah di-instantiated?
interest sudah di-instantiated (Variable : interest, Sign : I)
22. Apakah clause pada Base Variable List di bagian IF, sudah terpenuhi semua berdasarkan
jumlah clause yang tercatat?
Ya, (J umlah Clause = 1, ClauseNumber = 1)
23. Apakah variabel di variable clause memenuhi nilainya dengan variabel di Variable List?
Ya, (interest = fall sebagai variable clause sama nilainya dengan di Variable List : interest =
fall)
24. Eksekusi bagian THEN
st ock = r i se
25. Update Conclusion Variable Queue
i nt er est
st ock
26. Catat variabel tersebut di record konklusi dan di Variable List kalau ada variabelnya di situ
di Result dicatat :
st ock = r i se
di Variable List karena variabel stock tak ada, maka tidak dicatat
27. Apakah variabel ini ada di rule lain yang tersisa pada Base Variable List di bagian IF?
Ya, ada di rule 20 (yaitu : interest = rise)
28. Catat nomor rule dan jumlah clause-nya.
Rul eNumber = 20
J uml ah Number = 1
29. Update Clause Variable Pointer
Rul eNumber = 20
Cl auseNumber = 1
30. Apakah variable clause di Variable List sudah di-instantiated?
interest sudah di-instantiated (Variable : interest, Sign : I)
31. Apakah clause pada Base Variable List di bagian IF, sudah terpenuhi semua berdasarkan
jumlah clause yang tercatat?
Ya, (J umlah Clause = 1, ClauseNumber = 1)
32. Apakah variabel di variable clause memenuhi nilainya dengan variabel di Variable List?
Tidak, (interest = rise sebagai variable clause tidak sama nilainya dengan di Variable List :
interest = fall)
33. Apakah variabel ini ada di rule lain yang tersisa pada Base Variable List di bagian IF?
Tidak
Sistem Berbasis Pengetahuan Irfan Subakti
51
Bab 5 Knowledge-Based Expert Systems
34. Remove variabel pertama di Conclusion Variable Queue
i nt er est ( di - r emove)
st ock
Sehingga Conclusion Variable Queue menjadi :
st ock
35. Apakah variabel di Conclusion Variable Queue terdapat di Variabel List?
stock di Conclusion Variable Queue tidak ada di Variabel List
36. Tampilkan hasil Forward Chaining dari record konklusi
i nt er est = f al l
st ock = r i se
37. Return
Kasus 2. Backward Chaining.
Rule yang digunakan :
r ul e 10
i f degr ee = no
t hen posi t i on = no
r ul e 20
i f degr ee = yes
t hen qual i f y = yes
r ul e 30
i f degr ee = yes
and di scover y = yes
t hen posi t i on = r esear ch
r ul e 40
i f qual i f y = yes
and gr ade < 3. 5
and exper i ence >= 2
t hen posi t i on = ser vi ce engi neer i ng
r ul e 50
i f qual i f y = yes
and gr ade < 3. 5
and exper i ence < 2 t hen posi t i on = no
r ul e 60
i f qual i f y = yes
and gr ade >= 3. 5
t hen posi t i on = pr oduct engi neer
INISIALISASI
Sebagai langkah awal program adalah men-scanner rule tadi, yang selanjutnya membuat Base
Variable List dan meng-inisialisasi Variable List.
Dalam Base Variable List, rule-rule tadi disusun sebagai berikut :
10 20 30 30 40 40
degr ee degr ee degr ee di scover y qual i f y gr ade
= = = = = <
no yes yes yes yes 3. 5
posi t i on qual i f y posi t i on posi t i on posi t i on posi t i on
= = = = = =
no yes r esear ch r esear ch ser v eng ser v eng
1 1 1 2 1 2
40 50 50 50 60 60
exper i ence qual i f y gr ade exper i ence qual i f y gr ade
>= = < < = >=
2 yes 3. 5 2 yes 3. 5
posi t i on posi t i on posi t i on posi t i on posi t i on posi t i on
= = = = = =
ser v eng no no no pr od eng pr od eng
3 1 2 3 1 2
Sistem Berbasis Pengetahuan Irfan Subakti
52
Bab 5 Knowledge-Based Expert Systems
Inisialiasi Variable List, disini yang dicatat adalah hal-hal di bagian IF (kondisi)
Var i abl e Si gn Symbol Val ue
degr ee NI
di scover y NI
qual i f y NI
gr ade NI
exper i ence NI
Si gn NI = Not I nst ant i at ed, I = I nst ant i at ed, Symbol dan Val ue masi h
ber ni l ai kosong
BACKWARD CHAINING
1. Kemudian program akan menanyakan kepada user, hal-hal yang diketahuinya sebagai langkah
awal Backward Chaining, dengan sintaks : <variable>. Misal user menginputkan :
posi t i on
2. Apakah pada Base Variable List di bagian THEN , input tersebut ada?
ada (di rule nomor 10)
3. Catat nomor rule dan jumlah clause
Rul eNumber = 10
J uml ah Cl ause = 1
4. Update Conclusion Stack
Rul eNumber = 10
Cl auseNumber = 1 ( yai t u degr ee = no)
5. Apakah variabel di nomor clause pada top of stack sudah di-instantiated di Variable List, atau,
ClauseNumber > J umlah Clause
degree pada Variable List belum di-instantiated
ClauseNumber = 1 sama dengan J umlahClause
6. Apakah variabel ada di Base Variable List di bagian THEN?
Tidak (degree tidak ada di bagian THEN)
7. Instantiate variable tadi di Variable List, disini ditanyakan kepada user. Misal user
menginputkan :
degr ee = yes
Maka di Variable List dilakukan updating, sebagai berikut :
Var i abl e Si gn Symbol Val ue
degr ee I = yes
di scover y NI
qual i f y NI
gr ade NI
exper i ence NI
8. Apakah variabel tersebut memenuhi variabel di Base Variable List pada nomor rule yang
tercatat?
Tidak, (degree = yes tidak sama dengan di Base Variable List : degree = no)
9. Remove variabel di top of Conclusion Stack
Rul eNumber = 10 ( di r emove)
Cl auseNumber = 1 ( di r emove)
Sehingga Conclusion Stack tidak ada isinya sekarang
10. Apakah ada variabel lain yang sama dengan input di Base Variable List di bagian THEN yang
lain?
Ada (yaitu di rule nomor 30)
11. Catat nomor rule dan jumlah clause
Rul eNumber = 30
J uml ah Cl ause = 2
Sistem Berbasis Pengetahuan Irfan Subakti
53
Bab 5 Knowledge-Based Expert Systems
12. Update Conclusion Stack
Rul eNumber = 30
Cl auseNumber = 1 ( yai t u degr ee = yes)
13. Apakah variabel di nomor clause pada top of stack sudah di-instantiated di Variable List, atau,
ClauseNumber > J umlah Clause
Ya, degree sudah di-instantiated (Variable : degree, Sign : I)
14. Apakah bagian THEN bisa dieksekusi berdasar jumlah clause yang tercatat?
Tidak, ClauseNumber yang dicek baru nomor 1 sedangkan J umlah Clause = 2
15. Update Conclusion Stack
Rul eNumber = 30
Cl auseNumber = 2 ( yai t u di scover y = yes)
16. Apakah variabel di nomor clause pada top of stack sudah di-instantiated di Variable List, atau,
ClauseNumber > J umlah Clause
Tidak, discovery belum di-instantiated (Variable : discovery, Sign : NI)
17. Apakah variabel ada di Base Variable List di bagian THEN?
Tidak (discovery tidak ada di bagian THEN)
18. Instantiate variable tadi di Variable List, disini ditanyakan kepada user. Misal user
menginputkan :
di scover y = no
Maka di Variable List dilakukan updating, sebagai berikut :
Var i abl e Si gn Symbol Val ue
degr ee I = yes
di scover y I = no
qual i f y NI
gr ade NI
exper i ence NI
19. Apakah variabel tersebut memenuhi variabel di Base Variable List pada nomor rule yang
tercatat?
Tidak, (discovery = no tidak sama dengan di Base Variable List : discovery = yes)
20. Remove variabel di top of Conclusion Stack
Rul eNumber = 30 ( di r emove)
Cl auseNumber = 2 ( di r emove)
Sehingga Conclusion Stack tidak ada isinya sekarang
21. Apakah ada variabel lain yang sama dengan input di Base Variable List di bagian THEN yang
lain?
Ada (yaitu di rule nomor 40)
22. Catat nomor rule dan jumlah clause
Rul eNumber = 40
J uml ah Cl ause = 3
23. Update Conclusion Stack
Rul eNumber = 40
Cl auseNumber = 1 ( yai t u qual i f y = yes)
24. Apakah variabel di nomor clause pada top of stack sudah di-instantiated di Variable List, atau,
ClauseNumber > J umlah Clause
Tidak, qualify belum di-instantiated (Variable : qualify, Sign : NI)
25. Apakah variabel ada di Base Variable List di bagian THEN?
Ya (qualify ada di bagian THEN)
Sistem Berbasis Pengetahuan Irfan Subakti
54
Bab 5 Knowledge-Based Expert Systems
26. Catat nomor rule dan jumlah clause
Rul eNumber = 20
J uml ah Cl ause = 1
27. Update Conclusion Stack
Rul eNumber = 20
Cl auseNumber = 1 ( yai t u degr ee = yes)
Rul eNumber = 40
Cl auseNumber = 1
28. Apakah variabel di nomor clause pada top of stack sudah di-instantiated di Variable List, atau,
ClauseNumber > J umlah Clause
Ya, degree sudah di-instantiated (Variable : degree, Sign : I)
29. Apakah bagian THEN bisa dieksekusi berdasar jumlah clause yang tercatat?
Ya, ClauseNumber yang dicek nomor 1 sedangkan J umlah Clause = 1
30. Eksekusi bagian THEN
qual i f y = yes
31. Update di Variable List jika variabel tersebut ada.
qualify ada di Variable List, maka Variable List di-update
Var i abl e Si gn Symbol Val ue
degr ee I = yes
di scover y I = no
qual i f y I = yes
gr ade NI
exper i ence NI
32. Remove Top of Conclusion Stack
Rul eNumber = 20 ( di - r emove)
Cl auseNumber = 1 ( di - r emove)
Rul eNumber = 40
Cl auseNumber = 1
Sehingga Conclusion Stack sekarang menjadi :
Rul eNumber = 40
Cl auseNumber = 1
33. Apakah Conclusion Stack masih ada isinya?
Ya, yaitu
Rul eNumber = 40
Cl auseNumber = 1
34. Update Conclusion Stack
Rul eNumber = 40
Cl auseNumber = 2 ( yai t u gr ade < 3. 5)
35. Apakah variabel di nomor clause pada top of stack sudah di-instantiated di Variable List, atau,
ClauseNumber > J umlah Clause
Tidak, grade belum di-instantiated (Variable : grade, Sign : NI)
36. Apakah variabel ada di Base Variable List di bagian THEN?
Tidak, grade tidak ada di bagian THEN
37. Instantiate variable tadi di Variable List, disini ditanyakan kepada user. Misal user
menginputkan :
gr ade = 3. 0
Maka di Variable List dilakukan updating, sebagai berikut :
Var i abl e Si gn Symbol Val ue
degr ee I = yes
di scover y I = no
qual i f y I = yes
gr ade I = 3. 0
Sistem Berbasis Pengetahuan Irfan Subakti
55
exper i ence NI
Bab 5 Knowledge-Based Expert Systems
38. Apakah variabel tersebut memenuhi variabel di Base Variable List pada nomor rule yang
tercatat?
Ya, (grade = 3.0 memenuhi di Base Variable List : grade < 3.5)
39. Update Conclusion Stack
Rul eNumber = 40
Cl auseNumber = 3 ( yai t u exper i ence >= 2)
40. Apakah variabel di nomor clause pada top of stack sudah di-instantiated di Variable List, atau,
ClauseNumber > J umlah Clause
Tidak, experience belum di-instantiated (Variable : experience, Sign : NI)
41. Apakah variabel ada di Base Variable List di bagian THEN?
Tidak, experience tidak ada di bagian THEN
42. Instantiate variable tadi di Variable List, disini ditanyakan kepada user. Misal user
menginputkan :
exper i ence = 4. 5
Maka di Variable List dilakukan updating, sebagai berikut :
Var i abl e Si gn Symbol Val ue
degr ee I = yes
di scover y I = no
qual i f y I = yes
gr ade I = 3. 0
exper i ence I = 4. 5
43. Apakah variabel tersebut memenuhi variabel di Base Variable List pada nomor rule yang
tercatat?
Ya, (experience = 4.5 memenuhi di Base Variable List : experience >= 2)
44. Update Conclusion Stack
Rul eNumber = 40
Cl auseNumber = 4
45. Apakah variabel di nomor clause pada top of stack sudah di-instantiated di Variable List, atau,
ClauseNumber > J umlah Clause
ClauseNumber (4) sudah melebihi J umlah Clause (3)
46. Apakah bagian THEN bisa dieksekusi berdasar jumlah clause yang tercatat?
Ya, ClauseNumber sudah dicek semuanya, sejumlah J umlah Clause
47. Eksekusi bagian THEN
posi t i on = ser vi ce engi neer i ng
48. Update di Variable List jika variabel tersebut ada.
Karena position tidak ada di Variable List maka tidak terjadi updating
49. Remove Top of Conclusion Stack
Rul eNumber = 40 ( di - r emove)
Cl auseNumber = 4 ( di - r emove)
Sehingga Conclusion Stack tidak ada isinya sekarang
50. Apakah Conclusion Stack masih ada isinya?
Tidak, Conclusion Stack tidak ada isinya sekarang
51. Tampilkan hasil Backward Chaining
posi t i on = ser vi ce engi neer i ng
52. Return
Sistem Berbasis Pengetahuan Irfan Subakti
56
Bab 5 Knowledge-Based Expert Systems
5.5. Confidence Factor (CF) pada Forward dan Backward Chaining.
Confidence Factor (faktor kepercayaan) adalah ukuran/tingkat kepercayaan seseorang
terhadap rule yang ada. Meliputi tingkat kepercayaan terhadap suatu variabel dalam suatu rule,
maupun tingkat kepercayaan terhadap rule itu sendiri. Makin tinggi CF-nya jelas makin bisa
dipercaya suatu rule, sehingga diasumsikan rule tersebut berarti makin baik.
Dengan adanya CF ini, urutan rule pada suatu knowledge base tidak berpengaruh pada
prioritas eksekusi program. Sehingga prioritas/keutamaan suatu rule ditentukan oleh besarnya CF
yang ada padanya.
Berikut ini dijelaskan hal-hal yang berhubungan dengan CF (Disini CF antara 0 s/d 100, boleh juga
0 s/d 1):
CF untuk rule dengan kondisi AND.
Contoh:
I F condi t i on = hot CF 70
AND condi t i on = dr y CF 90
AND condi t i on = cr owd CF 85
THEN anger = r i se CF 95
CF untuk kondisi di atas adalah:
CF = minimum (CF1, CF2, CF3) = minimum (70, 90, 85) = 70
Lalu CF untuk rule adalah
CF(rule) = 70 * 95 = 6650/100 = 67
CF untuk rule dengan kondisi OR.
Contoh:
I F A CF1
OR B CF2
THEN K CF5;
I F dol l ar = nai k CF 80
OR r upi ah = t ur un CF 60
THEN kr i si s = nai k CF 90;
Maka CF = 80 + 60 (80 * 60)/100
= 140 48 = 92
CF(rule) = 92 * 90
= 8280, lalu bagi dengan 100 = 8280/100 = 82,8. Setelah di-ROUND, maka didapatkan 83
I F act i vi t y = l et t er s CF 80
OR act i vi t y = r esumes CF 70
OR act i vi t y = not i ces CF 85
THEN advi ce = need CF 90;
CF = 80 + 70 (80 * 70)
= 150 56; 56 didapat dari (80 * 70)/100
= 94; dari sini didapatkan CF untuk (activity = letters CF 80 OR activity = resumes CF 70)
Lalu dilanjutkan dengan (OR activity = notices CF 85)
CF = 94 + 85 (94 * 85) = 99
Maka CF(rule) = 99 * 90 = 89; dimana 89 didapat dari (99 * 90)/100 setelah di-ROUND
CF untuk rule dengan kondisi AND/ OR.
Bila ada rule seperti berikut ini:
RULE A I F act i vi t y = l et t er s OR
act i vi t y = r esumes AND
cost = l ow
THEN wor d_pr ocessor = D CF 90;
Dari situ terlihat ada kondisi OR dan AND, maka untuk mencari CF-nya, rule seperti ini dapat
dipecah menjadi:
RULE A1: I F act i vi t y = l et t er AND
cost = l ow
THEN wor d_pr ocessor = D CF 90;
Sistem Berbasis Pengetahuan Irfan Subakti
57
Bab 5 Knowledge-Based Expert Systems
OR
RULE A2: I F act i vi t y = r esume AND
cost = l ow
THEN wor d_pr ocessor = D CF 90;
Sebagai contoh dimisalkan bahwa CF telah diinputkan oleh user sehingga didapatkan hasil sbb:
RULE A1: I F act i vi t y = l et t er CF 90 AND
cost = l ow CF 80
THEN wor d_pr ocessor = D CF 90;
OR
RULE A2: I F act i vi t y = r esume CF 70 AND
cost = l ow CF 80
THEN wor d_pr ocessor = D CF 90;
CF kondisi pada RULE A1 = minimum (90, 80) = 80
CF untuk RULE A1 = 80 * 90 = 7200/100 = 72
CF kondisi pada RULE A2 = minimum (70, 80) = 70
CF untuk RULE A2 = 70 * 90 = 6300/100 = 63
CF untuk kedua RULE didapatkan dengan rumus OR sehingga didapat:
72 + 63 (72 * 63)
= 135 4536/100
= 135 45 = 90
J adi, CF dari rule asli pada contoh ini adalah 90.
5.6. Pengembangan Program Forward dan Backward Chaining.
Disamping pernyataan IF .. THEN .. pada RULE yang sudah dibahas, sebenarnya masih ada format
yang lebih lengkap lagi yaitu IF .. THEN .. ELSE .. BECAUSE .., seperti tertulis di bawah ini:
IF condition
THEN conclusion1
ELSE conclusion2
BECAUSE ... ;
RULE 7
IF functionallity = complex
THEN word_processor = product_B
ELSE word_processor = product_A
BECAUSE Product B can process more complicated documents that Product A;
Program juga dapat mengenali dan menangani persamaan, pertidaksamaan, dan juga range nilai
tertentu untuk nilai-nilai yang dibandingkan dengan variabel-variabelnya.
Contoh: IF warna = hitam, IF warna <> hitam, IF warna < 15, IF warna IN [0..7], IF kondisi =
TRUE, dsb.
Pembagian Rule.
Rule dibagi dalam 3 bagian: ACTION, RULE, dan STATEMENT BLOCK, seperti contoh di bawah ini:
/ / The f i l e f i ndi ng_wor d_pr ocessor . kbs uses a PLURAL var i abl e,
/ / Act i vi t y, i n a compound OR I F- THEN- ELSE- BECAUSE
/ / ACTI ON BLOCK
ACTI ONS
DI SPLAY WPHELP wi l l advi se you on whet her you need a wor d +
pr ocessor or not . Pr ess OK t o st ar t t he consul t at i on.
FI ND advi ce / / var i abel yang akan di car i , l angsung saj a di t andai
/ / dengan kat a FI ND
DI SPLAY You {advi ce} a wor d pr ocessor at t hi s t i me. +
Pr ess OK t o exi t WPHELP;
/ / t anda {} pada {advi ce} ber ar t i bahwa yang di api t ol eh t anda i t u
/ / i al ah var i abel yang di t ampi l kan
/ / set i ap sel esai 1 st at emen maka di akhi r i dengan t anda ; t i t i k koma
Sistem Berbasis Pengetahuan Irfan Subakti
58
Bab 5 Knowledge-Based Expert Systems
/ / RULES BLOCK
RULE 1
I F act i vi t y = l et t er s
OR act i vi t y = r esumes
OR act i vi t y = not i ces
OR act i vi t y = paper s
THEN advi ce = need
ELSE advi ce = do_not _need
BECAUSE I f you gener at e f r equent l et t er s, r esumes, not i ces, +
or paper s, t hen you need a wor d pr ocessor . ;
/ / STATEMENTS BLOCK
ASK act i vi t y: Whi ch of t he f ol l owi ng document s do you need t o wr i t e +
f or your busi ness? Sel ect you answer s by sel ect +
your desi r ed answer . Af t er you have made al l +
your sel ect i ons, cl i ck or pr ess OK but t on. +
I f you don t need t o wr i t e any of t hese document s, +
sel ect none_of _t hese;
/ / Pada pr ogr ambegi t u pr ogr ammembut uhkan i nput an dar i user ,
/ / maka di t anyakan dul u ke user
/ / kemudi an set el ah per t anyaan t adi , akan l angsung di saj i kan dar i
/ / ni l ai - ni l ai yang mungki n
/ / ada pada var i abel , set el ah sel esai user dapat
/ / meng- kl i k/ meng- ent er t ombol OK
/ / Kemungki nan ni l ai pada var i abel t adi di - decl ar e dengan kat a CHOI CES
/ / seper t i di bawah i ni
CHOI CES act i vi t y: l et t er s, r esumes, not i ces, paper s, none_of _t hese;
PLURAL: act i vi t y;
/ / Reser ved wor d PLURAL menyat akan bahwa var i abel set el ahnya adal ah
/ / var i abel yang ni l ai nya
/ / j amak=PLURAL, j adi t i dak hanya 1 saj a, bi sa 2 at au l ebi h
Contoh file yang lain:
ACTI ONS
FI ND wor d_pr ocessor ;
DI SPLAY The val ue of wor d_pr ocessor i s {wor d_pr ocessor }
RULE 0
I F f unct i onal i t y = si mpl e AND cost = l ow
THEN wor d_pr ocessor = Pr oduct _A;
RULE 1
I F f unct i onal i t y = si mpl e AND cost = hi gh
THEN wor d_pr ocessor = Pr oduct _A;
RULE 2
I F f unct i onal i t y = compl ex AND cost = l ow
THEN wor d_pr ocessor = none;
RULE 3
I F f unct i onal i t y = compl ex AND cost = hi gh
THEN wor d_pr ocessor = Pr oduct _B;
ASK f unct i onal i t y: What i s t he val ue of Funct i onal i t y?;
CHOI CES f unct i onal i t y: si mpl e, compl ex;
ASK cost : What i s t he val ue of Cost ?;
CHOI CES cost : l ow, hi gh;
Implementasi Pengembangan Program.
Bisa juga dikembangkan sintaks rule menurut yang diinginkan. Semakin lengkap jelas akan semakin
baik. Sebagai panduan, bisa dilihat hal-hal di bawah ini:
Ada fasilitas trace/penelusuran program.
User interface sebaik dan semudah mungkin digunakan.
Memberikan data yang lengkap kepada user.
Bisa menampilkan jendela WHAT, HOW, WHY dengan isi yang lengkap. Isi dari jendela WHAT
adalah hasil dari proses forward maupun backward chaining yang paling sederhana dan yang
pertama kali didapatkan dari program, bahkan sebelum tahap pengembangan ini (bisa dilihat
kembali di sub bab 4.4). Ia menjawab pertanyaan mengenai apa yang dihasilkan program.
Sedangkan isi dari jendela jendela HOW adalah log/catatan bagaimana suatu hasil (WHAT)
Sistem Berbasis Pengetahuan Irfan Subakti
59
Bab 5 Knowledge-Based Expert Systems
didapatkan, rule-rule mana saja yang telah diproses dan ditelusuri. Sedangkan isi dari jendela
WHY, lebih banyak mengacu pada alasan hasil (WHAT) tadi didapat. Tentu saja komponen CF
yang banyak mengambil peranan dalam penjelasan WHY ini. Singkatnya adalah WHAT adalah
hasilnya, HOW adalah bagaimana menghasilkan WHAT tadi, sedangkan alasannya
diimplementasikan oleh WHY.
Bisa mengeksekusi semua rule, dengan catatan mengikuti sintaks program yang ada.
Bisa menganalisis rule yang ada.
Pencarian berjalan dengan cepat, apalagi untuk rule-rule yang kompleks dan besar.
Untuk pendekatan Forward Chaining, ada tambahan reserved word: WHENEVER.
WHENEVER cost_too_high
IF cost >= 500
THEN DISPLAY Consider volume discounts.;
Begitu kata WHENEVER ditemukan di bagian awal rule, maka rule akan dites setiap saat nilai dari
variabel yang ada di kondisi (bagian IF) berubah nilainya. J ika rule yang mengandung WHENEVER
ditemukan sebagai konklusi yang benar, maka bagian THEN dieksekusi. Dengan kata lain, bila ada
perubahan variabel di bagian IF, rule secara otomatis dicek untuk dipilih, tanpa memperhatikan
strategi pencariannya apakah Forward atau Backward Chaining. J adi WHENEVER berlaku seperti
daemon sebab dia akan mengawasi variabel yang diacu oleh kondisi IF, dan mengeksekusinya
setiap waktu kondisinya true/benar.
Adanya reserved word FIND untuk mengidentifikasikan variabel tujuan.
Reserved word FIND dalam rule hanya boleh ada dalam bagian THEN saja, tidak boleh di
bagian IF.
Contoh:
RULE Networking
IF Environment = Networked
THEN Network = Yes
FIND Networked_word_processor
FIND tidak bisa digabungkan dengan WHENEVER, sebab WHENEVER mengindikasikan rule,
sedang FIND mengidentifikasikan variabel tujuan.
Contoh yang salah:
WHENEVER Networking
IF Environment = Networked
THEN Network = Yes
FIND Networked_word_processor
Untuk nilai dari variabel yang belum diketahui, ada satu nilai khusus yaitu UNKNOWN, yang
berarti program memang tidak tahu harus mengisikan apa pada variabel yang ditanyakan. J adi
cukup diisi saja dengan UNKNOWN bila kita memang tidak tahu jawaban apa yang harus
diberikan.
RULE 7
IF Document = UNKNOWN
THEN Word_processor = wait_for_now
DISPLAY Examine your busines functions for word processing before buying;
RULE 8
IF Cost = UNKNOWN
THEN Word_processor = none_for_now
DISPLAY Consult your manager or boss to determine your budget.;
Sistem Berbasis Pengetahuan Irfan Subakti
60
Bab 6 Algoritma Genetika
BAB 6
ALGORI TMA GENETI KA
6.1. Pendahuluan.
Pelbagai masalah optimasi baik di dunia rekayasa industri, utamanya pada sistem
manufakturing, begitu kompleksnya untuk ditangani dengan teknik optimasi konvensional. Mulai
tahun 1960-an mulai banyak studi yang berusaha untuk menirukan perilaku kehidupan dalam
rangka menyelesaikan masalah optimasi yang pelik seperti contoh di atas. Simulasi proses
evolusioner alamiah manusia menghasilkan teknik optimasi stokastik yang disebut algoritma
evolusioner, yang seringkali dapat menampilkan kinerja yang lebih baik daripada metode
konvensional ketika diaplikasikan pada permasalahan dunia nyata yang sulit.
Ada tiga jalan utama dalam riset tersebut: Genetic Algorithms (GA, algoritma genetika),
Evolutionary Programming (EP, pemrograman evolusioner), dan Evolution Strategies (ESs, Strategi-
strategi Evolusi). Diantara ketiganya, algoritma genetika dikenal sebagai algoritma yang paling
banyak dipakai pada saat ini.
Penerapan algoritma genetika yang sudah diterapkan di bidang rekayasa industri adalah
dalam hal: penjadwalan dan prioritas urutan, desain kehandalan, rute dan penjadwalan kendaraan,
group technology, layout dan lokasi fasilitas, transportasi, dan lain-lain.
Dalam hubungannya dengan Sistem Berbasis Pengetahuan, GA ini diharapkan dapat
mengoptimasi pencarian baik dalam Forward maupun Backward Chaining, dan harapan selanjutnya
adalah bersama-sama dengan jaringan syaraf tiruan/logika fuzzy dapat lebih mengoptimalkan
sistem dalam hal kecepatan pembelajaran, kecepatan berfikir, dan kecepatan memberikan solusi
untuk menjawab semua pertanyaan yang berkaitan dengan WHAT, HOW, dan WHY.
Struktur Umum Algoritma Genetika.
Dapat digambarkan seperti bagan di bawah ini:
Solusi
1100101010
1011101110
0011011001
1100110001
encoding
kromosom
110010
1110
1010
101110
110010
101110
1110
1010
crossover
mutasi
00110 1001 1
0 00110 1001
evaluasi
110010
1010
1110
101110
offspring
1001 001100
Solusi
decoding
komputasi
fitness
seleksi
roulette wheel
populasi
baru
Struktur umum dari algoritma genetika di atas dapat dijelaskan sebagai berikut:
Prosedur: Algoritma Genetika
begin
t 0;
initialize P(t);
Sistem Berbasis Pengetahuan Irfan Subakti
61
Bab 6 Algoritma Genetika
evaluate P(t);
while (not termination condition) do
recombine P(t) to yield C(t);
evaluate C(t);
select P(t+1) from P(t) and C(t);
t t + 1;
end
end
Sebenarnya, cuma ada 2 jenis operasi dalam algoritma genetika:
1. Operasi genetika: crossover dan mutasi
2. Operasi evolusi: seleksi
Algoritma genetika berbeda dengan optimasi konvensional dan prosedur pencarian dalam
pelbagai hal, seperti hal-hal di bawah ini:
1. GA bekerja dengan koding dari kumpulan solusi, bukan solusi itu sendiri.
2. GA mencari dari populasi solusi, bukan solusi tunggal.
3. GA menggunakan informasi hasil (fungsi fitness), bukan penurunan atau knowledge bantuan
lainnya.
4. GA menggunakan rule transisi probabilistik, bukan rule deterministik.
Eksploitasi dan Eksplorasi.
2 isu penting dalam strategi pencarian: eksploitasi solusi terbaik dan eksplorasi ruang
pencarian.
GA merupakan metode pencarian umum yang mengkombinasikan elemen-elemen pencarian
terarah dan stokastik yang dapat membuat keseimbangan diantara eksplorasi dan eksploitasi
dari ruang pencarian.
Pada awal pencarian dalam pencarian genetika, terdapat populasi yang berbeda dan sangat
acak, lalu operator crossover cenderung untuk menampilkan pencarian melebar untuk
mengeksplorasi semua ruang solusi.
Dari hasil pengembangan solusi yang memiliki fitness tinggi, operator crossover menampilkan
eksplorasi pada tetangga dari setiap solusi tersebut. Dengan kata lain, jenis apapun pencarian
(eksploitasi atau eksplorasi) kinerja crossover ditentukan oleh lingkungan sistem genetika
(keanekaragaman populasi), tetapi bukan oleh operator itu sendiri.
Sebagai tambahan, operator-operator genetika sederhana didesain sebagai metode pencarian
umum (metode pencarian yang tak tergantung domain); mereka menampilkan secara esensial
pencarian buta dan tak dapat menjamin untuk menghasilkan offspring yang makin baik.
Pencarian berdasarkan populasi.
Perbandingan antara pendekatan konvensional dan genetika dapat dilihat pada gambar berikut:
conventional method genetic algorithm
initial single point initial population
improvement
(problem-specific)
improvement
(problem-independent)
terminal?
terminal?
end
end
No
No
Yes
Yes
Sistem Berbasis Pengetahuan Irfan Subakti
62
Bab 6 Algoritma Genetika
Meta-heuristic.
GA sederhana sulit diaplikasikan secara langsung dan berhasil dalam banyak masalah optimasi
yang sulit.
Pelbagai implementasi yang tak standar dibuat untuk bermacam-macam masalah tertentu
dimana GA digunakan sebagai meta-heuristic.
GA + Stuktur Data = Program Evolusi.
Keuntungan Utama.
Ada 3 keuntungan utama dalam mengaplikasikan GA pada masalah-masalah optimasi:
1. GA tak memerlukan kebutuhan matematis banyak mengenai masalah optimasi.
2. Kemudahan dan kenyamanan dan pada operator-operator evolusi membuat GA sangat efektif
dalam melakukan pencarian global (dalam probabilitas).
3. GA menyediakan banyak fleksibelitas untuk digabungkan dengan metode heuristic yang
tergantung domain, untuk membuat implementasi yang efisien pada masalah-masalah khusus.
Kamus GA.
Genetic Algorithms Explanation
Chromosome (string, individual) Solution (coding)
Genes (bits) Part of solution
Locus Position of gene
Alleles Values of gene
Phenotype Decoded solution
Genotype Encoded solution
6.2. Contoh Program Algoritma Genetika Sederhana (Simple Genetic
Algorithm)
Masalah Optimasi.
Diberikan fungsi di bawah ini:
Maksimalkan
f(x
1
, x
2
) = 21.5 + x
1
sin(4x
1
) + x
2
sin(20x
2
)
-3.0 <= x
1
<= 12.1
4.1 <= x
2
<= 5.8
Domain dari variabel x
j
adalah [a
j
, b
j
] dan presisinya adalah 4 tempat di belakang koma, maka
range dari setiap variabel dapat dibagi dalam (b
j
a
j
) x 10
4
unit.
Bit yang dibutuhkan (dilambangkan dengan m
j
) untuk variabel tadi dapat dihitung dari:
1
2
j
m
< (b
j
- a
j
) x 10
4
<= -1
j
m
2
Variabel keputusan (decision variable) x
j
= a
j
+ decimal(substring
j
) x
1 2
j
m
j j
a b
Dimana decimal (substring
j
) merepresentasikan nilai desimal dari substring
j
untuk x
j
.
Dimisalkan presisinya adalah 4 tempat di belakang koma. Bit yang dibutuhkan untuk variabel x
1
dan
x
2
adalah:
(12.1 (-3.0)) x 10,000 = 151,000
2
17
< 151,000 <= 2
18
, m
1
= 18
(5.8 4.1) x 10,000 = 17,000
2
14
< 17,000 <= 2
15
, m
2
= 15
m = m
1
+ m
2
= 18 + 15 = 33 Panjang total kromosom adalah 33 bit yang
direpresentasikan sbb:
33 bit
v
j
000001010100101001 101111011111110
18 bit 15 bit
Nilai yang bisa didapatkan untuk variabel x
1
dan x
2
adalah sbb:
Biner Desimal
x
1
000001010100101001 5417
x
2
101111011111110 24318
x
1
= -3.0 + 5417 x
1 2
) 0 . 3 ( 1 . 12
18
= -2.687969
Sistem Berbasis Pengetahuan Irfan Subakti
63
Bab 6 Algoritma Genetika
x
2
= 4.1 + 24318 x
1 2
1 . 4 8 . 5
15
= 5.361653
Prosedur-prosedur yang ada dalam program.
Terdapat beberapa prosedur dalam GA seperti di bawah ini:
Initial Population. Generate secara random (pop_size misalnya 10 berarti generate 10 populasi
awal), misal sbb:
v
1
=[000001010100101001101111011111110] nilai desimal v
1
=[x
1
,x
2
]= [-2.687969,5.361653]
v
2
=[001110101110011000000010101001000] nilai desimal v
2
=[x
1
,x
2
]= [ 0.474101,4.170144]
v
3
=[111000111000001000010101001000110] nilai desimal v
3
=[x
1
,x
2
]= [10.419457,4.661461]
v
4
=[100110110100101101000000010111001] nilai desimal v
4
=[x
1
,x
2
]= [ 6.159951,4.109598]
v
5
=[000010111101100010001110001101000] nilai desimal v
5
=[x
1
,x
2
]= [-2.301286,4.477282]
v
6
=[111110101011011000000010110011001] nilai desimal v
6
=[x
1
,x
2
]= [11.788084,4.174346]
v
7
=[110100010011111000100110011101101] nilai desimal v
7
=[x
1
,x
2
]= [ 9.342067,5.121702]
v
8
=[001011010100001100010110011001100] nilai desimal v
8
=[x
1
,x
2
]= [-0.330256,4.694977]
v
9
=[111110001011101100011101000111101] nilai desimal v
9
=[x
1
,x
2
]= [11.671267,4.873501]
v
10
=[111101001110101010000010101101010] nilai desimal v
10
=[x
1
,x
2
]=[11.446273,4.171908]
Evaluation. Dalam proses ini evaluasi nilai fitness dari kromosom yang terdiri dari 3 langkah:
Konversikan genetipe kromosom ke fenotipe-nya, artinya mengkonversikan string biner ke nilai real
relatif dari x
k
= ( ), dengan k = 1,2, ..., pop_size.
k k
x x
2 1
,
Evalusi fungsi obyektifnya: f(x
k
).
Konversikan nilai dari fungsi obyektifnya ke fitness. Untuk kasus memaksimalisasikan, fitness-nya
adalah sama dengan nilai fungsi obyektifnya: eval(v
k
) = f(x
k
), k = 1,2, ..., pop_size.
eval(v
1
) = f(-2.687969,5.361653) = 19.805119
eval(v
2
) = f( 0.474101,4.170144) = 17.370896
eval(v
3
) = f(10.419457,4.661461) = 9.590546
eval(v
4
) = f( 6.159951,4.109598) = 29.406122
eval(v
5
) = f(-2.301286,4.477282) = 15.686091
eval(v
6
) = f(11.788084,4.174346) = 11.900541
eval(v
7
) = f( 9.342067,5.121702) = 17.958717
eval(v
8
) = f(-0.330256,4.694977) = 19.763190
eval(v
9
) = f(11.671267,4.873501) = 26.401669
eval(v
10
) = f(11.446273,4.171908) = 10.252480
Terlihat disitu bahwa kromosom v
4
adalah kromosom terkuat dan kromosom v
3
adalah yang
terlemah.
Selection. Dalam kebanyakan kasus, pendekatan oulette wheel (roda rolet) sering digunakan
untuk prosedur seleksi; ini dimiliki oleh seleksi fitness proportional dan dapat memilih populasi baru
yang berhubungan dengan distribusi probabilitas pada nilai fitness-nya. Roda rolet ini dapat
dijelaskan sbb:
r
-
Hitung nilai fitness eval(v
k
) untuk setiap kromosom v
k
:
eval(v
k
) = f(x), k = 1,2, ..., pop_size.
Hitung total fitness untuk populasi:
F =
=
size pop
k
k
v eval
_
1
) (
Hitung probabilitas seleksi p
k
untuk setiap kromosom v
k
:
p
k
=
F
v eval
k
) (
, k = 1,2, ..., pop_size.
Hitung probabilitas kumulatif q
k
untuk setiap kromosom v
k
:
q
k
= , k = 1,2, ..., pop_size
=
k
j
j
p
1
Prosedur selection dimulai dengan memutar roda rolet sebanyak pop_size kali; setiap waktu satu
kromosom dipilih untuk populasi baru selanjutnya, dengan langkah sbb:
Generate bilangan random r dengan range [0,1].
J ika r <= q
1
, maka pilih kromosom pertama: v
1
; jika tidak, pilih kromosom ke-k: v
k
(2 <= k <=
pop_size) sehingga q
k-1
< r <= q
k
.
Sistem Berbasis Pengetahuan Irfan Subakti
64
Bab 6 Algoritma Genetika
Total fitness F dari populasi adalah: F = = 178.135372
=
10
1
) (
k
k
v eval
Probabilitas seleksi p
k
untuk setiap kromosom v
k
(k = 1, ..., 10) adalah sbb:
p
1
= 0.111180 p
2
= 0.097515 p
3
= 0.053839 p
4
= 0.165077 p
5
= 0.088057
p
6
= 0.066806 p
7
= 0.100815 p
8
= 0.110945 p
9
= 0.148211 p
10
= 0.057554
Probablitas kumulatif q
k
untuk setiap kromosom v
k
(k = 1, ..., 10) adalah sbb:
q
1
= 0.111180 q
2
= 0.208695 q
3
= 0.262534 q
4
= 0.427611 q
5
= 0.515668
q
6
= 0.582475 q
7
= 0.683290 q
8
= 0.794234 q
9
= 0.942446 q
10
= 1.000000
Sekarang marilah kita coba memutar roda rolet sebanyak 10 kali, dan setiap waktu kita memilih 1
kromosom untuk populasi baru selanjutnya. Diasumsikan misalnya 10 bilangan random dengan
range [0,1] adalah sbb:
0.301431 0.322062 0.766503 0.881893 0.350871
0.583392 0.177618 0.343242 0.032685 0.197577
Bilangan pertama r
1
: 0.301431 lebih besar daripada q
3
dan lebih kecil daripada q
4
, yang berarti
bahwa kromosom q
4
dipilih untuk populasi baru berikutnya; bilangan kedua r
2
: 0.322062 lebih
besar daripada q
3
dan lebih kecil daripada q
4
, yang berarti bahwa kromosom q
4
lagi-lagi dipilih
untuk populasi baru berikutnya; dan demikian seterusnya. Akhirnya populasi baru yang terbentuk
adalah sbb:
v
1
= [100110110100101101000000010111001] (v
4
)
v
2
= [100110110100101101000000010111001] (v
4
)
v
3
= [001011010100001100010110011001100] (v
8
)
v
4
= [111110001011101100011101000111101] (v
9
)
v
5
= [100110110100101101000000010111001] (v
4
)
v
6
= [110100010011111000100110011101101] (v
7
)
v
7
= [001110101110011000000010101001000] (v
2
)
v
8
= [100110110100101101000000010111001] (v
4
)
v
9
= [000001010100101001101111011111110] (v
1
)
v
10
= [001110101110011000000010101001000] (v
2
)
Crossover. Digunakan sebagai metode pemotongan kromosom, yang secara random memilih titik
potong pada kromosom dan menggantinya dengan bagian kanan dari 2 kromosom induk (parent)
untuk menghasilkan kromosom anak (offspring). Pada contoh di bawah ini terdapat 2 kromosom
induk, dan titik potongnya secara random dipilih pada posisi gen ke-17:
v
1
= [100110110100101101000000010111001]
v
2
= [001011010100001100010110011001100]
Didapatkan hasil Offspring dengan menggantikan bagian kanan dari kromosom induk sebagai
berikut:
v
1
= [10011011010010110 0010110011001100]
v
2
= [00101101010000110 1000000010111001]
Probabilitas crossover di set sebagai p
r
= 0.25, maka kita dapat berharap bahwa sekitar 25% dari
kromosom yang ada akan mengalami crossover. Crossover dapat dilakukan dengan langkah sbb:
procedure: Crossover
begin
k 0;
while (k <= 10) do
r
k
random number from [0,1];
if (r
k
< 0.25) then
select v
k
as one parent of crossover;
end
k k + 1;
end
end
Diasumsikan bahwa urutan bilangan random-nya adalah sbb:
0.625721 0.266823 0.288644 0.295114 0.163274
0.567461 0.085940 0.392865 0.770714 0.548656
Dari situ bisa kita lihat bahwa kromosom v
5
dan v
7
akan dipilih untuk dilakukan crossover padanya.
Kita generate bilangan integer pos secara random dengan range [1,32] (sebab 33 adalah panjang
dari kromosom) sebagai titik potong atau dengan kata lain adalah posisi titik crossover.
Sistem Berbasis Pengetahuan Irfan Subakti
65
Bab 6 Algoritma Genetika
Diasumsikan bahwa bilangan pos yang dihasilkan sama dengan 1, dua kromosom dipotong setelah
bit ke-1, dan offspring dihasilkan dengan menggantikan bagian kanan dari kromosom yang
bersangkutan sbb:
v
5
= [100110110100101101000000010111001]
v
7
= [001110101110011000000010101001000]
menjadi:
v
5
= [101110101110011000000010101001000]
v
7
= [000110110100101101000000010111001]
Mutation. Mutasi mengubah satu atau lebih gen dengan probabilitas sama dengan angka mutasi.
Diasumsikan bahwa gen ke-18 dari kromosom v
1
dipilih untuk bermutasi. Karena gen di posisi itu
(posisi ke-18) bernilai 1, maka setelah bermutasi nilainya menjadi 0. Maka setelah bermutasi,
kromosom menjadi:
v
1
= [100110110100101101000000010111001]
v
1
= [100110110100101100000000010111001]
Probabilitas mutasi diset sebagai p
m
= 0.01, sehingga diharapkan bahwa sekitar 1% total bit dari
populasi akan bermutasi. Ada m x pop_size = 33 x 10 = 330 bit dalam keseluruhan populasi;
diharapkan 3.3 mutasi terjadi setiap generasi. Setiap bit memiliki kesempatan yang sama untuk
bermutasi. Maka kita perlu meng-generate serangkaian bilangan random r
k
(k= 1, ..., 330) dengan
range [0,1]. Dimisalkan bahwa gen-gen berikut ini akan bermutasi:
bit_pos chrom_num bit_no random_num
105 4 6 0.009857
164 5 32 0.003113
199 7 1 0.000946
329 10 32 0.001282
Setelah mutasi, didapatkan populasi baru sebagai generasi berikutnya, sebagai berikut:
v
1
=[100110110100101101000000010111001] nilai desimal f( 6.159951,4.109598) = 29.406122
v
2
=[100110110100101101000000010111001] nilai desimal f( 6.159951,4.109598) = 29.406122
v
3
=[001011010100001100010110011001100] nilai desimal f(-0.330256,4.694977) = 19.763190
v
4
=[111111001011101100011101000111101] nilai desimal f(11.907206,4.873501) = 5.702781
v
5
=[101110101110011000000010101001010] nilai desimal f( 8.024130,4.170248) = 19.91025
v
6
=[110100010011111000100110011101101] nilai desimal f( 9.342067,5.121702) = 17.958717
v
7
=[100110110100101101000000010111001] nilai desimal f( 6.159951,4.109598) = 29.406122
v
8
=[100110110100101101000000010111001] nilai desimal f( 6.159951,4.109598) = 29.406122
v
9
=[000001010100101001101111011111110] nilai desimal f(-2.687969,5.361653) = 19.805119
v
10
=[001110101110011000000010101001010] nilai desimal f( 0.474101,4.170248) = 17.370896
Baru saja tadi kita sudah menyelesaikan satu iterasi dari algoritma genetik (GA). Program nantinya
akan dihentikan setelah 1000 iterasi (1000 generasi). Didapatkan kromosom terbaik pada generasi
ke-419 sbb:
v* = (111110000000111000111101001010110)
eval(v*) = f(11.631407,5.724824) = 38.818208
x*
1
= 11.631407
x*
2
= 5.724824
f(x*
1
,x*
2
) = 38.818208
Dari sini dapat dibuat program yang mengimplementasikan hal-hal diatas, dan sebagai inputnya,
minimal adalah jumlah populasi awal pop_size, probabilitas crossover p
r
, probabilitas mutation
p
m
, banyak iterasi, kromosom terbaik dan nilai-nilai yang ada padanya.
Sistem Berbasis Pengetahuan Irfan Subakti
66
DAFTAR PUSTAKA
1. Turban, Efraim, Decision Support and Expert Systems: Management Support
Systems, Fourth Edition, Prentice-Hall, Inc., United States of America, 1995.
2. Gonzalez, Avelino J . and Dankel, Douglas D., The Engineering of Knowledge-Based
Systems: Theory and Practice/ Book, 1993.
3. Ignizio, J ames P., Introduction to Expert Systems: The Development and
Implementation of Rule-based Expert Systems, McGraw-Hill International Editions, 1991.
4. Baur Gregory R., Pigford D.V., Expert Systems for Business: Concepts and Applications,
Boyd & Fraser Publishing Company, Boston-USA, 1990.
5. Gen, Mitsuo and Cheng, Runwei, Genetic Algorithms and Engineering Design, J ohn Wiley
& Sons., Inc., United States of America, 1997.
Sistem Berbasis Pengetahuan Irfan Subakti
67
ABOUT THE AUTHOR
Assalamu'alaikum and my warm greeting to you all ^__^
My name is Irfan Subakti. I graduated from SD Magetan III
(Elementary School degree) at Magetan city in 1986, then I continued
to study at SMPN 1 Magetan (J unior High School degree) at the same
city - I graduated in 1989. The senior high school degree is
accomplished at SMA 1 Magetan in 1992.
Through UMPTN (National University Entrance Test), I
accepted at Computer Engineering Study Program (Undergraduate
Program), Faculty of Industrial Technology, Institute Technology of
Sepuluh Nopember (ITS) at Surabaya city.
In 1994, the name of Department of Computer Engineering (J urusan Teknik Komputer), via
the government (i.e., Ministry of Education) decree changed into the Department of Informatics.
That's why I graduated at undergraduate program in 1999 at these department, no longer at
Computer Engineering Study Program, Faculty of Industrial Engineering, ITS. I got the degree:
Bachelor of Science (B.Sc.) in Informatics field at this moment (a.k.a. Sarjana Komputer - S.Kom. -
in Indonesian).
In 2001, the Department of Informatics no longer under the coordination of Faculty of
Industrial Engineering, but it became the independent faculty, i.e., Faculty of Information
Technology (FTIF). FTIF now on consist of 2 departments, namely: Department of Informatics and
Information System Study Program.
I got the scholarship from the government of Taiwan (Republic of China - R.O.C.) through
National Taiwan University of Science and Technology (NTUST - www.ntust.edu.tw) in 2003, to
pursue my master degree study. I accepted at Department of Computer Science and Information
Engineering (CSIE - www.csie.ntust.edu.tw), College of Electrical and Computer Engineering, as an
International Program student at Graduate Program.
By the thesis entitled: A Variable-Centered Intelligent Rule System, I graduated from
NTUST and I got M.Sc.Eng. degree (Master of Science in Engineering) in 2005.
The fields of interest that I do love are:
Fuzzy Information Systems
o Fuzzy Logics
o Fuzzy Systems
o Fuzzy Knowledge-Based Systems
Artificial Intelligence Agent Technology
o Expert Systems
o Rule-Based Systems
o Knowledge Systems
o Knowledge-Based Systems
o Decision Support Systems
o Variable-Centered Intelligent Rule System (VCIRS) - it's my own method!
^__^
Sistem Berbasis Pengetahuan Irfan Subakti
68
After wandering for years since in the studying in the undergraduate program (i.e., that's
why I could not graduate on time - 4 years from 1992, it should be in 1996 I had to graduate from
undergraduate degree, but in fact I just graduated at 1999) until the graduation day and having
fun trying the training jobs and works; either work by my own and work under the owner of some
companies, then I continuing my hobby and my desire, that's teaching!. I decided to be a teacher
in my alma mater. As the hobby, teaching is also the tradition from my brothers and sisters,
parents, grand parents and my family.
Now, I am a teacher in my alma mater, Department of Informatics, Faculty of Information
Technology, Institute Technology of Sepuluh Nopember, at Surabaya city, Indonesia.
You can contact me at: is@its-sby.edu
Wassalamu'alaikum and sincerely yours ^__^
Irfan Subakti, S.Kom., M.Sc.Eng.
Sistem Berbasis Pengetahuan Irfan Subakti
69