fork download
  1. class Klasemen:
  2. def __init__(self, daftar_klub):
  3. self.poin = {klub: 0 for klub in daftar_klub}
  4.  
  5. def catatPermainan(self, klub_home, klub_away, skor):
  6. skor_home, skor_away = map(int, skor.split(":"))
  7.  
  8. if klub_home not in self.poin or klub_away not in self.poin:
  9. raise ValueError("Klub tidak ada")
  10.  
  11. if skor_home > skor_away:
  12. self.poin[klub_home] += 3
  13. elif skor_away > skor_home:
  14. self.poin[klub_away] += 3
  15. else:
  16. self.poin[klub_home] += 1
  17. self.poin[klub_away] += 1
  18.  
  19. def cetakKlasemen(self):
  20. klasemen_sorted = sorted(
  21. self.poin.items(), key=lambda item: (-item[1], item[0])
  22. )
  23. return ", ".join(f"{klub} => {poin}" for klub, poin in klasemen_sorted)
  24.  
  25. def ambilPeringkat(self, no_peringkat):
  26. klasemen_sorted = sorted(self.poin.items(),
  27. key=lambda item: (-item[1], item[0]))
  28. if 1 <= no_peringkat <= len(klasemen_sorted):
  29. return klasemen_sorted[no_peringkat - 1][0]
  30. else:
  31. return None
  32.  
  33. klasemen = Klasemen(['Liverpool', 'Chelsea', 'Arsenal'])
  34.  
  35. klasemen.catatPermainan('Arsenal', 'Liverpool', '2:1')
  36. klasemen.catatPermainan('Arsenal', 'Chelsea', '1:1')
  37. klasemen.catatPermainan('Chelsea', 'Arsenal', '0:3')
  38. klasemen.catatPermainan('Chelsea', 'Liverpool', '3:2')
  39. klasemen.catatPermainan('Liverpool', 'Arsenal', '2:2')
  40. klasemen.catatPermainan('Liverpool', 'Chelsea', '0:0')
  41.  
  42. print(klasemen.cetakKlasemen())
  43.  
  44. print(klasemen.ambilPeringkat(1))
  45. print(klasemen.ambilPeringkat(2))
  46. print(klasemen.ambilPeringkat(3))
Success #stdin #stdout 0.13s 14128KB
stdin
Standard input is empty
stdout
Arsenal => 8, Chelsea => 5, Liverpool => 2
Arsenal
Chelsea
Liverpool