LISTING PROGRAM
?-
window(_,_,win_utama(_),"Belajar buat window",100,50,450,450).
win_utama(init):-
%menu utama
menu(normal,_,_,menu_mulai(_),"&New game"),
menu(normal,_,_,menu_exit(_),"&Exit").
menu_exit(press):-
close_window(_).
win_func(init):-
%menu utama
menu(pop_up,_,_,menu_start(_),"&Start"),
menu(normal,_,_,menu_exit(_),"&Exit").
menu_mulai(press):-
close_window(_),
window(_,_,win_func(_),"Belajar buat timer",100,50,450,450).
menu_start(init):-
menu(normal,_,_,menu_easy(_),"&Mudah"),
menu(normal,_,_,menu_hard(_),"&Sulit").
menu_easy(press):-
message("timer","kamu memiliki waktu 10 detik sebelum
berakhir",i),
update_window(_),
G_M:=10,
G_waktu is
set_timer(_,1,timer_func).
menu_hard(press):-
message("waktu","kamu memiliki waktu 5 detik sebelum
berakhir",i),
update_window(_),
G_M:=5,
G_waktu is
set_timer(_,1,timer_func).
timer_func(end):-
(G_M=:=10->
pen(5,rgb(255,255,255)),
rect(49,10,70,25)),
(G_M=:=0->
kill_timer(_,G_waktu),
message("WARNING","Game over,waktu kamu habis!!!",i),
close_window(_)
else
Angka is print(G_N),
font(30,70,"Arial"),
G_M <>= G_M-1),
T is
printq(G_M),
text_out(10,10,T), beep.
LOGIKA PROGRAM
Pada
pertemuan minggu kedua ini saya akan menjelaskan logika program dari splash
screen dan timer yang sudah saya buat ini. Berikut logika programnya.
?-
Fungsi diatas adalah
awal untuk membuat sebuah program di strawberry prolog.
window(_,_,win_utama(_),"Belajar buat window",100,50,450,450).
Fungsi
diatas untuk mengatur
tinggi dan lebar pada jendela output. Dan kata “Belajar Buat Window” merupakan
judul dari jendela output yang telah di buat tadi, kemudian maksud dari
“(100,50,450,450)” merupakan koordinat X1,Y1,X2,Y2 dan ukuran dari jendela
output yang akan ditampilkan. Sedangkan maksud dari “100,50“ merupakan jarak
antara tepi monitor kiri dan tepi monitor atas kebawah. Sedangkan “450” dan “450” merupakan besar
atau lebarnya jendela output.
win_utama(init):-
%menu utama
menu(normal,_,_,menu_mulai(_),"&New Game"),
menu(normal,_,_,menu_exit(_),"&Exit").
Fungsi diatas diatas
adalah untuk membuat sebuah tampilan menu dimana terdapat menubar “New Game”
dan “Exit”.
menu_exit(press):-
close_window(_).
Fungsi
diatas menyatakan apabila kita menekan atau mengklik menubar Exit maka kita
akan keluar dari layar tersebut.
win_func(init):-
%menu utama
menu(pop_up,_,_,menu_start(_),"&Start"),
menu(normal,_,_,menu_exit(_),"&Exit").
Fungsi
diatas adalah untuk menampilkan isi dari menubar New Game, apabila kita
mengklik
New Game maka akan muncul pilihan Start dan Exit.
menu_mulai(press):-
close_window(_),
window(_,_,win_func(_),"Belajar buat timer",100,50,450,450).
Fungsi
diatas adalah apabila kita mengklik menubar New Game, maka window yang pertama
akan tertutup dan membuka window baru yaitu window belajar buat timer.
menu_start(init):-
menu(normal,_,_,menu_easy(_),"&Mudah"),
menu(normal,_,_,menu_hard(_),"&Sulit").
Fungsi diatas adalah
isi dari menubar Start. Dan didalam menubar Start terdapat 2 pilihan yaitu Mudah(easy)
dan Sulit(hard).
menu_easy(press):-
message("timer","kamu memiliki waktu 10 detik sebelum
berakhir",i),
Fungsi
diatas adalah apabila kita memilih Easy(mudah) pada menu Start maka akan muncul
pesan pada layar yaitu “kamu hanya memiliki waktu 10 detik sebelum waktu
berakhir”. Setelah itu akan menampilkan waktu/timer yang berjalan mulai dari 10
sampai 0.
update_window(_),
G_M:=10,
G_waktu is
set_timer(_,1,timer_func).
Fungsi diatas adalah untuk mencetak timer selama 1 detik, yang berarti saat
program dijalankan akan muncul timer dimulai dari angka 10. Pada saat detik ke
10 menuju detik ke 9, program terebut menunggu selama 1 detik dan kemudian
bergerak menuju detik ke 9. Tetapi jika angka 1 pada listingan tersebut diganti
angka 5 maka detik ke 10 menuju detik ke 9 akan menunggu selama 5 detik juga
jadi akan lama sekali jedanya.
menu_hard(press):-
message("waktu","kamu memiliki waktu 5 detik sebelum
berakhir",i),
Fungsi diatas adalah
ketika anda memilih Hard(sulit) pada menu Start maka akan muncul pesan pada
layar yaitu “kamu hanya memiliki waktu 5 detik sebelum waktu berakhir”.
update_window(_),
G_M:=5,
G_waktu is
set_timer(_,1,timer_func).
Fungsi
diatas adalah untuk mencetak timer selama 1 detik, yang berarti saat program
dijalankan akan muncul timer dimulai dari angka 5. Pada saat detik ke 5 menuju
detik ke 4, program terebut menunggu selama 1 detik dan kemudian akan bergerak
menuju detik ke 4. Tetapi jika angka 1 pada listingan tersebut diganti angka 4
maka detik ke 5 menuju detik ke 4 akan menunggu selama 4 detik sekali jadi akan
lama sekali jeda waktunya.
timer_func(end):-
(G_M=:=10->
pen(5,rgb(255,255,255)),
rect(49,10,70,25)),
(G_M=:=0->
kill_timer(_,G_waktu),
message("WARNING","Game over,waktu kamu habis!!!",i),
close_window(_)
Fungsi diatas adalah
apabila program dijalankan maka timer akan mulai menghitung mundur dari 10
hingga 0. Namun jika waktu sudah menunjukkan angka 0 maka nanti akan muncul
pesan yang bertuliskan Warning pada bagian atas layar dan yang berisi “Game
Over,waktu kamu sudah habis”.
Fungsi
pen(5,rgb(255,255,255)) rect(49,10,70,25)) berguna untuk membuat persegi yang
memiliki background dengan warna putih. Setelah mengklik tombol OK maka layar
akan tertutup kembali.
else
Angka is print(G_N),
font(30,70,"Arial"),
G_M <>= G_M-1),
T is
printq(G_M),
text_out(10,10,T), beep.
Fungsi diatas
adalah untuk melakukan perulangan logika setiap 1 detik akan berkurang. Dan
pada Angka is printq(G_M) maksudnya adalah mendeklarasikan angka menjadi syntak
G_M. dan jenis tulisan pada timer yang muncul adalah “Arial” dengan ukuran
tulisan lebar 30 dan tinggi 70. Tulisan atau teks detik akan
muncul pada koordinat 10,10.
OUTPUT PROGRAM