Class dan Object (OOP)
Masuk ke OOP: class sebagai cetakan, object sebagai hasilnya, plus property, method, dan $this.
Kenapa OOP?
Kode prosedural yang panjang lama-lama jadi susah dirawat. OOP (Object-Oriented Programming) membungkus data dan fungsi yang berkaitan jadi satu kesatuan bernama class. Framework modern seperti Laravel hampir seluruhnya OOP, jadi ini fondasi wajib sebelum ke sana.
Class dan object
Class adalah cetakan, object adalah hasil cetakan:
<?php
class Mobil {
public string $merk;
public int $tahun;
public function info(): string {
return "Mobil {$this->merk} tahun {$this->tahun}";
}
}
$avanza = new Mobil();
$avanza->merk = "Toyota";
$avanza->tahun = 2020;
echo $avanza->info(); // Mobil Toyota tahun 2020
$brio = new Mobil(); // object kedua, independen
$brio->merk = "Honda";- Property: variabel milik class (
$merk,$tahun). - Method: fungsi milik class (
info()). $this: merujuk ke object yang sedang dipakai di dalam method.->: cara mengakses property/method object (bukan titik!).
Visibility: public vs private
<?php
class Bank {
private float $saldo = 0;
public function setor(float $jumlah): void {
if ($jumlah > 0) {
$this->saldo += $jumlah;
}
}
public function cekSaldo(): float {
return $this->saldo;
}
}
$tabungan = new Bank();
$tabungan->setor(100000);
// $tabungan->saldo = 999999; // ERROR: private, tidak bisa dari luar
echo $tabungan->cekSaldo(); // 100000private melindungi data agar hanya bisa diubah lewat method yang kamu sediakan (misalnya menolak setor negatif).
Catatan teknis: Kamu tidak wajib memakai OOP untuk membuat website sederhana, kode prosedural tetap jalan. Tapi hampir semua kode PHP profesional (termasuk Laravel dan library Composer) ditulis OOP. Anggap modul-modul OOP ini sebagai jembatan: pahami class dan object di sini, dan kode Laravel nanti tidak akan terasa asing.