// Looping sederhana mengalikan dengan angka sebelumnya, hingga angkat terkecil 1
// Sample
// Input totalSum(5)
// Output 5 * 4 * 3 * 2 * 1 = 120

function totalSum (number) {
  // Buat varibel sementara / temporary
  var total;
  // Lakukan perulang sebanyak jumlah angka
  for (var i = number; i >= 1; i--) {
    // Kalikan dan simpan hasilnya ke variabel total
    total *= number;
  }
  // Kembali kan hasilnya dengan melempar variabel total
  return total;
}

console.log(totalSum(5));

// Looping dengan mengalikan dengan angka sebelumnya dengan selisih paramater kedua
// Sample
// Input : totalLompat(12, 5)
// Output : 12 * 7 * 2 = 168

// function totalLompat  (number, dif) {
//   var total;
//   for (var i = 0; i < number; i++) {
//     total *= number;
//   }
//   return total;
// }
function totalLompat (number, dif) {
  // Cek apakah ini angka terakhir / terkecil yang ingin ikut dihitung
  if (number == 1) {
    // Jika kembalikan nilainya
    return 1;
  // Cek kembali, apakah 'number' lebih besar dari dif (pembeda / selisih ke angka selanjutnya)
  } else if (number > dif) {
    // Jika iya, maka terus lakukan rekrusif dengan memanggil fungsinya sendiri
    return number * totalLompat(number - dif, dif);
  } else {
    // Jika tidak, maka balikan angka tersebut, agar menjadi nilai kemabalian pada proses rekrusif terakhir
    return number;
  }
}
console.log(totalLompat(12, 5));

@@ -210,16 +210,68 @@
 mporary%0A
+  // Assign dengan nilai 1, supaya tida menjadi NaN%0A
   var to
@@ -273,16 +273,20 @@
 ar total
+ = 1
 ;%0A  // L
@@ -427,22 +427,17 @@
 otal *= 
-number
+i
 ;%0A  %7D%0A  
@@ -691,19 +691,16 @@
  = 168%0A%0A
-// 
 function
@@ -733,692 +733,377 @@
 ) %7B%0A
-//   var total;%0A//   for (var i = 0; i %3C number; i++) %7B%0A//     total *= number;%0A//   %7D%0A//   return total;%0A// %7D%0Afunction totalLompat (number, dif) %7B%0A  // Cek apakah ini angka terakhir / terkecil yang ingin ikut dihitung%0A  if (number == 1) %7B%0A 
+  // Buat varibel sementara / temporary%0A  // Assign dengan nilai 1, supaya tida menjadi NaN%0A  var total = 1;%0A
   
- 
 // 
-Jika kembalikan nilainya%0A    return 1;%0A  // Cek kembali, apakah 'number' lebih besar dari dif (pembeda / selisih ke angka selanjutnya)%0A  %7D else if (number %3E dif) %7B%0A    // Jika iya, maka terus lakukan rekrusif dengan memanggil fungsinya sendiri%0A    return number * totalLompat(number - dif, dif);%0A  %7D else %7B%0A 
+Lakukan perulang sebanyak jumlah angka dengan selisih sebanyak dif%0A  for (var i = number; i %3E= 1; i -= dif) %7B%0A    // Kalikan dan simpan hasilnya ke variabel total%0A    total *= i;%0A  %7D%0A
   
- 
 // 
-Jika tidak, maka 
+Kem
 bali
+ 
 kan 
-angka tersebut, agar menjadi nilai kemabalian pada proses rekrusif terakhir%0A    return number;%0A  %7D
+hasilnya dengan melempar variabel total%0A  return total;
 %0A%7D%0Ac

Fixing the Monday task: