Beranda
javascript
Programming
Tutorial
Cara Membuat Faktorial dengan JavaScript

Menghitung faktorial adalah salah satu operasi matematika dasar yang sering digunakan dalam berbagai aplikasi pemrograman. Faktorial dari suatu bilangan adalah hasil perkalian semua bilangan bulat positif dari 1 hingga bilangan tersebut. Misalnya, faktorial dari 5 (ditulis sebagai 5!) adalah 5 × 4 × 3 × 2 × 1 = 120. Dalam artikel ini, kita akan membahas cara membuat faktorial menggunakan JavaScript, dari pendekatan dasar hingga teknik yang lebih canggih.

1. Menghitung Faktorial Menggunakan Fungsi Rekursif

Fungsi rekursif adalah metode yang sering digunakan untuk menghitung faktorial. Konsep dasar dari rekursi adalah fungsi yang memanggil dirinya sendiri dengan nilai yang lebih kecil hingga mencapai kondisi dasar.

Langkah-langkah:

  1. Definisikan Fungsi Rekursif:
    • Fungsi rekursif untuk menghitung faktorial dapat didefinisikan seperti ini:
      function factorialRecursive(n) {
          if (n === 0 || n === 1) {
              return 1;
          }
          return n * factorialRecursive(n - 1);
      }
      
    • Di sini, kondisi dasar adalah jika n adalah 0 atau 1, maka faktorialnya adalah 1. Jika tidak, fungsi memanggil dirinya sendiri dengan nilai 1.
  2. Contoh Penggunaan:
    console.log(factorialRecursive(5)); // Output: 120
    

2. Menghitung Faktorial Menggunakan Fungsi Iteratif

Pendekatan iteratif menggunakan loop untuk menghitung faktorial. Ini adalah metode yang lebih efisien dalam hal penggunaan memori dibandingkan dengan rekursi.

Langkah-langkah:

  1. Definisikan Fungsi Iteratif:
    • Fungsi iteratif untuk menghitung faktorial dapat didefinisikan seperti ini:
      function factorialIterative(n) {
          let result = 1;
          for (let i = 1; i <= n; i++) {
              result *= i;
          }
          return result;
      }
      
    • Fungsi ini menggunakan loop for untuk mengalikan nilai result dengan setiap bilangan dari 1 hingga n.
  2. Contoh Penggunaan:
    console.log(factorialIterative(5)); // Output: 120
    

3. Menghitung Faktorial Menggunakan Fungsi reduce

Metode ini memanfaatkan fungsi reduce dari array JavaScript untuk menghitung faktorial dengan pendekatan fungsional.

Langkah-langkah:

  1. Definisikan Fungsi reduce:

    • Fungsi reduce dapat digunakan seperti ini:
      function factorialReduce(n) {
          return Array.from({ length: n }, (_, i) => i + 1)
                      .reduce((acc, val) => acc * val, 1);
      }
      
    • Di sini, kita membuat array dari 1 hingga n, lalu menggunakan reduce untuk menghitung faktorial dengan mengalikan semua elemen array.
  2. Contoh Penggunaan:
    console.log(factorialReduce(5)); // Output: 120
    

4. Menghitung Faktorial dengan BigInt (Untuk Bilangan Besar)

Jika Anda perlu menghitung faktorial dari bilangan yang sangat besar, menggunakan BigInt dapat mencegah masalah overflow yang mungkin terjadi dengan angka biasa.

Langkah-langkah:

  1. Definisikan Fungsi dengan BigInt:

    • Fungsi faktorial dengan BigInt dapat didefinisikan seperti ini:
      function factorialBigInt(n) {
          let result = BigInt(1);
          for (let i = 1; i <= n; i++) {
              result *= BigInt(i);
          }
          return result;
      }
      
    • Di sini, kita menggunakan BigInt untuk menangani angka besar tanpa kehilangan presisi.
  2. Contoh Penggunaan:
    console.log(factorialBigInt(20).toString()); // Output: 2432902008176640000
    

Kesimpulan

Menghitung faktorial dengan JavaScript bisa dilakukan dengan berbagai cara, dari menggunakan fungsi rekursif dan iteratif hingga teknik fungsional dengan reduce dan menggunakan BigInt untuk bilangan besar. Pilihan metode tergantung pada kebutuhan spesifik aplikasi Anda dan ukuran bilangan yang akan dihitung.

Penulis blog

TUKANG KETIK
TUKANG KETIK
Programming is 10% writing code, and 90% understanding why it's not working. Coding is trial & error.

Tidak ada komentar

Tolong Ketikannya di jaga dan gunakan bahasa yang sopan. Terima kasih
Atau Boleh request juga artikel apa yang ingin saya bahas ditulisan saya (tapi ini kalau saya bisa dan waktunya ada) maklum saya juga kerja.