<?php
class Klasemen {
private $klubPoin = [];
public function __construct
(array $klubList) { foreach ($klubList as $klub) {
$this->klubPoin[$klub] = 0;
}
}
public function catatPermainan(string $klubKandang, string $klubTandang, string $skor): void {
list($skorKandang, $skorTandang) = explode(':', $skor); $skorK = (int)$skorKandang;
$skorT = (int)$skorTandang;
if ($skorK > $skorT) {
$this->klubPoin[$klubKandang] += 3;
} elseif ($skorK < $skorT) {
$this->klubPoin[$klubTandang] += 3;
} else {
$this->klubPoin[$klubKandang]++;
$this->klubPoin[$klubTandang]++;
}
}
public function cetakKlasemen
(): array { return $this->klubPoin;
}
public function ambilPeringkat(int $nomorPeringkat): string {
$sorted = $this->cetakKlasemen();
return $keys[$nomorPeringkat - 1] ?? '';
}
}
// Contoh penggunaan:
$k = new Klasemen(['Liverpool', 'Chelsea', 'Arsenal']);
$k->catatPermainan('Arsenal', 'Liverpool', '2:1');
$k->catatPermainan('Arsenal', 'Chelsea', '1:1');
$k->catatPermainan('Chelsea', 'Arsenal', '0:3');
$k->catatPermainan('Chelsea', 'Liverpool', '3:2');
$k->catatPermainan('Liverpool', 'Arsenal', '2:2');
$k->catatPermainan('Liverpool', 'Chelsea', '0:0');
echo "Peringkat 2: " . $k->ambilPeringkat(2) . "\n";
PD9waHAKY2xhc3MgS2xhc2VtZW4gewogICAgcHJpdmF0ZSAka2x1YlBvaW4gPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoYXJyYXkgJGtsdWJMaXN0KSB7CiAgICAgICAgZm9yZWFjaCAoJGtsdWJMaXN0IGFzICRrbHViKSB7CiAgICAgICAgICAgICR0aGlzLT5rbHViUG9pblska2x1Yl0gPSAwOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2F0YXRQZXJtYWluYW4oc3RyaW5nICRrbHViS2FuZGFuZywgc3RyaW5nICRrbHViVGFuZGFuZywgc3RyaW5nICRza29yKTogdm9pZCB7CiAgICAgICAgbGlzdCgkc2tvckthbmRhbmcsICRza29yVGFuZGFuZykgPSBleHBsb2RlKCc6JywgJHNrb3IpOwogICAgICAgICRza29ySyA9IChpbnQpJHNrb3JLYW5kYW5nOwogICAgICAgICRza29yVCA9IChpbnQpJHNrb3JUYW5kYW5nOwoKICAgICAgICBpZiAoJHNrb3JLID4gJHNrb3JUKSB7CiAgICAgICAgICAgICR0aGlzLT5rbHViUG9pblska2x1YkthbmRhbmddICs9IDM7CiAgICAgICAgfSBlbHNlaWYgKCRza29ySyA8ICRza29yVCkgewogICAgICAgICAgICAkdGhpcy0+a2x1YlBvaW5bJGtsdWJUYW5kYW5nXSArPSAzOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5rbHViUG9pblska2x1YkthbmRhbmddKys7CiAgICAgICAgICAgICR0aGlzLT5rbHViUG9pblska2x1YlRhbmRhbmddKys7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjZXRha0tsYXNlbWVuKCk6IGFycmF5IHsKICAgICAgICBhcnNvcnQoJHRoaXMtPmtsdWJQb2luKTsKICAgICAgICByZXR1cm4gJHRoaXMtPmtsdWJQb2luOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbWJpbFBlcmluZ2thdChpbnQgJG5vbW9yUGVyaW5na2F0KTogc3RyaW5nIHsKICAgICAgICAkc29ydGVkID0gJHRoaXMtPmNldGFrS2xhc2VtZW4oKTsKICAgICAgICAka2V5cyA9IGFycmF5X2tleXMoJHNvcnRlZCk7CiAgICAgICAgcmV0dXJuICRrZXlzWyRub21vclBlcmluZ2thdCAtIDFdID8/ICcnOwogICAgfQp9CgovLyBDb250b2ggcGVuZ2d1bmFhbjoKJGsgPSBuZXcgS2xhc2VtZW4oWydMaXZlcnBvb2wnLCAnQ2hlbHNlYScsICdBcnNlbmFsJ10pOwokay0+Y2F0YXRQZXJtYWluYW4oJ0Fyc2VuYWwnLCAnTGl2ZXJwb29sJywgJzI6MScpOwokay0+Y2F0YXRQZXJtYWluYW4oJ0Fyc2VuYWwnLCAnQ2hlbHNlYScsICcxOjEnKTsKJGstPmNhdGF0UGVybWFpbmFuKCdDaGVsc2VhJywgJ0Fyc2VuYWwnLCAnMDozJyk7CiRrLT5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdMaXZlcnBvb2wnLCAnMzoyJyk7CiRrLT5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0Fyc2VuYWwnLCAnMjoyJyk7CiRrLT5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnMDowJyk7CgpwcmludF9yKCRrLT5jZXRha0tsYXNlbWVuKCkpOwplY2hvICJQZXJpbmdrYXQgMjogIiAuICRrLT5hbWJpbFBlcmluZ2thdCgyKSAuICJcbiI7Cg==