"Pembuatan program konversi"

pembuatan program konversi 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. 

www.intancell.co.cc

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More