fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Program
  6. {
  7. public static void Main(string[] args)
  8. {
  9. Console.WriteLine("=== Program Perhitungan Klasemen ===");
  10.  
  11. List<string> namaKlub = new List<string> { "Arsenal", "Chelsea", "Liverpool" };
  12.  
  13. Klasemen klasemen = new Klasemen(namaKlub);
  14. klasemen.CatatPermainan("Arsenal", "Chelsea", "2:1");
  15. klasemen.CatatPermainan("Arsenal", "Liverpool", "2:1");
  16. klasemen.CatatPermainan("Liverpool", "Chelsea", "1:1");
  17.  
  18. var semuaKlasemen = klasemen.CetakKlasemen();
  19. foreach (var item in semuaKlasemen)
  20. {
  21. Console.WriteLine($"{item.Klub}: {item.Skor} points");
  22. }
  23.  
  24. Console.WriteLine($"{klasemen.AmbilPeringkat(1)}");
  25. }
  26. }
  27.  
  28. public class KlasemenModel
  29. {
  30. public string Klub { get; set; }
  31. public int Skor { get; set; }
  32. }
  33.  
  34. public class Klasemen
  35. {
  36. private List<KlasemenModel> klasemenList;
  37.  
  38. public Klasemen(List<string> namaKlub)
  39. {
  40. klasemenList = namaKlub
  41. .Select(klub => new KlasemenModel { Klub = klub, Skor = 0 })
  42. .ToList();
  43. }
  44.  
  45. public void CatatPermainan(string klubKandang, string klubTandang, string skor)
  46. {
  47. var skorList = skor.Split(':');
  48. int skorKlubKandang = int.Parse(skorList[0]);
  49. int skorKlubTandang = int.Parse(skorList[1]);
  50.  
  51. var klubKandangObj = klasemenList.FirstOrDefault(x => x.Klub == klubKandang);
  52. var klubTandangObj = klasemenList.FirstOrDefault(x => x.Klub == klubTandang);
  53.  
  54. if (klubKandangObj == null || klubTandangObj == null)
  55. {
  56. Console.WriteLine("Klub tidak ditemukan dalam klasemen.");
  57. return;
  58. }
  59.  
  60. if (skorKlubKandang > skorKlubTandang)
  61. {
  62. klubKandangObj.Skor += 3;
  63. }
  64. else if (skorKlubKandang < skorKlubTandang)
  65. {
  66. klubTandangObj.Skor += 3;
  67. }
  68. else
  69. {
  70. klubKandangObj.Skor += 1;
  71. klubTandangObj.Skor += 1;
  72. }
  73. }
  74.  
  75. public List<KlasemenModel> CetakKlasemen()
  76. {
  77. return klasemenList.OrderByDescending(x => x.Skor).ToList();
  78. }
  79.  
  80. public string AmbilPeringkat(int nomorPeringkat)
  81. {
  82. var sortedList = klasemenList.OrderByDescending(x => x.Skor).ToList();
  83. if (nomorPeringkat < 0 || nomorPeringkat >= sortedList.Count)
  84. {
  85. return "Nomor peringkat di luar jangkauan.";
  86. }
  87. return sortedList[nomorPeringkat - 1].Klub;
  88. }
  89. }
  90.  
Success #stdin #stdout 0.06s 30028KB
stdin
Standard input is empty
stdout
=== Program Perhitungan Klasemen ===
Arsenal: 6 points
Chelsea: 1 points
Liverpool: 1 points
Arsenal