fork download
  1. class Klasemen:
  2. def __init__(self):
  3. self.poin_klub = {}
  4.  
  5. def catatPermainan(self, klubKandang, klubTandang, skor):
  6. # Pisahkan skor menjadi angka
  7. skor_kandang, skor_tandang = map(int, skor.split('-'))
  8.  
  9. # Pastikan klub ada dalam dict
  10. if klubKandang not in self.poin_klub:
  11. self.poin_klub[klubKandang] = 0
  12. if klubTandang not in self.poin_klub:
  13. self.poin_klub[klubTandang] = 0
  14.  
  15. # Hitung poin
  16. if skor_kandang > skor_tandang:
  17. self.poin_klub[klubKandang] += 3
  18. elif skor_kandang < skor_tandang:
  19. self.poin_klub[klubTandang] += 3
  20. else:
  21. self.poin_klub[klubKandang] += 1
  22. self.poin_klub[klubTandang] += 1
  23.  
  24. def cetakKlasemen(self):
  25.  
  26. return sorted(self.poin_klub.items(), key=lambda x: (-x[1], x[0]))
  27.  
  28. def ambilPeringkat(self, nomorPeringkat):
  29. klasemen = self.cetakKlasemen()
  30. if 1 <= nomorPeringkat <= len(klasemen):
  31. return klasemen[nomorPeringkat - 1][0]
  32. else:
  33. return "Peringkat tidak tersedia"
  34.  
  35.  
  36. # Contoh Penggunaan:
  37. k = Klasemen()
  38. k.catatPermainan("Persija", "Persib", "2-1")
  39. k.catatPermainan("Persebaya", "Persija", "1-1")
  40. k.catatPermainan("Persib", "Persebaya", "0-3")
  41.  
  42. print("Klasemen:")
  43. for klub, poin in k.cetakKlasemen():
  44. print(f"{klub}: {poin} poin")
  45.  
  46. print("\nPeringkat ke-1:", k.ambilPeringkat(1))
  47. print("Peringkat ke-2:", k.ambilPeringkat(2))
  48. print("Peringkat ke-3:", k.ambilPeringkat(3))
  49.  
Success #stdin #stdout 0.09s 14216KB
stdin
Standard input is empty
stdout
Klasemen:
Persebaya: 4 poin
Persija: 4 poin
Persib: 0 poin

Peringkat ke-1: Persebaya
Peringkat ke-2: Persija
Peringkat ke-3: Persib