Konversi bilangan desimal ke biner merupakan salah satu materi dasar yang penting dipahami dalam algoritma dan pemrograman, terutama ketika mempelajari sistem bilangan, komputer, dan sistem digital.
Pada artikel ini kita akan membuat program Python untuk mengubah bilangan desimal menjadi bilangan biner. Menariknya, program tidak hanya menampilkan hasil akhir, tetapi juga menampilkan tahapan perhitungan pembagian dengan 2, sehingga proses konversinya lebih mudah dipahami.
Apa Itu Bilangan Desimal dan Biner?
Bilangan desimal adalah sistem bilangan yang menggunakan angka 0 sampai 9. Sistem ini merupakan sistem bilangan yang paling umum digunakan dalam kehidupan sehari-hari.
Sedangkan bilangan biner hanya menggunakan dua angka, yaitu:
0 dan 1
Komputer menggunakan sistem biner karena perangkat digital bekerja dengan dua kondisi dasar, yaitu 0 dan 1.
Contohnya:
Desimal 5 = Biner 101
Desimal 10 = Biner 1010
Desimal 13 = Biner 1101
Algoritma Konversi Desimal ke Biner
Salah satu metode yang paling sederhana untuk mengubah desimal menjadi biner adalah menggunakan pembagian berulang dengan angka 2.
Langkahnya:
- Bilangan desimal dibagi 2.
- Catat hasil bagi.
- Catat sisa pembagian.
- Hasil bagi digunakan untuk pembagian berikutnya.
- Proses dilakukan sampai hasil bagi menjadi 0.
- Semua sisa pembagian dibaca dari bawah ke atas.
Sebagai contoh, kita akan mengubah angka 13 menjadi biner.
13 ÷ 2 = 6 sisa 1
6 ÷ 2 = 3 sisa 0
3 ÷ 2 = 1 sisa 1
1 ÷ 2 = 0 sisa 1
Sisa pembagiannya adalah:
1
0
1
1
Karena sisa harus dibaca dari bawah ke atas:
1101
Jadi:
13 desimal = 1101 biner
Program Python Konversi Desimal ke Biner
Berikut program Python yang digunakan:
# Program Konversi Desimal ke Biner
# Input bilangan desimal
desimal = int(input("Masukkan bilangan desimal: "))
# Validasi
if desimal < 0:
print("Masukkan bilangan desimal yang benar.")
# Jika angka 0
elif desimal == 0:
print("0 dalam biner adalah 0")
else:
angka = desimal
biner = ""
proses = ""
# Perulangan pembagian dengan 2
while angka > 0:
hasilBagi = angka // 2
sisa = angka % 2
# Menyimpan proses
proses += (
str(angka) +
" ÷ 2 = " +
str(hasilBagi) +
" sisa " +
str(sisa) +
"\n"
)
# Sisa dimasukkan ke depan
biner = str(sisa) + biner
# Angka berikutnya
angka = hasilBagi
# Menampilkan hasil
print()
print("Bilangan Desimal:", desimal)
print()
print("Tahapan Perhitungan:")
print(proses)
print("Baca sisa dari bawah ke atas:")
print(biner)
print()
print(
"Jadi,",
desimal,
"desimal =",
biner,
"biner"
)
Penjelasan Program
1. Mengambil Input
desimal = int(input("Masukkan bilangan desimal: "))
input() digunakan untuk menerima angka dari pengguna.
Karena input() menghasilkan data berupa string, maka digunakan int() untuk mengubahnya menjadi bilangan bulat.
Contohnya:
Masukkan bilangan desimal: 13
Nilai tersebut disimpan ke variabel:
desimal
2. Validasi Bilangan Negatif
if desimal < 0:
print("Masukkan bilangan desimal yang benar.")
Program memeriksa apakah angka yang dimasukkan lebih kecil dari 0.
Jika pengguna memasukkan:
-10
program akan menampilkan pesan:
Masukkan bilangan desimal yang benar.
3. Kondisi Jika Angka 0
elif desimal == 0:
print("0 dalam biner adalah 0")
Angka 0 ditangani secara khusus.
Hasil konversinya adalah:
0 desimal = 0 biner
4. Menyiapkan Variabel
angka = desimal
biner = ""
proses = ""
Terdapat tiga variabel penting.
angka digunakan untuk menyimpan angka yang sedang diproses.
angka = desimal
biner digunakan untuk menyimpan hasil konversi.
biner = ""
Sedangkan proses digunakan untuk menyimpan tahapan pembagian.
proses = ""
5. Perulangan while
Bagian utama algoritma terdapat pada:
while angka > 0:
Artinya, proses akan terus dilakukan selama nilai angka masih lebih besar dari 0.
Misalnya input:
13
maka perubahan nilai angka adalah:
13
↓
6
↓
3
↓
1
↓
0
Ketika nilai angka sudah menjadi 0, perulangan berhenti.
6. Operator //
Program menggunakan:
hasilBagi = angka // 2
Operator // merupakan pembagian bulat.
Contohnya:
13 // 2
menghasilkan:
6
Sedangkan:
7 // 2
menghasilkan:
3
Hasil desimal di belakang koma tidak digunakan.
7. Operator %
Kemudian program menggunakan:
sisa = angka % 2
Operator % digunakan untuk mendapatkan sisa pembagian.
Contohnya:
13 % 2
hasilnya:
1
Karena:
13 ÷ 2 = 6 sisa 1
Sedangkan:
6 % 2
menghasilkan:
0
Sehingga proses untuk angka 13 menjadi:
13 ÷ 2 = 6 sisa 1
6 ÷ 2 = 3 sisa 0
3 ÷ 2 = 1 sisa 1
1 ÷ 2 = 0 sisa 1
8. Menyimpan Tahapan Perhitungan
Program menggunakan:
proses += (
str(angka) +
" ÷ 2 = " +
str(hasilBagi) +
" sisa " +
str(sisa) +
"\n"
)
Tujuannya agar seluruh proses pembagian dapat ditampilkan kepada pengguna.
Fungsi str() digunakan untuk mengubah angka menjadi string sehingga dapat digabungkan dengan teks.
Sedangkan:
"\n"
digunakan untuk membuat baris baru.
9. Menghasilkan Bilangan Biner
Bagian penting lainnya adalah:
biner = str(sisa) + biner
Sisa pembagian dimasukkan ke bagian depan string biner.
Misalnya:
Sisa pertama = 1
Sisa kedua = 0
Sisa ketiga = 1
Sisa keempat = 1
Proses pembentukan string:
"1"
"01"
"101"
"1101"
Hasil akhirnya:
1101
Dengan cara ini, program tidak perlu membalik hasil sisa pembagian di akhir karena setiap sisa langsung ditempatkan di depan.
Contoh Output Program
Jika pengguna memasukkan:
Masukkan bilangan desimal: 13
maka program menghasilkan:
Bilangan Desimal: 13
Tahapan Perhitungan:
13 ÷ 2 = 6 sisa 1
6 ÷ 2 = 3 sisa 0
3 ÷ 2 = 1 sisa 1
1 ÷ 2 = 0 sisa 1
Baca sisa dari bawah ke atas:
1101
Jadi, 13 desimal = 1101 biner
Kesimpulan
Program Python konversi desimal ke biner ini menggunakan konsep perulangan, percabangan, operator pembagian bulat //, operator sisa %, string, dan algoritma pembagian berulang.
Konsep paling penting dalam algoritma ini adalah:
Desimal
↓
Bagi 2
↓
Catat sisa
↓
Hasil bagi dibagi 2 lagi
↓
Ulangi sampai hasil bagi = 0
↓
Baca sisa dari bawah ke atas
↓
Biner
Dengan memahami program sederhana ini, kita tidak hanya belajar Python, tetapi juga memahami dasar sistem bilangan biner yang banyak digunakan dalam komputer dan sistem digital.