12 Nov 2018

Tugas VClass 4KB08 (Karawaci), 3KA07, 3KA08, 3KA20 Kuliah SBP

Untuk kuliah pekan ini (12-13 Nopember 2018), anda diminta untuk :
1. mencari sebuah program prolog di internet, minimal berisi 15 baris program
2. running program tsb di komputer anda
3. copy teks program dan teks hasil runningnya ke web saya di bagian komentar untuk tugas SBP Minggu ke-8 ini
4. tambahkan informasi mengenai fungsi dan tujuan dari program yang anda kirim tsb
5. kirim juga teks hasil kerja anda tsb melalui vclass ini, paling lambat tgl 18 Nop 2018 jam 23.59.
7. tugas ini dikerjakan per orang
8. program anda tidak boleh sama dengan program yang lain, baik di kelas anda maupun di kelas lain, karena itu anda harus melihat dulu apakah sudah ada program serupa dari teman anda di web saya tersebut

22 komentar:

Siti Rozanah mengatakan...

Contoh Program Prolog :

anak(X,Y):-bapak(X,Y).
anak(X,Y):-ibu(X,Y).

cucu(X,Z):-bapak(X,Y),anak(Y,Z).
kakek(Z,X):-anak(Y,Z),bapak(X,Y).
nenek(Z,X):-anak(Y,Z),ibu(X,Y).


bapak(hadi,samsudin).
bapak(hadi,hambali).
bapak(hadi,syafii).
bapak(samsudin,mansyur).
bapak(samsudin,arfan).
bapak(samsudin,mahmudin).
ibu(diyah,samsudin).
ibu(suwarni,mansyur).
ibu(suwarni,arfan).
ibu(suwarni,mahmudin).


Hasil Output :

1 ?- bapak(X,mansyur).
X = samsudin.

2 ?- bapak(X,samsudin).
X = hadi.

3 ?- ibu(Y,mansyur).
Y = suwarni.

4 ?- anak(samsudin,L).
L = mansyur ;
L = arfan ;
L = mahmudin .

5 ?- ibu(Y,samsudin).
Y = diyah.

6 ?- anak(hadi,O).
O = samsudin ;
O = hambali ;
O = syafii .

7 ?- kakek(X,mansyur).
false.

8 ?- kakek(mansyur,X).
X = hadi .

9 ?- nenek(mansyur,X).
X = diyah .

10 ?- cucu(X,hadi).
false.

11 ?- cucu(hadi,C).
C = mansyur ;
C = arfan ;
C = mahmudin .


Fungsi dan tujuan dari program ini yaitu untuk mengetahui silsilah keluarga yang saling berkaitan satu sama lain.

taruna nurwijaksana mengatakan...
Komentar ini telah dihapus oleh pengarang.
taruna nurwijaksana mengatakan...

lakilaki(ook).

lakilaki(taruna).

lakilaki(nur).

lakilaki(wijaksana).

perempuan(yati).

perempuan(ungu).

perempuan(uti).

orangtua(yati,taruna).

orangtua(yati,nur).

orangtua(yati,wijaksana).

orangtua(yati,ungu).

orangtua(yati,uti).

orangtua(ook,taruna).

orangtua(ook,nur).

orangtua(ook,wijaksana).

orangtua(ook,ungu).

orangtua(ook,uti).



ibu(X,Y):-orangtua(X,Y),perempuan(X).

ayah(X,Y):-orangtua(X,Y),lakilaki(X).



anak(X,Y):-orangtua(Y,X).

anaklaki(X,Y):-orangtua(Y,X),lakilaki(X).

anakperempuan(X,Y):-orangtua(Y,X),perempuan(X).



menikah(ook,yati).

menikah(yati,ook).



Output Program :

1. ?-ibu(X,Y)

X = yati,

Y = taruna

X = yati,

Y = nur

X = yati,

Y = wijaksana

X = yati,

Y = ungu

X = yati,

Y = uti

2. ?-ayah(X,Y)

X = ook,

Y = taruna

X = ook,

Y = nur

X = ook,

Y = wijaksana

X = ook,

Y = ungu

X = ook,

Y = uti

3. ?-anak(X,Y)

X = taruna,

Y = yati

X = nur,

Y = yati

X = wijaksana,

Y = yati

X = ungu,

Y = yati

X = uti,

Y = yati

X = taruna,

Y = ook

X = nur,

Y = ook

X = wijaksana,

Y = ook

X = ungu,

Y = ook

X = uti,

Y = ook

4. ?-anaklaki(X,Y)

X = taruna,

Y = yati

X = nur,

Y = yati

X = wijaksana,

Y = yati

X = taruna,

Y = ook

X = nur,

Y = ook

X = wijaksana,

Y = ook

5. ?-anakperempuan(X,Y)

X = ungu,

Y = yati

X = uti,

Y = yati

X = ungu,

Y = ook

X = uti,

Y = ook

6. ?- menikah(ook,yati)

true

7. ?-menikah(yati,ook)

true



fungsi dan tujuan dari program saya mendeskripsikan suatu silsilah keluarga secara sederhana yang saling terhubung antara orang tua, anak laki laki dan anak perempuan dengan menggunakan bahasa prolog

Najla Nabilah HR mengatakan...

Contoh Program Prolog Uji Kelulusan :
kuliah(adi,"logika").
kuliah(adi,"fisika").
kuliah(budi,"logika").
kuliah(cika,"fisika").
kuliah(cika,"logika").
kuliah(deni,"logika").
kuliah(eni,"logika").
nilai(adi,"logika",50).
nilai(adi,"fisika",45).
nilai(budi,"logika",80).
nilai(cika,"fisika",85).
nilai(cika,"logika",70).
nilai(deni,"logika",70).
nilai(eni,"logika",40).
lulus(X,Y) :‐kuliah(X,Y), nilai(X,Y,Z), Z>50.

Output :
?-kuliah(adi,Mk).
Mk = “logika”
Mk = “fisika”
?-kuliah(budi,Mk).
Mk = “logika”
?-kuliah(cika,Mk).
Mk = “fisika”
Mk = “logika”
?-nilai(adi,Mk,Nilai).
Mk = “logika”,
Nilai = 50
Mk = “fisika”,
Nilai = 45
?-nilai(eni,Mk,Nilai).
Mk = “logika”
Nilai = 40
?-nilai(deni,Mk,Nilai).
Mk = “logika”
Nilai = 70
?-nilai(cika,Mk,Nilai).
Mk = “fisika”
Nilai = 85
Mk = “logika”
Nilai = 70

Berdasarkan definisi fakta dan aturan yang diberikan diatas program tersebut, dapat diketahui bahwa fungsi dan tujuan dari program ini yaitu adalah mengetahui mahasiswa mana saja yang lulus beberapa matakuliah, beserta nilai yang didapatkan mahasiswa tersebut.

Ilham Afrinanda mengatakan...

Contoh Program Prolog Membuat Menu

menu:- nl,nl,
write(' ================'),nl,
write(' =====MENU====== '),nl,
write(' ================ '),nl,
write('1.Biodata'),nl,
write('2.Luas Segitiga'),nl,
write('3.Keluar'),nl,
write('================'),nl,
write('Pilihan [1..3] : '),read(Pil),nl,nl,

(
Pil=1,
write('Nama : '),read(X),
write('NPM : '),read(Y),
write('Kelas : '),read(Z),
nl,write('============'),nl,
write('nama : '),write(X),nl,
write('NPM : '),write(Y),nl,
write('Kelas : '),write(Z),nl,
nl,write('============'),nl,
menu;

Pil=2,
write('Alas : '),read(A),
write('Tinggi : '),read(T),
L is A*T/2,
write('Luas Segitiga : '),write(L),
nl,write('============'),nl,
menu;

Pil=3,
write('Terima Kasih'),nl,
menu
).

Output Program :

================
=====MENU======
================
1.Biodata
2.Luas Segitiga
3.Keluar
================
Pilihan [1..3] :
1


Nama :
ilham
NPM :
23115265
Kelas :
"4KB08"

============
nama : ilham
NPM : 23115265
Kelas : 4KB08

============


================
=====MENU======
================
1.Biodata
2.Luas Segitiga
3.Keluar
================
Pilihan [1..3] :
2


Alas :
10
Tinggi :
10
Luas Segitiga : 50
============


================
=====MENU======
================
1.Biodata
2.Luas Segitiga
3.Keluar
================
Pilihan [1..3] :
3


Terima Kasih


Fungsi dan tujuan dari program prolog menu diatas adalah kita dapat membuat program berupa menu dimana diidalamnya terdapat beberapa pilihan seperti Biodata dan Luas segitiga lalu kita dapat memasukan input pada pilihan tersebut

Alfathan Wardano Putra mengatakan...

Nama : Alfathan Wardano Putra
NPM : 20115498
Kelas: 4KB08

Program penghitungan total biaya pembelian suatu produk


beli:-nl,
write(' SELAMAT DATANG '),nl,nl,
write(' ==AWP CELL== '),nl,nl,
write( ' 1.IPHONE 4 '),nl,
write( ' 2.IPHONE 4S '),nl,
write( ' 3.IPHONE 5 '),nl,
write( ' 4.IPHONE 5S '),nl,
write( ' 5.IPHONE 6 '),nl,
write( ' 6.IPHONE 6 plus '),nl,
write( ' 7.IPHONE 7 '),nl,
write( ' 8.IPHONE 7 plus '),nl,
write( ' 9.IPHONE 8 '),nl,
write( ' 10.IPHONE 8 plus'),nl,
write( ' 11.IPHONE X '),nl,
write( ' 12.IPHONE XS '),nl,
write('---------------------'),nl,
write('pilih(1-12):'),read(P),
(
P=1,
write('=======IPHONE 4 RP. 1.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*1000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=2,
write('=======IPHONE 4S RP.2.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*2000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=3,
write('=======IPHONE 5 RP. 3.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*3000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=4,
write('=======IPHONE 5S RP. 3.500.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*4000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=5,
write('=======IPHONE 6 RP. 4.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*4000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=6,
write('=======IPHONE 6 PLUS RP. 4.500.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*4000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=7,
write('=======IPHONE 7 RP. 5.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*5000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=8,
write('=======IPHONE 7 PLUS RP. 6.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*6000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=9,
write('=======IPHONE 8 RP. 7.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*7000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=10,
write('=======IPHONE 8 PLUS RP. 8.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*8000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=11,
write('=======IPHONE X RP. 9.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*9000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;
P=12,
write('=======IPHONE XS RP. 10.000.000,-===='),nl,
write('Berapa banyak?'),read(B),
TB is B*10000000,
write('Total Bayar : Rp.'),write(TB),write(',-'),
beli;

write('Terimakasih')).


contoh outputnya :

SELAMAT DATANG

==AWP CELL==

1.IPHONE 4
2.IPHONE 4S
3.IPHONE 5
4.IPHONE 5S
5.IPHONE 6
6.IPHONE 6 plus
7.IPHONE 7
8.IPHONE 7 plus
9.IPHONE 8
10.IPHONE 8 plus
11.IPHONE X
12.IPHONE XS
---------------------
pilih(1-12):
5
=======IPHONE 6 RP. 4.000.000,-====
Berapa banyak?
2
Total Bayar : Rp.8000000,-

Derizon Saputra mengatakan...

Nama : Derizon Saputra
NPM : 27115579


Contoh program prolog tentang menu sarapan.

1. List program :

tugas1:-nl,
write('Selamat Datang!'),nl,nl,
write('|===MENU SARAPAN===|'),nl,
write('|1. BURGER |'),nl,
write('|2. SANDWICH |'),nl,
write('|3. OMLETTE |'),nl,
write('|4. EXIT |'),nl,nl,
write('|==================|'),nl,
write('Pilih (1/2/3/4): '),read(P),
(
P=1,
write('===== BURGER Rp. 15.000,- ===='),nl,nl,
write('Berapa Banyak? '),read(B),
TB is B*15000,
write('Total Bayar: Rp.'),write(TB),write(',-'),
tugas1;

P=2,
write('===== SANDWICH Rp.11.000,- ===='),nl,nl,
write('Berapa Banyak? '),read(B),
TB is B*11000,
write('Total Bayar: Rp.'),write(TB),write(',-'),
tugas1;

P=3,
write('===== OMLETTE Rp.7.000,- ===='),nl,nl,
write('Berapa Banyak? '),read(B),
TB is B*7000,
write('Total Bayar: Rp.'),write(TB),write(',-'),
tugas1;

P=4,
write('TERIMA KASIH')).

2. Hasil Running program :

Selamat Datang!

|===MENU SARAPAN===|
|1. BURGER |
|2. SANDWICH |
|3. OMLETTE |
|4. EXIT |

|==================|
Pilih (1/2/3/4):
1
===== BURGER Rp. 15.000,- ====

Berapa Banyak?
2
Total Bayar: Rp.30000,-
Selamat Datang!

|===MENU SARAPAN===|
|1. BURGER |
|2. SANDWICH |
|3. OMLETTE |
|4. EXIT |

|==================|
Pilih (1/2/3/4):
2
===== SANDWICH Rp.11.000,- ====

Berapa Banyak?
2
Total Bayar: Rp.22000,-
Selamat Datang!

|===MENU SARAPAN===|
|1. BURGER |
|2. SANDWICH |
|3. OMLETTE |
|4. EXIT |

|==================|
Pilih (1/2/3/4):
3
===== OMLETTE Rp.7.000,- ====

Berapa Banyak?
2
Total Bayar: Rp.14000,-
Selamat Datang!

|===MENU SARAPAN===|
|1. BURGER |
|2. SANDWICH |
|3. OMLETTE |
|4. EXIT |

|==================|
Pilih (1/2/3/4):
4
TERIMA KASIH

3. Penjelasan tentang fungsi dan tujuan program

Fungsi dari program prolog yang telah dibuat adalah untuk menampilkan sebuah menu pilihan sarapan yang dilengkapi dengan harga dan jumlah makanan yang diinginkan, harga dari makanan yang diinginkan akan otomatis di tampilkan oleh program yaitu hasil dari harga satuan makanan dikali dengan jumlah makanan yang diinginkan.

tujuan dari program ini adalah untuk mempermudah seseorang dalam membeli sarapan dan mempermudah seseorang untuk mengetahui berapa harga yang harus dibayar.

Yudi Aditira mengatakan...

NAMA : YUDI ADITIRA NURHIDAYAT
KELAS: 4KB08
NPM : 27115325

relieve(aspirin, headache).
relieve(aspirin, moderate_pain).
relieve(aspirin, moderate_arthritis).
relieve(aspirin_codeine_combination, severe_pain).
relieve(cough_cure_xm, cough).
relieve(pain_gone, severe_pain).
relieve(ko_diarrhea, diarrhea).
relieve(de_congest, cough).
relieve(de_congest, basal_congestion).
relieve(penicilin, pnemonia).
relieve(bis_cure, nausea).
relieve(bis_cure, diarrhea).
relieve(noasprinol, headache).
relieve(noasprinol, moderate_pain).
relieve(triple_tuss,nasal_congestion).
aggravates(aspirin, asthma).
aggravates(aspirin, paptic_ulcer).
aggravates(ko_diarrhea, fever).
aggravates(de_congest, high_blood_pressure).
aggravates(de_congest, heart_disease).
aggravates(de_congest, high_blood_pressure).
aggravates(de_congest, heart_disease).
aggravates(de_congest, glaucoma).
aggravates(bis_cure, diabetes).
aggravates(bis_cure, gout).
aggravates(bis_cure, fever).

from_of_pain(moderate_pain).
from_of_pain(severe_pain).

relieve_cold(Drug) :- relieve(Drug, cough), relieve(Drug, nasal_congestion).
relieve_cold(relieve_nose) :- relieve(relieve_nose, cough).
asthma_involved(Drug, Condition) :- aggravates(aspirin, asthma), relieve(Drug, Condition).
pain_killer(Drug) :- relieve(Drug,moderate_pain).
pain_killer(Drug) :- relieve(Drug, severe_pain).
pain_killer(Drug) :- form_of_pain(Condition), relieve(Drug, Condition).

complains_of(john, headache).
suffer_from(john, paptic_ulcer).

should_take(person, Drug) :- complains_of(person, Symptom),
suppresses(Drug, Symptom),
not(unsuitable_for(person, Drug)).
suppresses(Drug, Symptom) :- relieve(Drug, Symptom).
unsuitable_for(person, Drug) :-aggravates(Drug, Condition),
suffer_from(personh, Condition).

OUTPUT
?-relieve(Drug, cough), relieve(Drug, nasal_congestion),
Drug = de_congest

?- aggravates(de_congest, glaucoma), aggravates(bis_cure, diabetes).
Drug = cough_cure_xm

?- relieve(Drug,nausesa),aggravates(Drug,Condition).
Drug = bis_cure
Condition = diabetes

?- relieve_cold(Drug).
Drug = de_congest

kesimpulan output.
1. obat apa yang bisa menyembuhkan cogh dan nasal congestion?
2. obat apa yang bisa menyembuhkan batuk jika pasien mempunyai gejala penyakit diabetes dan glaucoma?
3. obat apa yg bisa menyembuhkan nausea? pasien tersebut menderita penyakit apa?
4. apa yang bisa menyembuhkan pilek?

Faisal Ega Putra mengatakan...

Nama : Faisal Ega Putra
Kelas : 4kb08
npm : 22115403

Program penganalisa virus

mulai:-
init,
data_pengamatan,
aturan(Nomor,Alasan),
jawaban(Alasan,Jawab),
write(Jawab),nl,
write('Aturan yang dipakai adalah '),
write(Nomor),nl,nl,
retractall(observation(_)).
mulai:-
write('Maaf, virus tersebut tidak ada dalam database kami.'),nl,nl,
retractall(observation(_)).
init:-
write('PROGRAM SISTEM PAKAR PENDETEKSI VIRUS'),nl,
judul(Judul),write(Judul),nl,nl,
tulis_pesan,nl.
tulis_pesan:-
pesan(Pesan),
write(Pesan),nl,fail.
tulis_pesan:-
nl.
data_pengamatan:-
pertanyaan(Tanya,Obs),
write(Tanya),nl,
read(Yatidak),
Yatidak=y,
assert(observation(Obs)),
fail.
data_pengamatan.
judul('MENGANALISA KOMPUTER...').
pesan('Jawab pertanyaan berikut dengan y atau t').
pertanyaan('Apakah komputer terasa lambat?', komputer).
pertanyaan('Apakah ada program yang tidak bisa jalan?', program).
pertanyaan('Apakah Internet terasa lambat?', internet).
pertanyaan('Apakah muncul file-file aneh?', file).
pertanyaan('Apakah muncul pesan gambar atau teks yang aneh?', pesan).
aturan(1, win32_ramnit):-
observation(komputer),
observation(program),
not(observation(internet)),
observation(file),
not(observation(pesan)).
aturan(2, win32_sality):-
not(observation(komputer)),
observation(program),
observation(internet),
observation(file),
not(observation(pesan)).
aturan(3, win32_virut):-
observation(komputer),
observation(program),
observation(internet),
not(observation(file)),
not(observation(pesan)).
aturan(4, conficker):-
not(observation(komputer)),
observation(program),
observation(internet),
not(observation(file)),
not(observation(pesan)).
aturan(5, xfly):-
not(observation(komputer)),
observation(program),
not(observation(internet)),
observation(file),
observation(pesan).
aturan(6, reva_vbs):-
not(observation(komputer)),
not(observation(program)),
not(observation(internet)),
observation(file),
not(observation(pesan)).
jawaban(win32_ramnit, 'Komputer Anda terinfeksi Win32/Ramnit').
jawaban(win32_sality, 'Komputer Anda terinfeksi Win32/Sality').
jawaban(win32_virut, 'Komputer Anda terinfeksi Win32/Virut').
jawaban(conficker, 'Komputer Anda terinfeksi Conficker').
jawaban(xfly, 'Komputer Anda terinfeksi XFly').
jawaban(reva_vbs, 'Komputer Anda terinfeksi Reva.VBS').

------------------------------------------------------------------

?- mulai.
PROGRAM SISTEM PAKAR PENDETEKSI VIRUS
MENGANALISA KOMPUTER...

Jawab pertanyaan berikut dengan y atau t


Apakah komputer terasa lambat?
|: t.
Apakah ada program yang tidak bisa jalan?
|: y.
Apakah Internet terasa lambat?
|: y.
Apakah muncul file-file aneh?
|: y.
Apakah muncul pesan gambar atau teks yang aneh?
|: y.
Komputer anda terinfeksi virus windows32/Sanity.

true.

Dika mengatakan...

Nama : Sufiandika Fajar Gunawan
NPM : 26115699
Kelas : 4KB08

-=Program Prolog Rumus Matematika=-

-List Program :

menu :-
write('-------MENU-------'),nl,
write('1. Luas Segitiga'),nl,
write('2. Volume Balok'),nl,
write('3. Volume Kubus'),nl,
write('4. EXIT'),nl,
write('Masukkan pilihan : '), read(PIL), nl,

(PIL=1,nl,
write('Luas Segitiga'),nl,
write('Masukkan Alas : '),read(A),nl,
write('Masukkan Tinggi : '),read(T),nl,
L is A*T/2,
write('LUAS SEGITIGA : '),write(L),nl,

menu;
PIL=2,nl,
write('Volume Balok'),nl,
write('Masukkan Panjang : '),read(P),nl,
write('Masukkan Lebar : '),read(L),nl,
write('Masukkan Tinggi : '),read(T),nl,
V is P*L*T,
write('VOLUME BALOK : '),write(V),nl,

menu;
PIL=3,nl,
write('Volume Kubus'),nl,
write('Masukkan Sisi : '),read(S),nl,
V is S*S,
write('VOLUME KUBUS : '),write(V),nl,

menu;
PIL=4,nl,
write('Makasih'),nl).

-Output Program :

-------MENU-------
1. Luas Segitiga
2. Volume Balok
3. Volume Kubus
4. EXIT
Masukkan pilihan :
1

Luas Segitiga
Masukkan Alas :
8

Masukkan Tinggi :
10

LUAS SEGITIGA : 40
-------MENU-------
1. Luas Segitiga
2. Volume Balok
3. Volume Kubus
4. EXIT
Masukkan pilihan :
2

Volume Balok
Masukkan Panjang :
6

Masukkan Lebar :
8

Masukkan Tinggi :
4

VOLUME BALOK : 192
-------MENU-------
1. Luas Segitiga
2. Volume Balok
3. Volume Kubus
4. EXIT
Masukkan pilihan :
3

Volume Kubus
Masukkan Sisi :
7

VOLUME KUBUS : 49
-------MENU-------
1. Luas Segitiga
2. Volume Balok
3. Volume Kubus
4. EXIT
Masukkan pilihan :
4

Makasih


Fungsi dan tujuan dari program diatas adalah untuk menampilkan daftar rumus matematika yang kita sudah tentukan dan kita dapat memilih rumus mana yang ingin kita gunakan beserta menentukan nilai yang kita inginkan.

Handi Gunawan mengatakan...

NAMA : MOHAMAD HANDI GUNAWAN
KELAS : 4KB08
NPM : 24115261

==PROGRAM NILAI MAHASISWA==
LIST PROGRAM

mhs=symbol
mk=string
nilai=string
predicates
kuliah(mhs,mk).
nilai(mhs,mk,nilai).
tidak_lulus(mhs,mk).
lulus(mhs,mk).
matkuliah(mk).
mahasiswa(mhs).
clauses
matakuliah(kms).
matakuliah(expert_system).
matakuliah(spk).
mahasiswa(andi).
mahasiswa(budi).
mahasiswa(cindy).
mahasiswa(dedi).
mahasiswa(edi).
mahasiswa(feri).
mahasiswa(geri).
mahasiswa(heri).
mahasiswa(iri).
mahasiswa(jeri).
mahasiswa(kelli).
mahasiswa(leli).
mahasiswa(meli).
mahasiswa(neli).
mahasiswa(oli).
kuliah(andi,"kms").
kuliah(budi,"kms").
kuliah(cindy,"kms").
kuliah(dedi,"kms").
kuliah(edi,"kms").
kuliah(feri,"expert_system").
kuliah(geri,"expert_system").
kuliah(heri,"expert_system").
kuliah(iri,"expert_system").
kuliah(jeri,"expert_system").
kuliah(kelli,"spk").
kuliah(leli,"spk").
kuliah(meli,"spk").
kuliah(neli,"spk").
kuliah(oli,"spk").
nilai(andi,"kms",a).
nilai(budi,"kms",d).
nilai(cindy,"kms",c).
nilai(dedi,"kms",b).
nilai(edi,"kms",c).
nilai(feri,"expert_system",e).
nilai(geri,"expert_system",a).
nilai(heri,"expert_system",d).
nilai(iri,"expert_system",b).
nilai(jeri,"expert_system",c).
nilai(kelli,"spk",d).
nilai(leli,"spk",e).
nilai(meli,"spk",b).
nilai(neli,"spk",a).
nilai(oli,"spk",a).
/* Aturan Mahasiswa Yang Tidak Lulus*/
tidak_lulus(X,Y) :- kuliah(X,Y), nilai(X,Y,Z),
Z=d.
tidak_lulus(X,Y) :- kuliah(X,Y), nilai(X,Y,Z),
Z=e.
/*Aturan Mahasiswa Yang Lulus*/
lulus(P,Q) :- kuliah(P,Q), nilai(P,Q,R),
R=a.
lulus(P,Q) :- kuliah(P,Q), nilai(P,Q,R),
R=b.
lulus(P,Q) :- kuliah(P,Q), nilai(P,Q,R),
R=c.
BERIKUT GOAL NYA:
1. Nama Mahasiswa yang mengikuti matakuliah KMS. kuliah(X,kms).
X=andi
X=budi
X=cindy
X=dedi
X=edi
5 Solutions
2. Nama mahasiswa yang tidak lulus
tidak_lulus(X,_).
X=budi
X=heri
X=kelli
X=feri
X=leli
5 Solutions
3. Nama mahasiswa yang lulus
lulus(Y,_).
Y=andi
Y=geri
Y=neli
Y=oli
Y=dedi
Y=iri
Y=meli
Y=cindy
Y=edi
Y=jeri
10 Solutions
4. Seluruh matakuliah yang diajarkan
matakuliah(P).
P=kms
P=expert_system
P=spk
3 Solution
5. Seluruh nama mahasiswa yang ada
mahasiswa(Z).
Z=andi
Z=budi
Z=cindy
Z=dedi
Z=edi
Z=feri
Z=geri
Z=heri
Z=iri
Z=jeri
Z=kelli
Z=leli
Z=meli
Z=neli
Z=oli
terimakasih

Fungsi dan tujuan program diatas adalah cara memberikan nilai kepada mahasiswa secara otomatis .

Renaldy Mora mengatakan...

NAMA : RENALDY MORA
KELAS : 4KB08
NPM :25115742

write(“Program Sederhana Prolog”),nl,nl,

write(“Masukkan nama : “), read(Nama),

write(Nama),nl,

write(“Masukkan kelas : “), read(_kelas),

write(_kelas),nl,nl,

write(“Menghitung Luas Persegi Panjang!”),nl,

write(“Masukkan panjang : “), read(P),

write(P),nl,

write(“Masukkan lebar : “), read(L),

write(L),nl,

LUAS is P*L,

write(“Luas Persegi Panjang = “),

write(LUAS).

fungsi nya :untuk menginput nilai variabel Nama & _kelas dengan 2 kata atau lebih, pake tanda (“)

bangkit sampurna mengatakan...
Komentar ini telah dihapus oleh pengarang.
bangkit sampurna mengatakan...

Nama:Bangkit sampurna
kelas:4KB08
NPM:2115267

list program

DOMAIN
merk,warna=symbol
harga=integer

PREDICATES
mobil(Merk,warna,Harga)
motor(Merk,warna,Harga)

clauses

mobil(toyota,putih,50).
mobil(mazda,merah,40).
mobil(honda,biru,55).
mobil(ford,merah,30).
mobil(holden,putih,30).
motor(karisma,hitam,50).
motor(beat,putih,40).
motor(mio,merah,30).
motor(vario,biru,55).
motor(satria,hitam,50).
output
1 ?- mobil(Merk,_,Harga).
Harga = 40,
Merk = mazda
Harga = 55,
Merk = honda
Harga = 30,
Merk = ford
Harga = 30,
Merk = holden

2 ?- motor(Merk,_,Harga).
Harga = 50,
Merk = karisma
Harga = 40,
Merk = beat
Harga = 30,
Merk = mio
Harga = 55,
Merk = vario
Harga = 50,
Merk = satria

3?- mobil(Merk,_,Harga),Harga<40
Harga = 30,
Merk = ford
Harga = 30,
Merk = holden

4 ?- motor(Merk,_,Harga),Harga<40
Harga = 30,
Merk = mio

5 ?- mobil(Merk,_,Harga),Harga>30,Harga<55
Harga = 40,
Merk = mazda

6 ?- motor(Merk,_,Harga),Harga>30,Harga<55
Harga = 50,
Merk = karisma
Harga = 40,
Merk = beat
Harga = 50,
Merk = satria

7 ?- mobil(Merk,Warna,Harga),Harga>30
Harga = 40,
Merk = mazda,
Warna = merah
Harga = 55,
Merk = honda,
Warna = biru
8 ?- motor(Merk,Warna,Harga),Harga>30
Harga = 50,
Merk = karisma,
Warna = hitam
Harga = 40,
Merk = beat,
Warna = putih
Harga = 55,
Merk = vario,
Warna = biru
Harga = 50,
Merk = satria,
Warna = hitam

fungsi dan tujuan program ini untuk mengetahui warna, harga dan merek kendaraan yang sudah kita tentukan harga dan jenis kendaraannya.

hardiansyah.blogspot.com mengatakan...

program:-nl,
write('Masukkan Nilai Uts : '),read(Uts),
write('Masukkan Nilai Uas : '),read(Uas),
Total is (Uts+Uas)/2,
write('Total : '),write(Total),nl,
(
Total > 95 -> write('A');
Total > 75 -> write('B');
Total > 60 -> write('C');
Total > 45 -> write('D');
write('E')
).

Bustomi Bustomi mengatakan...

NAMA : BUSTOMI
NPM : 11116500
KELAS : 3KA20


===== PROGRAM DIAGNOSA KERUSAKAN MOBIL ======

pada program ini ada 2 file yang saling berhubungan yaitu mobil.pl dan kerangka.pl.


koding kerangka.pl :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% kerangka.pl %% %% Program Diagnosa Mobil %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

mulai:-
inisialisasi,
data_pengamatan,
aturan(Nomor,Alasan),
jawaban(Alasan,Jawab),
write(Jawab),nl,
write('Aturan yang dipakai adalah '),
write(Nomor),nl,nl,
retractall(observation(_)).

mulai:-
write('Maaf tidak dapat membantu!'),nl,nl,
retractall(observation(_)).
%% memanggil basis data(aturan, pertanyaan dan jawaban)
%% yang ada di file mobil.pl

inisialisasi:-
write('**Antaramuka Sistem Pakar dengan PROLOG**'),nl,
consult('g:/tugas_vclass/mobil.pl'),
judul(Judul),write(Judul),nl,nl,
tulis_pesan,nl.

tulis_pesan:-
pesan(Pesan),
write(Pesan),nl,fail.
tulis_pesan:- nl.

% kumpulkan
data_pengamatan:-
pertanyaan(Tanya,Obs),
write(Tanya),nl,
read(Yatidak),
Yatidak=y,
assert(observation(Obs)),
fail.
data_pengamatan.

koding mobil.pl :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% mobil.pl %% %% basis data mobil, pertanyaan, aturan dan jawaban %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
judul('*HIDUPKAN MOBIL*').
pesan('Diasumsikan mobil tidak dapat dihidupkan').
pesan('Jawab pertanyaan berikut dengan y atau n').
pertanyaan('Apakah lampu besar hidup?', lampu_hidup).
pertanyaan('Apakah saat men-starter mobil, mesinnya hidup?', mesin_hidup).
pertanyaan('Apakah ada percikan api pada titik pembagi arus (delko)?', api_delko).
pertanyaan('Apakah ada percikan api pada plug pengapian (busi)?', plug_pengapian).
pertanyaan('Adakah lampu dim hidup jika dihidupkan?', lampu_dim).
pertanyaan('Apakah penunjuk meteran bensin bergerak?', bacaan_meteran).
pertanyaan('Apakah bensinnya masih ada?', tangki_bensin).
pertanyaan('Apakah plug pengapian (busi) nampak basah?', plug_basah).

aturan(1, aki_kosong):-
not(observation(lampu_hidup)),
not(observation(mesin_hidup)).

aturan(2, kurang_tegangan):-
observation(lampu_hidup),
not(observation(api_delkko)),
observation(mesin_hidup).

aturan(3, kelebihan_tegangan):-
observation(lampu_hidup),
observation(api_delkko),
observation(mesin_hidup),
not(observation(plug_pengapian)).

aturan(4, tak_dapat_distarter):-
observation(lampu_hidup),
not(observation(mesin_hidup)),
not(observation(lampu_dim)).

aturan(5, bensin_habis):-
not(observation(bacaan_meteran)),
not(observation(bensin_dalam_tangki)).

aturan(6, pancaran_tak_ada):-
observation(bacaan_meteran),
observation(bensin_dalam_tangki),
not(observation(plug_basah)).

aturan(7, aliran_tak_ada):-
observation(bacaan_meteran),
not(observation(bensin_dalam_tangki)).

aturan(8, mesin_banjir):-
observation(bacaan_meteran),
observation(plug_basah).

jawaban(aki_kosong,'Aki kosong').
jawaban(kurang_tegangan,'Ada Kegagalan dalam rangkaian pengapian (rendah)').
jawaban(kelebihan_tegangan,'Ada Kegagalan dalam rangkaian pengapian (tinggi)').
jawaban(tak_dapat_distarter, 'Tidak dapat di "starter"').
jawaban(bensin_habis, 'Kehabisan bensin').
jawaban(tak_dapat_distarter, 'Tidak ada pancaran bensin dalam karburator').
jawaban(aliran_tak_ada,'Tidak ada aliran bensin dari tangki minyak ke karburator').
jawaban(mesin_banjir,'Mesin dibanjiri bensin').


program ini adalah untuk mendiagnosa kerusakan apa yang terjadi mobil dengan memberikan daftar pertanyaan tentang gejala2 yang timbul pada mobil tersebut.
program kerangka.pl memanggil program mobil.pl yaitu dengan consult('g:/tugas_vclass/mobil.pl')sehingga 2 file tersebut dapat saling berhubungan.

rochmawati aprilia mengatakan...

NAMA : ROCHMAWATI APRILIA
KELAS : 3KA20
NPM : 16116655

PROGRAM :

menu:-nl,
write('***MENU MAKANAN***'),nl,nl,
write('1.Paket Ayam Komplit 1'),nl,
write('2.Paket Ayam Komplit 2'),nl,
write('3.Belum Lapar'),nl,
write('MASUKKAN MENU PILIHAN ANDA : '),read(P),nl,
(
P=1,
write('Paket Ayam Komplit 1'),nl,
write('1-Ayam Goreng'),nl,
write('2-Sambal Balado'),nl,
write('3-Buah'),nl,
write('4-kerupuk'),nl,
write(' Total Harga = Rp 25.000,00'),nl,
write('**Apakah anda ingin menambah es teh manis,jika ya tekan =1,jika tidak tekan =2**'),nl,
write('Masukkan Pilihan anda :'),read(E),nl,
( E = 1, write('iya, Total harga bertambah menjadi Rp 25.000 + Rp 5.000 = Rp 30.000');
E = 2, write('tidak, Harga Total Rp 25.000,00')),
menu;
P=2,
write('Paket Ayam Komplit 2'),nl,
write('1-Ayam Bakar'),nl,
write('2-Sambal Terasi'),nl,
write('3-Buah'),nl,
write('4-Kerupuk'),nl,
write('Total harga = Rp 20.000,00'),nl,
write('**Apakah anda ingin menambah es teh manis, jika iya tekan =1, jika tidak tekan =2 **'),nl,
write('Masukkan Pilihan anda :'),read(E),nl,
( E = 1, write('iya, Total harga bertambah menjadi Rp 20.000 + Rp 5.000 = Rp 25.000,00');
E = 2, write('tidak, Harga Total Rp 20.000,00')),
menu;
P=3,
write('Saya Belum Lapar')
).

HASIL RUN PROGRAM :

?- menu.

***MENU MAKANAN***

1.Paket Ayam Komplit 1
2.Paket Ayam Komplit 2
3.Belum Lapar
MASUKKAN MENU PILIHAN ANDA : 1.

Paket Ayam Komplit 1
1-Ayam Goreng
2-Sambal Balado
3-Buah
4-kerupuk
Total Harga = Rp 25.000,00
**Apakah anda ingin menambah es teh manis,jika ya tekan =1,jika tidak tekan =2**
Masukkan Pilihan anda :|: 1.

iya, Total harga bertambah menjadi Rp 25.000 + Rp 5.000 = Rp 30.000
***MENU MAKANAN***

1.Paket Ayam Komplit 1
2.Paket Ayam Komplit 2
3.Belum Lapar
MASUKKAN MENU PILIHAN ANDA : |: 2.

Paket Ayam Komplit 2
1-Ayam Bakar
2-Sambal Terasi
3-Buah
4-Kerupuk
Total harga = Rp 20.000,00
**Apakah anda ingin menambah es teh manis, jika iya tekan =1, jika tidak tekan =2 **
Masukkan Pilihan anda :|: 2.

tidak, Harga Total Rp 20.000,00
***MENU MAKANAN***

1.Paket Ayam Komplit 1
2.Paket Ayam Komplit 2
3.Belum Lapar
MASUKKAN MENU PILIHAN ANDA : |: 3.

Saya Belum Lapar
true .

PENJELASAN :

Program ini adalah program menu makanan untuk melakukan pemesanan makanan sekaligus mengeluarkan bil untuk pembayaran makanan. Disitu kalian bisa memilih paket makanan dan sekaligus ingin menambahkan minuman sehingga total pembayaran dari makanan yang kalian pesan akan terakumulasi manjadi bil yang keluar.

mein blog mengatakan...
Komentar ini telah dihapus oleh pengarang.
wiraditya blog mengatakan...

NAMA : WIRADITYA DWI PUTRA SUBIYANTO
NPM : 17116683
KELAS : 3KA20


PROGRAM :
anak(raja,bahrun).
anak(raja,farah).
anak(bahrun,fahri).
anak(bahrun,salma).
anak(farah,burhan).
anak(farah,ferdi).
anak(fahri,arfan).
anak(fahri,salsa).
anak(ferdi,syifa).
anak(ferdi,fariz).
anak(salma,farhan).
putra(bahrun).
putra(fahri).
putra(burhan).
putra(ferdi).
putra(arfan).
putra(farhan).
putra(fariz).
putri(farah).
putri(salma).
putri(salsa).
putri(syifa).
anaklaki(X,Y):-anak(X,Y),putra(Y).
calonraja(X,Y):-anaklaki(X,Y).
calonraja(X,Y):-anaklaki(X,Z),calonraja(Z,Y).

hasil:
?- calonraja(raja,X).
X = bahrun ;
X = fahri ;
X = arfan ;
false.

penjelasan:
program ini mencari mana dari keturunan ini yang berhak menjadi raja selanjutnya. program ini bekerja dengan mencari ketutunan laki-laki atau anak dari keturunan laki-laki raja tersebut.

baharudin nuban mengatakan...

NAMA : BURHANUDIN NUBAN
KELAS : 3KA20
NPM : 11116499
PROGRAM MENGHITUNG BERAT BADAN DAN TINGGI IDEAL.

PROGRAM :
program:-nl,
write('Masukkan tinggi anda : '),read(Tinggi),
write('Masukkan berat badan anda : '),read(Beratbadan),
Total is (Tinggi-100)+((15/100)*(Beratbadan-100)),
write('Total : '),write(Total),nl,
( Total > 60 -> write('ideal');
Total > 55 -> write('lumayan');
Total > 50 -> write('kurang ideal');
Total > 45 -> write('sangat kurang ideal');
write('kurang sehat') ).

HASIL :
?- program.

Masukkan tinggi anda : 165.
Masukkan berat badan anda : |: 60.
Total : 59.0
lumayan
true.

Aji Wijayanto mengatakan...

NAMA : AJI WIJAYANTO
NPM : 10116451
KELAS : 3KA20
-----------------------

PROGRAM PROLOG :
cek:-
write('-----------------------------------------'),nl,
write('= DETEKSI PENYAKIT RADANG TENGGOROKAN ='),nl,
write('-----------------------------------------'),nl,nl,
write('JAWAB DENGAN (y/n).'),nl,nl,
periksa,
hasil(Tul),
write(Tul),
retractall(obs(_)).
cek:-
write('MAAF, TIDAK DAPAT MENDETEKSI JENIS RADANG'),
retractall(obs(_)).
periksa :-
gejala(Gejala,Jawaban),
write(Gejala),nl,
read(YesOrNo),nl,
YesOrNo= y,
assert(obs(Jawaban)),
fail.
periksa.
gejala('Apakah tenggorokan anda kering dan gatal?', gatal).
gejala('Apakah tenggorokan anda sakit saat menelan?', menelan).
gejala('Apakah tenggorokan anda bengkak?', bengkak).
gejala('Apakah anda susah untuk berbicara?', bicara).

hasil('ANDA TIDAK TERKENA RADANG TENGGOROKAN'):-
not(obs(gatal)),
not(obs(menelan)),
not(obs(bengkak)),
not(obs(bicara)).

hasil('ANDA MENGALAMI GEJALA RADANG TENGGOROKAN'):-
obs(gatal),
not(obs(menelan)),
not(obs(bengkak)),
not(obs(bicara)).

hasil('ANDA MENDERITA RADANG TENGGOROKAN BIASA'):-
obs(gatal),
obs(menelan),
not(obs(bengkak)),
not(obs(bicara)).

hasil('ANDA MENDERITA RADANG TENGGOROKAN AKUT'):-
obs(gatal),
obs(menelan),
obs(bengkak),
obs(bicara).
----------------------------------------------------
HASIL OUTPUTNYA :
----------------------------------------------------
?- cek.
-----------------------------------------
= DETEKSI PENYAKIT RADANG TENGGOROKAN =
-----------------------------------------

JAWAB DENGAN (y/n).

Apakah tenggorokan anda kering dan gatal?
|: y.

Apakah tenggorokan anda sakit saat menelan?
|: y.

Apakah tenggorokan anda bengkak?
|: y.

Apakah anda susah untuk berbicara?
|: y.

ANDA MENDERITA RADANG TENGGOROKAN AKUT
true .

---------------------------------------------------------
Berikut penjelasan tiap-tiap baris syntax program diatas:
---------------------------------------------------------

1. cek:- merupakan syntax pertama yang akan dijalankan oleh program, dimana dalam syntax ini juga akan memanggil dan menjalankan syntax periksa, write dan hasil.
2. retractall merupakan syntax yang berfungsi untuk mebersihkan semua input user apabila sesi analisis telah selesai.
3. periksa merupakan syntax yang akan memanggil dan menjalankan syntax gejala yang akan diambil jawabannya untuk dicocokkan dengan rule yang ada.
4. gejala merupakan syntax berupa tipe data string yang berisi pertanyaan dan objek yang akan di observasi.
5. write merupakan syntax yang berfungsi untuk mencetak data.
6. read merupakan syntax yang berfungsi untuk membaca input dari user yang kemudian input tersebut akan disimpan dalam variable.
7. fail merupakan syntax yang berfungsi untuk mencegah perulangan pertanyaan secara terus menerus apabila pertanyaan telah habis.
8. hasil merupakan syntax yang berisi aturan aturan yang akan dicocokkan dengan inputan user yang kemudian akan menampilkan hasil yang sesuai dengan observasi inputan user.


Sumber :
https://idnlog.net/category/sistem-cerdas/

Tatag mengatakan...

NAMA : TATAG TRI ALAM ONYX PRADANA
NPM : 17116312
KELAS : 3KA20

===================================================

PROGRAM
========================
menu:- write('________^.^_________'),nl,
write('\t==MENU=='),nl,
write('\t 1.Penjumlahan'),nl,
write('\t 2.Pengurangan'),nl,
write('\t 3.Perkalian'),nl,
write('\t 4.Pembagian'),nl,
write('\t 5.Exit'),nl,
write('___________________'),nl,nl,
write('Masukkan Pilihan Anda : '),
read(Pil),
write(Pil),nl,


(Pil=1,nl,

write('Nilai A :'),
read(A),
write(A),nl,
write('Nilai B :'),
read(B),
write(B),nl,
C is A+B,
write('Hasil A+B='),
write(C),nl,nl,
menu;

Pil=2,nl,

write('Nilai A :'),
read(A),
write(A),nl,
write('Nilai B :'),
read(B),
write(B),nl,
C is A-B,
write('Hasil A-B='),
write(C),nl,nl,
menu;

Pil=3,nl,

write('Nilai A :'),
read(A),
write(A),nl,
write('Nilai B :'),
read(B),
write(B),nl,
C is A*B,
write('Hasil A*B='),
write(C),nl,nl,
menu;

Pil=4,nl,

write('Nilai A :'),
read(A),
write(A),nl,
write('Nilai B :'),
read(B),
write(B),nl,
C is A/B,
write('Hasil A/B='),
write(C),nl,nl,
menu;

Pil<1,nl,
write('-------WARNING!!!-------'),nl,
write('| NOT AVAILABLE |'),nl,
write('| PLEASE, TRY AGAIN |'),nl,
write('----------------------------'),nl,nl,
menu;
Pil>5,nl,
write('-------WARNING!!!-------'),nl,
write('| NOT AVAILABLE |'),nl,
write('| PLEASE, TRY AGAIN |'),nl,
write('----------------------------'),nl,nl,
menu;

Pil=5,nl,
write('\t EXIT!!!'),nl).

========================================================

HASIL PROGRAM
=======================
| menu.
________^.^_________
==MENU==
1.Penjumlahan
2.Pengurangan
3.Perkalian
4.Pembagian
5.Exit
___________________

Masukkan Pilihan Anda : 1.
1

Nilai A :2.
2
Nilai B :3.
3
Hasil A+B=5

________^.^_________
==MENU==
1.Penjumlahan
2.Pengurangan
3.Perkalian
4.Pembagian
5.Exit
___________________

Masukkan Pilihan Anda : 2.
2

Nilai A :3.
3
Nilai B :2.
2
Hasil A-B=1

________^.^_________
==MENU==
1.Penjumlahan
2.Pengurangan
3.Perkalian
4.Pembagian
5.Exit
___________________

Masukkan Pilihan Anda : 3.
3

Nilai A :3.
3
Nilai B :2.
2
Hasil A*B=6

________^.^_________
==MENU==
1.Penjumlahan
2.Pengurangan
3.Perkalian
4.Pembagian
5.Exit
___________________

Masukkan Pilihan Anda : 4.
4

Nilai A :3.
3
Nilai B :2.
2
Hasil A/B=1.5

________^.^_________
==MENU==
1.Penjumlahan
2.Pengurangan
3.Perkalian
4.Pembagian
5.Exit
___________________

Masukkan Pilihan Anda : 5.
5

EXIT!!!
true

====================================================

Program ini digunakan untuk perhitungan matematika dasar.