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
- 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:

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 umumFaktor Kepastian (Certainty Factor)
Tahapan Representasi Data Kualitatif
Tahapan dalam merepresentasikan data-data kualitatif :- kemampuan untuk mengekspresikan derajat keyakinan sesuai dengan metode yang sudah dibahas sebelumnya.
- kemampuan untuk menempatkan dan mengkombinasikan derajat keyakinan tersebut dalam sistem pakar.
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
kata‐kata 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