Jendela
adalah daerah yang aktif sebagai output pada layar yang dapat dibatasi dengan
bingkai (frame). Jika kita membuat jendela lain maka jendela terakhirlah yang
aktif, namun jika menghendaki maka pengaktifan jendela lain dapat kita pilih.
Apabila ada jendela, predikat yang berkaitan dengan keluaran pada layar,
mengacu pada koordinat jendela. Misalnya kita menempatkan kursor pada koordinat
(5,6) maka berarti 5 baris ke bawah dan 6 kolom ke kanan dari titik kiri atas
jendela.
Predikat Jendela
Untuk dapat menangani jendela, kita perlu predikat jadi
sebagai berikut :
a. Makewindow
Makewindow untuk membuat
jendela pada layar dengan format :
makewindow(No,AtrL,AtrF,Judul,Baris,Kolom,Tinggi,Lebar)
- No : untuk nomor dari jendela
- AtrL : mengambil nilai atribut di dalam jendela
- AtrF : membaca nilai atribut bingkai
- Judul : menuliskan judul pada bingkai jendela
- Baris, Kolom : menentukan koordinat pada bingkai
jendela
-
Tinggi, Lebar : menentukan
ukuran jendela
b. Shiftwindow
Untuk berpindah jendela, karena
hanya 1 jendela yang aktif. Formatnya
:
shifwindow(NoJendela)
c. Clearwindow
Untuk
membersihkan jendela
d. Removewindow
Untuk menghapus jendela yang
aktif tanpa meninggalkan bekas.
e. Cursor
Untuk
menempatkan kursor.
cursor(Baris,Kolom)
Contoh
program :
predicates
parent(symbol,symbol)
female(symbol)
male(symbol)
offspring(symbol,symbol)
mother(symbol,symbol)
grandfather(symbol,symbol)
sister(symbol,symbol)
different(symbol,symbol)
grandchild(symbol,symbol)
aunt(symbol,symbol)
predecessor(symbol,symbol)
pilihan(integer)
menu
start
clauses
parent(pam,bob).
parent(tom,bob).
parent(tom,liz).
parent(bob,ann).
parent(bob,pat).
parent(pat,jim).
female(pam).
female(liz).
female(pat).
female(ann).
male(tom).
male(bob).
male(jim).
offspring(Y,X)
:-
parent(X,Y).
mother(X,Y) :-
female(X),
parent(X,Y).
grandfather(X,Z)
:-
parent(X,Y),
parent(Y,Z).
different(X,Y)
:- X<>Y.
sister(X,Y) :-
parent(Z,X),
parent(Z,Y),
female(X),
different(X,Y).
grandchild(X,Z)
:-
parent(Y,X),
parent(Z,Y).
aunt(X,Y) :-
parent(Z,Y),
sister(X,Z).
predecessor(X,Z)
:-
parent(X,Z).
predecessor(X,Z)
:-
parent(X,Y),
predecessor(Y,Z).
start:-
clearwindow,
makewindow(1,40,10,"",0,0,25,80),
field_attr(22,61,14,29),
field_str(22,61,14," (TEKAN TOMBOL)
"),
makewindow(2,32,150,"",6,20,15,40),nl,nl,
write(" PROGRAM SISILAH KELUARGA \n"),
nl,nl,
write(" 2009 \n"),readchar(_),clearwindow.
menu :-
shiftwindow(3),
makewindow(2,27,110,"",5,10,15,60),
write(" Apa yang ingin anda ketahui ?
"),nl,nl,nl,
write("1. Orang tua "),nl,
write("2. Anak "),nl,
write("3. Cucu "),nl,
write("4. Bibi "),nl,nl,
write(" Masukkan pilihan anda : "),
readint(Pilihan),
pilihan(Pilihan),menu.
pilihan(1):-
clearwindow,
makewindow(4,30,150," ORANG TUA
",0,0,25,80),
write("Orang tua dari siapa ?
"),readln(X),
parent(Y,X),write (" Orang tua dari
",X, " adalah ",Y),nl,fail.
pilihan(2):-
clearwindow,
makewindow(4,38,180," ANAK
",0,0,25,80),
write("Anak dari siapa ?
"),readln(X),
parent(X,Y),write (" Anak dari ",X, " adalah
",Y),nl,fail.
pilihan(3):-
clearwindow,
makewindow(4,20,130," CUCU
",0,0,25,80),
write("Cucu dari siapa ?
"),readln(X),
grandfather(X,Y),write (" Cucu dari ",X, " adalah
",Y),nl,fail.
pilihan(4):-
clearwindow,
makewindow(4,25,60," BIBI
",0,0,25,80),
write("Bibi dari siapa ?
"),readln(X),
aunt(Y,X),write (" Bibi dari ",X, " adalah
",Y),nl,fail.
Goal
start,makewindow(3,24,67,"",0,0,25,80),menu.
Tidak ada komentar:
Posting Komentar