Mengenal Perintah Sederhana CLIPS untuk Sistem Pakar

Pada kesempatan kali ini kita akan mengenal perintah sederhana untuk CLIPS yaitu dengan membuat template untuk fakta Dosen dan Manipulasi Data pada Template yang sudah kita buat.

1.       Membuat template untuk fakta dosen yang berisi slot nama, nip, kepakaran, fakultas dan departemen.
Perintah Clips menggunakan deftempate<spasi>nama_template kemudian diikuti dengan slot yang akan dimasukan, seperti yang terlihat pada gambar dibawah ini.

Gambar 1 Membuat Template Dosen

2.       Menambahkan 5 data ke template Dosen yang telah kita buat sebelumnya dengan menggunakan perintah assert seperti pada gambar dibawah ini.
Gambar 2 Memasukan Data pada Template Dosen

3.       a.  Melakukan modifikasi fakultas dan departemen
Perubah dilakukan satu persatu dengan menggunakan perintah
 (modify <fact-index> <slot-modifier>)
Kali ini kita akan merubah fakta fakultas dan departemen yang berindex 5, seperti yang terlihat pada gambar dibawah ini.

Setelah melakukan modifikasi nomor index akan bertambah, seperti gambar diatas kita memodifikasi index nomor 5 setelah berhasil memodifikasi maka komponen yang ada pada index nomor 5 berubah menjadi bernomor index 6. Ketika akan mencari nomor index 5 secara otomatis akan terhapus, dan data index nomor 5 tidak akan ditemukan.

b. Duplikasi data dengan mengubah nama dan nip dosen ke-3.
Dengan perintah(duplicate <fact-index> <slot-duplicate>) kita dapat menduplikasi data dari index tertentu dan memodifikasi jika ada data yang tidak akan sama. Contoh pada gambar dibawah ini saya akan menduplikasi fakta dari index 3 dan membedakan nama dan nip.


c. Menghapus dari working memori dosen pertama.
Perintah untuk menghapus (retract <fact-index>)






Untuk lebih jelasnya dibawah ini adalah kumpulan kode yang telah kita buat untuk perintah sederhana contoh diatas.

      CLIPS (6.30 3/17/15)  
 CLIPS> (deftemplate dosen  
 (slot nama)  
 (slot nip)  
 (slot kepakaran)  
 (slot fakultas)  
 (slot departemen))  
 CLIPS> (assert (dosen (nama "Muchamad")  
 (nip G64144033)  
 (kepakaran Jaringan)  
 (fakultas Ilmu Komputer)  
 (departemen MIPA)  
 ))  
 [TMPLTDEF2] The single field slot fakultas can only contain a single field value.  
 CLIPS> (assert (dosen (nama "Muchamad")  
 (nip G64144033)  
 (kepakaran Jaringan)  
 (fakultas Komputer)  
 (departemen MIPA)  
 ))  
 ==> f-1   (dosen (nama "Muchamad") (nip G64144033) (kepakaran Jaringan) (fakultas Komputer) (departemen MIPA))  
 <Fact-1>  
 CLIPS> (assert (dosen (nama "Aang")  
 (nip G64144034)  
 (kepakaran Pencangkokan)  
 (fakultas BIOLOGI)  
 (departemen MIPA1)  
 ))  
 ==> f-2   (dosen (nama "Aang") (nip G64144034) (kepakaran Pencangkokan) (fakultas BIOLOGI) (departemen MIPA1))  
 <Fact-2>  
 CLIPS> (assert (dosen (nama "Sopian")  
 (nip G64144035)  
 (kepakaran Gravitasi)  
 (fakultas FISIKA)  
 (departemen MIPA2)  
 ))  
 ==> f-3   (dosen (nama "Sopian") (nip G64144035) (kepakaran Gravitasi) (fakultas FISIKA) (departemen MIPA2))  
 <Fact-3>  
 CLIPS> (assert (dosen (nama "MuchamadAangSopian")  
 (nip G64144036)  
 (kepakaran PerubahanZat)  
 (fakultas KIMIA)  
 (departemen MIPA3)  
 ))  
 ==> f-4   (dosen (nama "MuchamadAangSopian") (nip G64144036) (kepakaran PerubahanZat) (fakultas KIMIA) (departemen MIPA3))  
 <Fact-4>  
 CLIPS> (assert (dosen (nama "TheLegendOfAang")  
 (nip G64144037)  
 (kepakaran NILAJUMBO)  
 (fakultas PERIKANAN)  
 (departemen MIPA4)  
 ))  
 ==> f-5   (dosen (nama "TheLegendOfAang") (nip G64144037) (kepakaran NILAJUMBO) (fakultas PERIKANAN) (departemen MIPA4))  
 <Fact-5>  
 CLIPS> clc  
 clc  
 CLIPS> (modify 5 (fakultas BUDIDAYAPERIKANAN))  
 <== f-5   (dosen (nama "TheLegendOfAang") (nip G64144037) (kepakaran NILAJUMBO) (fakultas PERIKANAN) (departemen MIPA4))  
 ==> f-6   (dosen (nama "TheLegendOfAang") (nip G64144037) (kepakaran NILAJUMBO) (fakultas BUDIDAYAPERIKANAN) (departemen MIPA4))  
 <Fact-6>  
 CLIPS> (modify 5 (departemen PEERIKANANdanKELAUTAN))  
 [PRNTUTIL1] Unable to find fact f-5.  
 FALSE  
 CLIPS> (modify 6 (departemen PEERIKANANdanKELAUTAN))  
 <== f-6   (dosen (nama "TheLegendOfAang") (nip G64144037) (kepakaran NILAJUMBO) (fakultas BUDIDAYAPERIKANAN) (departemen MIPA4))  
 ==> f-7   (dosen (nama "TheLegendOfAang") (nip G64144037) (kepakaran NILAJUMBO) (fakultas BUDIDAYAPERIKANAN) (departemen PEERIKANANdanKELAUTAN))  
 <Fact-7>  
 CLIPS> (duplicate 3 (nama AangDuplicated)(nip G64144033Duplicated))  
 ==> f-8   (dosen (nama AangDuplicated) (nip G64144033Duplicated) (kepakaran Gravitasi) (fakultas FISIKA) (departemen MIPA2))  
 <Fact-8>  
 CLIPS> (retract 1)  
 <== f-1   (dosen (nama "Muchamad") (nip G64144033) (kepakaran Jaringan) (fakultas Komputer) (departemen MIPA))  
 CLIPS>   

Previous
Next Post »