<?php
//Wahyu Jumah Maulidan
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());
?>
PD9waHAKIC8vV2FoeXUgSnVtYWggTWF1bGlkYW4KY2xhc3MgS2xhc2VtZW4gewogICAgcHJpdmF0ZSAka2x1Ykxpc3Q7CiAgICBwcml2YXRlICRwb2luS2x1YjsKICAgIAogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRrbHViTGlzdCkgewogICAgICAgICR0aGlzLT5rbHViTGlzdCA9ICRrbHViTGlzdDsKICAgICAgICAkdGhpcy0+cG9pbktsdWIgPSBhcnJheSgpOwogICAgICAgIAogICAgICAgIGZvcmVhY2ggKCRrbHViTGlzdCBhcyAka2x1YikgewogICAgICAgICAgICAkdGhpcy0+cG9pbktsdWJbJGtsdWJdID0gMDsKICAgICAgICB9CiAgICB9CiAgICAKICAgIHB1YmxpYyBmdW5jdGlvbiBjYXRhdFBlcm1haW5hbigka2x1YkthbmRhbmcsICRrbHViVGFuZGFuZywgJHNrb3IpIHsKICAgICAgICAkc2tvckFycmF5ID0gZXhwbG9kZSgnOicsICRza29yKTsKICAgICAgICAkc2tvckthbmRhbmcgPSAoaW50KSRza29yQXJyYXlbMF07CiAgICAgICAgJHNrb3JUYW5kYW5nID0gKGludCkkc2tvckFycmF5WzFdOwogICAgICAgIAogICAgICAgIGlmICgkc2tvckthbmRhbmcgPiAkc2tvclRhbmRhbmcpIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5LbHViWyRrbHViS2FuZGFuZ10gKz0gMzsKICAgICAgICB9IGVsc2VpZiAoJHNrb3JLYW5kYW5nIDwgJHNrb3JUYW5kYW5nKSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luS2x1Ylska2x1YlRhbmRhbmddICs9IDM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5LbHViWyRrbHViS2FuZGFuZ10gKz0gMTsKICAgICAgICAgICAgJHRoaXMtPnBvaW5LbHViWyRrbHViVGFuZGFuZ10gKz0gMTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIHB1YmxpYyBmdW5jdGlvbiBjZXRha0tsYXNlbWVuKCkgewogICAgICAgIGFyc29ydCgkdGhpcy0+cG9pbktsdWIpOwogICAgICAgIHJldHVybiAkdGhpcy0+cG9pbktsdWI7CiAgICB9CiAgICAKICAgIHB1YmxpYyBmdW5jdGlvbiBhbWJpbFBlcmluZ2thdCgkbm9tb3JQZXJpbmdrYXQpIHsKICAgICAgICAka2xhc2VtZW5UZXJ1cnV0ID0gJHRoaXMtPmNldGFrS2xhc2VtZW4oKTsKICAgICAgICAka2x1YkFycmF5ID0gYXJyYXlfa2V5cygka2xhc2VtZW5UZXJ1cnV0KTsKICAgICAgICAKICAgICAgICBpZiAoJG5vbW9yUGVyaW5na2F0ID4gMCAmJiAkbm9tb3JQZXJpbmdrYXQgPD0gY291bnQoJGtsdWJBcnJheSkpIHsKICAgICAgICAgICAgcmV0dXJuICRrbHViQXJyYXlbJG5vbW9yUGVyaW5na2F0IC0gMV07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cgoka2xhc2VtZW4gPSBuZXcgS2xhc2VtZW4oWydMaXZlcnBvb2wnLCAnQ2hlbHNlYScsICdBcnNlbmFsJ10pOwoKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdMaXZlcnBvb2wnLCAnMjoxJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0Fyc2VuYWwnLCAnQ2hlbHNlYScsICcxOjEnKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdBcnNlbmFsJywgJzA6MycpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdDaGVsc2VhJywgJ0xpdmVycG9vbCcsICczOjInKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0Fyc2VuYWwnLCAnMjoyJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJzA6MCcpOwoKZWNobyAiS2xhc2VtZW46XG4iOwokaGFzaWwgPSAka2xhc2VtZW4tPmNldGFrS2xhc2VtZW4oKTsKZm9yZWFjaCAoJGhhc2lsIGFzICRrbHViID0+ICRwb2luKSB7CiAgICBlY2hvICIka2x1YjogJHBvaW4gcG9pblxuIjsKfQoKZWNobyAiXG5QZXJpbmdrYXQgMjogIiAuICRrbGFzZW1lbi0+YW1iaWxQZXJpbmdrYXQoMikgLiAiXG4iOwoKZWNobyAiXG5WZXJpZmlrYXNpIGhhc2lsOlxuIjsKcHJpbnRfcigka2xhc2VtZW4tPmNldGFrS2xhc2VtZW4oKSk7Cgo/Pg==