• Tidak ada hasil yang ditemukan

AKSES TERHADAP KELAS DAN UNSUR PEWARISAN

Dalam dokumen MODUL-PRAKTIKUM-STRUKTUR-DATA pdf (Halaman 25-36)

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

MODUL 6

Dalam dokumen MODUL-PRAKTIKUM-STRUKTUR-DATA pdf (Halaman 25-36)

Dokumen terkait