1. Tujuan
• Memahami visibility
• Memahami Pewarisan (Inheritance)
• Memahami Antarmuka (interface)
2. Dasar Teori
• Visibility adalah cara bagaimana suatu data/atribut serta fungsi/metoda yang dimiliki suatu kelas/objek dapat diakses dari kelas-kelas/bjek-objek lain. Contoh : public, private, protected, default
3. Tugas Pendahuluan
1. Sebutkan perbedaan public, private, protected dan default
2. Apa yang dimaksud dengan pewarisan (inheritance) ? Berikan contoh
4. Praktikum
Percobaan 1a. package Big_Cat; class Big_Cat package bigCat;
// Kelas abstrak
public abstract class Big_Cat { protected static String name; protected abstract void eat(); }
// Kelas turunan
class Lion extends Big_Cat {
// Kostruktor untuk kelas Lion public Lion (String nameLion) {
// Mengisi peubah yang diwarisi dari kelas abstrak Lion.name = nameLion;
}
// Implementasi metoda yang diwarisi dari kelas abstrak public void eat() {
System.out.println("Lion can eat meat."); }
}
//Kelas turunan
class Tiger extends Big_Cat {
// Kostruktor untuk kelas Lion public Tiger (String nameTiger) {
// Mengisi peubah yang diwarisi dari kelas abstrak Tiger.name = nameTiger;
}
// Implementasi metoda yang diwarisi dari kelas abstrak public void eat() {
System.out.println("Tiger can eat meat and drink milk."); }
}
//Kelas turunan
class Cat extends Big_Cat {
// Kostruktor untuk kelas Lion public Cat (String nameCat) {
// Mengisi peubah yang diwarisi dari kelas abstrak Cat.name = nameCat;
}
// Implementasi metoda yang diwarisi dari kelas abstrak public void eat() {
System.out.println("Cat can eat meat, drink milk, and sometimes rice.");
} }
Percobaan 1b. package bigCat class TestBigCat package bigCat;
public class TestBigCat {
public static void main(String[] args) { // Memanfaatkan kelas Lion Lion myLion = new Lion("Simba");
System.out.println("My lion is " + Lion.name); myLion.eat();
// Memanfaatkan kelas Tiger
Tiger myTiger = new Tiger("Harimau"); System.out.println("My tiger is " + Tiger.name); myTiger.eat();
// Memanfaatkan kelas Cat
Cat myCat = new Cat("Kucingku manis"); System.out.println("My cat is " + Cat.name); myCat.eat();
} }
Percobaan 2a. package bigCatNoOverload class BigCatNoOverload package bigCatNoOverload;
public class Big_Cat_NoOverload { protected static String name; protected void eat() {
System.out.println("Semua kucing besar makan daging!"); }
}
//Kelas turunan
class WildLion extends Big_Cat_NoOverload { // Kostruktor untuk kelas Lion
public WildLion (String nameLion) {
// Mengisi peubah yang diwarisi dari kelas abstrak WildLion.name = nameLion;
} }
//Kelas turunan
class WildTiger extends Big_Cat_NoOverload { // Kostruktor untuk kelas Lion
// Mengisi peubah yang diwarisi dari kelas abstrak WildTiger.name = nameTiger;
} }
//Kelas turunan
class WildCat extends Big_Cat_NoOverload { // Kostruktor untuk kelas Lion public WildCat (String nameCat) {
// Mengisi peubah yang diwarisi dari kelas abstrak WildCat.name = nameCat;
} }
Percobaan 2b. package bigCatNoOverload class TestNoOverload package bigCatNoOverload;
public class Test_NoOverload { public static void main(String[] args) {
// Memanfaatkan kelas Lion
WildLion myLion = new WildLion("Simba"); System.out.println("My lion is " + WildLion.name); myLion.eat();
// Memanfaatkan kelas Tiger
WildTiger myTiger = new WildTiger("Harimau"); System.out.println("My tiger is " + WildTiger.name); myTiger.eat();
// Memanfaatkan kelas Cat
WildCat myCat = new WildCat("Kucingku manis"); System.out.println("My cat is " + WildCat.name); myCat.eat();
} }
package KucingGarong; class Coba_Akses1 {
public static void main (String[] args) { Kucing kucingku = new Kucing(); // Mengisi peubah instan.
kucingku.Isi_Identitas("Pussy", "Belang", 10); // Menampilkan nama kucing melalui metoda.
System.out.println("Nama : " + kucingku.ambilNama()); // Menampilkan nama kucing lewat peubah.
System.out.println("Nama : " + kucingku.Nama); }
}
Percobaan 3b. package KucingGarong class Kucing
package KucingGarong; class Kucing { String Nama; String Warna; int Berat; // Metoda void Isi_Identitas
(String namaKucing, String warnaKucing, int beratKucing) { Nama = namaKucing; Warna = warnaKucing; Berat = beratKucing; } String ambilNama() { return Nama; } String ambilWarna() {
return Warna; } int ambilBerat() { return Berat; } }
Percobaan 4a. package MySweetyCat class Coba_Akses2 package MySweetyCat;
class Coba_Akses2 {
public static void main (String[] args) {
Kucingku_Manis kucingku = new Kucingku_Manis(); // Mengisi peubah instan.
kucingku.Isi_Identitas("Pussy", "Belang", 10); // Menampilkan nama kucing melalui metoda.
System.out.println("Nama : " + kucingku.ambilNama()); // Menampilkan nama kucing lewat peubah.
System.out.println("Nama : " + kucingku.Nama); }
}
Percobaan 4b. Package MySweetyCat class Kucingku_Manis package MySweetyCat;
class Kucingku_Manis { String Nama; private String Warna; private int Berat; // Metoda void Isi_Identitas
(String namaKucing, String warnaKucing, int beratKucing) { Nama = namaKucing;
Warna = warnaKucing; Berat = beratKucing; }
String ambilNama() { return Nama; } String ambilWarna() { return Warna; } int ambilBerat() { return Berat; } }
Percobaan 5a. package OrangIndonesia class OrangIndonesia package OrangIndonesia;
public class OrangIndonesia { protected String Nama; protected String Alamat; protected String Pekerjaan; public OrangIndonesia
(String nama, String alamat, String pekerjaan) { super();
Nama = nama; Alamat = alamat; Pekerjaan = pekerjaan; }
public String getNama() { return Nama; }
public String getAlamat() { return Alamat; }
public String getPekerjaan() { return Pekerjaan; }
}
class OrangBatak extends OrangIndonesia { private double Gaji;
public OrangBatak
(String nama, String alamat, String pekerjaan) { super(nama, alamat, pekerjaan); }
public double getGaji() { return Gaji; }
public void setGaji(double gaji) { Gaji = gaji;
} }
class OrangJawa extends OrangIndonesia { private double Gaji;
public OrangJawa
(String nama, String alamat, String pekerjaan) { super(nama, alamat, pekerjaan); }
public double getGaji() { return Gaji; }
public void setGaji(double gaji) { Gaji = gaji;
} }
class OrangSumba extends OrangIndonesia { private double Gaji;
public OrangSumba
(String nama, String alamat, String pekerjaan) { super(nama, alamat, pekerjaan); }
public double getGaji() { return Gaji; }
public void setGaji(double gaji) { Gaji = gaji;
}
// Overloading Metoda
if (persen > 0.5)
return "THR terlalu besar!";
else return "THR tahun ini sebesar " + persen * Gaji;
}
public String hitungTHR (int persen){
if (persen > 50) return "THR terlalu besar!"; else return "THR tahun ini sebesar " + (persen * Gaji / 100);
} }
Percobaan 5b. package OrangIndonesia class TestOrang package OrangIndonesia;
public class TestOrang {
public static void main(String[] args) {
OrangIndonesia oi = new OrangIndonesia ("Adi", "Bandung", "Dosen");
System.out.println("Nama : " + oi.getNama()); System.out.println("Alamat : " + oi.getAlamat()); System.out.println
("Pekerjaan : " + oi.getPekerjaan() + "\n"); OrangJawa oj = new OrangJawa
("Monovan", "Jogja", "Dosen");
System.out.println("Nama : " + oj.getNama()); System.out.println("Alamat : " + oj.getAlamat()); System.out.println
("Pekerjaan : " + oj.getPekerjaan() + "\n"); OrangBatak ob = new OrangBatak ("Irwan", "Medan", "Dosen"); ob.setGaji(2000000);
System.out.println("Nama : " + ob.getNama()); System.out.println("Alamat : " + ob.getAlamat()); System.out.println("Pekerjaan : " + ob.getPekerjaan()); System.out.println("Gaji : Rp " + ob.getGaji() + "\n");
OrangSumba os = new OrangSumba ("Rocky", "Sumba", "Dosen"); os.setGaji(2000000); System.out.println("Nama : " + os.getNama()); System.out.println("Alamat : " + os.getAlamat()); System.out.println("Pekerjaan : " + os.getPekerjaan()); System.out.println("Gaji : Rp " + os.getGaji()); System.out.println ("Keterangan : " + os.hitungTHR(30) + "\n"); OrangSumba osw = new OrangSumba ("Inneke", "Sumba", "Dosen"); osw.setGaji(2000000); System.out.println("Nama : " + osw.getNama()); System.out.println("Alamat : " + osw.getAlamat()); System.out.println("Pekerjaan : " + osw.getPekerjaan()); System.out.println("Gaji : Rp " + osw.getGaji()); System.out.println ("Keterangan : " + osw.hitungTHR(0.75) + "\n"); } }
Percobaan 6a. package rumahAna package rumahAna;
public interface Alamat {
public abstract void aturNama(); public abstract void aturJalan (); public abstract void aturKota (); }
package rumahAna; import rumahAna.Alamat;
public class Apartemen implements Alamat{ public void aturKota() {
}
public void aturJalan() {
System.out.println("Jln. Hasanudin No. 8."); }
public void aturNama() {
System.out.println("Namaku : Ana Mariana"); }
}
package rumahAna; public class RumahAna {
public static void main(String[] args) {
Apartemen rmhAna = new Apartemen(); rmhAna.aturNama(); rmhAna.aturJalan(); rmhAna.aturKota(); } } 5. Tugas Praktikum
1. Definisikan dengan bahasa Anda sendiri , istilah-istilah berikut ini :
• Class
• Object
• Instantiate
• Instance Variable
• Instance Method
• Class Variables atau static member variables