domains
alamat = alamat(jalan,kota,kode_pos)
tgl_lahir = tgl_lahir(tanggal,bulan,tahun)
tanggal,tahun,nomer = integer
nama,jalan,kota,kode_pos,bulan,pekerjaan = string
lama = real
predicates
data_pribadi(nama,alamat,tgl_lahir,pekerjaan)
lama_tinggal(nama,lama)
penduduk(nama,alamat)
menu(nomer)
pilihan(nomer)
goal
menu(Nomer),
pilihan(Nomer),
clauses
data_pribadi("Andi",alamat("Jl. Singosari No. 100",
"Bandung","40013"),tgl_lahir(20,"Oktober",1963),
"Mahasiswa").
data_pribadi("Amran",alamat("Jl. Kutilang No. 1",
"Jakarta","11650"),tgl_lahir(5,"Januari",1960),
"Konsultan").
data_pribadi("Cindy",alamat("Jl. Merak No. 5100",
"Surabaya","60281"),tgl_lahir(14,"Maret",1962),
"Sekretaris").
/*Lama tinggal dlm tahun*/
lama_tinggal("Andi",1.5).
lama_tinggal("Amran",2.5).
lama_tinggal("Cindy",0.5).
/*Seseorang Adl Penduduk Jika tinggal di Suatu Kota Min 2 Thn*/
penduduk(Nama,Alamat):-
data_pribadi(Nama,Alamat,_,_),
lama_tinggal(Nama,Lama),
Lama>=2.0.
menu(Nomer):-
makewindow(1,13,1,"Data Pribadi",3,0,20,80),
write("1. Data Pribadi Semua Orang\n"),
write("2. Data Orang Yang Tinggal di Kota Tertentu\n"),
write("3. Data Orang Yang Punya Pekerjaan Tertentu\n"),
write("4. Data Orang Yang Telah Jadi Penduduk\n"),
nl,
write("Masukkan Pilihan Anda (1,2,3,4) : "),
readint(Nomer).
pilihan(1):-
clearwindow,
data_pribadi(Nama,alamat(Jalan,Kota,Kode_Pos),
tgl_lahir(Tgl,Bulan,Tahun),Pekerjaan),
write("\n",Nama,"\t",Jalan,"\t",
Kota," ",Kode_Pos,"\t",Tgl," ",Bulan,
" ",Tahun,"\t",Pekerjaan),
fail.
pilihan(1).
pilihan(2):-
clearwindow,
write("Kota : "),readln(Kota),
clearwindow,
write("Data Orang Yang Tinggal Di Kota ",Kota," : "),
nl,
data_pribadi(Nama,alamat(Jalan,Kota,Kode_Pos),
tgl_lahir(Tgl,Bulan,Tahun),Pekerjaan),
write("\n",Nama,"\t",Jalan,"\t",
Kota," ",Kode}_Pos,"\t",Tgl," ",
Bulan," ",Tahun,"\t",Pekerjaan),
fail.
pilihan(2).
pilihan(3):-
clearwindow,
write("Pekerjaan : "),readln(Pekerjaan),
clearwindow,
write("Data Orang Yang Punya Pekerjaan Tertentu ",Pekerjaan," : "),
nl,
data_pribadi(Nama,alamat(Jalan,Kota,Kode_Pos),
tgl_lahir(Tgl,Bulan,Tahun),Pekerjaan),
write("\n",Nama,"\t",Jalan,"\t",
Kota," ",Kode_Pos,"\t",Tgl," ",
Bulan," ",Tahun,"\t",Pekerjaan),
fail.
pilihan(3).
pilihan(4):-
clearwindow,
write("Nama : "),readln