Rabu, 13 April 2016

Konversi biner dan desimal dengan bahasa pascal

Aplikasi pascal ini di buat untuk mengkonversi bilangan dari biner ke desimal - desimal ke biner. Cara kerja aplikasi ini yaitu dengan memilih ingin mengkonversi biner terlebih dahulu, atau desimal, jika sudah masukkan input sesuai yang sudah dipilih tadi kemudian enter untuk melihat hasil.

Berikut adalah struktur algoritma program dan script program :


Script:

program test;
uses crt;

function pkt(z :real;n : integer):real;
var
  t : real;
  m : integer;
begin

m:=abs(n);
if (z<>0) and (n=0) then pkt:=1
else if n >0 then
pkt:=z*pkt(z,n-1)
else if (n < 0) then pkt := 1/(z*pkt(z,m-1));
end;

var
  Des : integer;
  Bin, choice1, choice2 : string;
  i,x:integer;
  dec:real;

  begin
  clrscr;
      write('apakah anda ingin mencari bilangan desimal ke biner ? (y/n)');
      readln(choice1);
      if (choice1 = 'y') then
      begin


writeln('Konversi Bilangan Desimal Ke Biner');
writeln('==================================');
writeln;


write ('Masukan Bilangan Desimal : ');
readln (Des);
Bin := ' ';
repeat

begin
{Menghitung Biner Dari Sisa Hasil Bagi}
if Des mod 2 = 0 then Bin := '0' + Bin
else Bin := '1' + Bin;
{Membagi Bulat Bil Desimal}
Des := Des div 2;
end;

until Des = 0;
writeln;
writeln('Hasil Konversi');
writeln('==============');
writeln;
WriteLn ('Bilangan Biner : ',Bin);readln;


      end
      else if (choice1 = 'n') then
      begin

        write('apakah anda ingin mencari bilangan biner ke desimal ? (y/n)');
        readln(choice2);

        if (choice2 = 'y') then
        begin





dec:=0;
repeat
writeln('Konversi Bilangan Biner Ke Desimal');
writeln('==================================');
writeln;
writeln('Bilangan Biner (16 digit) : ');readln(bin);
if length(bin) > 16 then


begin
gotoxy(18,27);writeln('Digit nilai yang anda masukkan melebihi 16.');gotoxy(1,1);
end;
until length(bin) <= 16;
for i:= 1 to 16 do

begin
case i of                                                       
1: x:=16;2: x:=15;3: x:=14;4: x:=13;5: x:=12;6: x:=11;7: x:=10;8: x:=9;
9: x:=8;10: x:=7;11: x:=6;12: x:=5;13: x:=4;14: x:=3;15: x:=2;16: x:=1;
end;
if bin[i] = '1' then
dec:= dec + pkt(2,x-1);
if bin[i] = '0' then dec:= dec + 0;
end;
writeln('Hasil Konversi');
writeln('==============');
writeln;
writeln(bin,' (biner) = ',dec:0:0,' (desimal)');readln;



        end
        else if (choice2 = 'n') then
        begin
          writeln('tidak dapat melanjutkan program');
        end
        else
        begin
          writeln('salah input');
        end;

      end
      else
      begin
        writeln('salah input');
      end;

  end.