class Klasemen {
constructor(clubs) {
this.points = {};
for (let club of clubs) {
this.points[club] = 0;
}
}
catatPermainan(klubKandang, klubTandang, skor) {
let [goalsHome, goalsAway] = skor.split(':').map(Number);
if (goalsHome > goalsAway) {
this.points[klubKandang] += 3;
} else if (goalsHome < goalsAway) {
this.points[klubTandang] += 3;
} else {
this.points[klubKandang] += 1;
this.points[klubTandang] += 1;
}
}
cetakKlasemen() {
let standings = Object.entries(this.points);
standings.sort((a, b) => b[1] - a[1]);
return standings;
}
ambilPeringkat(nomorPeringkat) {
let standings = this.cetakKlasemen();
return standings[nomorPeringkat - 1][0];
}
}
// Contoh penggunaan:
let 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');
console.log(klasemen.cetakKlasemen());
console.log(klasemen.ambilPeringkat(2));
Y2xhc3MgS2xhc2VtZW4gewogICAgY29uc3RydWN0b3IoY2x1YnMpIHsKICAgICAgICB0aGlzLnBvaW50cyA9IHt9OwogICAgICAgIGZvciAobGV0IGNsdWIgb2YgY2x1YnMpIHsKICAgICAgICAgICAgdGhpcy5wb2ludHNbY2x1Yl0gPSAwOwogICAgICAgIH0KICAgIH0KCiAgICBjYXRhdFBlcm1haW5hbihrbHViS2FuZGFuZywga2x1YlRhbmRhbmcsIHNrb3IpIHsKICAgICAgICBsZXQgW2dvYWxzSG9tZSwgZ29hbHNBd2F5XSA9IHNrb3Iuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTsKICAgICAgICBpZiAoZ29hbHNIb21lID4gZ29hbHNBd2F5KSB7CiAgICAgICAgICAgIHRoaXMucG9pbnRzW2tsdWJLYW5kYW5nXSArPSAzOwogICAgICAgIH0gZWxzZSBpZiAoZ29hbHNIb21lIDwgZ29hbHNBd2F5KSB7CiAgICAgICAgICAgIHRoaXMucG9pbnRzW2tsdWJUYW5kYW5nXSArPSAzOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMucG9pbnRzW2tsdWJLYW5kYW5nXSArPSAxOwogICAgICAgICAgICAgICAgdGhpcy5wb2ludHNba2x1YlRhbmRhbmddICs9IDE7CiAgICAgICAgfQogICAgfQoKICAgIGNldGFrS2xhc2VtZW4oKSB7CiAgICAgICAgbGV0IHN0YW5kaW5ncyA9IE9iamVjdC5lbnRyaWVzKHRoaXMucG9pbnRzKTsKICAgICAgICBzdGFuZGluZ3Muc29ydCgoYSwgYikgPT4gYlsxXSAtIGFbMV0pOwogICAgICAgIHJldHVybiBzdGFuZGluZ3M7CiAgICB9CgogICAgYW1iaWxQZXJpbmdrYXQobm9tb3JQZXJpbmdrYXQpIHsKICAgICAgICBsZXQgc3RhbmRpbmdzID0gdGhpcy5jZXRha0tsYXNlbWVuKCk7CiAgICAgICAgcmV0dXJuIHN0YW5kaW5nc1tub21vclBlcmluZ2thdCAtIDFdWzBdOwogICAgfQp9CgovLyBDb250b2ggcGVuZ2d1bmFhbjoKbGV0IGtsYXNlbWVuID0gbmV3IEtsYXNlbWVuKFsnTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnQXJzZW5hbCddKTsKa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oJ0Fyc2VuYWwnLCAnTGl2ZXJwb29sJywgJzI6MScpOwprbGFzZW1lbi5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdDaGVsc2VhJywgJzE6MScpOwprbGFzZW1lbi5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdBcnNlbmFsJywgJzA6MycpOwprbGFzZW1lbi5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdMaXZlcnBvb2wnLCAnMzoyJyk7CmtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQXJzZW5hbCcsICcyOjInKTsKa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJzA6MCcpOwoKY29uc29sZS5sb2coa2xhc2VtZW4uY2V0YWtLbGFzZW1lbigpKTsKY29uc29sZS5sb2coa2xhc2VtZW4uYW1iaWxQZXJpbmdrYXQoMikpOw==