Teori 4 - PHP OOP
Teori 4 - PHP OOP
OOP
• Object oriented programming (OOP)merupakan paradigma dalam
pembuatan program berdasarkan konsep sebuah objek.
• OOP merupakan salah satu paradigma dalam programming yang
sangat populer dan dapat digunakan oleh banyak bahasa
pemrograman seperti PHP, Python, Java, C++, C#, Perl, dsb.
Kelebihan OOP
• Membuat kode aplikasi lebih terstruktur terutama pada projek yang
besar
• Debugging, maintenance, dan modifikasi program relatif lebih mudah
• Lebih cepat dan mudah untuk dieksekusi
• Repetisi kode cenderung lebih sedikit daripada paradigma fungsional
Kekurangan OOP
• Over-engineering : terkesan berlebihan pada projek yang sederhana
• Learning curve: Pemahaman konsep cukup rumit daripada paradigma
prosedural ataupun fungsional
Pilar utama OOP
Encapsulation
Inheritence
Polymorphism
Abstraction
OOP di PHP
• Saat mengembangkan web dengan PHP, kita dapat menerapkan
paradigma fungsional maupun OOP
• Konsep OOP baru bisa diterapkan di PHP versi 5 (saat ini di 2023 =
PHP 8)
• PHP framework populer menerapkan paradigma OOP seperti Laravel,
Codeigniter, CakePHP, Yii.
Class
• Class merupakan bentuk template dari sebuah objek.
• Class berisi kode yang mendefinisikan apa yang akan diingat oleh
suatu objek (data atau statusnya) dan hal-hal yang dapat
dilakukannya (fungsi atau perilakunya)
• Data dari sebuah kelas biasanya disebut dengan property
• Fungsi dari kelas biasanya disebut dengan method.
Membuat Class di PHP
• Penulisan class dimulai
dengan awalan keyword
class dan dilanjutkan
dengan nama kelas
• Setiap komponen dari
class pada PHP diletakkan
di dalam tanda kurung
kurawal
Properties Class
• Variabel di dalam class
disebut dengan property.
• Fungsinya adalah untuk
menampung nilai dalam
memori
Static Property
• Properti statis dapat dipanggil
secara langsung tanpa proses
instansiasi objek
• Property ini dapat dipanggil
tanpa membuat turunan dari
class.
• Gunakan keyword self untuk
mendapatkan nilai static
property di kelas yang sama
Method Class
• Pada OOP, fungsi yang
dipecah-pecah dari sebuah
class disebut dengan
method.
• Pada PHP, methods dibuat
dengan diawali oleh
keyword function.
Constructor
• Constructor adalah salah satu metode
special dari PHP dan umum digunakan
pada paradigma OOP
• Konstruktor secara otomatis dipanggil
setelah proses instansiasi sebuah objek
• Tidak wajib diterapkan pada class namun
sangat berfungsi untuk memberikan
konfigurasi awal dari sebuah objek
• Pasangan dari constructor adalah Tanda underscore 2x
desctruct. Metode ini akan dieksekusi
saat objek berhenti atau selesai
digunakan.
Static Method
• Metode statis dapat dipanggil
secara langsung pada program
• Tidak perlu membuat instansi
dari kelas / objek terlebih
dahulu.
• Metode statis dapot
dideklarasikan dengan
keyword static sebelum nama
method.
• Gunakan keyword self untuk
mendapatkan nilai dari static
method di kelas yang sama
Access Modifier
• Access modifier mengontrol bagaimana property dan methods
dapat diakses.
• Access modifier dapat diterapkan baik di property maupun
method class.
• Keyword dari access modifier diletakkan sebelum nama property
dan metodhs yang terdiri dari 3 macam:
• public : dapat diakses dari mana saja.
• protected : dapat diakses hanya di class itu sendiri dan class turunan /
parent
• private : hanya dapat diakses dari class itu sendiri
Object
• Objek merupakan bentuk instansiasi dari sebuah class
• Ketika sebuah objek dibuat, objek tersebut mewarisi semua properti
dan methods dari kelas.
• Setiap objek akan memiliki nilai yang berbeda untuk setiap properti.
this keyword
• Keyword this digunakan
untuk merujuk pada
referensi dari suatu objek
yang sedang dipanggil.
Instansiasi Objek
di PHP
Uji constructor
pada Objek
Abstraction
• Abstraksi dalam PHP adalah proses menyembunyikan detail
implementasi dari suatu kelas atau metode dan hanya memaparkan
informasi yang diperlukan ke dunia luar.
• Abstraksi memungkinkan kita untuk mengubah implementasi kelas
atau metode di dalamnya tanpa memengaruhi kode yang
menggunakannya.
Enkapsulasi
• Enkapsulasi adalah cara untuk membatasi akses langsung ke beberapa
komponen objek, sehingga klien tidak dapat mengakses nilai status
untuk semua variabel objek tertentu.
• Enkapsulasi memungkinkan mekanisme information hiding yaitu
menyembunyikan representasi internal objek data dari luar.