Halaman

Senin, 28 Februari 2011

Konversi Biner ke Desimal dengan Java

Melanjutkan artikel yang sebelumnya tentang “Konversi Desimal ke Biner”, kali ini saya akan menjelaskan bagaimana caranya jika kita ingin mengkonversi Desimal ke Biner khususnya dalam Java. Seperti pada artikel sebelumnya bahwa membuat method untuk menyelesaikan masalah seperti ini tergantung dari cara kita masing-masing memahami suatu rumus dan bagaimana mengartikannya dalam bahasa pemrograman

Dalam pengkonversian kali ini…saya menggunakan rumus untuk menkonversi bilangan Biner ke dalam bilangan Desimal pada umumnya (kalo lupa buka bukunya lagi…). Langsung ke Source Code-nya…


protected String toDecimal(String angka){

        String hasil = "";
        String temp1 = "";
        int nilai = 0;
        int temp2 = 1;
        for (int i = 0; i< angka.length();i++){
           temp1 = angka.charAt(i) +temp1;
        }
        for (int u = 0 ; u< temp1.length();u++){
            if(temp1.charAt(u) == '0'){
              nilai = nilai + 0;
            }else{
              for (int r=0;r<u;r++){
                temp2 = temp2 * 2;
              }
              nilai = nilai + temp2;
              temp2 = 1;
            }
        }
        return hasil = String.valueOf(nilai);
    }


Keterangan Source Code :

1. Source code diatas merupakan sebuah method yang membutuhkan nilai yang akan dikonversi. Seperti pada sintax protected String toDesimal(String angka){..} String angka merupakan sebuah variabel yang nilainya akan dikonversi.

2. Pada perulangan yang pertama berfungsi untuk membalikkan urutan penempatan digit pada bilangan biner dengan batasan perulangan/iterasi dari panjang String biner itu sendri. Misalnya : 1001100 menjadi 0011001. Hal ini dikarenakan bahwa setiap perhitungan pada java di mulai dari kiri. Sedangkan dalam kasus ini…pada cara rumus pengkonversian biner ke desimal dimulai dari kanan (Ini dengan rumus saya…gak tau yang lain..n_n). kemudian nilai dari desimal yang telah dibalik urutan digitnya akan disimpan dalam variabel temp1.

3. Kemudian dilanjutkan pada perulangan yang kedua. Pada perulangan ini akan dilakukan perhitungan bilangan desimal ke biner berdasarkan karakater pada biner.

4. Pada perulangan tersebut terdapat kondisional if… pada sintak if pertama yaitu if(temp1.charAt(u) == '0'){ nilai = nilai + 0;} berarti bahwa ketika satu karakter dari variabel temp1 berupa angka nol maka variabel nilai akan ditambahkan dengan nol dan disimpan pada variabel nilai itu sendiri.

5. Kemudian jika satu karakter dari variabel temp1 tidak berupa angka nol..maka akan dilakukan perulangan lagi untuk mengalikan variabel temp2 dengan angka 2 dan nilainya langsung disimpan pada variabel temp2 itu sendiri.

6. Setelah perulangan selesai nilai dari variabel temp2 ditambahkan dengan variabel nilai dan disimpan pada variabel nilai. Kemudian nilai dari variabel temp2 dikembalikan ke angka 1 lagi.


Sekian dulu artikel untuk kali ini…semoga bermanfaat…masih banyak rumus yang dapat kita terjemhkan dalam bahasa pemrograman,,,tergantung bagaimana kita bisa terus berlatih...