/*
Nama : Pulung Aguswanto
NPM : 107006164
*/
database
xbenar(symbol, symbol)
xsalah(symbol, symbol)
predicates
hewan(symbol)
adalah(symbol)
tanya(symbol, symbol, symbol)
ingat(symbol, symbol, symbol)
benar(symbol, symbol)
salah(symbol, symbol)
hapus_fakta
run
Goal
run.
clauses
hewan(kucing_garong):-adalah(mamalia), adalah(karnivora),
benar(apakah , berambut_hitam), benar(apakah ,
matanya_bercahaya_dimalam_hari).
hewan(harimau):-adalah(mamalia), adalah(karnivora), benar(apakah ,
warnanya_kuning_tua), benar(apakah , kulitnya_bergaris_hitam).
hewan(gajah):-adalah(mamalia), benar(apakah , badanya_besar),
benar(apakah , hidungnya_panjang), benar(apakah , kupingnya_lebar).
hewan(zebra):-adalah(hewan_berkuku), benar(apakah , kulitnya_bergaris_hitam).
hewan(kakatua):-adalah(burung), salah(apakah , bisa_terbang),
benar(apakah , berbulu), benar(apakah , bisa_meniru_suara_manusia).
hewan(pinguin):-adalah(burung), salah(apakah , bisa_terbang),
benar(apakah , bisa_berenang), benar(apakah , warnanya_hitam_putih).
hewan(mujair):-adalah(ikan), benar(apakah , bernafas_dengan_insang),
benar(apakah , hidup_di_air).
adalah(mamalia):-benar(apakah , berambut).
adalah(mamalia):-benar(apakah , menyusui).
adalah(burung):-benar(apakah , punya_sayap).
adalah(burung):-benar(apakah , bertelur).
adalah(karnivora):-benar(apakah , makan_daging).
adalah(hewan_berkuku):-adalah(mamalia), benar(apakah , memamah_biak).
benar(X, Y):-xbenar(X, Y), !.
benar(X, Y):-not(xsalah(X, Y)), tanya(X, Y, ya).
salah(X, Y):-xsalah(X, Y), !.
salah(X, Y):-not(xbenar(X, Y)), tanya(X, Y, tidak).
tanya(X, Y, ya):-!, write(X, " hewan tersebut ", Y, '\n'),
Readln(Reply), frontchar(Reply, 'y', _), ingat(X, Y, ya).
tanya(X, Y, no):-!, write(X, " hewan tersebut ", Y, '\n'),
Readln(Reply), frontchar(Reply, 't', _), ingat(X, Y, tidak).
ingat(X, Y, ya):-assertz(xbenar(X, Y)).
ingat(X, Y, tidak):-assertz(xsalah(X, Y)).
hapus_fakta:-write("\n\ntekan spacebar\n"), retractall(_, dbasedom),
readchar(_).
run:-hewan(X), !, write("\nHewan tersebut adalah : ", X), nl, nl, hapus_fakta.
run:-write("tidak tahu !.\n\n"), hapus_fakta.
Nama : Pulung Aguswanto
NPM : 107006164
*/
database
xbenar(symbol, symbol)
xsalah(symbol, symbol)
predicates
hewan(symbol)
adalah(symbol)
tanya(symbol, symbol, symbol)
ingat(symbol, symbol, symbol)
benar(symbol, symbol)
salah(symbol, symbol)
hapus_fakta
run
Goal
run.
clauses
hewan(kucing_garong):-adalah(mamalia), adalah(karnivora),
benar(apakah , berambut_hitam), benar(apakah ,
matanya_bercahaya_dimalam_hari).
hewan(harimau):-adalah(mamalia), adalah(karnivora), benar(apakah ,
warnanya_kuning_tua), benar(apakah , kulitnya_bergaris_hitam).
hewan(gajah):-adalah(mamalia), benar(apakah , badanya_besar),
benar(apakah , hidungnya_panjang), benar(apakah , kupingnya_lebar).
hewan(zebra):-adalah(hewan_berkuku), benar(apakah , kulitnya_bergaris_hitam).
hewan(kakatua):-adalah(burung), salah(apakah , bisa_terbang),
benar(apakah , berbulu), benar(apakah , bisa_meniru_suara_manusia).
hewan(pinguin):-adalah(burung), salah(apakah , bisa_terbang),
benar(apakah , bisa_berenang), benar(apakah , warnanya_hitam_putih).
hewan(mujair):-adalah(ikan), benar(apakah , bernafas_dengan_insang),
benar(apakah , hidup_di_air).
adalah(mamalia):-benar(apakah , berambut).
adalah(mamalia):-benar(apakah , menyusui).
adalah(burung):-benar(apakah , punya_sayap).
adalah(burung):-benar(apakah , bertelur).
adalah(karnivora):-benar(apakah , makan_daging).
adalah(hewan_berkuku):-adalah(mamalia), benar(apakah , memamah_biak).
benar(X, Y):-xbenar(X, Y), !.
benar(X, Y):-not(xsalah(X, Y)), tanya(X, Y, ya).
salah(X, Y):-xsalah(X, Y), !.
salah(X, Y):-not(xbenar(X, Y)), tanya(X, Y, tidak).
tanya(X, Y, ya):-!, write(X, " hewan tersebut ", Y, '\n'),
Readln(Reply), frontchar(Reply, 'y', _), ingat(X, Y, ya).
tanya(X, Y, no):-!, write(X, " hewan tersebut ", Y, '\n'),
Readln(Reply), frontchar(Reply, 't', _), ingat(X, Y, tidak).
ingat(X, Y, ya):-assertz(xbenar(X, Y)).
ingat(X, Y, tidak):-assertz(xsalah(X, Y)).
hapus_fakta:-write("\n\ntekan spacebar\n"), retractall(_, dbasedom),
readchar(_).
run:-hewan(X), !, write("\nHewan tersebut adalah : ", X), nl, nl, hapus_fakta.
run:-write("tidak tahu !.\n\n"), hapus_fakta.
0 komentar:
Posting Komentar