using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main(string[] args) { Console.WriteLine("=== Program Perhitungan Klasemen ==="); List namaKlub = new List { "Arsenal", "Chelsea", "Liverpool" }; Klasemen klasemen = new Klasemen(namaKlub); klasemen.CatatPermainan("Arsenal", "Chelsea", "2:1"); klasemen.CatatPermainan("Arsenal", "Liverpool", "2:1"); klasemen.CatatPermainan("Liverpool", "Chelsea", "1:1"); var semuaKlasemen = klasemen.CetakKlasemen(); foreach (var item in semuaKlasemen) { Console.WriteLine($"{item.Klub}: {item.Skor} points"); } Console.WriteLine($"{klasemen.AmbilPeringkat(1)}"); } } public class KlasemenModel { public string Klub { get; set; } public int Skor { get; set; } } public class Klasemen { private List klasemenList; public Klasemen(List namaKlub) { klasemenList = namaKlub .Select(klub => new KlasemenModel { Klub = klub, Skor = 0 }) .ToList(); } public void CatatPermainan(string klubKandang, string klubTandang, string skor) { var skorList = skor.Split(':'); int skorKlubKandang = int.Parse(skorList[0]); int skorKlubTandang = int.Parse(skorList[1]); var klubKandangObj = klasemenList.FirstOrDefault(x => x.Klub == klubKandang); var klubTandangObj = klasemenList.FirstOrDefault(x => x.Klub == klubTandang); if (klubKandangObj == null || klubTandangObj == null) { Console.WriteLine("Klub tidak ditemukan dalam klasemen."); return; } if (skorKlubKandang > skorKlubTandang) { klubKandangObj.Skor += 3; } else if (skorKlubKandang < skorKlubTandang) { klubTandangObj.Skor += 3; } else { klubKandangObj.Skor += 1; klubTandangObj.Skor += 1; } } public List CetakKlasemen() { return klasemenList.OrderByDescending(x => x.Skor).ToList(); } public string AmbilPeringkat(int nomorPeringkat) { var sortedList = klasemenList.OrderByDescending(x => x.Skor).ToList(); if (nomorPeringkat < 0 || nomorPeringkat >= sortedList.Count) { return "Nomor peringkat di luar jangkauan."; } return sortedList[nomorPeringkat - 1].Klub; } }