Konversi Bilangan Bulat Menjadi Bilangan Scientific

Assalamualaikum wr.wb
Hello Brokz

Oke kali ini saya akan membuat postingan tentang konversi bilangan dari bilangan bulat menjadi bilangan scientific, contohnya saat kita menginputkan angka 12,3 maka akan menjadi 1,23E1, semoga bermanfaat bagi kita semua.

Analisis :
a = 12,3
scientific = 1,23E1

Algoritma scientific

Deklarasi :
a : real
b : integer
scientific : real
konversi : real

Deskripsi :
read (a)
scientific <-- if(a>=10000) then
write (b=4,scientific=a/10000)

else if(a>=1000) then
write (b=3,scientific=a/1000)

else if(a>=100) then
write (b=2,scientific=a/100)

else if(a>=10) then
write (b=1,scientific=a/10)

else (a>=1) then
write (b=0,scientific=a/1)

Seperti biasa sebelum kita membuat program, kita buat terlebih dahulu algoritma urutan penyelesaian masalahnya dengan menggunakan flowchart agar lebih mudah saat membuat program dengan bahasa C++ nantinya, oke langsung saja ke flowchartnya.

 

Berdasarkan flowchart diatas, bisa kita lihat, pertama kita masukkan dulu bilangan bulat, lalu kita konversi ke bilangan scientificnya dengan cara diatas bisa dilihat disana ada banyak kondisinya, oke langsung saja kita ke programnya, disini saya membuat dengan operator overload untuk input dan outputnya, dan overload hanya bisa digunakan dengan menggunakan class, dan untuk proses percabangannya kita perlu membuat function didalam class untuk prosesnya. Oke ini dia codingannya.

#include<iostream>

using namespace std;

class bilangan{
    friend istream& operator >> (istream&, bilangan&);
    friend ostream& operator << (ostream&, bilangan&);
    private:
        float scientific, a;
        int b;
    public:
        void konversi(){
            if(a>=10000){
                b=4;
                scientific =a/10000;
            }else if(a>=1000){
                b=3;
                scientific =a/1000;
            }else if(a>=100){
                b=2;
                scientific =a/100;
            }else if(a>=10){
                b=1;
                scientific =a/10;
            }else if(a>=1){
                b=0;
                scientific =a/1;
            }else{
                cout<<"Anda salah memasukkan bilangan bulat"<<endl;
            }
        }
};

istream& operator >>(istream& in, bilangan& data){
    cout<<"Masukkan bilangan bulat 4 digit : ";
    in>>data.a;
    return in;
}

ostream& operator <<(ostream& out, bilangan& data){
    out<<"Bilangan bulat : "<<data.a<<endl;
    out<<"Scientificnya : "<<data.scientific<<"e"<<data.b<<endl;
    return out;
}

int main(){
    bilangan x;
    cin>>x;
    x.konversi();
    cout<<x;
    return 0;

Komentar