<?php
class Klasemen {
private $poin = [];
public function __construct($klubList) {
foreach ($klubList as $klub) {
$this->poin[$klub] = 0;
}
}
public function catatPermainan($klubKandang, $klubTandang, $skor) {
list($skorKandang, $skorTandang) = explode(':', $skor); $skorKandang = (int)$skorKandang;
$skorTandang = (int)$skorTandang;
if ($skorKandang > $skorTandang) {
$this->poin[$klubKandang] += 3;
} elseif ($skorTandang > $skorKandang) {
$this->poin[$klubTandang] += 3;
} else {
$this->poin[$klubKandang] += 1;
$this->poin[$klubTandang] += 1;
}
}
public function cetakKlasemen() {
// Urutkan berdasarkan poin menurun, lalu nama klub naik (jika poin sama)
return $this->poin;
}
public function ambilPeringkat($nomorPeringkat) {
$klasemen = $this->cetakKlasemen();
return $klubList[$nomorPeringkat - 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 $klasemen->ambilPeringkat(2);
?>
PD9waHAKY2xhc3MgS2xhc2VtZW4gewogICAgcHJpdmF0ZSAkcG9pbiA9IFtdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgka2x1Ykxpc3QpIHsKICAgICAgICBmb3JlYWNoICgka2x1Ykxpc3QgYXMgJGtsdWIpIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5bJGtsdWJdID0gMDsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNhdGF0UGVybWFpbmFuKCRrbHViS2FuZGFuZywgJGtsdWJUYW5kYW5nLCAkc2tvcikgewogICAgICAgIGxpc3QoJHNrb3JLYW5kYW5nLCAkc2tvclRhbmRhbmcpID0gZXhwbG9kZSgnOicsICRza29yKTsKICAgICAgICAkc2tvckthbmRhbmcgPSAoaW50KSRza29yS2FuZGFuZzsKICAgICAgICAkc2tvclRhbmRhbmcgPSAoaW50KSRza29yVGFuZGFuZzsKCiAgICAgICAgaWYgKCRza29yS2FuZGFuZyA+ICRza29yVGFuZGFuZykgewogICAgICAgICAgICAkdGhpcy0+cG9pblska2x1YkthbmRhbmddICs9IDM7CiAgICAgICAgfSBlbHNlaWYgKCRza29yVGFuZGFuZyA+ICRza29yS2FuZGFuZykgewogICAgICAgICAgICAkdGhpcy0+cG9pblska2x1YlRhbmRhbmddICs9IDM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5bJGtsdWJLYW5kYW5nXSArPSAxOwogICAgICAgICAgICAkdGhpcy0+cG9pblska2x1YlRhbmRhbmddICs9IDE7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjZXRha0tsYXNlbWVuKCkgewogICAgICAgIC8vIFVydXRrYW4gYmVyZGFzYXJrYW4gcG9pbiBtZW51cnVuLCBsYWx1IG5hbWEga2x1YiBuYWlrIChqaWthIHBvaW4gc2FtYSkKICAgICAgICBhcnNvcnQoJHRoaXMtPnBvaW4pOwogICAgICAgIHJldHVybiAkdGhpcy0+cG9pbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYW1iaWxQZXJpbmdrYXQoJG5vbW9yUGVyaW5na2F0KSB7CiAgICAgICAgJGtsYXNlbWVuID0gJHRoaXMtPmNldGFrS2xhc2VtZW4oKTsKICAgICAgICAka2x1Ykxpc3QgPSBhcnJheV9rZXlzKCRrbGFzZW1lbik7CiAgICAgICAgcmV0dXJuICRrbHViTGlzdFskbm9tb3JQZXJpbmdrYXQgLSAxXTsKICAgIH0KfQoKCiRrbGFzZW1lbiA9IG5ldyBLbGFzZW1lbihbJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJ0Fyc2VuYWwnXSk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0Fyc2VuYWwnLCAnTGl2ZXJwb29sJywgJzI6MScpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdBcnNlbmFsJywgJ0NoZWxzZWEnLCAnMToxJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0NoZWxzZWEnLCAnQXJzZW5hbCcsICcwOjMnKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdMaXZlcnBvb2wnLCAnMzoyJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0xpdmVycG9vbCcsICdBcnNlbmFsJywgJzI6MicpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQ2hlbHNlYScsICcwOjAnKTsKCnByaW50X3IoJGtsYXNlbWVuLT5jZXRha0tsYXNlbWVuKCkpOyAKZWNobyAka2xhc2VtZW4tPmFtYmlsUGVyaW5na2F0KDIpOyAgIAo/Pgo=