fork download
  1. class Klasemen:
  2. def __init__(self, daftar_klub):
  3. # inisialisasi semua poin klub = 0
  4. self.poin_klub = {klub: 0 for klub in daftar_klub}
  5.  
  6. def catatPermainan(self, klubKandang, klubTandang, skor):
  7. skor_kandang, skor_tandang = map(int, skor.split(':'))
  8.  
  9. if skor_kandang > skor_tandang:
  10. self.poin_klub[klubKandang] += 3
  11. elif skor_kandang < skor_tandang:
  12. self.poin_klub[klubTandang] += 3
  13. else:
  14. self.poin_klub[klubKandang] += 1
  15. self.poin_klub[klubTandang] += 1
  16.  
  17. def cetakKlasemen(self):
  18. return sorted(self.poin_klub.items(), key=lambda x: (-x[1], x[0]))
  19.  
  20. def ambilPeringkat(self, nomor):
  21. klasemen = self.cetakKlasemen()
  22. if 1 <= nomor <= len(klasemen):
  23. return klasemen[nomor - 1][0] # ambil nama klub
  24. else:
  25. return None
  26. klasemen = Klasemen(['Liverpool', 'Chelsea', 'Arsenal', 'Persija'])
  27. klasemen.catatPermainan('Arsenal', 'Liverpool', '2:1')
  28. klasemen.catatPermainan('Arsenal', 'Chelsea', '1:1')
  29. klasemen.catatPermainan('Chelsea', 'Arsenal', '0:3')
  30. klasemen.catatPermainan('Liverpool', 'Persija', '1:3')
  31.  
  32. print(klasemen.cetakKlasemen()) #print total poin dari masing2 klub
  33.  
  34. print(klasemen.ambilPeringkat(2)) #print klub peringkat sekian
  35.  
  36.  
Success #stdin #stdout 0.02s 7164KB
stdin
Standard input is empty
stdout
[('Arsenal', 7), ('Persija', 3), ('Chelsea', 1), ('Liverpool', 0)]
Persija