Menu
CoddyTech

Mengurutkan Acara Berdasarkan Tanggal

Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 62 dari 68.

challenge icon

Tantangan

Mudah

Kamu akan menerima dua input: string JSON yang merepresentasikan array berisi acara, dan string tanggal dalam format YYYY-MM-DD yang merepresentasikan tanggal hari ini.

Input pertama berupa string JSON dengan format berikut: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-03-10","location":"Library"}]

Input kedua berupa string tanggal dengan format berikut: 2024-04-01

Baca kedua input dan dekode string JSON menjadi array berisi acara. Filter acara agar hanya mencakup acara mendatang, yaitu acara yang tanggalnya sama dengan atau lebih besar dari tanggal hari ini.

Urutkan acara mendatang berdasarkan tanggalnya secara menaik, dengan tanggal paling awal di urutan pertama, menggunakan usort() dengan fungsi pembanding khusus. Fungsi pembanding tersebut harus membandingkan tanggal dari dua acara dan mengembalikan nilai yang menentukan urutannya.

Setelah mengurutkan, cetak setiap acara mendatang dalam format berikut:

Upcoming: [name] on [date] at [location]

Cetak setiap acara pada baris terpisah, dalam urutan kronologis dari tanggal paling awal hingga paling akhir.

Format input:

  • Baris pertama: String JSON yang merepresentasikan array acara dengan kunci name, date, dan location
  • Baris kedua: String tanggal dalam format YYYY-MM-DD yang merepresentasikan tanggal hari ini (contoh: 2024-04-01)

Output yang diharapkan: Setiap acara mendatang dicetak pada baris terpisah dalam urutan kronologis dengan format: Upcoming: [name] on [date] at [location]

Coba sendiri

<?php
// Baca string JSON berisi acara
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// Baca tanggal hari ini
$todayDate = trim(fgets(STDIN));

// TODO: Tulis kodemu di bawah ini
// Saring acara mendatang (date >= tanggal hari ini)
// Urutkan acara mendatang berdasarkan tanggal menggunakan usort()
// Cetak setiap acara mendatang dalam format yang diminta

?>

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler PHP online