Anda di halaman 1dari 3

TUGAS 2

Lakukan tugas di bawah. Jika telah berhasil, output yang dihasilkan anda print screen lalu masukkan
sebagai laporan ke dalam Word.

Compress file program (.java), file hasil kompilasi (.class) dan print screen output (file Word) dalam zip
file dan beri nama Tugas2-NIM-Nama. Contoh: Tugas2-120000012-Dafa

Harap ikuti arahan penamaan file ini!

Kemudian kirimkan melalui e-learning ini sebelum tanggal terakhir pengumpulan yang telah ditentukan.

Pada tugas ini anda diharapkan untuk mengubah permainan “Find the bomb” yang telah anda selesaikan
pada tugas 1. Perubahan tersebut berupa pemanfaatan konsep pemrograman berorientasi objek ke
dalam permainan. Berikut akan dijelaskan beberapa tips untuk membantu anda dalam merancang
program berorientasi objek tersebut.
Terdapat 3 class yaitu class Pemain, Lapangan dan permainan FindTheBomb. Masing-masing class
diagram tersebut dapat dilihat pada gambar di bawah.
Pemain
- nama: String
- nilai: int
+ Pemain(nama: String)
+ getNama() : String
+ setNama(nama: String)
+ getNilai() : int
+ setNilai(nilaibaru: int)

Lapangan
- jumlahKotak: int
- kotak[]: int
+ Lapangan()
+ Lapangan(jumKotak: int)
- buatKotak()
+ tambahItem(posisi: int)
+ adaItem(posisi: int)
+ hapusItem(posisi: int)

FindTheBomb
- play: boolean
+ FindTheBomb()
+ mainkan()
+ main(String[] a) : static void

Class Pemain akan mewakili objek Pemain yang memiliki atribut nama dan nilai serta semua method
constructor, method accessor dan method mutator yang biasa ada pada suatu class.
Class Lapangan akan mewakili objek Lapangan tempat bom berada. Kotak pada lapangan diwakilkan
dengan array yang awalnya diberi nilai 0 menandakan tidak ada item. Namun saat ditambah bom ke
dalam kotak tersebut maka kotak akan menyimpan nilai 1. Penjelasan setiap method tersebut dapat
dilihat berikut ini:
 Method constructor Lapangan() memberi nilai awal bagi jumlahKotak sebanyak 10, kemudian
memanggil method buatKotak()
 Method constructor Lapangan(int jumKotak) memberi nilai awal bagi jumlahKotak sebanyak
jumKotak lalu memanggil method buatKotak()
 Method buatKotak() merupakan method private yang berguna untuk membuat array kotak dan
memberi nilai 0 pada setiap kotak.
 Method tambahItem(int posisi) bermaksud untuk menandakan pada kotak dengan nomor posisi
memiliki bom, yaitu dengan cara mengubah nilai yang tersimpan pada kotak menjadi 1.
 Method adaItem(int posisi) bermaksud untuk mengetahui apakah terdapat bom pada kotak
tersebut atau tidak.
 Method hapusItem(int posisi) bermaksud untuk menghapus item bom pada kotak bersangkutan
bila sudah ditemukan.

Class FindTheBomb merupakan permainan yang sebenarnya sehingga class ini memiliki method main.
Method main hanya digunakan untuk memulakan permainan saja sedangkan permainan itu sendiri ada
di dalam method mainkan(). Atribut play pada permainan ini diberi nilai true. Method mainkan()
merupakan inti dari permainan yang dapat anda sesuaikan dari program yang telah anda buat di Tugas 1
seperti deskripsi pada Tugas 1 seperti di bawah.

Buat permainan “Find the bomb”. Permainan ini akan mencari 10 bom yang tersimpan pada
suatu lapangan yang telah dibagi-bagi menjadi 100 kotak persegi. Pemain haruslah menebak
posisi bom tersebut berdasarkan nomor kotaknya. Pastikan anda melakukan pengecekan posisi
agar tidak keluar dari 100 kotak tersebut. Jika pemain menebak posisi bom dengan benar maka
pemain mendapat nilai 5. Pemain hanya dibolehkan menebak posisi bom sebanyak 20 kali.
Saat permainan berakhir, nilai total pemain akan menentukan komentar yang diberikan.
Contohnya jika nilai pemain lebih dari 35 (exclusive) maka pemain excellent. Jika nilai pemain
dalam rentang 15-35 (inclusive) maka pemain good. Dan jika nilai pemain kurang dari 15
(exclusive) maka pemain bad.
Komentar tersebut dapat dipilih acak dari beberapa komentar yang dapat bebas anda variasikan
namun sesuaikan dengan rentang nilai pemain.

Jika permainan sudah berakhir, maka berikan pilihan ingin lanjut bermain atau tidak.

Bantuan: Untuk menghasilkan nilai acak dalam range (min,max) tertentu, anda bisa gunakan
Math.random() yang ada dalam package java.lang
min + Math.random() * (max – min)

Bonus challenge:
Jika anda berhasil menyelesaikan soal di atas, anda dapat menambah fungsi berikut:
 Buatlah posisi bom tersebut teracak setiap permainan baru dimulai (+5 point)
 Buatlah 2 pemain yang akan saling berlomba mendapatkan nilai yang paling banyak (+5 point)
Kriteria Penilaian

Tugas ini bernilai 100 point.


 Source code gagal dikompilasi / ada masalah (- 10 point)
 Tugas yang dikumpulkan lewat dari due date (-20 point)
 Setiap method melakukan apa yang seharusnya dikerjakan (50 point)
 Source code terorganisir dengan baik dan rapi (contoh Java style di
http://www.bluej.org/objects-first/styleguide.html) (10 point)
 Dokumentasi yang sesuai dengan format javadoc (10 point)
 Sample output sesuai dengan yang diharapkan (20 point)

Anda mungkin juga menyukai