by

Pengertian Abstraksi,Encapsulation,Inheritance,Polimorfisme | Analisa Beroriantasi Objek

Analisa Berorientasi Obyek atau Object Oriented Analysis (OOA) merupakan tahapan perangkat lunak yang bertujuan untuk menganalisi sspesifikasi sistem dan mengidentifikasi kelas kelas yang berhubungan satu dengan lainnya yang akan dibuat dengan konsep berorientasi obyek.

Definisi berorientasi objek ialah bahwa kita harus bisa mengorganisasi perangkat lunak ialah sebagai kumpulan dari objek tertentu yang mempunyai struktur data & perilakunya. Konsep OOAD ini mencakup analisis serta desain pada suatu sistem dengan pendekatan objek, yaitu analisis berorientasi objek (OOA) serta desain berorientasi objek (OOD).

Analisa:
Mempelajari domain permasalahan bisnis untuk merekomendasikan perbaikan dan menentukan kebutuhan system untuk menyelesaikan permasalahan.

Desain :
Menentukan solusi teknis/computer-based dimana solusi ini berdasarkan kebutuhan system yang telah diidentifikasi pada proses analisis.

Analisa dan Desain Berorientasi Object :

  1. Memahami domain permasalahan dan merumuskan solusinya dengan menggunakan pendekatan object(benda, konsep, atau entitas)
  2. Memudahkan pemanfaatan ulang code dan arsitektur
  3. Lebih mencerminkan dunia nyata (lebih tepat dalam menggambarkan entitas perusahaan, dekomposisi berdasarkan pembagian yang natural, lebih mudah untuk dipahami dan dirawat)
  4. Kestabilan (perubahan kecil dalam requirement tidak berarti perubahan yang signifikan dalam system yang sedang dikembangkan) Lebih mudah disesuaikan dengan perubahan

1.Abstraksi

Abstraksi adalah bagian di awal paragraf yang berfungsi memberi gambaran tentang isi teks. Biasanya bagian ini menunjukkan hal unik yang akan ada di dalam teks. Abstraksi mencoba menyembunyikan detail agar Programmer dapat berfokus pada konsep tertentu saja pada satu waktu.

 

PHP  memperkenalkan  abstract  class dan  abstract  metod.  Class  yang mendefinisikan  sebagai  abstract  tidak  bisa diintasiasi,  dan  class  yang  terdiri  paling tidak  satu  metod  abstract  harus didefinisikan  sebagai  abstract  class.  Class abstract hanya bisa mewariskan resourcenya. pada  class  anaknya.  Setiap  class  yang mewarisi  class  abstract,  wajib  menuliskan seluruh metod  abstract yang dipunyai oleh class-nya (superclass).

Abstract Class adalah sebuah class yang tidak bisa di-instansiasi (tidak bisa dibuat menjadi objek) dan berperan sebagai ‘kerangka dasar’ bagi class turunannya. Di dalam abstract class umumnya akan memiliki abstract method.

Abstract Method adalah sebuah ‘method dasar’ yang harus diimplementasikan ulang di dalam class anak (child class). Abstract method ditulis tanpa isi dari method, melainkan hanya ‘signature’-nya saja. Signature dari sebuah method adalah bagian method yang terdiri dari nama method dan parameternya (jika ada).

Abstract class digunakan di dalam inheritance (pewarisan class) untuk ‘memaksakan’ implementasi method yang sama bagi seluruh class yang diturunkan dari abstract classAbstract class digunakan untuk membuat struktur logika penurunan di dalam pemrograman objek.

2.Encapsulation

Yang dimaksud dari encapsulation adalah membungkus class dan menjaga apa apa saja yang ada didalam class tersebut, baik method ataupun atribut, agar tidak dapat di akses oleh class lainnya. Untuk menjaga hal tersebut dalam Encapsulation dikenal nama Hak Akses Modifier yang terdiri dari :

 

  1. Private =  memberikan hak akses hanya pada class itu sendiri, artinya apa-apa saja yang ada di dalam class A baik itu method ataupun atribut hanya bisa diakses oleh class A saja, class lain tidak bisa mengaksesnya.

 

  1. public = memberikan hak akses kepada atribut atau method agar bisa diakses oleh siapapun (property atau class lain diluar class yang bersangkutan), artinya method atau atribut yang ada diclass A dapat diakses oleh siapaun baik itu class A, class B dan seterusnya.

 

  1. protected = memberikan hak akses kepada class itu sendiri dan class hasil turunannya (inheritance), artinya apa apa saja yang ada diclass A hanya bisa diakses oleh class A sendiri dan class yang meng Extends class A. Namun harus dipahami class lain yang berada dalam satu package dengan class A mampu mengakses tipe data protected, Sedangkan yang tidak mampu mengakses adalah class-class yang berada diluar package class A. untuk dapat mengaksesnya, class yang berada diluar package class A harus meng extends class A.

 

3.Inheritance

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.

Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atauheir class.

Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.

 

4.Polymorphysm

Polymorphism adalah suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.

Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.

Polimorfisme adalah kemampuan suatu objek untuk mengungkapkan banyak hal melalui satu cara yang sama. Polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah method general (bersifat umum) untuk semua kelas turunanya, dan selanjutnya kelas-kelas turunan dapat memperbaharui implementasi dari method tersebut secara lebih spesifik sesuai dengan karakteristiknya masing-masing.

 

Contoh program Encapsulation dan Inheritance:

Contoh programnya seperti berikut, kita buat 2 package bernama a dan b. Dalam package a buat 2 class :

–          Bapak.java

 

package a;

 

public class Bapak {

private String nama = “Bapak”;

private String alamat = “Sleman”;

 

public String getNama() {

return nama;

}

 

private String getNamaPrivate(){

return nama;

}

 

protected String getAlamat(){

return alamat;

}

}

 

–          Anak.java

package a;

 

public class Anak extends Bapak{

 

public String getNamaPublic(){

return super.getNama();

}

// public String getNamaPrivate(){

//         return super.getNamaPrivate();

//       INI AKAN ERROR karena hak akses di parent class untuk method ini private

//     }

 

 

@Override

public String getAlamat(){

return super.getAlamat();

}

 

 

public static void main(String args[]) {

Anak g = new Anak();

System.out.println(“dari method public : ” + g.getNamaPublic());

System.out.println(“dari method protected : ” + g.getAlamat());

 

}

}

 

Class ini berusaha mengakses method private milik Bapak.java. Walaupun sudah meng extends Bapak tapi karena menggunakan modifier private, siapapun tidak bisa mengaksesnya.

 

Contoh program polymorphism :

jika method yang digunakan pada child class sama dengan parent classnya, maka hal itu harus di override.

package override;

 

class Animal{

 

protected void hello(){

System.out.println(“Hello”);

}

protected void move(){

System.out.println(“Animals can move”);

}

}

class Dog extends Animal{

@Override

public void move(){

System.out.println(“Dogs can walk and run”);  }

 

// method tambahan untuk analisa

public void bark(){

System.out.println(“Dogs can bark”);

}

 

}

public class Override_Test{

 

public static void main(String args[]){

Animal a = new Animal(); // Animal reference and object

Animal b = new Dog(); // Animal reference but Dog object

 

a.move();

b.move();

 

 

System.out.println();

a.hello();

 

}

}

 

 

 

News Feed