PHP - Classes and Objects
Selamat datang, para pemrogram yang sedang berkembang! Hari ini, kita akan mendalamkan dunia yang menarik dari kelas-kelas dan objek PHP. Jangan khawatir jika istilah ini terdengar sedikit menakutkan - pada akhir pelajaran ini, Anda akan dapat membuat kelas dan objek Anda sendiri seperti seorang ahli!
Apa Itu Classes dan Objects?
Sebelum kita masuk ke kode, mari kita mengerti apa itu kelas dan objek. Bayangkan Anda sedang membangun sebuah rumah. Kelas akan seperti blueprint untuk rumah, sedangkan objek adalah rumah yang sebenarnya dibangun dari blueprint itu. Anda dapat membuat banyak rumah (objek) dari satu blueprint (kelas).
Mendefinisikan Kelas di PHP
Ayo mulai dengan membuat kelas PHP pertama kita. Kita akan membuat kelas sederhana Car
.
<?php
class Car {
// Properti kelas
public $brand;
public $color;
// Metode kelas
public function startEngine() {
return "Vroom! The $this->color $this->brand is starting.";
}
}
?>
mari kitauraikan ini:
- Kita mulai dengan kata kunci
class
, diikuti dengan nama kelas kita (dalam hal ini,Car
). - Dalam kelas, kita mendefinisikan properti (variabel) seperti
$brand
dan$color
. - Kita juga mendefinisikan metode (fungsi) yang disebut
startEngine()
.
Membuat Objek dari Kelas
Sekarang kita memiliki kelas Car
, mari kita buat beberapa objek mobil!
<?php
// Membuat objek mobil
$myCar = new Car();
$myCar->brand = "Toyota";
$myCar->color = "Red";
$friendsCar = new Car();
$friendsCar->brand = "Honda";
$friendsCar->color = "Blue";
// Menggunakan metode objek
echo $myCar->startEngine();
echo $friendsCar->startEngine();
?>
Output:
Vroom! The Red Toyota is starting.
Vroom! The Blue Honda is starting.
Ini adalah apa yang terjadi:
- Kita menggunakan kata kunci
new
untuk membuat objek dari kelasCar
. - Kita mengatur properti setiap objek menggunakan operator panah (
->
). - Kita memanggil metode
startEngine()
pada setiap objek.
Metode Konstruktor
Sekarang, mari kita membuat kelas kita sedikit lebih canggih dengan menambahkan kontruktur. Kontruktur adalah metode khusus yang dipanggil saat objek diciptakan.
<?php
class Car {
public $brand;
public $color;
// Konuktur
public function __construct($brand, $color) {
$this->brand = $brand;
$this->color = $color;
}
public function startEngine() {
return "Vroom! The $this->color $this->brand is starting.";
}
}
// Membuat objek mobil dengan konuktur
$myCar = new Car("Toyota", "Red");
$friendsCar = new Car("Honda", "Blue");
echo $myCar->startEngine();
echo $friendsCar->startEngine();
?>
Konuktur memungkinkan kita mengatur brand
dan color
saat kita membuat objek, membuat kode kita lebih bersih dan efisien.
Pewarisan
Salah satu fitur kuat dari OOP adalah pewarisan. Ini memungkinkan kita untuk membuat kelas baru berdasarkan kelas yang sudah ada. Mari kita buat kelas ElectricCar
yang mewarisi dari kelas Car
.
<?php
class ElectricCar extends Car {
public $batteryLife;
public function __construct($brand, $color, $batteryLife) {
parent::__construct($brand, $color);
$this->batteryLife = $batteryLife;
}
public function chargeBattery() {
return "The $this->color $this->brand is charging. Current battery life: $this->batteryLife%";
}
}
$teslaModel3 = new ElectricCar("Tesla", "White", 80);
echo $teslaModel3->startEngine();
echo $teslaModel3->chargeBattery();
?>
Output:
Vroom! The White Tesla is starting.
The White Tesla is charging. Current battery life: 80%
Di sini, ElectricCar
mewarisi semua properti dan metode dari Car
, dan menambahkan properti ($batteryLife
) dan metode (chargeBattery()
) sendiri.
Modifikator Akses
Dalam OOP, kita dapat mengontrol visibility dari properti dan metode menggunakan modifikator akses. Ada tiga jenis:
Modifikator | Deskripsi |
---|---|
public | Dapat diakses dari mana saja |
protected | Dapat diakses dalam kelas dan kelas turunannya |
private | Dapat diakses hanya dalam kelas |
Mari kita modifikasi kelas Car
untuk menggunakan ini:
<?php
class Car {
protected $brand;
private $engineStarted = false;
public function __construct($brand) {
$this->brand = $brand;
}
public function startEngine() {
$this->engineStarted = true;
return "The $this->brand's engine is now running.";
}
public function isEngineRunning() {
return $this->engineStarted;
}
}
$myCar = new Car("Toyota");
echo $myCar->startEngine();
echo $myCar->isEngineRunning() ? "Engine is running" : "Engine is off";
// Ini akan menyebabkan kesalahan: echo $myCar->engineStarted;
?>
Sekarang, $brand
adalah protected (dapat diakses dalam kelas dan kelas turunannya), $engineStarted
adalah private (hanya dapat diakses dalam kelas Car
), dan metode kita tetap public.
Kesimpulan
Selamat! Anda baru saja mengambil langkah pertama ke dunia Pemrograman Berorientasi Objek (OOP) dengan PHP. Kita telah menjelajahi kelas, objek, konuktur, pewarisan, dan modifikator akses. Konsep ini membentuk dasar OOP dan akan membantu Anda dalam perjalanan pemrograman Anda.
Ingat, latihan membuat Anda sempurna. Cobalah membuat kelas Anda sendiri, eksperimen dengan properti dan metode yang berbeda, dan jangan takut untuk membuat kesalahan - itu adalah cara kita belajar! Selamat coding!
Credits: Image by storyset