Class yang terlibat pada permainan Daduku adalah:
1. Class Dadu
2. Class Pemain
3. Class Permainan
Class Dadu digunakan untuk mewakili dadu yang dilempar. Class Pemain digunakan untuk mewakili pemain yang bermain. Class Permainan digunakan untuk mewakili permainan Daduku itu sendiri, yang akan mengelola objek Dadu dan Pemain untuk menentukan pemenang permainan.
3. Visualisasi Class
Class divisualisasikan dalam UML sebagai
kotak persegi dengan 3 ruang:
◦ Nama : identitas kelas
◦ Variabel (atribut, state, field): atribut kelas
◦ Method (behavior, function, operation) :
perilaku kelas
4.
5. Method Overloading
Method overloading: nama methodnya
sama namun beda implementasinya.
Perbedaan implementasi: dibedakan oleh
parameternya (jumlah parameter, tipe data
parameter, urutan parameter)
7. Method Overloading pada
Constructor
// Define the Circle class
public class Circle { // Save as "Circle.java"
// Private variables
private double radius;
private String color;
// Constructors (overloaded)
public Circle() { // 1st Constructor
radius = 1.0;
color = "red";
}
public Circle(double r) { // 2nd Constructor
radius = r;
color = "red";
}
public Circle(double r, String c) { // 3rd Constructor
radius = r;
color = c;
}
}
Kelas Circle memiliki 3
method Constructor.
Method mana yang dipilih
akan disesuaikan dengan
parameter yang digunakan
sewaktu mencipta objek
Circle.
Jika tidak ketemu
padanannya akan muncul
error kompilasi
8. public vs private
public: class/variabel/method dapat diakses
oleh semua objek dalam sistem.
private: variabel/method dapat diakses
oleh kelas itu sendiri
Pada UML:
public dinotasikan
dengan +
private dinotasikan
dengan -
9. Encapsulation
Objek tidak seharusnya membuka lebar
semua informasi mengenainya.Ada
informasi yang harus ditutupi dari klien.
◦ Nasabah tidak perlu tahu proses di dalam
mesin ATM sewaktu penarikan
Encapsulation adalah teknik
mempaketkan informasi dengan
menyembunyikan segala hal yg harus
disembunyikan dan menampakkan segala
hal yang bisa ditampakkan.
10. Encapsulation
Satu class me-encapsulate/ membungkus
data (dalam variabel) dan algoritma (dalam
method).
Nilai dari variabel menggambarkan
kondisinya (state)
Method menggambarkan perilakunya
(behavior)
11. Information Hiding
Variabel di-encapsulate
dalam class dengan
menggunakan akses private.
Untuk mencapainya kita
panggil/buat method
accessor yang public.
Objek saling berkomunikasi
antar sesamanya dengan
menggunakan antar-muka
(method public).
Implementasi dalam
method di-encapsulate
dalam class.
12. Keyword this
Keyword this digunakan untuk merujuk pada objek
ini dalam suatu class.
Kegunaannya untuk menghilangkan ambigu.
this dapat digunakan untuk variabel dan method.
Pada constructor, this digunakan untuk memanggil
constructor lain.
13. Method toString()
Method toString() merupakan salah satu method dasar
yang ada dalam class Object, yang akan mengembalikan
String.
Setiap class dalam Java, sebaiknya mengoverride method
toString() dengan cara mencetak deskripsi umum dari
objek tersebut.
14. Constant (final)
Constant pada Java menggunakan
keyword final.
Variabel final hanya bisa diberi nilai sekali
dan tidak bisa diubah.
15. Static
Variabel static: variabel
class
Variabel static akan
diinisialisasi ketika
kelas diinisialisasi.
Walaupun ada banyak
objek hasil ciptaan
suatu class yang
memiliki variabel static,
variabel staticnya
tetaplah satu
(kepunyaan class)
classTest
{
static int a=10;
static int b =100;
}
Variabel static dapat diakses seperti
ini:
Test.a=100;
Test.b=200;
Cara di bawah juga valid:
Test t1=newTest();
Test t2=newTest();
t1.a=100;
t2.a=100;
16. Contoh
// The Circle class definition
public class Circle { // Save as "Circle.java"
// Public constants
public static final double DEFAULT_RADIUS = 8.8;
public static final String DEFAULT_COLOR = "red";
// Private variables
private double radius;
private String color;
// Constructors (overloaded)
public Circle() { // 1st Constructor
radius = DEFAULT_RADIUS;
color = DEFAULT_COLOR;
}
public Circle(double radius) { // 2nd Constructor
this.radius = radius;
color = DEFAULT_COLOR;
}
public Circle(double radius, String color) { // 3rd Constructor
this.radius = radius;
this.color = color;
}
// Public getter and setter for private variables
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
// toString() to provide a short description of this instance
public String toString() {
return "Circle with radius = " + radius + " and color of " +
color;
}
// Public methods
public double getArea() {
return radius*radius*Math.PI;
}
}
17. Kerjasama Objek
Pada suatu aplikasi berbasis objek, aplikasi
tersebut menciptakan objek yang saling
berkolaborasi di dalam memori
18. Latihan
Permainan Daduku dimainkan oleh dua pemain. Setiap pemain
yang mendapat giliran akan melempar dua dadu bersamaan.
Nilai yang muncul pada kedua dadu mempunyai nilai tertentu,
seperti di bawah:
Kombinasi Skor
* Nilai 1 muncul hanya pada satu dadu 100
* Nilai 5 muncul hanya pada satu dadu 50
* Kedua dadu menampilkan nilai 2 200
* Kedua dadu menampilkan nilai 3 150
* Kedua dadu menampilkan nilai 6 250
Salah satu pemain akan dinyatakan menang jika berhasil
mengumpulkan nilai lebih dari 1000.
Ada berapa class yang terlibat pada permainan ini?
19. Class yang terlibat pada permainan
Daduku
Dadu
- sisi : int
+ Dadu ()
+ getSisi () : int
+ setSisi (sisi : int) : void
+ lemparDadu () : void
+ toString () : String
Pemain
- nama : String
- nilai : int
+ Pemain (nama:String)
+ getNama () : String
+ setNama (nama : String) : void
+ getNilai () :int
+ setNilai (skor : int) : void
+ toString () : String
Permainan
- ?
- ?
20. Latihan
Gender bisa :‘l’ || ‘p’ atau ‘L’ || ‘P’
Method toString() mengembalikan "author-
name (gender) at email", e.g.,“Amira (p) at
amira@somewhere.com".
21. Latihan
Asumsi: buku dikarang oleh satu pengarang saja.
Method toString() that returns "'book-name' by author-
name (gender) at email".
Gunakan method Author's toString(), yg mengembalikan
"author-name (gender) at email".