Sistem Bilangan · Pelajaran 2 dari 9
Mengubah desimal ke biner dan sebaliknya
9 menit baca · BelajarCode
Bilangan yang kita pakai sehari-hari adalah desimal (basis 10). Setiap posisi bernilai 10 kali lipat posisi di kanannya: satuan, puluhan, ratusan. Bilangan 345 artinya 3 × 100 + 4 × 10 + 5 × 1.
Bilangan biner (basis 2) bekerja dengan cara yang sama, tetapi setiap posisi bernilai 2 kali lipat: 1, 2, 4, 8, 16, 32, dan seterusnya.
Biner ke desimal
Kalikan setiap bit dengan nilai tempatnya, lalu jumlahkan.
| Nilai tempat | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|
| Bit | 1 | 0 | 1 | 1 | 0 | 1 |
| Hasil kali | 32 | 0 | 8 | 4 | 0 | 1 |
Jumlahnya 32 + 8 + 4 + 1 = 45. Jadi 101101 dalam biner sama dengan 45 dalam desimal. Untuk membedakannya, biner kadang ditulis dengan tanda kecil, misalnya 101101₂.
Desimal ke biner
Bagi terus dengan 2 dan catat sisanya. Setelah hasil baginya 0, baca sisa-sisa itu dari bawah ke atas.
| Pembagian | Hasil bagi | Sisa |
|---|---|---|
| 25 ÷ 2 | 12 | 1 |
| 12 ÷ 2 | 6 | 0 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| 1 ÷ 2 | 0 | 1 |
Dibaca dari bawah: 11001. Periksa: 16 + 8 + 1 = 25. Benar!
Dengan Python
Python punya fungsi bawaan untuk konversi:
1print(bin(25))2print(int("11001", 2))3print(format(25, "08b"))0b11001 25 00011001
bin()menghasilkan teks biner dengan awalan0b.int(teks, 2)membaca teks sebagai bilangan basis 2.format(25, "08b")menulis biner selebar 8 digit dengan nol di depan.
Algoritma pembagian berulang tadi juga bisa ditulis sendiri:
1n = 252biner = ""3while n > 0:4 sisa = n % 25 biner = str(sisa) + biner6 n = n // 27print(biner)11001
Sisa ditambahkan di depan teks, sehingga urutannya otomatis terbaca dari bawah ke atas.
Cek pemahaman
Bilangan biner 1110 sama dengan berapa dalam desimal?
Latihan
Konversi bolak-balik
Ubah 100 menjadi biner dengan cara pembagian berulang, lalu ubah 110110₂ menjadi desimal. Periksa jawabanmu dengan Python.
Pembahasan
100 ke biner: 100 ÷ 2 = 50 sisa 0, 50 ÷ 2 = 25 sisa 0, 25 ÷ 2 = 12 sisa 1, 12 ÷ 2 = 6 sisa 0, 6 ÷ 2 = 3 sisa 0, 3 ÷ 2 = 1 sisa 1, 1 ÷ 2 = 0 sisa 1. Dibaca dari bawah: 1100100.
110110₂ ke desimal: 32 + 16 + 0 + 4 + 2 + 0 = 54.
1print(bin(100))2print(int("110110", 2))0b1100100 54
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.