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.