Advertisements
latihan C++

Latihan C++ #46: Konversi Sistem Bilangan

Anak Males – Sistem bilangan merupakan cara untuk merepresentasikan angka menggunakan simbol-simbol tertentu. Kita akan membuat program c++ untuk konversi sistem bilangan.

Sistem bilangan yang paling umum digunakan adalah sistem desimal dengan basis 10, dimana angka direpresentasikan menggunakan simbol-simbol 0-9.

Namun, terdapat pula sistem bilangan lain seperti sistem biner (basis 2), oktal (basis 8), dan heksadesimal (basis 16).

c++ sistem bilangan

Dalam artikel ini, kita akan membahas tentang program konversi sistem bilangan menggunakan bahasa pemrograman C++.

Program ini akan memungkinkan pengguna untuk mengkonversi bilangan dari satu sistem bilangan ke sistem bilangan lainnya, seperti mengubah bilangan desimal menjadi biner atau heksadesimal, dan sebaliknya.

Program ini akan dibuat dengan menggunakan bahasa pemrograman C++, yang merupakan bahasa pemrograman yang cukup populer dan banyak digunakan untuk membuat berbagai jenis program.

Program ini akan menggunakan konsep-konsep dasar bahasa pemrograman seperti input/output, operator, dan struktur kontrol untuk mengkonversi bilangan dari satu sistem bilangan ke sistem bilangan lainnya.

Selanjutnya, program ini akan terdiri dari beberapa fungsi yang masing-masing memiliki tugas tertentu, seperti fungsi untuk mengkonversi bilangan desimal ke biner, bilangan desimal ke oktal, bilangan desimal ke heksadesimal, serta sebaliknya.

Dalam artikel ini, kita akan membahas langkah-langkah membuat program konversi sistem bilangan menggunakan bahasa pemrograman C++.

Diharapkan setelah membaca artikel ini, pembaca dapat memahami konsep dasar dalam membuat program menggunakan bahasa pemrograman C++ serta cara mengkonversi bilangan dari satu sistem bilangan ke sistem bilangan lainnya.

Baca Juga : Latihan C++ #20 : Mencari Bilangan Faktorial

Apa Itu Sistem Bilangan?

Sistem bilangan adalah cara kita menghitung dan merepresentasikan angka dengan menggunakan angka-angka dasar tertentu atau disebut dengan basis. Basis yang paling umum digunakan adalah basis 10 atau desimal, yaitu menggunakan angka 0 sampai 9 untuk merepresentasikan angka. Selain itu, ada juga basis 2 atau biner, basis 8 atau oktal, dan basis 16 atau hexadesimal yang digunakan pada sistem komputer.

Sistem bilangan yang sering digunakan dalam komputer adalah biner dan hexadesimal. Hal ini karena komputer bekerja pada dasarnya dengan sinyal elektronik yang hanya dapat memiliki dua keadaan, yaitu on (1) atau off (0), yang sering disebut dengan bit (binary digit).

Untuk merepresentasikan angka dengan sistem bilangan biner, digunakan angka 0 dan 1. Sementara itu, sistem bilangan hexadesimal digunakan karena lebih mudah digunakan dalam merepresentasikan nilai-nilai warna dan alamat memori dalam komputer.

Baca Juga : Latihan C++ #22 : Program C++ Konvert Huruf Kapital

Jenis-Jenis Sistem Bilangan pada Komputer

Dalam dunia komputer, bilangan menjadi hal yang sangat penting karena digunakan untuk merepresentasikan data atau informasi dalam bentuk digital.

Ada beberapa jenis sistem bilangan yang digunakan dalam dunia komputer yaitu bilangan desimal, hexadesimal, biner, dan oktal. Setiap sistem bilangan memiliki keunikan dan kegunaannya masing-masing.

Desimal

Sistem bilangan desimal atau basis 10 merupakan sistem bilangan yang paling umum digunakan dalam kehidupan sehari-hari.

Basis ini menggunakan 10 angka yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9 untuk merepresentasikan angka.

Bilangan desimal juga dapat digunakan pada komputer, namun lebih umum digunakan pada program aplikasi yang mengharuskan input atau output data dalam bentuk desimal.

Contoh: Angka 45 dalam sistem bilangan desimal diwakili dengan angka 45.

Baca Juga : Belajar C++ #13 : Memahami Konsep Sorting Data di C++

Biner

Sistem bilangan biner atau basis 2 digunakan pada sistem komputer karena hanya memiliki dua angka yaitu 0 dan 1, yang merepresentasikan keadaan mati dan hidup pada sirkuit elektronik.

Sistem bilangan biner digunakan untuk merepresentasikan angka, huruf, dan karakter khusus pada komputer.

Contoh: Angka 45 dalam sistem bilangan biner diwakili dengan angka 101101.

Baca Juga : Latihan C++ #45 : Konversi Suhu

Oktal

Sistem bilangan oktal atau basis 8 menggunakan 8 angka yaitu 0, 1, 2, 3, 4, 5, 6, dan 7 untuk merepresentasikan angka.

Sistem bilangan oktal digunakan dalam pemrograman komputer dan pengaturan hak akses pada sistem operasi.

Contoh: Angka 45 dalam sistem bilangan oktal diwakili dengan angka 55.

Hexadesimal

hexadesimal atau basis 16 menggunakan 16 angka yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F untuk merepresentasikan angka.

Sistem bilangan hexadesimal digunakan untuk merepresentasikan nilai-nilai warna pada tampilan komputer, alamat memori, dan kode karakter dalam pemrograman komputer.

Contoh: Angka 45 dalam sistem bilangan hexadesimal diwakili dengan angka 2D.

Baca Juga : Latihan C++ #26 : Program Mencari Nilai Maximal & Minimal

Program C++ Konversi Bilangan Desimal Ke Bilangan Lainnya

Berikut adalah contoh program C++ untuk mengonversi bilangan desimal menjadi bilangan hexadesimal, biner, dan oktal.

#include <iostream>
#include <string>
#include <stack>
using namespace std;

// fungsi konversi desimal ke hexadesimal
string decToHex(int n) {
    string hex;
    stack<char> s;

    // konversi desimal ke hexadesimal dengan membagi terus menerus dengan 16
    while (n != 0) {
        int remainder = n % 16;
        if (remainder < 10) {
            s.push(remainder + '0');
        } else {
            s.push(remainder - 10 + 'A');
        }
        n /= 16;
    }

    // tambahkan karakter pada stack ke string hex
    while (!s.empty()) {
        hex += s.top();
        s.pop();
    }

    return hex;
}

// fungsi konversi desimal ke biner
string decToBin(int n) {
    string bin;
    stack<char> s;

    // konversi desimal ke biner dengan membagi terus menerus dengan 2
    while (n != 0) {
        s.push(n % 2 + '0');
        n /= 2;
    }

    // tambahkan karakter pada stack ke string bin
    while (!s.empty()) {
        bin += s.top();
        s.pop();
    }

    return bin;
}

// fungsi konversi desimal ke oktal
string decToOct(int n) {
    string oct;
    stack<char> s;

    // konversi desimal ke oktal dengan membagi terus menerus dengan 8
    while (n != 0) {
        s.push(n % 8 + '0');
        n /= 8;
    }

    // tambahkan karakter pada stack ke string oct
    while (!s.empty()) {
        oct += s.top();
        s.pop();
    }

    return oct;
}

int main() {
    int dec;

    cout << "Masukkan bilangan desimal: ";
    cin >> dec;

    string hex = decToHex(dec);
    string bin = decToBin(dec);
    string oct = decToOct(dec);

    cout << dec << " dalam hexadesimal = " << hex << endl;
    cout << dec << " dalam biner = " << bin << endl;
    cout << dec << " dalam oktal = " << oct << endl;

    return 0;
}

Contoh output program:

Masukkan bilangan desimal: 168
168 dalam hexadesimal = A8
168 dalam biner = 10101000
168 dalam oktal = 250

Program di atas menggunakan tiga fungsi yang berbeda untuk konversi bilangan desimal ke bilangan hexadesimal, biner, dan oktal.

Fungsi-fungsi tersebut menggunakan stack untuk menyimpan sisa hasil pembagian saat dilakukan konversi.

Setelah itu, karakter pada stack ditambahkan ke string yang sesuai untuk mendapatkan hasil konversi yang benar.

Program dapat menerima input dari pengguna dan menghasilkan output dalam bentuk string untuk setiap sistem bilangan yang diinginkan.

Baca Juga : Belajar C++ #10 : Memahami Konsep Dasar Array di C++

Program C++ Konversi Bilangan Hexadesimal Ke Bilangan Lainnya

Berikut adalah contoh program C++ untuk mengonversi bilangan hexadesimal menjadi bilangan desimal, biner, dan oktal.

#include <iostream>
#include <string>
#include <cmath>
using namespace std;

// fungsi konversi hexadesimal ke desimal
int hexToDec(string hex) {
    int dec = 0;
    int len = hex.length();

    // konversi hexadesimal ke desimal dengan mengalikan setiap digit dengan pangkat 16 yang sesuai
    for (int i = 0; i < len; i++) {
        char c = hex.at(i);
        if (c >= '0' && c <= '9') {
            dec += (c - '0') * pow(16, len - 1 - i);
        } else if (c >= 'A' && c <= 'F') {
            dec += (c - 'A' + 10) * pow(16, len - 1 - i);
        }
    }

    return dec;
}

// fungsi konversi hexadesimal ke biner
string hexToBin(string hex) {
    int dec = hexToDec(hex);
    string bin;
    int len = 0;

    // hitung panjang string biner yang akan dibuat
    for (int i = dec; i > 0; i /= 2) {
        len++;
    }

    // konversi desimal ke biner dengan membagi terus menerus dengan 2
    for (int i = len - 1; i >= 0; i--) {
        bin += ((dec >> i) & 1) + '0';
    }

    return bin;
}

// fungsi konversi hexadesimal ke oktal
string hexToOct(string hex) {
    int dec = hexToDec(hex);
    string oct;
    int len = 0;

    // hitung panjang string oktal yang akan dibuat
    for (int i = dec; i > 0; i /= 8) {
        len++;
    }

    // konversi desimal ke oktal dengan membagi terus menerus dengan 8
    for (int i = len - 1; i >= 0; i--) {
        oct += ((dec >> (3 * i)) & 7) + '0';
    }

    return oct;
}

int main() {
    string hex;

    cout << "Masukkan bilangan hexadesimal: ";
    cin >> hex;

    int dec = hexToDec(hex);
    string bin = hexToBin(hex);
    string oct = hexToOct(hex);

    cout << hex << " dalam desimal = " << dec << endl;
    cout << hex << " dalam biner = " << bin << endl;
    cout << hex << " dalam oktal = " << oct << endl;

    return 0;
}

Contoh output program:

Masukkan bilangan hexadesimal: A8
A8 dalam desimal = 168
A8 dalam biner = 10101000
A8 dalam oktal = 250

Program di atas menggunakan tiga fungsi yang berbeda untuk konversi bilangan hexadesimal ke bilangan desimal, biner, dan oktal.

Fungsi-fungsi tersebut menggunakan operasi bitwise dan pangkat untuk mengalikan setiap digit dengan nilai yang sesuai dan kemudian mengubahnya ke sistem bilangan yang diinginkan.

Baca Juga: Latihan C++ #44: Membuat Heap Sort

Program C++ Konversi Bilangan Biner Ke Bilangan Lainnya

Berikut adalah contoh program C++ untuk mengonversi bilangan biner menjadi bilangan desimal, hexadesimal, dan oktal.

#include <iostream>
#include <string>
#include <cmath>
using namespace std;

// fungsi konversi bilangan biner ke desimal
int binToDec(string bin) {
    int dec = 0;
    int len = bin.length();

    // konversi bilangan biner ke desimal dengan mengalikan setiap digit dengan pangkat 2 yang sesuai
    for (int i = 0; i < len; i++) {
        if (bin.at(i) == '1') {
            dec += pow(2, len - 1 - i);
        }
    }

    return dec;
}

// fungsi konversi bilangan biner ke hexadesimal
string binToHex(string bin) {
    int dec = binToDec(bin);
    string hex;

    // konversi desimal ke hexadesimal dengan mengkonversi setiap digit desimal ke hexadesimal
    while (dec > 0) {
        int rem = dec % 16;
        if (rem < 10) {
            hex.insert(0, 1, rem + '0');
        } else {
            hex.insert(0, 1, rem - 10 + 'A');
        }
        dec /= 16;
    }

    return hex;
}

// fungsi konversi bilangan biner ke oktal
string binToOct(string bin) {
    int dec = binToDec(bin);
    string oct;

    // konversi desimal ke oktal dengan mengkonversi setiap digit desimal ke oktal
    while (dec > 0) {
        int rem = dec % 8;
        oct.insert(0, 1, rem + '0');
        dec /= 8;
    }

    return oct;
}

int main() {
    string bin;

    cout << "Masukkan bilangan biner: ";
    cin >> bin;

    int dec = binToDec(bin);
    string hex = binToHex(bin);
    string oct = binToOct(bin);

    cout << bin << " dalam desimal = " << dec << endl;
    cout << bin << " dalam hexadesimal = " << hex << endl;
    cout << bin << " dalam oktal = " << oct << endl;

    return 0;
}

Contoh output program:

Masukkan bilangan biner: 10101010
10101010 dalam desimal = 170
10101010 dalam hexadesimal = AA
10101010 dalam oktal = 252

Program di atas menggunakan tiga fungsi yang berbeda untuk konversi bilangan biner ke bilangan desimal, hexadesimal, dan oktal.

Fungsi-fungsi tersebut menggunakan operasi bitwise dan pangkat untuk mengalikan setiap digit dengan nilai yang sesuai dan kemudian mengubahnya ke sistem bilangan yang diinginkan.

Program dapat menerima input dari pengguna dan menghasilkan output dalam bentuk string untuk bilangan desimal, hexadesimal, dan oktal yang sesuai.

Baca Juga: Latihan C++ #42: Membuat Insertion Sort

Program C++ Konversi Bilangan Oktal Ke Bilangan Lainnya

Berikut adalah contoh program C++ untuk mengonversi bilangan oktal menjadi bilangan desimal, hexadesimal, dan biner.

#include <iostream>
#include <string>
#include <cmath>
using namespace std;

// fungsi konversi bilangan oktal ke desimal
int octToDec(string oct) {
    int dec = 0;
    int len = oct.length();

    // konversi bilangan oktal ke desimal dengan mengalikan setiap digit dengan pangkat 8 yang sesuai
    for (int i = 0; i < len; i++) {
        int digit = oct.at(i) - '0';
        dec += digit * pow(8, len - 1 - i);
    }

    return dec;
}

// fungsi konversi bilangan oktal ke hexadesimal
string octToHex(string oct) {
    int dec = octToDec(oct);
    string hex;

    // konversi desimal ke hexadesimal dengan mengkonversi setiap digit desimal ke hexadesimal
    while (dec > 0) {
        int rem = dec % 16;
        if (rem < 10) {
            hex.insert(0, 1, rem + '0');
        } else {
            hex.insert(0, 1, rem - 10 + 'A');
        }
        dec /= 16;
    }

    return hex;
}

// fungsi konversi bilangan oktal ke biner
string octToBin(string oct) {
    int dec = octToDec(oct);
    string bin;

    // konversi desimal ke biner dengan mengkonversi setiap digit desimal ke biner
    while (dec > 0) {
        int rem = dec % 2;
        bin.insert(0, 1, rem + '0');
        dec /= 2;
    }

    return bin;
}

int main() {
    string oct;

    cout << "Masukkan bilangan oktal: ";
    cin >> oct;

    int dec = octToDec(oct);
    string hex = octToHex(oct);
    string bin = octToBin(oct);

    cout << oct << " dalam desimal = " << dec << endl;
    cout << oct << " dalam hexadesimal = " << hex << endl;
    cout << oct << " dalam biner = " << bin << endl;

    return 0;
}

Contoh output program:

Masukkan bilangan oktal: 375
375 dalam desimal = 253
375 dalam hexadesimal = FD
375 dalam biner = 11110101

Program di atas menggunakan tiga fungsi yang berbeda untuk konversi bilangan oktal ke bilangan desimal, hexadesimal, dan biner.

Fungsi-fungsi tersebut menggunakan operasi aritmatika dan pangkat untuk mengalikan setiap digit dengan nilai yang sesuai dan kemudian mengubahnya ke sistem bilangan yang diinginkan.

Program dapat menerima input dari pengguna dan menghasilkan output dalam bentuk string untuk bilangan desimal, hexadesimal, dan biner yang sesuai.

Baca Juga : Latihan C++ #43: Membuat Selection Sort

Penutup

Dalam penutup, dapat disimpulkan bahwa program konversi sistem bilangan menggunakan bahasa pemrograman C++ adalah solusi yang tepat bagi mereka yang ingin mengkonversi bilangan dari satu sistem bilangan ke sistem bilangan lainnya.

Program ini memungkinkan pengguna untuk mengkonversi bilangan desimal ke biner, oktal, dan heksadesimal, serta sebaliknya dengan mudah dan cepat.

Dalam artikel ini, telah dijelaskan langkah-langkah dalam membuat program konversi sistem bilangan menggunakan bahasa pemrograman C++.

Program ini terdiri dari beberapa fungsi yang masing-masing memiliki tugas tertentu, seperti fungsi untuk mengkonversi bilangan desimal ke biner, oktal, dan heksadesimal.

Diharapkan artikel ini dapat bermanfaat bagi pembaca yang ingin mempelajari cara membuat program konversi sistem bilangan menggunakan bahasa pemrograman C++.

Dengan menguasai konsep dasar bahasa pemrograman, pembaca dapat mengembangkan kemampuan dalam membuat program yang lebih kompleks dan sesuai dengan kebutuhan masing-masing.

You may also like...

Popular Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *