You are on page 1of 27

c   p

Æ ÆÆ Æ  


 6  

Greenfoot proyek yang telah dimulai oleh Michael Kölling pada tahun 2003, dan

prototipe yang pertama dibangun oleh Poul Henriksen (Magister siswa) dan Michael

Kölling (supervisor) di 2003/2004.

Dari 2005 pembangunan dilanjutkan melibatkan anggota lain dari BlueJ Group di

University of Kent dan Deakin University. Kemudian pertama rilis, Greenfoot versi

1.0, telah diterbitkan pada 31 Mei 2006, dengan lebih lanjut dan terus dikembangkan

dari sejak pertamarilis. Pada bulan Mei 2007, Greenfoot proyek telah mendapatkan

penghargaan "Duke's Choice Award" dalam kategori "Java Teknologi dalam

Pendidikan".

Greenfoot sendiri saat ini masih sedang dikembangkan di University of Kent dan

Deakin University dengan dukungan dari Sun Microsystems, dan Greenfoot itu
c   Ô


sendiri adalah gratis, karena Pelaksanaannya didasarkan pada pembangunan

lingkungan serta edukasi.

  6  

Greenfoot adalah interaktif Java untuk pembangunan lingkungan, dikembangkan

terutama untuk keperluan pendidikan, serta memungkinkan untuk memudahkan

pembangunan aplikasi grafis dua dimensi, seperti simulasi dan permainan interaktif.

Greenfoot ini adalah sebuah program yang dikembangkan oleh Universitas of Kent

yang fungsinya untuk edukasi pemograman, dan software ini di design dengan

menggunakan Java. Software ini memungkinkan kita untuk membuat sebuah game 2

dimensi seperti Pacman, Supermario dan sebagainya.

Karena tujuan awalnya untuk edukasi pemograman, greenfoot ini awal mulanya

untuk menarik minat anak-anak untuk belajar memprogram, Greenfoot ini cocok

untuk anak usia 13 tahun keatas. Untuk menggunakannya sama seperti memprogram

biasa pada umumnya, berbentuk teks tapi jadi lebih mudah karena ada perangkat

bantu seperti class browser, editor, compiler.

Greenfoot juga mendukung bahasa Java secara penuh, dengan adanya perangkat

bantu tadi, membuat lebih mudah dalam memahami konsep OOP. Greenfoot

memungkinkan a  a dan interaksi dengan objek dalam konteks "skenario".

Di dalam project tersebut, kita bisa membuat dua macam tipe class dari library

greenfoot. Yaitu class world dan actor. ·   merupakan latar dari game yang

akan dibuat. Untuk membuat class world, caranya adalah dengan meng-klik new sub

class di bagian world. Maka akan mucul sebuah kotak dialog. Kemudian kita diminta
c   


untuk memberi nama untuk kelas world tersebut. Setelah itu kita dapat memilih

gambar sebagai latar belakang class world yang akan kita buat. Di dalam greenfoot

sendiri telah tersedia beberapa gambar untuk latar belakang, seperti gambar tanah,

pasir, batu, air, dll. · 


 adalah sebuah kelas yang berfungsi sebagai karakter

pada game yang akan kita buat. Untuk membuat actor caranya adalah dengan meng-

klik icon aktor, kemudian pilih new subclass. caranya hampir mirip dengan

pembuatan class world. Pada class actor juga telah disediakan beberapa gambar,

sepertii gambar animal, people, symbol, dll.

Pada greenfoot tersedia perangkat lunak download termasuk lunar lander game,

sebuah simulasi ants, dan kura-kura grafis. Juga tersedia angka simulasi, Conway

dari permainan kehidupan, dan pada layar piano. Setelah berada di bawah obyek

pembangunan, mereka dapat interaktif akan ditempatkan dalam Greenfoot 'dunia',

dan pengembang dapat berinteraksi langsung dengan obyek untuk memohon metode.

# 
   

Greenfoot tersedia untuk Microsoft Windows , Mac OS X , Linux , Sun Solaris , dan
JVM (   Æ  )
c   è


 6


Untuk dapat menjalankan program greenfoot di komputer, anda harus sudah


menginstal program Java 5 (JDK 1.5) atau dapat menggunakan Java 6( jdk-6u2-
windows-i586-p.exe)

Anda harus memiliki Java 5 (alias JDK 1.5) atau yang versi terbaru dan sudah
terinstal di sistem anda untuk dapat menggunakan Greenfoot.. Jangan download versi
bernama "JRE" (Java Runtime Environment) - JRE tidak cukup. Anda memerlukan
versi yang bernama JDK.

 ·  






Tahap awal install-lah Java 6 dengan cara double klik pada file hasil download
dan serperti kebanyakan program di windows lainnya cara instalasinyapun sangat
mudah, ikuti instruksi dilayar hingga muncul finish.

Ga ar 1. D kak fa java da aka a rk a ayar ha

a  aa.

Lanjutkan dengan menginstall greenfoot hinga selesai

Ga ar 2. I a fa


rf ha

a  aa
c   -


Tampilan awal Greenfoot:

Ga ar 3. Ta aa awa


rf

Yang akan kita bahas disini adalah scenario pertama, Tom &Jerry (kucing ngejar
tikus)

Scenario-nya :

- Ada 4 tikus , 5 keju, dan 1 kucing

- Tikus makan keju

- Kucing makan tikus

- Tikus akan bergerak mencari keju hingga semua keju habis

- Kucing akan menghentikan tikus dengan memakan tikus

- Jika semua keju habis, Anda KALAH

- Jika semua tikus dimakan kucing, Anda MENANG

- Tikus bergerak otomatis (random dari komputer)

- Kucing bergerak dikontrol keyboard

- Kucing dan tikus tidak bisa menembus/melewati pohon


c   [


Buat scenario dengan mengklik menu scenario lalu new lanjutkan dengan member
nama scenario(misal: Tom & Jarry ) seprti gambar 4. Lalu akan muncul isian seperti
gambar 5 .

Ga ar 4. M a ara ar Ga ar 5. Bra a a ara

Jika dilihat di windows explorer maka hasil yang kita lakukan akan terlihat seperti
gambar di bawah ini:

Ga ar 6. Ha a  aa ara jaka daaha 

aka wadw  rr

Disana terlihat scenario yang kita buat berbentuk folder dan didalamnya ada 3 folder
yang otomatis terbentuk, yaitu : greenfoot, image dan sound . fungsi folder image
adalah untuk menyimpan gambar yang akan kita gunakan, sedangkan folder sound
c   r


untuk menyimpan file suara yang kita pakai untuk game buatan kita. Folder images
dan sound awalnya masih kosong.

 6  

Buatlah sebuah subclass di     dengan cara   lalu  


  seperti gambar 7. Lalu akan muncul jendela baru untuk memasukkan nama
kelas seperti gambar 8 misalnya. Beri nama ·Æ   (perhatikan huruf
beasar dan kecilnya, karena pada pemrograman java bersifat case sensitif artinya
huruf besar berpengaruh),lalu terbentuk nama CatMouseWorld pada class World
seperti gambar 9.

Ga ar 7 Cara  a  a Ga ar 8. Bra a a  a

Ga ar 9. Na a CaM  rd ada a rd


c   


Desain:

pada Gambar 10.Klik kanan pada ·Æ     , lalu muncul
jendela koding pada gambar 11.

Ga ar 10 . O dar Ga ar 11. Jda Kda

Untuk membuat sebuah World dengan ukuran 10 x 7 cell, dan tiap cell berukuran
60px ketikan kode

Ga ar 12. Jda

kda

Background dari image akan menggunakan ³cell.jpg´

Coba Anda· Æ (tombol kiri atas), maka akan didapat pesan error

Hal ini karena file ³cell.jpg´ tidak ditemukan dalam folder lokal scenario yag kita
buat. Untuk itu, copy-kan ³cell.jpg´ dari folder Wombat
(C:/Greenfoot/scenarios/Wombat/images) ke folder scenario kita

(C:/Greenfoot/scenarios/Cat_n_Mouse/images)
c   §


Coba Anda, · Æ (tombol kiri atas), maka akan didapat tampilan seperti
gambar 13

Gamabar 13. Tampilan wallpaper

 
Setelah desain World sudah berhasil dibuat, tentukan aktor-aktor yang
diperlukan dalam scenario (terserah Anda)
Dalam scenario ini, kita menggunakan aktor
- Cat : aktor kucing
- Mouse : aktor tikus
- Pizza : aktor pizza(makanan tikus)
- Pohon : aktor pelengkap sbg penghalang/tembok
- Counter : aktor penghitung keju dan tikus yang dimakan
- Hasil : aktor penampil hasil MENANG/KALAH
c   p


Klik kanan Actor, New subclass seperti pada gambar 14, dan isikan pilih
image seperti pada gambar 15,gambar Actor terserah Anda.

Ga ar 14. Nw  a ada a r Ga ar 15. M aah a a


 y
da
aka

Dalam pemberian nama Actor harap diperhatikan penulisannya


(Besar/kecil huruf case sensitive), kita gunakan huruf kecil sehingga
menjadi

Ga ar 16. S a


ada a r
c   pp


Desain Lanjutan:

Sebelum kita membahas detail Actor-nya, kita akan mendesain kembali World-nya

- Rancanglah desain posisi aktor-aktor yang akan langsung ditampilkan pada


saat Start

- Tentukan posisi pohon ada dimana saja

- Tentukan posisi pizza ada dimana saja

- Tentukan posisi tikus ada dimana saja

- Tentukan posisi kucing ada dimana

 Desain Untuk pohon:

(Ô  p Ô  è - [ r  §





Ô









Ga ar 17. D aa Ph


c   pÔ


Kita tambahkan method populasi_pohon() untuk pengaturan posisi pohon pada


CatMouseWorld

harus dipanggil

addObject(new pohon(),posisi cell X,


posisi cell Y)

Ga ar 18. Jda kda


h ada CaM  rd

 Desain untuk pizza:

(3,0)

 p Ô  è - [ r  §

 



Ô









G
Ga ar18. D aa h da aa
c   p


Kita tambahkan method populasi_keju() untuk pengaturan posisi keju pada


CatMouseWorld

Harus dipanggil

addObject(new keju(),posisi cell X,


posisi cell Y)

Ga ar 19. Jda kda


kj ada
CaM  rd

 Desain untuk kucing:

 p Ô  è - [ r  §

 



Ô









Ga ar20. D aa haa da k a



c   pè


Kita tidak perlu membuat method khusus untuk menambah-kan kucing karena
kucing hanya 1 ekor, sehingga perintahnya hanya 1 baris. Langsung saja
ketikan pada class CatMouseWorld

addObject(new cat(),posisi cell X,


posisi cell Y)

Ga ar 21. Jda kda


k a
ada
CaM  rd

 Desain untuk Tikus:

  p Ô  è - [ r  §

 



Ô









Ga ar22. D aa haa da k a

c   p-


Kita tambahkan method populasi_mouse() untuk pengaturan posisi tikus pada


CatMouseWorld

Harus dipanggil

addObject(new mouse(),posisi cell X,


posisi cell Y)

Ga ar 23. Jda kda


  ada CaM  rd

ù  
Sifat dari kucing :
- Bergerak dikontrol melalui keyboard
- Makan tikus
- Tidak boleh menembus/menabrak pohon
c   p[


Bergerak dikontrol melalui keyboard

harus dipanggil

getKey() = mengetahui

tombol yang ditekan

Ga ar 24. Jda kda


ada a r k a

Right= (X+1,Y)

Left = (X-1,Y

Up = (X,Y-1)
Down= (X,Y+1)

 Makan Tikus
If (nemu_tikus) then
makan_tikus; (tikus di   )
tikus_yg_dimakan++; (counter tikus_mati nilainya brtmbh)
Else
gerak;
Untuk counter tikus yg dimakan akan dibahas nanti
c   pr


pada act() diubah menjadi spt


disamping

Ga ar 24. Jda kda


ada a r k a

 Tidak boleh menembus/menabrak pohon


If (nemu_pohon) then
balik_ke_posisi_semula;
Balik_ke_poisi_semula;
If arah=kanan then geser_kiri;
If arah=kiri then geser_kanan;
If arah=atas then geser_bawah;
If arah=bawah then geser_atas;
 Tidak boleh menembus/menabrak pohon

nemu_pohon() untuk mengecek apakah kucing menabrak pohon atau tidak


c   p


pada gerak() disipkan source code agar


kucing tidak bisa menembus pohon

ù  

Sifat dari tikus

- Bergerak otomatis

- Makan keju

- Tidak boleh menembus/menabrak pohon

 Sebelumnya kita siapkan dahulu properti yang dibutuhkan:

Default gerak pertama silakan di set (terserah Anda)

Disini kita set ke kanan


c   p§


 Bergerak otomatis

If (tidak bisa_gerak(arah_grk)) then

arah_baru=acak(arah)

while(arah_baru==arah_gerak)

arah_baru=acak(arah)

Misal :

If (tidak bisa_gerak(kiri)) then //jika tdk bs gerak ke kiri

arah_baru=acak(arah) //kanan,kiri,atas,bawah

while(arah_baru==kiri)

arah_baru=acak(arah) //diacak terus smp selain kiri

Bisa_gerak() -> boolean


c   Ô


ARH_GRK=KANAN;

6 7 8 9 u p  ur p  up  
0

(1,0) adlh selisih posisi antara objek yg kita cari (pohon) dgn objek utama 9 adlh
batas paling kanan, shg jika tikus ada di posisi X=9, tdk blh bergerak ke kanan

ARH_GRK=KIRI;

0 1 2 3 u p  up p  up  
0

(-1,0) adlh selisih posisi antara objek yg kita cari (pohon) dgn objek utama

0 adlh batas paling kiri, shg jika tikus ada di posisi X=0, tdk blh bergerak ke kiri
c   Ôp


ARH_GRK=ATAS;

0 1 2 3 uÔ p  uÔ Ô  u p 
0

(0,-1) adlh selisih posisi antara objek yg kita cari (pohon) dgn objek utama

0 adlh batas paling kiri, shg jika tikus ada di posisi Y=0, tdk blh bergerak ke atas

ARH_GRK=BAWAH;

0 1 2 3 uÔ -  uÔ è  u p 
4

(0,1) adlh selisih posisi antara objek yg kita cari (pohon) dgn objek utama

6 adlh batas paling bawah, shg jika tikus ada di posisi Y=6, tdk blh bergerak ke
bawah
c   ÔÔ


 Tidak boleh menembus / menabrak pohon

If (nemu_pohon)

Balik ke posisi semula

nemu_pohon() untuk mengecek apakah tikus menabrak pohon atau tidak

Kembali ke posisi semula

Disisipkan pada method gerak()


c   Ô


 Makan_keju

If (nemu_pizza)

makan_pizza;

jml_pizza_dimakan++;

Else

gerak;

Counter penghitung pizza yang dimakan akan dibahas selanjutnya

Makan_pizza

Me-remove pizza yang ditemukan

 Sehingga act() dari mouse adalah

ù · 
Sifat dari counter
- Menghitung jumlah keju yang dimakan tikus
- Menghitung jumlah tikus yag dimakan kucing
c   Ôè


- Mengecek jika jumlah keju yang dimakan memenuhi target, menampilkan


pesan Anda KALAH
- Mengecek jika jumlah tikus yang dimakan memenuhi target, menampilkan
pesan Anda MENANG

 Properti yang disiapkan:

- Menghitung jumlah keju yang dimakan tikus


- Menghitung jumlah tikus yag dimakan kucing

- Mengecek jika jumlah keju yang dimakan memenuhi target, menampilakn


pesan Anda KALAH

- Mengecek jika jumlah tikus yang dimakan memenuhi target, menampilkan


pesan Anda MENANG

Counter di definisikan di dalam CatMouseWorld

addObject(ct,0,0) akan menambahkan couter pada posisi


(0,0), karena tidak ada image-nya, maka akan ditampilkan
dengan image logo greenfoot kecil

Jika game berjalan terlalu cepat, bisa di-set untuk spped-nya menjadi lebih lambat

Greenfoot.setSpeed(speed);
c   Ô-


ù  

Sifat dari hasil

 Menampilkan hasil dari game, MENANG / KALAH melalui image

Dalam penggunaan Color dan Font, harus meng-import library

 

PJG-10

LBR-10

Color(0, 0, 0, 160) => Hitam

Color(R, G, B, Opaque)

R=0, G=0, B=0, Opaque=160


c   Ô[


c 


 

Color(255, 255, 255, 100) => Putih

R=255, G=255, B=255, Opaque=100

³Menang!!!´ akan dituliskan jika parameter pil=1

Selain itu akan dituliskan ³KALAH!!!

 Method Menang

Method menang() akan digunakan sebagai method untuk menampilakn pesan


MENANG

Disisipkan pada CatMouseWorld

addObject(new hasil(1),5,3);

1 adalah parameter untuk menampilkan pesan ³Menang!!!´

Ditempatkan pada posisi cell (5,3)


c   Ôr


Output di layar:

 Method Kalah

Method kalah() akan digunakan sebagai method untuk menampilkan pesan KALAH

Disisipkan pada CatMouseWorld

addObject(new hasil(0),5,3);

0 adalah parameter untuk menampilkan pesan ³Kalah!!!´

Ditempatkan pada posisi cell (5,3)

Output di layar:

 Method kalah() dan method menang()

Pemanggilan Method kalah() dan Method menang() dilakukan oleh aktor counter,
sehingga act() pada counter

You might also like