Anda di halaman 1dari 32

 Mahasiswa mampu :

• Mengenal karakteristik OOP


• Memahami konsep encapsulation
• Memahami konsep inheritance
• Memahami konsep polymorphism
• Memahami konsep override pada method
 Ada tiga karakteristik yang dimiliki
pemrograman object oriented ;
1. Encapsulation (pembungkusan)
2. Inheritance (pewarisan)
3. Polymorphism (mempunyai banyak bentuk)
 Encapsulation = pembungkusan. Maksudnya
adalah pembungkusan atribut juga method oleh
class.
 Setiap anggota class (atribut, method) pada
pemrograman object oriented seluruhnya
dideklarasikan didalam class. Tidak ada satu
kode pun yang ditulis diluar kelas.
 Gambaran pembungkusan oleh class MyDate
pada seluruh anggota class-nya (atribut : date,
method getDay, getMonth,…dst).
 Inheritance = pewarisan.
 Pewarisan seluruh anggota class (atribut,
method) yang dimiliki oleh superclass (kelas
induk/parent) ke subclass (kelas anak).
Superclass
class yang letaknya di atas class tertentu di dalam hierarki.

Subclass
class yang letaknya di bawah class tertentu di dalam hierarki.
Semua class dalam Java, termasuk class yang membangun
Java API, merupakan subclass dari superclass Object. Yang
merupakan hirarki class tertinggi yaitu : java.lang.object

Contoh dari hierarki class :


 Keyword yang digunakan pada pewarisan :
extends.
 Contoh deklarasi superclass/class parent sederhana

misalkan kita buat class parent bernama Person.

public class Person {


protected String name;
protected String address;

/**
* Default constructor
*/
public Person(){
System.out.println(“Inside Person:Constructor”);
name = ""; address = "";
}
. . . .
}
 Sekarang, kita buat class lain bernama Student yang meng-extends class
person.
 Untuk itu, kita bisa menulis :

public class Student extends Person {


public Student(){
System.out.println(“Inside Student:Constructor”);
}
....
}
 Untuk memperjelasnya, perhatikan kode dibawah ini,

public static void main( String[] args ){


Student anna = new Student();
}
 Dalam kode ini, kita membuat sebuah object dari class
Student. Hasil dari program adalah:

Inside Person:Constructor
Inside Student:Constructor
 Ketika sebuah object Student diinstansiasi, default constructor
dari superclass Student dipanggil secara implisit untuk
melakukan inisialisasi seperlunya.

 Setelah itu, pernyataan di dalam constructor subclass


dijalankan.
Flowchart program ditampilkan dibawah ini :
Keuntungan penggunaan Inheritance dalam OOP : Reusability
• Ketika behavior(method) dideklarasikan dalam superclass, behavior
tersebut otomatis diwariskan ke seluruh subclass

• Jadi, Anda dapat meng-enkode method hanya sekali dan method


tersebut dapat digunakan oleh seluruh subclass

• Sebuah subclass hanya perlu mengimplementasikan perbedaan antara


dirinya sendiri dan parent-nya
 Jika sebuah subclass menginginkan implementasi yang
berbeda terhadap method dari superclassnya, maka salah satu
caranya dapat dilakukan dengan meng-override method
bersangkutan.

 Sebuah subclass dapat meng-override method superclassnya


dengan menyediakan sebuah implementasi baru untuk method
tersebut.
berikut ini merupakan implementasi dari method getName
didalam superclass Person

public class Person {


:
:
public String getName(){
System.out.println("Parent: getName");
return name;
}
}
 Untuk meng-override method getName dari superclass Person, di dalam
subclass Student, kita tulis :
public class Student extends Person{
:
:
public String getName(){
System.out.println("Student: getName");
return name;
}
:
}
 Sekarang, ketika kita memanggil method getName dari object subclass
Student, method getName yang di-override akan dipanggil, dan hasilnya akan
menjadi,

Student: getName
Polymorphism
(1) Kemampuan sebuah variabel reference untuk merubah
behavior sesuai dengan apa yang dipunyai object.

(2) polymorphism membuat objek-objek yang berasal dari


subclass yang berbeda, diperlakukan sebagai objek-objek dari satu
superclass. Hal ini terjadi ketika memilih method yang sesuai untuk
diimplementasikan ke objek tertentu berdasarkan pada subclass yang
memiliki method bersangkutan.
 Untuk menjelaskan polymorphism, mari kita bahas sebuah
contoh.

 Berikut adalah hirarki class nya.


misalnya, kita memiliki sebuah method getName dalam superclass Person.
Dan kita meng-override method ini di kedua subclass yaitu Student dan
Employee

public class Student {


public String getName(){
System.out.println(“Student Name:” + name);
return name;
}
}

public class Employee {


public String getName(){
System.out.println(“Employee Name:” + name);
return name;
}
}
Dalam Java, kita dapat membuat referensi dari suatu
superclass ke object dari subclassnya. Sebagai contoh,

public static main( String[] args ) {

Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();

ref = studentObject; //titik referensi Person kepada


// sebuah object Student
}
 Kembali ke method utama kita, ketika kita mencoba
memanggil method getName dari referensi Person ref, method
getName dari object Student akan dipanggil.

 Sekarang, jika kita memberi ref kepada object Employee,


maka method getName juga akan dipanggil
public static main( String[] args ) {
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();

ref = studentObject; //titik referensi Person kepada object Student

//getName dari class Student dipanggil


String temp=ref.getName();
System.out.println( temp );

ref = employeeObject; //titik referensi Person kepada object Employee

//getName dari class Employee dipanggil


String temp = ref.getName();
System.out.println( temp );
}
 Contoh lain yang menggambarkan polymorphism adalah
ketika kita mencoba untuk passing reference kepada method

 jika kita memiliki sebuah method static printInformation


yang menerima referensi Person sebagai parameter

public static printInformation( Person p ){


. . . .
}
Sebenarnya kita dapat passing reference dari Employee dan
Student kepada method printInformation selama kedua class
tersebut merupakan subclass dari Person

public static main( String[] args )


{
Student studentObject = new Student();
Employee employeeObject = new Employee();

printInformation( studentObject );

printInformation( employeeObject );
}
Buatlah sebuah aplikasi sederhana
implementasi
CRUD( Create ,read,update,delete)
 Matius S, Sri H, Nerry S, “ Java 2 SE dengan
JBuilder”, Andi publisher, Yogyakarta, 2005.
 Jeni 1

Anda mungkin juga menyukai