Selasa, 01 Juli 2014

on Leave a Comment

Apa Itu OOP (Object Oriented Program) atau PBO (Pemrograman Berbasis Objek)

Halo guys, di thread pertama ane. Ane akan ngejelasin apa itu OOP atau PBO.

Mungkin ente udah pada tau betul daripada ane yang masih newbie, langsung aja cekibrot :

A. Pengertian OOP (Object Oriented Programming) 
       OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.

B. Konsep OOP (Object Oriented Programming) 
1. Kelas Abstrak (Class Abstraksi)
2. Enkapsulasi (encapsulation)
3. Pewarisan (Inheritance)
4. Polimorfisme (polymorphism)

1. Kelas Abstrak (Class Abstraksi)
    • Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari sekumpulan data.
    • Kelas dapat diilustrasikan sebagai suatu cetak biru(blueprint) atau prototipe yang digunakan untuk menciptakan objek.
    • Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan operasi pada data dalam suatu unit tunggal.
    • Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data field), prosedur atau fungsi (method), dan sifat kelas (property).
2. Enkapsulasi (encapsulation)
    • Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi.
    • Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci.
    • Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu.
    • Contoh: kelas mobil menyediakan antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara dan kalor yang diperlukan untuk proses tersebut.
3. Pewarisan (Inheritance)
    • Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada.
    • Penurunan sifat ini bisa dilakukan secara bertingkattingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik.
    • Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya.
    • Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kodekode itu.
4. Polimorfisme (polymorphism)
    • Polimorfisme merupakan kemampuan objekobjek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama.
    • Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.
    • Method overriding.
    • Method name overloading.
C. Karakteristik OOP (Object Oriented Programming) 
  • Semua adalah objek.
  • Komputasi dilakukan dengan komunikasi antar objek. Setiap objek berkomunikasi dengan objek yang lain melalui pengiriman dan penerimaan pesan.
  • Sebuah pesan merupakan permintaan atas sekumpulan aksi dengan semua argumen yang diperlukan untuk menyelesaikan suatu tugas tertentu.
  • Setiap objek memiliki memori sendiri, yang dapat terdiri dari objek-objek lainnya.
  • Setiap objek adalah wakil atau representasi dari suatu kelas. Sebuah kelas dapat mewakili sekelompok objek yang sama.
  • Kelas merupakan kumpulan tingkah laku yang berkaitan dengan suatu objek. Jadi, semua objek yang merupakan wakil dari kelas yang sama dapat melakukan aksi yang sama pula.
  • Kelas-kelas diorganisasikan ke dalam struktur pohon yang berakar tunggal, yang dinamakan dengan jenjang pewarisan (inheritance hierarchy).
  • Setiap objek pada umumnya memiliki tiga sifat, yaitu keadaan, operasi dan identitas objek.
  • Operasi merupakan tindakan yang dapat dilakukan oleh sebuah objek.
  • Keadaan objek merupakan koleksi dari seluruh informasi yang dimiliki oleh objek pada suatu saat.
  • Informasi yang terkandung pada objek tersebut pada akhirnya memberikan identitas khusus yang membedakan suatu objek dengan objek lainnya. 
Referensi :
2. Jeni-dasarpemrogramanjava.pdf
3. Codenhead-javabasic.pdf

Oke gan disini ane akan ngebahas tentang Inheritance atau Pewarisan, ini bukan pewarisan tahta kerajaan broh ya walaupun nyerempet-nyerempet dikit.
Dibahas tadi kalau Inheritance itu adalah dimana class anak dapat mewarisi sifat dari class parent, ibaratnya udah kaya pelajaran Biologi jaman SMA broh. Jadi DNA si orang tua nular ke Anaknya ataupun pepatah berkata "Buah Jatuh Tidak Jauh Dari Pohonnya"

A. PENGERTIAN PEWARISAN (INHERITANCE)
Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.

Suatu class yang mempunyai class turunan dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.

Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa yang ia warisi dari class parent-nya.

Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya.

Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga macan , kucing, Paus dan Monyet memiliki seluruh sifat yang diturunkan dari class mamalia.

Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan didefinisikan dalam class binatang saja.

Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class macan, kucing, Paus dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing.

Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.


B. DEKLARASI PEWARISAN (INHERITANCE)

Deklarasi yang digunakan adalah dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.

public class B extends A { }

Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari class Object.

public class A extends Object { }

C. KAPAN KITA MENERAPKAN INHERITANCE?
Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class
yang dapat diperluas dari class lain.

Misal terdapat class Pegawai public class Pegawai { public String nama; public double gaji; } Misal terdapat class Manager public class Manajer { public String nama; public double gaji; public String departemen; }

Dari 2 buah class diatas, kita lihat class Manajer mempunyai data member yang identik sama dengan class Pegawai, hanya saja ada tambahan data member departemen.

Sebenarnya yang terjadi disana adalah class Manajer merupakan perluasan dari class Pegawai dengan tambahan data member departemen.

Disini perlu memakai konsep inheritance, sehingga class Manajer dapat kita tuliskan seperti berikut :

public class Manajer extends Pegawai { public String departemen; }

D. KEUNTUNGAN INHERITANCE


1. 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.

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

E. ISTILAH INHERITANCE

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.

Ane akan ngasih contoh coding dikit beserta SS (Screen Shot) nya :

1. Class MenuPilih
public class MenuPilih{
    public static void main(String args[]){
        String dataString;

        System.out.println("Silahkan Masukan Nomor Pilihan : " );
        System.out.println("1. Kelas Manusia." );
        System.out.println("2. Kelas Bapak." );
        System.out.println("3. Kelas Ibu." );
        System.out.println("4. Kelas Anak Laki-laki." );
        System.out.println("5. Kelas Anak Perempuan." );
        System.out.println("Ketik Nomor Pilihan :" );
        dataString = InputKeyboard.inputString();
        int pilih = Integer.valueOf(dataString).intValue();

        switch(pilih){
        case 1:
            Manusia objManusia=new Manusia();
            System.out.println("Kelas Warisan Sifat Manusia adalah:");
            objManusia.show();
        break;

        case 2:
            Bapak objBapak=new Bapak();
            System.out.println("Kelas Warisan Sifat Bapak adalah:");
            objBapak.show();
        break;

        case 3:
            Ibu objIbu=new Ibu();
            System.out.println("Kelas Warisan Sifat Ibu adalah:");
            objIbu.show();
        break;

        case 4:
            AnakLaki objAnakLaki=new AnakLaki();
            System.out.println("Kelas Warisan Sifat Anak Laki-laki dari Bapak adalah:");
            objAnakLaki.show();
        break;

        case 5:
            AnakPerempuan objAnakPerempuan=new AnakPerempuan();
            System.out.println("Kelas Warisan Sifat Anak Perempuan dari Ibu adalah:");
            objAnakPerempuan.show();
        break;

        default:
        System.out.println("Silahkan Pilih angka 1,2,3,4 atau 5");}
    }
}

Class PilihMenu : adalah class untuk memanggil semua class yang sudah terinclude.

2. Class Manusia

public class Manusia{
    public String namaSifat,sifat1,sifat2,sifat3;
    public String sifat4,sifat5,sifat6,sifat7;

    public Manusia(){
        sifat1="Marah";
        sifat2="Senyum";
        sifat3="Malas";
        sifat4="Minta Duit";
        sifat5="Kasih Duit";
        sifat6="Masak";
        sifat7="Makan";
    }

    public void show(){
        System.out.println("    1. "+sifat1);
        System.out.println("    2. "+sifat2);
        System.out.println("    3. "+sifat3);
        System.out.println("    4. "+sifat4);
        System.out.println("    5. "+sifat5);
        System.out.println("    6. "+sifat6);
        System.out.println("    7. "+sifat7);
    }
}
Class Manusia adalah class parent, karena sifat dari Class Manusia dapat diturunkan ke Class Child nantinya.

3. Class Bapak
public class Bapak extends Manusia{
    public String sifat8,sifat10;
    private String sifat9,sifat11;

    public Bapak(){
        sifat8="Tidur";
        sifat9="Bekerja";
        sifat10="Nonton";
        sifat11="Rokok";
    }

    public void show(){
        System.out.println("    1. "+sifat1);
        System.out.println("    2. "+sifat2);
        System.out.println("    3. "+sifat3);
        System.out.println("    4. "+sifat4);
        System.out.println("    5. "+sifat5);
        System.out.println("    6. "+sifat6);
        System.out.println("    7. "+sifat7);
        System.out.println("    8. "+sifat8);
        System.out.println("    9. "+sifat9);
        System.out.println("    10."+sifat10);
        System.out.println("    11."+sifat11);
    }
}
4. Class Anak Laki
public class AnakLaki extends Bapak{
    public String sifat12,sifat13,sifat14;

    public AnakLaki(){
        sifat12="Main";
        sifat13="Sekolah";
        sifat14="Olahraga";
    }

    public void show(){
        System.out.println("    1. "+sifat1);
        System.out.println("    2. "+sifat2);
        System.out.println("    3. "+sifat3);
        System.out.println("    4. "+sifat4);
        System.out.println("    5. "+sifat5);
        System.out.println("    6. "+sifat6);
        System.out.println("    7. "+sifat7);
        System.out.println("    8. "+sifat8);
        /*System.out.println("     9. "+sifat9);*/
        System.out.println("    10."+sifat10);
        /*System.out.println("     11. "+sifat11);*/
        System.out.println("    12."+sifat12);
        System.out.println("    13."+sifat13);
        System.out.println("    14."+sifat14);
    }
}


Screen Shot :


Oke broh, segini dulu thread dari ane. Kalo ada Kekurangan mohon maap yak :D

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.