TOTO HARYANTO

Sedikit goresan menebar manfaat …..

Archive for the 'Sistem Pakar' Category

Expert Sistem

Wildcard Pattern Pada CLIPS

Posted by totoharyanto on 13th October 2014

Jika kita menggunakan CLIPS (C Language Integrated Production System) sebagai tools untuk sistem pakar, terdapat mekanisme untuk memanggil variabel pada bagian LHS (left Hand Side) atau antesendent agar dapat digunakan pada bagian RHS (right hand side) atau konsekuen. Mekanisme tersebut disebut sebagai Wilcard Pattern.

Terdapat tiga bentuk wildcard pattern
1.  ?variabel         : ini digunakan untuk mengambil nilai value pertama dari suatu variabel
2.  $?                       : ini digunakan jika kita tidak akan mengambil value sama-sekali dari value suatu variabel
3.  $?variabel      : ini digunakan untuk mengambil semua nilai dari suatu variabel.

Sebagai Ilustrasi perhatikan contoh berikut:
===================================================================
; contoh 1
; Nama file : band.clp
(deftemplate member_bands
(multislot  member-of))

(deffacts nama_band

(member_bands (member-of  beatles john_lennon paul_mccartney george_harrison ringo_starr))
(member_bands (member-of  smash roger_daltrey pete_townsend keith_moon))
(member_bands (member-of  kangen_band tracey_thorn ben_watt)))

(defrule bands
(member_bands (member-of  ?band  $?))
=>
(printout t “there is a band called ”  ?band crlf))

===================================================================
Keterangan :
Pada contoh di atas terlihat bahwa hanya value pertama saja yang dihasilkan. perintah  “….. ?band  $? ” pada bagian antesendent menunjukkan bahwa hanya value pertama saja yang dihasilkan. Dalam hal ini hanya kangen_band, smash dan beatles saja yang dikeluarkan …

 

 

=====================================================================
Contoh 2
;nama file : akses_single_member.clp

(deftemplatemember_bands
(multislot member-of))

(deffactsnama_band
(member_bands (member-of  beatles john_lennon paul_mccartney george_harrison ringo_starr))
(member_bands (member-of  smash roger_daltrey pete_townsend keith_moon))
(member_bands (member-of  kangen_band tracey_thorn ben_watt)))

(defrule band-members
(member_bands (member-of ?band ?member $?))
=>
(printout t ?member ” is a member of ” ?band crlf)
=====================================================================

Keterangan :
Pada contoh di atas terlihat bahwa hanya value pertama dan  kedua saja yang dihasilkan. perintah  “….. ?band  $?member … ” pada bagian antesendent menunjukkan bahwa hanya value pertama dan kedua saja yang dihasilkan. Adapun “….$? digunakan untuk membatasi bahwa setelah value pertama dan kedua, tidak dicetak value sama sekali.

 

======================================================================

Contoh 3
;nama file : akses_multi_member.clp
(deftemplatemember_bands
(multislot member-of))

(deffactsnama_band
(member_bands (member-of  beatles john_lennon paul_mccartney george_harrison ringo_starr))
(member_bands (member-of  smash roger_daltrey pete_townsend keith_moon))
(member_bands (member-of  kangen_band tracey_thorn ben_watt)))

(defrule band-members
(member_bands (member-of ?band $?members))
=>
(printout t “The members of ” ?band ” are ” $?members crlf))

======================================================================
Keterangan :
Pada contoh di atas terlihat bahwa hanya setelah value pertama, seluruh member akan dihasilkan. perintah  “….. ?band  $?members..  ” pada bagian antesendent menunjukkan bahwa setelah value pertama, seluruh value berikutnya akan dicetak .


Semoga Bermanfaat

 


Posted in Sistem Pakar | No Comments »

CLIPS Versus JESS

Posted by totoharyanto on 19th October 2012

This link is posting about comparison between two expert system shell, CLIPS and JESS.

http://www.comp.lancs.ac.uk/~kristof/research/notes/clipsvsjess/index.html

Hopefully useful


Posted in Sistem Pakar | No Comments »

Fuzzy Reasoning / Penalaran Fuzzy

Posted by totoharyanto on 11th August 2012

Bismillahirrohmanirrohim.
Alhamdulillah setelah sekian lama tidak menulis, akhir Alloh subhanahuwata’ala mudahkan juga saya untuk mem-posting tulisan. Sambil nunggu mahasiswa yang belum pada datang. Padahal jadwal kuliah jam 9. saya on time lho. Alhamdulillah sudah datang..

Bagi orang IT atau ilmu komputer, istilah fuzzy bukanlah sesuau yang asing. Konsep fuzzy sebenarnya berawal dari teori himpunan yang diperkenalkan oleh Zadeh. Pada implementasinya, penggunaan fuzzy logic control banyak diterapkan bahkan pada skala industri. Saya sering memberikan contoh ke mahasiswa biasanya adalah mesin cuci. Saya akan betanya dulu biasanya.

  • Toto                            : Ada berapa tabung yang terdapat pada mesin cuci ?
  • Mahasiswa/i            : Ada yang menjawab 1 ada yang 2. Bergantung pengalaman …
  • Mahasiswa (lain)    : Boro-boro mesin cuci Pak, masih digosok …. manual …(cmiiw) :)

Oke, kembali ke fuzzy, nah bisanya pada mesin cuci yang 2 tabung saya kataka masih semi otomatis. Mengapa ? Karena kita tetap harus memastikan kapan cucian tersebut harus selesai dibilas dan kapan harus dikeringkan. Akan tetapi kalau mesin cuci dengan 1 tabung , sekali kita masukkan kelua sudah siap untuk dijemur….

Pertanyaannya ? Bagaimana mesin tersebut mengatahui bahwa cucian milik kita sudah masih kotor (harus dibilas) atau sudah siap dikeringkan? Nah, di sinilah fuzzy logic control bisa diterapkan…
Kalo ada kesempatan coba sekali-kali ke toko elektronik deh.. lihat lihat mesin cuci. Kalai diperhatikan biasanya pada mesin cuci dengan 1 tabung tertera tulisan Fuzzy Logic Control. Bisa dicari di google aja sendiri ya..

 

 

 

Dari konsep fuzzy inilah lahir metode-metode seperti:

  •   Fuzzy Inferene System
  •   Fuzzy Measurement
  •   Fuzzy Clustering
  •   dll (saya tidak hapal semua )…

Salah satu dari mekanisme penarikan kesimpulan dengan konsep fuzzy adalah mekanisme penalaran fuzzy/ fuzzy reasoning.
Fuzzy resoning merupakan bagaimana suatu kesimpulan berbasis fuzzy dapat dibuat. Sejauh yang yang tahu terdapat 3 metode penalaran fuzzy , yaitu:

1. Metode Penalaran Mamdani
2. Metode Penalaran Tsukamoto
3 Metode Penalaran Takagi Sugeno

Apa perbedaannya ?
Secara garis besar perbedaan dari tiga metode ini bisa dilihat pada Tabel berikut:

Penalaran Input Output Deffuzzifikasi Penggunaan
Tsukamoto Himpunan Fuzzy Himpunan Fuzzy Weigthed Average Humannis
Controll
Mamdani Himpunan Fuzzy Himpunan Fuzzy CoG
Lom
SomMomBisector
Humanis
Sugeno Himpunan Fuzzy – Konstanta- Linear (orde 1) Weigthed Average Control l

Adapun detail dari perbedaan ketiganya tersebut saya lampirkan dalam formmat pdf saja.
Silahkan diunduh Penalaran_Fuzzy (unduh)

Contoh Kasus Fuzzy Tsukamoto : http://totoha ryanto.staff.ipb.ac.id/2013/12/09/fuzzy-tsukamoto/

Terima Kasih


Posted in Sistem Pakar | No Comments »

Naive Bayes

Posted by totoharyanto on 27th March 2012

Sambil Mengingat Kembali Tentang Naive bayes.
Berikut contoh proses pengambilan keputusa dengan Naive Bayes.

  1. Diketahui Data Training Sebagai berikut:

ID

X1

X2

X3

Class

1

Yes

Single

125

No

2

No

Married

100

No

3

No

Single

70

No

4

Yes

Married

120

No

5

No

Divorce

95

Yes

6

No

Married

60

No

7

Yes

Divorce

220

No

8

No

Single

85

Yes

9

No

Married

75

No

10

No

Single

90

Yes

Dengan, menggunakan Naive Bayes, tentukan X(X1=No,X2=Married,X3=120)  ?

jawab:
P(Y=Yes) = 3/10,  P(Y=No) = 7/10

P(X1=No|Y=Yes) = 3/3 = 1
P(X1=No|Y=No) = 4/7

P(X2=Married|Y=Yes) = 0/3
P(X2=Married|Y=No)  = 4/7

P(X3=120|Y=Yes) = 0/3
P(X3=120|Y=No)  = 1/7

P (X1=No,X2=Married,X3=120|Y=Yes) :
= {P(P(X1=No|Y=Yes).P(X2=Married|Y=Yes).P(X3=120|Y=Yes).P(Y=Yes)}
=              {(1)                 .(0/3)                                 .(0/3)                            .(3/10)}
= 0

P (X1=No,X2=Married,X3=120|Y=No) :
= {P(P(X1=No|Y=No).P(X2=Married|Y=No).P(X3=120|Y=No).P(Y=No)}
=              {(4/7)                 .(4/7)                                 .(1/7)                            .(7/10)}
= 0,032

Sehingga Keputusannya adalah No

 

 

Silahkan Mencoba Jika : X(X1=Yes,X2=Divorce,X3=85)   ?

Kirim jawaban Anda melalui blog ini…

 

Selamat Mencoba….:-)


Posted in Sistem Pakar | 76 Comments »