Konsep Dasar Pemrograman Berorientasi Objek CLASS & OBJECT Kita dapat membuat banyak OBJECT dari satu CLASS Untuk membuat banyak OBJECT, kita cukup gunakan keyword “new” berulang kali Misal: Rekening CLASS myRekening OBJECT
Membuat CLASS REKENING public class Rekening { // Method untuk menampilkan pesan kepada pemilik Rekening public void tampilkanPesan() { System.out.println("Selamat Datang di Rekening Anda!" ); } // end method tampilkanPesan } // end class Rekening
Membuat OBJECT myRekening: new public class RekeningTest { // main method begins program execution public static void main( String args[] ) { // 1. buat objek Rekening beri nama myRekening Rekening myRekening = new Rekening(); // 2. panggil method tampilkanPesan yang dimiliki Rekening myRekening.tampilkanPesan(); } // end main } // end class RekeningTest
Method Method adalah suatu sarana komunikasi antar objek di dalam suatu program. Contoh method “tampilkanPesan”: public void tampilkanPesan( String namaAnda){ //kode program }
CONSTRUCTOR Constructor merupakan suatu method khusus yang dimiliki oleh setiap class, dan secara default nama method khusus ini sama dengan nama class ybs. Method khusus ini selalu didefinisikan sebagai public dan tidak memiliki return type. Biasanya Constructor digunakan untuk melakukan proses inisialisasi. Contoh Inisialisasi Variabel di dalam Constructor: public class DaftarNilai { private String namaMataKuliah; public DaftarNilai(String namaInisial) { namaMataKuliah = namaInisial; } public void setMataKuliah( String nama ){ namaMataKuliah = nama; // store the course name } public String getMataKuliah(){ return namaMataKuliah; } }
SET dan GET methods Suatu CLASS biasanya memiliki beberapa methods yang berfungsi untuk memanipulasi nilai Instance Variable. Method ini biasanya diberi nama dengan awalan set dan get disertai dengan nama Instance Variable ybs. Misalnya: Class DaftarNilai memiliki instance variable “namaMataKuliah” Maka, kita buatkan methods untuk memanipulasi instance variable tersebut sbb: o
setNamaMataKuliah
o
getNamaMataKuliah
Contoh: public class DaftarNilai { private String namaMataKuliah; // course name for this DaftarNilai // method to set the course name public void setMataKuliah( String nama ){ namaMataKuliah = nama; // store the course name } // method to retrieve the course name public String getMataKuliah(){ return namaMataKuliah; } }
Access Modifier Semua anggota CLASS (method dan atribut) harus memiliki access modifier. Java memiliki 4 Access Modifier: o
public (+)
o
private (-)
o
protected (#)
o
package (~)
Jika anggota suatu CLASS dideklarasikan sebagai public, maka ia dapat diakses dari manapun juga, termasuk dari class lain. Jika anggota suatu CLASS dideklarasikan sebagai private, maka ia tidak dapat diakses dari tempat lain, kecuali di dalam CLASS itu sendiri.
Konsep Inheritance Pada dasarnya, inheritance merupakan feature penting dari OOP, yaitu merupakan suatu bentuk software reuse di mana class yang baru dibuat dengan cara memanfaatkan anggota (atribut & method) class yang telah ada. Dengan menggunakan inheritance, programmers akan menghemat banyak waktu pada saat membuat software. Pada saat membuat suatu class baru, programmer dapat men-desain class tersebut sedemikian rupa agar meng-inherit (menuruni sifat) anggota class yang telah ada. Class yang telah ada ini disebut superclass, dan class yang baru disebut subclass.
Untuk melakukan proses inheritance dari subclass kepada superclass, kita cukup gunakan keyword: EXTENDS Contoh Inheritance hierarchy untuk university:
Contoh Kode Inheritance: // SUPERCLASS: public class CommunityMember{ } // SUBCLASS: public class Employee extends CommunityMember{ } Keterangan: Dengan menggunakan extends, semua private/protected variables & methods yang dimiliki oleh class CommunityMember, akan secara otomatis dapat dimiliki dan diakses oleh class Employee.
Abstract Class Java lets us define a method without implementing it by declaring the method with the abstract modifier. Implementasi abstract method dilakukan di kelas turunannya. Contoh class diagram yang menggambarkan abstract class SHAPE dan 2 concrete class (CIRCLE & RECTANGLE) yang akan mengimplementasikan semua abstract method yang ada pada class SHAPE:
Keterangan: implementasi abstract method area() dan circumference() akan ada di class Circle & Rectangle.
Konsep Polymorphism Polymorphism berasal dari bahasa Yunani yang artinya “different form” atau berbeda bentuk. Polymorphism merupakan suatu feature di OOP di mana kita dapat memiliki objek berbeda yang berasal dari superclass yang sama. Contoh penggunaan Polymorphism: public class AbstractDemo{ Shape s1 = new Circle(); Shape s2 = new Rectangle();
double area1 = s1.area(); double area2 = s2.area(); } Keterangan Program: o
Kedua s1 dan s2 merupakan objek bertipe “Shape”, akan tetapi mereka memiliki bentuk yang berbeda (polymorphism).
o
s1 berbentuk Circle
o
s2 berbentuk Rectangle
o
Pada saat run-time & method “area()” dipanggil, compiler akan menentukan method “area()” mana yang harus dijalankan. (dynamic binding)
o
s1 menghitung area dari Circle
o
s2 menghitung area dari Rectangle
Interface Java supports single inheritance. That means a subclass in Java can have only one superclass. However, if multiple inheritance is needed, Java provides a solution: use an interface. An interface is a template that contains some method declarations. It provides only declarations for the methods, and no implementation. Untuk mendefinisikan interface, kita gunakan keyword interface, sbb: interface { ; ; <methodName1> ( ); <methodName2> (<parameters>); } // interface definition ends here. Semua methods yang ada di dalam interface secara implisit merupakan public dan abstract. Variabel yang ada didefinisikan di dalam interface merupakan constants (tidak dapat diubah nilainya) dan dapat diakses oleh semua instance class yang mengimplementasikan interface tsb. Dengan kata lain, variabel tersebut bersifat public, final, dan static.
© Niko Ibrahim, S.Kom, MIT