kumpulbloger

Senin, 25 Oktober 2010

Pemrograman Berorientasi Object

PBO


Objek

Pada dasarnya semua benda yang ada di dunia nyata dapat dianggap sebagai sebuah objek. Jika perhatikan lebih lanjut, pada dasarnya ada dua karakteristik yang utama pada sebuah objek , yaitu :

Setiap objek memiliki atribut sebagai status yang kemudian akan disebut sebagai state.

Setiap objek memiliki tingkah laku yang kemudian akan disebut sebagai behaviour.

Contoh sederhananya adalah : objek sepeda Sepeda memiliki atribut ( state ) : pedal, roda, jeruji, dan warna. Sepeda memiliki tingkah laku ( behaviour ) : kecepatannya menaik, kecepatannya menurun, dan perpindahan gigi sepeda.

Dalam pengembangan perangkat lunak berorientasi objek, objek dalam perangkat lunak akan menyimpan state-nya dalam variabel dan menyimpan informasi tingkah laku ( behaviour ) dalam method-method atau fungsi-fungsi/prosedur.


Class

Class berbeda dengan objek. Class merupakan prototipe yang mendefinisikan variabel-variabel dan method-method secara umum. Sedangkan objek pada sisi yang lain merupakan instansiasi dari suatu kelas.


Method

Pada bahasa – bahasa pemograman yang lain method disebut juga fuction atau procedure. Dalam pemograman berorientasi object method adalah suatu operasi atau kegiatan yang dapat dilakukan suatu object.



Sifat2 OOP

1. Enkapsulasi

Dalam sebuah objek yang mengandung variabel-variabel dan methodmethod, dapat ditentukan hak akses pada sebuah variabel atau method dari objek. Pembungkusan variabel dan method dalam sebuah objek dalam bagian yang terlindungi inilah yang disebut dengan enkapsulasi. Jadi, enkapsulasi

dapat diartikan sebagai bungkusan ( wrapper ) pelindung program dan data yang sedang diolah. Pembungkus ini mendefinisikan perilaku dan melindungi program dan data yang sedang diolah agar tidak diakses sembarangan oleh program lain.


Manfaat dari proses enkapsulasi adalah :

Modularitas

Kode sumber dari sebuah objek dapat dikelola secara independen dari kode sumber objek yang lain.

Information Hiding

Karena kita dapat menentukan hak akses sebuah variabel/method dari objek, dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui objek lain.


2. Inheritance

Class dapat didefinisikan dengan referensi pada class yang lain yang telah terdefinisi. Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state ( variabel-variabel ) dan behaviour ( methodmethod) dari superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula memodifikasi ( override ) state dan behaviour yang diturunkan oleh superclass-nya.

Keuntungan dari inheritance adalah :

  • Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada.

  • Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum.


Istilah dalam inheritance yang perlu diperhatikan :

Extends

Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.

Superclass

Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.

Subclass

Subclass adalah class anak atau turunan secara hirarki dari superclass.

Super

Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.

Methode Overriding

Pendefinisian ulang method yang sama pada subclass.


Dalam inheritance, method overriding berbeda dengan method overloading. Kalau method overriding adalah mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter yang diperlukan dalam subclass, kalau method overloading adalah mendefinisikan method yang memiliki nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama.


3. Polimorfisme

Kata polimorfisme yang berarti satu objek dengan banyak bentuk yang berbeda, adalah konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method

tergantung dari tipe objeknya.


Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah :

  • Method yang dipanggil harus melalui variabel dari basis class atau superclass.

  • Method yang dipanggil harus juga menjadi method dari basis class.

  • Signature method harus sama baik pada superclass maupun subclass.

  • Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.


Interface

Pada Java juga dikenal konsep interface, yang merupakan device yang digunakan untuk komunikasi antar objek berbeda yang tidak memiliki hubungan apapun. Interface bisa dikatakan sebagai protokol komunikasi antar objek tersebut.

Package

Package adalah cara untuk mengelompokan class dan interface yang ada ke dalam kelompoknya (name space) masing – masing sehingga lebih mudah diatur dan memungkinkan penggunaan nama yang sama.

Modifier

Penggunaan modifier berfungsi untuk melakukan enkapsulasi (membungkus data) pada objeck. Dengan menggunakan modifier kita dapat menentukan siapa saja yang boleh menggunakan atau mengakses member dari suatu objek.
Ada empat macam modifier yang dikenal oleh Java, yaitu private, protected, public dan tanpa modifier.


Berikut ini adalah daftar modifier yang dapat digunakan pada method.

Modifier

Keterangan

(default)

Method visible atau dapat digunakan hanya pada package yang sama

public

Method visible pada semua package

private

Method visible hanya di dalam class itu sendiri

protected

Method visible didalam package dan sub classnya

static

Lihat sub bab sebelumnya

final

Method tidak dapat diubah / dioverride pada subclass (dibahas pada bab selanjutnya)

abstract

Method harus dioverride / didefinisikan pada subclassnya (dibahas pada bab selanjutnya)


Abstract Class

Class Abstrak tidak berbeda dengan class – class lainnya yaitu memiliki class members (method dan variabel). Sebuah class adalah abstrak jika salah satu methodnya dideklarasikan abstrak. Method abstrak adalah method yang tidak memiliki implementasi. Contoh deklarasi method abstrak:

abstract public void cetak();

Beberapa hal yang perlu diperhatikan adalah sebagai berikut:

  1. Class abstrak tidak dapat dibuatkan instan atau objeknya menggunakan keyword new.

  2. Sebuah class dapat dideklarasikan sebagai class abstrak walaupun tidak memiliki method abstrak.

  3. Variabel dengan tipe class abstrak tetap bisa diciptakan, tetapi harus refer ke subclass dari class abtrak tersebut yang tentunya tidak abstrak.



Konstruktor

Konstruktor merupakan method khusus yang digunakan untuk menginisialisasi objek dan tiap class boleh memiliki lebih dari satu konstruktor.
Perbedaan method biasa dengan konstruktor adalah bahwa konstruktor harus memiliki nama yang sama dengan nama classnya dan tidak memiliki nilai kembalian (tipe-data).
Konstruktor dijalankan pada saat sebuah object diinisialisasi (menggunakan kata new). Pada konstruktor juga berlaku overloading, artinya boleh mendeklarasikan lebih dari satu konstruktor, asalkan memiliki parameter yang berbeda – beda.


Method Overloading

Dalam Java kita boleh memiliki lebih dari satu method yang memiliki nama sama. Inilah yang disebut method overloading. Walaupung Java mengizinkan memiliki nama method sama lebih dari satu, tetapi daftar parameter yang digunakan haruslah berbeda untuk masing – masing method. Karena Java akan menggunakan parameter – parameter ini untuk menentukan method mana yang akan dieksekusi.


Method Overriding

Jika pada subclass kita menulis ulang method yang ada pada super classnya, maka method yang ada di subclass tersebut disebut meng-override method super classnya. Jadi ketika kita memanggil method tersebut dari objek subclassnya maka yang akan dijalankan adalah method yang berada di subclass tersebut.


Penggunaan Keyword this

Terkadang dalam suatu method kita ingin menunjuk ke objek di mana method ini berada. Untuk itu kita menggunakan keyword this.

Penggunaan Keyword Static

Apabila kata kunci static kita tempatkan pada pendeklarasian member (variabel dan method) dari suatu class, maka member class tersebut dapat diakses tanpa harus menciptakan objek class tersebut.

Keyword final

Kata kunci final digunakan untuk pendeklarasian yang absolut. Keyword final dapat digunakan dalam pendeklarasian variabel, class, method. Pendeklarasiannya dengan menuliskan keyword final di depan variabel, class atau method. Dan perlu diketahui, final adalah keyword bukan modifier akses.

Penggunaan final pada variabel
Conoh:

    class Lingkaran {
    final double PI = 3.14;
    }

    Variabel PI bertipe double dan bernilai 3.14 tidak bisa diubah lagi secara aktual lewat mekanisme apapun. Baik lewat objek ataupun apapun. Final membuat variabel menjadi suatu konstanta yang absolut (tidak dapat diubah)

  • Penggunaan final pada class
    Contoh:

    final class Kampus {

    }

    Class Kampus tidak dapat diturunkan lagi (extends)

  • Penggunaan final pada method
    Contoh:

    class Kampus {
    final void tampil() {
    System.out.println(“I LOVE JAVA”)
    }
    }

    Method tampil sudah mendapatkan keyword final, dan itu berarti method tersebut tidak dapat diubah atau dioverride dan di turunkan


Senin, 12 Juli 2010

Send gift to mylovelygf and stand a chance to WIN $100 USD

Between the date of 1st July to 11th July, send as many gifts as you can to mylovelygf and stand a chance to walk away with $100USD!

Open to all mig33 members with a registered and authenticated mobile number

The competition period is 1-11July, GMT

The mig33 user must send the virtual gifts to username "mylovelygf ", to be eligible for the competition

There will be one global prize winner who will win $100 mig33 credits. This will be the user who sends the most gifts to the username “mylovelygf ”

There will be local winners, in 15 specific countries. In each country the top two who send the most gifts to the username “mylovelygf ” will win $50 mig33 credits each.

There countries are:
* Syria
* Saudi Arabia
* Iraq
* Hong Kong
* Egypt
* Indonesia
* Maldives
* Brunei Darussalam
* Singapore
* South Africa
* India
* Bangladesh
* Mozambique
* Oman
* Israel

The prizewinners will be contacted via their registered mobile number and email with mig33.

The winners will be published within mig33. The winner̢۪s name and details may be used for promotional purposes.

This competition is not open to users in the USA.

by SaurabhBidani