Kelas #
Pengertian #
Kelas (Class) dalam PHP adalah cetak biru (blueprint) untuk membuat objek. Kelas mendefinisikan properti (atribut) dan metode (fungsi) yang dimiliki oleh objek. Pemrograman berorientasi objek (OOP) di PHP memungkinkan pengembang untuk mengatur dan mengelola kode dengan cara yang lebih modular dan terstruktur.
Mendefinisikan Kelas #
Sebuah kelas didefinisikan menggunakan kata kunci class
, diikuti dengan nama kelas. Di dalam kelas, Anda dapat mendefinisikan properti dan metode.
Contoh Dasar Mendefinisikan Kelas:
<?php
class Mobil {
// Properti
public $merk;
public $warna;
// Metode
public function __construct($merk, $warna) {
$this->merk = $merk;
$this->warna = $warna;
}
public function deskripsi() {
return "Mobil ini adalah " . $this->merk . " berwarna " . $this->warna;
}
}
// Membuat objek dari kelas Mobil
$mobil1 = new Mobil("Toyota", "Merah");
echo $mobil1->deskripsi(); // Output: Mobil ini adalah Toyota berwarna Merah
$mobil2 = new Mobil("Honda", "Biru");
echo $mobil2->deskripsi(); // Output: Mobil ini adalah Honda berwarna Biru
?>
Akses Modifier #
PHP mendukung tiga jenis akses modifier: public
, private
, dan protected
.
- Public: Properti atau metode yang dapat diakses dari mana saja.
- Private: Properti atau metode yang hanya dapat diakses dari dalam kelas itu sendiri.
- Protected: Properti atau metode yang dapat diakses dari dalam kelas itu sendiri dan kelas turunan.
Contoh Akses Modifier:
<?php
class Mobil {
public $merk;
private $kecepatanMaks = 200;
protected $bahanBakar = "Bensin";
public function __construct($merk) {
$this->merk = $merk;
}
private function getKecepatanMaks() {
return $this->kecepatanMaks;
}
protected function getBahanBakar() {
return $this->bahanBakar;
}
public function deskripsi() {
return "Mobil ini adalah " . $this->merk . ", kecepatan maks: " . $this->getKecepatanMaks() . " km/h, bahan bakar: " . $this->getBahanBakar();
}
}
$mobil = new Mobil("Toyota");
echo $mobil->deskripsi(); // Output: Mobil ini adalah Toyota, kecepatan maks: 200 km/h, bahan bakar: Bensin
?>
Pewarisan (Inheritance) #
Pewarisan memungkinkan sebuah kelas untuk mewarisi properti dan metode dari kelas lain. Kelas yang diwarisi disebut kelas induk (parent class) dan kelas yang mewarisi disebut kelas anak (child class).
Contoh Pewarisan:
<?php
class Kendaraan {
public $merk;
protected $tahun;
public function __construct($merk, $tahun) {
$this->merk = $merk;
$this->tahun = $tahun;
}
public function getInfo() {
return $this->merk . " (" . $this->tahun . ")";
}
}
class Mobil extends Kendaraan {
private $warna;
public function __construct($merk, $tahun, $warna) {
parent::__construct($merk, $tahun);
$this->warna = $warna;
}
public function getDetail() {
return $this->getInfo() . " berwarna " . $this->warna;
}
}
$mobil = new Mobil("Toyota", 2020, "Merah");
echo $mobil->getDetail(); // Output: Toyota (2020) berwarna Merah
?>
Enkapsulasi (Encapsulation) #
Enkapsulasi adalah konsep OOP yang membungkus data (properti) dan kode (metode) menjadi satu unit. Hal ini bertujuan untuk melindungi data dari akses luar yang tidak sah.
Contoh Enkapsulasi:
<?php
class AkunBank {
private $saldo = 0;
public function setSaldo($jumlah) {
if ($jumlah >= 0) {
$this->saldo = $jumlah;
}
}
public function getSaldo() {
return $this->saldo;
}
}
$akun = new AkunBank();
$akun->setSaldo(1000);
echo "Saldo: " . $akun->getSaldo(); // Output: Saldo: 1000
?>
Polimorfisme (Polymorphism) #
Polimorfisme memungkinkan metode yang sama untuk digunakan oleh objek dari kelas yang berbeda, meskipun cara implementasinya mungkin berbeda.
Contoh Polimorfisme:
<?php
class Bentuk {
public function gambar() {
return "Menggambar bentuk";
}
}
class Lingkaran extends Bentuk {
public function gambar() {
return "Menggambar lingkaran";
}
}
class Persegi extends Bentuk {
public function gambar() {
return "Menggambar persegi";
}
}
$bentuk = new Bentuk();
$lingkaran = new Lingkaran();
$persegi = new Persegi();
echo $bentuk->gambar() . "<br>"; // Output: Menggambar bentuk
echo $lingkaran->gambar() . "<br>"; // Output: Menggambar lingkaran
echo $persegi->gambar() . "<br>"; // Output: Menggambar persegi
?>
Metode dan Properti Statis #
Metode dan properti statis adalah milik kelas, bukan objek individual. Mereka dapat diakses tanpa membuat instansi kelas.
Contoh Metode dan Properti Statis:
<?php
class Kalkulator {
public static $pi = 3.14;
public static function lingkaranKeliling($radius) {
return 2 * self::$pi * $radius;
}
}
echo "Nilai Pi: " . Kalkulator::$pi . "<br>"; // Output: Nilai Pi: 3.14
echo "Keliling lingkaran: " . Kalkulator::lingkaranKeliling(10) . "<br>"; // Output: Keliling lingkaran: 62.8
?>
Kesimpulan #
Kelas dalam PHP adalah dasar dari pemrograman berorientasi objek. Dengan menggunakan kelas, Anda dapat membuat kode yang lebih modular, terstruktur, dan mudah dipelihara. Pemrograman berorientasi objek memungkinkan Anda untuk menggunakan konsep seperti enkapsulasi, pewarisan, polimorfisme, dan metode/properti statis untuk membuat aplikasi yang lebih fleksibel dan kuat.