Cara menggunakan binary to decimal python

Hai semua, kali ini saya akan membuat program untuk mengkonversi bilangan decimal ke tiga bilangan lain yaitu binari, octal dan hexadecimal. Program yang akan kita buat menggunakan bahasa python serta beberapa library tambahan seperti tabulate.

Nah sebelum kita melangkah lebih jauh lagi, pertama kita harus mengetahui dasar cara mengkonversi bilangan.


Decimal ke Binner


Untuk mengkonversi bilangan Decimal ke dalam bilangan Biner yang paling mudah adalah membagi bilangan desimal ke basis bilangan biner yaitu 2, hasilnya nanti akan dibulatkan kebawah dan sisa hasil pembagian tersebut disimpan atau dicatat untuk nantinya akan diurutkan.

Cara menggunakan binary to decimal python
Decimal ke Biner

Lakukan pembagian tersebut sampai bilangan mencapai nilai 0, kemudian sisa pembagian yang sudah kita catat, diurutkan dari yang paling akhir hingga yang paling awal. Hasil pembagian tersebut lah yang menjadi bilangan biner.


Decimal ke Octal


Kemudian untuk mengkonversi bilangan Decimal ke dalam bilangan Octal adalah membagi bilangan desimal ke basis bilangan octal yaitu 8, hasilnya nanti akan dibulatkan kebawah dan sisa hasil pembagian tersebut disimpan atau dicatat untuk nantinya diurutkan.

Cara menggunakan binary to decimal python
Decimal ke Octal

Lakukan pembagian tersebut sampai bilangan mencapai nilai 0, kemudian sisa pembagian yang sudah kita catat, diurutkan dari yang paling akhir hingga yang paling awal. Hasil pembagian tersebut lah yang menjadi bilangan octal.


Decimal ke Hexadecimal


Terakhir mengkonversi bilangan Decimal ke dalam bilangan Hexadecimal , cara seperti kedua bilangan diatas, namun yang bikin unik, hexadecimal memiliki sampai 16 bilangan.

Cara menggunakan binary to decimal python
Decimal ke Hexadecimal

Sehingga untuk mencakupinya, bilangan 10 - 15 diganti menjadi huruf A - F.


Lets Code


Program yang kita buat memiliki satu input yaitu bilangan decimal dan memiliki 3 output sekaligus beserta cara konversinya. Kurang lebih bentuk programmnya seperti ini.

Cara menggunakan binary to decimal python
Program Konversi Decimal

Pertama kita install dulu library dibutuhkan, yaitu tabulate yang berguna untuk membuat output dalam terminal terformat seperti table.

pip install tabulate

Setelah selesai proses installasi tabulate, kita import kedalam kode kita. Serta itertools yang nanti nya berguna untuk mengkombinasikan beberapa list menjadi satu.

from tabulate import tabulate
import itertools as it

Selanjutnya kita membuat fungsi konversi. Fungsi ini bertujuan untuk mengenerate sebuah list tahap - tahap konversi yang nanti nya akan kita masukkan ke fungsi tabulate untuk outputnya.

def genConverter(angka, pembilang):
    result = []
    hasilAngka = ""
    loop = True
    while loop:
        if angka >= pembilang:
            result.append(angka)
            sisa = angka % pembilang
            angka = angka // pembilang
            if sisa > 9:
                huruf = libChar(sisa)
                hasilAngka += huruf
                sisa = "{0} = {1}".format(sisa, huruf)
            else:
                hasilAngka += str(sisa)
            divid = "{0}------  {1}".format(pembilang, sisa)
            result.append(divid)
        else:
            if angka > 9:
                angka = libChar(angka)
            hasilAngka += str(angka)
            result.append(angka)
            loop = False
            break
        result.append("")

    hasilAngka = "".join(reversed(hasilAngka)) #reversed

    return (result, hasilAngka)

Fungsi ini memiliki 2 parameter yaitu angka dan pembilang. Parmeter angka untuk angka yang akan kita kalkulasi, pembilang bilangan yang akan menjadi pembagi untuk menentukan kita akan mengkonversi bilangan apa.

Tidak lupa untuk membuat fungsi untuk mengkonversi bilangan di atas 9 ke huruf A - F.

def libChar(angka):
    if angka == 10:
        return "A"
    elif angka == 11:
        return "B"
    elif angka == 12:
        return "C"
    elif angka == 13:
        return "D"
    elif angka == 14:
        return "E"
    elif angka == 15:
        return "F"
    elif angka == 16:
        return "G"

Lalu setelah semua fungsi dibuat kita panggil fungsi

from tabulate import tabulate
import itertools as it
1 dengan parameter bilangan
from tabulate import tabulate
import itertools as it
2 untuk biner,
from tabulate import tabulate
import itertools as it
3 untuk octal dan
from tabulate import tabulate
import itertools as it
4 untuk hexadecimal.

angka = int(input("Masukkan bilangan untuk dikonversi : "))

biner, hasilBiner = genConverter(angka, 2)
octal, hasilOctal = genConverter(angka, 8)
hexa, hasilHexa = genConverter(angka, 16)

Terakhir kita combine ketiga variabel

from tabulate import tabulate
import itertools as it
5 ,
from tabulate import tabulate
import itertools as it
6 dan
from tabulate import tabulate
import itertools as it
7 ke dalam satu variabel
from tabulate import tabulate
import itertools as it
8 untuk nantinya kita tampilkan dalam bentuk table.