Latihan Kode Program Python: Konversi Bilangan Biner ke Desimal

Latihan kode program bahasa Python kali ini akan membahas cara konversi angka biner ke angka desimal. Ini merupakan kebalikan dari latihan konversi bilangan desimal ke biner. Materi soal menguji pemahaman terkait logika matematika, array, serta konsep perulangan for.


Soal Konversi Bilangan Biner ke Desimal

Buatlah kode program dalam bahasa Python yang menerima satu inputan angka biner (basis 2), dan menampilkan output dalam bentuk angka desimal (basis 10).

Berikut contoh hasil yang diinginkan (1):

##  Program Python Konversi Biner ke Desimal  ##
================================================

Input angka biner: 10101010
Angka desimal dari biner 10101010 = 170

Berikut contoh hasil yang diinginkan (2):

##  Program Python Konversi Biner ke Desimal  ##
================================================

Input angka biner: 1011010101101011
Angka desimal dari biner 1011010101101011 = 46443

Tips Membuat Kode Program Konversi Biner ke Desimal

Soal ini melatih pemahaman terkait logika matematika, tipe data array dan konsep perulangan (looping). Berikut tutorial pendahuluan yang bisa diikuti:

Pemecahan dari soal ini sangat bergantung ke rumus cara konversi angka biner menjadi angka desimal. Salah satu solusi yang sering dipakai adalah membuat tabel pangkat 2, lalu mengalikan setiap angka biner.

Sebagai contoh, berapakah angka desimal dari 1101? Pertama, silahkan buat tabel berikut:

Biner 1 1 0 1
2x 23 = 8 22 = 4 21 = 2 20 = 1
Biner * 2x 8 4 0 1

Baris paling bawah didapat dengan mengalikan angka biner di posisi tersebut dengan pangkat 2 yang bersesuaian. Kemudian kita tinggal tambah semua angka = 8+4+0+1 = 13. Jadi, 1101 biner sama dengan 13 desimal.

Contoh lain, berapakah angka desimal dari 1100101? Kembali, kita perlu bantuan tabel:

Biner 1 1 0 0 1 0 1
2x 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
Biner * 2x 64 32 0 0 4 0 1

Dengan menambah semua angka di baris paling bawah, maka 1100101 biner = 64+32+0+0+4+0+1 = 101 desimal.

Membuat proses konversi biner ke desimal dengan bantuan tabel memang cukup mudah. Tapi bagaimana menulisnya ke dalam kode program?

Salah satu cara bisa dengan memanfaatkan operator modulus (sisa hasil bagi). Masih menggunakan contoh yang sama, berikut cara mencari angka desimal dari 1101 biner :

  • 1101/10 = 110, sisa 1. Desimal di posisi ini = 1 * 20 = 1
  • 110/10 = 11, sisa 0. Desimal di posisi ini = 0 * 21 = 0
  • 11/10 = 1, sisa 1. Desimal di posisi ini = 1 * 22 = 4
  • 1/10 = 0, sisa 1. Desimal di posisi ini = 1 * 23 = 8

Total desimal = 1 + 0 + 4 + 8 = 13

Dan berikut cara mencari angka desimal dari 1100101 biner:

  • 1100101/10 = 110010, sisa 1. Desimal di posisi ini = 1 * 20 = 1
  • 110010/10 = 11001, sisa 0. Desimal di posisi ini = 0 * 21 = 0
  • 11001/10 = 1100, sisa 1. Desimal di posisi ini = 1 * 22 = 4
  • 1100/10 = 110, sisa 0. Desimal di posisi ini = 0 * 23 = 0
  • 110/10 = 11, sisa 0. Desimal di posisi ini = 0 * 24 = 0
  • 11/10 = 1, sisa 1. Desimal di posisi ini = 1 * 25 = 32
  • 1/10 = 0, sisa 1. Desimal di posisi ini = 1 * 26 = 64

Total desimal = 1 + 0 + 4 + 0 + 0 + 32 + 64 = 101

Konsep inilah yang akan kita tulis ke dalam kode program.


Kode Program Bahasa Python Konversi Biner ke Desimal

Berdasarkan teori perhitungan sebelumnya, berikut kode program bahasa Python untuk proses konversi bilangan biner ke desimal:

print('##  Program Python Konversi Biner ke Desimal  ##')
print('================================================')
print()

angka_biner = int(input('Input angka biner: '))
print('Angka desimal dari biner', angka_biner, end='')

angka_desimal = 0
i = 1
while (angka_biner != 0):
  digit = angka_biner % 10
  angka_desimal = angka_desimal + (digit*i)
  i = i*2;
  angka_biner = angka_biner // 10
   
print(' =',angka_desimal)

Latihan Kode Program Python - Konversi Bilangan Biner ke Desimal

Di baris 5, perintah input() dipakai untuk meminta angka biner yang ingin dikonversi. Data ini ditampung ke variabel angka_biner.

Secara default perintah input() Python mengembalikan data bertipe string, akan tetapi kita perlu tipe data integer karena variabel angka_biner nantinya dipakai dalam perhitungan. Proses konversi dari tipe string menjadi integer dilakukan oleh fungsi int().

Selanjutnya di baris 8 terdapat proses inisialisasi variabel angka_desimal dengan angka 0. Variabel inilah yang nantinya akan menampung hasil akhir konversi.

Lalu dilanjutkan dengan mengisi variabel i dengan angka 1. Variabel i ini akan dipakai untuk "menghitung" posisi digit angka biner yang sedang dikonversi.

Perulangan while di baris 10-14 dipakai untuk mencari total angka desimal. Selama variabel angka_biner tidak 0, maka jalankan terus perulangan.

Di awal perulangan, ambil 1 digit paling kanan dan simpan ke variabel digit. Ini dilakukan dengan perintah digit = angka_biner % 10.

Kemudian cari nilai desimal dari 1 digit tadi dengan perintah angka_desimal = angka_desimal + (digit*i).

Lanjut di baris 13, nilai variabel i dikali 2 untuk persiapan ke iterasi berikutnya.

Di baris 14, variabel angka_biner dibagi 10 agar 1 digit paling kanan terhapus. Ini dilakukan dengan operator pembagian bilangan bulat '//' .

Kita sudah selesai di 1 digit paling kanan, dan karena variabel angka_biner masih berisi sesuatu, maka perulangan akan kembali ke baris 10, ambil 1 digit lagi, cari angka desimalnya, naikkan nilai i, lalu hapus 1 digit paling kanan, dst.

Prinsip yang dipakai sama seperti teori sebelumnya. Sebagai contoh, kita akan konversi biner 1101:

  • 1101 % 10 = 1. Isi variabel i di posisi ini = 0, maka desimal saat ini = 0 + (1*20) = 1. Hapus satu digit paling kanan.
  • 110 % 10 = 0. Isi variabel i di posisi ini = 1, maka desimal saat ini = 1 + (0*21) = 1. Hapus satu digit paling kanan.
  • 11 % 10 = 1, Isi variabel i di posisi ini = 2, maka desimal saat ini = 1 + (1*22) = 5. Hapus satu digit paling kanan.
  • 1 % 10 = 1, Isi variabel i di posisi ini = 3, maka desimal saat ini = 5 + (1*23) = 13. Hapus satu digit paling kanan.

Perulangan yang dipakai memang sedikit kompleks. Silahkan luangkan waktu sebentar untuk mempelajarinya.


Cara Singkat Dengan Function bin()

Selain dengan perhitungan manual, bahasa Python sebenarnya sudah menyediakan function int() untuk proses konversi dari bilangan biner ke bilangan desimal. Berikut contoh kode programnya:

print('##  Program Python Konversi Biner ke Desimal  ##')
print('================================================')
print()

angka_biner = input('Input angka biner: ')
angka_desimal = int(angka_biner,2);
print('Angka desimal dari biner',angka_biner,'=',angka_desimal)

Proses konversi dilakukan pada baris 6. Function int() yang sebelumnya kita pakai untuk konversi string menjadi integer, ternyata bisa menerima argument kedua yang diisi dengan jenis bilangan.

Jika diinput angka 2, artinya kita ingin mengkonversi string di argument pertama sebagai angka biner ke integer.

Menggunakan function int() ini untuk proses konversi bilangan biner memang lebih praktis, namun mungkin tidak bisa dipakai sebagai solusi dari tugas kuliah.


Demikian kode program konversi bilangan biner ke desimal menggunakan bahasa Python. Semoga tutorial ini bisa bermanfaat.

Add Comment