<?php
class Klasemen
{
private $poinKlub = [];
public function catatPermainan(string $klubKandang, string $klubTandang, string $skor): void
{
if (!isset($this->poinKlub[$klubKandang])) { $this->poinKlub[$klubKandang] = 0;
}
if (!isset($this->poinKlub[$klubTandang])) { $this->poinKlub[$klubTandang] = 0;
}
if ($golKandang > $golTandang) {
$this->poinKlub[$klubKandang] += 3;
} elseif ($golTandang > $golKandang) {
$this->poinKlub[$klubTandang] += 3;
} else {
$this->poinKlub[$klubKandang] += 1;
$this->poinKlub[$klubTandang] += 1;
}
}
public function cetakKlasemen
(): array {
$klasemen = $this->poinKlub;
uksort($klasemen, function ($a, $b) use ($klasemen) { if ($klasemen[$a] === $klasemen[$b]) {
}
return $klasemen[$b] - $klasemen[$a];
});
$hasil = [];
foreach ($klasemen as $klub => $poin) {
$hasil[] = "$klub : $poin poin";
}
return $hasil;
}
public function ambilPeringkat(int $nomorPeringkat): string
{
$klasemen = $this->poinKlub;
uksort($klasemen, function ($a, $b) use ($klasemen) { if ($klasemen[$a] === $klasemen[$b]) {
}
return $klasemen[$b] - $klasemen[$a];
});
if ($nomorPeringkat < 1 || $nomorPeringkat > count($klubArray)) { return "Peringkat tidak tersedia";
}
return $klubArray[$nomorPeringkat - 1];
}
}
// penggunaan
$klasemen = new Klasemen();
$klasemen->catatPermainan("Indonesia", "Jepang", "2:1");
$klasemen->catatPermainan("Malaysia", "Filipinia", "1:1");
$klasemen->catatPermainan("Myanmar", "China", "0:3");
echo "Klasemen Sementara:\n";
foreach ($klasemen->cetakKlasemen() as $baris) {
echo $baris . "\n";
}
echo "\nPeringkat 1: " . $klasemen->ambilPeringkat(1) . "\n";
PD9waHAKCmNsYXNzIEtsYXNlbWVuCnsKICAgIHByaXZhdGUgJHBvaW5LbHViID0gW107CgogICAgcHVibGljIGZ1bmN0aW9uIGNhdGF0UGVybWFpbmFuKHN0cmluZyAka2x1YkthbmRhbmcsIHN0cmluZyAka2x1YlRhbmRhbmcsIHN0cmluZyAkc2tvcik6IHZvaWQKICAgIHsKICAgICAgICBbJGdvbEthbmRhbmcsICRnb2xUYW5kYW5nXSA9IGFycmF5X21hcCgnaW50dmFsJywgZXhwbG9kZSgnOicsICRza29yKSk7CgogICAgICAgIGlmICghaXNzZXQoJHRoaXMtPnBvaW5LbHViWyRrbHViS2FuZGFuZ10pKSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YkthbmRhbmddID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+cG9pbktsdWJbJGtsdWJUYW5kYW5nXSkpIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5LbHViWyRrbHViVGFuZGFuZ10gPSAwOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRnb2xLYW5kYW5nID4gJGdvbFRhbmRhbmcpIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5LbHViWyRrbHViS2FuZGFuZ10gKz0gMzsKICAgICAgICB9IGVsc2VpZiAoJGdvbFRhbmRhbmcgPiAkZ29sS2FuZGFuZykgewogICAgICAgICAgICAkdGhpcy0+cG9pbktsdWJbJGtsdWJUYW5kYW5nXSArPSAzOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YkthbmRhbmddICs9IDE7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YlRhbmRhbmddICs9IDE7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjZXRha0tsYXNlbWVuKCk6IGFycmF5CiAgICB7CiAgICAgICAgJGtsYXNlbWVuID0gJHRoaXMtPnBvaW5LbHViOwoKICAgICAgICB1a3NvcnQoJGtsYXNlbWVuLCBmdW5jdGlvbiAoJGEsICRiKSB1c2UgKCRrbGFzZW1lbikgewogICAgICAgICAgICBpZiAoJGtsYXNlbWVuWyRhXSA9PT0gJGtsYXNlbWVuWyRiXSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHN0cmNtcCgkYSwgJGIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAka2xhc2VtZW5bJGJdIC0gJGtsYXNlbWVuWyRhXTsKICAgICAgICB9KTsKCiAgICAgICAgJGhhc2lsID0gW107CiAgICAgICAgZm9yZWFjaCAoJGtsYXNlbWVuIGFzICRrbHViID0+ICRwb2luKSB7CiAgICAgICAgICAgICRoYXNpbFtdID0gIiRrbHViIDogJHBvaW4gcG9pbiI7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGhhc2lsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbWJpbFBlcmluZ2thdChpbnQgJG5vbW9yUGVyaW5na2F0KTogc3RyaW5nCiAgICB7CiAgICAgICAgJGtsYXNlbWVuID0gJHRoaXMtPnBvaW5LbHViOwoKICAgICAgICB1a3NvcnQoJGtsYXNlbWVuLCBmdW5jdGlvbiAoJGEsICRiKSB1c2UgKCRrbGFzZW1lbikgewogICAgICAgICAgICBpZiAoJGtsYXNlbWVuWyRhXSA9PT0gJGtsYXNlbWVuWyRiXSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHN0cmNtcCgkYSwgJGIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAka2xhc2VtZW5bJGJdIC0gJGtsYXNlbWVuWyRhXTsKICAgICAgICB9KTsKCiAgICAgICAgJGtsdWJBcnJheSA9IGFycmF5X2tleXMoJGtsYXNlbWVuKTsKCiAgICAgICAgaWYgKCRub21vclBlcmluZ2thdCA8IDEgfHwgJG5vbW9yUGVyaW5na2F0ID4gY291bnQoJGtsdWJBcnJheSkpIHsKICAgICAgICAgICAgcmV0dXJuICJQZXJpbmdrYXQgdGlkYWsgdGVyc2VkaWEiOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRrbHViQXJyYXlbJG5vbW9yUGVyaW5na2F0IC0gMV07CiAgICB9Cn0KCi8vIHBlbmdndW5hYW4KJGtsYXNlbWVuID0gbmV3IEtsYXNlbWVuKCk7Cgoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCJJbmRvbmVzaWEiLCAiSmVwYW5nIiwgIjI6MSIpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCJNYWxheXNpYSIsICJGaWxpcGluaWEiLCAiMToxIik7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oIk15YW5tYXIiLCAiQ2hpbmEiLCAiMDozIik7CgplY2hvICJLbGFzZW1lbiBTZW1lbnRhcmE6XG4iOwpmb3JlYWNoICgka2xhc2VtZW4tPmNldGFrS2xhc2VtZW4oKSBhcyAkYmFyaXMpIHsKICAgIGVjaG8gJGJhcmlzIC4gIlxuIjsKfQoKZWNobyAiXG5QZXJpbmdrYXQgMTogIiAuICRrbGFzZW1lbi0+YW1iaWxQZXJpbmdrYXQoMSkgLiAiXG4iOw==