Program Konversi Desimal ke Biner Rekursif C++
Assalamu'alaikum...
Rekursif merupakan suatu fungsi yang dapat memanggil dirinya sendiri. Berbeda dengan fungsi dan prosedur yang dapat dipanggil oleh fungsi atau prosedur lain, sementara fungsi rekursif dapat memanggil dirinya sendiri.
Banyak sekali contoh-contoh penggunaan fungsi rekursif diantara yaitu menghitung perpangkatan, deret, faktorial dan lainnya. Pada postingan kali ini akan membahas mengenai penerapan fungsi rekursif untuk Konversi Bilangan Desimal ke Biner.
Sebelum masuk ke program yang akan dibuat, mari perhatikan contoh konversi desimal ke biner.
Contoh :
Desimal : 4
Biner : 000000100
Desimal : 10
Biner : 000001010
bilangan 0 sebelum bilangan 1 dapat dihilangkan karena penghilangan angka 0 tidak merubah makna bilangannya.
Misal :
000001010
dapat ditulis : 1010
Sekarang kita akan masuk kepada programnya. Berikut program konversi desimal ke biner :
#include <iostream>
using namespace std;
void biner(int bilangan)
{ //kondisi berhenti
if (bilangan==1){
cout<<1;
return;
}
//pemanggilan rekursif
else {
binner(bilangan/2);
cout <<bilangan%2;
}
}
int main(){
int bilangan;
char pilih;
cout<<"Konversi Desimal ke Biner"<<endl;
do {
cout<<"Masukan Bilangan Desimal : "; cin >> bilangan;
cout<<"Binner : ";
biner(bilangan);
cout<<"\ncoba lagi y/n : "; cin>>pilih;
cout<<endl;
}while (pilih=='y' || pilih == 'Y'); //untuk kembali ke awal
}
Konversi Desimal ke Biner C++ |
Berikut penjelasan alur program tersebut :
misal input desimall 10
biner(10) maka akn masuk ke fungsi biner dan mengeksekusi else kemudian
biner(10/2) maka akan masuk ke fungsi biner lagi dan kembali mengekseksui else kemudian
biner(5/2) maka masuk kembali ke fungsi biner dan mengeksekusi else kemudian
biner (2/2) maka masuk ke fungsi biner dan mengeksekusi if dan mengeluarkan bilangan 1 kemudian di return ke kondisi akhir fungsi yang dieksekusi tadi karena masih ada statement yang belum dikerjakan.
naik ke kondisi akhir tdi biner (2/2) dan mengoutputkan 2 mod 2 = 0 kemudian
naik kekondisi akhir tdi biner (5/2) dan mengoutputkan 5 mod 2 = 1 kemudian
naik kekondisi akhir biner tdi (10/2) dan mengoutpukan 10 mod 2 = 0 kemudian
selesai
sehingga yang ditampilkan dilayar adalah 1010.
Bagaimana? susah bukan untuk dimengerti ? :)
Selanjutnya akan dibahas mengenai contoh rekursif C++ bagian ke 2 yaitu mengenai faktorial.
Semoga bermanfaat. Terimakasih
Post a Comment for "Program Konversi Desimal ke Biner Rekursif C++ "
Post a Comment
Terimakasih