Selasa, 05 April 2011

PROGRAM PASCAL : KONFERSI DESIMAL KE BINER

Program ini elum saatnya untuk kita buat karena menggunakan fungsi-fungsi yang belum di ajarkan.. tetapi sekedar refrensi tak apa lah,,,

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.

Related Posts Plugin for WordPress, Blogger...