Senin, 02 Januari 2017

Kecerdasan 9-10-11-12



LOGIKA FIRST ORDER
First order logic adalah sebuah bahasa formal yang digunakan di ilmu matematika, philosophy, bahasa dan ilmu computer. Disebut juga kalkulus predikat, merupakan logika yang digunakan untuk merepresentasikan masalah yang tidak dapat direpresentasikan dengan menggunakan proposisi. Logika predikat dapat memberikan representasi fakat-fakta sebagai suatu pernyataan yang mapan (well form). Kalkulus predikat bisa menganalisakan kalimat-kalimat ke dalam subjek dan argumen dalam berbagai cara yang berbeda-beda, yang pada akhirnya kalkulus predikat bisa digunakan untuk memecahkan problem of multiple generality (masalah dalam berbagai keadaan umum) yang telah membingungkan sebagian besar ahli-ahli logika abad pertengahan. Dengan menggunakan logika predikat ini, untuk pertama kalinya, para ahli-ahli logika bisa memberikan quantifier yang cukup umum untuk merepresentasikan semua argumen yang terdapat pada natural language.

Pemisalan 1:
Semua gajah punya belalai. Bona seekor gajah. Dengan Demikian, Bona punyabelalai
Tanpa perlu dibuktikanvaliditasnya, argument tersebut valid karena Conclusi mengikutiPremis-premisnya.

Pemisalan2:
Semua siswa pasti pandai. Adi seorang siswa. Dengan demikian, Adi pastipandai.
Secara nalar bisadilihat bahwa argument tersebut mempunyai validitas yang kuat. Tapi ketikadibuktikan dengan Logika Proposional, argument tersebut tidak bisadiselesaikan. Dibuktikan dengan logika proposional:
p : Semua mahasiswa pasti pandai.(Premis 1)
q : Kinoy seorang mahasiswa.(Premis 2)
r : Dengan demikian, Kinoy pastipandai. (Conclusi)

Dibuat dalam formuladengan operator AND menjadi . Formula tersebut tidak ada dalam hukum-hukum logikaproposisi yang dapat digunakan untuk mendukung validitas argument tersebut,karena tidak ada yang bisa digunakan untuk menghubungkan ketiga pernyataandiatas. Dan tidak mungkin juga suatu kesimpulan yang berbeda dihasilkan daripremis yang berbeda.
Pemisalan3:
Setiap manusia pasti mati. Karena Sayuti adalah manusia, maka dia pastimati.
Secara intuisi kalimattersebut bernilai Benar. Berdasarkan logika proposisi kalimat tersebut dapat disimbolkan sebagai:
p : Setiap manusia pasti mati
q : Sayuti adalah manusia
r : Sayuti pasti mati

Berdasarkan kerangka berfikir Logika Proposisi bukanlah konsekuensi Logis dari pdan q. Pernyataan ‘Setiap manusia pasti mati’ mengandungpernyataan Himpunan, yaitu Himpunan ‘manusia’, dimana individu yang merupakanbagian dari himpunan manusia jumlahnya tidak terhingga. Sedangkan pernyataan ‘Sayuti adalah manusia’ secara implisitmenyatakan anggota dari himpunan ‘manusia’/ universal of discourse.
Struktur sepertidiatas tidak dikenali oleh Logika Proposisi, karena apabila ingin membuktikankebenaran dari pernyataan ‘Setiap manusiapasti masti’ maka harus dicari nilai kebenaran dari seluruh elemen himpunanmanusia yang jumlahnya tak terhingga. Ini tidak mungkin dilakukan.

Untuk mengatasipermasalahan diatas diperlukan kerangka berfikir lain selain Logika Proposisiyaitu Logika First-Order (Kalkulus Predikat). Maka dapat didefinisikan bahwa LogikaFirs-Order adalah perluasan dari konsep Logika Proposisi untuk mengatasipermasalahan yang tidak dapat dipecahkan melalui kerangka berfikir LogikaProposisi dengan penambahan 3 komponen logika yaitu: Term (suku), Predicate,dan Quantifier.

 Dasar Logika First-Order
Logika First-Orderdigunakan untuk merepresentasikan hal-hal yang tidak dapat  direpresentasikan menggunakan LogikaProposisi. Operator-operator yang digunakan pada Logika First-Order adalah
SIMBOL
ARTI
BENTUK
Implies / Maka / Implikasi
jika … maka …
Not / Tidak / Negasi
tidak …
And / Dan / Konjungsi
… dan …
Or / Atau / Disjungsi
… atau …
Universal Quantifier
Untuk setiap / seluruh
Existensial Quantifier
Terdapat / ada
x
Term
-

Term / Suku
Term adalah parametersuatu fungsi bisa berupa konstanta, variabel, dan nilai suatu fungsi. Bentukterm adalah:
P (x).
Dimana P adalahPredikat (ditulis dengan huruf besar) dan x adalah variabel (ditulisdengan huruf kecil). P(x) dapat disebut sebagai nilai darifungsi proposisi P pada x. Ketika nilai variabel x telah ditetapkan maka barulah P(x)memiliki nilai kebenaran.


Persoalan Logika First-Order dalam AI
Logika First-Order digunakan dalam ilmu IntelejensiBuatan sebagai Representasi Pengetahuan. Persolan yang ada memiliki pernyataanlebih kompleks lagi tapi dapat diselesaikan dengan Pelacakan Terbalik(Backward)

Contoh:
      Diberikanpernyataan sebagai berikut:
1.     Andi adalah seorang mahasiswa
2.     Andi masuk jurusan Informatika
3.     Setiap mahasiswa Informatikapasti mahasiswa Teknik
4.     Kalkulus adalah matakuliah yangsulit
5.     Setiap mahasiswa teknik pastiakan suka kalkulus atau akan membencinya
6.     Setiap mahasiswa pasti akansuka terhadap suatu matakuliah
7.     Mahasiswa yang tidak pernahhadir pada kuliah matakuliah sulit, maka mereka pasti tidak suka terhadapmatakuliah tersebut
8.     Andi tidak pernah hadir kuliahmatakuliah kalkulus.
Buktikan Apakah Andi suka matakuliah kalkulus?

Jawab:
Ubah pernyataan menjadi bentuk formula:
1.     Mahasiswa(Andi)
2.     Informatika(Andi)
3.     x: Informatika(x)Teknik(x)
4.     sulit(kalkulus)
5.     x: Teknik(x)suka(x, kalkulus)  benci(x, kalkulus)
6.     x: y: suka(x,y)
7.     x: y: mahasiswa(x)sulit(y)hadir(x,y) suka(x,y)
8.     hadir(Andi,kalkulus)
Pernyataan Apakah Andi suka matakuliah kalkulus = suka(Andi,kalkulus)


ARGUMEN PADA LOGIKA PREDIKAT
Validitas sebuah argumen dapat dibuktikan dengan contoh yang mirip dengan contoh 1. perhatikan contoh argumen berikut:
Contoh 2:
1. Semua mahasiswa pasti pandai
2. Badu seorang mahasiswa
3. Dengan demikian, Badu pandai

Secara nalar, kebanyakkan orang akan menilai bahwa argumen di atas mempunyai validitas yang kuat. Akan tetapi, saat validitas tersebut ingin dibuktikan dengan logika proposisional, ternyata tidak bisa diselesaikan. Pembuktiannya dapat dilakukan dengan mengikuti prosedur logika proposisional dengan menentukan terlebih dahulu proposisi-proposisinya :
A = Semua mahasiswa pasti pandai
B = Badu seorang mahasiswa
C = Badu pasti pandai
Selanjutnya akan menjadi seperti berikut :

A
B
_____
:. C

Dalam ekspresi logika : (A ˄ B)=>C

Dalam bentuk ekspresi logika diatas, tidak ada hukum-hukum logika proposisional yang dapat digunakan  untuk membuktikan validitas argumen tersebut karena tidak ada yang mampu menghubungkan antara ketiga proposisi yang digunakan diatas. Atau tidak mungkin suatu kesimpulan yang berbeda dapat  dihasilkan dari premis-premis yang berbeda. Dengan kata lain, tidak mungkin suatu kesimpulan berupa C dapat dihasilkan dari premis A dan premis B.
Jika argumen diatas masih ingin dibuktikan dengan logika proposisional, maka kalimatnya harus diperbaiki. Misal seperti berikut:

Contoh 3:
1.       Jika Badu seorang mahasiswa, maka ia pasti pandai
2.       Badu seorang mahasiswa
3.       Dengan demikian, ia pasti pandai

Jika diubah dalam bentuk ekspresi logika :
1.       B=>C     premis 1
2.       B             premis 2
3.       C             kesimpulan

Atau dapat juga ditulis : [(B=>C) ˄ B] => C

Dalam logika proposisional, ekspresi logika diatas sudah benar karena kesimpulan diambil dari premispremis. Persoalan yang terjadi adalah pernyataan tersebut tidak sepenuhnya mampu menangkap ide pada argumen yang pertama yaitu “Semua mahasiswa pandai”. Ide pada pernyataan tersebut tidak tertangkap pada argumen kedua karena hanya mampu menunjuk seorang mahasiswa yaitu Badu, bukan semua mahasiswa. Persoalan lain juga terjadi, yakni kesulitan menentukan objek. Misalnya orang yang dimaksudkan jika diganti dengan kata ganti orang. Perhatikan pernyataan-pernyataan pada contoh argumen berikut:

Contoh 4:
1.       Jika Badu seorang mahasiswa, maka ia pasti pandai
2.       Dewi seorang mahasiswa
3.       Dengan demikian, ia pasti pandai




  1. PENALARAN
Penalaran adalah proses berpikir yang bertolak dari pengamatan indera (pengamatan empirik) yang menghasilkan sejumlah konsep dan pengertian. Berdasarkan pengamatan yang sejenis juga akan terbentuk proposisi – proposisi yang sejenis, berdasarkan sejumlah proposisi yang diketahui atau dianggap benar, orang menyimpulkan sebuah proposisi baru yang sebelumnya tidak diketahui. Proses inilah yang disebut menalar. Dalam penalaran, proposisi yang dijadikan dasar penyimpulan disebut dengan premis (antesedens) dan hasil kesimpulannya disebut dengan konklusi (consequence).
Macam-macam Penalaran, Penalaran ada dua jenis yaitu :

 Pengertian Teorema Bayes
Dalam teori probabilitas dan statistika, teorema Bayes adalah sebuah teorema dengan dua penafsiran berbeda. Dalam penafsiran Bayes, teorema ini menyatakan seberapa jauh derajat kepercayaan subjektif harus berubah secara rasional ketika ada petunjuk baru. Dalam penafsiran frekuentis teorema ini menjelaskan representasi invers probabilitas dua kejadian. Teorema ini merupakan dasar dari statistika Bayes dan memiliki penerapan dalam sains, rekayasa, ilmu ekonomi (terutama ilmu ekonomi mikro), teori permainan, kedokteran dan hukum. Penerapan teorema Bayes untuk memperbarui kepercayaan dinamakan inferens Bayes.
Misalkan kawan Anda bercerita dia bercakap-cakap akrab dengan seseorang lain di atas kereta api. Tanpa informasi tambahan, peluang dia bercakap-cakap dengan perempuan adalah 50%. Sekarang misalkan kawan Anda menyebut bahwa orang lain di atas kereta api itu berambut panjang. Dari keterangan baru ini tampaknya lebih bolehjadi kawan Anda bercakap-cakap dengan perempuan, karena orang berambut panjang biasanya wanita. Teorema Bayes dapat digunakan untuk menghitung besarnya peluang bahwa kawan Anda berbicara dengan seorang wanita, bila diketahui berapa peluang seorang wanita berambut panjang.
Misalkan:
·         W adalah kejadian percakapan dilakukan dengan seorang wanita.
·         L adalah kejadian percakapan dilakukan dengan seorang berambut panjang
·         M adalah kejadian percakapan dilakukan dengan seorang pria
Kita dapat berasumsi bahwa wanita adalah setengah dari populasi. Artinya peluang kawan Anda berbicara dengan wanita,
P(W) = 0,5
Misalkan juga bahwa diketahui 75 persen wanita berambut panjang. Ini berarti bila kita mengetahui bahwa seseorang adalah wanita, peluangnya berambut panjang adalah 0,75. Kita melambangkannya sebagai:
P(L|W) = 0,75
Sebagai keterangan tambahan kita juga mengetahui bahwa peluang seorang pria berambut panjang adalah 0,3. Dengan kata lain:
P(L|M) = 0,3
Di sini kita mengasumsikan bahwa seseorang itu adalah pria atau wanita, atau P(M) = 1 - P(W) = 0,5. Dengan kata lain M adalah kejadian komplemen dari W.
Tujuan kita adalah menghitung peluang seseorang itu adalah wanita bila diketahui dia berambut panjang, atau dalam notasi yang kita gunakan, P(W|L). Menggunakan teorema Bayes, kita mendapatkan:
P(W|L) = \frac{P(L|W) P(W)}{P(L|W)P(W) + P(L|M)P(M)}
 
 
Di sini kita menggunakan aturan peluang total. Dengan memasukkan nilai-nilai peluang yang diketahui ke dalam rumus di atas, kita mendapatkan peluang seseorang itu wanita bila diketahui dia berambut panjang adalah 0,714. Angka ini sesuai dengan intuisi awal kita, bahwa peluang kawan kita itu bercakap-cakap dengan wanita meningkat.
Dari contoh di atas kita bisa merumuskan teorema Bayes secara umum

 

Faktor Kepastian (Certainty Factor)

Faktor kepastian merupakan cara dari penggabungan kepercayaan (belief) dan ketidapercayaan (unbelief) dalam bilangan yang tunggal. Dalam certainty theory, data-data kualitatif direpresentasikan sebagai derajat keyakinan (degree of belief).

Tahapan Representasi Data Kualitatif

Tahapan dalam merepresentasikan data-data kualitatif :
  1. kemampuan untuk mengekspresikan derajat keyakinan sesuai dengan metode yang sudah dibahas sebelumnya.
  2. kemampuan untuk menempatkan dan mengkombinasikan derajat keyakinan tersebut dalam sistem pakar.
Dalam mengekspresikan derajat keyakinan digunakan suatu nilai yang disebut certainy factor (CF) untuk mengasumsikan derajat keyakinan seorang pakar terhadap suatu data.

Teori Dempster-Shafer

Dempster-Shafer

Teori Dempster-Shafer adalah suatu teori matematika untuk pembuktian berdasarkan belief functions and plausible reasoning (fungsi kepercayaan dan pemikiran yang masuk akal), yang digunakan untuk mengkombinasikan potongan informasi yang terpisah (bukti) untuk mengkalkulasi kemungkinan dari suatu peristiwa. Teori ini dikembangkan oleh Arthur P. Dempster dan Glenn Shafer.


DASAR-DASAR PROLOG DAN STRUKTUR PROLOG

Prolog adalah bahasa pemograman logika,di sebut juga sebagai bahasa non-procedural. Bahasa pemrograman Prolog di ambil dari bahasa prancis yaitu programmation en logiquie (pemrograman logika).bahasa ini di buat oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang pernyataan logika alih-alih rangkaian perintah untuk di jalankan komputer. Prolog popular di Eropa untuk aplikasi Artificial intelligence. Prolog didasarkan pada klausa-klausa Horn (Horn clauses), yang merupakan himpunan bagian dari sistem formal yang dinamakan logika predikat (predicate logic). Logika predikat menyederhanakan cara agar jelas bagaimana berpikir akan dilakukan. Prolog menggunakan variasi sintak logika predikat yang telah disederhanakan dengan demikian sintaknya mudah dimengerti dan sangat mirip dengan bahasa natural.

Prolog mempunyai mesin inferensi (infrence engine) yang merupakan suatu proses berpikir logis mengenai informasi. Mesin inferensi mempunyai pencocok pola (pattern matcher) yang akan mengambil informasi yang telah disimpan (diketahui) dan kemudian mencocokkan jawaban atas pertanyaan. Satu feature penting dari Prolog adalah bahwa, sehubungan mencari jawaban logis atas pertanyaan yang diajukan, ia dapat berhubungan dengan banyak alternatif dan mencari semua kemungkinan dari pada hanya satu solusi. Logika predikat dibangun agar mudah menerjemahkan ide-ide berbasis logika menjadi bentuk tertulis. Prolog mengambil keunggulan dari sintak ini untuk membangun suatu bahasa pemrograman yang berbasis logika. Dalam logika predikat, pertama kali harus membuang semua kata-kata yang tidak dibutuhkan dari suatu kalimat. Kemudian mentransformasi kalimat tersebut dengan mencari relasi terlebih dahulu, kemudian setelah itu melakukan pengelompokkan object. Object kemudian menjadi argumen dari relasi atas object tersebut Kalimat : Fakta dan Aturan.


         1.     DASAR-DASAR PROLOG

Fakta dan Relasi
            Fakta Adalah suatu unit yang selalu bernilai benar,fakta ini merupakan kumpulan data-data objek. Suatu fakta dibedakan dalam 2 jenis, yaitu fakta yang menunjukan relasi dan fakta yang menunjukan milik/sifat, penulisan suatu fakta selalu di akhir dengan (.)
Contoh :
Fakta
Prolog
Slamet adalah ayah Amin
ayah (slamet, amin).
Anita adalah seorang wanita
wanita (anita).
Angga suka renang dan tenis
suka(angga,renang).dan suka(angga,tenis).
Jeruk berwarna jingga
jngga(jeruk).


Aturan (“Rules”)
            Aturan adalah suatu pernyataan yang menunjukan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan. Sebuah aturan dinyatakan sebagai suatu kalimat bersyarat. Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau disimbolkan dengan “:-“.
Contoh :
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 : 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 (“Query”)
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 “.”.
Contoh :
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).




 
     2.     STRUKTUR PROGRAM PROLOG

Dalam struktur program prolog terdapat 4 macam di antara nya adalah Domain,Predicate,Variable, dan goal.

Domain

                        Domain berfungsi untuk menyatakan jenis suatu variabel seperti hal nya tipe data dalam bahasa prosedural (Pascal,C) . beberapa domain standar dalam prolog diantara nya char,integer,real,string,symbol. Contoh :
namaBunga = symbol
mataKuliah = string
nilai = integer

- Domains char dipakai pada predikat yang argumennya memiliki nilai berupa karakter tunggal,  yaitu abjad,  angka,  pungtuasi (?.!,<,...), dan operasi (+,,...). Penulisan argumen bertipe char dalam prolog diapit tanda ’...’. contoh : nilai (dita, ’A’).

- Domains string dipakai pada predikat yang argumennya memiliki nilai berupa karakter jamak yang dapat berupa kata maupun suatu tulisan (kumpulan katakata termasuk di dalamnya pungtuasi dan tanda operasi yang dapat dipisahkan spasi). Penulisan argumen bertipe string dalam prolog diapit tanda ”...”. contoh: hobi(rina,”Memasak”).

-Domains integer dipakai pada predikat yang argumennya memiliki nilai berupa bilangan bulat.
Contoh : nilai(tini,”Kalkulus”,75).

-Domains real dipakai pada predikat yang argumennya memiliki nilai berupa bilangan pecahan. Penulisan argumen bertipe real dalam prolog untuk nilai pecahan ditulis di belakang tanda titik (.). contoh: nilai(ivan, 8.75).

-Domains symbol dipakai pada predikat yang argumennya memiliki nilai berupa kumpulan karakter yang hanya terdiri dari huruf atau kata tanpa dipisahkan oleh spasi. Suatu kata  dapat disambungkan dengan kata lain dengan  tanda _ (underscore). contoh : lelaki(toni_setiawan).

Predicate

                        Dalam bahasa prolog kita perlu mendeklarasikan predikat yang ada pada bagian Predicates dan mendefinisikannya dalam bagian Clauses. Jika tidak, Prolog tidak akan mengenalnya. Namun untuk predikat standar seperti cursor, makewindow, readln, readchar dsb tidak perlu dideklarasikan.
Misalkan untuk domains seperti di atas dapat dibuat predicates
            Predicates
            menu(integer)
            data(NamaOrang, Alamat, Umur)
Deklarasi predicates dalam bagian predicates, harus disertai argumen jika memang berargumen. Nama predikat harus diawali dengan huruf, boleh besar atau kecil, selebihnya bisa huruf, angka, garis bawah, namun dianjurkan untuk dimulai dengan huruf kecil. Nama predikat tidak boleh mengandung spasi, tanda minus, asteris atau garis miring.

Variable
                   Variabel merupakan sebuah interpretasi yang digunakan untuk menemukan
nilai dari sebuah klausa. Variabel harus diawali dengan huruf besar. Contoh :

- suka(andi,X) .
            X = eskrim
- anakperempuan(lila, X).
            X = agus

Variabel yang memiliki beberapa value kamu dapat memunculkan nilai lain dengan
menekan tombol (;)

Deskripsi Rekrusif dari Sebuah Hubungan
Nah ini yang gak kalah penting, Rekursif ini digunakan untuk mencari seluruh dari
child dari sebuah tree. Intinya, misalkan terdapat sebuah keluarga terdapat kakek,
ayah, dan anak. Maka untuk mendapatkan seluruh keturunan dari kakek, yaitu kakek,
ayah, anak, anaknya anak dan seterusnya kita membutuhkan rekursif.




Representasinya seperti berkut
turunan(X,Y) :- antiturunan(Y,X).
turunan(X,Y) :- antiturunan(Y,Z), turunan(X,Z).

Goal

Goal dalam turbo Prolog ada 2 macam yakni :
a. Goal eksternal
b. Goal internal

            Goal eksternal diketikkan langsung pada bagian ‘goal’ : di jendela dialog pada kompiler terpadu Turbo Prolog. dengan cara ini kita hanya bisa menjalankan program dari lingkungan kompiler Turbo Prolog. Untuk dapat dijalankan di lingkungan DOS kita harus menggunakan goal internal yang di simpan pada bagian Goal. Sebenarnya goal inilah yang dicari dan dipanggil pada saat program dijalankan. Jika goal tercapai, program berhenti dengan berhasil, tapi jika sebaliknya, program berhenti dalam keadaan gagal.
Contoh :
            Predicates
                        tulis(string)
            Goal
                        tulis(X),
                        write(X).
            Clauses
                        tulis(“Bandung”).
                        tulis(“Yogya”).
                        tulis(“Jakarta”).
Program ini pertama akan memanggil goalnya, yang terdiri dari sub goal tulis dan write. Ini artinya, goal akan memanggil klausa tulis. Di bagian clauses, terdapat tulis yang berupa fakta. Prolog akan mencarinya dari paling atas, diperoleh tulis(“Bandung”). Ini berarti sub-goal tulis(X) berhasil dengan X terikat dengan nilai “Bandung”. Selanjutnya Prolog membuktikan sub-goal kedua yakni write(X). Ini pasti berhasil dan program berhenti. Jika goal diajukan dari luar (dari jendela Goal, goal internalnya dibuang), kemudian kita tuliskan : tulis(X) [enter], akan tertulis pada layar :
            X = Bandung
            X = Yogya
                 X = Jakarta



Contoh Program Menu Pada Prolog

menu:-nl,
     write('***MENU***'),nl,
     write('1. BIODATA'),nl,
     write('2. LUAS LINGKARAN '),nl,
     write('3. LUAS TABUNG'),nl,
     write('4. LUAS PERSEGI'),nl,
     write('5. EXIT'),nl,
     write('Masukkan Pilihan anda : '),read(A),nl,

(    A=1,nl,
      write('Masukkan Nama anda :'),read(B),nl,
      write('Masukkan Alamat anda :'),read(C),nl,
      write('Masukkan Tempat tanggal lahir anda :'),read(D),nl,
      write('Masukkan Keahlian anda :'),read(E),nl,
      write('*** OUTPUT ***'),nl,
      write('NAMA : '),write(B),nl,
      write('ALAMAT : '),write(C),nl,
      write('TTL :'),write(D),nl,
      write('KEAHLIAN'),write(E),nl,
      menu;
      A=2,nl,
      write('*** LUAS LINGKARAN ***'),nl,
      write('masukkan jari-jari : '),read(F),nl,
      L is 3.14*F*F,nl,
      write('***OUTPUT***'),nl,
      write('Jari-jari :'),write(F),nl,
      write('LUAS : '),write(L),nl,
      menu;
      A=3,nl,
      write('***LUAS TABUNG***'),nl,
      write('masukkan jari-jari :'),read(G),nl,
      write('masukkan tinggi :'),read(H),nl,
      L1 is (2*3.14*G*G)+(2*3.14*G*H),nl,
      write('***OUTPUT***'),nl,
      write('Jari-Jari : '),write(G),nl,
      write('Tinggi : '),write(H),nl,
      write('LUAS : '),write(L1),nl,
      menu;
      A=4,nl,
      write('***LUAS PERSEGI***'),nl,
      write('Masukkan sisi : '),read(I),nl,
      L2 is I*I,nl,
      write('***OUTPUT***'),nl,
      write('Sisi :'),write(I),nl,
      write('LUAS :'),write(L2),nl,
      menu;
      A=5,nl,
      write('-----EXIT-----'),nl).


Tidak ada komentar:

Posting Komentar