OOP PHP

November 01, 2018 by

OOP
↳ Menyusun semua kode program dan struktur data sebagai objek.
↳ Objek unit dasar di program.
↳ Objek menyimpan data dan perilaku.
↳ Bisa saling berinteraksi

1. Representasi dunia nyata
2. Enkapsulasi dan abstraksi data (aman dan tidak rumit data)
3. Reusability
4. Skalabilitas dan Ekstensibilitas
5. Kemudahan pengelolaan dan kolaborasi
6. Digunakan oleh framework

Procedural = untuk program simple dan dikerjakan sendiri

OOP = untuk skala program besar dan banyak orang yang terlibat untuk projek

Konsep OOP pada PHP:
Basic:
1. Class & Objek
2. Property & method
3. Constructor : sudah ada konstruksi default
4. Objek type 
5. Inheritance (pewarisan sifat class)
6. Visibility / acces modifier : public, protected, private
7. Setter & Getter
8. Static Method

Advanced:
1. Abstract & interface
2. Interceptor (magic method) terkait dengan Setter dan Getter
3. Object Cloning
4. Callback & Closures 
5. Namespaces & Autoloading

Class = Blueprint/template untuk membuat instance dari objek. Mendefinisikan objek, menyimpan data dan perilaku (property dan method).

Class _namaClass_ {} penaamaan class = variable

class Coba{
    public $a; //property

//method
    public function b(){
        echo "Halo!";
    }
}

Objek = instance yang didefinisikan oleh class, banyak objek dapat dibuat menggunakan class, objek dibuat dengan keyword new pada php.

$a = new Coba();
$b = new Coba();

Properti 
→ Merepresentasikan data/keadaan dari sebuah objek
→ Variabel yang ada di dalam objek (membuat variabel)
→ Pembuatnya sama seperti variabel ditambah dengan visibility didepannya : public, protected, atau private

Method 
→ Merepresentasikan perilaku dari sebuah objek
→ Function yang ada di dalam objek.
→ Sama seperti function di dalam PHP, ditambah visibility di depannya, jika tidak memakai visibility diasumsikan menggunakan acess modifier "public".

contoh: "mobil"

properti : nama, merk, warna, kec. max, jmlh, penumpang, dll.
method : tambahKecepatan, gantiTransaksi, kurangiKecepatan, belokKiri, belokKanan,dll.

0 comments:

Post a Comment