fork download
  1. <?php
  2.  
  3. class Klasemen
  4. {
  5. private $klubPoin;
  6.  
  7. public function __construct(array $klub)
  8. {
  9. $this->klubPoin = array_fill_keys($klub, 0);
  10. }
  11.  
  12. public function catatPermainan(string $klubKandang, string $klubTandang, string $skor): void
  13. {
  14. [$skorKandang, $skorTandang] = explode(':', $skor); // Pecah string
  15.  
  16. // Ubah string to int
  17. $skorKandang = (int) $skorKandang;
  18. $skorTandang = (int) $skorTandang;
  19.  
  20. // Cek kondisi skor
  21. if ($skorKandang > $skorTandang) {
  22. $this->klubPoin[$klubKandang] += 3;
  23. } elseif ($skorKandang < $skorTandang) {
  24. $this->klubPoin[$klubTandang] += 3;
  25. } else {
  26. $this->klubPoin[$klubKandang] += 1;
  27. $this->klubPoin[$klubTandang] += 1;
  28. }
  29. }
  30.  
  31. public function cetakKlasemen(): array
  32. {
  33. arsort($this->klubPoin); // Sorting
  34. return $this->klubPoin;
  35. }
  36.  
  37. public function ambilPeringkat(int $nomorPeringkat): string
  38. {
  39. $klasemen = array_keys($this->cetakKlasemen());
  40. return $klasemen[$nomorPeringkat - 1] ?? 'Peringkat ke-' . $nomorPeringkat . 'tidak tersedia';
  41. }
  42. }
  43.  
  44. //Eksekusi
  45. $klasemen = new Klasemen(['Liverpool', 'Chelsea', 'Arsenal']);
  46. $klasemen->catatPermainan('Arsenal', 'Liverpool', '2:1');
  47. $klasemen->catatPermainan('Arsenal', 'Chelsea', '1:1');
  48. $klasemen->catatPermainan('Chelsea', 'Arsenal', '0:3');
  49. $klasemen->catatPermainan('Chelsea', 'Liverpool', '3:2');
  50. $klasemen->catatPermainan('Liverpool', 'Arsenal', '2:2');
  51. $klasemen->catatPermainan('Liverpool', 'Chelsea', '0:0');
  52.  
  53. print_r($klasemen->cetakKlasemen());
  54. echo $klasemen->ambilPeringkat(2);
  55.  
Success #stdin #stdout 0.04s 25476KB
stdin
Standard input is empty
stdout
Array
(
    [Arsenal] => 8
    [Chelsea] => 5
    [Liverpool] => 2
)
Chelsea