Pages

Thursday, February 2, 2012

                                         Program Mengkonversi bilangan desimal ke Biner

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.
01.program konversiDecToBin;
02.var bilangan : integer;
03.
04.function decToBin(desimal : integer) : string;
05.var hasilBagi, sisa : integer;
06.bin : char;
07.bilBiner : string;
08.begin
09.hasilBagi := desimal div 2;
10.bilBiner := '';
11.
12.{ syarat perulangan : selama hasil bagi lebih besar sama dengan 1 }
13.
14.while (hasilBagi >= 1) do
15.begin
16.sisa := desimal mod 2;
17.if (sisa = 0) then bin := '0'
18.else if (sisa = 1) then bin := '1';
19.
20.{ menggabung sisa pada setiap perulangan untuk membentuk digit biner}
21.
22.bilBiner := bin + bilBiner;
23.
24.desimal := hasilBagi;
25.hasilBagi := desimal div 2;
26.end;
27.decToBin := '1' + bilBiner;
28.end;
29.
30.begin
31.bilangan := 200;
32.write('Bilangan binernya : ', decToBin(bilangan));
33.readln;
34.end.
________________________________________
   
________________________________________

No comments:

Post a Comment