Minggu, 27 November 2016

Sabtu, 22 Oktober 2016

MATERI PEMROGRAMAN BERORIENTASI OBJEK (OOP/PBO)

 PEMROGRAMAN BERORIENTASI OBJEC
(OOP/PBO)

Pemrograman berorientasi objek(objek oriented programming/OOP) merupakan pemrograman yang berorientasi kepada objek, dimana semua data dan fungsi dibungkus dalam class-class atau objek-objek setiap objek dapat menerima pesan, memproses data, mengirim, menyimpan dan memanipulasi data.
Pemrograman berorientasi objek berbeda dengan pemrograman prosedural yang hanya menggunakan satu halaman kebawah untuk mengerjakan banyak perintah atau statemen. Penggunaan pemrograman berorientasi objek sangat banyak sekali, contoh: java, php, perl, c++,cobol,dan lainnya.
    Dalam  konsep pemrograman berorientasi objek dikenal beberapa istilah umum, yaitu:
  1.  Attribute
  2.  Method
  3.  Class
  4.  Objek

Nahh kali ini saya akan membahas tentang Class terlebih dahulu....
 3. Class
     Merupakan model yang berisi kumpulan attribute dan method dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh class manusia memiliki attribute berat, tinggi, usia kemudian memiliki method yang diiliki oleh class tersebut. Sebuah class merupakan dasar dari modulasi dan struktur dalam pemrograman berorientasi objek.
Definisi dan gambaran umum class
    Class didefinisikan sebagai sebuah blueprint(denah), atau prototipe, yang mendefinisikan variabel-variabel dan metode-metode yang umum untuk semua objek dari n jenis tertentu (n maksudnys jumlah tertentu). Sebuah ckelas menyerupai sebuah struktur yang merupakan tipe data sendiri, misalkan tipe data titik yang terdiri dari koordina x dan y bahasa java telah menggunakan sebuah kelas untuk menyatakan tipe data titik karena bahasa pemrograman java merupakan bahasa pemrograman berorientasi objek murni sehingga tidak mengenal struktur, melainkan mengenal apa yang disebut dengan kelas
    Perbedaan sebuah kelas dengan sebuah struktur adalah sebuah kelas dapat berdiri sendiri dan dapat digunakan untuk berbagai keperluan kelas-kelas yang lain, sedangkan sebuah struktur tidak dapat berdiri sendiri. Sebuah kelas lebih fleksibel untuk digunakan oleh kelas lain tanpa harus membongkar kode program utama, sedangkan jika digunakan struktur maka kode program harus dibongkar untuk disalin bagian strukturnya ke kode program utama yang lain.
    Sebuah file dapat terdiri dari berbagai kelas,namun biasanya pada bahasa pemrograman java sebuah file hanya terdiri dari satu kelas yang disimpan dengan nama kelas, misal file list.java berisi kelas list. Namun jika kelas yang dibuat misalnya public class nama_kelas, maka kelas itu harus disimpan dalam satu file hanya untuk satu kelas. Setelah dilakukan kompilasi maka pada java akan ada sebuah file. Class yang berisi bytecode dari setiap kelas.
    Jika file terdiri dari dua kelas, maka setelah dilakukan kompilasi akan dihasilkan dua buah file. Class yang nantinya akan dibaca oleh interpreter java saat program dieksekusi. Sebuah kelas saat program dieksekusi dan perintah new dijalankan, maka akan dibuat sebuah objek. Class adalah template untuk pembuata objek. Class juga memiliki anggota, diantaranya: atribut dan method.
Pemahaman singkatnya:
•    Class merupakan pola/template yang menggambarkan kumpulan object yang mempunyai sifat dan perilaku yang sama
•    Class merupakan struktur data dari object (blueprint dari sebuah object), dan proses pembuatan object dari sebuah class disebut juga dengan instantiation.
•    Class merupakan definisi data dan fungsi dari suatu hal(benda,konsep,dll)
•    Di dalam class dideklarasikan variabel dan method yang dimiliki oleh obyek.
Membuat kelas:
1. Nama kelas harus sama dengan nama file.
2. Nama kelas tidak boleh mengandung huruf unik (@, #, $, %, &, dll) dan huruf whitespace (spasi, enter, tab, dll)
Contoh: class NamaKelas{

    // isi kelas
}
Karakteristik class
    Class memiliki beberapa karakteristik: anggota class terdiri dari atribut dan method. Tiap-tiap anggota class memiliki contor pengaksesan tersendiri, maksudnya adalah apabila anggota class tersebut dapat diakses dengan bebas (dengan tipe public) atau hanya dapat diakses melalui sebuah interface.
    Dalam hal ini,  interface adalah device yang digunakan untuk komunikasi antar object berbeda yang tidak memiliki hubungan apapun. Interface bisa dikatakan sebagai protocol komunikasi antar object tersebut.
Konsep-konsep dalam OOP/PBO:
  •  Abstraction
  •  Encapsulation (pembungkusan)
  •  Inheritance (pewarisan)
  •  Polymorphism (perbedaan bentuk)
Di sini saya hanya akan menjelaskan tentang Inheritance saja....
  • Inheritance
Merupakan konsep mewariskan attribute dan method yang dimiliki oleh sebuah class kepada class turunannya. Dengan konsep ini, sebuah class dapat mempunyai class turunan.
Suatu class 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.
Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya.

Deklarasi pewarian(inheritance)
    Deklarasi yang digunakan adalah dengan menambahkan kata kunci extendes setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler java bahwa kita ingin melakukan perluasan class.
    publick class B extends A{...}
pada saat dikompilasi, kompiler java akan membacanya sebagai subclass dari class object.
    public class A extends Object{....}

Keuntungan inheritance
1.    Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini memungkinkan programmer java untuk menggunakan ulang source code dari superclass yang elah ada.
2.    Programmer java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstrak class, untuk mendefinisikan class dengan behaviour dan state secara umum.

Enkapsulasi
    Enkapsulasi adalah pengaturan hak akses kelas. Enkapsulasi pada kelas digunakan untuk mengatur interaksi metode dalam kelas terhadap lingkungan dalam kelas maupun diluar kelas. Berikut ini dijelaskan beberapa hak akses metode dalam kelas.
  • Public adalah hak akses yang diberikan pada metode  maupun properti dalam kelas agar dapat diakses oleh objek di luar kelas.
  • Private adalah hak akses yang diberikan pada metode  maupun properti dalam kelas agar hanya dapat diakses oleh objek di luar kelas.
  • Protected adalah hak akses yang diberikan pada metode  maupun properti dalam kelas agar dapat diakses oleh kelas turunannya.
  • Static adalah hak akses yang diberikan pada metode  maupun properti dalam kelas agar dapat digunakan secara langsung. Pemanggilan metode static menggunakan
  • Contoh:
  •       <nama kelas> :: <nama metode> ;
  •         SuatuKelas :: SuatuMetodeStatis () ;

    Aturan Penulisan:
           [public,private,protected]

            function <nama metode> (<parameter>) {
                              ....
            }

    Contoh Implementasi:

           class SuatuKelas {
                     public function SuatuMetodePublic () { 
                              echo 'Suatu Metode Public dijalankan' ;
                     }

                    private function SuatuMetodePrivate () { 

                              echo 'Suatu Metode Private dijalankan' ; 
                    }

                    protected function SuatuMetodeProtected () { 

                               echo 'Suatu Metode Protected dijalankan' ;
                     }

                    static function SuatuMetodeStatic () {

                                echo 'Suatu Metode Static dijalankan' ;
     
                   }

            }

           $kelas = new SuatuKelas () ;

           $kelas->SuatuMetodePublic () ;  // dapat diakses
           $kelas->SuatuMetodePrivate () ;  // tidak dapat diakses,
                                                                            hanya dapat diakses dalam SuatuKelas
           $kelas->SuatuMetodeProtected () ; // tidak dapat diakses,
                                                                            hanya dapat diakses kelas anak dari SuatuKelas
           $kelas->SuatuMetodeStatic () ; //dapat diakses
           SuatuKelas :: SuatuMetodeStatic () ;  // dapat diakses
Visibility
    Visibility merupakan kemampuan untuk mengontrol sebuah akses ke kelas, atribut, procedur dan fungsi. Java mendukung beberapa visibility, yaitu:
-    Default
-    Public
-    Private, dan
-    Protected

Hak Akses Visibility
Visibility    Kelas    Paket    Sub Kelas    umum
Private    Y           
Default    Y    Y       
Protected    Y    Y    Y   
public    Y    Y    Y    Y