Latihan kode program 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.
Tips Membuat Kode Program Menghitung Faktorial
Soal ini melatih pemahaman terkait logika matematika dan konsep perulangan (looping). Berikut tutorial pendahuluan yang bisa diikuti:
- Pengertian Variabel dalam Bahasa C++
- Tipe Data Integer Bahasa C++
- Jenis-jenis Operator Aritmatika Bahasa C++
- Perulangan FOR Bahasa C++
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 C++ Menghitung Faktorial
Berikut salah satu solusi dari soal menghitung faktorial menggunakan bahasa pemrograman C++:
#include <iostream> using namespace std; int main() { cout << "## Program C++ Hitung Faktorial ##" << endl; cout << "===================================" << endl; cout << endl; int angka,hasil,i; cout << "Input angka: "; cin >> angka; hasil = 1; for(i=1;i<=angka;i++) { hasil = hasil * i; } cout << angka << "! = " << hasil; cout << endl; return 0; }
Hasil kode program (1):
## Program C++ Hitung Faktorial ## =================================== Input angka: 4 4! = 24
Hasil kode program (2):
## Program C++ Hitung Faktorial ## =================================== Input angka: 8 8! = 40320
Dalam kode program ini, variabel angka akan menampung angka yang diinput oleh user. Proses pembacaan dilakukan di baris 14 dengan perintah cin >> 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 cout di baris 20.
Kode Program 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 cout << " 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 <iostream> using namespace std; int main() { cout << "## Program C++ Hitung Faktorial ##" << endl; cout << "===================================" << endl; cout << endl; int angka,hasil,i; cout << "Input angka: "; cin >> angka; cout << angka <<"! = "; hasil = 1; for(i=1;i<=angka;i++) { hasil = hasil * i; // untuk menampilkan angka cout << i; if(i != angka) { cout << " * "; } } cout << " = " << hasil; cout << endl; return 0; }
Tambahan kode program ada di baris 23-26. Dalam setiap iterasi, perintah cout << 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:
Dengan ini, tampilan kode program menghitung faktorial menjadi lebih lengkap.
Memperbesar Jangkauan Tipe Data Integer
Sebagai tambahan terakhir, hasil perhitungan faktorial bisa bertambah dengan sangat cepat. Jika kita mencari 13! atau lebih tinggi, hasilnya tidak pas lagi. Ini karena tipe data integer di C++ hanya bisa menampung hingga 2.147.483.647.
Salah satu solusi, bisa dengan cara mengganti int menjadi long long (betul, 2 kali long). Ini akan membuat angka yang bisa ditampung hingga 9.223.372.036.854.775.807. Silahkan modifikasi perintah deklarasi menjadi sebagai berikut:
long long angka,hasil,i;
Sekarang angka yang bisa ditampung menjadi jauh lebih besar. Namun tipe data long long bisa saja tidak didukung oleh compiler C++ yang anda gunakan (untuk praktek ini saya memakai Code::Block).
Demikian kode program menghitung faktorial menggunakan bahasa pemrograman C++. Semoga bisa bermanfaat.