Rabu, 11 Maret 2009

OBJECT ORIENTED PROGRAMING (OOP)



Konsep Object Oriented Programing (OOP)

Object Oriented Programing (OOP) merupakan pengembangan program yang dilakukan dengan pendekatan building block. Setiap block, disebut objek, bersifat independen dan mampu berjalan sendiri atau saling kunci dengan object lain dengan mudah dan otomatis. beberapa object berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing-masing object harus berisikan informasi mengenai dirinya sendiri (encapsulation) dan object yang dapat dikaitkan (inheritance).

Dalam konsep object oriented akan kita temukan kata object dan class, class merupakan pola / template yang menggambarkan kumpulan object yang mempunyai sifat yang sama, perilaku, atau disebut dengan himpunan object sejenis. Sementara object adalah implementasi dari class. Objek yang kita lihat tentunya memiliki hal atau karakteristik yang melekat pada dirinya sendiri seperti ukuran, warna, tinggi, dan bentuk yang disebut attribute. Selain itu, object yang kita kenal juga mempunyai tingkah laku dan kemampuan untuk melakukan suatu tugas, yang berasal dari dalam dirinya sendiri, yang disebut behavior atau method.

Untuk mempermudah memahami konsep object oriented, sebagai contoh pada objek manusia dan sepeda memiliki atribut yang berbeda.

  • Class Manusia; Objek petani memiliki atribut; tangan, kaki, kepala, badan, baju, celana, topi dan lainnya; Method/Behavior: cara menanam, mencangkul, memupuk, memanen
  • Class Sepeda; Objek sepeda jengki: memiiki atribut roda, rangka, pedal dan sebagainya; Method/Behavior: cara berjalan, cara berhenti, cara berbelok dan sebagainya.

Dari suatu class dapat dibuat beberapa object yang sama. Object itu secara mudahnya dapat dikatakan terdiri dari property dan method.

Konsep object oriented memiliki karakteristik utama yaitu :

1. Enkapsulasi, yaitu sebuah prinsip yang digunakan ketika membangun struktur program secara keseluruhan yang mana setiap komponen dari program dibungkus, pembungkusan properti dan operasi dalam satu even. Secara simple dapat kita katakan bahwa kita menyembunyikan keruwetan kode-kode program dalam suatu object.

2. Polimorphism, suatu kondisi dimana dua object atau lebih mempunyai antarmuka yang identik namun mempunyai perilaku berbeda.

3. Inheritance (pewarisan), merupakan sarana untuk menghilangkan penulisan ulang terhadap kode yang dapat digunakan berulang kali yang didasarkan pada hubungan relasional hirarki.

Sebelum kita memasuki dalam bahasa pemrograman, sebaiknya ada beberapa hal yang kita selalu kita ingat dan kita pegang :

1. Program yang akan kita buat adalah terdiri dari sekumpulan object yang saling berinteraksi atau saling mengirimkan pesan. Misalnya kita asumsikan program kita adalah sebuah sepeda, dan bagian-bagian dari sepeda tersebut adalah object-object (rangka, roda, pedal dan lain sebagainya) yang saling berhubungan dan menjadi satu kesatuan yang membangun sepeda tersebut

2. Berfikirlah object sebagai tipe “data buatan” (seperti struct, Enum). Namun tipe “data buatan” ini memiliki kelebihan yaitu dapat menyimpan informasi (sebagai property) dan juga dapat melakukan “aktivitas” (sebagai method/ fungsi)

3. Setiap object memiliki “tipe” tersendiri. Tipe disini dimaksudkan agar kita dapat mengetahui “pesan” apa yang dapat kita kirimkan terhadap object tersebut. Atau dengan kata lain dengan mengetahui “tipe” suatu object kita dapat memanggil fungsi yang terdapat didalamnya ataupun informasi yang disimpan oleh object tersebut

Bagaimana Menentukan Object-Object dalam suatu program

Ketika kita hendak membuat suatu program tentunya kita akan dihadapkan dengan persoalan bagaimana cara mendesain object yang baik sehingga program yang kita buat dapat berjalan dengan optimal? Untuk menjawab pertanyaan ini tidaklah mudah, karena belum ada aturan yang baku dalam mendesain object yang akan dibuat, akan tetapi ada beberapa hal yang dapat dijadikan pegangan dalam mendesain program yang baik yaitu :

1. Correctness and Sufficiency

Dalam mendesain program sebaiknya kita memperhatikan bahwa object-object yang kita desain dapat menjamin kebenaran informasi dan juga kecukupan informasi yang dibutuhkan

2. Robustness

Object-object yang kita desain sebaiknya dapat membuat suatu program menjadi tangguh, dalam hal ini diharapkan program yang dibuat memiliki error yang sedikit dan dapat bertahan dalam situasi yang sulit sekalipun.

3. Flexibility

Object-object yang didesain sebaiknya mudah untuk diexpand atau dikembangkan (bersifat flexibel). Hal ini dibutukan karena dalam pembuatan program sering kali kita harus merubah desain yang telah kita buat sebelumnya karena adanya perubahan desain yang diinginkan oleh user/pengguna.

4. Reusability

Kode-kode program yang telah kita buat, dapat kita gunakan kembali. Hal ini haruslah terpenuhi dalam mendesain program yang baik. Karena ketika kita menggunakan point ini maka kita akan lebih mudah untuk me-manage program yang kita buat, apalagi disaat kita harus mengganti suatu informasi dalam program yang kita buat.

5. Efficiency

Desain yang kita buat sebaiknya efisien karena akan berkaitan dengan penggunaan resource hardware yang kita gunakan. Baik itu dalam faktor kecepatan maupun dalam faktor penyimpanan data/program.

Dengan berpegang pada beberapa hal diatas diharapkan kita dapat mendesain program yang tangguh, dan bagus.

Contoh Program

Berikut adalah contoh penerapan class, object, atribut dan method dalam pemprograman java:

// Membuat class

class Kalkulator{

// atribut

int tambah =0;

int kurang =0;

int kali =0;

int bagi =0;

//Method

void pertambahan (int a, int b){

tambah=a+b;

System.out.println(”Hasil Pertambahan = ”+tambah);

}

void pengurangan(int a, int b){

kurang=a-b;

System.out.println(”Hasil Pengurangan =”+kurang);

}

void perkalian(int a, int b){

kali=a*b;

System.out.println(”Hasil Perkalian =”+kali);

}

void pembagian(int a, int b){

bagi=a/b;

System.out.println(”Hasil Pembagian =”+bagi);

}

}

// Membuat object

public class KalkulatorBeraksi{

public static void main(String[]args){

Kalkulator kalkulatorBaru = new Kalkulator();

kalkulatorBaru.pertambahan(10,5);

kalkulatorBaru.print Kalkulator();

}

}