Class%&%Object%2% - WordPress.com...* Ubah%klas%Rekening%di%slide% sebelumnya,dengan%mengubah%...
Transcript of Class%&%Object%2% - WordPress.com...* Ubah%klas%Rekening%di%slide% sebelumnya,dengan%mengubah%...
-
Class & Object 2 ~Praktikum~
Imam Fahrur Rozi
-
* Package * Kata kunci “import” * Access Modifier * Konstruktor * Kata kunci “static”
Materi
-
Package
-
* Package dalam Java digunakan untuk mengorganisir klas dengan kategori yang sama atau yang menyediakan fungsionalitas yang sama * Mirip seperti folder yang digunakan untuk mengorganisir file
Package
namapaket
-
package
* Deklarasi package package namapaket;
* Deklarasi subpackage yang ada dalam package lain package namapaket.namasubpaket;
-
* Gambar di samping menunjukkan klas A ada dalam package paket1 * Maka klas A dideklarasikan sbb:
package paket1; class A{ String a1; …… }
Deklarasi Package
A
a1: String
paket1
-
* Di dalam suatu package boleh ada package yang lain * Gambar di samping menunjukkan klas A ada dalam package paket2 dan paket2 ada dalam paket1 * Maka klas A dideklarasikan sbb:
package paket1.paket2; class A{ String a1; …… }
Deklarasi Package
A
a1: String
paket2
paket1
-
Kata Kunci “import”
-
Kata Kunci “import”
* Import dipakai ketika dalam suatu klas, dipakai klas lain atau mengacu ke klas yang lain, dimana klas lain tersebut berada pada paket yang berbeda * Deklarasi import diletakkan di bawah deklarasi package (kalau ada)
-
Contoh package entiti1; public class Matakuliah{
public String kode;
public Matakuliah(){ kode = “-‐-‐-‐-‐”; }
public Matakuliah(String n){ kode= n; }
public void tampilData(){ System.out.println(“Kode = ”+kode); }
}
-
Contoh * Pada klas MkTester, dibuat objek mk dari klas Matakuliah yang ada di paket entiti1. Oleh karena itu perlu import klas Matakuliah dari paket entiti1.
package entiti2; import entiti1.Matakuliah; public class MkTester{
public static void main(String[] argv){ Matakuliah mk=new Matakuliah(); mk.tampilData(); }
}
-
import paket1.*; * Untuk meng-‐import semua klas yang ada dalam suatu paket, digunakan tanda *
Import All Classes
-
Access Modifier
-
Access Modifier
Balok
+ panjang: int ~ lebar: int -‐ tinggi: int
+ hitungVolume(): int ~ hitungLuasPermukaan(): int + main(String[] argv): void
BalokTester1
+ main(String[] argv): void
bangundatar
BalokTester2
+ main(String[] argv): void
bangundatartester
-
* Mekanisme Percobaan: * Dalam method main di klas BalokTester1 dan
BalokTester2, lakukan instansiasi objek dari klas Balok * Coba akses masing-‐masing atribut dan masing-‐masing
method-‐nya
Access Modifier
-
* Pertanyaan: * Atribut dan method apa saja dari klas Balok yang tidak
bisa diakses dari klas BalokTester1? Mengapa demikian? * Atribut dan method apa saja dari klas Balok yang tidak
bisa diakses dari klas BalokTester2? Mengapa demikian? * Bagaimana caranya agar atribut tinggi bisa diakses dari
klas BalokTester1 dan BalokTester2, selain dengan mengubah access modifier-‐nya?
Access Modifier
-
* Atribut dengan access modifier private bisa diakses dengan menggunakan accessor & mutator method * Accessor/Getter method: method yang digunakan untuk mengakses atau mengambil nilai dari suatu atribut dengan acccess modifier private * Mutator/Setter method: method yang digunakan untuk memberikan/mengatur/men-‐set nilai kepada atribut dengan acccess modifier private
Accessor/Getter & Mutator/Setter Method
-
* Diawali dengan get, diikuti dengan nama atributnya * Tipe data getter sama dengan tipe data atributnya class Mahasiswa{
private String nim; private float ipk; public String getNim(){ return nim; } public float getIpk(){ return ipk; }
}
Getter Method
-
* Diawali dengan set, diikuti dengan nama atributnya * Tipe data setter pasti void * Method setter memiliki parameter sesuai dengan atributnya
Setter Method
class Mahasiswa{ private String nim; private float ipk; public void setNim(String n){ nim = n; } public void setIpk(float f){ ipk = f; }
}
-
class Mahasiswa{ private String nim; private float ipk; public String getNim(){ return nim; } public float getIpk(){ return ipk; } public void setNim(String n){ nim = n; } public void setIpk(float f){ ipk = f; }
}
-
* Lengkapi klas Balok di atas dengan setter dan getter untuk atribut tinggi dan lebar (atribut panjang tidak perlu dibuatkan setter dan getter krn sudah public) * Kemudian sesuaikan klas BalokTester1 dan BalokTester2 agar tidak error
Tugas
-
Konstruktor
-
* Di dalam method main() lakukan instansiasi objek dari klas Rekening * Apakah bisa? Padahal di dalam klas Rekening tidak dituliskan konstruktor! Mengapa demikian?
Konstruktor
Rekening
-‐ noRek: String -‐ saldo: int
+ setNoRek(String n): void + setSaldo(int s): void + getNoRek(): String + getSaldo(): int
RekeningTester
+ main(String[] argv): void
-
* Ubah klas Rekening, dengan menambahkan konstruktor default di dalamnya! * Apa bedanya dengan klas Rekening di slide sebelumnya?
Konstruktor
Rekening
-‐ noRek: String -‐ saldo: int
+ Rekening() + setNoRek(String n): void + setSaldo(int s): void + getNoRek(): String + getSaldo(): int
RekeningTester
+ main(String[] argv): void
-
* Ubah klas Rekening di slide sebelumnya, dengan mengubah konstruktor default menjadi konstruktor berparameter (2 parameter)! * Di method main coba instansiasi
dengan menggunakan konstuktor berparameter! Apakah bisa? * Kemudian coba instansiasi objek lagi
dengan menggunakan konstruktor default! Apakah bisa? Mengapa demikian?
Konstruktor
Rekening
-‐ noRek: String -‐ saldo: int
+ Rekening(String no, int s) + setNoRek(String n): void + setSaldo(int s): void + getNoRek(): String + getSaldo(): int
RekeningTester
+ main(String[] argv): void
-
* Ubah klas Rekening di slide sebelumnya, dengan menambahkan konstruktor default dan beberapa konstruktor berparameter (konsep konstruktor overloading)! * Di method main coba instansiasi dengan menggunakan masing-‐masing konstuktor!
Konstruktor
Rekening
-‐ noRek: String -‐ saldo: int
+ Rekening() + Rekening(String no) + Rekening(int s) + Rekening(String no, int s) + setNoRek(String n): void + setSaldo(int s): void + getNoRek(): String + getSaldo(): int
RekeningTester
+ main(String[] argv): void
-
Kata Kunci “static”
-
* Tambahkan atribut bunga, yang merupakan atribut klas (menggunakan kata kunci static). Hal ini karena diasumsikan bahwa nilai bunga untuk semua objek rekening sama (sehingga bunga dibuat static) * Di method main coba akses atribut bunga
Kata Kunci “static” Rekening
-‐ noRek: String -‐ saldo: int + bunga: double
+ Rekening() + Rekening(String no) + Rekening(int s) + Rekening(String no, int s) + setNoRek(String n): void + setSaldo(int s): void + getNoRek(): String + getSaldo(): int
RekeningTester
+ main(String[] argv): void