<?php
class Klasemen {
private $poin = [];
public function __construct($klub) {
foreach ($klub as $namaKlub) {
$this->poin[$namaKlub] = 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 ($skorKandang < $skorTandang) {
$this->poin[$klubTandang] += 3;
} else {
$this->poin[$klubKandang] += 1;
$this->poin[$klubTandang] += 1;
}
}
public function cetakKlasemen() {
// Urutkan dari yang poin tertinggi ke terendah
return $this->poin;
}
public function ambilPeringkat($nomorPeringkat) {
$klasemen = $this->cetakKlasemen();
return $klub[$nomorPeringkat - 1];
}
}
// Contoh penggunaan
$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()); // ['Arsenal'=>8, 'Chelsea'=>5, 'Liverpool'=>2] echo $klasemen->ambilPeringkat(2); // 'Chelsea'
?>
PD9waHAKY2xhc3MgS2xhc2VtZW4gewogICAgcHJpdmF0ZSAkcG9pbiA9IFtdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgka2x1YikgewogICAgICAgIGZvcmVhY2ggKCRrbHViIGFzICRuYW1hS2x1YikgewogICAgICAgICAgICAkdGhpcy0+cG9pblskbmFtYUtsdWJdID0gMDsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNhdGF0UGVybWFpbmFuKCRrbHViS2FuZGFuZywgJGtsdWJUYW5kYW5nLCAkc2tvcikgewogICAgICAgIGxpc3QoJHNrb3JLYW5kYW5nLCAkc2tvclRhbmRhbmcpID0gZXhwbG9kZSgnOicsICRza29yKTsKICAgICAgICAkc2tvckthbmRhbmcgPSAoaW50KSRza29yS2FuZGFuZzsKICAgICAgICAkc2tvclRhbmRhbmcgPSAoaW50KSRza29yVGFuZGFuZzsKCiAgICAgICAgaWYgKCRza29yS2FuZGFuZyA+ICRza29yVGFuZGFuZykgewogICAgICAgICAgICAkdGhpcy0+cG9pblska2x1YkthbmRhbmddICs9IDM7CiAgICAgICAgfSBlbHNlaWYgKCRza29yS2FuZGFuZyA8ICRza29yVGFuZGFuZykgewogICAgICAgICAgICAkdGhpcy0+cG9pblska2x1YlRhbmRhbmddICs9IDM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPnBvaW5bJGtsdWJLYW5kYW5nXSArPSAxOwogICAgICAgICAgICAkdGhpcy0+cG9pblska2x1YlRhbmRhbmddICs9IDE7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjZXRha0tsYXNlbWVuKCkgewogICAgICAgIC8vIFVydXRrYW4gZGFyaSB5YW5nIHBvaW4gdGVydGluZ2dpIGtlIHRlcmVuZGFoCiAgICAgICAgYXJzb3J0KCR0aGlzLT5wb2luKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBvaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFtYmlsUGVyaW5na2F0KCRub21vclBlcmluZ2thdCkgewogICAgICAgICRrbGFzZW1lbiA9ICR0aGlzLT5jZXRha0tsYXNlbWVuKCk7CiAgICAgICAgJGtsdWIgPSBhcnJheV9rZXlzKCRrbGFzZW1lbik7CiAgICAgICAgcmV0dXJuICRrbHViWyRub21vclBlcmluZ2thdCAtIDFdOwogICAgfQp9CgovLyBDb250b2ggcGVuZ2d1bmFhbgoka2xhc2VtZW4gPSBuZXcgS2xhc2VtZW4oWydMaXZlcnBvb2wnLCAnQ2hlbHNlYScsICdBcnNlbmFsJ10pOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdBcnNlbmFsJywgJ0xpdmVycG9vbCcsICcyOjEnKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdDaGVsc2VhJywgJzE6MScpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdDaGVsc2VhJywgJ0Fyc2VuYWwnLCAnMDozJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0NoZWxzZWEnLCAnTGl2ZXJwb29sJywgJzM6MicpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQXJzZW5hbCcsICcyOjInKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnMDowJyk7CgpwcmludF9yKCRrbGFzZW1lbi0+Y2V0YWtLbGFzZW1lbigpKTsgLy8gWydBcnNlbmFsJz0+OCwgJ0NoZWxzZWEnPT41LCAnTGl2ZXJwb29sJz0+Ml0KZWNobyAka2xhc2VtZW4tPmFtYmlsUGVyaW5na2F0KDIpOyAgIC8vICdDaGVsc2VhJwo/Pgo=