-->

Strawberry Prolog : Membuat Menu Pop Up

Pada tutorial kali ini akan dibahas mengenai bagaimana cara membuat menu pop up dalam aplikasi strawberry prolog. Menu pop up sendiri merupakan menu yang akan tampil secara otomatis atau apabila kita menggerakan kursor mouse pada area tertentu biasanya berisi tentang informasi suatu objek/ icon/ menu.
Tutorial ini akan membuat menu dengan 3  pilihan yaitu : menu_pilihan, menu_level, dan menu_tentang. Dimana pada menu_pilihan ketika kita klik akan muncul submenu yaitu mulai dan exit, sedangkan pada menu_level akan muncul submenu amatiran, mudah, sudah, pada menu susah muncul submenu susah biasa, susah banget dan susah sekali. Pada menu_tentang akan muncul kotak dialog.


LISTING PROGRAM & LOGIKA PROGRAM

?-
window(_,_,win_func(),"Menu",50,50,500,500).

win_func(init):-
menu( pop_up, _, _, menu_pilihan(_),"&Pilihan"),
menu( pop_up, G_Menu, _, menu_level(_), "&Level"),
menu( normal, _, _, menu_tentang(_), "&About").

menu_pilihan(init):-
  menu(normal,_,_,mulai_game(_),"&Mulai"),
  menu(normal,_,_,menu_exit(_),"&Keluar").

mulai_game(press):-
%var yang digunakan
G_XU :=0, G_YU :=0,
window(G_key,_,win_ascii(_),"karakter",100,50,500,500).

%kanan
win_ascii(key_down(39,_)):-
pen(16,rgb(255,255,255)),
rect(40+G_XU,40+G_YU,70+G_XU,70+G_YU),
(G_XU=420 -> G_XU :=G_XU
else G_XU := G_XU+60),
pen(16,rgb(191,0,255)),
rect(40+G_XU,40+G_YU,70+G_XU,70+G_YU).

%kiri
win_ascii(key_down(37,_)):-
pen(16,rgb(255,255,255)),
rect(40+G_XU,40+G_YU,70+G_XU,70+G_YU),
(G_XU=0 -> G_XU :=G_XU
else G_XU := G_XU-60),
pen(16,rgb(255,215,0)),
rect(40+G_XU,40+G_YU,70+G_XU,70+G_YU).

menu_exit(press):-
close_window(_).

win_func(close) :-
  not( yes_no("","Anda sudah lelah?", ?)).

menu_level(init):-
  menu(normal,_,_,mudah(_),"&Amatiran"),
  menu(normal,_,_,normal(_),"&Normal"),
  menu(pop_up,G_menu,_,menu_susah(_),"&Susah").

menu_susah(init):-
                menu(normal,_,_,biasa(_),"&susah biasa"),
                menu(normal,_,_,banget(_),"&susah banget"),
                menu(normal,_,_,sekali(_),"&susah sekali").

menu_tentang(press):-
  message("About"," Masyeni 55413344 ",i).

§  ?-
Perintah yang digunakan untuk setiap awal dari program untuk menjadi intrepeteur untuk merespon bagian koding selanjutnya. Tanpa symbol ini, PASTI program yang sobat buat akan error ketika di RUN.

§  window(_,_,win_func(),"Menu",50,50,500,500).
window disini digunakan untuk pembuatan kotak tampilan dan ”Menu” adalah untuk pembuatan nama pada kotak tampilan dan 100,50,500,500 adalah untuk penentuan ukuran kotak tampilan dengan menggunakan fungsi win_func.

§  win_func(init):-
menu( pop_up, _, _, menu_pilihan(_),"&Pilihan"),
menu( pop_up, G_Menu, _, menu_level(_), "&Level"),
menu( normal, _, _, menu_tentang(_), "&About").
Win_func merupakan fungsi dari menu, dimana win_func tersebut merupakan yang utama. Didalam fungsi ini dibuat 2 menu pop up dan 1 menu normal. Di dalam menu pop up dengan nama Pilihan diberikan fungsi dengan nama menu_pilihan, sedangkan pada menu pop up Level diberi fungsi dengan nama menu_level yang nantinya akan diuraikan lagi untuk isi dari menu –menu tersebut. Terkahir menu about diberi fungsi dengan nama menu_tentang.

§  menu_pilihan(init):-
menu(normal,_,_,mulai_game(_),"&Mulai"),
menu(normal,_,_,menu_exit(_),"&Keluar").
Menu_pilihan merupakan fungsi yang dipanggil dari menu pop up Pilihan, di dalam fungsi ini dibuat 2 menu dengan nama Mulai yang diberi fungsi mulai_game, dan Keluar yang diberi fngsi menu_exit yang nantinya masing-masing fungsi akan diuraikan lagi.

§  mulai_game(press):-
%var yang digunakan
G_XU :=0, G_YU :=0,
window(G_key,_,win_ascii(_),"karakter",100,50,500,500).
Mulai_game disini merupakan pemanggilan fungsi dari menu pop up tadi yaitu Mulai. Fugsi ini jika di klik akan masuk ke window baru, dengan memanggil win_ascii dengan nama canvas “karakter” yang diberi ukuran 100,50,500,500.

§  %kanan
win_ascii(key_down(39,_)):-
pen(16,rgb(255,255,255)),
rect(40+G_XU,40+G_YU,70+G_XU,70+G_YU),
(G_XU=420 -> G_XU :=G_XU
else G_XU := G_XU+60),
pen(16,rgb(191,0,255)),
rect(40+G_XU,40+G_YU,70+G_XU,70+G_YU).
%Kanan disini merupakan komentar atau untuk membuat keterangan, win_ascii disini merupakan kode untuk membuat ascii arah kanan. Jadi disini saya menggabungkan tugas pertemuan ke 4 ini dengan pertemuan ke 3 yang disinggung mengenai ascii. Ketika mengklik menu mulai, akan masuk pada window baru yaitu window ascii dimana dalam window ini dapat menggerakan arah kanan dan kiri dan akan muncul kotak warna yang berbeda.

§  menu_exit(press):-
close_window(_).
win_func(close) :-
not( yes_no("","Anda sudah lelah?", ?)).
Menu_exit merupakan fungsi yang di panggil dari menu pop sebelumnya dengan nama Keluar, jadi ketika mengklik menu Keluar akan muncul kotak dialog dengan peringatan “Anda sudah lelah?”  peringatan tersebut muncul dengan memakai fungsi utama yaitu win_func(close).

§  menu_level(init):-
menu(normal,_,_,mudah(_),"&Amatiran"),
menu(normal,_,_,normal(_),"&Normal"),
menu(pop_up,G_menu,_,menu_susah(_),"&Susah").
Menu_level merupakan fungsi yang dipanggil dari menu pop up Level, dalam fungsi ini dibuatkan lagi menu atau submenu dari Level, yang terdiri dari Amatiran, Normal, dan Susah, dimana pada submenu Susah akan dibuat lagi menu pop up dengan menambahkan fungsi menu_susah yang akan diuraikan dibawah ini.

§  menu_susah(init):-
menu(normal,_,_,biasa(_),"&susah biasa"),
menu(normal,_,_,banget(_),"&susah banget"),
menu(normal,_,_,sekali(_),"&susah sekali").
Menu_susah merupakan fungsi yang di panggil dari submenu Susah, karena submenu ini akan membuat 3 menu pop up lagi, yaitu susah biasa, susah banget dan susah sekali. Jadi ketika klik susah akan muncul submenu lagi.

§  menu_tentang(press):-
message("About"," Masyeni 55413344 ",i).
Menu_tentang ini merupakan pemanggilan fungsi dari menu About, dimana ketika mengklik About akan muncul pesan dengan kalimat “Masyeni 55413344” dan “About” merupakan nama pada kotak dialog/pesan tersebut.


OUTPUT



pada menu mulai, akan muncul window baru dengan nama karakter yang ketika kita menekan arah kanan akan muncul kotak ungu dan kiri kotak kuning.     


Pada menu Keluar, akan muncul kotak pesan :


Pada menu Level akan muncul menu pop up :


Pada submenu Susah akan muncul menu pop up :


Pada menu about, akan muncul kotak pesan :












LihatTutupKomentar