fork download
  1. class Klasemen:
  2.  
  3. def __init__(self, daftarTim: list[str]) -> None:
  4. self.daftarTim: list[str] = daftarTim
  5. self.hasilKlasemen: dict = {}
  6. for tim in self.daftarTim:
  7. self.hasilKlasemen.update({f"{tim}":0})
  8.  
  9. def catatPermainan(self, homeTeam: str, awayTeam: str, score: str):
  10. if (self.daftarTim.count(homeTeam) == 0 and self.daftarTim.count(awayTeam) == 0):
  11. print("Ada tim yang tidak terdaftar dalam data")
  12. return
  13. formatted_score = score.split(":")
  14. try:
  15. homeScore = int(formatted_score[0])
  16. awayScore = int(formatted_score[1])
  17. if (homeScore < awayScore):
  18. self.hasilKlasemen[awayTeam] += 3
  19. elif (homeScore > awayScore):
  20. self.hasilKlasemen[homeTeam] += 3
  21. else:
  22. self.hasilKlasemen[homeTeam] += 1
  23. self.hasilKlasemen[awayTeam] += 1
  24. except Exception as e:
  25. print("Format score tidak sesuai")
  26.  
  27. def cetakKlasemen(self):
  28. hasil = []
  29. hasilSementara = dict(sorted(self.hasilKlasemen.items(), key=lambda tim:tim[1], reverse=True))
  30. for tim in hasilSementara:
  31. hasil.append({tim : hasilSementara[tim]})
  32. return hasil
  33.  
  34. def ambilPeringkat(self, peringkat: int)-> str:
  35. hasilSementara = sorted(self.hasilKlasemen.items(), key=lambda tim:tim[1], reverse=True)
  36. return hasilSementara[peringkat-1][0]
  37.  
  38.  
  39.  
  40. if __name__ == "__main__":
  41. klasemen = Klasemen(['Liverpool', 'Chelsea', 'Arsenal'])
  42.  
  43. klasemen.catatPermainan('Arsenal', 'Liverpool', '2:1')
  44. klasemen.catatPermainan('Arsenal', 'Chelsea', '1:1')
  45. klasemen.catatPermainan('Chelsea', 'Arsenal', '0:3')
  46. klasemen.catatPermainan('Chelsea', 'Liverpool', '3:2')
  47. klasemen.catatPermainan('Liverpool', 'Arsenal', '2:2')
  48. klasemen.catatPermainan('Liverpool', 'Chelsea', '0:0')
  49.  
  50. print(klasemen.cetakKlasemen())
  51.  
  52. print(klasemen.ambilPeringkat(2))
Success #stdin #stdout 0.04s 9932KB
stdin
Standard input is empty
stdout
[{'Arsenal': 8}, {'Chelsea': 5}, {'Liverpool': 2}]
Chelsea