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