PHP - Classes and Objects

Selamat datang, para pemula pemrogram! Hari ini, kita akan masuk ke dunia menarik PHP kelas dan objek. Jangan khawatir jika istilah ini terdengar sedikit menakutkan - pada akhir pelajaran ini, Anda akan membuat kelas dan objek Anda sendiri seperti seorang ahli!

PHP - Classes and Objects

Apa Itu Classes dan Objects?

Sebelum kita masuk ke kode, mari pahami apa itu kelas dan objek. Bayangkan Anda membangun sebuah rumah. Kelas akan seperti blueprint untuk rumah, sedangkan objek akan seperti rumah yang sebenarnya dibangun dari blueprint itu. Anda dapat membuat banyak rumah (objek) dari satu blueprint (kelas).

Mendefinisikan sebuah Kelas di PHP

Mari 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.";
}
}
?>

mariuraikan ini:

  1. Kita mulai dengan kata kunci class, diikuti dengan nama kelas kita (dalam kasus 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 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 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 lebih canggih dengan menambahkan sebuah konstruktor. Konstruktor adalah metode khusus yang dipanggil saat objek dibuat.

<?php
class Car {
public $brand;
public $color;

// Konstruktor
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 konstruktor
$myCar = new Car("Toyota", "Red");
$friendsCar = new Car("Honda", "Blue");

echo $myCar->startEngine();
echo $friendsCar->startEngine();
?>

Konstruktor 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.

Modifier Akses

Dalam OOP, kita dapat mengontrol visibilitas properti dan metode menggunakan modifier akses. Ada tiga jenis:

Modifier Deskripsi
public Dapat diakses dari mana saja
protected Dapat diakses dalam kelas dan kelas turunan
private Dapat diakses hanya dalam kelas

Mari kita ubah 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 turunan), $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 menutupi kelas, objek, konstruktor, pewarisan, dan modifier akses. Konsep ini membentuk dasar OOP dan akan membantu Anda dalam perjalanan pemrograman Anda.

Ingat, latihan membuat sempurna. Cobalah membuat kelas Anda sendiri, eksperimen dengan properti dan metode yang berbeda, dan jangan takut untuk membuat kesalahan - itu adalah bagaimana kita belajar! Selamat coding!

Credits: Image by storyset