Tutorial PHP #20: OOP Dasar di PHP: Class dan Object
1. Apa itu OOP?
OOP (Object-Oriented Programming) adalah paradigma pemrograman yang mengorganisasi kode ke dalam objek-objek yang memiliki data (property) dan perilaku (method). Dibanding prosedural, OOP membuat kode lebih terstruktur, reusable, dan mudah di-maintain untuk project besar.
2. Class dan Object
Analoginya: class adalah cetak biru (blueprint) rumah, object adalah rumah yang sudah dibangun berdasarkan cetak biru tersebut.
<?php
// Mendefinisikan class
class User {
// Property (variabel dalam class)
public string $nama;
public int $umur;
public string $email;
// Method (function dalam class)
public function perkenalan(): string {
return "Halo, nama saya {$this->nama}, umur {$this->umur} tahun.";
}
}
// Membuat object dari class User
$user1 = new User();
$user1->nama = "Ariq";
$user1->umur = 25;
$user1->email = "ariq@email.com";
$user2 = new User();
$user2->nama = "Budi";
$user2->umur = 22;
// Mengakses property dan memanggil method
echo $user1->nama; // Output: Ariq
echo $user1->perkenalan(); // Output: Halo, nama saya Ariq, umur 25 tahun.
echo $user2->perkenalan(); // Output: Halo, nama saya Budi, umur 22 tahun.
?>
3. Keyword $this
$this mengacu pada object itu sendiri - digunakan di dalam method untuk mengakses property atau method lain dari class yang sama.
<?php
class Lingkaran {
public float $radius;
public function luas(): float {
return 3.14 * $this->radius * $this->radius;
}
public function keliling(): float {
return 2 * 3.14 * $this->radius;
}
public function info(): string {
return "Radius: {$this->radius}, Luas: {$this->luas()}, Keliling: {$this->keliling()}";
}
}
$lingkaran = new Lingkaran();
$lingkaran->radius = 7;
echo $lingkaran->info();
// Output: Radius: 7, Luas: 153.86, Keliling: 43.96
?>
4. Visibility / Access Modifier
Tiga level akses untuk property dan method:
<?php
class Produk {
public string $nama; // bisa diakses dari mana saja
protected float $harga; // hanya dari class ini dan turunannya
private string $kodeRahasia; // hanya dari class ini saja
public function setHarga(float $harga): void {
if ($harga < 0) throw new InvalidArgumentException("Harga tidak boleh negatif");
$this->harga = $harga;
}
public function getHarga(): float {
return $this->harga;
}
}
$produk = new Produk();
$produk->nama = "Laptop"; // OK, public
$produk->setHarga(12000000); // OK, via method public
echo $produk->getHarga(); // Output: 12000000
// $produk->harga = 100; // ERROR! harga adalah protected
?>
5. Static Property dan Static Method
Static member bisa diakses tanpa perlu membuat object terlebih dahulu.
<?php
class Counter {
public static int $total = 0;
public static function tambah(): void {
self::$total++;
}
public static function getTotal(): int {
return self::$total;
}
}
Counter::tambah();
Counter::tambah();
Counter::tambah();
echo Counter::getTotal(); // Output: 3
echo Counter::$total; // Output: 3
?>
6. Ringkasan
- Class adalah blueprint, object adalah instance dari class
$thismengacu pada object saat ini di dalam method- Gunakan
new NamaClass()untuk membuat object public,protected,privateuntuk mengontrol aksesstaticuntuk member yang bisa diakses tanpa membuat object
Tutorial berikutnya membahas constructor, destructor, dan property di PHP.
.jpg)
