Selasa, 21 Desember 2010

konversi bilangan desimal ke biner

Postingan kali ini sedikit lain daripada yang sebelumnya, seputar pemrograman java, bahasa pemrograman yang sedang saya pelajari di Jurusan Sistem Informasi ITS. Belum bisa banyak sih, tapi paling tidak bisa menambah referensi bagi teman2 semua dan sekaligus buat pengingat bagi saya sendiri. Program yang akan kita buat kali ini yaitu konversi bilangan desimal ke bilangan biner.
Teman2 semua pasti sudah banyak yang tahu cara mengubah bilangan biner ke desimal, yaitu dengan memanfaatkan operasi pembagian (divide) dan sisa (modulo). Biasanya angka pembagi yang digunakan untuk mengkonversi dari desimal ke biner adalah angka 2. Pembagian akan berhenti jika angka hasil bagi sama dengan 0 atau 1. Contoh : misalkan bilangan desimal 12 mau kita ubah ke bilangan biner, prosesnya adalah sebagai berikut :

12/2 = 6 sisa 0
6/2 = 3 sisa 0
3/2  = 1 sisa 1
Dari proses tersebut, angka biner didapatkan secara terbalik, yaitu dari bawah ke atas, sehingga bilangan biner dari 12 adalah 1100.
Selain dengan menggunakan angka 2 sebagai pembagi, kita bisa menggunakan angka lain untuk mengubah dari bilangan desimal ke biner. Dan ini yang akan kita coba buat program javanya, yaitu dengan menggunakan angka 8, dalam arti kita mengubah bilangan desimal ke bilangan oktal dulu, kemudian dari bilangan oktal kita ubah ke bilangan biner, dengan aturan sebagai berikut :
Jika angka pada bilangan oktal adalah 0—>bilangan binernya adalah “000″
Jika angka pada bilangan oktal adalah 1—>bilangan binernya adalah “001″
Jika angka pada bilangan oktal adalah 2—>bilangan binernya adalah “010″
Jika angka pada bilangan oktal adalah 3—>bilangan binernya adalah “011″
Jika angka pada bilangan oktal adalah 4—>bilangan binernya adalah “100″
Jika angka pada bilangan oktal adalah 5—>bilangan binernya adalah “101″
Jika angka pada bilangan oktal adalah 6—>bilangan binernya adalah “110″
Jika angka pada bilangan oktal adalah 7—>bilangan binernya adalah “111″.

Contohnya sama seperti di atas, dengan menggunakan pembagi angka 8 prosesnya adalah sebagai berikut:
12/8 = 1 sisa 4,
Jadi bilangan oktal dari 12 adalah 14. Nah, kemudian angka 14 oktal ini kita ubah ke biner sesuai aturan di atas, sehingga menjadi 001100 = 1100 (angka nol di depan dihilangkan).
Dari konsep di atas, kode program java-nya adalah sebagai berikut :
=======================================================================
import java.util.*;
public class desimalBinerz {
public static void main (String [ ] args){
Scanner masukan = new Scanner(System.in);
long bilangan;
int sisa;
int [ ] array = new int [100];
boolean loop = true;
int i = 0;
System.out.println(“+++Konversi Bilangan Desimal ke Bilangan Biner+++”);//header
System.out.print (“Bilangan Desimal : “);
bilangan=masukan.nextLong();//memasukkan bilangan desimal
while (loop == true){//mendapatkan bilangan sisa (modulus)
sisa = (int) (bilangan % 8);
bilangan = bilangan / 8;
array [i] = sisa;
i++;
if (bilangan<8){
loop=false;
array [i] = (int) bilangan;
}
for (int a=i; a>=0; a- -){//menampilkan bilangan sisa dengan konversi dari oktal ke biner
if (array [a]==0){
if (array [a]==0 && a==i)
System.out.print(“”);
else
System.out.print(“000″);
}
if (array [a]==1){
if (array [a]==1 && a==i)
System.out.print(“1″);
else
System.out.print(“001″);
}
if (array [a]==2){
if (array [a]==2 && a==i)
System.out.print(“10″);
else
System.out.print(“010″);
}
if (array [a]==3){
if (array [a]==3 && a==i)
System.out.print(“11″);
else
System.out.print(“011″);
}
if (array [a]==4)
System.out.print(“100″);
if (array [a]==5)
System.out.print(“101″);
if (array [a]==6)
System.out.print(“110″);
if (array [a]==7)
System.out.print(“111″);
}
System.out.println();
}
}

0 komentar:

Posting Komentar

Related Posts Plugin for WordPress, Blogger...
Follow ayyub11nd on Twitter