Sebelum mulai membaca tutorial ini, silakan buka Lazarus dan buat project baru. Setelah project barunya tersedia, tambahkan beberapa variabel sehingga bagian var-nya seperti di bawah ini!
var
Form1: TForm1;
ganti_angka:Boolean;
hasil:real=0;
tangka:real=0;
tanda:(tsama, ttambah, tkurang, tbagi, tkali);
Kemudian, buat tampilan seperti ini!
Jika form-nya tidak cukup untuk menempatkan tombol-tombol yang diperlukan, atur lebar dari form-nya supaya ukurannya cukup untuk menambahkan tombol-tombol tersebut. Kalian bisa melihat bentuk kursornya berubah kalau kalian meletakkan kursor di bawah kanan atau tepian lain dari form. Dari situ, kalian bisa melakukan drag and drop untuk mengubah ukuran formnya. Kalian juga bisa mengubah ukuran form dengan mengubah properti width dan height di tab properti.
Setelah form sudah berisi sekumpulan tombol dan text box, kalian bisa mengubah name-nya. Silakan ubah properti name dan properti lain sesuai dengan apa yang sudah saya sebutkan di bawah ini.
Koma dan plus/min
Kalian perlu mengecek keberadaan min atau koma dengan if sebelum menambahkan koma atau tanda minus. Untuk menghapus sebagian teks dari posisi tertentu dengan panjang tertentu kalian bisa menggunakan function delete. Kalian juga bisa menggunakan setlength untuk "mengurangi" panjang text.
Menambahkan Angka saat Tombol Diklik
Conteng properti ReadOnly dari textbox-nya supaya nilainya true dan teks tidak bisa diketikkan secara langsung di dalamnya.
Coba double click pada semua tombol angka. Copas dan timpa bagian di dari begin hingga "end;" pada contoh di atas. Selain itu, tambahkan juga "var s:string" sebelum begin.
Ganti angka setelah 's+' sesuai dengan angka yang ada di tombolnya. Misalnya, untuk Button2, ganti 's+1' dengan 's+2', berikan kode program berikut ini!
Kalau kode programnya sudah benar, seharusnya kalian bisa klik tombol angka untuk menambahkan angkanya di textbox.
Operator Aritmetika
Untuk operator aritmetika, gunakan kode program di bawah ini :
Tambahkan isi setiap prosedur satu persatu setelah melakukan double click pada tombol di form. Kalau kode programnya sudah benar, kalian seharusnya bisa menggunakan tombol untuk operator aritmetikanya.
Menghapus Text
Saya rasa saya tidak perlu menuliskan "event" untuk semua tombol. Selanjutnya, double click tombol Backspace (yaitu tombol yang berisi "<="). Ubah kode program dalam procedure 'TForm.BackspaceClick' yang terlihat agar terlihat seperti di bawah ini sehingga tombol tersebut berguna untuk menghapus text.
Untuk AC dan CE-nya, kalian bisa menambahkan kode program di bawah ini.
Daripada pusing dan capek ngetik, mungkin lebih baik download source code-nya dengan klik di sini.
var
Form1: TForm1;
ganti_angka:Boolean;
hasil:real=0;
tangka:real=0;
tanda:(tsama, ttambah, tkurang, tbagi, tkali);
Kemudian, buat tampilan seperti ini!
Setelah form sudah berisi sekumpulan tombol dan text box, kalian bisa mengubah name-nya. Silakan ubah properti name dan properti lain sesuai dengan apa yang sudah saya sebutkan di bawah ini.
Name | Jenis | Caption / Text |
---|---|---|
Bilangan | Textbox | (Kosongkan saja) |
AC | Button | AC |
CE | Button | C |
TSQR | Button | SQR |
TSQRT | Button | SQRT |
Button0 | Button | 0 |
Button1 | Button | 1 |
Button2 | Button | 2 |
Button3 | Button | 3 |
Button4 | Button | 4 |
Button5 | Button | 5 |
Button6 | Button | 6 |
Button7 | Button | 8 |
Button9 | Button | 9 |
tambah | Button | + |
Kurang | Button | - |
Kali | Button | x |
Bagi | Button | / |
Sama_dengan | Button | = |
Koma | Button | . |
plus_min | Button | +/- |
Koma dan plus/min
Kalian perlu mengecek keberadaan min atau koma dengan if sebelum menambahkan koma atau tanda minus. Untuk menghapus sebagian teks dari posisi tertentu dengan panjang tertentu kalian bisa menggunakan function delete. Kalian juga bisa menggunakan setlength untuk "mengurangi" panjang text.
procedure TForm1.komaClick(Sender: TObject);
VAR S:String;
i:integer;
ada:Boolean=false;
begin
s:=Bilangan.Text;
for i:=1 to length(s) do
begin
if(s[i]='.')then
begin
ada:=true;
break;
end;
end;
if(not(ada))then s:=s+'.';
Bilangan.Text:=s;
end;
procedure TForm1.plus_minClick(Sender: TObject);
var s:string;
begin
s:=Bilangan.Text;
if(s<>'0') then
begin
if(s[1]<>'-')then
begin
s:='-'+s;
Bilangan.Text:=s;
end
else
begin
delete(s, 1, 1);
Bilangan.Text:=s;
end;
end;
end;
Menambahkan Angka saat Tombol Diklik
Conteng properti ReadOnly dari textbox-nya supaya nilainya true dan teks tidak bisa diketikkan secara langsung di dalamnya.
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
s:=Bilangan.Text;
if(length(s)<12)then
begin
s:=s+'1';
Bilangan.Text:=s;
end;
end;
Ganti angka setelah 's+' sesuai dengan angka yang ada di tombolnya. Misalnya, untuk Button2, ganti 's+1' dengan 's+2', berikan kode program berikut ini!
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
s:=Bilangan.Text;
if(length(s)<12)then
begin
s:=s+'2';
Bilangan.Text:=s;
end;
end;
Operator Aritmetika
Untuk operator aritmetika, gunakan kode program di bawah ini :
procedure TForm1.kurangClick(Sender: TObject);
var s:string;
tmp:integer;
begin
s:=Bilangan.Text;
tangka:=StrToFloat(s);
if(ganti_angka)then
begin
case tanda of
ttambah:
Begin
hasil:=hasil+tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tkurang:
Begin
hasil:=hasil-tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tkali:
Begin
hasil:=hasil*tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tbagi:
Begin
hasil:=hasil / tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tsama:
Begin
hasil:=tangka;
end;
end;
ganti_angka:=false;
end;
tanda:=tkurang;
end;
procedure TForm1.tambahClick(Sender: TObject);
var s:string;
tmp:integer;
begin
s:=Bilangan.Text;
tangka:=StrToFloat(s);
if(ganti_angka)then
begin
case tanda of
ttambah:
Begin
hasil:=hasil+tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tkurang:
Begin
hasil:=hasil-tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tkali:
Begin
hasil:=hasil*tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tbagi:
Begin
hasil:=hasil / tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tsama:
Begin
hasil:=tangka;
end;
end;
ganti_angka:=false;
end;
tanda:=ttambah;
end;
procedure TForm1.bagiClick(Sender: TObject);
var s:string;
tmp:integer;
begin
s:=Bilangan.Text;
tangka:=StrToFloat(s);
if(ganti_angka)then
begin
case tanda of
ttambah:
Begin
hasil:=hasil+tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tkurang:
Begin
hasil:=hasil-tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tkali:
Begin
hasil:=hasil*tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tbagi:
Begin
hasil:=hasil / tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tsama:
Begin
hasil:=tangka;
end;
end;
ganti_angka:=false;
end;
tanda:=tbagi;
end;
procedure TForm1.kaliClick(Sender: TObject);
var s:string;
tmp:integer;
begin
s:=Bilangan.Text;
tangka:=StrToFloat(s);
if(ganti_angka)then
begin
case tanda of
ttambah:
Begin
hasil:=hasil+tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tkurang:
Begin
hasil:=hasil-tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tkali:
Begin
hasil:=hasil*tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tbagi:
Begin
hasil:=hasil / tangka;
s:=floattostr(hasil);
Bilangan.Text:=s;
end;
tsama:
Begin
hasil:=tangka;
end;
end;
ganti_angka:=false;
end;
tanda:=tkali;
end;
procedure TForm1.TSQRTClick(Sender: TObject);
VAR S:String;
begin
s:=Bilangan.Text;
tangka:=StrToFloat(s);
tangka:=sqrt(tangka);
s:=FloatToStr(tangka);
Bilangan.Text:=s;
end;
procedure TForm1.TSQRClick(Sender: TObject);
var s:string;
tmp:integer;
begin
s:=Bilangan.Text;
tangka:=StrToFloat(s);
tangka:=sqr(tangka);
s:=FloatToStr(tangka);
Bilangan.Text:=s;
end;
Menghapus Text
Saya rasa saya tidak perlu menuliskan "event" untuk semua tombol. Selanjutnya, double click tombol Backspace (yaitu tombol yang berisi "<="). Ubah kode program dalam procedure 'TForm.BackspaceClick' yang terlihat agar terlihat seperti di bawah ini sehingga tombol tersebut berguna untuk menghapus text.
procedure TForm1.BackspaceClick(Sender: TObject);
var s:string;
begin
s:=Bilangan.Text;
if(length(s)>1)then
begin
SetLength(s, Length(s)-1);
Bilangan.Text:=s;
end;
end;
Untuk AC dan CE-nya, kalian bisa menambahkan kode program di bawah ini.
procedure TForm1.ACClick(Sender: TObject);
begin
hasil:=0;
tanda=0;
tangka:=0;
Bilangan.Text:='0';
end;
procedure TForm1.CEClick(Sender: TObject);
begin
Bilangan.Text:='0';
end;
Daripada pusing dan capek ngetik, mungkin lebih baik download source code-nya dengan klik di sini.