Anda di halaman 1dari 48

Java Fundamentals

3-8
Dunia, Animasi, dan Akhir Permainan

Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang.
Tujuan
• Pelajaran ini akan membahas tujuan berikut:
− Membangun objek world menggunakan metode konstruktor
− Membuat objek menggunakan konstruktor
− Menulis pernyataan pemrograman untuk menggunakan
kata kunci new
− Mendefinisikan tujuan dan sintaks variabel
− Mengenali sintaks untuk menentukan dan menguji variabel
− Menulis pernyataan pemrograman untuk beralih di
antara dua gambar
− Menulis laporan pemrograman untuk mengakhiri game

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 3
Permainan
Konstruktor
• Bila subclass Dunia baru dibuat dan
dikompilasi, Greenfoot akan menjalankan
konstruktor yang membuat instancenya untuk
ditampilkan dalam skenario
• Konstruktor menyiapkan instance dan membuat
status awal, misalnya ukuran dan resolusi instance ini
− Konstruktor tidak memiliki return type
− Nama mereka, persis setelah kata "public," sama
dengan kelas yang ditetapkan

Konstruktor adalah metode spesial yang dieksekusi secara


otomatis kapan saja instance baru dari kelas dibuat.

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 4
Permainan
Parameter Konstruktor
• Sebuah parameter konstruktor memungkinkan
nilai awal instance diteruskan ke konstruktor
• Parameter ini:
− Hanya tersedia untuk instance yang dibuat oleh konstruktor.
− Memiliki cakupan dibatasi yang terbatas pada
saat konstruktor dinyatakan
− Memiliki masa pakai dibatasi yang terbatas pada
satu pelaksanaan konstruktor
− Hilang setelah konstruktor selesai dijalankan
− Variabel ini berlaku selama instance ini ada

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 5
Permainan
Contoh Konstruktor
• Konstruktor ini di subclass Dunia menggunakan kata
kunci super() untuk meneruskan nilai tinggi, lebar, dan
resolusi ke instance

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 6
Permainan
Contoh Parameter
• Untuk mengubah ukuran papan game,
modifikasi argumen dalam parameter
konstruktor
• Contoh ini membuat dunia persegi, bukan persegi
panjang dengan mengubah batas koordinat x ke 400

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 7
Permainan
Membuat Instance Aktor Secara Otomatis
• Tulis kode dalam konstruktor dunia untuk secara
otomatis menambahkan instance aktor di permainan
bila skenario diinisialisasi
• Hal ini akan membuat pemain tidak perlu secara
manual menambahkan instance sebelum permainan
dimulai
• Misalnya, dalam sebuah game pencocokan, kartu
harus secara otomatis ditampilkan dalam skenario saat
permainan dimulai

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 8
Permainan
Kode untuk Secara Otomatis Membuat Turunan
• Kode di dalam konstruktor Dunia meliputi
komponen berikut:
− Pernyataan super() dengan ukuran dunia sebagai argumen
− Metode addObject() dengan argumen berikut:
• Kata kunci new, diikuti oleh nama kelas, memberi tahu
konstruktor bahwa sebuah instance baru dari kelas itu harus
ditambahkan
• Koordinat X dan Y di mana instance baru harus diatur posisinya di
dunia

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 9
Permainan
Instance Greenfoot Aktor
• Bergiliran antara dua gambar yang tampak
sedikit berbeda, memberikan instance kesan
bergerak
• Instance Greenfoot Aktor:
− Menerima dan menyimpan gambar dari kelas mereka
• Gambar ini ditetapkan untuk kelas ketika kelas diciptakan
− Memiliki kemampuan untuk menyimpan beberapa gambar
− Dapat diprogram untuk mengubah gambar yang
ditampilkan kapan saja

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 10
Permainan
Kelas GreenfootImage
• Kelas GreenfootImage memungkinkan aktor
Greenfoot untuk mempertahankan gambar yang
terlihat dengan memegang objek bertipe
GreenfootImage
• Kelas ini digunakan untuk membantu sebuah kelas
memperoleh dan memanipulasi berbagai jenis gambar
• Gambar yang kelas ini akan gunakan harus sudah
ada sebelumnya dalam folder Gambar skenario

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 11
Permainan
Konstruktor untuk Mendapatkan Objek Gambar Baru
• Buat konstruktor yang mengambil objek gambar
baru dari file saat membuat instance dari kelas
• Konstruktor contoh di bawah ini membuat
gambar baru dan menyambungkannya ke kelas
Aktor

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 12
Permainan
Nama File gambar
sebagai Argumen di
Kata kunci baru
Daftar Parameter

Metode setImage Kelas GreenfootImage

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 13
Permainan
Menetapkan Gambar Baru ke Kelas
• Pernyataan di bawah ini membuat objek gambar
baru dari nama file gambar
• Ketika dimasukkan ke dalam kode sumber kelas,
objek gambar ini siap untuk digunakan oleh kelas
• Pernyataan dijalankan sebagai
berikut:
− Objek GreenfootImage dibuat lebih dulu
− Panggilan metode setImage() dijalankan, meneruskan
objek gambar yang baru dibuat sebagai argumen ke daftar
parameter

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 13
Permainan
Contoh Menetapkan Gambar
• Metode setImage() menetapkan gambar dalam file
"bee.png" ke kelas Aktor
• Setiap kali instance kelas ini ditambahkan ke
skenario, ini akan menampilkan gambar "bee.png"

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 14
Permainan
Membuat gambar Nama file gambar
sebagai argumen.
baru.

Memungkinkan objek gambar untuk Gambar dari kelas


digunakan oleh kelas Actor. Greenfoot.
Memperkirakan gambar sebagai
parameter.

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 15
Permainan
Mengapa Instance Menyimpan Beberapa Gambar
• Anda mungkin ingin instance menyimpan
dan mengakses beberapa gambar:
− Untuk tampak berubah warna
− Untuk tampak berubah dari satu jenis objek ke jenis lainnya
Misalnya, secara ajaib berubah dari kelinci ke kura-kura
− Untuk tampak bergerak:
• Untuk berjalan:
− Ubah dari objek dengan kaki kiri dipanjangkan, ke objek dengan kaki kanan
dipanjangkan
• Untuk membalik kartu:
− Ubah dari kartu kosong menjadi bukan kartu kosong
• Untuk terbang:
− Ubah dari sayap terkepak menjadi sayap terlipat

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 15
Permainan
Mengakses Beberapa Gambar
• Misalnya, sebuah instance dapat mengakses dua
gambar, masing-masing dengan posisi sayap yang
sedikit berbeda, jadi instance mengepakkan sayapnya
saat bergerak
• Untuk mencapai gerakan ini:
− Buat dua gambar instance, masing-masing dengan
posisi sayap sedikit berbeda
− Simpan dua gambar dalam instance ini, sehingga
mereka dapat diakses berulang-ulang sebagai objek
bergerak
− Kodekan kelas untuk beralih antara dua gambar
yang ditampilkan

Dunia, Animasi, dan Akhir


Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 16
Permainan
JF 3-8
Variabel
• Gunakan variabel kelas untuk menyimpan dua
objek gambar
• Hal ini memungkinkan kelas untuk dengan
mudah mengakses mereka untuk digunakan ance
dalam inst an
Variabel dinyatakan di dalam class. Digunakan untuk
menyimp informasi untuk penggunaan nanti, atau untuk
memasukkan informasi. Dapat menyimpan objek atau nilai.

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 17
Permainan
Objek 1 Variabel 1

Objek 2 Variabel 2

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 18
Permainan
Format Variabel
• Format variabel berisi:
− Jenis data:
• Jenis data apa yang akan disimpan dalam variabel
− Nama variabel:
• Deskripsi variabel apa yang digunakan agar dapat dijadikan referensi
nantinya
private variable-type variable-name;

• Dalam contoh ini, nama variabel adalah gambar1


dan jenis variabel GreenfootImage
private GreenfootImage image1;
Menyatakan Variabel
• Nyatakan variabel sebelum konstruktor dan metodenya
• Format untuk menyatakan variabel meliputi:
− Kata kunci private yang menandakan bahwa variabel ini
hanya tersedia di dalam kelas Aktor
− Kelas yang menaungi gambar
− Placeholder untuk variabel di mana gambar akan disimpan

Variabel

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 19
Permainan
Pernyataan Penetapan
• Penetapan diperlukan untuk menyimpan objek-
objek di variabel
• Bila sebuah objek telah ditetapkan ke sebuah
variabel, variabel berisi referensi ke objek tersebut
• Sebuah pernyataan penetapan:
− Menyimpan objek atau nilai ke dalam variabel
− Tertulis dengan simbol sama dengan
• Format:
variable = expression;

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 20
Permainan
Komponen Pernyataan Penetapan
• Sebuah pernyataan penetapan meliputi:
− Variabel:
• Nama variabel untuk menyimpan nilai atau objek
− Simbol sama dengan, yang merupakan simbol penetapan
− Ekspresi:
• Nama objek atau nilai untuk ditetapkan
• Perintah bahwa objek atau nilai baru
• Kelas yang menaungi gambar
• Contoh:

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 21
Permainan
Memulai Gambar atau Nilai
• Memulai proses membuat instance dan nilai awalnya
• Ketika kelas menciptakan instance baru, setiap
instance berisi referensi ke gambar atau nilai-nilai yang
terkandung dalam variabel
• Pedoman:
− Signature tidak menyertakan return type
− Nama konstruktor sama dengan nama kelas
− Konstruktor secara otomatis dijalankan untuk
meneruskan gambar atau nilai pada instance jika instance
kelas dibuat

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 22
Permainan
Contoh Konstruktor Aktor
• Konstruktor aktor berikut memberi tahu Greenfoot
untuk secara otomatis membuat instance Lebah baru
dan memulai atau menetapkan dua variabel ke
instance
• Baris terakhir dari konstruktor,
setImage(Gambar1), menunjukkan bahwa variabel
pertama harus
ditampilkan saat instance ditambahkan untuk skenario

Dunia, Animasi, dan Akhir


Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 23
Permainan
JF 3-8

Dunia, Animasi, dan Akhir


Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 24
Permainan
Menguji Nilai Variabel
• Setelah kelas memulai dua variabel dengan gambar,
program instance akan secara otomatis beralih
gambar yang ditampilkannya saat bergerak
• Saat gambar beralih bersama setiap gerakan,
ini membuat instance tampak lebih teranimasi
• Mungkin memprogram peralihan antargambar
tanpa harus menulis banyak baris kode yang
mengaitkan setiap gambar dengan setiap gerakan

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 24
Permainan
Menulis Tindakan dalam Pseudocode
• Kenali tindakan yang harus diprogram
dengan menuliskannya dalam pseudocode
• Pseudocode ini mendeskripsikan tugas atau
pengoperasian untuk instance yang dikerjakan dalam
bahasa campuran Java dan kata bahasa Inggris biasa
• Hal ini membantu kita memahami lebih baik perilaku
apa yang kita inginkan untuk instance lakukan sebelum
menuliskan kode sebenarnya

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 25
Permainan
Contoh Pseudocode
• gambar1 ditampilkan saat instance dibuat
• Saat Lebah membuat gerakan berikutnya,
gambar2 harus ditampilkan, dan sebaliknya
• Hal ini dinyatakan sebagai pernyataan if-else
if (current image displayed is image1) then
use image2 now

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 26
Permainan
else
use image1 now

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 27
Permainan
'==' Operator
• Pernyataan pemrograman yang memerintahkan
instance untuk silih berganti di antara gambar berisi:
− Pernyataan if-else
− '==' operator (dua tanda sama dengan)
• '==' operator:
− Digunakan dalam sebuah pernyataan if untuk menguji
apakah dua nilai sama
− Membandingkan nilai satu dengan yang lain
− Menghasilkan hasil boolean (true atau false)
• Ingatlah bahwa '=' adalah simbol penetapan,
bukan simbol untuk menguji apakah dua nilai sama
Komponen Pernyataan if-else
• Komponen Pernyataan if-else:
− Metode getImage menerima gambar instance saat ini
− Operator '==' memeriksa apakah nilai yang ditampilkan
oleh instance setara dengan gambar1
• jika sama, maka tampilkan gambar2
• atau tampilkan gambar1
Contoh Pernyataan if-else
• Pernyataan if-else di bawah ditulis dalam metode act
untuk membuat instance memilih antara tampilan dua
gambar saat bergerak maju
Contoh Pernyataan if-else
• Kita juga akan memindahkan kode animasi ke
metodenya sendiri untuk memastikan kode lebih
bersih
Akhir Permainan
• Kelas Greenfoot memiliki metode stop() yang
dapat Anda gunakan untuk mengakhiri permainan
di satu titik yang Anda tetapkan
• Anda mungkin ingin mengakhiri permainan bila:
− Pemain mencapai sebuah pencapaian
− Waktu pada jam telah habis
− Instance menyentuh koordinat atau objek tertentu

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 31
Permainan
Contoh Permainan Lebah
• Contoh permainan:
− Pemain menentukan berapa kali Lebah tertangkap oleh objek
Laba-laba untuk mengakhiri permainan
− Saat permainan berakhir, suara memutar, "Game Over"
• Spesifikasi Game:
− Buat dan mulai variabel untuk menyimpan nyawa dan skor
− Berikan jumlah total Lalat yang dimakan (skor)
− Masukkan metode stop() untuk menghentikan
permainan ketika nyawa pemain mencapai 0

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 32
Permainan
Temukan Metode stop() di API Greenfoot
• Buka menu Bantuan dan pilih Dokumentasi Kelas
Greenfoot
• Temukan metode stop() dalam Greenfoot API

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 33
Permainan
Tulis Metode stop() dalam Kode Sumber
• Pada titik seharusnya permainan diakhiri, tulis metode
yang mengikuti kode sumber
• Notasi titik digunakan untuk memanggil metode

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 34
Permainan
Contoh Menatapkan Variabel ke Instance
• Lebah harus menangkap sejumlah objek Lalat
untuk meningkatkan skor
• Lebah juga akan kehilangan nyawa jika tertangkap
oleh laba-laba
• Variabel ditetapkan sebelum konstruktor
dan metodenya
• Konstruktor Lebah menetapkan variabel untuk
instance yang nnya
dihasilka

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 35
Permainan
Contoh Metode catchFly() yang Ditetapkan
• Metode catchFly() yang ditetapkan ditulis di
bawah metode() untuk memberi tahu Lebah untuk
menangkap objek lalat
• Kita akan menambahkan satu ke variabel skor
untuk setiap Lalat yang dimakan

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 36
Permainan
Contoh Menetapkan Variabel ke Instance 2
• Nyawa Bee akan hilang melakukan kontak
dengan spider
• Kami juga akan memosisikan ulang Bee ke bagian
kiri atas
• Kami akan memperpanjang kelas Bee
dengan menambahkan metode baru:
− caughtBySpider() dan menambah panggilan untuk
metode act() tersebut

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 37
Permainan
Contoh Menetapkan Variabel ke Instance 2
• Kemudian kami akan menguji jika pengguna
tidak memiliki nyawa lebih dan menghentikan
game

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 38
Permainan
Menampilkan Teks
• Kadang-kadang kita ingin agar pengguna aplikasi
mendapat informasi mengenai aspek-aspek tertentu
dari interaksi mereka, seperti nyawa, skor, atau
kartu tersisa
• Greenfoot lagi-lagi mempunyai beberapa cara
untuk mencapai tujuan ini
• Yang paling sederhana adalah dengan
menggunakan metode Dunia - showText()

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 39
Permainan
Memperbarui Metode catchFly()
• Kita akan menambahkan kode untuk metode
catchFly() untuk menambah bidang skor lalu
menampilkan hasilnya ke layar
• Kita juga telah memindahkan skor terbaru ke
metodenya sendiri dan memanggilnya dalam catchFly()

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 40
Permainan
Terminologi
• Istilah-istilah penting yang digunakan dalam
pelajaran ini termasuk:
− Constructor
− Variabel ditetapkan
− Pseudocode

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 41
Permainan
Rangkuman
• Dalam pelajaran ini, Anda seharusnya sudah belajar
cara:
− Membangun objek dunia menggunakan metode konstruktor
− Membuat objek menggunakan konstruktor
− Menulis pernyataan pemrograman untuk menggunakan
kata kunci baru
− Mendefinisikan tujuan dan sintaks variabel
− Mengenali sintaks untuk menentukan dan menguji variabel
− Menulis pernyataan pemrograman untuk beralih di
antara dua gambar
− Menulis laporan pemrograman untuk mengakhiri game

JF 3-8
Dunia, Animasi, dan Akhir
Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. 42
Permainan

Anda mungkin juga menyukai