Show 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 # float float(x) : mengkonversi nilai string x ke bilangan desimal/pecahan # argumen integer complex(real [,imag]) : Membuat bilangan kompleks z = complex(3, 3) str(x) : Mengkonversi objek x ke string print(str(12)) repr(x) : Mengkonversi nilai objek x ke string expressi class Person: eval(str) : Mengevaluasi string dan mengembalikan nilai objeknya x = 1 tuple(s) : mengkonversi objek menjadi tuple # tuple dari list list(s) : membuat list data # list string set(s) : membuat set # string dict(d) : membuat dictonary # dict hanya dengan argumen kata kunci frozenset(s) : mengkonversi menjadi objek set yang tidak bisa diubah (immutable) # tuple huruf vokal chr(x) : mengkonversi object integer menjadi karakter. print(chr(65)) ord(x) : mengkonversi object 1 karakter menjadi integer. print('Bilangan integer dari huruf "a" =',ord('a')) hex(x) : mengkonversi object integer menjadi bilangan hexadesimal. number = 123 oct(x) : mengkonversi object integer menjadi bilangan octal. # bilangan desimal Itulah beberapa fungsi bawaan dari python. untuk contoh program bisa di ujikan sendiri.
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 PYTHONSebelum 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 PYTHONSelanjutnaya 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 PYTHONHexadecimal 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 KONVERTERSeperti 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
KESIMPULANJangan 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
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.
|