Rabu, 12 Oktober 2011

Konversi Bilangan





Listing Delphi

procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Height :=401;
combo1.SetFocus ;
label7.Visible :=false;
end;


procedure TForm1.Combo1Click(Sender: TObject);
begin
txtd.SetFocus ;
if combo1.Text ='Desimal-Biner' then
begin
label4.Caption :=('Bilangan Biner');
label7.Visible :=false;
end
else
if combo1.Text ='Desimal-Oktal' then
begin
label4.Caption :=('Bilangan Oktal');
label7.Visible :=false;
end
else
begin
label4.Caption :='Bilangan Heksa ';
label7.Visible :=true;
end
end;


Pilihan Combobox:
Desimal-Biner
Desimal-Oktal
Desimal-Heksa


procedure TForm1.cmdhitClick(Sender: TObject);
var i,j,x,y,z:integer;
c,a,b,d:string;
begin
x:=strtoint(txtd.Text);
if combo1.Text ='Desimal-Biner' then
begin
repeat
c:=inttostr(x);

y:=(x div 2);
z:=(x mod 2);
x:=y;
a:=inttostr(z);
list1.Items.Add(c+' dibagi 2 Sisanya '+ a);
txth.SelText :=(a);

until y<2 ;

b:=inttostr(y);
list1.Items.Add('Hasil Bagi tinggal 1 maka Dicetak aza..!!');
txth.SelText :=(b);

j:=length(txth.Text);
for i:= j downto 1 do
edit1.Text :=edit1.Text +(copy(txth.Text ,i,1));
showmessage('Bilangan Biner didapat dari pembacaan Hasil Mod dari Belakang');
end

else
if combo1.Text ='Desimal-Oktal' then
begin
repeat
c:=inttostr(x);
y:=(x div 8);
z:=(x mod 8);
x:=y;
a:=inttostr(z);
list1.Items.Add(c+' dibagi 8 Sisanya '+ a);

txth.SelText :=(a);

until y<8 ;
b:=inttostr(y);
list1.Items.Add('Hasil Bagi = ' + b +' (kurang dari 8) maka Dicetak aza..!!');
txth.SelText :=(b);

j:=length(txth.Text);
for i:= j downto 1 do
edit1.Text :=edit1.Text +(copy(txth.Text ,i,1));
showmessage('Bilangan Oktal didapat dari pembacaan Hasil Mod dari Belakang');
end

else
begin
repeat
c:=inttostr(x);
y:=(x div 16);
z:=(x mod 16);
x:=y;
if z=10 then
a:='A'
else
if z=11 then
a:='B'
else
if z=12 then
a:='C'
else
if z=13 then
a:='D'
else
if z=14 then
a:='E'
else
if z=15 then
a:='F'
else
a:=inttostr(z);
list1.Items.Add(c+' dibagi 16 Sisanya '+ a);
txth.SelText :=(a);

until y<16 ;
if y=10 then
b:='A'
else
if y=11 then
b:='B'
else
if y=12 then
b:='C'
else
if y=13 then
b:='D'
else
if y=14 then
b:='E'
else
if y=15 then
b:='F'
else
b:=inttostr(y);
d:=inttostr(y);
list1.Items.Add('Hasil Bagi = '+ d +' maka Dicetak '+b );
txth.SelText :=(b);

j:=length(txth.Text);
for i:= j downto 1 do
edit1.Text :=edit1.Text +(copy(txth.Text ,i,1)) ;

showmessage('Bilangan Heksadesimal didapat dari pembacaan Hasil Mod dari Belakang');
end;
cmdhit.Enabled :=false;
cmdber.Enabled :=true;
end;

procedure TForm1.cmdberClick(Sender: TObject);
begin
combo1.Text :='';
txtd.Text :='';
list1.Clear ;
txth.Text :='';
edit1.Clear;
cmdhit.Enabled :=true;
cmdber.Enabled :=false;
combo1.SetFocus ;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if label5.Visible = true then
begin
label5.Color := clblue;
label5.Font.Color :=clyellow;
label8.Color :=clyellow;
label8.Font.Color :=clred;
label8.Visible :=true;
label5.Visible :=false;
end
else
begin
label5.Color := clblue;
label5.Font.Color :=clyellow;
label8.Color :=clyellow;
label8.Font.Color :=clred;
label8.Visible :=false;
label5.Visible :=true;
end
end;

Tidak ada komentar: