Tugas Softskill (T3)



Game Strawberry Prolog
“Life Or Die”


Kelas : 3IA03
Anggota Kelompok :
·       Arif Rahman Hakim              [ 51411140 ]
·       Dimas Bayu Prakoso            [ 52411106 ]
·       Harun Al Rosid                     [ 53411252 ]
·       Mochamad Reza Risky         [ 54411531 ]





UNIVERSITAS GUNADARMA
2014



GAME STRAWBERRY PROLOG
“LIFE OR DIE”

ABSTRAKSI
Dengan kemajuan teknologi saat ini telah banyak berbagai macam jenis game yang diciptakan seperti game yang mempunyai kemampuan Artificial Intelegent. Game tersebut dibuat untuk mengasah kemampuan logika pemain dengan melawan komputer . Dalam penulisan ini game yang dibuat adalah game “ LIFE OR DIE “. Game ini dapat dimainkan oleh semua kalangan dari anak – anak sampai dewasa untuk melatih kecerdasan atau strategi pemain dalam mengendalikan robot . game ini biasanya dimainkan menggunakan mainan robot – robotan saja, karena teknologi sudah semakin maju dan sudah jarang sekali masyarakat untuk memainkan permainan ini maka kami membuatnya menggunakan media computer ataupun laptop. Karena media tersebut sudah banyak digunakan oleh masyarakat . pembuatan aplikasi ini menggunakan Bahasa Pemrograman Strawberry Prolog

PENDAHULUAN
LATAR BELAKANG MASALAH
Permainan atau game merupakan media yang digunakan untuk memenuhi berbagai kebutuhan.
Semisal kebutuhan yang timbul akibat rasa jenuh, kebutuhan akan hiburan sampai kebutuhan dalam dunia bekerja. Dewasa ini lebih banyak bermunculan game yang mengutamakan kecerdasan berpikir atau respon berpikir. Game diidentikkan dengan pengaplikasian pada suatu device, dengan begitu keaktifan dalam merespon secara fisik lambat laun terabaikan.
Untuk melengkapi dalam pemenuhan keaktifan respon fisik, kami berempat membuat game yang mengutamakan respon pikiran yang terintegrasi dengan reson fisik. Game pertarungan antara 2 robot yang menguji respon pikiran yang cepat dan melatih ketepatan pengambilan keputusan kapan bersembunyi , berdiri serta menembak.
TUJUAN
            Tujuan permainan ini adalah memperoleh score sebanyak mungkin dengan menembaki lawan agar peluru kita mengenainya. Semakin banyak peluru kita mengenainya maka semakin banyak juga life lawan yang berkurang sehingga peluang kita untuk menang juga semakin besar. Pada saat akhir permainan, sisa life yang paling banyaklah yang menjadi pemenangnya.

METODE
Dalam membuat tulisan ini, kami menggunakan metode observasi dan teknik studi pustaka untuk mendapatkan data dan informasi yang diperlukan. Tidak hanya itu, kami juga mencari bahan dan sumber-sumber dari media masa elektronik yang berjangkauan internasional yaitu, Internet.
PEMBAHASAN
Game Life Or Die ini adalah jenis game sederhana sehingga cocok menggunakan aplikasi strawberry prolog. Strawberry prolog merupakan sebuah bahasa pemrograman logika yang memiliki Object Oriented Language. Pada prolog ini tidak terdapat prosedur, hanya terdapat kumpulan data yang akan diolah. Untuk menggunakan strawberry prolog tidak dilakukan instalasi. Jadi program dapat dijalankan dengan membuka file strawberry prolog (.spj) di dalam strawberry prolog itu sendiri.
Untuk membuka file game Life Or Die, kita harus masuk kedalam strawberry prolog terlebih dahulu, kemudian pilih FILE – OPEN. Setelah itu pilih file “Life Or die.spj”.
Setelah itu akan muncul jendela strawberry prolog dengan lembar kerja berisikan listing program game “Life Or Die” seperti gambar dibawah ini.
Kemudian untuk menjalankan games-nya dapat menggunakan shortcut F5. Atau pada menu bar pilih RUN  - RUN. Hasilnya akan keluar jendela splash scrren terlebih dahulu, setelah itu jika kita pilih “Start Game” maka jendela splash screen akan hilang dan layar game akan muncul seperti pada output dibawah ini.

Initial State
            Pada initial state terdapat tampilan awal yang terdiri dari robot biru dan robot hijau yang berlindung di balik tembok sebagai perlindungannya.  Permainan dapat dimulai dengan memilih menu Pilihan “Start”. Pemain dapat memilih tingkat kesulitan dalam permainan pada menu level “easy”, “standard”, “expert”. Jika pemain memilih menu Pilihan “Start” maka otomatis level yang akan digunakan dalam permainan adalah level default yakni level “Mudah”. Permainan berlangsung selama 30 detik.
            Permainan “Life Or Die” dimainkan oleh satu pemain yang mengendalikan robot biru melawan lawan yang mengendalikan robot hijau. Permainan ini di design untuk melatih dalam menghindari serangan musuh dari tembakan yang ditujukan lawan.



Rule (Aturan):

            1.      Permainan berlangsung selama 30 detik
2.      Pemain menggunakan tombol atas untuk berdiri, tombol bawah untuk menunduk dan tombol spasi untuk menembak.
3.      Menembak hanya dapat dilakukan ketika pemain atau komputer berdiri.
            4.      1 detik setelah pemain atau komputer menembak, pemain atau komputer akan otomatis
                   menunduk untuk menghindari tembakan beruntun serta lag pada permainan.
5.      Jika pemain menembak tepat pada saat computer berdiri maka life komputer berkurang satu,
       jika komputer menembak tepat pada saat pemain berdiri maka life pemain berkurang satu
           6.      1 detik setelah pemain atau komputer menembak, pemain atau komputer akan otomatis
                  menunduk untuk menghindari tembakan beruntun serta lag pada permainan.
7.      Pada detik 0 permainan akan berakhir dan perhitungan life akan berjalan.
8.      Jika pada detik 0 life pemain lebih dari life komputer maka pemain dinyatakan menang.
9.      Jika pada detik 0 life pemain kurang dari life komputer maka pemain dinyatakan kalah.
10.  Jika pada detik 0 life pemain sama dengan life komputer maka permainan dinyatakan seri.

ALGORITMA BACKWARD CHAINING
Backward chaining atau Backward reasoning merupakan salah satu dari metode inferensia yang dilakukan untuk di bidang kecerdasan buatan.
Backward chaining dimulai dengan pendekatan tujuan atau goal oriented atau hipotesa. Pada backward chaining kita akan bekerja dari konsekuen ke antesendent untuk melihat apakah terdapat data yang mendukung konsekuen tersebut. Pada metode inferensi dengan backward chaining akan mencari aturan atau rule yang memiliki konsekuen ( Then klausa ...) yang mengarah kepada tujuan yang diskenariokan/diinginkan.
Konsep AI
Kecerdasan buatan pada game ini adalah respon pada komputer. Komputer dapat mengecek keadaan pemain apakah sedang berdiri atau tidak, ketika pemain berdiri komputer akan menembak. Komputer dapat melakukan pengecekan ini pada saat berdiri maupun pada saat menunduk. Jika pemain hanya diam saja tidak mau berdiri maka komputer yang akan berdiri untuk memancing pemain berdiri pula.

TEKNIK PEMBUATAN
          Disini kami akan menjelaskan sedikit teknik pembuatan game “Life Or Die” ini beserta  kodingan program game strawberry prolog yang kelompok kami buat :

(tanda "%" saya gunakan untuk mengawali keterangan, sesuai dengan aturan dari strawberry prolog. )

1.                 1.   Membuatbagianawalprogram : deklarasi variable, import gambar, pembuatan
                  window.  

Bagianawal program diawali dengan "?-" lalu bisa diisi dengan deklarasi variable, import gambar dan pembuatan window. Setiap deklarasi variable harus diawali huruf G_ di depannya. Contoh :

-----------------------------------------------------------------------------------------------------------------------
?-
G_life_green:=10,
% membuat variable G_life_green dengan nilai awal 10
G_Latar is bitmap_image("Latar.bmp",_),
% membuat variable G_Latar yang isinya adalah gambar dengan alamat "Latar.bmp" untuk memudahkan taruh gambar dalam satu folder dengan folder kodingan prolognya sehingga kita hanya perlu menuliskan nama filenya saja
window(G_splashscreen,_,window_awal(_),"Splash Screen", 350, 150,640,420).
% membuat tampilan awal / window awal dengan ukuran 640x420
close_window(G_splashscreen),
% membuat tampilan awal ditutup
window(_,_,win_func(_),"Shoot Me",0,0,1040,555).
% membuat tampilan kedua / window dalam dengan ukuran 1045 x 555
---------------------------------------------------------------------------------------------------------------------------



     2.      Membuat Menu
Diawalidengan statement "win_func(init):-" . Ada dua jenis menu yaitu menu normal dan menu pop up. Menu normal adalah menu biasa yang ketika di klik akan langsung melakukan aksi tertentu. Menu Pop-up ketika di klik akan mengeluarkan sub menu. Contoh :
win_func(init):-
menu( pop_up, _, _, menu_menu(_),"&Menu"),
% membuat menu pop up dengan nama "Menu" dan nama variable "menu_menu", menu popup dapat mempunyai sub menu.

     3.      MembuatSub Menu Dan Aksi Dari Sub Menu

Terusandarikodingandiatas, untuk membuat sub menu harus diawali dengan nama variable dari menu tersebut. Contoh :

menu_menu(init):-
menu(normal,_,_,start_game(_),"&start"),
menu(normal,_,_,menu_exit(_),"&Keluar").
%membuat isi sub menu dari popup menu_menu yang isinya adalah start_game dan menu_exit

start_game(press):-
%membuat aksi yang dilakukan ketika sub menu mulai_game di klik, aksi-aksi bisa dilakukan antara lain adalah menaruh gambar dan  mendeklarasikan variable
 draw_bitmap( 512, 10, G_Papanwaktu, _, _),
%menaruh gambar G_cleantime pada posisi 300,10 pada window
G_aksi_green:=0,
G_aksi_blue:=0,
G_life_green:=99,
G_life_blue:=99,
G_time:=31,
%mendeklarasikan variable
draw_bitmap( 0, 273, G_Bertahan1, _, _),
draw_bitmap( 883, 273, G_Bertahan2, _, _),
draw_bitmap( 140, 366, G_Benteng, _, _),
draw_bitmap( 785, 366, G_Benteng, _, _).
%menaruh gambar –gambar diatas pada posisinya masing-masing. Gambar yang ditaruh harus sudah dideklarasikan sebelumnya




     4.      Membuat Menu Exit DenganTampilanPeringatanKepada user

Terusandarikodingandiatas, berikut adalah aksi ketika menu_exit ketika di klik yang akan keluar dari windows dengan sebelumnya memunculkan peringatan kepada user apakah ingin keluar atau tidak.

menu_exit(press):-
close_window(_).
win_func(close) :-
     not( yes_no("","Are you sure to exit?", ?)).
%yang ini tentu gampang dimengerti, tinggal di kopas aja kodingan diatas




    5.      MembuatAksi Yang Berjalan Ketika Tombol Di Keyboard Ditekan. 

Pertamakitaharustahu kode tombol keyboard, kode 38 untuk tombol atas, kode 40 untuk tombol bawah, kode 32 untuk tombol spasi. Untuk kode-kode lainnya silahkan cari sendiri. Contoh :
win_func(key_down(38,_)):-
G_aksi_blue:=1,
draw_bitmap( 0, 273, G_Berdiri1, _, _).
%membuat aksi yang akan dijalankan ketika tombol tanda panah atas pada keyboard di tekan, aksi yang dijalankan diatas adalah deklarasi variable dan penaruhan gambar.
            ---------------------------------------------------------------------------------------------------------------------------


     6.      Membuat Statement Percabangan If, PembuatanFungsi,  PemanggilanFungsi

Yang ini butuh nalar dan perenungan sebentar, statement if di tandai dengan “->” lalu dapat diikuti dengan percabangan dengan menambahkan “else”. Untuk membuat fungsi tinggal ketik “namafungsi(_):-” . Dan untuk memanggilnya tinggal ketik “namafungsi(_)”. Contoh :
musuhberdiri(_):-
G_aksi_green:=1,
draw_bitmap( 883, 273, G_Berdiri2, _, _).
%membuat  fungsi bernama  musuhberdiri lengkap dengan isinya

musuhcek(_):-
G_aksi_blue=1->
G_aksi_green:=1,
draw_bitmap( 883, 273, G_Berdiri2, _, _),
wait(0.1),
draw_bitmap(780,335,G_Asaphijau,_,_),
draw_bitmap(580,335,G_Asaphijau,_,_),
%membuat fungsi musuhcek lengkap dengan isinya

%Membuat Statement Percabangan. Jika benar variable G_Time bernilai 18 dan G_Level bernilai 2 maka akan dipanggil fungsi musuhcek, jika salah maka akan dipanggil fungsi musuhberdiri.





Berikut ini merupakan hasil tampilan output yang akan muncul jika langkah-langkah pembuatan diatas dilakukan dengan benar.


PENUTUP
Demikianlah tulisan yang kami buat ini, semoga bermanfaat dan menambah pengetahuan para pembaca. Kami mohon maaf apabila ada kesalahan ejaan dalam penulisan kata dan kalimat yang kurang jelas, dimengerti, dan lugas.Karena kami hanyalah manusia biasa yang tak luput dari kesalahan Dan kami juga sangat mengharapkan saran dan kritik dari para pembaca demi kesempurnaan tulisan ini. Sekian penutup dari kami semoga dapat diterima di hati dan kami ucapkan terima kasih yang sebesar-besarnya.

DAFTAR PUSTAKA

    Gunadarma BAAK News

    Diri Sendiri

    Foto saya
    Kuliah di Universitas Gunadarma. Dengan nomer NPM 51411140

    My Friends