Source Code Konversi 4 Basis Bilangan Biner Desimal Oktal Dan Hexadesimal Dengan Bahasa Pemrograman C++

Di Era yang begitu canggih ini bahasa pemrograman menjadi salah satu bahasa yang sangat diminati, ada banyak sekali bahasa pemrograman yang sampai saat ini, semakin kedepan bahasa pemograman pun juga akan menjadi lebih canggih lagi, bahasa pemrograman saat ini saja sudah lebih mudah daripada bahasa pemrograman pada beberapa tahun yang lalu, bahasa pemrograman yang dahulu sangat sulit sekali untuk dipelajari sekarang menjadi sangat mudah dipelajari karena bahasa pemrograman itu sendiri.

Dari tadi ngomongin bahasa pemrograman mulu lalu apa itu bahasa pemrograman?

Mungkin saya akan share pada lain kesempatan :).
Langsung saja tanpa panjang lebar silahkan di copas codenya dan dipelajari lagi :)
Klik Sekali Aja Pada Source Codenya Maka Semua Codenya Akan Terseleksi

Source Code Konversi Bilangan Semua Basis

// Source code original by : Dodot Nanda Trihanggoro
// http://www.globein.id
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <cmath>
#include <bits/stdc++.h>
#define cls system("cls");
#define istirahat getch();
#define keluar system("exit");
#define blue system("color 9f");
struct konversiBilangan{
    int long long bindes,binoct,binhex;
    int long long desbin,desoct,deshex;
    int long long octbin,octdes,octhex;
    int long long hexbin,hexdes,hexoct;
    int long long in;
    char ic;
};

konversiBilangan kb;
using namespace std;
void PkonversiJam();
void PkonversiUkur();
void menus();
void PKBil();
void reset(){
    int bindes=0,binoct=0,binhex=0;
    int desbin=0,desoct=0,deshex=0;
    int octbin=0,octdes=0,octhex=0;
    int hexbin=0,hexdes=0,hexoct=0;
    int in=0;

}
int konversi(float n,int m){
    cls
    float detik=3600,menit=60,x=0,z=0,Mjam=1/60,Jdetik=1/3600;
    if(m==0){
        x=n*menit;
        z=n*detik;
        printf("Maka konversi %2.2f Jam = %2.2f Menit dan %2.2.f Detik",n,x,z);
    }else if(m==1){
        x=n*Mjam;
        z=n*menit;
        printf("Maka konversi %2.2f Menit = %2.2f Jam dan %2.2.f Detik",n,x,z);
    }else if(m==2){
        x=n*Jdetik;
        z=n*Mjam;
        printf("Maka konversi %2.2f Detik = %2.2f Jam dan %2.2.f Menit",n,x,z);
    }
    istirahat cls
    PkonversiJam();
}

void PkonversiJam (){
    cls
    char pil;
    int m;
    float n;
    printf("\n\tMenus : \n\t\t1. Konversi Jam ke menit dan detik \n\t\t2. Konversi  Menit ke jam dan detik \n\t\t3. Konversi detik ke Jam dan Menit \n\t\t4. Menu Utama \n\t\t5. Keluar program\n\tMasukan Pilihan : ");
    scanf("%s",&pil);
    switch(pil){
        case '1':
            cout<<"Masukan jumlah dalam hitungan jam : ";
            cin>>n;
            m=0;
            konversi(n,m);
            break;
        case '2':
            cout<<"Masukan jumlah dalam hitungan menit : ";
            cin>>n;
            m=1;
            konversi(n,m);
            break;
        case '3':
            cout<<"Masukan jumlah dalam hitungan detik : ";
            cin>>n;
            m=2;
            konversi(n,m);
            break;
        default : cout<<"Pilihan Error!";
    }
}
int konversiukur(float n, float z){
    cls
    float km,hm,dkm,m,dm,cm,mm;
    float a=1000000,b=100000,c=10000,d=1000,e=100,f=10;
    if(z==0){
        km=n;
        hm=n*f;
        dkm=n*e;
        m=n*d;
        dm=n*c;
        cm=n*b;
        mm=n*a;
        printf("Maka konversi %2.2f KM = %2.2f hm, %2.2.f dkm %2.2f m, %2.2.f dm %2.2f cm, %2.2.f mm",km,hm,dkm,m,dm,cm,mm);
    }else if(z==1){
        km=n/f;
        hm=n;
        dkm=n*f;
        m=n*e;
        dm=n*d;
        cm=n*c;
        mm=n*b;
        printf("Maka konversi %2.2f HM = %2.2f km, %2.2.f dkm %2.2f m, %2.2.f dm %2.2f cm, %2.2.f mm",hm,km,dkm,m,dm,cm,mm);
    }else if(z==2){
        km=n/e;
        hm=n/f;
        dkm=n;
        m=n*f;
        dm=n*e;
        cm=n*d;
        mm=n*c;
        printf("Maka konversi %2.2f dkm = %2.2f km, %2.2.f hm %2.2f m, %2.2.f dm %2.2f cm, %2.2.f mm",dkm,km,hm,m,dm,cm,mm);
    }else if(z==3){
        km=n/d;
        hm=n/e;
        dkm=n/f;
        m=n;
        dm=n*f;
        cm=n*e;
        mm=n*d;
        printf("Maka konversi %2.2f m = %2.2f km, %2.2.f hm %2.2f dkm, %2.2.f dm %2.2f cm, %2.2.f mm",m,km,hm,dkm,dm,cm,mm);
    }else if(z==4){
        km=n/c;
        hm=n/d;
        dkm=n/e;
        m=n/f;
        dm=n;
        cm=n*f;
        mm=n*e;
        printf("Maka konversi %2.2f dm = %2.2f km, %2.2.f hm %2.2f dkm, %2.2.f m %2.2f cm, %2.2.f mm",dm,km,hm,dkm,m,cm,mm);
    }else if(z==5){
        km=n/b;
        hm=n/c;
        dkm=n/d;
        m=n/e;
        dm=n/f;
        cm=n;
        mm=n*f;
        printf("Maka konversi %2.2f cm = %2.2f km, %2.2.f hm %2.2f dkm, %2.2.f m %2.2f dm, %2.2.f mm",cm,km,hm,dkm,m,dm,mm);
    }else if(z==6){
        km=n/a;
        hm=n/b;
        dkm=n/c;
        m=n/d;
        dm=n/e;
        cm=n/f;
        mm=n;
        printf("Maka konversi %2.2f mm = %2.2f km, %2.2.f hm %2.2f dkm, %2.2.f m %2.2f dm, %2.2.f cm",mm,km,hm,dkm,m,dm,cm);
    }else {
        printf("Error!");
        istirahat cls
    }
    istirahat cls
    PkonversiUkur();
   
}
void PkonversiUkur () {
    cls
    char pil;
    int m;
    float n;
    printf("\n\tMenus : \n\t\t1. Konversi KM menjadi hm, dkm, m, dm, cm, mm \n\t\t2. Konversi HM menjadi km, dkm, m, dm, cm, mm \n\t\t3. Konversi DKM menjadi hm, km, m, dm, cm, mm \n\t\t4. Konversi M menjadi hm, dkm, km, dm, cm, mm \n\t\t5. Konversi DM menjadi hm, dkm, m, km, cm, mm \n\t\t6. Konversi CM menjadi hm, dkm, m, dm, km, mm \n\t\t7. Konversi MM menjadi hm, dkm, m, dm, cm, km \n\t\t8. Keluar program\n\tMasukan Pilihan : ");
    scanf("%s",&pil);
    switch(pil){
        case '1':
            cout<<"Masukan nilai dalam KM : ";
            cin>>n;
            m=0;
            konversiukur(n,m);
            break;
        case '2':
            cout<<"Masukan jumlah dalam hitungan menit : ";
            cin>>n;
            m=1;
            konversi(n,m);
            break;
        case '3':
            cout<<"Masukan jumlah dalam hitungan detik : ";
            cin>>n;
            m=2;
            konversi(n,m);
            break;
        case '4':
            cout<<"Masukan jumlah dalam hitungan jam : ";
            cin>>n;
            m=0;
            konversi(n,m);
            break;
        case '5':
            cout<<"Masukan jumlah dalam hitungan menit : ";
            cin>>n;
            m=1;
            konversi(n,m);
            break;
        case '6':
            cout<<"Masukan jumlah dalam hitungan detik : ";
            cin>>n;
            m=2;
            konversi(n,m);
            break;
        case '7':
            cout<<"Masukan jumlah dalam hitungan jam : ";
            cin>>n;
            m=0;
            konversi(n,m);
            break;
        case '8':
            cout<<"Masukan jumlah dalam hitungan menit : ";
            cin>>n;
            m=1;
            konversi(n,m);
            break;
        default : cout<<"Pilihan Error!";
    }


}
void dectobin(int long long input){   
    int long long m=0,z=0,i=0,counter=0,c[100];
    for(int x=0; x<input;){
        ++counter;
        c[counter] = input % 2;
        input = input / 2;
    }
    while(counter>0){
        z=c[i+1]*pow(10,i);
    //    cout<<"\nz "<<z;
        m+=z;
    //    cout<<"\nm "<<m;
        i++;
        --counter;
    }
    kb.desbin=m;
    kb.octbin=kb.desbin;
    kb.hexbin=kb.desbin;
}

void dectohex(int input){
    int counter=0,c[100];
    for(int x=0; x<input;){
        ++counter;
        c[counter] = input % 16;
        input = input / 16;
    }
    while(counter>0){
        if(c[counter]==15){
        cout<<"F";      
        }else if(c[counter]==14){
            cout<<"E";
        }else if(c[counter]==13){
            cout<<"D";
        }else if(c[counter]==12){
            cout<<"C";
        }else if(c[counter]==11){
        cout<<"B";
        }else if(c[counter]==10){
            cout<<"A";
        }else{
            cout<<c[counter];
        }
        --counter;
    }
    cout<<"\n";
}

void dectooc(int long long input){    
    int long long i=0,counter=0,c[100],z;
    for(int x=0; x<input;){
        ++counter;
        c[counter] = input % 8;
        input = input / 8;
    }
   
    while(counter>=0){
        z=c[i]*pow(10,i-1);
        kb.desoct+=z;
        i++;
        --counter;
    }
//    cout<<"kb : "<<kb.desoct;

    kb.hexoct=kb.desoct;
}
void bintodec(long long input){
    long long counter=0,c=0;
    int i=0;
    while(input!=0){
        c = input%10;
        input /=10;
        counter+= c * pow(2,i);
        i++;
    }
    kb.bindes=counter;
    cout<<"\n";

}
void bintooct(long long input){
    long long counter=0,c=0,z=0;
    int i=0,y=0,x=0;
    while(input!=0){
        i = 0;
        x = 0;
        c = 0;
        while(i<3){
            x =    input%10;
            if(x==1){
            c += pow(2,i);               
            }
            input /=10;
            i++;
        }

        if(y>0){
            c*=pow(10,y);
        }
        kb.binoct += c;
        y++;
    }
    cout<<"\n";

}
void bintohex(long long input){
    long long counter=0,cb=0,z=0,c[100];
    int i=0,y=0,x=0;
    while(input!=0){
        cb = input%10;
        input /=10;
        z+= cb * pow(2,i);
        i++;
    }
   
    for(x=0; x<z;){
        ++counter;
        c[counter] = z % 16;
        z = z / 16;
    }
    //cout<<" bin to hex nya : ";
    while(counter>0){
        if(c[counter]==15){
        cout<<"F";      
        }else if(c[counter]==14){
            cout<<"E";
        }else if(c[counter]==13){
            cout<<"D";
        }else if(c[counter]==12){
            cout<<"C";
        }else if(c[counter]==11){
        cout<<"B";
        }else if(c[counter]==10){
            cout<<"A";
        }else{
            cout<<c[counter];
        }
        --counter;
    }
    cout<<"\n";

   
}

void cekangka(int input){
    int x, z = input;
    while(z!=0){
        x = z%10;
        z /= 10;
        if(x==1){
            continue;
        }else
        if(x>1&&z<10){
            printf("Error!, Masukan Bilangan Biner 1 / 0");
            istirahat
            PKBil();
        }
    }

}
void cekangkaoct(int long long input){
    int long long x, z = input;
    while(z!=0){
        x = z%10;
        z /= 10;
        if(x<8){
            continue;
        }else{
            printf("Error!, Bilangan 8 dan 9 bukan bilangan oktal");
            istirahat
            PKBil();
        }
    }

}
void octtodes(int long long input){
   
    int long long g=0,f=0,x,counter=0,c[100],cx=0,h[100];
    for(int x=0; x<input;){
        ++counter;
        c[counter] = input % 10;
    //    cout<<"\n c coun "<<c[counter];
        h[counter] = c[counter]*pow(8,g);
    //    cout<<" h coun "<<h[counter]<<"\n";
        input = input / 10;
    //    cout<<" | counter "<<counter;
        g++;
    }
    f=1;
    while(counter>0){
    //cout<<" | cx "<<cx;
        cx+=h[f];
        --counter;
        f++;
    }
    //cout<<cx;
    kb.octdes=cx;
//    cout<<kb.octdes;
    dectobin(kb.octdes);
}

void hextoall(string input){
    int long long c[100],x[100],h[100],cx;
    int count=0;

    int n = input.length();

    char r[n+1];

    strcpy(r, input.c_str());
   
    while(count<input.length()){
        if(r[count]=='0'){
            c[count] = r[count] - '0';
        }else if(r[count]=='1'){
            c[count] = r[count] - '0';
        }else if(r[count]=='2'){
            c[count] = r[count] - '0';
        }else if(r[count]=='3'){
            c[count] = r[count] - '0';
        }else if(r[count]=='4'){
            c[count] = r[count] - '0';
        }else if(r[count]=='5'){
            c[count] = r[count] - '0';
        }else if(r[count]=='6'){
            c[count] = r[count] - '0';
        }else if(r[count]=='7'){
            c[count] = r[count] - '0';
        }else if(r[count]=='8'){
            c[count] = r[count] - '0';
        }else if(r[count]=='9'){
            c[count] = r[count] - '0';
        }else if(r[count]=='A'){
            c[count] = r[count] - '7';
        }else if(r[count]=='B'){
            c[count] = r[count] - '7';
        }else if(r[count]=='C'){
            c[count] = r[count] - '7';
        }else if(r[count]=='D'){
            c[count] = r[count] - '7';
        }else if(r[count]=='E'){
            c[count] = r[count] - '7';
        }else if(r[count]=='F'){
            c[count] = r[count] - '7';
        }else{
            printf("Error!, Inputan Error !");
            printf("\nInputan Harus Menggunakan Huruf KAPITAL !");
            istirahat
            PKBil();
            count++;
            continue;
        }
//        cout<<"\nNilai x : "<<c[count];
        count++;
    }
    int f=0;
    while(count>0){
        count--;
        h[count] = c[count]*pow(16,f);
        cx += h[count];
        f++;

    }
//    cout<<"\nNilai CX : "<<cx;
    kb.hexdes=cx;
    dectobin(kb.hexdes);
    dectooc(kb.hexdes);

}
void sync(){
     system( "start http://www.globein.id" );
}void cekhex(string input){
     int count=0;
    int n = input.length();

    char r[n+1];

    strcpy(r, input.c_str());
   
    while(count<input.length()){
        if(r[count]=='0'){
            count++;
        }else if(r[count]=='1'){
            count++;
        }else if(r[count]=='2'){
            count++;
        }else if(r[count]=='3'){
            count++;
        }else if(r[count]=='4'){
            count++;
        }else if(r[count]=='5'){
            count++;
        }else if(r[count]=='6'){
            count++;
        }else if(r[count]=='7'){
            count++;
        }else if(r[count]=='8'){
            count++;
        }else if(r[count]=='9'){
            count++;
        }else if(r[count]=='A'){
            count++;
        }else if(r[count]=='B'){
            count++;
        }else if(r[count]=='C'){
            count++;
        }else if(r[count]=='D'){
            count++;
        }else if(r[count]=='E'){
            count++;
        }else if(r[count]=='F'){
            count++;
        }else{
            printf("Error!, Inputan Error !");
            printf("\nInputan Harus Menggunakan Huruf KAPITAL !");
            istirahat
            PKBil();
        }
        count++;
    }
   
}
void PKBil(){
    cls
    reset();
    char pil;
    string xz;
    int input=0;
    printf("\n\t\t\tProgram Konversi Bilangan\n\tMenus : \n\t\t1. Konversi Dari Bilangan Biner \n\t\t2. Konversi Dari Bilangan Decimal  \n\t\t3. Konversi Dari Bilangan Oktal \n\t\t4. Konversi Dari Bilangan Hexadecimal \n\t\t5. Menu Utama\n\tMasukan Pilihan : ");
    scanf("%s",&pil);
    switch(pil){
        case '1':
            reset();
            cls
            printf("Masukan Bilangan Biner : ");
            scanf("%d",&kb.in);
            cekangka(kb.in);
            bintodec(kb.in);
            bintooct(kb.in);
            printf("Maka Nilai Konversinya Desimal : %d , Oktal : %d , Hexadesimal : ",kb.bindes,kb.binoct);
            bintohex(kb.in);
            istirahat
            PKBil();
            break;
        case '2':
            reset();
            cls
            printf("Masukan Bilangan Desimal : ");
            scanf("%d",&kb.in);
            dectobin(kb.in);
            dectooc(kb.in);
            printf("\nMaka Nilai Konversinya Biner : %d , Oktal : %d , Hexadesimal : ",kb.desbin,kb.desoct);
            dectohex(kb.in);
            istirahat
            PKBil();
            break;
        case '3':
            reset();
            cls
            printf("Masukan Bilangan Oktal : ");
            scanf("%d",&kb.in);
            cekangkaoct(kb.in);
            octtodes(kb.in);
            printf("\nMaka Nilai Konversinya Biner : %d , Desimal : %d , Hexadesimal : ",kb.octbin,kb.octdes);
            dectohex(kb.octdes);
            istirahat
            PKBil();
            break;
        case '4':
            reset();
            cls
            cout<<"MAX 8 Bit";
            cout<<"Masukan Bilangan Hexadesimal : ";
            cin>>xz;
            //cekhex(xz);
            hextoall(xz);
            printf("\nMaka Nilai Konversinya Biner : %d , Desimal : %d , Oktal : %d\n",kb.hexbin,kb.hexdes,kb.hexoct);
            istirahat
            PKBil();
             break;
        case '5':
            cls menus();
            break;
        default :
            cls
            cout<<"Pilihan Error!";
            PKBil();
    }
    istirahat
    cls
    menus();
}

void menus(){
    cls
    char pil;
    float n;
    printf("\nMenus : \n1. Konversi Waktu Jam ke menit dan detik \n2. Konversi Ukuran km,hm,dkm,m,dm,cm,mm  \n3. Konversi Bilangan Biner, Decimal, Oktal, Hexadecimal \n4. Keluar Program\nMasukan Pilihan : ");
    scanf("%c",&pil);
    switch(pil){
        case '1':
            cls
            PkonversiJam();
            break;
        case '2':
            cls
            PkonversiUkur();
            break;
        case '3':
            cls
            PKBil();
            istirahat
            break;
        case '4':
            cls keluar
            break;
        default :
            cls
            cout<<"Pilihan Error!";
            menus();
    }
}
int main(){
    blue
    cls
    sync();
    menus();
//    string xx;
//    cout<<"Masukan HEX : ";
//    scanf("%s",&xx);
//    cin>>xx;
//    hextoall(xx);
//    printf("\nMaka Nilai Konversinya Biner : %d , Desimal : %d , Oktal : %d\n",kb.hexbin,kb.hexdes,kb.hexoct);
    istirahat
}


Thanks for coming on my House.. I'll Pleasure if You give a comment for my House ..

Berlangganan update artikel terbaru via email:

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel