Wednesday 13 March 2013

Delphi vs Lazarus (Kasus Pembuatan Kalkulator)



Sudah lama ga posting untuk menuutp tahun 2011 ini saya akan memposting.
Pembuatan kalkulator ini digunakan untuk tugas mata kuliah Perancangan Sistem Berorientasi object, yang kali ini saya membuat dengan menggunakan lazarus, mengapa lazarus? Padahal tugas harus dikerjakan dengan Delphi, karena lazarus free (tanpa harus mengecrak, keygen atau membajak) dan srciptnya sama dengan Delphi, semoga aja dengan menggunakan lazarus dapat mengurangi ketergantungan software yang berbayar. Dan kali ini saya membuat dalam 2 versi yaitu dengan Delphi 7 (hasil pembajakan dan jangan di tiru) kemudian menggunaan lazarus dengan os Jangkar 5.0 (berbasis LinuxMint 12).

Berikut pembuatan dengan lazarus
tampilan seluruh


tampilan formnya


berikut sourcecodenya
unit Kalkulator;


{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, LCLType;

type

{ TfrmKalkulator }

TfrmKalkulator = class(TForm)
cmd0: TButton;
cmd9: TButton;
cmdTitik: TButton;
cmdPlusMin: TButton;
cmdClear: TButton;
cmdBagi: TButton;
cmdKali: TButton;
cmdKurang: TButton;
cmdTambah: TButton;
cmdSamaDengan: TButton;
cmd1: TButton;
cmd2: TButton;
cmd3: TButton;
cmd4: TButton;
cmd5: TButton;
cmd6: TButton;
cmd7: TButton;
cmd8: TButton;
txtAngka: TEdit;
procedure proses_hitung();
procedure proses_inc(kar : Char);
procedure proses_array(kar : Char);
procedure FormCreate(Sender: TObject);
procedure cmd0Click(Sender: TObject);
procedure cmd1Click(Sender: TObject);
procedure cmd2Click(Sender: TObject);
procedure cmd3Click(Sender: TObject);
procedure cmd4Click(Sender: TObject);
procedure cmd5Click(Sender: TObject);
procedure cmd6Click(Sender: TObject);
procedure cmd7Click(Sender: TObject);
procedure cmd8Click(Sender: TObject);
procedure cmd9Click(Sender: TObject);
procedure cmdPlusMinClick(Sender: TObject);
procedure cmdTitikClick(Sender: TObject);
procedure cmdClearClick(Sender: TObject);
procedure cmdTambahClick(Sender: TObject);
procedure cmdKurangClick(Sender: TObject);
procedure cmdKaliClick(Sender: TObject);
procedure cmdBagiClick(Sender: TObject);
procedure cmdSamaDenganClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
{ private declarations }
public
{ public declarations }
end;

var
frmKalkulator: TfrmKalkulator;
tempstr : String;
tmpOpr:string;
tmpangka:string;
hasil : Real;

implementation
procedure TfrmKalkulator.FormCreate(Sender: TObject);
begin
hasil := 0;
tempstr := '';
txtangka.Text:= FloatToStr(hasil);
end;

procedure TfrmKalkulator.proses_inc(kar : Char);
begin
tempstr:=txtangka.Text;
tempstr:=tempstr+kar;
hasil:=StrToFloat(tempstr);
txtAngka.Text:=FloatToStr(hasil);
end;
{$R *.lfm}
procedure TfrmKalkulator.cmd0Click(Sender: TObject);
begin
proses_inc('0');
end;

procedure TfrmKalkulator.cmd1Click(Sender: TObject);
begin
proses_inc('1');
end;

procedure TfrmKalkulator.cmd2Click(Sender: TObject);
begin
proses_inc('2');
end;

procedure TfrmKalkulator.cmd3Click(Sender: TObject);
begin
proses_inc('3');
end;

procedure TfrmKalkulator.cmd4Click(Sender: TObject);
begin
proses_inc('4');
end;

procedure TfrmKalkulator.cmd5Click(Sender: TObject);
begin
proses_inc('5');
end;

procedure TfrmKalkulator.cmd6Click(Sender: TObject);
begin
proses_inc('6');
end;

procedure TfrmKalkulator.cmd7Click(Sender: TObject);
begin
proses_inc('7');
end;

procedure TfrmKalkulator.cmd8Click(Sender: TObject);
begin
proses_inc('8');
end;

procedure TfrmKalkulator.cmd9Click(Sender: TObject);
begin
proses_inc('9');
end;

procedure TfrmKalkulator.cmdPlusMinClick(Sender: TObject);
var angka:real;
begin
angka:=StrToFloat(txtAngka.Text);
if (angka>0) then
angka:=(-angka)
else
angka:=angka+(-angka)+(-angka);
txtAngka.Text:=FloatToStr(angka);
end;

procedure TfrmKalkulator.cmdTitikClick(Sender: TObject);
begin
if (pos('.', txtAngka.Text) = 0) then
txtAngka.Text:=txtAngka.Text+'.';

end;

procedure TfrmKalkulator.cmdClearClick(Sender: TObject);
begin
tempstr := '';
hasil := 0;
txtAngka.Text:='0';
tmpopr:='';
tmpangka:='';
end;

procedure TfrmKalkulator.proses_array(kar : Char);
begin
tmpangka:=txtangka.Text;
txtangka.Text:='';
tmpOpr:=kar;

end;

procedure TfrmKalkulator.cmdTambahClick(Sender: TObject);
begin
proses_array('+');
end;

procedure TfrmKalkulator.cmdKurangClick(Sender: TObject);
begin
proses_array('-');
end;

procedure TfrmKalkulator.cmdKaliClick(Sender: TObject);
begin
proses_array('x');
end;

procedure TfrmKalkulator.cmdBagiClick(Sender: TObject);
begin
proses_array('/');
end;

procedure TfrmKalkulator.proses_hitung();
begin
if tmpOpr='+' then txtAngka.Text:=floattostr(strtofloat(tmpangka)+strtofloat(txtAngka.Text));
if tmpOpr='-' then txtAngka.Text:=floattostr(strtofloat(tmpangka)-strtofloat(txtAngka.Text));
if tmpOpr='x' then txtAngka.Text:=floattostr(strtofloat(tmpangka)*strtofloat(txtAngka.Text));
if tmpOpr='/' then txtAngka.Text:=floattostr(strtofloat(tmpangka)/strtofloat(txtAngka.Text));
end;
procedure TfrmKalkulator.cmdSamaDenganClick(Sender: TObject);
begin
proses_hitung();
end;
procedure TfrmKalkulator.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Key=96) then proses_inc('0');
if (Key=97) then proses_inc('1');
if (Key=98) then proses_inc('2');
if (Key=99) then proses_inc('3');
if (Key=100) then proses_inc('4');
if (Key=101) then proses_inc('5');
if (Key=102) then proses_inc('6');
if (Key=103) then proses_inc('7');
if (Key=104) then proses_inc('8');
if (Key=105) then proses_inc('9');
if (Key=48) then proses_inc('0');
if (Key=49) then proses_inc('1');
if (Key=50) then proses_inc('2');
if (Key=51) then proses_inc('3');
if (Key=52) then proses_inc('4');
if (Key=53) then proses_inc('5');
if (Key=54) then proses_inc('6');
if (Key=55) then proses_inc('7');
if (Key=56) then proses_inc('8');
if (Key=57) then proses_inc('9');
end;
end.

tinggal dijalankan

1 comments: