Latihan Kode Program Java: Cara Konversi Biner ke Desimal

Latihan algoritma Java 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 logika matematika, array, serta konsep perulangan for.


Soal Konversi Bilangan Biner ke Desimal

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

Berikut contoh hasil yang diinginkan (1):

Input angka biner: 1010010
Angka desimal dari biner 1010010 adalah: 82

Berikut contoh hasil yang diinginkan (2):

Input angka biner: 1111111
Angka desimal dari biner 1111111 adalah = 127

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 mencari hasil kali dari setiap angka biner.

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

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

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

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

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

Dengan menambah semua angka di baris paling bawah, maka 1110001 biner = 64+32+16+0+0+0+1 = 113 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 1011 biner :

  • 1011/10 = 101, sisa 1. Desimal di posisi ini = 1 * 20 = 1
  • 101/10 = 10, sisa 1. Desimal di posisi ini = 1 * 21 = 2
  • 10/10 = 1, sisa 0. Desimal di posisi ini = 0 * 22 = 0
  • 1/10 = 0, sisa 1. Desimal di posisi ini = 1 * 23 = 8

Total desimal = 1 + 2 + 0 + 8 = 11

Dan berikut cara mencari angka desimal dari 1110001 biner:

  • 1110001 /10 = 111000, sisa 1. Desimal di posisi ini = 1 * 20 = 1
  • 111000/10 = 11100, sisa 0. Desimal di posisi ini = 0 * 21 = 0
  • 11100/10 = 1110, sisa 0. Desimal di posisi ini = 1 * 22 = 0
  • 1110/10 = 111, sisa 0. Desimal di posisi ini = 0 * 23 = 0
  • 111/10 = 11, sisa 1. Desimal di posisi ini = 1 * 24 = 16
  • 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 + 0 + 0 + 16 + 32 + 64 = 113

Konsep inilah yang akan kita tulis ke dalam kode program.


Kode Program JavaKonversi Biner ke Desimal

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

import java.util.Scanner;
  
class KonversiBiner {
  public static void main(String args[]){
           
    Scanner input = new Scanner(System.in);
      
    System.out.println("##  Program Java Konversi Biner ke Desimal  ##");
    System.out.println("==============================================");
    System.out.println();
    
    int angka_biner, angka_desimal=0, i=1, digit;
    
    System.out.print("Input angka biner: ");
    angka_biner = input.nextInt();
    
    System.out.print("Angka desimal dari biner "+ angka_biner);

    while(angka_biner!=0) {
      digit = angka_biner % 10;
      angka_desimal = angka_desimal + (digit*i);
      i = i*2;
      angka_biner = angka_biner/10;
    }
    
    System.out.println(" adalah: "+ angka_desimal);
  
  }
}
Agar bisa berjalan, simpan kode diatas ke dalam file KonversiBiner.java, lalu compile dengan perintah javac KonversiBiner.java dan jalankan (run) dengan perintah java KonversiBiner. Panduan lebih lengkap bisa ke Cara Menjalankan kode Program Java (Proses Compile).

Latihan Kode Program Java - Cara Konversi Biner ke Desimal

Di baris 12 terdapat pendefinisian 4 buah variabel:

  • angka_biner untuk menampung digit angka biner yang diinput oleh user.
  • angka_desimal untuk menampung hasil dari proses konversi ke angka desimal.
  • i untuk menandakan posisi digit (mencari angka pangkat 2).
  • digit sebagai variabel bantu saat proses perulangan.

Di baris 15, inputan user akan ditampung ke dalam variabel angka_biner.

Perulangan while di baris 19-24 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 22, nilai variabel i dikali 2 untuk persiapan ke iterasi berikutnya.

Di baris 23, variabel angka_biner dibagi 10 agar 1 digit paling kanan terhapus. Di dalam bahasa Java, angka pecahan yang disimpan ke dalam tipe data integer otomatis terhapus.

Kita sudah selesai di 1 digit paling kanan, dan karena variabel angka_biner masih berisi sesuatu, maka perulangan akan kembali ke baris 19, 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.


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

Add Comment