<?php
class Klasemen {
private $klubList;
private $poinKlub;
public function __construct($klubList) {
$this->klubList = $klubList;
$this->poinKlub = array();
foreach ($klubList as $klub) {
$this->poinKlub[$klub] = 0;
}
}
public function catatPermainan($klubKandang, $klubTandang, $skor) {
$skorKandang = (int)$skorArray[0];
$skorTandang = (int)$skorArray[1];
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($nomorPeringkat) {
$klasemenTerurut = $this->cetakKlasemen();
if ($nomorPeringkat > 0 && $nomorPeringkat <= count($klubArray)) { return $klubArray[$nomorPeringkat - 1];
}
return null;
}
}
$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');
echo "Klasemen:\n";
$hasil = $klasemen->cetakKlasemen();
foreach ($hasil as $klub => $poin) {
echo "$klub: $poin poin\n";
}
echo "\nPeringkat 2: " . $klasemen->ambilPeringkat(2) . "\n";
echo "\nVerifikasi hasil:\n";
print_r($klasemen->cetakKlasemen());
?>
PD9waHAKCmNsYXNzIEtsYXNlbWVuIHsKICAgIHByaXZhdGUgJGtsdWJMaXN0OwogICAgcHJpdmF0ZSAkcG9pbktsdWI7CiAgICAKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgka2x1Ykxpc3QpIHsKICAgICAgICAkdGhpcy0+a2x1Ykxpc3QgPSAka2x1Ykxpc3Q7CiAgICAgICAgJHRoaXMtPnBvaW5LbHViID0gYXJyYXkoKTsKICAgICAgICAKICAgICAgICBmb3JlYWNoICgka2x1Ykxpc3QgYXMgJGtsdWIpIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5LbHViWyRrbHViXSA9IDA7CiAgICAgICAgfQogICAgfQogICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gY2F0YXRQZXJtYWluYW4oJGtsdWJLYW5kYW5nLCAka2x1YlRhbmRhbmcsICRza29yKSB7CiAgICAgICAgJHNrb3JBcnJheSA9IGV4cGxvZGUoJzonLCAkc2tvcik7CiAgICAgICAgJHNrb3JLYW5kYW5nID0gKGludCkkc2tvckFycmF5WzBdOwogICAgICAgICRza29yVGFuZGFuZyA9IChpbnQpJHNrb3JBcnJheVsxXTsKICAgICAgICAKICAgICAgICBpZiAoJHNrb3JLYW5kYW5nID4gJHNrb3JUYW5kYW5nKSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YkthbmRhbmddICs9IDM7CiAgICAgICAgfSBlbHNlaWYgKCRza29yS2FuZGFuZyA8ICRza29yVGFuZGFuZykgewogICAgICAgICAgICAkdGhpcy0+cG9pbktsdWJbJGtsdWJUYW5kYW5nXSArPSAzOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YkthbmRhbmddICs9IDE7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YlRhbmRhbmddICs9IDE7CiAgICAgICAgfQogICAgfQogICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gY2V0YWtLbGFzZW1lbigpIHsKICAgICAgICBhcnNvcnQoJHRoaXMtPnBvaW5LbHViKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBvaW5LbHViOwogICAgfQogICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gYW1iaWxQZXJpbmdrYXQoJG5vbW9yUGVyaW5na2F0KSB7CiAgICAgICAgJGtsYXNlbWVuVGVydXJ1dCA9ICR0aGlzLT5jZXRha0tsYXNlbWVuKCk7CiAgICAgICAgJGtsdWJBcnJheSA9IGFycmF5X2tleXMoJGtsYXNlbWVuVGVydXJ1dCk7CiAgICAgICAgCiAgICAgICAgaWYgKCRub21vclBlcmluZ2thdCA+IDAgJiYgJG5vbW9yUGVyaW5na2F0IDw9IGNvdW50KCRrbHViQXJyYXkpKSB7CiAgICAgICAgICAgIHJldHVybiAka2x1YkFycmF5WyRub21vclBlcmluZ2thdCAtIDFdOwogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQoKJGtsYXNlbWVuID0gbmV3IEtsYXNlbWVuKFsnTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnQXJzZW5hbCddKTsKCiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0Fyc2VuYWwnLCAnTGl2ZXJwb29sJywgJzI6MScpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdBcnNlbmFsJywgJ0NoZWxzZWEnLCAnMToxJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0NoZWxzZWEnLCAnQXJzZW5hbCcsICcwOjMnKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdMaXZlcnBvb2wnLCAnMzoyJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0xpdmVycG9vbCcsICdBcnNlbmFsJywgJzI6MicpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQ2hlbHNlYScsICcwOjAnKTsKCmVjaG8gIktsYXNlbWVuOlxuIjsKJGhhc2lsID0gJGtsYXNlbWVuLT5jZXRha0tsYXNlbWVuKCk7CmZvcmVhY2ggKCRoYXNpbCBhcyAka2x1YiA9PiAkcG9pbikgewogICAgZWNobyAiJGtsdWI6ICRwb2luIHBvaW5cbiI7Cn0KCmVjaG8gIlxuUGVyaW5na2F0IDI6ICIgLiAka2xhc2VtZW4tPmFtYmlsUGVyaW5na2F0KDIpIC4gIlxuIjsKCmVjaG8gIlxuVmVyaWZpa2FzaSBoYXNpbDpcbiI7CnByaW50X3IoJGtsYXNlbWVuLT5jZXRha0tsYXNlbWVuKCkpOwoKPz4=