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).