Hari 20: Enum (PHP 8.1)
50 min
Last updated 09 Apr 2026
Enum — Tipe Data Enumerasi
// Pure enum
enum Status {
case Aktif;
case NonAktif;
case Pending;
}
$s = Status::Aktif;
echo $s->name; // Aktif
// Backed enum (dengan nilai)
enum Warna: string {
case Merah = "red";
case Hijau = "green";
case Biru = "blue";
}
echo Warna::Merah->value; // red
$w = Warna::from("green"); // Warna::Hijau
echo $w->name; // Hijau
Enum dengan Method
enum Hari: int {
case Senin = 1;
case Selasa = 2;
case Rabu = 3;
case Kamis = 4;
case Jumat = 5;
case Sabtu = 6;
case Minggu = 7;
public function isWeekend(): bool {
return match($this) {
self::Sabtu, self::Minggu => true,
default => false,
};
}
public function label(): string {
return $this->name;
}
}
echo Hari::Sabtu->isWeekend() ? "Weekend" : "Weekday"; // Weekend
echo Hari::Senin->isWeekend() ? "Weekend" : "Weekday"; // Weekday
💡
Notice: Level::cases() return array semua case. $level->name return nama case sebagai string.
Assignment
Buat backed enum Level dengan case Beginner="beginner", Intermediate="intermediate", Advanced="advanced" dan method emoji(): string yang return 🟢, 🟡, 🔴 sesuai level. Tampilkan emoji dan name untuk ketiga level.
Expected output:
🟢 Beginner
🟡 Intermediate
🔴 Advanced
PHP
index.php
Solution
Output