Setelah kemaren saya posting tentang
bahasa pemrograman java, sekarang saya ingin berbagi tentang konsep pemrograman berorientasi objek. Konsep pemrograman berorientasi objek atau Objek Oriented Programing
(OOP) adalah inti dari sebuah pemrograman java yang didalamnya memiliki
class, object, attribute, method, constructur yang menjadi dasar dari pemrograman java, dimana semua pemrograman java merupakan sebuah objek.
Pengertian Attribute
Attribute
adalah data yang membedakan antara objek satu dengan yang lain. Elemen
data yang terdapat pada suatu object yang berasal dari class yang
menyimpan informasi tentang objek. Attribute dapat diartikan sebagai
data, variabel, properti atau sebuah fiels data, dan setiap variabel
harus memiliki tipe data dan nama yang unik untuk membedakan antara
variabel satu dengan yang lainnya.
Dalam class, atribut sering
disebut sebagai variabel. Atribute terbagi menjadi dua jenis yaitu
Instance Variable dan Class Variable.
Instance variable adalah
atribut untuk setiap objek dari class yang sama. Setiap objek mempunyai
dan menyimpan nilai atributnya sendiri. Jadi, setiap objek dari class
yang sama boleh mempunyai nilai yang sama atau berbeda.
Class
variable adalah atribute untuk semua objek yang dibuat dari class yang
sama. Semua objek mempunyai nilai atribut yang sama. Jadi semua objek
dari class yang sama mempunyai hanya satu nilai yang value nya sama.
Pengertian Methods
Dalam
java method disebut juga sebagai behavior, methods digunakan untuk
merubah nilai attribute suatu objek, juga untuk menerima atau mengirim
informasi dari/ke objek lain untuk melakukan instruksi.
Pengertian Constructor
Constructor
adalah sebuah method khusus yang digunakan dalam kelas untuk membuat
dan menganalisa sebuuah objek baru. Construktor berfungsi untuk
menginisialisasi nilai terhadap data yang terdapat pada kelas yang
berhubungan. Ketentuan constructor untuk melakukan inisialisasi :
- Construktor harus sama dengan nama kelas
- Constructor tidak menverifikasi tipe data yang dikirim
- Kelas dapat berisi banyak constructor overloading yang memungkinkan objek diinisialisasi
Dalam pemrograman java terdapat konsep pemrograman java diantara nya sebagai berikut :
- Class
- Object
- Abstraksi
- Enkapsulasi (Encapsulation)
- Pewarisan (Inheritance)
- Polimorfisme
- Interface
1. Class
Class adalah tempat atau
wadah yang digunakan untuk menciptakan objek yang menjelaskan data (
sifat karateristik data ) dan fungsi yang dimiliki suatu objek.
2. Object
Objek
merupakan hasil dari sebuah kelas, artinya sebuah kelas dapat membuat
beberapa object. Contoh sebuah rungan dimana ruangan tersebut terdapat
berbagai objek seperti kursi , meja dan lainnya, jadi kelas adalah
ruangan dan kursi, meja adalah objecy nya.
3. Abstraksi
Abstraksi
adalah pengabstrakan atau penyembunyian kerumitan suatu proses. Hal ini
bertujuan untuk membuat kelas abstrak dimana kelas lain dapat
memanfaatkannya (extends) dengan cara menjadi subclass dari kelas
abstrak tersebut. Abstrak class digunakan untuk mendeklarasikan
karakteristik umum dari subclass. Abstract class tidak bisa
diinstansiasi sama halnya dengan kelas interface. Abstract class hanya
bisa digunakan sebagai superclass, tapi juga bisa diturunkan dari class
abstract lainnya.
Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract,
[abstract]
class [class_name]. Sebuah abstract class pada dasarnya tidak jauh beda
dengan class lainnya, yakni juga berisi method yang menggambarkan
karakteristik dari kelas abstract tersebut, bedanya yakni sebuah
abstract class bisa berisi method tanpa diimplementasikan artinya sebuah
method tanpa body, method seperti ini disebut method abstract. Untuk
pendeklarasiannya digunakan keyword abstract: [abstract] modifier class
[class_name] berikut contoh program yang menggunakan class abstract.
Contoh Abstrak class :
abstract class Shape{
public String color;
//constractor default, constraktor yang tidak memiliki argumen dan isi
public Shape(){
}
//sama halnya dengan kelas biasa abstract class juga bisa berisi method
//seperti yang ada pada kelas biasa
public void setColor(String c){
color = c;
}
public String getColor(){
return color;
}
//sebuah abstract method yang tidak memiliki body
//method ini akan diinisialisasi nantinya pada subclass yang mewarisi kelass abstract Shape ini
//semua abstract method yang ada pada class abstract harus diimplementasikan
//semua oleh subclass
abstract public double area();
}
//keyword extends adalah keyword yang digunakan oleh subclass
//ketika melakukan pewarisan terhada super class
public class Point extends Shape{
static int x, y;
public Point(){
x = 0;
y = 0;
}
public double area(){
return 0;
}
public double perimeter(){
return 0;
}
public static void print(){
System.out.println("point: " + x + "," + y);
}
public static void main(String args[]){
Point p = new Point();
p.print();
}
}
Hasil output :
4. Enkapsulasi (Encapsulation)
Enkapsulasi
atau pembungkusan adalah membungkus atribut (field atau variabel) dan
tingkah laku (method) didalam sebuah class. Dalam pemrograman java
terdapat 3 tingkatan akses data untuk melakukan pembungkusan kode dan
data yaitu :
a. Tingkat akses Private.
Dalam
encapsulation-private ini dapat diartikan bahwa method yang digunakan
hanya dapat diakses oleh kelas yang memilikinya, dan tidak mengijinkan
kelas lain yang berada dalam program untuk mengakses dang menggunakan
method tersebut. Untuk mendeklarasikannya menggunakan kata kunci
private.
b. Tingkat akses Protected.
Dalam
encapsulation-protected ini dapat diartikan bahwa method yang digunakan
dapat diakses oleh kelas yang memilikinya dan kelas yang masih memiliki
hubungan turunan. Kelas yang dapat mengakses adalah kelas yang berada
dalam package yang sama dan subclass yang berada dalam package yang
berbeda. Untuk mendeklarasikannya menggunakan kata kunci
protected.
c. Tingkat akses Public.
Encapsulation-public
ini merupakan kebalikan dari encapsulation-private, dapat diartikan
bahwa method yang digunakan dapat diakses oleh semua bagian dalam kelas
atau program, meskipun kelas tersebut tidak memiliki hubungan sama
sekali ( meliputi semua kelas, kelas turunan dan kelas lain ).
5. Pewarisan (Inheritance)
Pewarisan
adalah penurunan ( pewarisan ) suatu atribut maupun method dari sebuah
kelas ke kelas lainnya. Pewarisan di java terdiri dari 2 macam yaitu
superclass dan subclass.
a. Superclass
Superclass adalah
class yang letaknya di atas class tertentu didalam hierarki, atau dapat
diartikan class yang mewarisi ke class yang lain.
b. Subclass
Subclass
adalah class yang letaknya di bawah class tertentu didalam hierarki,
atau dapat diartikan class yang diwarisi dari class yang lain. Untuk
pewarisan dalam java terdapat istilah yang namanya
Multiple Inheritance,
Multiple Inheritance adalah subclass yang menjadi sebagai superclass
bagi class yang lain. Untuk mengambil sebuah class, dapat menggunakan
kata kunci
extends.
Keuntungan penggunaan Inheritance dalam OOP adalah :
1. Ketika behavior ( method ) dideklarasikan dalam superclass, behavior tersebut otomatis diwariskan ke seluruh subclass.
2. Jadi, kita dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan oleh seluruh subclass.
3. Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan parent-nya.
6. Polimorphisme
Polimorphism
adalah suatu konsep dalam pemrograman java dimana objek yang berbeda
dapat memiliki berbagai bentuk dengan nama yang sama pada suatu kelas
(class). Polimorphism juga merupakan aspek kedua setelah reusable dari
pewarisan ( inheritance ).
Contoh memahami konsep polymorphism
adlah ketika anda memiliki jam beker, kemudian anda menetapkan waktu
tertentu pada jam. Ketika waktu yang ditentukan tepat, maka jam beker
tersebut akan bordering biasa dan jam beker yang lain mungkin dapat
bergetar sambil menyanyikan music kesayangan anda.
Dari contoh
diatas dapat kita ketahui bahwa objek dasar dari suatu jam beker
memiliki kemampuan untuk mengeluarkan bunyi ketika waktunya tepat. Namum
demikian, perilaku dari tiap-tiap jam beker dapat berbeda-beda,
misalnya dalam bentuk tradisional, digital, dan sebagainya.
7. Interface
Interface
adalah sekumpulan metode abstrak yang tidak memiliki implementasi.
Interface selalu abstrak meskipun tidak secara ekplisit dideklarasikan
sebagai abstrak.
Dalam Java, kata interface adalah kata kunci yang
memiliki arti tambahan. Suatu interface dalam hal ini adalah antar muka
yang terdiri dari subrutin tanpa implementasi apa-apa. Suatu kelas
dapat mengimplementasi suatu interface dengan memberikan kode detail
pada setiap subrutin yang ditulis pada interface tersebut.
Didalam interface javaterdapat istilah interface-modifier yang merupakan salah satu atau gabungan dari kata kunci
public, protected, private, abstract, static, dan
strictfp.
a. Interface-Modifier: Public
Sebuah
interface harus dideklarasikan dengan modifier public, agar dapat
diakses dari package yang lain. Nama dari interface ini harus sama
dengan nama file source
.java.
b. Interface-Modifier: Protected
Interface-modifier
ini hanya berlaku untuk member-interface yang berada didalam sebuah
class. Jika member-interface berada dalam sebuah interface maka secara
implicit ia public, sehingga tidak dapat lagi memakai modifier
protected.
c. Interface-Modifier: Private
Interface-modifier
ini hanya berlaku untuk member-interface yang berada didalam sebuah
class. Jika member-interface berada dalam sebuah interface maka secara
implicit ia public, sehingga tidak dapat lagi memakai modifier private.
Jika modifier private dipakai oleh sebuah modifier-interface, maka
member-interface tersebut hanya akan terlihat ( dapat diakses ) di dalam
class yang memilikinya.
d. Interface-Modifier: Abstract
Semua
interface ( termasuk member-interface ) secara inplisit selalu
abstract, karena interface ditunjukan untuk menyimpan anggota berupa
abstract-method. Dengan demikian, meskipun deklarasi interface tidak
menggunakan modifier abstract secara eksplisit, Ia akan selalu abstract.
e. Interface-Modifier: Static
Interface-modifier
ini hanya berlaku untuk member-interface. Jika member-interface berada
dalam sebuah class, maka secara implicit ia static. Jika
member-interface berada dalam sebuah interface, maka secara implicit ia
static dan public. Sehingga meski member-interface tidak memakai
modifier static, ia akan selalu dianggap static. Dengan demikian,
member-interface akan diinisialisasi hanya sekali saja. Yaitu pada saat
class atau interface yang dimilikinya diinisialisasi.
sumber :
-
Indrajani, S.Kom, MM dan Martin S.Kom.2007.Pemrograman Berbasis Objek dengan Bahasa Java.Jakarta : PT Elex Media Komputindo.448.
-
Dosen Pemrograman Java STMIK Widya Pratama Pekalongan
-
Google.com