Download - 2.other oop basic
![Page 1: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/1.jpg)
Other OOP Basic
![Page 2: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/2.jpg)
Konsep penting
Method overloading Encapsulation this keyword final static
![Page 3: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/3.jpg)
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
![Page 4: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/4.jpg)
![Page 5: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/5.jpg)
Method Overloading
Method overloading: nama methodnya sama namun beda implementasinya.
Perbedaan implementasi: dibedakan oleh parameternya (jumlah parameter, tipe data parameter, urutan parameter)
![Page 6: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/6.jpg)
Contoh
![Page 7: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/7.jpg)
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
![Page 8: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/8.jpg)
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 -
![Page 9: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/9.jpg)
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.
![Page 10: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/10.jpg)
Encapsulation
Satu class me-encapsulate/ membungkus data (dalam variabel) dan algoritma (dalam method).
Nilai dari variabel menggambarkan kondisinya (state)
Method menggambarkan perilakunya (behavior)
![Page 11: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/11.jpg)
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.
![Page 12: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/12.jpg)
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.
![Page 13: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/13.jpg)
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.
![Page 14: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/14.jpg)
Constant (final)
Constant pada Java menggunakan keyword final.
Variabel final hanya bisa diberi nilai sekali dan tidak bisa diubah.
![Page 15: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/15.jpg)
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)
class Test
{
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=new Test();
Test t2=new Test();
t1.a=100;
t2.a=100;
![Page 16: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/16.jpg)
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;
}
}
![Page 17: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/17.jpg)
Kerjasama Objek
Pada suatu aplikasi berbasis objek, aplikasi tersebut menciptakan objek yang saling berkolaborasi di dalam memori
![Page 18: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/18.jpg)
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?
![Page 19: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/19.jpg)
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 - ? - ?
![Page 20: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/20.jpg)
Latihan Gender bisa : ‘l’ || ‘p’ atau ‘L’ || ‘P’ Method toString() mengembalikan "author-
name (gender) at email", e.g., “Amira (p) at [email protected]".
![Page 21: 2.other oop basic](https://reader038.vdocuments.site/reader038/viewer/2022103109/5455340eb1af9f33608b4752/html5/thumbnails/21.jpg)
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".