Cari Blog Ini


Jumat, 08 Januari 2010

Object Oriented Programming

Pemahaman tentang OOP

OOP adalah teknik untuk membuat program objek, yaitu program yang tersusun dari kelas dan objek yang saling berhubungan.OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. 


Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance atau penurunan, encapsulation atau pembungkusan,dan polymorphism atau kebanyakrupaan. 

Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.

Hubungan antar kelas/objek ini dapat dilihat baik saat program ditulis maupun saat program dieksekusi.
Karena OOP merupakan teknik pembuatan program, maka ada pendekatan yang digunakan. Ada aturan yang harus diikuti saat menyusun programnya, dan ada tools yang digunakan untuk menuliskan programnya.

Belajar OOP
 

Belajar OOP adalah belajar pemrograman, oleh karena itu ruang lingkup pembahasannya mencakup:
  1. Belajar ide atau pendekatan yang menjadi konsep dasar OOP.
  2. Belajar bagaimana menerapkan konsep dasar itu menjadi berbagai bentuk OOP.
  3. Belajar bahasa pemrograman yang akan digunakan untuk membuat berbagai bentuk OOP, seperti struktur program, sintaks penulisan, atau mekanisme eksekusi program.
  4. Belajar menggunakan tools bahasa pemrograman untuk menulis program, kompilasi, dan eksekusi.
  5. Belajar menemukan dan mengartikan kesalahan program, dan memperbaikinya.
  6. Belajar bagaimana mengimplementasi 1 s.d. 5 untuk membuat sebuah aplikasi yang utuh.
Tiga Pilar OOP 
  • Inheritance   Inheritance atau pewarisan adalah kalimat yang pasti ada di dalam pemerograman berorientasi objek disebut juga dengan istilah reusable.
    Ketika kita menggunakan kembali atau mengganti method dari class yang sudah ada, serta ketika menambahkan field instant dan method baru, maka pada saat itulah Anda bekerja dengan inheritance. Konsep ini merupakan konsep yang fundamental dalam orientasi objek dan harus digunakan dengan baik. 

    Ada beberapa macam Inheritance atau pewarisan yang ada di dalam OOP, diantaranya:
    - Single Inheritance

    - Multiple Inheritance


    dalam penggunaan inheritance class Induk akan mewariskan semua atribut yang ia miliki sehingga class bawahnya akan memilki atribut yang sama dengan class induk, bahkan dapat memilki kebabasan untuk memilki atribut berbeda dengan class induknya berikut ilustrasi dalam php. 

    Pada OOP, sebuah objek dapat diwariskan atau diturunkan atribut/variable dan methodnya ke objek anak, dengan key extends. Pada bagian inheritance ini kita kenal beberapa istilah superclass dan subclass. Superclass adalah objek induk dan subclass adalah objek turunan dari superclass. Sebagai contoh objek kucing kita sebut superclass dan objek turunan dari kucing misal kucing anggora, kucing hutan, kucing arab dan kucing-kucing lainnya kita sebut sebagai subclass.

    Perhatikan contoh berikut
    File Binatang.java(sebagai blueprint)
    public class Binatang {
          String nama;
          int kaki;
          int km;
          int kekuatanDengar;
          String telinga;
          String mata;

          //konstruktor
          public Binatang(){
                nama = "";
                kaki = 0;
                kekuatanDengar = 0;
                km = 0;
                telinga = "";
                mata = "";
          }

          //mendefinisikan method
          public void pendengaranTelinga(int desible){
                kekuatanDengar = kekuatanDengar + desible;
                System.out.println("Kekuatan pendengar : "+ kekuatanDengar);
          }

          //method untuk konstruktor dengan satu parameter
          public void jarakPandang(int jarak){
                km = jarak;
                System.out.println("Jarak pandang : "+ km);
          }
    }


    File kucing.java(method turunan dari induk/Binatang)
    public class kucing extends Binatang{
          //method dari kucing hutan
          public void warnaMata(String color){
                System.out.println("Warna Mata Kucing Hutan "+ color);
          }

          public void panjangKuku(int cm){
                System.out.println("Panjang Kuku Kucing Hutan "+ cm);
          }
          }


    Penciptaan object dari kucing
    File kucingHutan.java
    public class kucingHutan {
           public static void main(String[] args){
                 //create object
                 kucing kucingRumah = new kucing();

                 //panggil method objek kucing
                 kucingRumah.warnaMata("merah");
                 kucingRumah.panjangKuku(10);

                 //method dasar kemampuan kucing
                 kucingRumah.pendengaranTelinga(100);
                 kucingRumah.jarakPandang(500);
           }
    }


    Hasil compile dan run
    run:
    Warna Mata Kucing Hutan merah
    Panjang Kuku Kucing Hutan 10
    Kekuatan pendengar : 100
    Jarak pandang : 500
    BUILD SUCCESSFUL (total time: 0 seconds)




  • Encapsulation Sebuah class yang baik tidak akan menyatakan/memperlihatkan semua informasi mengenai dirinya kepada pihak luar. Class yang baik akan memilah setiap informasi di dalam dirinya. Mana informasi yang tidak boleh diketahui pihak luar, mana informasi yang boleh diketahui pihak luar, mana data yang boleh diubah dari luar, mana data yang tidak boleh diubah, dan sebagainya.Untuk pemahaman lebih lanjut perhatikan contoh listing program berikut:
    Pada contoh diatas untuk file Binatang.java tidak ada perubahan.
    Listing file methodBinatang.java
    public class methodBinatang{
          public static void main(String[] args){
                //create object
                Binatang kucing = new Binatang();
                Binatang katak = new Binatang();

                //init objek kucing
                kucing.nama = "Kucing";
                kucing.kaki = 4;
                kucing.telinga = "Panjang";
                kucing.mata = "coklat";

                //pencetakan dengan memanggil method objek kucing.
                kucing.printDataBinatang();

                katak.nama = "Katak";
                katak.mata = "bulat";
                katak.kaki = 4;
                katak.telinga = "kecil";

                //pemanggilan method objek katak
                katak.printDataBinatang();
          }
    }

    Hasil compile
    run:
    Nama Binatang : Kucing
    Jumlah kaki : 4
    Bentuk telinga : Panjang
    Warna mata : coklat
    Nama Binatang : Katak
    Jumlah kaki : 4
    Bentuk telinga : kecil
    Warna mata : bulat
    BUILD SUCCESSFUL (total time: 0 seconds)



    Ada 2 langkah yang diperlukan untuk melakukan enkapsulasi:
    1. Hak akses dari setiap field di dalam class tersebut diubah menjadi private.
    2. Buatlah getter dan setter method sesuai dengan kebutuhan. Hak akses dari getter/setter method ini harus public agar dapat dipanggil dari luar class.


  • Polymorphis   Polymorphism apabila diartikan menurut katanya berarti “banyak bentuk”. Ketika sebuah object menerima pesan, object tersebut pastilah mempunyai method untuk menanggapi pesan yang datang tersebut. Apabila suatu object tersebut merupakan turunan dari object laen maka object tersebut pasti akan menuruni semua sifat dari induknya, termasuk juga method-method yang ada. Dalam hubungan induk dan anak ada sebutan superclass dan subclass, superclass sebagai class induk dan subclass sebagai class anak. Walaupun pesan datang dan ditanggapi oleh method yang sama dengan superclass namun behavior atau perilaku yang akan dilakukan subclass belum tentu sama dengan superclass nya. Subclass dapat mendefinisikan sendiri sebuah perilaku yang akan dilakukannya, ini yang dimaksud dengan “banyak bentuk” atau polymorphism.  Suatu objek yang sama dapat memiliki lebih dari satu bentuk atau perilaku. Sebagai contoh seekor kucing dalam menerima respon akan menggerakkan kaki depannya dan berlari. Pada objek lain misal seekor katak dalam menerima respon akan melompat, hal ini terjadi pada objek yang sama tetapi dalam proses menerima respon memiliki tindakan yang berbeda.

Tidak ada komentar:

Posting Komentar