Iklan

Kamis, 24 Mei 2012

JENDELA TURBO PROLOG


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