Latihan Kode Program Bahasa C: Cara Menghitung Faktorial

Latihan kode program bahasa C kali ini akan membahas cara menghitung nilai faktorial. Materi ini berhubungan dengan logika matematika serta konsep perulangan.


Soal Menghitung Faktorial

Buatlah kode program C yang menerima satu inputan angka. Kode program akan mencari nilai faktorial dari angka tersebut dan menampilkan hasilnya.

Bonus: Buat juga versi yang menampilkan angka perkalian, bukan hasilnya saja.

Berikut hasil yang di inginkan:

## Program Bahasa C Menghitung Faktorial ##
===========================================

Input angka: 6
6! = 720

Berikut hasil yang di inginkan (bonus soal):

## Program Bahasa C Menghitung Faktorial ##
===========================================

Input angka: 10
10! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 = 3628800

Tips Membuat Kode Program Menghitung Faktorial

Soal ini melatih pemahaman terkait logika matematika dan konsep perulangan (looping). Berikut tutorial pendahuluan yang bisa diikuti:

Dalam matematika, faktorial adalah hasil perkalian menaik, dan ditulis dengan tanda seru " ! ". Sebagai contoh, 4 faktorial ditulis dengan 4!, dan nilainya adalah 1 * 2 * 3 * 4 = 24, atau 7 faktorial ditulis dengan 7! = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040.

Untuk membuat kode program ini kita perlu sebuah perulangan for. Dalam setiap iterasi, simpan hasil perkalian variabel counter yang dibuat menaik.

Silahkan anda coba sebentar membuat kode program ini.


Kode Program Bahasa C Menghitung Faktorial

Berikut salah satu solusi dari soal menghitung faktorial menggunakan bahasa pemrograman C:

#include <stdio.h>

int main(void)
{
  printf("## Program Bahasa C Menghitung Faktorial ## \n");
  printf("=========================================== \n\n");

  int angka,hasil,i;

  printf("Input angka: ");
  scanf("%d",&angka);

  hasil = 1;
  for(i=1; i<=angka; i++) {
    hasil = hasil * i;
  }
  printf("%d! = %d \n",angka, hasil);

  return 0;
}

Latihan Program Bahasa C - Cara Menghitung Faktorial

Dalam kode program ini, variabel angka akan menampung angka yang diinput oleh user. Proses pembacaan dilakukan di baris 11 dengan perintah scanf("%d",&angka).

Kemudian terdapat perulangan for mulai dari i = 1 hingga i <= angka. Dalam setiap iterasi, nilai i akan naik 1 angka dengan perintah increment i++, serta variabel hasil dipakai untuk menampung operasi hasil * i.

Setelah perulangan, variabel hasil akan berisi jumlah perkalian dari 1 * 2 * 3 * dst. Variabel ini kemudian ditampilkan dengan perintah printf di baris 25.


Kode Program Bahasa C Menghitung Faktorial (plus Angka)

Untuk bonus soal, kita harus menampilkan angka hasil perkalian, yakni 1 * 2 * 3 * dst.

Sekilas ini tampak mudah karena tinggal menambah satu perintah printf("%d * ",i)  ke dalam perulangan. Namun terdapat sedikit masalah karena di angka terakhir, tanda perkalian " * " akan selalu tampil. Bagaimana caranya agar di perulangan terakhir tidak perlu tampil tanda perkalian? kita butuh bantuan kondisi if:

#include <stdio.h>

int main(void)
{
  printf("## Program Bahasa C Menghitung Faktorial ## \n");
  printf("=========================================== \n\n");

  int angka,hasil,i;

  printf("Input angka: ");
  scanf("%d",&angka);

  printf("%d! = ",angka);

  hasil = 1;
  for(i=1; i<=angka; i++) {
    hasil = hasil * i;

    // untuk menampilkan angka
    printf("%d",i);
    if(i != angka) {
      printf (" * ");
    }
  }
  printf(" = %d \n",hasil);

  return 0;
}

Tambahan kode program ada di baris 20-23. Dalam setiap iterasi, perintah printf("%d",i) akan selalu dijalankan. Akan tetapi untuk tanda bintang / kali, hanya dijalankan jika memenuhi kondisi if(i != angka). Kondisi ini akan bernilai true selain di perulangan terakhir.

Dengan cara tersebut, tanda bintang tidak akan tampil di akhir. Berikut tampilan kode program:

Latihan Kode Program Bahasa C - Cara Menghitung Faktorial

Latihan Kode Program Bahasa C - Cara Menghitung Faktorial dengan angka

Dengan ini, tampilan kode program menghitung faktorial menjadi lebih lengkap. Demikian kode program menghitung faktorial menggunakan bahasa pemrograman C. Semoga bisa bermanfaat.

Add Comment