<?php
class Klasemen
{
private $poinKlub = [];
public function __construct($daftarKlub)
{
foreach ($daftarKlub as $klub) {
$this->poinKlub[$klub] = 0;
}
}
public function catatPermainan($klubKandang, $klubTandang, $skor)
{
list($skorKandang, $skorTandang) = explode(':', $skor); $skorKandang = (int)$skorKandang;
$skorTandang = (int)$skorTandang;
if ($skorKandang > $skorTandang) {
$this->poinKlub[$klubKandang] += 3;
} elseif ($skorKandang < $skorTandang) {
$this->poinKlub[$klubTandang] += 3;
} else {
// Seri
$this->poinKlub[$klubKandang] += 1;
$this->poinKlub[$klubTandang] += 1;
}
}
public function cetakKlasemen()
{
return $this->poinKlub;
}
public function ambilPeringkat($peringkat)
{
$klasemen = $this->cetakKlasemen();
if ($peringkat < 1 || $peringkat > count($klubList)) { return null; // Kalau out of range
}
return $klubList[$peringkat - 1];
}
}
$klasemen = new Klasemen(['Liverpool', 'Chelsea', 'Arsenal']);
$klasemen->catatPermainan('Arsenal', 'Liverpool', '2:1');
$klasemen->catatPermainan('Arsenal', 'Chelsea', '1:1');
$klasemen->catatPermainan('Chelsea', 'Arsenal', '0:3');
$klasemen->catatPermainan('Chelsea', 'Liverpool', '3:2');
$klasemen->catatPermainan('Liverpool', 'Arsenal', '2:2');
$klasemen->catatPermainan('Liverpool', 'Chelsea', '0:0');
print_r($klasemen->cetakKlasemen());
echo 'Peringkat ke-2: ' . $klasemen->ambilPeringkat(2);
PD9waHAKCmNsYXNzIEtsYXNlbWVuCnsKICAgIHByaXZhdGUgJHBvaW5LbHViID0gW107CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYWZ0YXJLbHViKQogICAgewogICAgICAgIGZvcmVhY2ggKCRkYWZ0YXJLbHViIGFzICRrbHViKSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1Yl0gPSAwOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2F0YXRQZXJtYWluYW4oJGtsdWJLYW5kYW5nLCAka2x1YlRhbmRhbmcsICRza29yKQogICAgewogICAgCQogICAgICAgIGxpc3QoJHNrb3JLYW5kYW5nLCAkc2tvclRhbmRhbmcpID0gZXhwbG9kZSgnOicsICRza29yKTsKICAgICAgICAkc2tvckthbmRhbmcgPSAoaW50KSRza29yS2FuZGFuZzsKICAgICAgICAkc2tvclRhbmRhbmcgPSAoaW50KSRza29yVGFuZGFuZzsKCiAgICAgICAgaWYgKCRza29yS2FuZGFuZyA+ICRza29yVGFuZGFuZykgewogICAgICAgICAgICAkdGhpcy0+cG9pbktsdWJbJGtsdWJLYW5kYW5nXSArPSAzOwogICAgICAgIH0gZWxzZWlmICgkc2tvckthbmRhbmcgPCAkc2tvclRhbmRhbmcpIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5LbHViWyRrbHViVGFuZGFuZ10gKz0gMzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBTZXJpCiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YkthbmRhbmddICs9IDE7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YlRhbmRhbmddICs9IDE7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjZXRha0tsYXNlbWVuKCkKICAgIHsKICAgICAgICBhcnNvcnQoJHRoaXMtPnBvaW5LbHViKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBvaW5LbHViOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbWJpbFBlcmluZ2thdCgkcGVyaW5na2F0KQogICAgewogICAgICAgICRrbGFzZW1lbiA9ICR0aGlzLT5jZXRha0tsYXNlbWVuKCk7CiAgICAgICAgJGtsdWJMaXN0ID0gYXJyYXlfa2V5cygka2xhc2VtZW4pOwoKICAgICAgICBpZiAoJHBlcmluZ2thdCA8IDEgfHwgJHBlcmluZ2thdCA+IGNvdW50KCRrbHViTGlzdCkpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIEthbGF1IG91dCBvZiByYW5nZQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRrbHViTGlzdFskcGVyaW5na2F0IC0gMV07CiAgICB9Cn0KCiRrbGFzZW1lbiA9IG5ldyBLbGFzZW1lbihbJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJ0Fyc2VuYWwnXSk7Cgoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdBcnNlbmFsJywgJ0xpdmVycG9vbCcsICcyOjEnKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdDaGVsc2VhJywgJzE6MScpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdDaGVsc2VhJywgJ0Fyc2VuYWwnLCAnMDozJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0NoZWxzZWEnLCAnTGl2ZXJwb29sJywgJzM6MicpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQXJzZW5hbCcsICcyOjInKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnMDowJyk7CgpwcmludF9yKCRrbGFzZW1lbi0+Y2V0YWtLbGFzZW1lbigpKTsKCmVjaG8gJ1BlcmluZ2thdCBrZS0yOiAnIC4gJGtsYXNlbWVuLT5hbWJpbFBlcmluZ2thdCgyKTsK