4.18.2011

CARA MEMBUAT APLIKASI KALKULATOR DENGAND DELPHI 7
BUAT FORM SEPERI DI BAWAH INI
CREATED BY A.Z.I.Z._T.E.K.N.I.K.I.N.F.O.R.M.A.T.I.K.A.
GB.1 A.Z.I.Z.
T.E.K.N.I.K.I.N.F.O.R.M.T.I.K.A.


MASUKAN SOURCE KODE DI BAWAH INI.
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;


type
TForm1 = class(TForm)
ButtonMr: TButton;
ButtonSin: TButton;
Button7: TButton;
Button4: TButton;
Button1: TButton;
Button0: TButton;
ButtonPoint: TButton;
ButtonNot: TButton;
ButtonResult: TButton;
Button2: TButton;
ButtonM: TButton;
ButtonCos: TButton;
Button8: TButton;
Button5: TButton;
ButtonPhi: TButton;
ButtonTan: TButton;
Button9: TButton;
Button6: TButton;
Button3: TButton;
ButtonPlus: TButton;
ButtonFak: TButton;
ButtonLn: TButton;
ButtonKuadrat: TButton;
ButtonKali: TButton;
ButtonOff: TButton;
ButtonLog: TButton;
ButtonAkar: TButton;
ButtonPangkat: TButton;
ButtonDiv: TButton;
ButtonOn: TButton;
ButtonPer: TButton;
ButtonMod: TButton;
ButtonMin: TButton;
ButtonBagi: TButton;
RbDEG: TRadioButton;
RbRAD: TRadioButton;
RbGRADS: TRadioButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure ButtonOnClick(Sender: TObject);
procedure ButtonOffClick(Sender: TObject);
procedure Button0Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure ButtonPlusClick(Sender: TObject);
procedure ButtonMinClick(Sender: TObject);
procedure ButtonKaliClick(Sender: TObject);
procedure ButtonBagiClick(Sender: TObject);
procedure ButtonModClick(Sender: TObject);
procedure ButtonDivClick(Sender: TObject);
procedure ButtonResultClick(Sender: TObject);
procedure ButtonKuadratClick(Sender: TObject);
procedure ButtonPointClick(Sender: TObject);
procedure ButtonNotClick(Sender: TObject);
procedure ButtonAkarClick(Sender: TObject);
procedure ButtonPangkatClick(Sender: TObject);
procedure ButtonLnClick(Sender: TObject);
procedure ButtonLogClick(Sender: TObject);
procedure ButtonPerClick(Sender: TObject);
procedure ButtonFakClick(Sender: TObject);
procedure ButtonPhiClick(Sender: TObject);
procedure ButtonSinClick(Sender: TObject);
procedure ButtonCosClick(Sender: TObject);
procedure ButtonTanClick(Sender: TObject);
procedure ButtonMClick(Sender: TObject);
procedure ButtonMrClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

MemAngka,MemLogic,MemOperator,MemSimpan:string;
implementation
uses math;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Clear;{mengosongkan caption / lines dari memo1}

{menonaktifkan ketiga radiobutton}
RbDEG.Enabled:=false;
RbRAD.Enabled:=false;
RbGRADS.Enabled:=false;

end;

procedure TForm1.ButtonOnClick(Sender: TObject);
begin
{setting ketika tombol on ditekan}
Memo1.Text:=’0′;
{membuat layar kalkulator berisi angka 0}
MemLogic:=’0′;
{merubah nilai variable MemLogic menjadi 0}
MemOperator :=”;
{mengosongkan nilai variable MemOperator}
MemAngka :=’0′;
{merubah nilai variable MemAngka menjadi 0}

{mengaktifkan kembali ketiga radiobutton}
RbDEG.Enabled:=true;
RbRAD.Enabled:=true;
RbGRADS.Enabled:=true;

RbDEG.Checked:=true; {mengecek radiobutton RbDeg}

end;

procedure TForm1.ButtonOffClick(Sender: TObject);
begin
memo1.clear; {mengosongkan tampilan layar calculator}
MemLogic:=”;
MemSimpan :=’0′;

{menonaktifkan ketiga radiobutton}
RbDEG.Checked  :=false;
RbRAD.Checked  :=false;
RbGRADS.Checked:=false;

end;

procedure TForm1.Button0Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
if MemOperator<>” then memo1.Text:=’0′ else
if memo1.text=’0′ then memo1.text:=’0′ else
begin
memo1.Text:=memo1.Text+’0′;
MemLogic:=’1′;
end;
end
else
memo1.Text:=memo1.Text+’0′;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’1′ else
memo1.text:=’1′;
end
else
memo1.Text:=memo1.Text+’1′;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’2′ else
memo1.text:=’2′;
end
else
memo1.Text:=memo1.Text+’2′;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’3′ else
memo1.text:=’3′;
end
else
memo1.Text:=memo1.Text+’3′;

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’4′ else
memo1.text:=’4′;
end
else
memo1.Text:=memo1.Text+’4′;

end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’5′ else
memo1.text:=’5′;
end
else
memo1.Text:=memo1.Text+’5′;

end;

procedure TForm1.Button6Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’6′ else
memo1.text:=’6′ ;
end
else
memo1.Text:=memo1.Text+’6′;

end;

procedure TForm1.Button7Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’7′ else
memo1.text:=’7′ ;
end
else
memo1.Text:=memo1.Text+’7′;

end;

procedure TForm1.Button8Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’8′ else
memo1.text:=’8′;
end
else
memo1.Text:=memo1.Text+’8′;

end;

procedure TForm1.Button9Click(Sender: TObject);
begin
if memo1.text<>” then
if MemLogic=’0′ then
begin
MemLogic:=’1′;
if MemOperator<>” then memo1.Text:=’9′ else
memo1.text:=’9′;
end
else
memo1.Text:=memo1.Text+’9′;

end;

procedure TForm1.ButtonPlusClick(Sender: TObject);
begin
if (memo1.text<>”) then
if MemLogic=’0′ then MemOperator:=’+’ else
if (MemOperator=”)  then
begin
MemOperator:=’+';
MemLogic:=’0′;
MemAngka:=memo1.Text;
end
else
begin
if MemOperator=’+’ then memo1.Text:=floattostr(strtofloat(MemAngka)+strtofloat(memo1.Text));
if MemOperator=’-’ then memo1.Text:=floattostr(strtofloat(MemAngka)-strtofloat(memo1.Text));
if MemOperator=’x’ then memo1.Text:=floattostr(strtofloat(MemAngka)*strtofloat(memo1.Text));
if MemOperator=’/’ then memo1.Text:=floattostr(strtofloat(MemAngka)/strtofloat(memo1.Text));
if MemOperator=’mod’ then memo1.Text:=inttostr(strtoint(MemAngka) mod strtoint(memo1.Text));
if MemOperator=’div’ then memo1.Text:=inttostr(strtoint(MemAngka)div strtoint(memo1.Text));
if MemOperator=’^’ then memo1.Text:=floattostr(exp(strtofloat(memo1.Text)*ln(strtofloat(MemAngka))));
MemAngka:=memo1.Text;
MemOperator:=’+';
MemLogic:=’0′;
end;

end;

procedure TForm1.ButtonMinClick(Sender: TObject);
begin
if (memo1.text<>”) then
if MemLogic=’0′ then MemOperator:=’-’ else
if (MemOperator=”)  then
begin
MemOperator:=’-';
MemLogic:=’0′;
MemAngka:=memo1.Text;
end
else
begin
if MemOperator=’+’ then memo1.Text:=floattostr(strtofloat(MemAngka)+strtofloat(memo1.Text));
if MemOperator=’-’ then memo1.Text:=floattostr(strtofloat(MemAngka)-strtofloat(memo1.Text));
if MemOperator=’x’ then memo1.Text:=floattostr(strtofloat(MemAngka)*strtofloat(memo1.Text));
if MemOperator=’/’ then memo1.Text:=floattostr(strtofloat(MemAngka)/strtofloat(memo1.Text));
if MemOperator=’mod’ then memo1.Text:=inttostr(strtoint(MemAngka) mod strtoint(memo1.Text));
if MemOperator=’div’ then memo1.Text:=inttostr(strtoint(MemAngka)div strtoint(memo1.Text));
if MemOperator=’^’ then memo1.Text:=floattostr(exp(strtofloat(memo1.Text)*ln(strtofloat(MemAngka))));
MemAngka:=memo1.Text;
MemOperator:=’-';
MemLogic:=’0′;
end;

end;

procedure TForm1.ButtonKaliClick(Sender: TObject);
begin
if (memo1.text<>”) then
if MemLogic=’0′ then MemOperator:=’x’ else
if (MemOperator=”)  then
begin
MemOperator:=’x';
MemLogic:=’0′;
MemAngka:=memo1.Text;
end
else
begin
if MemOperator=’+’ then memo1.Text:=floattostr(strtofloat(MemAngka)+strtofloat(memo1.Text));
if MemOperator=’-’ then memo1.Text:=floattostr(strtofloat(MemAngka)-strtofloat(memo1.Text));
if MemOperator=’x’ then memo1.Text:=floattostr(strtofloat(MemAngka)*strtofloat(memo1.Text));
if MemOperator=’/’ then memo1.Text:=floattostr(strtofloat(MemAngka)/strtofloat(memo1.Text));
if MemOperator=’mod’ then memo1.Text:=inttostr(strtoint(MemAngka) mod strtoint(memo1.Text));
if MemOperator=’div’ then memo1.Text:=inttostr(strtoint(MemAngka)div strtoint(memo1.Text));
if MemOperator=’^’ then memo1.Text:=floattostr(exp(strtofloat(memo1.Text)*ln(strtofloat(MemAngka))));
MemAngka:=memo1.Text;
MemOperator:=’x';
MemLogic:=’0′;
end;

end;

procedure TForm1.ButtonBagiClick(Sender: TObject);
begin
if (memo1.text<>”) then
if MemLogic=’0′ then MemOperator:=’/’ else
if (MemOperator=”)  then
begin
MemOperator:=’/';
MemLogic:=’0′;
MemAngka:=memo1.Text;
end
else
begin
if MemOperator=’+’ then memo1.Text:=floattostr(strtofloat(MemAngka)+strtofloat(memo1.Text));
if MemOperator=’-’ then memo1.Text:=floattostr(strtofloat(MemAngka)-strtofloat(memo1.Text));
if MemOperator=’x’ then memo1.Text:=floattostr(strtofloat(MemAngka)*strtofloat(memo1.Text));
if MemOperator=’/’ then memo1.Text:=floattostr(strtofloat(MemAngka)/strtofloat(memo1.Text));
if MemOperator=’mod’ then memo1.Text:=inttostr(strtoint(MemAngka) mod strtoint(memo1.Text));
if MemOperator=’div’ then memo1.Text:=inttostr(strtoint(MemAngka)div strtoint(memo1.Text));
if MemOperator=’^’ then memo1.Text:=floattostr(exp(strtofloat(memo1.Text)*ln(strtofloat(MemAngka))));
MemAngka:=memo1.Text;
MemOperator:=’/';
MemLogic:=’0′;
end;

end;

procedure TForm1.ButtonModClick(Sender: TObject);
begin
if (memo1.text<>”) then
if MemLogic=’0′ then MemOperator:=’mod’ else
if (MemOperator=”)  then
begin
MemOperator:=’mod’;
MemLogic:=’0′;
MemAngka:=memo1.Text;
end
else
begin
if MemOperator=’+’ then memo1.Text:=floattostr(strtofloat(MemAngka)+strtofloat(memo1.Text));
if MemOperator=’-’ then memo1.Text:=floattostr(strtofloat(MemAngka)-strtofloat(memo1.Text));
if MemOperator=’x’ then memo1.Text:=floattostr(strtofloat(MemAngka)*strtofloat(memo1.Text));
if MemOperator=’/’ then memo1.Text:=floattostr(strtofloat(MemAngka)/strtofloat(memo1.Text));
if MemOperator=’mod’ then memo1.Text:=inttostr(strtoint(MemAngka) mod strtoint(memo1.Text));
if MemOperator=’div’ then memo1.Text:=inttostr(strtoint(MemAngka)div strtoint(memo1.Text));
if MemOperator=’^’ then memo1.Text:=floattostr(exp(strtofloat(memo1.Text)*ln(strtofloat(MemAngka))));
MemAngka:=memo1.Text;
MemOperator:=’mod’;
MemLogic:=’0′;
end;

end;

procedure TForm1.ButtonDivClick(Sender: TObject);
begin
if (memo1.text<>”) then
if MemLogic=’0′ then MemOperator:=’div’ else
if (MemOperator=”) then
begin
MemOperator:=’div’;
MemLogic:=’0′;
MemAngka:=memo1.Text;
end
else
begin
if MemOperator=’+’ then memo1.Text:=floattostr(strtofloat(MemAngka)+strtofloat(memo1.Text));
if MemOperator=’-’ then memo1.Text:=floattostr(strtofloat(MemAngka)-strtofloat(memo1.Text));
if MemOperator=’x’ then memo1.Text:=floattostr(strtofloat(MemAngka)*strtofloat(memo1.Text));
if MemOperator=’/’ then memo1.Text:=floattostr(strtofloat(MemAngka)/strtofloat(memo1.Text));
if MemOperator=’mod’ then memo1.Text:=inttostr(strtoint(MemAngka) mod strtoint(memo1.Text));
if MemOperator=’div’ then memo1.Text:=inttostr(strtoint(MemAngka)div strtoint(memo1.Text));
if MemOperator=’^’ then memo1.Text:=floattostr(exp(strtofloat(memo1.Text)*ln(strtofloat(MemAngka))));
MemAngka:=memo1.Text;
MemOperator:=’div’;
MemLogic:=’0′;
end;

end;

procedure TForm1.ButtonResultClick(Sender: TObject);
begin
if MemOperator=’+’ then memo1.Text:=floattostr(strtofloat(MemAngka)+strtofloat(memo1.Text));
if MemOperator=’-’ then memo1.Text:=floattostr(strtofloat(MemAngka)-strtofloat(memo1.Text));
if MemOperator=’x’ then memo1.Text:=floattostr(strtofloat(MemAngka)*strtofloat(memo1.Text));
if MemOperator=’/’ then memo1.Text:=floattostr(strtofloat(MemAngka)/strtofloat(memo1.Text));
if MemOperator=’mod’ then memo1.Text:=inttostr(strtoint(MemAngka) mod strtoint(memo1.Text));
if MemOperator=’div’ then memo1.Text:=inttostr(strtoint(MemAngka)div strtoint(memo1.Text));
if MemOperator=’^’ then memo1.Text:=floattostr(exp(strtofloat(memo1.Text)*ln(strtofloat(MemAngka))));
MemAngka:=memo1.Text;
MemLogic:=’0′;

end;

procedure TForm1.ButtonKuadratClick(Sender: TObject);
begin
if memo1.text<>” then
memo1.Text:=floattostr(sqr(strtofloat(memo1.Text)));

end;

procedure TForm1.ButtonPointClick(Sender: TObject);
begin
if memo1.text<>” then
memo1.Text:=memo1.Text + ‘.’;

end;

procedure TForm1.ButtonNotClick(Sender: TObject);
begin
if memo1.text<>” then
memo1.Text:=floattostr(strtofloat(memo1.Text)*(-1));

end;

procedure TForm1.ButtonAkarClick(Sender: TObject);
begin
if memo1.text<>” then
memo1.Text:=floattostr(sqrt(strtofloat(memo1.Text)));

end;

procedure TForm1.ButtonPangkatClick(Sender: TObject);
begin
if (memo1.text<>”) then
if MemLogic=’0′ then MemOperator:=’^’ else
if (MemOperator=”) then
begin
MemOperator:=’^';
MemLogic:=’0′;
MemAngka:=memo1.Text;
end
else
begin
if MemOperator=’+’ then memo1.Text:=floattostr(strtofloat(MemAngka)+strtofloat(memo1.Text));
if MemOperator=’-’ then memo1.Text:=floattostr(strtofloat(MemAngka)-strtofloat(memo1.Text));
if MemOperator=’x’ then memo1.Text:=floattostr(strtofloat(MemAngka)*strtofloat(memo1.Text));
if MemOperator=’/’ then memo1.Text:=floattostr(strtofloat(MemAngka)/strtofloat(memo1.Text));
if MemOperator=’mod’ then memo1.Text:=inttostr(strtoint(MemAngka) mod strtoint(memo1.Text));
if MemOperator=’div’ then memo1.Text:=inttostr(strtoint(MemAngka)div strtoint(memo1.Text));
if MemOperator=’^’ then memo1.Text:=floattostr(exp(strtofloat(memo1.Text)*ln(strtofloat(MemAngka))));
MemAngka:=memo1.Text;
MemOperator:=’^';
MemLogic:=’0′;
end;

end;

procedure TForm1.ButtonLnClick(Sender: TObject);
begin
if (memo1.text<>”) then
memo1.Text := floattostr(ln(strtofloat(memo1.Text)));

end;

procedure TForm1.ButtonLogClick(Sender: TObject);
begin
if memo1.Text<=inttostr(0) then memo1.Text :=’Error’
else
if (memo1.text<>”) then
memo1.Text := floattostr(log10(strtofloat(memo1.Text)));

end;

procedure TForm1.ButtonPerClick(Sender: TObject);
begin
if memo1.Text = ’0′ then memo1.Text:=’Error divide zero’ else
if memo1.Text<>” then memo1.Text :=floattostr(1/strtofloat(memo1.Text));
MemLogic :=’0′;

end;

procedure TForm1.ButtonFakClick(Sender: TObject);
var i,n,fak:integer;
begin
if memo1.Text<>” then
begin
n  :=strtoint(memo1.Text);
fak:=1;
for i:=1 to n-1 do
fak:=fak*n;

memo1.Text:=inttostr(fak);
MemLogic :=’0′;
end;

end;

procedure TForm1.ButtonPhiClick(Sender: TObject);
begin
if memo1.Text<>” then memo1.Text := floattostr(pi);
end;

procedure TForm1.ButtonSinClick(Sender: TObject);
var sudut:real;
begin
if memo1.Text<>” then
begin
sudut:=strtofloat(memo1.Text);
if RbDeg.Checked = true then  sudut:=sudut*pi/180 else
if RbRad.Checked = true then  sudut:=sudut else
if RbGrads.Checked = true then  sudut:=sudut*pi/200;
memo1.Text := floattostr(sin(sudut));
MemLogic :=’0′;
end;

end;

procedure TForm1.ButtonCosClick(Sender: TObject);
var sudut:real;
begin
if memo1.Text<>” then
begin
sudut:=strtofloat(memo1.Text);
if RbDeg.Checked = true then  sudut:=sudut*pi/180 else
if RbRad.Checked = true then  sudut:=sudut else
if RbGrads.Checked = true then  sudut:=sudut*pi/200;
memo1.Text := floattostr(cos(sudut));
MemLogic :=’0′;
end;

end;

procedure TForm1.ButtonTanClick(Sender: TObject);
var sudut:real;
begin
if memo1.Text<>” then
begin
sudut:=strtofloat(memo1.Text);
if RbDeg.Checked = true then  sudut:=sudut*pi/180 else
if RbRad.Checked = true then  sudut:=sudut else
if RbGrads.Checked = true then  sudut:=sudut*pi/200;
memo1.Text := floattostr(tan(sudut));
MemLogic :=’0′;
end;

end;

procedure TForm1.ButtonMClick(Sender: TObject);
begin
MemSimpan := memo1.Text ;
MemLogic := ’0′;
MemOperator :=”;
MemAngka := ’0′;

end;

procedure TForm1.ButtonMrClick(Sender: TObject);
begin
memo1.Text := MemSimpan ;
end;

end.

TAMPILAN PROGRAM SELURUHNYA

GB.2 A.Z.I.Z.
T.E.K.N.I.K.I.N.F.O.R.M.T.I.K.A.
APABILA Tombol tidak bias di eksekusi tekan tombol On
Selamat mencoba
2009, Posted by adulweb on November 4

Tidak ada komentar:

Posting Komentar