fork download
  1. <?php
  2. //pertama yg ku pakai adalah array assosiatif untuk nyimpan daftar dan status kursi
  3. $kursi = array(
  4. "A1" => false, //A1-B3 =kuncinya //false (aku pakai FALSE karna kursinya belum dipesan)
  5. "A2" => false,
  6. "A3" => false,
  7. "B1" => false,
  8. "B2" => false,
  9. "B3" => false,
  10. );
  11. $hargaTiket = 35.000; //variabel menentukan harga per kursinya
  12. $kursiDipilih = array("A2", "B3", "A1"); //array bisa diisi sesuai pesanan
  13. function prosespemesanan($kursi , $kursiDipilih) {
  14. $berhasil = array();
  15. $gagal = array();
  16.  
  17. foreach ($kursiDipilih as $k) {
  18. if (isset($kursi[$k]) && !$kursi[$k]) {
  19. $kursi[$k] = true;
  20. $berhasil[] = $k;
  21. } else {
  22. $gagal[] = $k;
  23. }
  24. }
  25. return array("berhasil" => $berhasil, "gagal" => $gagal);
  26. }
  27. function hitungTotalHarga($jumlahKursi, $hargaTiket) {
  28. return $jumlahKursi * $hargaTiket;
  29. }
  30. $result = prosespemesanan($kursi, $kursiDipilih);
  31. $totalHarga = hitungTotalHarga(count($result["berhasil"]), $hargaTiket);
  32. echo "Rincian Reservasi:<br>";
  33. if (!empty($result["berhasil"])) {
  34. echo "Kursi Berhasil Dipesan: " . implode(", ", $result["berhasil"]) . "<br>";
  35. echo "Total Harga: Rp$totalHarga<br>";
  36. } else {
  37. echo "Tidak ada kursi yang berhasil dipesan.<br>";
  38. }
  39.  
  40. if (!empty($result["gagal"])) {
  41. echo "Kursi Tidak Tersedia: " . implode(", ", $result["gagal"]) . "<br>";
  42. }
  43.  
  44. // Menampilkan status semua kursi
  45. echo "<br>Status Kursi:<br>";
  46. foreach ($kursi as $key => $status) {
  47. echo "$key: " . ($status ? "Sudah Dipesan" : "Tersedia")."<br>";
  48. }
  49. ?>
  50.  
Success #stdin #stdout 0.03s 25564KB
stdin
Standard input is empty
stdout
Rincian Reservasi:<br>Kursi Berhasil Dipesan: A2, B3, A1<br>Total Harga: Rp105<br><br>Status Kursi:<br>A1: Tersedia<br>A2: Tersedia<br>A3: Tersedia<br>B1: Tersedia<br>B2: Tersedia<br>B3: Tersedia<br>