0% menganggap dokumen ini bermanfaat (0 suara)
39 tayangan94 halaman

Materi Bootcamp - PHP OOP

PHP memungkinkan pengembangan berorientasi objek dengan konsep utama seperti kelas, objek, pewarisan, dan pengemasan. Kelas berfungsi sebagai cetak biru untuk membuat objek yang berisi properti dan metode. Objek dibuat dari kelas dan kelas dapat mewarisi properti dan metode dari kelas lain.

Diunggah oleh

lebahkayu.id
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
39 tayangan94 halaman

Materi Bootcamp - PHP OOP

PHP memungkinkan pengembangan berorientasi objek dengan konsep utama seperti kelas, objek, pewarisan, dan pengemasan. Kelas berfungsi sebagai cetak biru untuk membuat objek yang berisi properti dan metode. Objek dibuat dari kelas dan kelas dapat mewarisi properti dan metode dari kelas lain.

Diunggah oleh

lebahkayu.id
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 94

PHP Object Oriented

Programming
IG : @rulayat45.dev
Pengenalan OOP
IG : @rulayat45.dev
Apa itu Object Oriented Programming?
● Object Oriented Programming adalah sudut pandang bahasa pemrograman yang berkonsep “objek”
● Ada banyak sudut pandang bahasa pemrograman, namun OOP adalah yang sangat populer saat ini.
● Ada beberapa istilah yang perlu dimengerti dalam OOP, yaitu: Object dan Class

IG : @rulayat45.dev
Apa itu Object?
● Object adalah data yang berisi field / properties / attributes dan method / function / behavior

IG : @rulayat45.dev
Apa itu Class?
● Class adalah blueprint, prototype atau cetakan untuk membuat Object
● Class berisikan deklarasi semua properties dan functions yang dimiliki oleh Object
● Setiap Object selalu dibuat dari Class
● Dan sebuah Class bisa membuat Object tanpa batas

IG : @rulayat45.dev
Class dan Object : Person

IG : @rulayat45.dev
Class dan Object : Car

IG : @rulayat45.dev
Class
IG : @rulayat45.dev
Membuat Class
● Untuk membuat class, kita bisa menggunakan kata kunci class
● Penamaan class biasa menggunakan format CamelCase

IG : @rulayat45.dev
Kode : Class

IG : @rulayat45.dev
Object
IG : @rulayat45.dev
Membuat Object
● Object adalah hasil instansiasi dari sebuah class
● Untuk membuat object kita bisa menggunakan kata kunci new, dan diikuti dengan nama Class dan kurung
()

IG : @rulayat45.dev
Kode : Object

IG : @rulayat45.dev
Constructor
IG : @rulayat45.dev
Constructor
● Saat kita membuat Object, maka kita seperti memanggil sebuah function, karena kita menggunakan
kurung ()
● Di dalam class PHP, kita bisa membuat constructor, constructor adalah function yang akan dipanggil saat
pertama kali Object dibuat.
● Mirip seperti di function, kita bisa memberi parameter pada constructor
● Nama constructor di PHP haruslah __construct()

IG : @rulayat45.dev
Kode : Membuat Constructor
Kode : Menggunakan Constructor

IG : @rulayat45.dev
Inheritance
IG : @rulayat45.dev
Inheritance
● Inheritance atau pewarisan adalah kemampuan untuk menurunkan sebuah class ke class lain
● Dalam artian, kita bisa membuat class Parent dan class Child
● Class Child, hanya bisa punya satu class Parent, namun satu class Parent bisa punya banyak class Child
● Saat sebuah class diturunkan, maka semua properties dan function yang ada di class Parent, secara
otomatis akan dimiliki oleh class Child
● Untuk melakukan pewarisan, di class Child, kita harus menggunakan kata kunci extends lalu diikuti
dengan nama class parent nya.

IG : @rulayat45.dev
Kode : Inheritance
Kode : Mengakses Method Parent
Namespace
IG : @rulayat45.dev
Namespace
● Saat kita membuat aplikasi, bisa dipastikan kita akan banyak sekali membuat class
● Jika class terlalu banyak, kadang akan menyulitkan kita untuk mencari atau mengklasifikasikan jenis-jenis
class
● PHP memiliki fitur namespace, dimana kita bisa menyimpan class-class kita di dalam namespace
● Namespace bisa nested, dan jika kita ingin mengakses class yang terdapat di namespace, kita perlu
menyebutkan nama namespace nya
● Namespace bagus ketika kita punya beberapa class yang sama, dengan menggunakan namespace nama
class sama tidak akan menjadikan error di PHP

IG : @rulayat45.dev
Kode : Tanpa Namespace
Membuat Namespace
● Untuk membuat namespace, kita bisa menggunakan kata kunci namespace
● Jika kita ingin membuat sub namespace, kita cukup gunakan karakter \ setelah namespace sebelumnya

IG : @rulayat45.dev
Kode : Membuat Namespace
Kode : Membuat Object dari Namespace

IG : @rulayat45.dev
Function dan Constant di Namespace
● Selain class, kita juga menggunakan function dan constant di namespace
● Dan jika kita ingin menggunakan function atau constant tersebut, kita bisa menggunakannya dengan
diawali dengan nama namespace nya

IG : @rulayat45.dev
Kode : Function dan Constant di Namespace
Global Namespace
● Secara default saat kita membuat kode di PHP sebenarnya itu disimpan di global namespace
● Global namespace adalah namespace yang tidak memiliki nama namespace

IG : @rulayat45.dev
Kode : Global Namespace

IG : @rulayat45.dev
Import
IG : @rulayat45.dev
use Keyword
● Sebelumnya kita sudah tahu bahwa untuk menggunakan class, function atau constant di namespace kita
perlu menyebutkan nama namespace nya di awal
● Jika terlalu sering menggunakan class, function atau constant yang sama, maka terlalu banyak duplikasi
dengan menyebut namespace yang sama berkali-kali
● Hal ini bisa kita hindari dengan cara mengimport class, function atau constant tersebut dengan
menggunakan kata kunci use

IG : @rulayat45.dev
Kode : use Keyword
Alias
● Saat kita menggunakan use, artinya kita tidak perlu lagi menggunakan nama namespace diawal class
ketika kita ingin membuat class tersebut
● Namun bagaimana jika kita ternyata nama class nya sama?
● Untungnya PHP memiliki fitur yang namanya alias
● Alias adalah kemampuan membuat nama lain dari class, function atau constant yang ada
● Kita bisa menggunakan kata kunci as setelah melakukan use

IG : @rulayat45.dev
Kode : Alias
Group use Declaration
● Kadang kita butuh melakukan import banyak hal di satu namespace yang sama
● PHP memiliki fitur grup use, dimana kita bisa import beberapa class, function atau constant dalam satu
perintah use
● Untuk melakukan itu, kita bisa menggunakan kurung { }

IG : @rulayat45.dev
Kode : Group use Declaration
Visibility
IG : @rulayat45.dev
Visibility

● Visibility / Access modifier adalah kemampuan properties, function dan constant dapat diakses dari mana
saja
● Secara default, properties, function dan constant yang kita buat di dalam class bisa diakses dari mana saja,
atau artinya dia adalah public
● Selain public, masih ada beberapa visibility lainnya
● Secara default kata kunci var untuk properties adalah sifatnya public

IG : @rulayat45.dev
Kode : Class Product
Kode : Menggunakan Product
Parent Keyword
IG : @rulayat45.dev
parent Keyword
● Kadang kita ingin mengakses function yang terdapat di class parent yang sudah terlanjur kita override di
class child
● Untuk mengakses function milik class parent, kita bisa menggunakan kata kunci parent
● Sederhananya, parent digunakan untuk mengakses class parent
Kode : Parent Keyword
Constructor Overriding
Constructor Overriding
● Karena constructor sama seperti function, maka constructor-pun bisa kita deklarasikan ulang di class Child
nya
● Sebenarnya di PHP, kita bisa meng-override function dengan arguments yang berbeda, namun sangat tidak
disarankan
● Jika kita melakukan override function dengan arguments berbeda, maka PHP akan menampilkan
WARNING
● Namun berbeda dengan constructor overriding, kita boleh meng-override dengan mengubah arguments
nya, namun direkomendasikan untuk memanggil parent constructor
Kode : Merubah Arguments Overriding
Kode : Constructor Overriding (1)
Kode : Constructor Overriding (2)
Polymorphism
IG : @rulayat45.dev
Polymorphism
● Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk.
● Dalam OOP, Polymorphism adalah kemampuan sebuah object berubah bentuk menjadi bentuk lain
● Polymorphism erat hubungannya dengan Inheritance
Kode : Inheritance
Kode : Polymorphism
Kode : Function Argument Polymorphism
Abstract Class
IG : @rulayat45.dev
Abstract Class
● Saat kita membuat class, kita bisa menjadikan sebuah class sebagai abstract class.
● Abstract class artinya, class tersebut tidak bisa dibuat sebagai object secara langsung, hanya bisa
diturunkan
● Untuk membuat sebuah class menjadi abstract, kita bisa menggunakan kata kunci abstract sebelum kata
kunci class
● Sehingga Abstract Class bisa kita gunakan sebagai kontrak child class
Kode : Abstract Class
Kode : Membuat Abstract Class
Abstract Function
IG : @rulayat45.dev
Abstract Function
● Saat kita membuat class yang abstract, kita bisa membuat abstract function juga di dalam class abstract
tersebut
● Saat kita membuat sebuah abstract function, kita tidak boleh membuat block function untuk function
tersebut
● Artinya, abstract function wajib di override di class child
● Abstract function tidak boleh memiliki access modifier private
Kode : Abstract Function
Kode : Menggunakan Abstract Function
Getter dan Setter
IG : @rulayat45.dev
Encapsulation
● Encapsulation artinya memastikan data sensitif sebuah object tersembunyi dari akses luar
● Hal ini bertujuan agar kita bisa menjaga agar data sebuah object tetap baik dan valid
● Untuk mencapai ini, biasanya kita akan membuat semua properties menggunakan access modifier private,
sehingga tidak bisa diakses atau diubah dari luar
● Agar bisa diubah, kita akan menyediakan function untuk mengubah dan mendapatkan properties tersebut
Getter dan Setter
● Di PHP, proses encapsulation sudah dibuat standarisasinya, dimana kita bisa menggunakan Getter dan
Setter method.
● Getter adalah function yang dibuat untuk mengambil data field
● Setter ada function untuk mengubah data field
Getter dan Setter Method

Tipe Data Getter Method Setter Method

boolean isXxx(): bool setXxx(bool value)

lainnya getXxx(): tipeData setXxx(tipeData value)


Kode : Getter dan Setter
Kode : Menggunakan Getter dan Setter
Kode : Validation di Setter
Interface
IG : @rulayat45.dev
Interface
● Sebelumnya kita sudah tahu bahwa abstract class bisa kita gunakan sebagai kontrak untuk class child nya.
● Namun sebenarnya yang lebih tepat untuk kontrak adalah Interface
● Jangan salah sangka bahwa Interface disini bukanlah User Interface
● Interface mirip seperti abstract class, yang membedakan adalah di Interface, semua method otomatis
abstract, tidak memiliki block
● Di interface kita tidak boleh memiliki properties, kita hanya boleh memiliki constant
● Untuk mewariskan interface, kita tidak menggunakan kata kunci extends, melainkan implements
● Dan berbeda dengan class, kita bisa implements lebih dari satu interface
Kode : Membuat Interface
Kode : Implement Interface
Interface Inheritance
IG : @rulayat45.dev
Interface Inheritance
● Sebelumnya kita sudah tahu kalo di PHP, child class hanya bisa punya 1 class parent
● Namun berbeda dengan interface, sebuah child class bisa implement lebih dari 1 interface
● Bahkan interface pun bisa implement interface lain, bisa lebih dari 1. Namun jika interface ingin mewarisi
interface lain, kita menggunakan kata kunci extends, bukan implements
Kode : Interface Inheritance
Kode : Multiple Interface Inheritance
Trait
IG : @rulayat45.dev
Trait
● Selain class dan interface, di PHP terdapat feature lain bernama trait
● Trait mirip dengan abstract class, kita bisa membuat konkrit function atau abstract function
● Yang membedakan adalah, di trait bisa kita tambahkan ke dalam class lebih dari satu
● Trait mirip seperti ekstension, dimana kita bisa menambahkan konkrit function ke dalam class dengan trait
● Secara sederhana trait adalah digunakan untuk menyimpan function-function yang bisa digunakan ulang di
beberapa class
● Untuk menggunakan trait di class, kita bisa menggunakan kata kunci use
Kode : Membuat Trait
Kode : Menggunakan Trait
Trait Properties
● Berbeda dengan interface, di trait, kita bisa menambahkan properties
● Dengan menambahkan properties, secara otomatis class tersebut akan memiliki properties yang ada di trait
Kode : Trait Properties
Kode : Menggunakan Trait Properties
Anonymous Class
IG : @rulayat45.dev
Anonymous Class
● Anonymous class atau class tanpa nama.
● Adalah kemampuan mendeklarasikan class, sekaligus meng-instansiasi object-nya secara langsung
● Anonymous class sangat cocok ketika kita berhadapan dengan kasus membuat implementasi interface atau
abstract class sederhana, tanpa harus membuat implementasi class nya
Kode : Anonymous Class
Constructor di Anonymous Class
● Anonymous class juga mendukung constructor
● Jadi kita bisa menambahkan constructor jika kita mau
Kode : Constructor di Anonymous Class
Static Keyword
IG : @rulayat45.dev
static Keyword
● Kata kunci static adalah keyword yang bisa kita gunakan untuk membuat properties atau function di class
bisa diakses secara langsung tanpa menginstansiasi class terlebih dahulu
● Namun ingat, saat kita buat static properties atau function, secara otomatis hal itu tidak akan berhubungan
lagi dengan class instance yang kita buat
● Untuk cara mengakses static properties dan function sama seperti mengakses constant, kita bisa
menggunakan operator ::
● static function tidak bisa mengakses function biasa, karena function biasa menempel pada class instance
sedangkan static function tidak
Kode : Static Properties
Kode : Static Function

Anda mungkin juga menyukai