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!

PHP - Classes and Objects

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:

  1. Kita mulai dengan kata kunci class, diikuti dengan nama kelas kita (dalam hal ini, Car).
  2. Dalam kelas, kita mendefinisikan properti (variabel) seperti $brand dan $color.
  3. 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:

  1. Kita menggunakan kata kunci new untuk membuat objek dari kelas Car.
  2. Kita mengatur properti setiap objek menggunakan operator panah (->).
  3. 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