Delphi vs Lazarus (Study 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.


berikut hasil setelah di jalankan.


Semoga aja dengan penggunaa Lazarus ini dapat mengubah pemikiran kita bahwa menggunakan yang Free bisa juga untuk membuat program sesuai dengan yang kita inginkan.

Untuk mengambil lazarus silahkan download di http://sourceforge.net/projects/lazarus/files/

la kog ga da delphinya, he..he... untuk lebih lengkap baca ebook saya aja deh
SIlahkan download disini

kalau mau source kedua2nya yaitu delphi n lazarus silahkan download disini