Sabtu, 15 Oktober 2011

Pemrograman Berorientasi Objek

Pemrograman berorientasi pada objek adalah peningkatan dari pendekatan pemrograman prosedural yang telah bertahun-tahun dianut oleh kalangan pengembang software. Terutama yang masih menggunakan software-software developer lama seperti C, C++, Pascal, Basic, ADA, dan COBOL.
Pemrograman berorientasi objek meningkatkan sisi fleksibilitas, modularity, reuseability, clarity yang semuanya itu dapat dilihat dari class enkapsulisasi, class inheritance, dan polymorphisme. Pada pemrograman prosedural, data dan prosedur terpisah sehingga diperlukan pengiriman data ke prosedur-prosedur. Sedangkan dalam pemrograman berorientasi objek, data dan prosedur atau operasinya menjadi satu dalam sebuah entitas yang disebut objek. Pendekatan pemrograman Object Oriented (OOP) memandang masalah seperti apa adanya di dunia nyata di mana semuanya adalah objek. Program java sendiri dapat dipandang sebagai koleksi dari objek-objek yang saling berhubungan. Menggunakan pendekatan OOP akan meningkatkan daya guna dari program, mudah dalam pengembangan-nya, dan mudah dalam pendistribusiannya.

MENDEFINISIKAN CLASS UNTUK OBJECT
Seperti yang telah diketahui bahwa pemrograman berorientasi pada objek, pastilah melibatkan objek dalam pemrogramannya. Objek sejatinya adalah pencerminan dari sebuah entitas dari dunia nyata yang dapat didefinisikan dengan jelas. Contoh dari objek-objek tersebut adalah murid, karyawan, guru, meja, kursi, kucing, anjing, rumah, bahkan pajak, atau utang juga dapat dianggap sebagai objek. Sebuah objek memiliki identitas yang unik, ciri fisik (state), perilaku (behavior). Dalam dunia pemrograman state dari sebuah objek disebut juga properti, sedangkan behavior adalah method.

Contohnya sebuah objek lingkaran memiliki properti jari-jari, yang menentukan karakteristik dari sebuah lingkaran. Sedangkan behaviornya adalah kemampuan menghitung luas.

Class adalah konstruksi dari objek yang digunakan untuk mendefinisikan objek-objek lain yang serupa. Contohnya sebuah cetak biru sebuah rumah dapat digunakan pengembang perumahan untuk membuat ratusan rumah yang sama, tetapi berbeda bentuk pagar, beda cat, beda atap, dan beda tempat.

Sebuah class dalam Java menggunakan variabel untuk mendefinisikan properti dan method untuk mendefinisikan method. Sebuah class juga memiliki sebuah method khusus yang disebut konstruktor yang mana akan dipanggil sewaktu sebuah objek dari class akan dibuat dengan operator new. Seperti layaknya sebuah method konstruktor juga dapat melakukan sesuatu, tetapi konstruktor didesain untuk melakukan inisialisasi aksi, seperti melakukan inisialisasi properti dari objek. Berikut ini adalah contoh class, yaitu class lingkaran :

package test_lingkaran;
/**
 *
 * @author saddam
 */
public class Lingkaran {
    //jari-jari lingkaran
    double jari = 5.0;
   
    //konsturktor bagi objek lingkaran
    Lingkaran(){
       
    }
    //konstruktor juga dengan desain husus
    Lingkaran(double jari){
        this.jari = jari;
    }
   
    //mencari luas lingkaran --ini adalah sebuah method
    double luasLingkaran(){
        return jari*jari*3.14159;
    }

Contoh class tersebut tidak dapat Anda jalankan ataupun hanya dikompilasi karena akan terjadi error. Ini hanyalah sebuah contoh untuk membuat sebuah objek lingkaran.

Konstruksi Objek Menggunakan Konstruksi
Konstruksi harus memiliki nama yang sama dengan class yang diwakilinya. seperti halnya method, konstruktor dapat juga di-overloaded dan bila Anda perhatikan pada definisi class lingkaran di atas Anda telah menyiapkan hal tersebut. Overloading konstruktor mempermudah penciptaan object dari class tersebut dengan tipe data yang berbeda. Untuk melakukan konstruksi objek dari sebuah class, Anda dapat memanggil konstruktor dari class dengan menggunakan operator new seperti berikut ini :
new nama_class(argumen);
contoh :
new Lingkaran();
Statemen terakhir adalah membuat objek lingkaran dari class lingkaran.
new Lingkaran(9);
Statemen di atas akan membuat objek lingkaran juga tetapi dengan menggunakan bentuk konstruktor yang kedua pada class lingkaran. Umumnya sebuah class memiliki konstruktor yang tidak memiliki argumen.sebuah class bahkan mungkin didefinisikan tanpa konstruktor standar secara otomatis (tanpa argumen).

Sebuah objek sesungguhnya adalah turunan (atau instance) dari sebuah class. Anda dapat membuat sebanyak mungkin instance dari sebuah class. Instantiation adalah proses pembuatan sebuah objek dari sebuah class. Istilah instance dan objek mengacu kepada hal yang sama. Hubungan antara class dan objek adalah seperti hubungan resep makanan kue dengan makanan kue itu sendiri.

Mengakses Objek Melalui Variabel Reference
Objek diakses lewat variabel reference yang memiliki acuan ke objek yang dimaksud. Cara penulisannya adalah sebagai berikut :
namaclass var_ref_object
Sebuah class  yang digunakan sebagai tipe dikenal sebagai tipe reference. Semua variabel tipe class dapat menunjuk ke sebuah objek dari class tersebut. Contoh :
Lingkaran lingkaran1;
Setelah deklarasi tersebut variabel lingkaran1 dapat menjadi reference dari objek lingkaran. Di bawah ini adalah contoh statement yang akan menciptakan objek dan memberikan reference ke lingkaran1.
lingkaran1 = new Lingkaran();
Dengan menggunakan sintaks yang ada di bawah ini, anda dapat menuliskan sebuah statement yang mengombinasikan deklarasi dari variabel yang mengacu (reference)  pada objek, pembuatan objek, dan mengaitkan objek dengan variabel referensinya.
nm_class var_ref_obyk = new nm_class();
Contoh :
Lingkaran lingkaran1 = new Lingkaran();

Mengakses Data dan Method Dari Objek
Setelah sebuah objek dibuat, data di dalamnya dapat diakses dan method di dalamnya dapat dipanggil dengan menggunakan sintaks seperti di bawah ini
var_ref_oby.data
Program di atas digunakan untuk membuat reference ke data pada objek. Sedangkan di bawah ini memanggil sebuah method dari sebuah objek.
var_ref_oby.method(argumen)
contoh :
lingkaran1.jari;
Digunakan untuk membuat reference yang mengacu pada variabel jari di object lingkaran1. lingkaran1.luaslingkaran() memanggil method luaslingkaran() yang ada pada class lingkaran1. Properti jari direferensikan sebagai variabel instance/object karena bergantung pada objek tertentu saja. Demikian juga method luaslingkaran adalah referensi dari objek method karena Anda hanya dapat memanggilnya dari objek tertentu saja.
perhatikan contoh pada listing berikut ini, dan perhatikan hasilnya pada Gambar 2.1.
//tes class Lingkaran
package test_lingkaran;

/**
 *
 * @author saddam
 */
public class Test_Lingkaran {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //membuat lingkaran dengan jari 10
       Lingkaran lingkaran1 = new Lingkaran(10.0);
       System.out.println("Luas lingkaran dengan jari-jari "+lingkaran1.jari+" adalah : "+lingkaran1.luasLingkaran());
      
       //membuat lingkaran
       Lingkaran lingkaran2 = new Lingkaran();
       System.out.println("Luas lingkaran dengan jari-jari "+lingkaran2.jari+" adalah : "+lingkaran2.luasLingkaran());
      
       //memodifikasi variabel jari-jari
       lingkaran2.jari = 1000;
       System.out.println("Luas lingkaran dengan jari-jari "+lingkaran2.jari+" adalah : "+lingkaran2.luasLingkaran());
    }
}

Tidak ada komentar:

Posting Komentar