scientific calculator

13
Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom StaticText1 StaticText2 Edit1 Button Membuat Program Kalkulator Sebelumnya ubahlah format angka dari Regional setting di komputer menjadi format Indonesia. 1. Buatlah Desain Form menggunakan objek-objek yang ada pada Componen Pallete, seperti dibawah ini : 2. Ubahlah Properties dalam Object Inspector seperti pada tabel dibawah ini : Component Pallete Object Inspector Tab Nama Object Properties Keterangan Standard Edit1 Name EdInput Text (Kosongkan) Button1 Name BtSin Caption Sin Button2 Name BtCos Caption Cos Button3 Name BtTan Caption Tan Button4 Name BtX2 Caption X^2 Button5 Name BtAkar Caption 2Vx Button6 Name BtPangkat Caption X^Y Button7 Name BtExp Caption Exp Button8 Name BtLn Caption Ln Button9 Name Bt1perX Caption 1/X Button10 Name BtFaktorial Caption N! Button11 Name BtBaru

Upload: mail02

Post on 24-Oct-2014

129 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

StaticText1 StaticText2

Edit1

Button

Membuat Program Kalkulator Sebelumnya ubahlah format angka dari Regional setting di komputer menjadi format Indonesia. 1. Buatlah Desain Form menggunakan objek-objek yang ada pada Componen Pallete, seperti dibawah ini :

2. Ubahlah Properties dalam Object Inspector seperti pada tabel dibawah ini :

Component Pallete Object Inspector

Tab Nama Object Properties Keterangan

Standard

Edit1 Name EdInput Text (Kosongkan)

Button1 Name BtSin Caption Sin

Button2 Name BtCos Caption Cos

Button3 Name BtTan Caption Tan

Button4 Name BtX2 Caption X^2

Button5 Name BtAkar Caption 2Vx

Button6 Name BtPangkat Caption X^Y

Button7 Name BtExp Caption Exp

Button8 Name BtLn Caption Ln

Button9 Name Bt1perX Caption 1/X

Button10 Name BtFaktorial Caption N!

Button11 Name BtBaru

Page 2: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

Caption &Baru

Button12 Name BtKeluar Caption &Keluar

Button13 Name BtKali Caption *

Button14 Name BtTambah Caption +

Button15 Name BtBagi Caption /

Button16 Name BtKurang Caption -

Button17 Name BtPersen Caption %

Button18 Name BtHasil Caption =

Button19 Name BtBulat Caption +/-

Button20 Name BtTitik Caption .

Button21 Name Bt0 Caption 0

Button22 Name Bt1 Caption 1

Button23 Name Bt2 Caption 2

Button24 Name Bt3 Caption 3

Button25 Name Bt4 Caption 4

Button26 Name Bt5 Caption 5

Button27 Name Bt6 Caption 6

Button28 Name Bt7 Caption 7

Button29 Name Bt8 Caption 8

Button30 Name Bt9 Caption 9

Additional

StaticText1

Alignment taCenter AutoSize False BevelKind bkTile BevelOuter bvSpace Caption (Kosongkan) BorderStyle sbsSunken Name stOperasi

StaticText2

AutoSize False Caption (Kosongkan) Name stCetak BorderStyle sbsSunken

Page 3: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

3. Tambahkan unit math, dalam pendeklarasian uses pada bagian interface dalam unit. Ini dimaksudkan karena kita akan menggunakan operasi-operasi matematika seperti : Sin, Cos, Tan, dll. uses

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

4. Deklarasikan beberapa variabel global, seperti di bawah ini :

var Form1 : TForm1; Hasil : Real; //untuk menampung hasil proses Kosong : Boolean; //untuk pengecekan input data NoBaru : Boolean; //untuk mengecek hasil proses baru I,N : Integer; //untuk Variabel indek dalam program

5. Deklarasikan Procedure secara manual, seperti dibawah ini : procedure BtCosClick(Sender: TObject); procedure BtTanClick(Sender: TObject); procedure AktifkanTombol; procedure CekInput; procedure BtExpClick(Sender: TObject); procedure BtLnClick(Sender: TObject);

6. Buat Procedure diatas dalam bagian Implementation : implementation {$R *.dfm} Procedure TForm1.AktifkanTombol; Begin btpangkat.Enabled:=True; BtTitik.Enabled:=True; end; Procedure TForm1.CekInput; Begin AktifkanTombol; if length(trim(edinput.Text))=0 then Begin application.MessageBox('Masukan angka dulu...','Cek Input',

MB_IconStop); edInput.SetFocus; Kosong:=True; end else Begin Kosong:=False; exit; end; end;

Page 4: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

7. Buat Kode Program untuk setiap Button, sehingga source program lengkapnya seperti di bawah ini :

unit Ukalkulator2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, math, Mask; type TForm1 = class(TForm) Bt0: TButton; Bt1: TButton; Bt2: TButton; Bt3: TButton; Bt4: TButton; Bt5: TButton; Bt6: TButton; Bt7: TButton; Bt8: TButton; Bt9: TButton; BtTitik: TButton; Button12: TButton; StaticText1: TStaticText; StaticText2: TStaticText; BtBaru: TButton; BtKeluar: TButton; BtKali: TButton; BtBagi: TButton; BtTambah: TButton; BtKurang: TButton; BtBulat: TButton; BtHasil: TButton; StaticText3: TStaticText; BtSin: TButton; BtCos: TButton; BtTan: TButton; BtX2: TButton; BtAkar: TButton; BtPangkat: TButton; StaticText4: TStaticText; BtExp: TButton; BtLn: TButton; Bt1perX: TButton; BtFaktorial: TButton; StaticText5: TStaticText; Edinput: TEdit; StaticText6: TStaticText; StCetak: TStaticText; StOperasi: TStaticText; StaticText11: TStaticText; procedure Bt1Click(Sender: TObject); procedure Bt0Click(Sender: TObject);

Page 5: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

procedure Bt2Click(Sender: TObject); procedure Bt3Click(Sender: TObject); procedure Bt4Click(Sender: TObject); procedure Bt5Click(Sender: TObject); procedure Bt6Click(Sender: TObject); procedure Bt7Click(Sender: TObject); procedure Bt8Click(Sender: TObject); procedure Bt9Click(Sender: TObject); procedure BtBaruClick(Sender: TObject); procedure BtX2Click(Sender: TObject); procedure BtAkarClick(Sender: TObject); procedure BtKeluarClick(Sender: TObject); procedure BtPangkatClick(Sender: TObject); procedure BtHasilClick(Sender: TObject); procedure BtSinClick(Sender: TObject); procedure BtCosClick(Sender: TObject); procedure BtTanClick(Sender: TObject); Procedure AktifkanTombol; procedure CekInput; procedure BtExpClick(Sender: TObject); procedure BtLnClick(Sender: TObject); procedure Bt1perXClick(Sender: TObject); procedure BtFaktorialClick(Sender: TObject); procedure BtKaliClick(Sender: TObject); procedure BtTambahClick(Sender: TObject); procedure BtBulatClick(Sender: TObject); procedure BtTitikClick(Sender: TObject); procedure BtKurangClick(Sender: TObject); procedure BtBagiClick(Sender: TObject); procedure Button12Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1 : TForm1; Hasil : Real; Kosong : Boolean; NoBaru : Boolean; I,N:Integer; implementation {$R *.dfm} Procedure TForm1.AktifkanTombol; Begin btpangkat.Enabled:=True; BtTitik.Enabled:=True; end;

Page 6: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

Procedure TForm1.CekInput; Begin AktifkanTombol; if length(trim(edinput.Text))=0 then Begin application.MessageBox('Masukan angka dulu...','Cek Input',MB_IconStop); edInput.SetFocus; Kosong:=True; end else Begin Kosong:=False; exit; end; end; procedure TForm1.Bt1Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='1'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'1'; end; procedure TForm1.Bt0Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='0'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'0'; end; procedure TForm1.Bt2Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='2'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'2'; end;

Page 7: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

procedure TForm1.Bt3Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='3'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'3'; end; procedure TForm1.Bt4Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='4'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'4'; end; procedure TForm1.Bt5Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='5'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'5'; end; procedure TForm1.Bt6Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='6'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'6'; end; procedure TForm1.Bt7Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='7'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'7';

Page 8: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

end; procedure TForm1.Bt8Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='8'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'8'; end; procedure TForm1.Bt9Click(Sender: TObject); begin if NoBaru=True Then begin edinput.Text:='9'; NoBaru:=False; end else edinput.Text:=Edinput.Text+'9'; end; procedure TForm1.BtBaruClick(Sender: TObject); begin

NoBaru:=False; aktifkanTombol; StOperasi.Caption:=''; edinput.Text:=''; stcetak.Caption:=''; edinput.SetFocus;

end; procedure TForm1.BtX2Click(Sender: TObject); var Kw:Real; begin CekInput; if kosong=true then exit else begin kw:=strToFloat(edinput.Text); edinput.Text:=FloatToStr(sqr(kw)); end; end; procedure TForm1.BtAkarClick(Sender: TObject); var aKw:Real; begin CekInput; if kosong=true then exit

Page 9: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

else begin akw:=strToFloat(edinput.Text); edinput.Text:=FloatToStr(sqrt(aKw)); end; end; procedure TForm1.BtKeluarClick(Sender: TObject); begin halt; end; procedure TForm1.BtPangkatClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin stcetak.Caption:=edinput.Text; stOperasi.Caption:='x^y'; edinput.Text:=''; edinput.SetFocus; btpangkat.Enabled:=False; BtTitik.Enabled:=False; end; end; procedure TForm1.BtHasilClick(Sender: TObject); var x:integer; Bil1,Bil2:Real; begin CekInput; if kosong=true then exit else begin if length(trim(stCetak.Caption))=0 then exit; bil1:=strToFloat(stCetak.Caption); bil2:=strToFloat(EdInput.Text); if StOperasi.Caption='x^y' then Begin hasil:=1; for x:=1 to strToInt(EdInput.Text) do begin Hasil:=Hasil*Bil1; End; End else if StOperasi.Caption='*' Then Hasil:=bil1*bil2 else if StOperasi.Caption='/' Then Hasil:=bil1/bil2 else if StOperasi.Caption='+' Then

Page 10: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

Hasil:=bil1+bil2 else if StOperasi.Caption='-' Then Hasil:=bil1-bil2 else exit; aktifkanTombol; StCetak.Caption:=FloatToStr(Bil2); EdInput.Text:=FloatToStr(Hasil); NoBaru:=True; end; end; procedure TForm1.BtSinClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin Hasil:=StrToFloat(edinput.Text); edinput.Text:=floatToStr(Sin(Hasil)); end; end; procedure TForm1.BtCosClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin Hasil:=StrToFloat(edinput.Text); edinput.Text:=floatToStr(Cos(Hasil)); end; end; procedure TForm1.BtTanClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin Hasil:=StrToFloat(edinput.Text); edinput.Text:=floatToStr(Tan(Hasil)); end; end;

Page 11: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

procedure TForm1.BtExpClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin Hasil:=StrToFloat(edinput.Text); edinput.Text:=floatToStr(Exp(Hasil)); end; end; procedure TForm1.BtLnClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin Hasil:=StrToFloat(edinput.Text); edinput.Text:=floatToStr(Ln(Hasil)); end; end; procedure TForm1.Bt1perXClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin Hasil:=StrToFloat(edinput.Text); edinput.Text:=floatToStr(1/Hasil); end; end; procedure TForm1.BtFaktorialClick(Sender: TObject); var Hfaktorial:Integer; begin CekInput; if kosong=true then exit else begin hasil:=1; HFaktorial:=StrToInt(edinput.Text); for i:=HFaktorial downto 1 do begin hasil:=hasil*i; edinput.Text:=FloatToStr(Hasil); end; end; end;

Page 12: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

procedure TForm1.BtKaliClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin stcetak.Caption:=edinput.Text; stOperasi.Caption:='*'; edinput.Text:=''; edinput.SetFocus; end; end; procedure TForm1.BtTambahClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin stcetak.Caption:=edinput.Text; stOperasi.Caption:='+'; edinput.Text:=''; edinput.SetFocus; end; end; procedure TForm1.BtBulatClick(Sender: TObject); Var Minus:Real; begin CekInput; if kosong=true then exit else begin Minus:=StrToFloat(EdInput.Text); EdInput.Text:=FloatToStr(Minus*(0-1)); end; end; procedure TForm1.BtTitikClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin BtTitik.Enabled:=False; EdInput.Text:=EdInput.Text+','; end; end;

Page 13: Scientific Calculator

Praktikum 2B Pemrograman Delphi 7 Imam Gunawan, M. Kom

procedure TForm1.BtKurangClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin stcetak.Caption:=edinput.Text; stOperasi.Caption:='-'; edinput.Text:=''; edinput.SetFocus; end; end; procedure TForm1.BtBagiClick(Sender: TObject); begin CekInput; if kosong=true then exit else begin stcetak.Caption:=edinput.Text; stOperasi.Caption:='/'; edinput.Text:=''; edinput.SetFocus; end; end; procedure TForm1.Button12Click(Sender: TObject); Var Persen:Real; begin CekInput; if kosong=true then exit else begin Persen:=StrToFloat(EdInput.Text); EdInput.Text:=FloatToStr(Persen/100); end; end; end.