Selasa, 22 Desember 2009

Development of System Expert System




Sabtu, 19 Desember 2009

HP Sahabat Rumah in Prolog (Updated)

Sebelumnya, kami telah posting HP Sahabat Rumah dalam Simple Expert System Design. Namun, disini
kami tidak mengerjakan serumit seperti yang ada di dalam penjelasan kami sebelumnya.

Hehe.. : )

Kalau pada posting sebelumnya, kami hanya membuat pseudocode yang berfungsi hanya untuk mengecek peralatan listrik yang sedang menyala atau tidak. Tapi, kali ini kami menambahnya dengan beberapa fungsi baru yang menurut kami tidak jauh berbeda dengan konsep dasar kami pada posting yang berjudul HP Sahabat Rumah. Kami memberi beberapa tambahan didalamnya, yaitu diantaranya seperti mematikan maupun menyalakan lampu, buka-tutup pagar, dan lain sebagainya. Supaya lebih mudah, kita lihat saja pseudocodenya.


Rabu, 16 Desember 2009

Agna Project


Agna software adalah aplikasi dengan file ekstensi .jar. Digunakan untuk melakukan pemetaan. Berikut ini adalah contoh pengerjaan dengan agna software.

Senin, 14 Desember 2009

HP Sahabat Rumah in Prolog


Sebelumnya, kami telah posting HP Sahabat Rumah dalam Simple Expert System Design. Namun, disini kami tidak mengerjakan serumit seperti yang ada di dalam penjelasan kami sebelumnya.

Hehe.. : )

Disini kami hanya membuat program untuk mengecek peralatan listrik apa saja yang sedang menyala atau sedang mati. Dengan menginisialisasi terlebih dahulu peralatan listrik apa saja dan mana saja yang sedang menyala atau sedang mati. Sepertinya kat-katanya begitu rumit memang. Namun Pasti lebih mudah dimengerti bila kita membaca pseudocode berikut ini.

Selasa, 08 Desember 2009

Looping in Prolog

Kebanyakan bahasa pemrograman konvensional memiliki fasilitas perulangan yang memungkinkan instruksi yang akan dieksekusi berulang-ulang tetap baik beberapa kali atau sampai kondisi tertentu terpenuhi. Prolog sebenarnya tidak memiliki fasilitas perulangan. Namun, efek yang sama dapat diperoleh yang memungkinkan seorang urutan tujuan untuk dievaluasi berulang kali. Hal ini dapat dilakukan dalam berbagai cara, menggunakan backtracking, rekursi, built-in predikat, atau kombinasi dari semuanya. Mari kita bahas semuanya satu persatu setelah ini.

Don't Worry..

6.1 Looping a Fixed Number of Times

Tidak ada fasilitas looping tersedia dalam Prolog. Tetapi efek yang sama dapat diperoleh dengan menggunakan rekursi, seperti ditunjukkan dalam contoh program di bawah ini.

Rabu, 25 November 2009

Input and Output in Prolog


Sebenarnya, Prolog mempunyai fasilitas untuk mengaktifkan input dan output baik dari istilah atau karakter. Awalnya, input dan output selalu diasumsikan bahwa semua output ke layar monitor dan semua input adalah dari pengguna keyboard. Namun, bukan itu yang sebenarnya. Mari kita bahas semuanya di bawah ini..

: )

Outputting terms (Ketentuan Keluaran)

Pada intinya, ada tiga hal utama yang digunakan dalam masalah out[ut atau keluaran, yaitu kode write/1, nl/0, dan nl.
write/1 sudah pernah kami gunakan dalam tutorial sebelumya. write/1 digunakan apabila predikat memiliki argumen tunggal. Sebenarnya, ada satu lagi model penulisan dari write/1. Yaitu writeq/1. Tapi sampai saya posting ini, saya tidak menemukan perbedaan antara write/1 dengan writeq/1. Mohon maaf atas kekurangan ini.
nl/0 digunakan apabila tidak ada argumen.
nl artinya adalah new line. Fungsinya hampir sama dengan System.out.println(""); lebih mudahnya sama dengan tombol enter dalam keyboard qwerty.

Selasa, 24 November 2009

HP Sahabat Rumah

Latar Belakang

Terkadang manusia mengalami kesusahan ketika dia meninggalkan rumah, namun peralatan listrik yang ada di rumah ternyata lupa dimatikan atau lupa untuk dinyalakan. Dengan adanya teknologi ini, manusia bisa mengendalikan peralatan-peralatan listrik di rumah, walaupun mereka tidak sedang berada di rumah. Artinya, manusia bisa mengendalikan isi rumah dari jarak jauh. Manusia dapat mengendalikan sesuai keinginan mereka. Sehingga, manusia pun tidak perlu kerepotan dengan hal tersebut. Maka dari itu, keadaan rumah bisa menjadi aman dan terkendali.

Sabtu, 14 November 2009

Sesuatu..

Ada kalanya sewaktu bangun di pagi hari, tubuh rasanya malas-malasan, enggan bangun untuk mulai beraktivitas, inginnya bersembunyi di bawah selimut saja. Rasa malas semacam ini mungkin nyaman, namun tidak memberikan sesuatu bagi anda agar menjadi orang yang lebih baik.
Karenanya saya ingin berbagi sesuatu buat anda semua. Inilah 10 kumpulan kata-kata mutiara motivasi penggugah semangat dan pendorong ACTION. Sepuluh kumpulan kalimat mutiara dan motivasi ini sangat baik anda simpan dan anda baca secara rutin (bisa setiap bangun pagi, ketika siang hari, sore hari, atau sebelum tidur), sesuai makna dari masing-masing kalimat. Sebagai contoh, seperti kalimat nomor satu di bawah ini, sangat baik dibaca tiap bangun pagi.
Tanpa perlu berpanjang lebar lebar lagi, berikut 10 koleksi kata kata motivasi emas penggugah semangat dan pendorong ACTION untuk hidup menjadi lebih baik.

Jumat, 13 November 2009

Operator and Arithmetic

Dalam bahasa Prolog, kita sering menuliskan fakta yang sedikit banyak susah dimengerti oleh seseorang yang membacanya. Sesuai standar yang telah dipelajari sebelumunya. Predikat diikuti sejumlah argumen dalam tanda kurung. Misalnya saja :
hate(randy,apriyan).

Sebagai alternatif, kita bisa menggunakan binary predicate. Yaitu menuliskan predikat diantara dua argumen tanpa tanda kurung.
randy hate apriyan.

Untuk predikat yang hanya memiliki satu argumen, penulisannya dapat menggunakan unary predicate. Predikat dari suatu argumen dapat dituliskan sebelum argumen tanpa tanda kurung.

Cara prefix, argumen dituliskan sebelum predikat.
is_male randy.

Cara postfix,argumen dituliskan setelah predikat.
randy is_male.

Notasi operator juga dapat digunakan untuk aturan bantuan. Contohnya sebagai berikut.
hate(randy,X) :- is_male(X), have(X,Y), is_bird(Y).

Bisa dituliskan seperti di bawah ini.
randy hate X :- X is_male, X have Y, Y is_bird.

Setiap predikat yang ditetapkan dengan satu atau dua argumen dapat dikonversi ke operator dengan memasukkan tujuan menggunakan op predicate pada system prompt. Contoh penulisannya adalah sebagai berikut.
?-op (150, xfy, hate).

Sabtu, 31 Oktober 2009

Diculik Gara-gara Facebook

Kasus penculikan Rohmatul Latifah Asyhari, 16, oleh pria yang dikenal gadis itu lewat situs jejaring sosial facebook, memunculkan ketakutan pada sebagian remaja putri di Jombang. Mereka pun mulai mengurangi aktivitas ber-facebook.

Ananta, teman dekat Latifah, misalnya, mengaku sebenarnya juga senang bermain facebook tetapi sekarang sudah jauh dikurangi. “Selain karena agak takut, juga karena ada imbauan dari kepala sekolah untuk tidak main facebook,” kata gadis berusia 16 tahun ini, Minggu (25/10).


Rabu, 28 Oktober 2009

Sumpah Pemuda: Wahai Pemuda, Nyalakan Semangatmu !!

Sekitar 81 tahun lampau, ratusan pemuda dari beraneka latar belakang suku, dan daerah berkumpul di sebuah bangunan di Jalan Kramat Raya 106 Jakarta Pusat, sebuah rumah pondokan untuk pelajar dan mahasiswa milik Sie Kok Liong. Pada rapat penutup di gedung Indonesische Clubgebouw di Jalan Kramat Raya 106 itu, para pemuda yang hadir mengucapkan suatu Sumpah Setia yang dikemudian hari dikenal dengan Sumpah Pemuda.

Sumpah Setia itu merupakan hasil rumusan Kongres Pemuda Kedua yang diadakan oleh Perhimpunan Pelajar Pelajar Indonesia (PPPI), sebuah organisasi pemuda yang beranggota pelajar dari seluruh Indonesia. Kongres Pemuda Kedua itu konon merupakan respon dan reaksi para pemuda atas Kongres Pertama di tahun 1926.

Dalam catatan sejarah, disebutkan bahwa ormas pemuda memboikot kongres tahun 1926 karena ditumpangi kepentingan Zionis atau Freemasonry dan Belanda. Lokasi Konggres Pertama yang berada di loge Broederkaten di Vrijmetselarijweg dan peran Theosofische Vereeniging (TV) sebagai penyandang dana Kongres Pemuda I 1(926) itulah yang kemudian menjadikan para pemuda memboikot kongres (lihat: Jejak Sejarah Yahudi di Indonesia, Ridwan Saidi).

Selasa, 27 Oktober 2009

Hari Ini Kampanye Anti Facebook Dimulai

Tanggal 24 Oktober ini kampanye untuk tidak menggunakan Facebook dimulai. Beberapa hari terakhir memang gencar terdengar kampanye boikot Facebook mulai tanggal 24-26 Oktober. Ide ini muncul dari pemilik sebuah grup di Facebook yang bernama We want Facebook to close this group “qoran toilet paper”, bernama Kareem Sherif. Aksi ini dilakukan sebagai protes terhadap manajemen Facebook yang membiarkan sebuah grup bernama qoran toilet paper”_Egypt

Rabu, 21 Oktober 2009

Expert system and Rule-based Expert System

Expert Systems
Sebuah sistem pakar adalah perangkat lunak yang mencoba untuk memberikan jawaban atas suatu masalah, atau mengklarifikasi ketidakpastian di mana biasanya satu atau lebih pakar manusia perlu akan dikonsultasikan. Sistem pakar yang paling umum dalam masalah tertentu domain, dan adalah sebuah aplikasi tradisional dan / atau subfield kecerdasan buatan. Berbagai macam metode dapat digunakan untuk mensimulasikan kinerja Namun pakar umum bagi sebagian besar atau semua 1) penciptaan apa yang disebut "pengetahuan" yang menggunakan beberapa representasi pengetahuan formalisme untuk menangkap Subject Matter Expert's (UKM) pengetahuan dan 2) proses pengumpulan pengetahuan itu dari UKM dan kodifikasi itu sesuai dengan formalisme, yang disebut pengetahuan teknik. Sistem pakar mungkin atau mungkin tidak memiliki komponen belajar tetapi ketiga elemen umum adalah bahwa begitu sistem dikembangkan terbukti dengan menjadi ditempatkan dalam dunia nyata yang sama situasi pemecahan masalah UKM manusia, biasanya sebagai bantuan untuk pekerja manusia atau suplemen untuk beberapa sistem informasi.

Sebagai perdana penerapan komputasi dan kecerdasan buatan, topik sistem pakar telah banyak titik kontak dengan teori sistem umum, operasional penelitian, rekayasa ulang proses bisnis dan berbagai topik di bidang matematika terapan dan ilmu manajemen.
Expert systems topics

Chaining

Ada dua metode utama penalaran saat menggunakan aturan inferensi: backward chaining dan forward chaining.

Forward chaining dimulai dengan data yang tersedia dan menggunakan aturan inferensi untuk menyimpulkan lebih banyak data sampai tujuan yang diinginkan tercapai. Sebuah mesin inferensi menggunakan chaining maju pencarian aturan-aturan inferensi sampai menemukan satu di mana jika klausul diketahui benar. Kemudian menutup kemudian klausa dan menambahkan informasi ini untuk datanya. Akan terus melakukan hal ini sampai tujuan tercapai. Karena data yang tersedia menentukan aturan-aturan inferensi digunakan, metode ini juga disebut data driven.

Backward chaining dimulai dengan daftar sasaran dan bekerja ke belakang untuk melihat apakah ada data yang memungkinkan untuk menyimpulkan salah satu tujuan. Sebuah mesin inferensi menggunakan chaining mundur akan mencari aturan-aturan inferensi sampai menemukan satu yang memiliki kemudian klausul yang cocok dengan tujuan yang dikehendaki. Jika jika klausul aturan inferensi yang tidak diketahui benar, maka akan ditambahkan ke daftar tujuan. Misalnya, peraturan dasar yang berisi
Jika hijau maka Fritz Fritz adalah katak.
Jika Fritz adalah katak kemudian Fritz hops.

Misalkan tujuan adalah untuk menyimpulkan bahwa Fritz hops. Peraturan dasar akan digeledah dan aturan (2) akan dipilih karena kesimpulan (kemudian klausul) sesuai dengan tujuan. Tidak diketahui bahwa Fritz adalah katak, jadi ini "jika" pernyataan akan ditambahkan ke daftar tujuan. Basis aturan lagi dicari dan kali ini aturan (1) dipilih karena kemudian klausul sesuai dengan tujuan baru saja ditambahkan ke daftar. Kali ini, jika ayat (Fritz adalah hijau) dikenal benar dan tujuan yang melompat Fritz disimpulkan. Karena daftar tujuan menentukan aturan dipilih dan digunakan, metode ini disebut tujuan didorong.

Faktor kepastian

Satu keuntungan dari sistem pakar di atas metode tradisional pemrograman adalah bahwa mereka mengizinkan penggunaan "rahasia", juga dikenal sebagai faktor kepastian. Seorang manusia, ketika nalar, tidak selalu menyimpulkan sesuatu dengan 100% keyakinan: dia bisa usaha, "Kalau Fritz berwarna hijau, maka ia mungkin kodok" (setelah semua, dia mungkin seorang bunglon). Jenis penalaran dapat ditiru dengan menggunakan nilai numerik yang disebut rahasia. Misalnya, jika diketahui bahwa Fritz hijau, mungkin 0,85 disimpulkan dengan keyakinan bahwa ia adalah seekor katak, atau, jika diketahui bahwa ia adalah seekor katak, mungkin 0,95 disimpulkan dengan keyakinan bahwa dia hop. Angka-angka ini probabilitas dalam arti Bayesian, dalam arti bahwa mereka mengukur ketidakpastian.

Fact, Rules, Predicate, and Variable in Prolog

Prolog memiliki beberapa istilah yang disebut clause, fact, rules, predicate, dan variable. Semua bagian itu sangat penting dalam menjalankan program Prolog. Karena semuanya memiliki fungsi masing-masing yang tentunya sangat berguna untuk Logic Programming. Berikut ini akan dijelaskan satu persatu.

Fact and Rule (Fakta dan Aturan)

Program Prolog adalah program yang menggambarkan hubungan. Biasanya, hubungan-hubungan itu didefinisikan dengan menggunakan clause. Ada dua jenis klausa: Fakta dan aturan. Sebuah aturan adalah dalam bentuk

Head : - Body.

dan dibaca sebagai “Head is true if the body is true".


Clauses dengan tubuh kosong disebut fakta. Sebuah contoh fakta adalah:

sapi (randy).

yang setara dengan aturan:

sapi(randy): - true.

Jika predikat benar/0 adalah selalu benar.

Mengingat fakta di atas, kita dapat bertanya:

apakah randy sapi?

? - sapi (randy).
Yes.

apa diketahui tentang sapi?

? - sapi (X).
X = randy

Predicate (Predikat)

Dalam klausa prolog, terkadang juga ada suatu hal yang disebut predikat. Namun, tidak semua klausa memiliki predikat. Dibawah ini adalah contoh klausa berpredikat.

Jebakan(Apriyan, anaconda, jaring).

'jebakan' adalah predikat klausa, dan tiga istilah 'Apriyan', 'anaconda', dan 'jaring' adalah argumen klausa. Predikat 'jebakan' adalah dikatakan telah (atau mengambil) tiga argumen.

Variable (Variabel)

Sebuah variabel Prolog dapat mewakili banyak hal. Misalnya saja nomor, nama, struktur, sebuah array, sesuatu yang rumit yang dikenal sebagai alam semesta. Sebuah program Prolog bekerja dengan membatasi variabel-variabel sampai akhirnya mereka memiliki nilai-nilai tertentu, kemudian mengatakan apa yang nilai-nilai tersebut. Sebuah program yang sederhana mungkin akan

X adalah 3 +2.

dan ketika anda menjalankan itu, hasilnya akan

X = 5.
Yes.

Practical Exercise 2

(1) Type the following program into a file and load it into Prolog.


/* Animals Database */

animal(mammal,tiger,carnivore,stripes).

animal(mammal,hyena,carnivore,ugly).

animal(mammal,lion,carnivore,mane).

animal(mammal,zebra,herbivore,stripes).

animal(bird,eagle,carnivore,large).

animal(bird,sparrow,scavenger,small).

animal(reptile,snake,carnivore,long).

animal(reptile,lizard,scavenger,small).


Devise and test goals to find (a) all the mammals, (b) all the carnivores that are

mammals, (c) all the mammals with stripes, (d) whether there is a reptile that has a

mane.

(2) Type the following program into a file


/* Dating Agency Database */

person(bill,male).

person(george,male).

person(alfred,male).

person(carol,female).

person(margaret,female).

person(jane,female).


Extend the program with a rule that defines a predicate couple with two

arguments, the first being the name of a man and the second the name of a woman.

Load your revised program into Prolog and test it.

Jawaban Exercise 2 Menggunakan Prolog

1. Untuk menjawab pertanyaan no.1 dalam prolog, maka harus memasukkan data dulu ke dalam prolog.


animal(mammal,tiger,carnivore,stripes).

animal(mammal,hyena,carnivore,ugly).

animal(mammal,lion,carnivore,mane).

animal(mammal,zebra,herbivore,stripes).

animal(bird,eagle,carnivore,large).

animal(bird,sparrow,scavenger,small).

animal(reptile,snake,carnivore,long).

animal(reptile,lizard,scavenger,small).

(a) Tambahkan rule hewan apa saja yang merupakan mamalia.


mammal :- animal(mammal,Name,_,_),write(Name),nl,fail.

(b) Tambahkan rule untuk menuliskan daftar mamalia yang juga karnivora


mammal_carnivore :- animal(mammal,Name,carnivore,_),write(Name),nl,fail.

(c) Tambahkan rule untuk menuliskan mamalia dengan corak.


mammal_stripe:- animal(mammal,Name,_,stripes),write(Name),nl,fail.

(d) Tambahkan rule untuk menuliskan daftar reptile dengan mane.


reptile_mane :- animal(reptile,Name,_mane),write(Name),nl,fail.



Gambar input data yang dituliskan dalam prolog.


Gambar yang menunjukkan hasil dari logic programming dengan prolog pada no.1

2. Untuk menjawab pertanyaan no.2 dalam prolog, maka harus memasukkan data dulu ke dalam prolog.

/* Dating Agency Database */

person(bill,male).

person(george,male).

person(alfred,male).

person(carol,female).

person(margaret,female).

person(jane,female).

Kemudian untuk mencari kemungkinan pasangan antara pria dan wanita yang dapat terjadi, kita perlu menambahkan ini.

couple(X,Y) :- person(X,male),person(Y,female).


Gambar input data yang dituliskan dalam prolog.


Gambar yang menunjukkan hasil dari logic programming dengan prolog pada no.2

Rabu, 14 Oktober 2009

Prolog Dengan Dua Elemen

Assalamu'alaikum Wr. Wb.

Seperti yang telah kita ketahui, prolog adalah suatu aplikasi yang bekerja dengan sistem logika (logic programming). Untuk menjalankan program tersebut, tentu ada tatacaranya. Ada aturan-aturan untuk memasukkan data (input) maupun meminta keluaran (output). Setelah ini kita akan membahasnya bersama-sama.

Pertama-tama, pastikan program tersebut telah terisntall dengan sempurna di komputer anda. Kemudian jalankan program prolog tersebut dan akan muncul seperti gambar di bawah ini.
Kemudian, kita bisa mulai memasukkan data. Misalnya saja dengan contoh sebagai berikut.

Fakta

Prolog

Laptop Anggoro adalah Acer

laptop(anggoro,acer).

Laptop Rizal adalah Axioo

laptop(rizal,axioo).

Laptop Roodhin adalah Axioo

laptop(roodhin,axioo).

Laptop Apriyan adalah Toshiba

laptop(apriyan,toshiba).

Laptop Randy adalah Toshiba

laptop(randy,toshiba).

Garansi Axioo adalah 3 tahun

garansi(tiga_tahun,axioo).

Garansi Acer adalah 2 tahun

garansi(dua_tahun,acer).

Garansi Toshiba adalah 1 tahun

garansi(satu_tahun,toshiba).


Bahasa yang bisa di mengerti prolog adalah pada kolom kanan (kolom prolog). Sehingga kita harus menggunakan aturan-aturan seperti yang telah dituliskan tersebut. Nah, bagaimana cara memasukkannya ke dalam prolog? Simak langkah berikut.
  1. Setelah anda mengeksekusi aplikasi prolog, klik file pada menubar dan klik new (seperti pada gambar.
  2. Setelah itu akan muncul dialog box penyimpanan data dengan nama file apa. Tulis saja terserah.
  3. Kemudian akan muncul notepad. Disanalah tempat kita memasukkan datanya.
  4. Data dapat ditulis seperti gambar dibawah ini.
  5. Setelah menulis data seperti contoh di bawah, klik file lalu save.
Setelah melakukan input data, kita akan menuju program prolog dan menjalankan logic programming.
Buka lagi program prolog tadi dan klik file, consult, dan pilih file berekstensi *.pl yang telah anda buat tadi.
Kemudian tulis pertanyaan, misalnya saja siapa yang mempunyai laptop acer.

?- laptop(X,acer).

Jawaban dari pertanyaan ini adalah anggoro.

Kita pun bisa menggunakan pertanyaan yes/no question. Seperti apakah benar garansi laptop toshiba adalah satu tahun?

?- garansi(satu_tahun,acer).

dan jawaban yang muncul adalah yes.

Demikian, kurang lebihnya mohon maaf.
Wassalamu'alaikum Wr. Wb.