<?php
class Klasemen {
private $klub ;
private $poin ;
public function __construct
( array $daftarKlub ) { $this -> klub = $daftarKlub ;
}
public function catatPermainan( string $klubKandang , string $klubTandang , string $skor ) {
if ( ! in_array ( $klubKandang , $this -> klub ) || ! in_array ( $klubTandang , $this -> klub ) ) { return ;
}
list ( $skorKandang , $skorTandang ) = explode ( ':' , $skor ) ;
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
( ) : array { return $this -> poin ;
}
public function ambilPeringkat( int $nomorPeringkat ) : string {
$klasemenTerurut = $this -> cetakKlasemen ( ) ;
if ( $nomorPeringkat > 0 && $nomorPeringkat <= count ( $klubTerurut ) ) { return $klubTerurut [ $nomorPeringkat - 1 ] ;
}
return "Peringkat tidak ditemukan" ;
}
}
$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 Akhir:\n " ;
print_r ( $klasemen -> cetakKlasemen ( ) ) ;
echo "\n Peringkat 2: " . $klasemen -> ambilPeringkat ( 2 ) . "\n " ;
echo "Peringkat 1: " . $klasemen -> ambilPeringkat ( 1 ) . "\n " ;
echo "Peringkat 3: " . $klasemen -> ambilPeringkat ( 3 ) . "\n " ;
echo "Peringkat 4: " . $klasemen -> ambilPeringkat ( 4 ) . "\n " ;
PD9waHAKCmNsYXNzIEtsYXNlbWVuIHsKICAgIHByaXZhdGUgJGtsdWI7IAogICAgcHJpdmF0ZSAkcG9pbjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoYXJyYXkgJGRhZnRhcktsdWIpIHsKICAgICAgICAkdGhpcy0+a2x1YiA9ICRkYWZ0YXJLbHViOwogICAgICAgICR0aGlzLT5wb2luID0gYXJyYXlfZmlsbF9rZXlzKCRkYWZ0YXJLbHViLCAwKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2F0YXRQZXJtYWluYW4oc3RyaW5nICRrbHViS2FuZGFuZywgc3RyaW5nICRrbHViVGFuZGFuZywgc3RyaW5nICRza29yKSB7CiAgICAgICAgaWYgKCFpbl9hcnJheSgka2x1YkthbmRhbmcsICR0aGlzLT5rbHViKSB8fCAhaW5fYXJyYXkoJGtsdWJUYW5kYW5nLCAkdGhpcy0+a2x1YikpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbGlzdCgkc2tvckthbmRhbmcsICRza29yVGFuZGFuZykgPSBleHBsb2RlKCc6JywgJHNrb3IpOwoKICAgICAgICBpZiAoJHNrb3JLYW5kYW5nID4gJHNrb3JUYW5kYW5nKSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luWyRrbHViS2FuZGFuZ10gKz0gMzsKICAgICAgICB9IGVsc2VpZiAoJHNrb3JLYW5kYW5nIDwgJHNrb3JUYW5kYW5nKSB7CiAgICAgICAgICAgICR0aGlzLT5wb2luWyRrbHViVGFuZGFuZ10gKz0gMzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+cG9pblska2x1YkthbmRhbmddICs9IDE7CiAgICAgICAgICAgICR0aGlzLT5wb2luWyRrbHViVGFuZGFuZ10gKz0gMTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNldGFrS2xhc2VtZW4oKTogYXJyYXkgewogICAgICAgIGFyc29ydCgkdGhpcy0+cG9pbik7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wb2luOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbWJpbFBlcmluZ2thdChpbnQgJG5vbW9yUGVyaW5na2F0KTogc3RyaW5nIHsKICAgICAgICAka2xhc2VtZW5UZXJ1cnV0ID0gJHRoaXMtPmNldGFrS2xhc2VtZW4oKTsKICAgICAgICAka2x1YlRlcnVydXQgPSBhcnJheV9rZXlzKCRrbGFzZW1lblRlcnVydXQpOwoKIAogICAgICAgIGlmICgkbm9tb3JQZXJpbmdrYXQgPiAwICYmICRub21vclBlcmluZ2thdCA8PSBjb3VudCgka2x1YlRlcnVydXQpKSB7CiAgICAgICAgICAgIHJldHVybiAka2x1YlRlcnVydXRbJG5vbW9yUGVyaW5na2F0IC0gMV07CiAgICAgICAgfQogICAgICAgIHJldHVybiAiUGVyaW5na2F0IHRpZGFrIGRpdGVtdWthbiI7CiAgICB9Cn0KCiRrbGFzZW1lbiA9IG5ldyBLbGFzZW1lbihbJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJ0Fyc2VuYWwnXSk7Cgoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdBcnNlbmFsJywgJ0xpdmVycG9vbCcsICcyOjEnKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdDaGVsc2VhJywgJzE6MScpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdDaGVsc2VhJywgJ0Fyc2VuYWwnLCAnMDozJyk7CiRrbGFzZW1lbi0+Y2F0YXRQZXJtYWluYW4oJ0NoZWxzZWEnLCAnTGl2ZXJwb29sJywgJzM6MicpOwoka2xhc2VtZW4tPmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQXJzZW5hbCcsICcyOjInKTsKJGtsYXNlbWVuLT5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnMDowJyk7CgplY2hvICJLbGFzZW1lbiBBa2hpcjpcbiI7CnByaW50X3IoJGtsYXNlbWVuLT5jZXRha0tsYXNlbWVuKCkpOwoKZWNobyAiXG5QZXJpbmdrYXQgMjogIiAuICRrbGFzZW1lbi0+YW1iaWxQZXJpbmdrYXQoMikgLiAiXG4iOwplY2hvICJQZXJpbmdrYXQgMTogIiAuICRrbGFzZW1lbi0+YW1iaWxQZXJpbmdrYXQoMSkgLiAiXG4iOwplY2hvICJQZXJpbmdrYXQgMzogIiAuICRrbGFzZW1lbi0+YW1iaWxQZXJpbmdrYXQoMykgLiAiXG4iOwplY2hvICJQZXJpbmdrYXQgNDogIiAuICRrbGFzZW1lbi0+YW1iaWxQZXJpbmdrYXQoNCkgLiAiXG4iOw==