Cara menggunakan binary to hex python

Terkadang, Kita mungkin perlu melakukan konversi antara tipe bawaan. Ada beberapa fungsi bawaan untuk melakukan konversi dari satu tipe data ke yang lain. Ini beberapa fungsi yang digunakan untuk mengkonversi :

int(x) : mengkonversi objek x ke integer
long(x) : mengkonversi objek x ke long integer

# float
print(‘integer dari 123.45 =’, int(123.45))
# string
print(‘int(“123”) =’, int(‘123’))
# basis biner (basis 2)
print(‘integer dari biner 1010 =’, int(‘1010’, 2))
# basis oktal (basis 8)
print(‘Integer dari oktal 12 =’, int(‘12’, 8))
# basis heksadesimal (basis 16)
print(‘Integer dari heksadesimal 3B=’, int(‘3B’, 16))

float(x) : mengkonversi nilai string x ke bilangan desimal/pecahan

# argumen integer 
print(float(10))
# argumen float
print(float(11.22))
# argumen string
print(float("-13.33"))
# float dengan tanda spasi
print(float(" -24.45\n"))
# string bukan bilangan
print(float("abc"))

complex(real [,imag]) : Membuat bilangan kompleks

z = complex(3, 3)
print(z)
z = complex(2)
print(z)

str(x) : Mengkonversi objek x ke string

print(str(12))
b = bytes('pythnindo', encoding='utf-8')
print(str(b, encoding='ascii', errors='ignore'))

repr(x) : Mengkonversi nilai objek x ke string expressi

class Person: 
name = 'Ali'
def __repr__(self):
return repr(self.name)
repr(Person())

eval(str) : Mengevaluasi string dan mengembalikan nilai objeknya

x = 1 
print(eval('x + 1'))

tuple(s) : mengkonversi objek menjadi tuple

# tuple dari list
t2 = tuple([1, 3, 5])
print(t2)

list(s) : membuat list data

# list string
vokal = 'aiueo'
print(list(vokal))
# list dari tuple
vokal = ('a', 'i', 'u', 'e', 'o')
print(list(vokal) )
# list dari dictionary
vokal = {'a', 'i', 'u', 'e', 'o'}
print(list(vokal))

set(s) : membuat set

# string
print(set('Python'))
# tuple
print(set(('a', 'i', 'u', 'e', 'o')))
# list
print(set(['a', 'b', 'c', 'd', 'e']))

dict(d) : membuat dictonary

# dict hanya dengan argumen kata kunci 
numbers = dict(x=5, y=0)
print('numbers =', numbers)
# dict menggunakan iterable
numbers1 = dict([('x', 5), ('y', -5)])
print('numbers1 =', numbers1)
# dict menggunakan mapping
numbers2 = dict({'x':4, 'y':5})
print('numbers2 =', numbers2)

frozenset(s) : mengkonversi menjadi objek set yang tidak bisa diubah (immutable)

# tuple huruf vokal
vokal = ('a', 'i', 'u', 'e', 'o')
f_set = frozenset(vokal)
print('frozensetnya adalah:', f_set)

chr(x) : mengkonversi object integer menjadi karakter.

print(chr(65)) 
print(chr(97))
print(chr(1239))

ord(x) : mengkonversi object 1 karakter menjadi integer.

print('Bilangan integer dari huruf "a" =',ord('a'))
print('Bilangan integer dari huruf "b" =',ord('b'))
print('Bilangan integer dari huruf "c" =',ord('c'))
print('Bilangan integer dari huruf "x" =',ord('x'))
print('Bilangan integer dari huruf "y" =',ord('y'))
print('Bilangan integer dari huruf "z" =',ord('x'))

hex(x) : mengkonversi object integer menjadi bilangan hexadesimal.

number = 123
print('123 dalam hexadecimal adalah:', hex(number))
number = -10
print('10 dalam hexadecimal adalah:', hex(number))
number = 10.5
print('10.5 dalam hexadecimal adalah:', float.hex(number))

oct(x) : mengkonversi object integer menjadi bilangan octal.

# bilangan desimal
print('oct(10) =', oct(10))
# bilangan biner
print('oct(0b101) =', oct(0b101))
# bilangan heksadesimal
print('oct(0XA) =', oct(0XA))

Itulah beberapa fungsi bawaan dari python. untuk contoh program bisa di ujikan sendiri.

Program GUI Pengubah Bilangan Decimal
ke Bilangan Binary, Octa dan Hex dengan Python

Program GUI Pengubah Angka Decimal ke Bentuk Binary, Octa, dan Hex dengan Python - Pada asalnya bahasa pemrograman komputer tidak secanggih saat ini. Pemrograman yang dibawa oleh komputer pertama kalinya hanyalah angka 0 dan 1. Setelah itu muncul bahasa program lainnya seperti Assembly, dari situlah titik awal lahirnya bahasa program yang kita gunakan sekarang ini.

Angka 0 dan 1 yang saya sebutkan diatas disebut Binary atau bilangan biner. Bilangan tersebutlah yang dipakai komputer untuk mengubah data agar dapat dikirim ke komputer lain melalui Lan maupun Wireless.

Selain Biner dikenal juga Octaldecimal dan Hexadecimal. Bilangan Octal dan Hex memiliki kegunaannya masing - masing. Contohnya Hex yang sering dipakai dalam code warna. Bahasa CSS menggunakan Hex ini untuk mendefinisikan warna styling elemen selain rgb, rgba dan mendefinisikan warna secara langsung.

Nah, pada postingan Contoh Program Python kali ini saya akan memberikan cara membuat Program GUI Pengubah Angka Decimal ke Bentuk Binary, Octal, dan Hex dengan Python. Jadi, tidak hanya CLI saja tetapi GUI nya juga dengan menggunakan modul Tkinter. Langsung saja tutorialnya.

CARA MENGUBAH DECIMAL KE BINARY DENGAN PYTHON

Sebelum menulis code Pythonnya kita akan mengenal terlebih dahulu cara mengubah angka desimal ke binary dengan cara manual. Kita disini menggunakan sisa dari hasil pembagian. Karena angka Binary adalah angka dengan basis 2, dengan angkanya 0 dan 1.

Maka kita hanya akan membagi angka dengan 2. Jika angka habis dibagi dua maka berarti menghasilkan 0. Jika masih ada sisa maka berarti 1. Kita terus lakukan hal ini sampai sisa bilangan benar - benar habis atau 0. Disinilah rekursi kita bekerja.

Langsung saja berikut adalah bagaimana saya membuat fungsi rekursinya dalam bahasa Python.


biner = []
def konverterBiner(angka):
    if angka > 512:
        messagebox.showinfo('Perhatian !', 'Maksimal 512 untuk decimal\nDirubah menjadi Binary Number ')
        return
    else: pass
    if angka//2 == 0:
        biner.append(angka%2)
    else:
     biner.append(angka%2)
     return konverterBiner(angka//2)

    new = [str(i) for i in biner]
    string = " "
    while len(new) > 0:
        a = new.pop()
        string += a
    print(string)


Pada code diatas mungkin sedikit tidak efekif. Silahkan saja sesuaian karena saya menemukan bug sesaat code telah selesai, dan saya malas mengubah codenya jadi saya tambahkan saja validator untuk memastikan angkanya kurang dari 512 dan memberi value pass pada else nya.

Tapi secara keseluruhan kode diatas mudah dipahami. Pertama kita buat list kosong. Kemudian kita buat fungsi konverterBiner dengan satu parameter. Kita cek apakah angkanya kurang dari 512. Karena saat saya cek menggunakan Ms excel dengan code =DEC2BIN() ternyata angka diatas 512 tidak memberikan hasil di Binary.

Setelah itu kita buat stop untuk rekursi yaitu jika angkanya sudah 0 saat dibagi 2 maka kita berikan value sisa pembagian tersebut. Jika tidak maka kita putar kembali fungsinya sampai menjadi 0 angkanya.

Kemudian kita buat list didalam func untuk mengubah value pada list biner menjadi string kemudian di loop untuk diambil satu persatu elemen dari belakang untuk dibuat string. Mengapa dari belakang ? Karena jika dari value semula maka Binarynya terbalik. Oleh karena itu kita pop() dan susun kembali kebalikannya.

Baca Juga: Contoh Program E-mail Extractor dengan Python

Mengapa tidak pakai reverse aja min ? Karena setelah dicoba, jika menggunakan reverse pada list maka elemennya tidak bisa di split() untuk mengubahnya menjadi string untuk di print. Oleh karena itu menurut saya cara itu sudah maksimal. Silahkan komentar untuk mendiskusikan keefektifan code ini.

CARA MENGUBAH DECIMAL KE OCTALDECIMAL DENGAN PYTHON

Selanjutnaya kita akan membuat code untuk mengubah angka decimal kedalam bentuk Octaldecimal. Perlu diketahui metodenya persis sama dengan diatas. Hanya saja kita akan bagi dengan 8. Karena bilangan Octaldecimal adalah bilangan dengan basis 8, angka 0 sampai 7. Langsung saja kita lihat codenya.


biner = []
def konverterOktal(angka):
    if angka//8 == 0:
        biner.append(angka%8)
    else:
     biner.append(angka%8)
     return konverterOktal(angka//8)

    new = [str(i) for i in biner]
    string = " "
    while len(new) > 0:
        a = new.pop()
        string += a
    print(string)


Nah lihat sendiri kan kita hanya mengubah sedikit codenya. Kita hapuskan validatornya karena angka satu juta pun saya tes di Ms. Excel dengan code =DEC2OCT() masih mengeluarkan value.

CARA MENGUBAH DECIMAL KE HEXADECIMAL DENGAN PYTHON

Hexadecimal ini memiliki aturan tersendiri, dimana bilangan Hexadecimal ini juga menggunakan huruf sebagai valuenya. Hexadecimal adalah bilangan dengan basis 16, dimulai angka 0 sampai 15, yang dimana angka 10 sampai 15 digantikan dengan huruf A sampai F.

Oleh karena itu, cara tercepat untuk membuat aturan ini bekerja kedalam Python adalah dengan menggunakan dictionary dengan keynya adalah angka 10 - 15 dan valuenya adalah huruf A - F. Untuk lainnya masih sama saja. Silahkan lihat code saya berikut ini.


biner = []
def konverterHex(angka):
    if angka//16 == 0:
        biner.append(angka%16)
    else:
     biner.append(angka%16)
     return konverterHex(angka//16)

    aturan = {'10':"A", '11':"B", '12':"C",'13':"D",'14':"E",'15':"F"}
    new = [str(i) for i in biner]
    string= " "
    while len(new) > 0:
        a = new.pop()
        if a in aturan:
            string += aturan.get(a)
            continue
        string += a
    print(string)


Nah pada kode diatas, masih menggunakan konsep yang sama tetapi membaginya dengan angka 16. Selanjutnya pada while loop bagian bawah kita tambahkan semacam konverter berdasarkan pasangan value dan key yang sudah kita definisikan sebelumnya.

MEMBUAT TAMPILAN GUI KONVERTER

Seperti yang biasa saya lakukan dalam setiap postingan pemrograman Otak keren, saya ingin berbeda dengan Tutorial Lainnya. Maka kita disini juga akan membuat code untuk mengubah program CLI untuk mengubah angka desimal tersebut ke GUI.

Untuk membuat GUI kita bisa menggunakan modul Tkinter yang Tutorial Tkinternya bisa disimak pada Otak Keren bagian 1 sampai 5. Langsung saja kita lihat potongan code untuk GUI dari konverter decimal ini.


from tkinter import *
from tkinter import messagebox
root = Tk()
root.title('Konverter Decimal')

biner =[]

def konverterBiner(angka):
    if angka > 512:
        messagebox.showinfo('Perhatian !', 'Maksimal 512 untuk decimal\nDirubah menjadi Binary Number ')
        return
    else: pass
    if angka//2 == 0:
        biner.append(angka%2)
    else:
     biner.append(angka%2)
     return konverterBiner(angka//2)

    new = [str(i) for i in biner]
    string = " "
    while len(new) > 0:
        a = new.pop()
        string += a
    masukan.delete(0, END)
    masukan.insert(END, string)

def konverterOktal(angka):
    if angka//8 == 0:
        biner.append(angka%8)
    else:
     biner.append(angka%8)
     return konverterOktal(angka//8)

    new = [str(i) for i in biner]
    string = " "
    while len(new) > 0:
        a = new.pop()
        string += a
    masukan.delete(0, END)
    masukan.insert(END, string)

def konverterHex(angka):
    if angka//16 == 0:
        biner.append(angka%16)
    else:
     biner.append(angka%16)
     return konverterHex(angka//16)

    aturan = {'10':"A", '11':"B", '12':"C",'13':"D",'14':"E",'15':"F"}
    new = [str(i) for i in biner]
    string= " "
    while len(new) > 0:
        a = new.pop()
        if a in aturan:
            string += aturan.get(a)
            continue
        string += a
    masukan.delete(0, END)
    masukan.insert(END, string)

def konvert():
    if len(biner) >= 1:
        while len(biner) >= 1:
            a = biner.pop()
            sampah = []
            sampah.append(a)
            sampah.remove(a)
    else: pass
    a = var.get()
    b = int(masukan.get())
    if a == 1:
        konverterBiner(b)
    elif a == 2:
        konverterOktal(b)
    elif a == 3:
        konverterHex(b)
    return

masukan = Entry(root, width=50)
masukan.grid(row=0, column=0)

var = IntVar()
bin = Radiobutton(root, text="Conver to Binary Number (max. 512)", variable=var, value=1)
bin.grid(row=1, column=0, sticky=W)
okta = Radiobutton(root, text="Conver to Okta Number", variable=var, value=2)
okta.grid(row=2, column=0, sticky=W)
hex = Radiobutton(root, text="Conver to Hex Number", variable=var, value=3)
hex.grid(row=3, column=0, sticky=W)

tombol = Button(root, text="Konvert", command=konvert, width=15, bg='black', fg='green').grid(row=4, column=0, pady=5)
root.mainloop()

Pada  Source Code diatas saya membuat tambahan fungsi sebagai jembatan antara tombol kita dengan fungsi utama. Saya juga merubah print() menjadi .insert agar hasil dapat langsung tertera pada kolom entry sesaat setelah tombol ditekan.

Baca Juga: Package Python menjadi Crossplatform Executable dengan Pyinstaller

Pada fungsi jembatan tersebut saya membuat penghapus elemen list biner, karena kita membutuhkan list ini berkali - kali dan setiap elemen harus dihapus setelah hasil terdisplay. Sehingga Radiobutton yang kita buat dapat dijalankan berkali - kali dengan value yang berbeda tanpa harus membuka tutup window. Dari kode diatas kita mendapatkan hasil seperti ini

Program GUI Pengubah Bilangan Decimal
ke Bilangan Binary, Octa dan Hex dengan Python

KESIMPULAN

Jangan lupa juga kalian cek Tutorial Tkinter lainnya di Otak keren. Dan juga ada pengumuman untuk sobat Otak Keren, Otak Keren membuka Toko Online yang menjual Kaos Sablon bertemakan pemrograman. Karena disini Tutorial Python, berikut kaos Python yang tersedia di Otak keren Shop

Kaos Sablon Python

Jika kalian ingin melihat koleksi kaos lainnya silahkan menuju Fanspage Otak Keren atau kunjungi Laman Otak Keren Shop untuk informasi bahan dan ukuran yang tersedia.