Rabu, Maret 31

Membuat Konversi Bilangan Desimal ke Biner

Bingung membuat program konversi bilangan desimal ke bilangan biner? Hmm… simak artikel ini selanjutnya, karena pada artikel ini akan dijelaskan konsep perhitungan sampai dengan implementasi pembuatan programnya dengan Pascal.

Pada bagian awal ini akan dijelaskan dahulu konsep perhitungan konversi dari desimal ke biner. Misalkan diberikan bilangan desimal 17. Untuk langkah konversinya adalah sbb:

Step 1. 17 dibagi 2 mendapatkan 8 sisa 1
Step 2. 8 dibagi 2 mendapatkan 4 sisa 0
Step 3. 4 dibagi 2 mendapatkan 2 sisa 0
Step 4. 2 dibagi 2 mendapatkan 1 sisa 0

Karena pada step terakhir hasil pembagiannya sudah sama dengan 1 (atau dengan kata lain perulangan masih terus dilakukan selama hasil baginya >= 1). Sekarang perhatikan sisa-sisa pembagian pada setiap step. Langkah selanjutnya, susun sisa-sisa bilangan itu mulai dari step terakhir sampai dengan step pertama dan diperoleh  0001. Langkah terakhir adalah menambahkan digit 1 di depan 0001 menjadi 10001. Nah diperoleh bilangan biner dari 17 adalah 10001.

Sekarang konsep di atas akan diimplementasikan ke dalam program Pascal. Yang menjadi pertanyaan adalah bagaimana cara membagi bilangan dengan 2 supaya diperoleh hasil bulat (seperti pada perhitungan 17 dibagi 2 mendapatkan 8). Jangan khawatir… dalam Pascal tersedia operator div. Operator ini digunakan untuk membagi dua bilangan bertipe bulat dan menghasilkan hasil pembagian berupa bilangan bulat pula.

Selanjutnya, karena proses perhitungan di atas dilakukan berulang-ulang maka nantinya akan digunakan perulangan/looping dalam program. Lantas, statement loopingnya menggunakan apa? FOR, WHILE atau REPEAT? Jenis perulangan yang digunakan sebaiknya jangan menggunakan FOR karena jumlah perulangannya tidak jelas. Sehingga nantinya akan kesulitan dalam menentukan syarat berhentinya perulangan.

Berikut ini adalah program Pascal untuk mengkonversi bilangan desimal ke biner:

program konversiDecToBin;
var bilangan : integer;
function decToBin(desimal : integer) : string;
var hasilBagi, sisa : integer;
     bin : char;
     bilBiner : string;
begin
     hasilBagi := desimal div 2;
     bilBiner := '';
     { syarat perulangan : selama hasil bagi lebih besar sama dengan 1 }
     while (hasilBagi >= 1) do
     begin
          sisa := desimal mod 2;
          if (sisa = 0) then bin := '0'
               else if (sisa = 1) then bin := '1';
          { menggabung sisa pada setiap perulangan untuk membentuk digit biner}
          bilBiner := bin + bilBiner;
          desimal := hasilBagi;
          hasilBagi := desimal div 2;
     end;
     decToBin := '1' + bilBiner;
end;
begin
     bilangan := 200;
     write('Bilangan binernya : ', decToBin(bilangan));
     readln;
end.

Source: http://blog.rosihanari.net/membuat-program-konversi-bilangan-desimal-ke-biner-dengan-pascal

0 comments:

Poskan Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Created by Wahyu Penjual Mimpi | Bloggerized Dreams Zone|