fork download
  1. class Klasemen:
  2. def __init__(self, klub_list):
  3. # Inisialisasi klub dengan poin awal 0
  4. self.poin = {klub: 0 for klub in klub_list}
  5.  
  6. def catat_permainan(self, klub_kandang, klub_tandang, skor):
  7. # Memisahkan skor menjadi gol kandang dan gol tandang
  8. gol_kandang, gol_tandang = map(int, skor.split(':'))
  9.  
  10. if gol_kandang > gol_tandang:
  11. # Klub kandang menang
  12. self.poin[klub_kandang] += 3
  13. elif gol_kandang < gol_tandang:
  14. # Klub tandang menang
  15. self.poin[klub_tandang] += 3
  16. else:
  17. # Seri
  18. self.poin[klub_kandang] += 1
  19. self.poin[klub_tandang] += 1
  20.  
  21. def cetak_klasemen(self):
  22. # Urutkan klub berdasarkan poin (desc) dan alfabet jika poin sama
  23. return dict(sorted(self.poin.items(), key=lambda x: (-x[1], x[0])))
  24.  
  25. def ambil_peringkat(self, nomor_peringkat):
  26. # Ambil daftar klub berdasarkan peringkat
  27. klasemen = self.cetak_klasemen()
  28. klub_list = list(klasemen.keys())
  29. # Kembalikan nama klub pada peringkat yang diminta (1-based index)
  30. return klub_list[nomor_peringkat - 1] if 0 < nomor_peringkat <= len(klub_list) else None
  31.  
  32.  
  33. # Contoh penggunaan
  34. klasemen = Klasemen(['Liverpool', 'Chelsea', 'Arsenal'])
  35. klasemen.catat_permainan('Arsenal', 'Liverpool', '2:1')
  36. klasemen.catat_permainan('Arsenal', 'Chelsea', '1:1')
  37. klasemen.catat_permainan('Chelsea', 'Arsenal', '0:3')
  38. klasemen.catat_permainan('Chelsea', 'Liverpool', '3:2')
  39. klasemen.catat_permainan('Liverpool', 'Arsenal', '2:2')
  40. klasemen.catat_permainan('Liverpool', 'Chelsea', '0:0')
  41.  
  42. # Cetak klasemen
  43. print(klasemen.cetak_klasemen()) # Output: {'Arsenal': 8, 'Chelsea': 5, 'Liverpool': 2}
  44. # Ambil peringkat ke-2
  45. print(klasemen.ambil_peringkat(2)) # Output: 'Chelsea'
  46.  
Success #stdin #stdout 0.03s 9760KB
stdin
Standard input is empty
stdout
{'Arsenal': 8, 'Chelsea': 5, 'Liverpool': 2}
Chelsea