<?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 {
$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;
}
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');
$klasemen->catatPermainan('Madrid', 'Barcelona', '10:10');
print_r($klasemen->cetakKlasemen());
echo 'Peringkat ke-2: ' . $klasemen->ambilPeringkat(6);
PD9waHAKCmNsYXNzIEtsYXNlbWVuCnsKICAgIHByaXZhdGUgJHBvaW5LbHViID0gW107CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYWZ0YXJLbHViKQogICAgewogICAgICAgIGZvcmVhY2ggKCRkYWZ0YXJLbHViIGFzICRrbHViKSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1Yl0gPSAwOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2F0YXRQZXJtYWluYW4oJGtsdWJLYW5kYW5nLCAka2x1YlRhbmRhbmcsICRza29yKQogICAgewogICAgICAgIGxpc3QoJHNrb3JLYW5kYW5nLCAkc2tvclRhbmRhbmcpID0gZXhwbG9kZSgnOicsICRza29yKTsKICAgICAgICAkc2tvckthbmRhbmcgPSAoaW50KSRza29yS2FuZGFuZzsKICAgICAgICAkc2tvclRhbmRhbmcgPSAoaW50KSRza29yVGFuZGFuZzsKCiAgICAgICAgaWYgKCRza29yS2FuZGFuZyA+ICRza29yVGFuZGFuZykgewogICAgICAgICAgICAkdGhpcy0+cG9pbktsdWJbJGtsdWJLYW5kYW5nXSArPSAzOwogICAgICAgIH0gZWxzZWlmICgkc2tvckthbmRhbmcgPCAkc2tvclRhbmRhbmcpIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5LbHViWyRrbHViVGFuZGFuZ10gKz0gMzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+cG9pbktsdWJbJGtsdWJLYW5kYW5nXSArPSAxOwogICAgICAgICAgICAkdGhpcy0+cG9pbktsdWJbJGtsdWJUYW5kYW5nXSArPSAxOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2V0YWtLbGFzZW1lbigpCiAgICB7CiAgICAgICAgYXJzb3J0KCR0aGlzLT5wb2luS2x1Yik7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wb2luS2x1YjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYW1iaWxQZXJpbmdrYXQoJHBlcmluZ2thdCkKICAgIHsKICAgICAgICAka2xhc2VtZW4gPSAkdGhpcy0+Y2V0YWtLbGFzZW1lbigpOwogICAgICAgICRrbHViTGlzdCA9IGFycmF5X2tleXMoJGtsYXNlbWVuKTsKCiAgICAgICAgaWYgKCRwZXJpbmdrYXQgPCAxIHx8ICRwZXJpbmdrYXQgPiBjb3VudCgka2x1Ykxpc3QpKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRrbHViTGlzdFskcGVyaW5na2F0IC0gMV07CiAgICB9Cn0KCiRrbGFzZW1lbiA9IG5ldyBLbGFzZW1lbihbJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJ0Fyc2VuYWwnXSk7Cgoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdBcnNlbmFsJywgJ0xpdmVycG9vbCcsICcyOjEnKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdDaGVsc2VhJywgJzE6MScpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdDaGVsc2VhJywgJ0Fyc2VuYWwnLCAnMDozJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0NoZWxzZWEnLCAnTGl2ZXJwb29sJywgJzM6MicpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQXJzZW5hbCcsICcyOjInKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnMDowJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ01hZHJpZCcsICdCYXJjZWxvbmEnLCAnMTA6MTAnKTsKCnByaW50X3IoJGtsYXNlbWVuLT5jZXRha0tsYXNlbWVuKCkpOwoKZWNobyAnUGVyaW5na2F0IGtlLTI6ICcgLiAka2xhc2VtZW4tPmFtYmlsUGVyaW5na2F0KDYpOwo=