fork download
  1. // Pemenang pertandingan akan mendapatkan 3 poin.
  2. // Apabila kedua klub memiliki skor yang sama, maka kedua klub akan mendapatkan masing-masing 1 poin.
  3. // Poin klub yang kalah tidak akan ditambahkan ataupun dikurangi.
  4.  
  5. class Klasemen {
  6. constructor(data = []) {
  7. this.dataPermainan = [];
  8. this.team = data;
  9. this.hasil = {};
  10.  
  11. for (let i = 0; i < this.team.length; i++) {
  12. this.hasil[this.team[i]] = 0;
  13. }
  14. }
  15.  
  16. catatPermainan(klubKandang, klubTandang, skor) {
  17. this.dataPermainan.push({
  18. klubKandang: klubKandang,
  19. klubTandang: klubTandang,
  20. skor: skor,
  21. });
  22. }
  23.  
  24. cetakKlasemen() {
  25. for (let i = 0; i < this.dataPermainan.length; i++) {
  26. const skor = this.dataPermainan[i].skor.split(":");
  27. if (skor[0] === skor[1]) {
  28. this.hasil[this.dataPermainan[i].klubKandang] += 1;
  29. this.hasil[this.dataPermainan[i].klubTandang] += 1;
  30. }
  31.  
  32.  
  33. if (skor[0] > skor[1]) {
  34. this.hasil[this.dataPermainan[i].klubKandang] += 3;
  35. continue;
  36. }
  37.  
  38. if (skor[0] < skor[1]) {
  39. this.hasil[this.dataPermainan[i].klubTandang] += 3;
  40. continue;
  41. }
  42. }
  43.  
  44. for (let i in this.hasil) {
  45. console.log(`${i} => ${this.hasil[i]}`);
  46. }
  47. }
  48.  
  49. ambilPeringkat(nomorPeringkat) {
  50. const teams = Object.keys(this.hasil);
  51. for (let i = 0; i < teams.length - 1; i++) {
  52. let maxIndex = i;
  53. for (let j = i + 1; j < teams.length; j++) {
  54. if (this.hasil[teams[j]] > this.hasil[teams[maxIndex]]) {
  55. maxIndex = j;
  56. }
  57. }
  58. if (maxIndex !== i) {
  59. [teams[i], teams[maxIndex]] = [teams[maxIndex], teams[i]];
  60. }
  61. }
  62.  
  63. if (nomorPeringkat > teams.length || nomorPeringkat <= 0) {
  64. return "peringkat tidak ada";
  65. }
  66.  
  67. return teams[nomorPeringkat - 1];
  68. }
  69. }
  70.  
  71. const coba = new Klasemen(["Chelsea", "Barca", "Liverpool"]);
  72. coba.catatPermainan("Barca", "Liverpool", "1:1");
  73. coba.catatPermainan("Chelsea", "Liverpool", "1:3");
  74. coba.catatPermainan("Chelsea", "Barca", "2:1");
  75. coba.cetakKlasemen();
  76. console.log(coba.ambilPeringkat(1));
Success #stdin #stdout 0.04s 16800KB
stdin
Standard input is empty
stdout
Chelsea => 3
Barca => 1
Liverpool => 4
Liverpool