class Klasemen:
def __init__(self, daftar_klub):
self.poin = {klub: 0 for klub in daftar_klub}
def catatPermainan(self, klub_home, klub_away, skor):
skor_home, skor_away = map(int, skor.split(":"))
if klub_home not in self.poin or klub_away not in self.poin:
raise ValueError("Klub tidak ada")
if skor_home > skor_away:
self.poin[klub_home] += 3
elif skor_away > skor_home:
self.poin[klub_away] += 3
else:
self.poin[klub_home] += 1
self.poin[klub_away] += 1
def cetakKlasemen(self):
klasemen_sorted = sorted(
self.poin.items(), key=lambda item: (-item[1], item[0])
)
return ", ".join(f"{klub} => {poin}" for klub, poin in klasemen_sorted)
def ambilPeringkat(self, no_peringkat):
klasemen_sorted = sorted(self.poin.items(),
key=lambda item: (-item[1], item[0]))
if 1 <= no_peringkat <= len(klasemen_sorted):
return klasemen_sorted[no_peringkat - 1][0]
else:
return None
klasemen = 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(klasemen.cetakKlasemen())
print(klasemen.ambilPeringkat(1))
print(klasemen.ambilPeringkat(2))
print(klasemen.ambilPeringkat(3))
Y2xhc3MgS2xhc2VtZW46CglkZWYgX19pbml0X18oc2VsZiwgZGFmdGFyX2tsdWIpOgoJCXNlbGYucG9pbiA9IHtrbHViOiAwIGZvciBrbHViIGluIGRhZnRhcl9rbHVifQoJCQoJZGVmIGNhdGF0UGVybWFpbmFuKHNlbGYsIGtsdWJfaG9tZSwga2x1Yl9hd2F5LCBza29yKToKCQlza29yX2hvbWUsIHNrb3JfYXdheSA9IG1hcChpbnQsIHNrb3Iuc3BsaXQoIjoiKSkKCQkKCQlpZiBrbHViX2hvbWUgbm90IGluIHNlbGYucG9pbiBvciBrbHViX2F3YXkgbm90IGluIHNlbGYucG9pbjoKCQkJcmFpc2UgVmFsdWVFcnJvcigiS2x1YiB0aWRhayBhZGEiKQoJCQoJCWlmIHNrb3JfaG9tZSA+IHNrb3JfYXdheToKCQkJc2VsZi5wb2luW2tsdWJfaG9tZV0gKz0gMwoJCWVsaWYgc2tvcl9hd2F5ID4gc2tvcl9ob21lOgoJCQlzZWxmLnBvaW5ba2x1Yl9hd2F5XSArPSAzCgkJZWxzZToKCQkJc2VsZi5wb2luW2tsdWJfaG9tZV0gKz0gMQoJCQlzZWxmLnBvaW5ba2x1Yl9hd2F5XSArPSAxCgkJCQoJZGVmIGNldGFrS2xhc2VtZW4oc2VsZik6CgkJa2xhc2VtZW5fc29ydGVkID0gc29ydGVkKAoJCQlzZWxmLnBvaW4uaXRlbXMoKSwga2V5PWxhbWJkYSBpdGVtOiAoLWl0ZW1bMV0sIGl0ZW1bMF0pCgkJCSkKCQlyZXR1cm4gIiwgIi5qb2luKGYie2tsdWJ9ID0+IHtwb2lufSIgZm9yIGtsdWIsIHBvaW4gaW4ga2xhc2VtZW5fc29ydGVkKQoKCWRlZiBhbWJpbFBlcmluZ2thdChzZWxmLCBub19wZXJpbmdrYXQpOgoJCWtsYXNlbWVuX3NvcnRlZCA9IHNvcnRlZChzZWxmLnBvaW4uaXRlbXMoKSwKCQkJa2V5PWxhbWJkYSBpdGVtOiAoLWl0ZW1bMV0sIGl0ZW1bMF0pKQoJCWlmIDEgPD0gbm9fcGVyaW5na2F0IDw9IGxlbihrbGFzZW1lbl9zb3J0ZWQpOgoJCQlyZXR1cm4ga2xhc2VtZW5fc29ydGVkW25vX3BlcmluZ2thdCAtIDFdWzBdCgkJZWxzZToKCQkJcmV0dXJuIE5vbmUKCQkKa2xhc2VtZW4gPSBLbGFzZW1lbihbJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJ0Fyc2VuYWwnXSkKCmtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCdBcnNlbmFsJywgJ0xpdmVycG9vbCcsICcyOjEnKQprbGFzZW1lbi5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdDaGVsc2VhJywgJzE6MScpCmtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCdDaGVsc2VhJywgJ0Fyc2VuYWwnLCAnMDozJykKa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oJ0NoZWxzZWEnLCAnTGl2ZXJwb29sJywgJzM6MicpCmtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQXJzZW5hbCcsICcyOjInKQprbGFzZW1lbi5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnMDowJykKCnByaW50KGtsYXNlbWVuLmNldGFrS2xhc2VtZW4oKSkKCnByaW50KGtsYXNlbWVuLmFtYmlsUGVyaW5na2F0KDEpKQpwcmludChrbGFzZW1lbi5hbWJpbFBlcmluZ2thdCgyKSkKcHJpbnQoa2xhc2VtZW4uYW1iaWxQZXJpbmdrYXQoMykp