Anda di halaman 1dari 90

PEMROGRAMAN

SYSTEM PAKAR
(LISP)
Dr. Ir. Sudjati Rachmat, DEA

12/04/2018 1
ALAT PEMBANGUN SISTEM PAKAR

Ada dua jenis alat pembangun sistem pakar yaitu bahasa


pemrograman dan shell.

1. Bahasa Pemrograman Khusus

Semua bahasa pemrograman komputer dapat digunakan


untuk membuat sebuah program sistem pakar, namun
umumnya digunakan bahasa pemrograman khusus untuk
aplikasi-aplikasi kecerdasan buatan, seperti LISP dan
Prolog.

12/04/2018 2
ALAT PEMBANGUN SISTEM PAKAR

LISP
Pada awal-awal perkembangan Sistem Pakar, LISP (singkatan
dari LISt Processing) adalah bahasa pemrograman paling
populer. LISP adalah bahasa pemrosesan simbolik yang
merepresentasikan pengetahuan dalam bentuk list (rincian).
Obyek seperti manusia, benda dan kejadian direpresentasikan
dalam bentuk simbol-simbol dan hubungan antar obyek tersebut
digambarkan dalam bentuk struktur data yang disebut list. LISP
juga mempunyai beberapa Procedure atau Fungsi untuk
pengolahan dan manipulasi daripada list tersebut.

LISP dibuat oleh John McCarthy di MIT, pada tahun 1950, dan
mulai dikembangkan menjadi bahasa komersial pada tahun
1960-an.
12/04/2018 3
ALAT PEMBANGUN SISTEM PAKAR

Dialek
Ada empat dialek utama dari LISP, yaitu
• MacLisp (MIT)
• InterLISP (Bolt, Beraneck & Newman, Inc
• Portable Standard LISP (Univ.UTAH)
• Common LISP (Komite Nasional Ilmuan Komputer
Amerika Serikat)

12/04/2018 4
ALAT PEMBANGUN SISTEM PAKAR

Kompiler dan Interpreter

Bahasa pemrograman komputer kita temui dalam dua bentuk,


yaitu kompiler dan interpreter. Kompiler adalah program
komputer yang menterjemahkan program ke dalam bentuk
bahasa mesin (bahasa yang dimengerti komputer). Untuk
menggunakan kompiler, pemrogram membuat program sumber
(source program) dengan teks editor. Kemudian dengan
program kompiler, program sumber akan diubah menjadi bentuk
yaang lebih sederhana, yang dikenal dengan object code dan
disimpan dalam satu atau beberapa object file (.OBJ), beberapa
file object tersebut digabung menjadi sebuah executable file
(.EXE), yang sudah berdiri sendiri dan dapat langsung
12/04/2018 5
dijalankan dan operating system.
ALAT PEMBANGUN SISTEM PAKAR

Sebaliknya interpreter lebih interaktif dengan pemakai. Hal


ini disebabkan karena tiap instruksi yang diberikan dapat
secara langsung diinterpretasikan (diterjemahkan ke dalam
bentuk yang lebih sederhana), diolah, untuk kemudian
diberikan jawabannya.

Pada awalnya LISP adalah dalam bentuk interpreter,


meskipun demikian saat ini beberapa kompiler LISP telah
tersedia di pasar.

12/04/2018 6
ALAT PEMBANGUN SISTEM PAKAR

Prinsip Kerja LISP

LISP bekerja berdasarkan pada sebuah satuan yang


disebut atom. Atom ini dapat berupa angka atau simbol
dan obyek, tempat atau kejadian. Sederetan atom akan
membentuk list. Operasi LISP akan berupa pengolahan
dan manipulasi dari list ini.

Pengolahan dan manipulasi pada bahasa LISP ini


menggunakan apa yang disebut procedure. Procedure
standard dari bahasa LISP ini disebut primitive. Kita juga
dapat membuat procedure sendiri menggunakan primitive-
12/04/2018 7
primitive yang sudah tersedia.
ALAT PEMBANGUN SISTEM PAKAR

ATOM

Atom adalah elemen data terkecil daripada bahasa LISP yang


tidak dapat dibagi lagi. Atom ini dapat berupa angka dan simbol.

Angka adalah atom yang memiliki nilai numerik. Angka ini dapat
dalam bentuk integer atau real, dapat juga bernilai positif atau
negatif.

Contoh atom yang berbentuk angka:

1986
.00015
12/04/2018 48.3 8

– 27
ALAT PEMBANGUN SISTEM PAKAR

Simbol adalah kata yang merepresentasikan orang, tempat


atau benda-benda lainnya. Simbol dapat berupa sebuah
susunan huruf yang mengandung arti, atau dapat juga
berupa kombinasi huruf dan angka, tetapi kombinasi ini
harus diawali dengan huruf.

Contoh atom yang berbentuk simbol:

teman
xyz
JK36
12/04/2018
nomor-telepon 9
ALAT PEMBANGUN SISTEM PAKAR

LIST

Seperti disebutkan di atas, atom adalah elemen dasar dan


bahasa LISP, tetapi dasar operasi pada bahasa LISP adalah
pengolahan dan manipulasi list. Operasi tidak dapat dilakukan
pada atom tunggal, sehingga atom-atom ini harus digabungkan
membentuk list. Contoh list adalah sebagai berikut :

(sedan truk pesawat_terbang kapat_laut)

List dituliskan dalam tanda kurung. List ini mengandung sejumlah


atom yang merupakan elemen dari list tersebut Penulisan atom-
atom ini dipisahkan oleh satu spasi. Atom-atom penyusun list
haruslah memiliki ciri yang sama, seperti pada contoh di atas
12/04/2018 10
yang merupakan list alat-alat transportasi.
ALAT PEMBANGUN SISTEM PAKAR
Contoh list yang lain adalah:

(a i u e o)
(merah biru kuning hijau)
(amir budi wati sastro)
(1 2 3 5 7 11 13)

List dapat juga tersusun dari atom dan list, seperti contoh berikut
ini:

(a(b c)(d e f)(g h i j))

Selain itu list juga dapat tersusun atas elemen-elemen yang


kesemuanya berbentuk list, seperti contoh berikut ini:
12/04/2018 11
((a b c)(d e f)(g h i))
ALAT PEMBANGUN SISTEM PAKAR

List juga dapat menjadi bagian dari suatu list, dimana list
tersebut juga merupakan bagian dari list yang lebih besar
lagi, list ini biasa disebut "nested", sepert contoh berikut ini:

((a b c)((d e)(f g))(h i j))

Satu hal penting dalam penulisan list adalah jumlah dari


tanda kurung, setiap tanda kurung buka akan selalu dikuti
dengan tanda kurung tutup, jadi jumlah tanda kurung buka
harus sama dengan jumlah tanda kurung tutup, bila tidak
maka akan terjadi kesalahan interpretasi.

12/04/2018 12
ALAT PEMBANGUN SISTEM PAKAR

Fungsi, Procedure dan Primitive

Procedure adalah deskripsi bagaimana data akan diolah,


sedang fungsi adalah perhitungan atau pemrosesan suatu
nilai berdasarkan argumennya. Seringkali pengertian
procedure dan fungsi ini menjadi rancu, untuk satu hal
penting yang perlu diketahui adalah bahwa semua fungsi
adalah procedure, tetapi tidak semua procedure adalah
fungsi. Seperti telah disebutkan di atas, pada setiap dialek
bahasa LISP, telah tersedia procedure-procedure standar
yang disebut primitive, dan kita dapat membuat sendiri
procedure berdasar primitive-primitive ini. Ketiga unsur
inilah,
12/04/2018 fungsi, procedure dan primitive yang menyusun 13

program dalam bahasa LISP.


ALAT PEMBANGUN SISTEM PAKAR
Primitive untuk Operasi Matematika

Meskipun LISP kurang bagus untuk masalah-masalah


matematika (bila dibandingkan dengan FORTRAN), tetapi untuk
operasi-operasi dasar seperti tambah, kurang, bagi dan kali telah
disediakan primitivenya.

Format dari priinitive matematika ini dapat dilihat berikut ini:

(Procedure Argumen_1 Argumen_2 ...)

Procedure adalah bentuk operasi yang akan dilakukan,


sedangkan argumen adalah nilai-nilai yang akan dioperasikan.
Argumen ini dapat juga berupa sebuah list dengan jenis
procedure
12/04/2018
yang lain. Di bawah ini adalah contoh penggunaan 14

primitive matematika:
ALAT PEMBANGUN SISTEM PAKAR

(+ 2.34 7.59)
9.93
(+2 (+ 4(+ 6 8)))
20
(- 8.6 1.1)
7.5
(* -4.9 2.3)
-11.27
(/ 4.9 .7)
7.0

Selain menggunakan lambang +, -, *, dan I, primitive matematika


ini biasa juga ditulis dalam bentuk simbol PLUS (untuk
penjumlahan),
12/04/2018
DIF (untuk selisih), TIMES (untuk perkalian), dan
15
QUOTIENT (untuk pembagian).
ALAT PEMBANGUN SISTEM PAKAR

Contoh:
(PLUS 4 5)
9
(DIF 8 1)
7
(TIMES 7 3)
21
(QUOTIENT 6 2)
3

Beberapa primitive matematika yang lain adalah ABS (untuk


menghitung nilai absolut), EXPT (untuk menghitung
perpangkatan), MAX (menentukan nilai terbesar), MIN
(menentukan
12/04/2018
nilai terkecil), dan SQRT (untuk menghitung akar
16
pangkat 2).
ALAT PEMBANGUN SISTEM PAKAR

Contoh:

(ABS – 6.4)
6.4
(EXPT 2 4)
16
(MAX 2 9 14 15 18)
18
(MIN 2 9 14 15 18)
2
(SQRT 4096)
64
12/04/2018 17
ALAT PEMBANGUN SISTEM PAKAR

Predikat

Predikat adalah procedure yang menghasilkan jawaban benar


dan salah saja. Bila benar jawabannya adalah T, dan bila salah
NIL. Berikut akan dijelaskan beberapa predikat dari LISP.

NUMBERP, adalah predikat untuk mengetahui apakah suatu


ekspresi atau argumen berupa angka atau bukan.

Contoh:
(NUMBERP 17)
T
12/04/2018 (NUMBERP mas) 18

NIL
ALAT PEMBANGUN SISTEM PAKAR

ATOM, adalah predikat untuk mengetahui apakah suatu ekspresi


atau argumen berupa atom atau bukan.
Contoh:
(ATOM tomat)
T
(ATOM tomat mangga jeruk)
NIL

Predikat LISTP, berguna untuk mengetahui apakah ekspresi atau


argumen berupa list atau bukan.
Contoh:
(LISTP tomat)
NIL
12/04/2018
(LISTP tomat mangga Jeruk) 19
T
ALAT PEMBANGUN SISTEM PAKAR

Pengolahan List

Sebagian besar operasi pada bahasa LISP adalah operasi list


seperti membuat list baru, memodifikasi list yang telah ada,
memenggal list, memadukan list dan lain-lain. Ada lima primitive
pokok mengenai pengolahan list ini, yaitu: CAR, CDR, APPEND,
CONS, dan LIST.

CAR digunakan untuk mengetahui nilai awal dari suatu list

Contoh:
(CAR '(a b c d))
a
12/04/2018
(CAR '((a b c) (d e f) (g h i))) 20

(a b c)
ALAT PEMBANGUN SISTEM PAKAR
CDR digunakan untuk mengetahui komplemen primitive CAR,
atau dengan kata lain hasilnya adalah atom ke-2 sampai terakhir
dari suatu list

Contoh:
(CDR '(a b c d))
(b c d)
(CDR '((a b c) (d e f) (g h i)))
((d e f) (g h i))

APPEND adalah primitive yang fungsinya untuk menggabungkan


dua atau lebih argumen.

Contoh:
12/04/2018
(APPEND '(a b c) '(d e f)) 21

((a b c d e f))
ALAT PEMBANGUN SISTEM PAKAR
CONS berguna untuk memasukkan argumen di awal list

Contoh:
(CONS 'a '(b c d))
(a b c d)
(CONS '(a b c) '((d e f) (g h i)))
((a b c) (d e f) (g h i))

Predikat LIST berguna untuk membentuk list dari dua atau lebih
argumen.

Contoh:
(LIST 'a 'b 'c)
(a b c)
12/04/2018
(LIST '(a b c) '(d e f) '(g h i)) 22
((a b c) (d e f) (g h i))
ALAT PEMBANGUN SISTEM PAKAR
Memasukkan Nilai Variabel
Setiap bahasa pemrograman mempunyai cara tersendiri untuk
memasukkan nilai ke sebuah variabel, seperti dalam bahasa
BASIC kita kenal perintah LET, contoh: LET X=48.

Dalam bahasa LISP, memasukkan nilai primitive SETQ ke


variabel ini menggunakan

Contoh:
(SETQ X 14)
14
(SETQ Y 10)
10
12/04/2018 (+ X Y) 23

24
ALAT PEMBANGUN SISTEM PAKAR

Membuat Fungsi Sendiri

Untuk membuat fungsi sendiri, digunakan procedure


DEFUN. Sebagai contoh, akan dicoba membuat sebuah
fungsi untuk menghitung volume kubus.

(DEFUN KUBUS (X) (* X (* X X)))


misal X (sisi kubus) = 2
(KUBUS 2)
8

12/04/2018 24
ALAT PEMBANGUN SISTEM PAKAR

Rekursi

Satu contoh yang biasa digunakan untuk menjelaskan


rekursi adalah perkalian faktorial. Rumus perkalian faktorial
adalah sebagai berikut:

N! = N (N-1) (N-2) (N-3)... (1)


dimana 0! = 1

Untuk melihat kemampuan LISP menangani masalah


rekursi, LISP dibandingkan dengan program perhitungan
faktorial menggunakah bahasa BASIC.
12/04/2018 25
ALAT PEMBANGUN SISTEM PAKAR

REM PROGRAM REKURSI.BAS


INPUT N
F=1
FOR X = N TO 1
F=F*X
NEXT
PRINT F

Bila menggunakan LISP, programnya sebagai berikut:

(DEFUN FAKTORIAL (N)


(COND ((ZEROP N) 1)
(T ([*] N(FACTORIAL (– N 1)))))
coba dengan nilai N = 3
12/04/2018 26
(FAKTORIAL 3)
6
ALAT PEMBANGUN SISTEM PAKAR

Representasi Pengetahuan

Seperti telah disebutkan, representasi pengetahuan adalah


inti dari suatu proses pembangunan Sistem Pakar. Juga
telah disebutkan beberapa teknik representasi pengetahuan
seperti kalkulus predikat, jaringan semantik, bingkai, dan
kaidah produksi. Berikut akan diperlihatkan bagaimana
menggunakan teknik representasi kaidah produksi dan
bingkai menggunakan bahasa LISP.

12/04/2018 27
ALAT PEMBANGUN SISTEM PAKAR
Kaidah Produksi

Bentuk dasar dari representasi kaidah produksi dalam bahasa


LISP adalah

(Premise Konklusi)

Kedua bagian premise maupun konklusi ini dapat berupa atom


maupun list. Kaidah produksi ini juga dapat dituliskan sebagai
berikut

(KAIDINI nama kaidah


(JIKA (kondisi 1)
(kondisi 2)
12/04/2018 (kondisi 3) 28

(MAKA (kesimpulan))
ALAT PEMBANGUN SISTEM PAKAR

Untuk lebih jelasnya lihat contoh berikut:

Rule 1. Jika hewan berambut


dan menyusui
maka hewan itu Jenis mamalia

Rule di atas dalam bahasa LISP adalah sebagai berikut:

(RUU_1
(JIKA hewan_berambut hewan_menyusui)
(MAKA hewan_mamalia))

12/04/2018 29
ALAT PEMBANGUN SISTEM PAKAR
Bingkai

Dalam bahasa LISP struktur bingkai dan raknya dituliskan sebagai


berikut:
(NAMA_BINGKAI (RAK_1) (RAK_2) ... (RAK_n))
(RAK (NILAI_1) (NILAI_2) ... (NILAI_n))

Dan bentuk di atas terlihat, suatu bingkai tersusun atas rak-rak,


kemudian nilai dan rak tersebut dapat atom, dapat berupa atau list.
Untuk lebih jelasnya kita lihat contoh berikut:
Sebuah mobil sedan memiliki spesifikasi sebagai berikut:
Jumlah pintu: 4
Jumlah ban: 4
Berat: 500 kg
12/04/2018 30
Akselerasi: 0-60 km/jam dalam 4 dt
Bahan bakar: bensin
ALAT PEMBANGUN SISTEM PAKAR

Spesifikasi Mesin
Cylinder bore: 3.19'
Cylinder strike: 3.4'
Compretion ratio: 7.8
Daya: 140 hp

Representasi pengetahuan di atas adalah sebagai berikut:


(Mobil_Sedan (Jumlah_pintu)
(Jumlah_ban)
(Berat)
(Akaelerasi)
(Bahan_bakar)
(Mesin))

12/04/2018 31
ALAT PEMBANGUN SISTEM PAKAR

(Jumlah_pintu 4)
(Jumlah_ban 4)
(Berat 500_kg)
(Akselerasi 0-60_4_dt)
(Bahan_bakar bensin)
(Mesin (Cylinder_bore)
(Cylinder_stroke)
(Compretion_ratio)
(Daya))
(Cylinder_bore 3.19')
(Cylinder_stroke 3.4')
(Compretion_ratio 7.8)
(Daya
12/04/2018 140_hp) 32
ALAT PEMBANGUN SISTEM PAKAR

PROLOG

Prolog dibuat oleh Main Colmerauer, professor di


Universitas Aix, Mersaille, Perancis. Professor Colmerauer
dan timnya mencoba membuat bahasa pemrograman yang
lebih cepat dan lebih efisien untuk pemrograman bahasa
alami dan program penerjemah bahasa. Hasil yang ia
peroleh temyata tidak hanya cocok untuk kedua hal di atas,
tetapi untuk semua aplikasi kecerdasan buatan.

Nama Prolog sendiri berasal dari kata PROgramming in


LOGic. Prolog dalam kenyataannya memang merupakan
implementasi
12/04/2018 dari kaidah kalkulus Predikat. 33
ALAT PEMBANGUN SISTEM PAKAR

Keuntungan Memakai Prolog

Kelebihan utama dari bahasa Prolog adalah


kesederhanaannya untuk dipakai dalam pemrograman
aplikasi kecerdasan buatan, misalnya Sistem Pakar. Hal ini
disebabkan mesin inferensi, pola pemecahan masalah dan
prosedur pencarian telah siap pakai, sehingga seorang
programer tidak perlu susah-susah lagi membuat sendiri
seperti bila memakai bahasa pemrograman lainnya,
misalnya LISP. Hal ini pula yang menyebabkan para
programer pemula lebih senang memakai Prolog daripada
bahasa pemrograman lainnya.
12/04/2018 34
ALAT PEMBANGUN SISTEM PAKAR
Kelebihan Turbo Prolog

Turbo Prolog adalah compiler bahasa Prolog yang dibuat oleh


Borland. Beberapa kelebihan Turbo Prolog dibanding dialek
bahasa Prolog lainnya adalah:
• Turbo Prolog hemat dalam penggunaan memori. Seperti
diketahui kelemahan bahasa-bahasa pemrograman khusus
untuk aplikasi kecerdasan buatan adalah membutuhkan
memori yang lebih besar dibandingkan dengan bahasa-
bahasa pemrograman konvensional seperti C atau Pascal.
Turbo Prolog mampu memecahkan masalah tersebut dengan
kehandalannya dalam manajemen memori.

• Sistem basis data ekstemal yang handal, dengan lebih dari 30


predicates siap pakai untuk membangun dan mengolah basis
12/04/2018 35
data yang besar, yang didukung B+ trees dan memori EMS.
ALAT PEMBANGUN SISTEM PAKAR

• Turbo Prolog juga didukung dengan Borland Graphics


Interface (BGI) dalam pengolahan grafiknya, yang tidak
kalah dibanding Turbo Pascal maupun Turbo C.

• Kemampuan untuk memanggil sub routine yang dibuat


menggunakan bahasa C.

12/04/2018 36
ALAT PEMBANGUN SISTEM PAKAR
Bahasa Pemrograman Deklaratif

Sebagian besar bahasa pemrograman komputer adalah bahasa


prosedural; BASIC, C, PASCAL, FORTRAN, bahkan LISP. Dalam
pembuatan progam, programer akan membuat algoritma untuk
memproses berbagai masukan sehingga mengeluarkan hasil
yang diinginkan. Dengan menggunakan berbagai syntax,
procedure, function, command digunakan agar program berjalan,
memecahkan masalah sesuai dengan langkah-langkah dari
algoritma yang telah dibuat oleh programer.

Sebaliknya, PROLOG adalah bahasa deklaratife PROLOG


memecahkan masalah secara otomatis, menggunakan fakta-
fakta dan hubungannya. PROLOG adalah bahasa yang bersifat
12/04/2018 37
Problem Oriented, bukan Solution Oriented.
ALAT PEMBANGUN SISTEM PAKAR
Fakta

Dalam bahasa PROLOG, fakta adalah hubungan antara obyek-


obyek, baik itu benda, manusia maupun kejadian. Dalam bahasa
sehari-hari, fakta berbentuk sebuah kalimat. Dalam PROLOG
fakta dituliskan dalam bentuk berikut:

hubungan(obyek).
hubungan(obyek_1, obyek_2).
Contoh:

Nunik gadis manis  gadis_manis(nunik).


Amir suka makan donat  suka_makan(amir, donat).

Perhatikan
12/04/2018 bahwa semua obyek harus dituliskan dengan huruf
38

kecil, dan setiap fakta diakhiri dengan tanda titik.


ALAT PEMBANGUN SISTEM PAKAR

Fakta ini dapat juga berupa fakta majemuk atau fakta terkait,
contoh:
Farid menulis buku Pemrograman Sistem Pakar. Buku ini
termasuk jenis buku komputer.

Kalimat di atas terdiri atas dua fakta:

menulis(farid, "Pemrograman Sistem Pakar").


jenis_buku("Pemrograman Sistem Pakar", komputer).

yang penulisannya dapat digabung sebagai berikut

menulis(farid,jenis_buku("PemrogramanSistemPakar",komputer))
.12/04/2018 39
ALAT PEMBANGUN SISTEM PAKAR
Kaidah

Kaidah adalah keterkaitan antar fakta-fakta. Kaidah ini bernilai


benar bila fakta-fakta yang menyusunnya beinilai benar.

Contoh:

Kaidah: Nunik suka sesuatu yang ryan suka


Sehingga : Bila ryan suka apel
Maka : Nunik suka apel

Dalam PROLOG, contoh di atas ditulis sebagai berikut:

suka(nunik, Sesuatu) if suka(ryan, Sesuata)


Pemyataan
12/04/2018
'if dapat juga diwakili tanda ':-' 40

suka(nunik, Sesuatu):– suka(riyan, Sesuatu).


ALAT PEMBANGUN SISTEM PAKAR
Sehingga bila kita beri nilai:
suka(ryan, apel)
kemudian kita tanyakan:
Goal: suka(nunik, Sesuatu)

Hasilnya adalah:
Sesuatu=apel

Selengkapnya adalah sebagai berikut:


Predicates
suka(symbol, symbol)
clauses
suka(nunik, Sesuatu):–
suka(ryan, Sesuatu).
suka(ryan, apel).
12/04/2018 41
ALAT PEMBANGUN SISTEM PAKAR

Goal: suka(nunik, Buah)


Buah=apel
1 Solution

12/04/2018 42
ALAT PEMBANGUN SISTEM PAKAR

Operasi Matematika

Sama halnya dengan LISP, PROLOG juga memiliki


beberapa predicate untuk operasi matematika dasar seperti
tambah, kurang, kali, dan bagi. Untuk program-program
dengan perhitungan matematika yang rumit sebaiknya
menggunakan bahasa pemrograman lain seperti C atau
PASCAL. Hal ini tidak mengurangi keampuhan bahasa
PROLOG, sebab subrutin-subrutin yang dibuat dengan
bahasa pemrograman prosedural, seperti C ini dapat
dipanggil oleh program utama yang menggunakan bahasa
PROLOG.
12/04/2018 43
ALAT PEMBANGUN SISTEM PAKAR

Pemadanan

Pemadanan (unification) adalah teknik pencarian yang digunakan


bahasa PROLOG untuk mencari jawaban. Pemadanan ini dapat
kita lihat dalam contoh sederhana berikut:

predicates
membuat(symbol, symbol)
clauses
membuat(atok, roket)
membuat(lis, jembatan)
membuat(farid, komputer)
Goal: membuat(lis, Apa)
Apa=jembatan
12/04/2018 44

1 Solutions
ALAT PEMBANGUN SISTEM PAKAR

Pertanyaan (Goal) yang diberikan di atas, dalam bahasa


kita sehari-hari adalah:

Apa yang dibuat Lis?

dan tentu saja jawabnya adalah: jembatan

Untuk menjawab pertanyaan di atas digunakan teknik


pemadanan. Dalam teknik pemadanan ini, PROLOG
bergerak dari kiri ke kanan. Pada contoh di atas statemen
pertama yang ditemui adalah 'lis', maka PROLOG akan
mencari klausa dengan statemen paling kirinya adalah 'lis',
setelah
12/04/2018 ketemu, PROLOG mencocokkan statemen 45

berikutnya. Diperoleh Apa=jembatan.


ALAT PEMBANGUN SISTEM PAKAR

Lacak Balik
Salah satu kelebihan PROLOG dari LISP adalah PROLOG telah
menyediakan fasilitas pencarian yang disebut Lacak Balik
(backtracking). Unjuk kerja dari Lacak Balik ini dapat dilihat dalam
program berikut
predicates
menulis(symbol, string)
rnenulis(symbol, string)
karya_klasik(string)
seniman_besar(symbol)
clauses
menulis(hamka, "Merantau ke Deli").
menulis(hamka, "Di Bawah Lindungan Ka’bah").
menulis(st_takdir_alisyahbana, "Siti Nurbaya").
12/04/2018 46
menulis(hilman, "Lupus")
ALAT PEMBANGUN SISTEM PAKAR

menulis(farid, "Pemrograman Sintem Pakar").


melukis(monet, "The Lilies").
melukis(var_gogh, "The Mulberry Tree").
melukis(picasno, "The Three Musicians").
melukis(farid, "Pemandangan").
Karya_klasik("Di Bawah Undungan Ka'bah").
Karya_kasik("Sifl Nurbaya").
Karya_klasik( "The Lilies").
Karya_klasik("The Mulberry Tree").
Karya_klasik("The Three Musicians").
seniman_besar(Naina):–
menulis(Nama, Buku),
karya_klasik(Buku);
melukis(Nama, Lukisan),
karya_klasik(Lusan).
12/04/2018 47
ALAT PEMBANGUN SISTEM PAKAR

Jalankan program di atas, dan berikan pertanyaaan (Goal) berikut:


Seniman_besar(hamka)

Pertanyaan diatas akan diselesaikan menggunakan kaidah:


seniman_besar(Nama):
menulis(Nama, Buku),
karya_klasik(Buku);
melukis(Nama, Lukisan),
karya_klasik(Lukisan).

Dari kaidah di atas diketahui bahwa seorang seniman baru dianggap


seniman besar bila Ia menulis sebuah buku dan buku tersebut menjadi
karya klasik atau Ia melukis sebuah lukisan dan lukisan tersebut
menjadi karya kiasik.
12/04/2018 48
ALAT PEMBANGUN SISTEM PAKAR

Menggunakan teknik pemadanan akan diperoleh: Hamka menulis


"Merantau ke Deli", tetapi ternyata "Merantau ke Deli" ini bukanlah karya
klasik, sehingga PROLOG akan melakukan 'Lacak Balik' untuk mencari
karya Hamka yang lain, diperoleh "Di Bawah Lindungan Ka'bah" juga
hasil karya Hamka, dan temyata "Di Bawah Lindungan Ka'bah"
merupakan karya klasik. Jadi pertanyaan apakah Hamka seniman besar
terbukti.

Goal: seniman_besar(hamka)
Yes
1 solutions

12/04/2018 49
ALAT PEMBANGUN SISTEM PAKAR

Lisi dulam PROLOG

List sangat berguna dalam pemrograman Sistem Pakar, sehingga salah


satu bahasa populer dalam aplikasi kecerdasan buatan, yaitu LISP,
pada intinya adalah pengolahan dan manipulasi list. Dalam bahasa
PROLOG, list ditulis dalam format berikut:

[a, i, u, e, o]

contoh di atas adalah sebuah list yang tersusun atas atom-atom yang
berupa huruf vokal.

12/04/2018 50
ALAT PEMBANGUN SISTEM PAKAR

PeIacakan Ke Belakang

Pelacakan ke belakang (backward chaining) adalah salah satu teknik


inferensi. Teknik pelacakan ke belakang menggunakan program Sistem
Pakar yang dibuat menggunakan bahasa PROLOG sebab bahasa
PROLOG sendiri memakai teknik inferensi ini, yang disebut lacak balik
(backtracking), dan teknik penelusurannya adalah depth-first search.

Teknik pelacakan ke belakang memulai penalarannya dari kesimpulan


menuju data-data yang mendukung kesimpulan tersebut. Sebagal
contoh, masalah bagaimana mencari rute jalan dari satu kota ke kota
lain.

12/04/2018 51
Gambar 4.1
12/04/2018 Peta jalan antar kota 52
ALAT PEMBANGUN SISTEM PAKAR

Dari peta di atas dapat dibuat sebuah program untuk mencari rute
hubungan antar kota-kota tersebut, sebagal berikut:

/* Contoh Backward Chaining


Masalah Rute Antar Kota */

predicates
jalan(symbol, symbol)
rute(symbol, symbol)
clauses
rute(Awal, Tujuan):–
jalan(Awal, Tujuan),
write(" Pergi dari ", Awal, " ke ", Tujuan), n1.
rute(Awal, Tujuan):–
jalan(Lewat, Tujuan),
12/04/2018 53
rute(Awal, Lewat),
ALAT PEMBANGUN SISTEM PAKAR

write(" kemudian dari ", ” ke ”, Tujuan), n1.


jalan(cilegon, tangerang).
jalan(tangerang, Jakarta).
jalan(jakarta, bogor).
jalan(jakarta, bandung).
jalan(tangerang, cilegon).
jalan(jakarta, tangerang).
jalan(bogor, Jakarta).
jalan(bandung, Jakarta).

12/04/2018 54
ALAT PEMBANGUN SISTEM PAKAR
Untuk mengetahui rute dari Cilegon ke Bogor, jalankan program dan
ketik:
Goal: rute(cilegon, bogor)

Akan diperoleh hasil:


Pergi dari cilegon ke tangerang
kemudian dari tangerang ke Jakarta
kemudian dari Jakarta ke bogor

Program di atas bekerja dengan teknik pelacakan ke belakang. Jadi bila


ditanyakan rute dari Cilegon ke Bogor, program akan memulai
pelacakannya dari Bogor (bagian tujuan atau bagian kesimpulan).
Pertama program akan menemukan adanya rute dan Bogor ke Jakarta,
kemudian dari Jakarta ke Tangerang, dan dari Jakarta ke Bandung,
kemudian pelacakan diteruskan ternyata dari Bandung tidak diperoleh
12/04/2018 55
jalan lagi, sedang dari Tangerang diperoleh jalan ke Cilegon.
ALAT PEMBANGUN SISTEM PAKAR

Representasi Pengetahuan

Representasi pengetahuan cukup mudah dilakukan menggunakan


PROLOG karena kemampuannya sebagai bahasa deklaratif. Namun
meskipun PROLOG adalah bahasa deklaratif bukan berarti tidak dapat
digunakan untuk representasi prosedural.

12/04/2018 56
ALAT PEMBANGUN SISTEM PAKAR

Representasi Logika
Representasi logika sangat mudah dilakukan menggunakan PROLOG,
sebab PROLOG adalah bahasa pemrograman logika (PROgramining
LOGic). Salah satu contoh klasik dari representasi logika adalah
masalah petani-serigala-kambing-kol.

Seorang petani ingin menyeberangkan seekor serigala, seekor kambing,


dan sekeranjang kol dari sisi barat sungai ke sisi timur. Permasalahan
timbul diakibatkan perahu petani hanya cukup mengangkut salah satu
dari ketiga angkutan tersebut, sedangkan serigala dan kambing tidak
dapat ditinggal berdua, dan kambing serta kol juga tidak dapat
ditinggalkan berdua. Pemecahannya terdapat pada program berikut:

12/04/2018 57
12/04/2018 58
12/04/2018 59
12/04/2018 60
12/04/2018 61
12/04/2018 62
12/04/2018 63
12/04/2018 64
12/04/2018 65
12/04/2018 66
12/04/2018 67
12/04/2018 68
Gambar 4.2
12/04/2018 Keluaran program logika.pro 69
ALAT PEMBANGUN SISTEM PAKAR

Kaidah Produksi

Kaidah produksi adalah teknik representasi pengetahuan yang paling


populer digunakan dan paling mudah dibuat menggunakan bahasa
PROLOG.

Contoh: Jika hewan berambut


dan menyusui
maka hewan itu jenis mamalia

dapat ditulis,
hewan(mamalia): –
hewan(berambut),
hewan(menyusui).

12/04/2018 70
ALAT PEMBANGUN SISTEM PAKAR

Bahasa. Pemrograman Khusus Lainnya

Selain LISP dan PROLOG, terdapat beberapa bahasa pemrograman


lain seperti LISP dan PROLOG combos, PLANNER, CONNIVER,
POPLER, AMORD, SAIL, LOGO, Smaltalk, dan OPS5.

12/04/2018 71
ALAT PEMBANGUN SISTEM PAKAR

LISP dan PROLOG combos

LISP dan PROLOG sangat mengagumkan dalam pemrograman Sistem


Pakar, dengan kelebihan dan kekurangannya masing-masing. Hal ini
menimbulkan ide untuk menggabungkan kedua bahasa tersebut.
Beberapa bahasa telah berhasil dibuat berdasarkan kombinasi LISP dan
PROLOG, seperti LOGUSP, Lisp/Prolog, QLISP, dan POPLOG.

12/04/2018 72
ALAT PEMBANGUN SISTEM PAKAR

Smaltalk

Smaltalk lebih dikenal sebagai bahasa untuk pemrograman berorientasi


obyek. Smaltalk dibuat oleh Xeros Palo Alto Research Centre, berdasar
bahasa Simula (bahasa pemrograman tahun 60-an di Norwegia).

Unsur dasar Smaltalk adalah obyek. Obyek adalah sebuah yang dapat
berupa angka atau simbol. Obyek ini juga mengandung informasi
operasi-operasi yang dapat dilakukan padanya. Obyek ini merupakan
kombinasi antara pengetahuan deklaratif dan pengetahuan prosedural.

Smaltalk adalah bahasa pemrograman modular. Program tersusun atas


modul-modul yang berupa subrutin-submtin untuk pengerjaan tertentu.
Subrutin-subrutin kecil ini membentuk program yang lebih besar.

12/04/2018 73
ALAT PEMBANGUN SISTEM PAKAR

OPS5

Official Production System, versi 5 (OPS5) dibuat di Universitas


Carnegie Mellon, Pitsburgh. Versi komersil dari OPS5 ini dibuat oleh
Artelligence, Inc. dapat dijalankan pada komputer IBM PC dan Apple
Macintosh.

OPS5 dibuat menggunakan bahasa LISP. Dalam OPS5 ini sudah


tersedia mesin inferensi yang siap pakai menggunakan teknik pelacakan
ke depan. Basis pengetahuan OPS5 berbentuk kaidah produksi.

OPS5 adalah sebuah shell yang dilengkapi dengan bahasa pemro-


graman sendiri, sehingga meskipun telah disediakan, pemakai dapat
membuat kaidah sendiri untuk mengontrol jalannya program.

12/04/2018 74
ALAT PEMBANGUN SISTEM PAKAR

SheII
Shell adalah sebuah program sistem pakar yang basis pengetahuannya
masih kosong. Ada lima jenis shell berdasarkan pada metode
representasi pengetahuan yang dipakai.

a. Simple rule-base tools, menggunakan IF-THEN dalam


merepresentasikan pengetahuan. Alat ini dapat dijalankan pada
komputer pribadi (PC) dan dapat mengelola sampai dengan 500
kaidah. Contoh alat ini adalah: EXSYS, INSIGHT 2+, VP EXPERT,
dan ESP ADVISOR.

b. Inductive tools, membangkitkan kaidah dan contoh-contoh dalam


basis pengetahuan. Alat ini terbagi dua jenis, yaitu large inductive
yang dijalankan pada mainframe dan small inductive yang dijalankan
pada PC. Contoh alat ini adalah TlMM, EXPERT-EASE, RULE
12/04/2018 75
MASTER, dan SUPER EXPERT
ALAT PEMBANGUN SISTEM PAKAR

c. Structured rule-base tools, menggunakan IF-THEN yang disusun


dalam kaidah-set untuk representasi pengetahuan. Alat ini terbagi
dua jenis yaitu Mid-size Rule-base tools yang dijalankan pada PC
inisalnya M.1, dan KES II. Jenis kedua adalah Large-size Rule-base
tools yang dijalankan pada mainframe, mesin LISP UNIX
workstation, inisalnya S.1, dan OPS5e.
d. Hybrid tools, menggunakan IF-THEN dalam representasi pengetahu-
an. Alat ini dikembangkan dengan bahasa LISP sehingga hanya
dapat digunakan menggunakan mesin LISP, VAX dan UNIX
workstation. Perkembangan selanjutnya menghasilkan alat Mid-size
hybrid tools, yang dapat dijalankan pada PC, dan akhirnya Large-
size hybrid tools merupakan alat yang lebih lengkap dengan jumlah
kaidah yang ditangani lebih dari 1500. Sebagai contoh untuk Mid-
size hybrid tools adalah PC PLUS dan GOLDWORK, sedang untuk
Large-size hybrid tools adalah ART dan KEE.
12/04/2018 76
ALAT PEMBANGUN SISTEM PAKAR

e. Domain Specific Tools, merupakan alat yang mengelola


pengetahuan dengan domain yang sangat spesifik, sehingga
dirancang khusus hanya untuk permasalahan yang dikaji.

12/04/2018 77
ALAT PEMBANGUN SISTEM PAKAR

Contoh-contoh Shell

Berikut akan diperkenalkan beberapa shell yang sudah komersial, yaitu


EXSYS, PC+, CRYSTAL, lstClass, EXPERT EASE, dan INSIGHT2+.

12/04/2018 78
ALAT PEMBANGUN SISTEM PAKAR

EXSYS

EXSYS dibuat oleh EXSYS Inc, merupakan shell yang dijalankan pada
IBM PC dan kompatibelnya, dengan memori minimum 640 Kbyte.

EXSYS menggunakan teknik representasi Kaidah Produksi. Suatu


kaidah tersusun atas premise (IF/JIKA) dan konklusi *THEN/MAKA).

Sistem pelacakan kaidah ada dua, yang pertama sistem pelacakan yang
akan menguji semua kaidah yang mungkin, dan yang kedua adalah
sistem pelacakan yang akan menghentikan pelacakan bila kaidah yang
benar telah ditemukan.

12/04/2018 79
ALAT PEMBANGUN SISTEM PAKAR
Sistem perhitungan faktor kepastian ada tiga yaitu:
a. Dalam sistem 0 dan 1, nilai 0 untuk pernyataan yang salah dan 1
untuk pernyataan yang benar. Jika semua kondisi IF bernilai benar,
dan ada pilihan pada bagian THEN maka nilai 0 atau 1 dapat
diberikan.
b. Dalam sistem 0 - 10, nilai diberikan dalam bentuk perbandingan
dengan nilai penyebut 10 dan nilai pembilang berkisar antara 0
sampai 10. Nilai 0/10 berati salah absolut, dan nilai 10/10 berarti
benar absolut, sedangkan nilai 1-9 menunjukkan derajat kepastian.
c. Sistem nilai 0 - 100 merupakan sistem yang paling kompleks. Nilai
kombinasi akhir dapat dihitung dengan tiga cara. Cara pertama
adalah nilai rata-rata dan semua nilai-nilai solusi pada rule yang
bernilai benar. Cara kedua dengan mengalikan nilai-nilai tersebut.
Cara ketiga dengan mengalikan sebagai nilai bebas, dengan rumus
berikut:
12/04/2018
1 – ((1-a1)*(1-a2)*…*(1-ab)) = b 80
ALAT PEMBANGUN SISTEM PAKAR

Personal Consutan Plus (PC+)

PC+ adalah shell yang dibuat menggunakan bahasa LISP. Shell ini
dapat dijalankan pada Texas Instrumen Portable Profesional Computer,
dan IBM PC atau kompatibelnya dengan extended atau expanded
memory minimal 2048 Kb, sedangkan untuk menjalankan versi Run
Time PC+ dibutuhkan minimal RAM 640 Kb.

Basis pengetahuan PC+ berbentuk bingkai (frame) dilengkapi dengan


parameter dan kaidah. Hubungan antara bingkai, parameter dan kaidah
dapat dilihat pada Gambar 4.3.

12/04/2018 81
Gambar 4.3
12/04/2018 82
Struktur basis pengetahuan PC+
ALAT PEMBANGUN SISTEM PAKAR

PC+ menyediakan empat macam kaidah yaitu kaidah konsekuen,


kaidah anteseden, kaidah referensi, dan kaidah majemuk (meta rule).
Pemilihan kaidah ini disesuaikan dengan masalah yang dihadapi. Nilai
default PC+ adalah kaidah konsekuen. Kaidah konsekuen ini
menggunakan teknik inferensi pelacakan ke belakang.

PC+ merupakan sistem hibrid yang dapat digunakan sebagai bahasa


pemrograman biasa dan dapat pula mengakses ke bahasa LISP. PC+
juga mampu mengakses data dari perangkat lunak lain.

Ketidakpastian dalam PC+ dihitung menggunakan faktor kepastian (CF).


Pada PC+ terdapat beberapa istilah CF, yaitu CF bagian IF (CFIF), CF
bagian THEN (CFTHEN), CF bagian THEN sebelum dihitung oleh
sistem (CFSBL) dan CF bagian THEN setelah dihitung oleh sistem
(CFBARU).
12/04/2018 83
ALAT PEMBANGUN SISTEM PAKAR

Sebelum menentukan CF nilai dari suatu parameter, terlebih dahulu


harus mendefinisikan CFBARU. CFBARU suatu parameter didapatkan
dengan cara menggabungkan dua nilai CFIF dan CFTHEN dengan
persamaan sebagai berikut:
CFBARU = (CFIF * CFTHEN + 50)/100
Jika CFSBL dan CFBARU keduanya bernilai positip atau nol, maka:
CF = CFSBL + ((CFBARU * 100(100-CFSBL) – 50)/100)
Jika CFSBL dan CFBARU bernilai negatif, maka:
CF = CFSBL + ((CFBARU * 100(100+CFSBL) – 50)/100)
Jika CFSBL * CFBARU adalah negatif, CFSBL + CFBARU adalah
positip, maka:
CF = ((CFSBL + CFBARU) * 100 + (100-MIN)/2)/(100-MIN)
dimana MIN adalah nilai minimum ABS(CFSBL) atau ABS(CFBARU).
12/04/2018 84
ALAT PEMBANGUN SISTEM PAKAR

Jika CFSBL adalah negatif dan CFSBL + CFBARU adalah negatip,


maka:

CF = ((CFSBL + CFBARU) * 100 + (100-MIN)/2)/(100-MIN)

12/04/2018 85
ALAT PEMBANGUN SISTEM PAKAR

CRYSTAL
Crytal adalah shell yang pengetahuannya tersusun atas kaidah-kaidah.
Kaidah-kaidah pada Crytal dituliskan dalam bentuk:
Kesimpulan yang diambil
IF kondisi-kondisi yang harus dipenuhi

Hubungan antara kondisi-kondisi dapat berupa and atau or. Untuk


hubungan and, semua kondisi harus bernilai benar, sedang untuk or
cukup salah satu kondisi bernilai benar, kesimpulan sudah dapat
diambil.

Kaidah-kaidah dan kondisi-kondisi akan membentuk suatu diagram


pengetahuan. Dalam proses pelacakannya CRYSTAL memulai dari
kaidah yang paling atas.
12/04/2018 86
ALAT PEMBANGUN SISTEM PAKAR

1stCLASS

Keunikan dari 1stCLASS adalah kemampuannya membentuk basis


pengetahuan dari tabel induksi. Tabel induksi adalah tabel yang
menyatakan contoh-contoh melalui bentuk baris dan kolom.
Kemampuan lain yang sangat menonjol adalah 1stCLASS mampu
menampilkan gambar, dan komentar yang panjang dalam bentuk file
teks.

1stCLASS dibuat dan dipasarkan oleh Programs in Motion, Inc. Dapat


dijalankan pada IBM PC atau kompatibelnya, dengan memori minimal
256 Kb.

12/04/2018 87
ALAT PEMBANGUN SISTEM PAKAR

INSIGHT

INSIGHT adalah shell dengan basis pengetahuan berbentuk kaidah


produksi. Shell ini dibuat oleh Level Five Research, Inc. Dijalankan pada
komputer IBM PC, menggunakan MS DOS versi 2 atau yang lebih baru.

INSIGHT memiliki bahasa perekayasa sendiri yang disebut Production


Rule Language (PRL). PRL ini terdiri atas interpreter, compiler dan
debugger.

INSIGHT juga dapat mengakses data dari program data base seperti
Dbase III+.

12/04/2018 88
Gambar 4.4
12/04/2018 89
Format pengetahuan EXPERT EASE
ALAT PEMBANGUN SISTEM PAKAR

EXPERT EASE

EXPERT EASE dibuat menggunakan Analog Concept Leaining System


(ACLS) yaang dibuat oleh Donald Michie dari Universitas Edinburgh.

Untuk menjalankan EXPERT EASE tidak dibutuhkan sistem operasi


khusus, sebab EXPERT EASE memiliki sistem operasi sendiri yang
disebut UCSD P-system.

Basis pengetahuan EXPERT EASE berasal dari matriks contoh. Contoh-


contoh ini dipakai oleh mesin inferensi EXPERT EASE untuk mencari
jawaban dari masalah yang ditanyakan.

12/04/2018 90

Anda mungkin juga menyukai