class Klasemen:
def __init__(self):
self.poin_klub = {}
def catatPermainan(self, klubKandang, klubTandang, skor):
# Pisahkan skor menjadi angka
skor_kandang, skor_tandang = map(int, skor.split('-'))
# Pastikan klub ada dalam dict
if klubKandang not in self.poin_klub:
self.poin_klub[klubKandang] = 0
if klubTandang not in self.poin_klub:
self.poin_klub[klubTandang] = 0
# Hitung poin
if skor_kandang > skor_tandang:
self.poin_klub[klubKandang] += 3
elif skor_kandang < skor_tandang:
self.poin_klub[klubTandang] += 3
else:
self.poin_klub[klubKandang] += 1
self.poin_klub[klubTandang] += 1
def cetakKlasemen(self):
return sorted(self.poin_klub.items(), key=lambda x: (-x[1], x[0]))
def ambilPeringkat(self, nomorPeringkat):
klasemen = self.cetakKlasemen()
if 1 <= nomorPeringkat <= len(klasemen):
return klasemen[nomorPeringkat - 1][0]
else:
return "Peringkat tidak tersedia"
# Contoh Penggunaan:
k = Klasemen()
k.catatPermainan("Persija", "Persib", "2-1")
k.catatPermainan("Persebaya", "Persija", "1-1")
k.catatPermainan("Persib", "Persebaya", "0-3")
print("Klasemen:")
for klub, poin in k.cetakKlasemen():
print(f"{klub}: {poin} poin")
print("\nPeringkat ke-1:", k.ambilPeringkat(1))
print("Peringkat ke-2:", k.ambilPeringkat(2))
print("Peringkat ke-3:", k.ambilPeringkat(3))
Y2xhc3MgS2xhc2VtZW46CiAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgc2VsZi5wb2luX2tsdWIgPSB7fQoKICAgIGRlZiBjYXRhdFBlcm1haW5hbihzZWxmLCBrbHViS2FuZGFuZywga2x1YlRhbmRhbmcsIHNrb3IpOgogICAgICAgICMgUGlzYWhrYW4gc2tvciBtZW5qYWRpIGFuZ2thCiAgICAgICAgc2tvcl9rYW5kYW5nLCBza29yX3RhbmRhbmcgPSBtYXAoaW50LCBza29yLnNwbGl0KCctJykpCgogICAgICAgICMgUGFzdGlrYW4ga2x1YiBhZGEgZGFsYW0gZGljdAogICAgICAgIGlmIGtsdWJLYW5kYW5nIG5vdCBpbiBzZWxmLnBvaW5fa2x1YjoKICAgICAgICAgICAgc2VsZi5wb2luX2tsdWJba2x1YkthbmRhbmddID0gMAogICAgICAgIGlmIGtsdWJUYW5kYW5nIG5vdCBpbiBzZWxmLnBvaW5fa2x1YjoKICAgICAgICAgICAgc2VsZi5wb2luX2tsdWJba2x1YlRhbmRhbmddID0gMAoKICAgICAgICAjIEhpdHVuZyBwb2luCiAgICAgICAgaWYgc2tvcl9rYW5kYW5nID4gc2tvcl90YW5kYW5nOgogICAgICAgICAgICBzZWxmLnBvaW5fa2x1YltrbHViS2FuZGFuZ10gKz0gMwogICAgICAgIGVsaWYgc2tvcl9rYW5kYW5nIDwgc2tvcl90YW5kYW5nOgogICAgICAgICAgICBzZWxmLnBvaW5fa2x1YltrbHViVGFuZGFuZ10gKz0gMwogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYucG9pbl9rbHViW2tsdWJLYW5kYW5nXSArPSAxCiAgICAgICAgICAgIHNlbGYucG9pbl9rbHViW2tsdWJUYW5kYW5nXSArPSAxCgogICAgZGVmIGNldGFrS2xhc2VtZW4oc2VsZik6CiAgICAgICAgCiAgICAgICAgcmV0dXJuIHNvcnRlZChzZWxmLnBvaW5fa2x1Yi5pdGVtcygpLCBrZXk9bGFtYmRhIHg6ICgteFsxXSwgeFswXSkpCgogICAgZGVmIGFtYmlsUGVyaW5na2F0KHNlbGYsIG5vbW9yUGVyaW5na2F0KToKICAgICAgICBrbGFzZW1lbiA9IHNlbGYuY2V0YWtLbGFzZW1lbigpCiAgICAgICAgaWYgMSA8PSBub21vclBlcmluZ2thdCA8PSBsZW4oa2xhc2VtZW4pOgogICAgICAgICAgICByZXR1cm4ga2xhc2VtZW5bbm9tb3JQZXJpbmdrYXQgLSAxXVswXQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiAiUGVyaW5na2F0IHRpZGFrIHRlcnNlZGlhIgoKCiMgQ29udG9oIFBlbmdndW5hYW46CmsgPSBLbGFzZW1lbigpCmsuY2F0YXRQZXJtYWluYW4oIlBlcnNpamEiLCAiUGVyc2liIiwgIjItMSIpCmsuY2F0YXRQZXJtYWluYW4oIlBlcnNlYmF5YSIsICJQZXJzaWphIiwgIjEtMSIpCmsuY2F0YXRQZXJtYWluYW4oIlBlcnNpYiIsICJQZXJzZWJheWEiLCAiMC0zIikKCnByaW50KCJLbGFzZW1lbjoiKQpmb3Iga2x1YiwgcG9pbiBpbiBrLmNldGFrS2xhc2VtZW4oKToKICAgIHByaW50KGYie2tsdWJ9OiB7cG9pbn0gcG9pbiIpCgpwcmludCgiXG5QZXJpbmdrYXQga2UtMToiLCBrLmFtYmlsUGVyaW5na2F0KDEpKQpwcmludCgiUGVyaW5na2F0IGtlLTI6Iiwgay5hbWJpbFBlcmluZ2thdCgyKSkKcHJpbnQoIlBlcmluZ2thdCBrZS0zOiIsIGsuYW1iaWxQZXJpbmdrYXQoMykpCg==