Kasus Sederhana pada Prolog

SIMPLE PROLOG CASE

-Hubungan Ketertarikan pria dan wanita

Kasus yang sangat sederhana dapat berupa kekerabatan antara wanita dan laki-laki, dimana biasanya wanita akan tertarik pada laki-laki dan begitu pula sebaliknya. Sedangkan jika wanita dengan wanita atau laki-laki dengan laki-laki maka akan terjadi penolakan. Sebut saja ada wanita yang bernama Santi dan Winnie, sedangkan untuk laki-laki ada Santoso dan Sadi. Akan diperlihatkan hubungan ketertarikan antara keempatnya. Hal ini dapat digambarkan sebagai berikut:

Pertama, bukalah aplikasi notepad untuk memudahkan penulisan logika yang akan kita pakai. Kemudian tuliskan sesuai dengan yang ada di bawah ini. Setelah selesai simpan dengan format “.pl” dengan nama apa saja sesuai keinginan.

Predikat:
Cewek(winnie).
Cewek(santi).
Cowok(santoso).
Cowok(sadi).

Aturan:
Suka(X,Y):-cewek(X),cowok(Y);cowok(X),cewek(Y).

~Maksud dari rule di atas adalah “X” akan suka dengan “Y” jika X adalah cowok dan Y adalah cewek begitu pula sebaliknya.

Saya memberi nama “test” kepada program prolog saya. Saya juga meletakkannya ke dalam sebuah folder untuk memudahkan pencarian.



Maka secara otomatis notepad telah terformat ke dalam format prolog. Klik dua kali dan program anda telah berjalan. Tampilan awalnya adalah sebagai berikut.





Sekarang akan dibuktikan apakah Winnie yang merupakan cewek, suka dengan Sadi yang merupakan cowok. Ketikkan “suka(winnie,sadi).” pada jendela prolog. Jangan lupa untuk memberikan tanda titik di setiap akhir baris.


Hasil akhir adalah pernyataan “Yes”.


Sekarang kita coba dengan memasukkan pasangan cowok-cowok atau cewek-cewek ke dalam program ini.



-Hubungan kekeluargaan

Semisal akan dibuat sebuah bahasa prolog sederhana yang menggambarkan sebuah hubungan kekeluargaan pada sebuah keluarga. Pohon keluarga jika digambarkan akan menjadi seperti berikut:






Dari data di atas dapat diketahui bahwa Raja adalah ayah dari Rachmi dan Raja, sekaligus menjadi kakek dari Budi, Razi, Irgi, dan Demi. Sedangkan Roni dan Rachmi adalah orang tua dari Budi dan Razi, dan, Fahmi dan Mega adalah orang tua dari Irgi dan Demi. Dari sini dapat dibuat bahasa prolog yang mencerminkan hubungan di antara kesemuannya. Coba ketikkan relasi dan rules berikut ke dalam notepad. Kemudian simpan dengan nama “test2” dan dengan format “.pl”.

Relasi:
Ayah(raja.rachmi).
Ayah(raja,fahmi).
Ayah(roni,budi).
Ayah(roni,razi).
Ayah(fahmi,irgi).
Ayah(fahmi,demi).
Ibu(rachmi,budi).
Ibu(rachmi,razi).
Ibu(mega, irgi).
Ibu(mega,demi).

Aturan:
·         Akan dibuat perintah untuk mengetahui hubungan antar dua anggota keluarga apakah mereka saudara kandung atau bukan. Caranya adalah dengan:

                                             saudara(X,Y):-ayahh(A,X),ayahh(A,Y),ibukk(I,X),ibukk(I,Y).

 





·         Akan dibuat perintah untuk mengetahui hubungan antar dua anggota keluarga apakah mereka sepupu atau bukan. Caranya adalah dengan:

                                             sepupu(X,Y):-ayahh(A,X),ibukk(I,Y),ayahh(K,A),ayahh(K,I).
                                             sepupu(X,Y):-ayahh(A,Y),ibukk(I,X),ayahh(L,A),ayahh(L,I).
 








·         Akan dibuat perintah untuk mengetahui hubungan antar dua anggota keluarga apakah mereka kakek dan cucu atau bukan. Caranya adalah dengan:

kakek(K,X):-ayahh(A,X),ayahh(K,A);ibukk(I,X),ayahh(K,I).
 






Jika dibuka melalui program prolog maka akan tampak seperti demikian:


Read Users' Comments (0)

An Introduction Prolog : Rule And Fact (English Version)

Prolog is a logic programming language associated with artificial intelligence and computational linguistics or on call as well as non-procedural language. Prolog is one of the Interpreter of the language program that translated the Line-code line by line. 

Its name is taken from French programmation en logique (programming logic). This language was created by Alain and Robert Kowalski Colmerauer around 1972 in an effort to create a programming language that allows the logic statement rather than a series of commands to run the computer.

In Prolog, the program logic is expressed in terms of relationships, the computing process begins by running a query based on this relationship. Prolog language based on the relationship to the words, clauses, phrases and contextual dynamically according to our everyday language. Prologue  very useful for database, symbolic mathematics, and language parsing applications. Prologue to check whether there is a false predicate caused by inadvertence. Prolog also has its own logic which is called "pure Prolog", as well as a number of features extralogical.

Prolog language is known as a language more simple and efficient compared to other programming languages, although for basic language, like Pascal.

In general, Visual Prolog program consists of four basic sections, namely section clauses are the most important section of the Visual Prolog program which puts tempay Facts and Rules, section PREDICATES is the place to declare a predicate, Domains section useful to give a meaningful name for the domain, and also is used to declare data structures that are not defined domain standards, and sections, GOAL is a body of a rule.

There are five applications that can be applied through the program prologue. The first is the Expert System, using a technique of making conclusions from the data obtained, as an expert.Examples in the diagnosis of disease. Second is the Natural Language Processing, which is a program created for users to communicate with computers in everyday human language, like translators. Third is the Robotics,   that is to process input data from sensors and make decisions to determine the movements should be done. Fourth is the Pattern Recognition, namely the ability to distinguish an object with another object. Often used in image processing. The latter is the Learning, which is prologue to learn from mistakes ever asked to do.





2. How to install prolog
a.First of all we need a prolog installer which it’s can be downloaded  at Elearning.
b.Then open the Zip file, you’ll see a installer w32pl547.exe
c.And click the installer, and follow the instruction , clik next.. 
d.Follow the next instruction
e.Then the installer begin to install, just wait about 5 minutes to install it completely

f.The progress installer will show up
g.Then if the process of installing is over, click finish and happy programming with prolog



3. FACTS (FACTS) AND RELATIONSHIP (RELATIONS)

Prolog consists of a collection of the data object that is a fact. Facts distinguished 2 kinds of facts which show the relation and the fact that the nature / property. In writing always ends with a dot.

Fact
Prologue
Tarno is the uncle Budi
uncle (tarno, mind).
Santi was a teacher
teachers (santi).
Bejo like mango and reading
like (bejo, mango). and the like (bejo, reading).
Red roses
Red (


RULES (RULES)

Rule is a statement showing how facts interact with one another to form a conclusion. A rule is expressed as a conditional sentence. A dinyakatakan rule as a conditional sentence. The word "if" is a word that is known prologue to declare a conditional sentence or symbolized by ":-".

For example there is a fact: Prasojo like durian. Then there is a rule that reads: Andrew likes something favored by Prasojo. From the information obtained from the known facts can be drawn conclusions (answers) from the rule that Andrew likes durian.

Facts and Rules
Prologue
F: Tino likes apples
A: Yuli prefer something like Tino
like (tino, apples).
like (yuli, Something): -   like (tino, Something).

Each rule consists of conclusion (head) and body. The body may consist of 1 or more statements or other rules, called a subgoal and is associated with logic "and". Rules have properties then / if conditional. "Head (head) is true if the body (body) is true."

An example is the family genealogy.




Facts and Rules
Prologue
F: Slamet was the father of Amin
F: Amin is a father of Badu
F: Slamet was the grandfather of Badu
A: Slamet is true grandfather Badu if Slamet is true Amin and Amin's father is the true father of Badu.
father (slamet, amen).
father (amen, Badu).
grandfather (slamet, Badu).

grandfather (slamet, amen): -
father (slamet, amen) and
father (amen, Badu).
F: Amin is a blood brother Anand
F: Amin has a father Slamet
F:   Anand has a father Slamet.
A: Amin is true siblings Sam, if Amin has Slamet and Anand's father also has a father Slamet.
saudara_kandung (amen, ananda).
father (slamet, amen).
father (slamet, ananda).

saudara_kandung (amen, ananda): -
father (slamet, amen) and
father (slamet, ananda).

QUESTION (queries)

After presenting the data in the form of facts and rules, we can then ask questions based on facts and rules. Begins writing the symbol "? -" And end the ".".

Question
Prolog and Answer Program
Is Tini like dolls?
? - Like (Tini, doll).
Yes ... .... (If in fact Tini like dolls)
No ... ... .. ... (if it does not fit the facts).
What is the preferred Tini?
? - Like (Tini, What).
What = doll
Who would like a doll?
? - Likes (Who, doll).
Who = Tini
From the family tree example above:
Who grandfather Budi?


Who grandchildren Slamet?
? - Grandfather (who, mind).
Who = slamet

? - Grandfather (slamet, grandson).
Grandchildren = cultivation;
Grandchildren = Badu

(If possible more than one answer to use the ";" at the end of each answer).


Predicate (PREDICATES)

Predicate is a symbolic name for the relation.

The terms of the writing of the name of the predicate:
o    Must start with lowercase letters and can be followed by letters, numbers or underscores.
o    Predicate name maximum length 250 characters.
o    Not allowed to use spaces, hyphens, asterisks and slashes.

Reference:
·          En.wikipedia.org
·          www.slideshare.net
·          jemeinulle.blogspot.com
·          xa.yimg.com

Read Users' Comments (0)

An Introduction Prolog : Rule And Fact

 Prolog adalah bahasa pemrograman logika yang berhubungan dengan kecerdasan buatan dan komputasi linguistik atau di sebut juga sebagai bahasa non-procedural. Prolog merupakan salah satu Intrepreter yaitu bahasa program yang menerjemahkan Line-code baris per baris.


Namanya diambil dari bahasa Perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.

Dalam Prolog, logika program dinyatakan dalam hal hubungan, proses komputasi dimulai dengan menjalankan query berdasar atas hubungan ini. Bahasa prolog berpedoman pada kepada hubungan kepada kata-kata, anak kalimat, frase dan konstektual secara dinamis sesuai bahasa kita sehari-hari. Prolog  sangat berguna untuk database, matematika simbolik, dan aplikasi parsing bahasa. Prolog dapat memeriksa apakah terdapat predikat palsu yang diakibatkan oleh ketidaksengajaan. Prolog juga memiliki logika tersendiri yang disebut "pure Prolog", serta sejumlah fitur extralogical.

Bahasa prolog dikenal sebagai bahasa yang lebih sederhana dan efisien dibandingkan bahasa pemrograman lainnya meskipun untuk bahasa basic, seperti Pascal.

Secara umum, program Visual Prolog terdiri dari empat section dasar, yaitu section CLAUSES yaitu section yang paling penting pada program Visual prolog yaitu tempay meletakkan Fakta dan Aturan, section PREDICATES yaitu tempat untuk mendeklarasikan predikat , section DOMAINS bermanfaat untuk memberikan nama yang berarti untuk domain, dan juga digunakan untuk mendeklarasikan struktur data yang tidak didefinisikan standar domain, dan section GOAL yaitu merupakan body sebuah aturan.

Terdapat lima aplikasi yang dapat diterapkan melalui program prolog. Yang pertama adalah Expert System, yaitu menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya seorang ahli. Contoh dalam mendiagnosa penyakit. Kedua adalah Natural Languange Processing, yaitu program dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia sehari-hari, layaknya penterjemah. Ketiga adalah Robotics,  yaitu mengolah data masukan yang berasal dari sensor dan mengambil keputusan untuk menentukan gerakan yang harus dilakukan. Keempat adalah Pattern Recognition, yaitu kemampuan untuk dapat membedakan suatu objek dengan objek yang lain. Sering digunakan pada Image Processing. Yang terakhir adalah Learning, yaitu prolog dapat belajar dari kesalahan yang pernah diminta untuk dilakukan.

FAKTA (FACTS) DAN RELASI (RELATIONS)

Prolog terdiri dari kumpulan data-data objek yang merupakan suatu fakta. Fakta dibedakan 2 macam yaitu fakta yang menunjukkan relasi dan fakta yang menunjukkan sifat/milik. Dalam penulisannya selalu diakhiri dengan tanda titik.

Fakta
Prolog
Tarno adalah paman Budi
paman (tarno, budi).
Santi adalah seorang guru
guru (santi).
Bejo suka mangga dan membaca
suka(bejo, mangga). dan suka(bejo, membaca).
Mawar berwarna merah
Merah(


ATURAN (RULES)

Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan. Sebuah aturan dinyatakan sebagai suatu kalimat bersyarat. Sebuah aturan dinyakatakan sebagai suatu kalimat bersyarat. Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau disimbolkan dengan “:-“.

Misalnya ada suatu fakta : Prasojo suka durian. Kemudian ada sebuah aturan yang berbunyi : Andri suka sesuatu yang disukai oleh Prasojo. Dari informasi yang diperoleh dari fakta yang diketahui dapat diambil kesimpulan (jawaban) dari aturan tersebut yaitu Andri suka durian.

Fakta dan Aturan
Prolog
F : Tino suka apel
A : Yuli suka sesuatu yang disukai Tino
suka(tino, apel).
suka(yuli,Sesuatu) :-  suka(tino,Sesuatu).

Setiap aturan terdiri dari kesimpulan(kepala) dan tubuh. Tubuh dapat terdiri dari 1 atau lebih pernyataan atau aturan yang lain, disebut subgoal dan dihubungkan dengan logika “and”. Aturan memiliki sifat then/if conditional. “Kepala(head) benar jika tubuh (body) benar”.

Contoh kasus adalah pada Silsilah keluarga.



Fakta dan Aturan
Prolog
F : Slamet adalah ayah dari Amin
F : Amin adalah ayah dari Badu
F : Slamet adalah kakek dari Badu
A : Slamet adalah benar kakek Badu jika Slamet adalah benar ayah Amin dan Amin adalah benar ayah Badu.
ayah(slamet,amin).
ayah(amin,badu).
kakek(slamet,badu).

kakek(slamet,amin) :-
ayah(slamet,amin) and
ayah(amin,badu).
F : Amin adalah saudara kandung Anang
F : Amin mempunyai ayah Slamet
F:  Anang mempunyai ayah Slamet.
A : Amin adalah benar saudara kandung Anang, jika Amin mempunyai ayah Slamet dan Anang juga mempunyai ayah Slamet.
saudara_kandung(amin,anang).
ayah(slamet,amin).
ayah(slamet,anang).

saudara_kandung(amin,anang) :-
ayah(slamet,amin) and
ayah(slamet,anang).

PERTANYAAN (QUERIES)

Setelah memberikan data-data berupa fakta dan aturan, selanjutnya kita dapat mengajukan pertanyaan berdasarkan fakta dan aturan yang ada. Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”.

Pertanyaan
Prolog dan Jawaban Program
Apakah Tini suka boneka ?
?- suka(tini,boneka).
Yes ……. (jika faktanya Tini suka boneka)
No……..…(jika tidak sesuai fakta).
Apakah yang disukai Tini ?
?- suka(tini,Apa).
Apa=boneka
Siapakah yang suka boneka ?
?- suka(Siapa,boneka).
Siapa=tini
Dari contoh silsilah keluarga di atas :
Siapakah kakek Budi ?


Siapakah cucu Slamet ?
?- kakek(Siapa,budi).
Siapa=slamet

?- kakek(slamet,Cucu).
Cucu=budi ;
Cucu=badu

(jika kemungkinan ada lebih dari satu jawaban gunakan tanda “;” pada akhir setiap jawaban).


PREDIKAT (PREDICATES)

Predikat adalah nama simbolik untuk relasi.

Syarat-syarat penulisan nama predikat :
o   Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf, bilangan atau garis bawah.
o   Panjang nama predikat maksimum 250 karakter.
o   Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang dan garis miring.

Referensi:
·         En.wikipedia.org
·         www.slideshare.net
·         jemeinulle.blogspot.com
·         xa.yimg.com

Read Users' Comments (0)