Selasa, 29 Oktober 2013

Pengertian Abstrak class,interface, inner class



ABSTRACT CLASS,INTERFACE,INNER CLASS
A. ABSTRACT CLASS

     Abstract Class adalah suatu kelas yang dinyatakan abstract, umumnya memiliki suatu atau lebih abstract
method. Abstract method adalah nama method yang memiliki implementasi dan menggunakan modifier abstract. Abstract class biasanya dijadikan parent/ super class dari kelas-kelas yang dapat membuat objek, abstract class tidak dapat diintansiasi. Defenisi kelas diletakkan dalam masing-masing kelas turunan. Dalam hal ini setiap kelas turunan harus mendefenisikan metode-metode yang tergolong sebagai metode abstract.

B. INTERFACE
    Interface adalah suatu kelas yang berisi method-method tanpa implementasi, namun tanpa modifier abstract, apabla suatu interface memiliki atribut, maka atributnya akan berlaku sebagai konstanta. Interface menyerupai kelas. Perbedaanya, kata kunci interface menggantikan kedudukan kata kunci class. Bentuk deklrasinya adalah sebagai berikut:
     Penentu akses public biasa digunakan dengan tujuan agar interface dapat diakses oleh kelas manapun. Jika tak ada penentu akses public, interface hanya dapat diakses oleh kelas-kelas yang berada dalam paket yang sama.

C. INNER CLASS
     Inner Class adalah kelas yang disisipkan di dlam kelas yang lain. fungsi kelas sisipan ini adalah mendukung suatu proses yang akan dijalankan oleh suatu kelas utamanya. Inner class bersifat terserang terhadap kelas-kelas utamnya

CONTOH :
public abstract class MakhlukHidup{

 protected boolean BisaTerbang = false
protected String Nama;
protected int JlhKaki;

public MakhlukHidup(String Nama1, int JlhKaki1, boolean BisaTerbang1) {
this. Nama = Nama1;
this. JlhKaki = JlhKaki1;
this. BisaTerbang = BisaTerbang1;

abstract void bernafas();
public void status(){
System.out.println(Nama+" bernafas dengan menghirup CO2");
System.out.println("------------------------------------");
            System.out.println("Nama : " +Nama);
System.out.println("Jumlah Kaki : " +JlhKaki);
System.out.println("BisaTerbang : " +BisaTerbang);

             }
    }

PENJELASAN :
Kelas mahluk hidup ini merupakan kelas abstract yang minimal memiliki 1 method abstract yaitu method mahluk hidup 
dalam kelas mahluk hidup ini memiliki 3 method yaitu : method mahluk hidup, bernafas, status.
this. Nama = Nama1;
this. JlhKaki = JlhKaki1;
            this. BisaTerbang = BisaTerbang1;
} --> merupakan pengimplementasian dari method abstract.
Kelas abstract  akan selalu menjadi kelas induk dan pada kelas anak akan diimplementasikan kembali.
output :



public class Manusia extends MakhlukHidup{

     Manusia(String nama){

     super(nama,2,false);

     }

     public void bernafas(){

     System.out.println(Nama+" bernafas dengan menghirup O2");

    }

    public static void main(String[]arg){

    Manusia m = new Manusia ("Sayuti");

    m.status();

    m.bernafas();

   }

   }



MEMBUAT PROGRAM Tumbuhan.java
     public class Tumbuhan extends MakhlukHidup{

    Tumbuhan(String nama){

    super(nama,0,false);

   }

   public void bernafas(){


  }

  public static void main(String[]arg){

 Tumbuhan t = new Tumbuhan ("Bayam");

 t.status();
 t.bernafas();
 }
 }





interface Pekerjaan {

    public void namaPekerjaan() ;

    public void gaji ();

   }
   



public class Sasya extends Manusia implements Pekerjaan{
     public Sasya() {
    super("Sasya");
    }
    public void namaPekerjaan(){
   System.out.println("Pekerjaan : Sekretaris");
   }
   public  void gaji(){
   System.out.println ("Gaji : Rp. 3.000.000");
   }
   public static void main(String[]arg){
   Sasya s = new Sasya ();
   s.status();
   s.bernafas();
   s.namaPekerjaan();
   s.gaji();
  }
  }


 class Orang{
    private int jumlKaki = 2;

    public void dengarBunyiJantung() {
          Jantung j = new Jantung();
          j.bunyiJantung();
    }
    public void tahanNafas(){
    System.out.println("Jantung berhenti berdetak!");
    }
    //inner class
   class Jantung{
    public void bunyiJantung(){
        System.out.println("deg.....deg..deg...");
        }
    public void istrahat(){
        System.out.println("silangkan ke "+jumlKaki+" kaki.");
        tahanNafas();
        }
        }
        }
   class JantungManusia{
    public static void main(String[]arg){
    Orang o = new Orang();
    Orang.Jantung p = o.new Jantung();
    o.dengarBunyiJantung();
    p.istrahat();
    }
    }




Information Hiding, Inheriratance, Encapsulation dan Polymorphism

Kali ini kita akan mencoba membuat contoh program sederhana dari java yang menggunakan Polymorphisme. Polymorphisme adalah modul yang memiliki nama yang sama, namun memiliki tingkah laku yang berbeda sehingga implementasinya berbeda.

Kita mulai dari class karyawan. Pada class karyawan modifier yang digunakan adalah Abstract class yaitu class yang dinyatakan abstrak, umumnya memiliki implementasi. Abstract class biasa juga digunakan sebagai parent/superclass dari class-class yang dapat membuat objek.

Ketikkan Code berikut dengan file name : karyawan.java

abstract class Karyawan{
int gaji;
Karyawan(){
gaji=1000000;
}
int getGaji(){
return gaji;
}
abstract void naikGaji();
}


Penjelasan :


abstract class Karyawan{ --> Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas.Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat diinstansiasi secara langsung menjadi object. Suatu abstract class bisa mengandung method kongkrit dan/atau method abstract.

int gaji; --> merupakan suatu atribut dengan nama gaji
Karyawan(){ --> merupakan sebuah method konstruktor karena nama kelas dan method nya sama

Setelah itu ketikkan kode berikut dengan filename : manager.java

class Manager extends Karyawan{
   Manager(){
          gaji +=2000000;
   }
   void naikGaji() { gaji+=3000000; }
}  


Lalu juga code berikut dengan filename : receptionist.java


class Receptionist extends Karyawan{
  Receptionist() {
            gaji +=1000000;
  }
  void naikGaji() {gaji+=1000000; }
} 

Dan yang terakhir code berikut dengan filename : Polymorphisme.java
class Polymorphisme{
  public static void main(String[] args) {
    Karyawan K[] = new Karyawan[3];
    K[0] = new Manager();
    K[1] = new Receptionist();
    K[2] = new Manager();
    for (int i=0;i<3 font="" i="">
        System.out.println("Gaji karyawan "+i+" adalah "+K[i].getGaji());
    for (int i=0;i<3 font="" i="">
        K[i].naikGaji();
    for (int i=0;i<3 font="" i="">
        System.out.println("Gaji sekarang "+i+" adalah "+K[i].getGaji());
}
}


Penjelasan

1.       Pada class Polymorphisme memiliki fungsi utama yang nantinya akan menghasilkan output.
2.       Dalam program ini terjadi penggabungan 3 class dimana 1 parent dan 2 sub class
3.       Untuk memanggil method pada sub class maka di buat sebuah objek baru berdasarkan indeks yaitu “ K[]” dengan total indeks sebanyak 3 data :
·         a. K[0] bernilai Manager
·         b. K[1] bernilai Resepsionist
·         c. K[2] bernilai Manager

Dengan menggunakan program keputusan, data akan di cetak dengan perintah "System.out.println”. Dimana nilai gaji karyawan yang awalnya bernilai 1000.000 dan pada objek indeks K[0]nilai data akan diulang dan ditambah 1000.000 setiap perulangannya 0=3 hingga nilai 3=3 yaitu 3000.000. Begitu juga indeks K[1], 1=3 hingga 3=3 yaitu 2000.000. Terakhir K[2] gaji karyawan yang awalnya bernilai 2000.000, 2=3 hingga 3=3 yaitu 3000.000.



Hasil Akhir

Untuk method naik gaji

a. Indeks K[0] dengan nilai terakhir 3000.000 akan di tambah 3000.000 = 6000.000

b. Indeks K[1] dengan nilai terakhir 2000.000 akan di tambah 1000.000 = 3000.000

c. Indeks K[2] dengan nilai terakhir 3000.000 akan di tambah 3000.000 = 6000.000
Description: C:\Documents and Settings\Personal\Desktop\tumbuhan.jpgDescription: C:\Documents and Settings\Personal\Desktop\pekerjaan.jpgDescription: C:\Documents and Settings\Personal\Desktop\saysa.jpgDescription: C:\Documents and Settings\Personal\Desktop\akir.jpgDescription: C:\Documents and Settings\Personal\Desktop\6.jpgDescription: C:\Documents and Settings\Personal\Desktop\1.jpgDescription: C:\Documents and Settings\Personal\Desktop\manusia.jpg

Tidak ada komentar:

Posting Komentar