Anda di halaman 1dari 31

LAPORAN HASIL PRAKTIKUM

PBO

Nama : Muhammad Zaini Hanafi

NIM : 203020503054

Kelas :A

MODUL II : PENERAPAN OOP PADA GREENFOOT

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA
2021
BAB I
TUJUAN DAN LANDASAN TEORI

1. Tujuan

1. Mahasiswa mampu memahami konsep OOP melalui pemrograman IDE


Greenfoot.
2. Mahasiswa mampu meng-implementasikan OOP pada scenario/adegan
yang dibuat.

2. Landasan Teori

1. Scenario

Scenario adalah sebuah permainan atau simulasi yang


diimplementasikan di Greenfoot. Untuk mengeksekusi suatu scenario,
dapat menggunakan control eksekusi yang terdiri dari :
a. Act, menjalankan semua aksi di skenario satu kali

b. Run/pause, menjalankan semua aksi di skenario berulang-ulang


sampai tombol Pause di-klik
c. Reset, memberhentikan sebentar skenario atau mengulang skenario
kembali ke posisi awal
d. Speed, menjalankan aksi lebih cepat atau lambat

Gambar 2.1 Kontrol Eksekusi

2. Superclass

Greenfoot memilki beberapa tipe superclass, yaitu :

a. World, memegang subclass yang menyediakan background gambar


untuk skenario world dan mendefinisikan ukuran dan resolusi
world
Gambar 2.2 Merubah Ukuran World
Kata kunci “super” menandakan bahwa constructor DukeWorld
memanggil constructor dari superclass-nya yaitu constructor
World(). #Class DukeWorld adalah subclass dari class World.
b. Actor, memegang subclass-subclass yang menghasilkan instances
yang beraksi di skenario.

Superclass World

Superclass Actor

Gambar 2.3 Superclass World dan Actor

3. Subclass

Subclass adalah kelas tururan dari superclass

a. Menurunkan semua properti superclass Actor, contohnya


mendefiniskan lebih awal aksi-aksi yang dapat dilakukan oleh Aktor
subclass
b. Dapat memiliki properti baru yang dibuat programmer khusus untuk
subclass seperti gambar dan aksi
c. Properti subclass

 Subclass memiliki hubungan “is-a” terhadap Superclass contoh :


Lebah is a subclass of the Actor superclass
 Properti dapat dimodifikasi (seperti nama Class, gambar yang
ditampilkan, atau aksi-aksi yang dilakukan).
 Panah pada hirarki Class menunjukkan hubungan antara subclass
dengan superclass
Gambar 2.4 Subclass Actor
4. Class Definition

Class Definition mencakup:

 Kata kunci “class” untuk mendefinisikan class

 Kata kunci “extends” untuk mendefinisikan pewarisan

 Nama class (subclass)

 Nama superclass yang diwarisi subclass

Gambar 2.5 Class Definition

Isi dari sebuah class:

 Variabel (atau field) : menyimpan data dalam object/instance

 Sebuah variabel memiliki syntax penulisan sebagai berikut:


#Access modifier: public/protected/default/private
# Tipe data yang disimpan
# Nama variabel
Contoh :

Access modifier Tipe data Nama variabel

5. Object / Instances

Instances adalah obyek-obyek dari sebuah class yang beraksi pada


sebuah skenario. Sebuah instances memiliki karakteristik Class, akan
tetapi dapat dimanipulasi dan diubah.
6. Method
Method adalah sebuah kumpulan operasi atau tugas dimana instance
sebuah class dapat menjalankan. Ketika sebuah method dipanggil / di-
invoke, method tersebut akan menjalankan operasi atau tugas yang
dituliskan di source code.
Sebuah method memiliki beberapa komponen yang
mendeskripsikan operasi-operasi atau tugas-tugas yang dijalankan
 Return type : Menspesifikasikan data yang dikembalikan
oleh method
 Method name : Mendeskripsikan pekerjaannya si method

 Parameter List : Informasi yang masuk kedalam panggilan method

Gambar 2.7 Contoh Method


BAB II

PEMBAHASAN

Modul 2 menugaskan membuat sebuah game menggunakan aplikasi greenfoot.


Berikut game yang saya buat beserta penjelasannya.

Game yang saya buat bernama katak adventure. katak akan mengumpulkan skor
sebanyak mungkin dengan memakan serangga. Katak memiliki 5 nyawa yang akan
berkurang jika memakan benda mati. Berikut beberapa screenshot game tersebut.

Gambar 2.1 Tampilan menu, game, game over


Kelas kelas yang dibuat :

Gambar 2.2 Kelas-kelas program

Dalam game tersebut terdapat kelas world yang berisi latar game, kelas aktor
berisi tokoh utama, makanan, benda mati yang tidak boleh dimakan, kelas counter
untuk menghitung skor dan nyawa, serta kelas play dan exit.

Membuat kelas menu untuk meletakkan kelas play


Gambar 2.3 Coding kelas menu

Pada kelas tersebut terdapat fungsi untuk mengatur ukuran dan menambahkan
objek play.

Membuat kelas latar untuk meletakkan objek katak, makanan, benda mati dan
skor/nyawa.

G
ambar 2.4 Coding kelas latar
Kelas latar merupakan scene dimana kita memainkan game ini. Dalam kelas
latar tentukan ukuran yaitu 300x500. Kemudian deklarasikan objek-objek yang akan
dimasukkan yaitu ada hero,bug,no,dan counter ( skor dan nyawa ).

Kelas berikutnya yaitu over sebagai scene saat nyawa katak habis.

Gambar 2.5 Coding kelas over

Pada kelas tersebut terdapat fungsi untuk mengatur ukuran dan menambahkan
objek exit.
Setelah semua scene telah dibuat, berikutnya membuat kelas objek yang
berperan dalam game ini.

Untuk membuat sebuah fungsi untuk menghitung skor dan nyawa si katak saya
menggunakan kelas counter(skor) dan counter2 (nyawa). Kelas ini dapat kita impor
melalui menu edit dalam aplikasi greenfoot.

Yang pertama kelas counter untuk menghitung skor

Gambar 2.6 Coding kelas counter

Dalam coding tersebut saya hanya menambahkan fungsi static agar dapat
digunakan pada semua kelas. Sisanya default.
Yang kedua kelas counter2 untuk menghitung nyawa.

Gambar 2.7 Coding kelas counter2

Hampi sama seperti kelas counter, yang berbeda yaitu value nya saya beri nilai
5 ( jumlah nyawa si katak).

Selanjutnya membuat kelas objek bergeraknya, yang pertama yaitu kelas hero
sebagai tokoh utama.

Fungsi makan : digunakkan untuk menghapus objek yang menyentuh katak dan
juga akan menambah skor+1 saat menyentuh/memakan objek lain.

Gambar 2.8 Coding kelas hero


Fungsi act : if isKeyDown right dan left digunakkan untuk mengatasi inputan
user, saat user menekan arrow key left/right maka objek hero juga akan bergerak ke
kiri dan ke kanan. If isTouching(No.class) counter2.add(-1) berfungsi jika katak
bersentuhan dengan objek pada kelas no, counter2(nyawa) akan berkurang 1. Fungsi
if(counter2.value==0){

Greenfoot.setWorld(new over());

getWorld().removeObject(this);

} berfungsi untuk mengubah scene ke kelas over jika value dari counter2 telah
habis(nyawa=0). Atau kata lain Game Over.

Gambar 2.9 Coding kelas hero


Selanjutnya membuat kelas bernama yes, kelas ini berisi objek yang bisa
dimakan oleh si katak.

Gambar 2.10 kelas yes dan subkelas nya

Pada kelas yes menggunakan kelas abstract agar sifatnya menurun ke subkelas
nya yaitu bug-bug2. Fungsi cetakbaru untuk memunculkan objek bug dan fungsi
maju untuk menggerakkan objek bug turun ke bawah. Dalam kelas ini juga terdapat
fungsi makan dan act yang sama dengan kelas hero.

Gambar 2.11 Coding kelas yes


Selanjutnya membuat subkelas dari yes yaitu bug,bug1,bug2. Semua subkelas
ini berisi objek yang bisa dimakan oleh katak. Didalam subkelas ini terdapat fungsi
cetakbaru untuk memunculkan objek dan fungsi maju untuk menggerakkan objek bug
turun ke bawah. Untuk kelas act nya kita gunakan fungsi super.act() agar sama
dengan sifat induknya yaitu kelas yes.

Gambar 2.12 Coding subkelas bug

Selanjutnya membuat kelas no beserta subkelasnya yang berisi objek yang tidak
boleh dimakan oleh katak.

Gambar 2.13 kelas no dan subkelas nya


Kelas no hampir sama dengan kelas yes, jika katak menyentuh objek pada kelas
yes skor bertambah sedangkan jika menyentuh objek pada kelas no nyawa katak akan
berkurang.

Gambar 2.14 Coding kelas no


Sama seperti subkelas bug, subkelas no1-no2 juga akan mewarisi sifat induk
kelas no.

Gambar 2.15 Coding subkelas no

Selanjutnya membuat kelas play dan exit untuk memulai dan mengakhiri game.
Pertama kelas play. Karena logo play terlalu besar maka saya paskan dengan
membagi lebar dan tinggi dengan 4. Fungsi if(Greenfoot.mousePressed(this)){

getImage().scale((int)Math.round(getImage().getWidth()*0.9),

(int)Math.round(getImage().getHeight()*0.9)); untuk membuat animasi logo


play agak mengecil ketika ditekan. Kemudian fungsi
if(Greenfoot.mouseClicked(this)){

Greenfoot.setWorld(new latar()); berfungsi untuk mengubah scene ke kelas


latar. Simple nya ketika kita klik logo play maka game akan dimulai.
Gambar 2.16 Coding kelas play

Pada kelas exit hampir sama dengan kelas play, perbedaannya pada saat kita
klik logo exit maka akan berpindah ke scene kelas menu ( scene awal ).

Gambar 2.17 Coding kelas exit


BAB III

KESIMPULAN

Kesimpulan yang dapat dicapai bahwa cara pemrograman berorientasi objek


menggunakan greenfoot dalam bentuk animasi akan lebih dimengerti dibandingkan
dengan penjelasan teori. Kurangnya pemahaman tentang bahasa yang digunakan pada
greenfoot akan mempersulit kelanjutan dalam pembuatan kode perintah-perintah
selanjutnya.
DAFTAR PUSTAKA

Akram, A. (2021). Cara Membuat Game Sederhana Menggunakan Aplikasi


Greenfoot. From https://www.youtube.com/watch?v=5vujkf7co4U Diakses
pada 10 oktober 2021
Muhardian, A. (2021). Tutorial Java OOP: Mengenal Class Abstrak dan Cara
Pakainya. From https://www.petanikode.com/java-oop-abstract/ Diakses pada
10 oktober 2021
LAMPIRAN

Gambar 2.1 Tampilan menu, game, game over

Gambar 2.2 Kelas-kelas program


Gambar 2.3 Coding kelas menu

Gambar 2.4 Coding kelas latar


Gambar 2.5 Coding kelas over

Gambar 2.6 Coding kelas counter


Gambar 2.7 Coding kelas counter2

Gambar 2.8 Coding kelas hero


Gambar 2.9 Coding kelas hero

Gambar 2.10 kelas yes dan subkelas nya


Gambar 2.11 Coding kelas yes

Gambar 2.12 Coding subkelas bug


Gambar 2.13 kelas no dan subkelas nya

Gambar 2.14 Coding kelas no


Gambar 2.15 Coding subkelas no

Gambar 2.16 Coding kelas play


Gambar 2.17 Coding kelas exit

Anda mungkin juga menyukai