Latihan 1 dari materi Collections & Modern PHP di PHP — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awal cuma berisi komentar petunjuk dan dua baris echo di bawahnya: echo labelHari(Hari::Senin) . "\n"; dan echo labelHari(Hari::Jumat);. Biarkan dua baris itu, dan tulis kodenya di atasnya.
Buat enum Hari: string (backed string) dengan case Senin, Selasa, Rabu, Kamis dan Jumat, misalnya case Senin = "senin";.
Di dalam enum, tambahkan method isWeekday(): bool yang selalu mengembalikan true.
Buat fungsi labelHari(Hari $h): string yang mengembalikan hasil match ($h): Hari::Senin jadi Awal minggu, Hari::Rabu jadi Pertengahan, Hari::Jumat jadi Akhir minggu, dan default jadi Hari biasa untuk hari yang gak disebut.
Output yang diharapkan:
Awal minggu
Akhir minggu
Yang diperiksa: output memuat Awal minggu dan Akhir minggu, kodenya memuat enum Hari dan match, labelHari(Hari::Rabu) mengembalikan Pertengahan, labelHari(Hari::Selasa) mengembalikan Hari biasa, dan Hari::Kamis->isWeekday() bernilai true.
Hint
Enum mengumpulkan nilai yang jumlahnya terbatas jadi satu tipe. Lima hari kerja jadi lima case, dan fungsi labelHari memetakan tiap case ke teksnya.
Tulis enum Hari: string dengan lima case dan method isWeekday() yang return true. Lalu labelHari(Hari $h): string berisi return match ($h) { ... }; dengan tiga case yang disebut dan satu default.