Jumat, 25 November 2011

Resume OOP

1. Polimorfisme
Polimorfisme adalah sesuatu yang memiliki banyak bentuk. Dalam pemrograman, polimorfisme dapat diartikan sebagai modul yang memiliki nama sama, namun memiliki behaviour (tingkah laku) yang berbeda sehingga listing code implementasinya juga berbeda.

Contoh:
Mahasiswa cowok = new anakSI();
cowok.methodKU(“Bernaz”);

Mahasiswa cewek = new anakTI();
cewek.mothodKU(“Amelia”);

a.Overloading
adalah suatu keadaan di mana beberapa method memiliki nama yang sama tetapi fungsionalitasnya berbeda.
 Ciri - ciri Overloading : a. Nama method harus sama.
                                     b. Bisa berupa constructor, procedure, maupun function.
                                     c. Daftar Parameter harus berbeda
                                     d. Return type boleh sama, boleh berbeda (jika berupa konstruktor atau 

                                         prosedur, tidak mempunyai nilai balik).                                        
b.Overriding
adalah Suatu keadaan di mana method pada subclass menolak method pada parent classnya. 
(contohnya sudah pernah dibahas pada modul sebelumnya)
Ciri - ciri Overriding : a. Nama method harus sama
                                       b. Bisa berupa procedure maupun function.
                                       c. Daftar parameter harus sama
                                       d. Return type harus sama(procedure tidak mempunyai nilai balik).
    2.Inheritance
Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan. Suatu class yang mempunyai class turunan dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class.
contoh deklarasi inheritance : class B adalah subclass dari class A
Semua class di dalam Java adalah merupakan subclass dari class super induk yang bernama Object. Misalnya saja kita mempunyai sebuah class sederhana :
 
Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari class Object.
   3.Enkapsulasi (Pembungkusan)
Enkapsulasi adalah pelindung program dan data yang sedang diolah. Enkapsulasi mendefinisikan perilaku dan melindungi program dan data agar tidak diakses secara sembarangan oleh program lain.
  • (default)
    Class member hanya dapat digunakan hanya pada class di paket yang sama. Tanpa penulisan modifier akses
    Contoh:
    class Mahasiswa {
      String nama;
    
      String kata() {
        return “I LOVE JAVA”;
      }
    }
  • public
    Class member dapat diakses darimana saja, baik di dalam paket maupun di luar paket
    Contoh:
    class Mahasiswa {
      public String nama;
    
      public String kata() {
        return “I LOVE JAVA”;
      }
    }
  • private
    Class member hanya dapat diakses di dalam class itu sendiri atau class yang telah didefinisikan. Sering digunakan dalam proses enkapsulasi.
    Contoh:
    class Mahasiswa {
      private String nama;
    
      private String kata() {
        return “I LOVE JAVA”;
      }
    }
  • protected
    Class member dapat diakses di dalam package yang sama dan sub classnya. Subclass dapat berada di paket yang berbeda subclassnya akan mewarisi member variabel
    Contoh:
    class Mahasiswa {
      protected String nama;
    
      protected String kata() {
        return “I LOVE JAVA”;
      }
    } 
     
    4.Interface 
  • Interface adalah kumpulan method-method tanpa implementasi bahkan tidak boleh mempunyai body >> {} >> abstract
  • Tujuan dibuat interface adalah untuk memaksa kelas-kelas yang mengimplementasikan interface tersebut melakukan overide method abstrak milik interface
  • Interface adalah semacam kelas abstract tetapi hanya boleh mempunyai anggota method abstract dan variabel konstan
  • Walaupun tidak dideklarasikan sebagai public abstract, interface selalu public abstract
  • Interface hanya dapat mendeinisikan konstanta
  • Interface biasa digunakan untuk standarasiasi method atau konstanta
  • Class yang mengextends interface dipaksa untuk mengoverride semua method dan definisi konstanta pada interface
  • Modifier yang digunakan hanya public atau tidak sama sekali. Jika tidak menggunakan modifier maka interface tersebut hanya dapat diakses dalam package yang sama
  • Semua method yang diimplemetasikan harus public
  • Jika kita tidak mengimplementasikan semua method yang ada pada interface, maka class tersebut harus dideklarasikan sebagai abstract class
Bentuk umum pendeklarasian interface:
interface <nama_interface> {
  // method tanpa definisi
  // definisi konstanta
}
Contoh:
interface Motor {
  int BBM = 4500;
  void starting();
  void stopping();
}

   5. Abstract Class
Abstract class adalah class yang mempunyai setidaknya satu abstract method. Abstact class digunakan untuk mendefinisikan sifat-sifat dari kelas tertinggi. Abstract method adalah method yang tidak memiliki body (hanya deklarasi method). Implementasi dari isi abstract method tersebut dilakukan pada subclass.
Beberapa hal yang perlu diperhatikan adalah sebagai berikut:
  1. Class abstrak tidak dapat dibuatkan instan atau objeknya menggunakan keyword new.
  2. Sebuah class dapat dideklarasikan sebagai class abstrak walaupun tidak memiliki method abstrak.
  3. Variabel dengan tipe class abstrak tetap bisa diciptakan, tetapi harus refer ke subclass dari class abtrak tersebut yang tentunya tidak abstrak.
Perhatikan contoh class abstrak di bawah ini.
abstrak public class Mobil {
 public void injakPedalGas();
 public void injakRem(){
    System.out.println(“Mobil berhenti!”);
 }
}
public class Kijang extends Mobil{
 public void injakPedalGas(){
  System.out.println("Mobil Melaju dengan kecepatan 80 Km/jam...");
 }
}
public class BMW extends Mobil {
   public void injakPedalGas(){
    System.out.println("Mobil Melaju dengan kecepatan 100 Km/jam...");
 }
}


Tidak ada komentar:

Posting Komentar