Selasa, 22 Desember 2009
Sabtu, 19 Desember 2009
HP Sahabat Rumah in Prolog (Updated)
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
Senin, 14 Desember 2009
HP Sahabat Rumah in Prolog
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
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
: )
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
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..
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
Sebagai alternatif, kita bisa menggunakan binary predicate. Yaitu menuliskan predikat diantara dua argumen tanpa tanda kurung.
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.
Cara postfix,argumen dituliskan setelah predikat.
Notasi operator juga dapat digunakan untuk aturan bantuan. Contohnya sebagai berikut.
Bisa dituliskan seperti di bawah ini.
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.
Sabtu, 31 Oktober 2009
Diculik Gara-gara 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 !!
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
Rabu, 21 Oktober 2009
Expert system and Rule-based Expert System
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 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
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.
- Setelah anda mengeksekusi aplikasi prolog, klik file pada menubar dan klik new (seperti pada gambar.
- Setelah itu akan muncul dialog box penyimpanan data dengan nama file apa. Tulis saja terserah.
- Kemudian akan muncul notepad. Disanalah tempat kita memasukkan datanya.
- Data dapat ditulis seperti gambar dibawah ini.
- Setelah menulis data seperti contoh di bawah, klik file lalu save.
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.