Welcome to Abdul Malik Ikhsan's Blog

Pengunaan Config Global pada Delphi

Posted in Tutorial Delphi by samsonasik on November 2, 2007

Sama dengan pemrograman lain, penggunaan config global untuk memudahkan coding dan syntax yang tidak perlu, karena berisi coding-coding generic untuk program tersebut,
Contoh penggunaan di database seperti ini :
Misalkan kita punya Server bernama Serverku, dengan database SQLServer2000 :
Kita buat database dbtest, dengan tabel matakuliah yang berisi kode_matakuliah dan nama_matakuliah bertipe string untuk memudahkan. Ok, sekarang kita buat Datamodule (File->New->Datamodule) — Bernama DM, kita simpan dengan nama file umodul.pas, berikut code unitnya :

Code:

unit umodul;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB;
type
TDM = class(TDataModule)
ADO: TADOConnection;
//Properti Nama Adoquery
Q: TADOQuery;
//Properti Nama Datasource
D: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;

implementation

{$R *.DFM}

end.

———-
Let’s go to global generic code :
Buat Unit baru, bukan form baru lho, tapi unit Baru(File ->New ->Unit) : Kita simpan dengan nama file uconfig.pas, berikut code-nya

Code:
unit uconfig;
interface
procedure db;
procedure seleksi(perintah:String);
implementation
uses umodul;
procedure db;
begin
with DM.ADO do
begin
ConnectionString :=’Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=testdb;Data Source=Serverku’;
LoginPrompt :=False;
end;
end;

procedure seleksi;
begin
with DM do
begin
ADO.Close;
q.Close;
q.SQL.Clear;
q.SQL.Add(perintah);
ADO.Open;
q.Open;
q.Active:=True;
end;
end;

end.

————————–
Dari configurasi global di atas, kita bisa panggil di form secara hemat :
Kita buat satu form, tambahkan object DBGrid ke dalam object form, arahkan Datasource ke DM.D , berikut coding unitnya :

Code:
unit uutama;
interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses umodul,uconfig;
{$R *.DFM}

procedure TForm1.FormActivate(Sender: TObject);
begin
db;
seleksi(‘select * from matakuliah’);
end;

end.

—————
Run program, akan tampil daftar matakuliah, dari sini kita bisa mengembangkan sendiri, selamat mencoba .

Cara Extends Kelas di Delphi

Posted in Tutorial Delphi by samsonasik on October 3, 2007

Saya contohkan kita punya kelas manusia, dan kelas mahasiswa yang merupakan keturunan manusia :
Cara membuat kelas manusia, klik file – > new -> Unit, simpan dengan nama umanusia.pas

Code:
unit umanusia;
interface
type manusia = class
private
makan,minum,nama,alamat:String;
public
constructor manusia(x:String;y:String);
procedure setnama(n:String);
procedure setalamat(n:String);
function getnama:String;
function getalamat:String;
function getnyam2:String;
end;
implementation
constructor manusia.manusia(x:String;y:String);
begin
makan:=x;
minum:=y;
end;
procedure manusia.setnama(n:String);
begin
nama:=n;
end;
procedure manusia.setalamat(n:String);
begin
alamat:=n;
end;
function manusia.getnama:String;
begin
result:=nama;
end;
function manusia.getalamat:String;
begin
result:=alamat;
end;
function manusia.getnyam2:String;
begin
result:=’makan ‘+makan+’ dan minum ‘+minum;
end;
end.


———————–
Sekarang, kita buat kelas mahasiswa yang merupakan turunan dari manusia : –> umahasiswa

Code:
unit umahasiswa;
interface
uses umanusia;
type mahasiswa = class(manusia)
public
function belajar:String;
end;
implementation
function mahasiswa.belajar:String;
begin
result:=’harus rajin banget lho ‘;
end;end.


————
Now, kita bisa panggil kelas turunan tersebut di form, misalkan form1, unit1.pas

Code:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,umahasiswa,StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Edit2:TEdit;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
o:mahasiswa;

implementation

{$R *.DFM}

procedure TForm1.FormActivate(Sender: TObject);
begin
o:=mahasiswa.manusia(‘sate’,’es teh’);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
o.setnama(edit1.Text);
o.setalamat(edit2.text);
label1.caption:=o.getnama+’ beralamat di ‘+o.getalamat+’ sedang ‘+o.getnyam2+’ dan habis itu belajar ‘+o.belajar;
end;

end.

Penggunaan class pada Delphi

Posted in Tutorial Delphi by samsonasik on October 2, 2007

Penggunaan class dalam delphi, hampir mirip dengan java, php, ataupun yang lainnya, hanya saja, constructor,procedure, maupun function semuanya dideklarasikan dulu, baru diisi, Kita coba ya … ūüôā
Kita buka aplikasi borland delphinya :
Kita buat satu unit baru, sebagai kelas, klik file, new – > Unit -> simpan dengan nama umanusia.pas , sekarang, kita tuliskan kode programmnya :

Code:
unit umanusia;interface
type manusia = class
private
makan,minum,nama,alamat:String;
public
constructor manusia(ma:String;mi:String);
procedure setnama(n:String);
procedure setalamat(n:String);
function getnama:String;
function getalamat:String;
function getnyam:String;
end;
implementation
constructor manusia.manusia(ma:String;mi:String);
begin
makan:=ma;
minum:=mi;
end;
procedure manusia.setnama(n:String);
begin
nama:=n;
end;
procedure manusia.setalamat(n:String);
begin
alamat:=n;
end;
function manusia.getnama:String;
begin
result:=nama;
end;
function manusia.getalamat:String;
begin
result:=alamat;
end;
function manusia.getnyam:String;
begin
result:=makan+’ dan minum ‘+minum;
end;
end.

class.JPG
Kita sekarang bisa panggil di aplikasinya , misalkan ada form tampilkanmanusia, kita simpan dengan nama unit1, berikut kode programmnya

Code:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,umanusia,
StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
o:manusia;
implementation

{$R *.DFM}

procedure TForm1.FormActivate(Sender: TObject);
begin
//konstruktor
o:=manusia.manusia(‘bakso’,’es teh’);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
o.setnama(edit1.Text);
label1.caption:=o.getnama+’ sedang makan ‘+o.getnyam;
end;

end.

——————–

tampilkanclass.jpg

Install FastReport 3

Posted in Tutorial Delphi by samsonasik on June 29, 2007

1. Pertama, kita siapkan dulu fastreportnya :
2. kita klik dulu Recompile.exe
3. select the compiler, pilih delphi 5 atau delphi 7, saya contohkan yang delphi 5
4. FR Version pilih yang professional
5. pilih radiobutton recompile All Packages
6. Terbentuk folder LIBD5 untuk Delphi 5, kalau delphi 7, LIBD7,
7. Buka Delphinya, pilih Tools, Environtment Options, Library, pada Library path tambahkan alamat folder LIBd5 atau LIbd7-nya, OK
8. Klik Component, Install Packages, pilih semua *.bpl yang ada di LibD5 atau LibD7,
/*
******************
***selamat mencoba
******************
*/

penggunaan “function” pada delphi

Posted in Tutorial Delphi by samsonasik on June 15, 2007

Atas permintaan dari pembaca yang budiman, berikut saya tampilkan sedikit ulasan tentang function di delphi, ambil contoh aplikasi mencari¬† volume balok, berarti kita buat dulu function hitungvolumebalok-nya , berikut contoh syntax-sisnya…:
****************
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Button1: TButton;
    Label4: TLabel;
   
    //deklarasi function    
    function hitungvolumebalok(panjang,lebar,tinggi:integer):integer;
   
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//panggil function
function TForm1.hitungvolumebalok(panjang,lebar,tinggi:integer):integer;
var volume:integer;
begin
     volume:=panjang*lebar*tinggi;
     //panggil hasil, result adalah method default.
     result:=volume;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   //jalankan 
¬†¬† if ((Edit1.Text=”) or (Edit2.Text=”) or (edit3.Text=”)) then
¬†¬† showmessage(‘masukkan dulu angkanya’)
   else
   label4.Caption:=inttostr(hitungvolumebalok(StrToInt(Edit1.Text),StrToInt(edit2.Text),StrToInt(edit3.Text)));
end;

{ error handlingnya }
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in[‘0’..’9′]) then
key:=#0;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in[‘0’..’9′]) then
key:=#0;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in[‘0’..’9′]) then
key:=#0;

end;

end.

//berikut tampilan programnya…

function-photo.jpg

login dengan mencocokkan query(pada sql server)

Posted in Tutorial Delphi by samsonasik on March 30, 2007

pertama, kita buat database dulu, contoh database tutorial, dan kita buat table t_user berisi username dan password.
———
masuk ke program delphinya
buat form login, datamodule, dan form menu utama
untuk form login c0ba gunakan form1,tambahkan datamodule2 dan form3,untuk kemudian datamodule2 kita tambahkan adoconnection1, adoquery1. dan datasource1, setelah itu pada form login kita tambahkan edit1, edit2, dan button 1, edit1 untuk username, edit2 untuk password dan button1 untuk tombol login yang bila cocok akan mengarah ke form3, berikut tampilannya
=======================================================login1.jpg

untuk syntax pada button1(login) adalah sebagai berikut :
with datamodule2 do
begin
ADOConnection1.Close;
adoquery1.Close;
adoquery1.SQL.Clear;
//mencocokkan dengan data yang ada
adoquery1.SQL.Add(‘select * from t_user where username=”’+Edit1.Text+”’ and password=”’+Edit2.Text+””);
ADOConnection1.open;
adoquery1.Prepared;
adoquery1.Open;
adoquery1.Active:=true;
if ADOQuery1.IsEmpty then
{jika hasilnya tidak ada maka}
begin
showmessage(‘username atau password salah’);
edit1.Text:=”;
edit2.Text:=”;
edit1.SetFocus;
end
else{jika hasilnya ada}
begin
form3.showmodal;
edit1.Text:=”;
edit2.Text:=”;
end;

end;
************************************************************

Database tanpa nama / alias

Posted in Tutorial Delphi by samsonasik on March 15, 2007

untuk yang baru pemula, biasanya menggunakan delphi dengan database ke paradox(database yang sebenarnya bisa ke sql server, oracle, acces, mysql, dll-red), biasanya,kita diajari oleh dosen atau teman kita untuk menggunakan alias yang ‘seolah’ itu nama databasenya, walhasil, ketika kita copy program kita, dan paste ke komputer lain, kita akan mendapati bahwa alias tersebut belum ada, dan kita harus buat lagi alias dengan nama yang sama, nah, kalau tanpa alias caranya

(more…)

Syntax Report dari tanggal sampai tanggal

Posted in Tutorial Delphi by samsonasik on January 31, 2007

form2.Query1.Close;
form2.Query1.sql.clear;
form2.Query1.SQL.add(‘select * from t_pinjam where (tgl>=:datetimepicker1) and (tgl<=:datetimepicker2)’);
form2.query1.params[0].asdate:=datetimepicker1.date;
form2.query1.params[1].asdate:=DateTimePicker2.Date;
form2.Query1.Prepare;
form2.Query1.Open;
form2.QuickRep1.Preview;

Install ZeosDb

Posted in Tutorial Delphi by samsonasik on January 13, 2007

ZeosDB berfungsi untuk menghubungkan Delphi dengan Mysql, software ini gratis, tidak trial, dan tinggal install aja.
Cara install ZeosDb adalah sebagai berikut :
1. Buka folder EOSDBO_6_5_0_ALPHA\packages\delphi5
2. Double klik Zeosdbo.bpg
3. Project–Compile All Project–Build All Project
4. Project–Add Existing Project
5. Copykan mysql.dll dan kawan-kawan yang *.dll ke Windows\system32
6. Copykan semua file di ZEOSDBO_6_5_0_ALPHA\packages\delphi5\build ke C:\Program Files\Borland\Delphi5\lib
7. Install dan Compile Project, close, buka kembali aplikasi, di sebelah paling kanan ada Component Pallet ada Zeos Access.
…….
selamat mencoba.

Error Handling Simpan data

Posted in Tutorial Delphi by samsonasik on January 13, 2007

procedure TFormInputDataBarang.BitBtnSimpanClick(Sender: TObject);
begin
if (not ((ADOQuery1.State=dsEdit) or
(ADOQuery1.State=dsInsert)))
then
begin
if (ADOQuery1.MaxRecords=0)
then
begin
showmessage(‘anda sedang tidak dalam mode edit/update data’);
ADOConnection1.Close;
DataSource1.DataSet.Close;
ADOQuery1.Close;
ADOConnection1.Open;
DataSource1.DataSet.Open;
ADOQuery1.Open;
end
else
begin
showmessage(‘anda sedang tidak dalam mode edit/update data’);
DataSource1.DataSet.Close;
ADOQuery1.Close;
ADOQuery1.Open;
DataSource1.DataSet.Open;
dbedit1.Text:=”;
dbedit2.Text:=”;
ComboBox1.Text:=”;
dbedit3.Text:=”;
dbgrid1.Refresh;
exit;
end;
end;

if ((ADOQuery1.State=dsEdit) or
(ADOQuery1.State=dsInsert))
then
begin
if ((dbedit1.Text=”) and (dbedit2.Text=”) or (dbedit2.Text=”)) then
begin
showmessage(‘isi dulu data’);
dbedit1.SetFocus;
end
else
begin
BitBtn1.Enabled:=true;
BitBtn2.Enabled:=true;
BitBtn3.Enabled:=true;
BitBtn4.Enabled:=true;
BitBtn5.Enabled:=true;
BitBtn6.Enabled:=true;
BitBtn7.Enabled:=true;
BitBtn8.Enabled:=true;
ADOQuery1.Post;
ADOQuery1.Close;
ADOQuery1.Prepared;
ADOQuery1.Open;
end;
end;
end;

Error Handling Cancel data (delphi-red)

Posted in Tutorial Delphi by samsonasik on January 13, 2007

procedure TFMintaBarang.BitBtnCancelClick(Sender: TObject);
begin
if (not ((ADOTable1.State=dsEdit) or (adotable1.State=dsInsert)))
then
begin
if (adotable1.MaxRecords=0)
then
begin
BitBtn10.Enabled:=true;
BitBtn11.Enabled:=true;
BitBtn12.Enabled:=true;
BitBtn13.Enabled:=true;
BitBtn14.Enabled:=true;
BitBtn15.Enabled:=true;
ADOConnection1.Close;
DataSource1.DataSet.Close;
ADOTable1.Close;
ADOConnection1.Open;
DataSource1.DataSet.Open;
ADOTable1.Open;
end
else
begin
BitBtn10.Enabled:=true;
BitBtn11.Enabled:=true;
BitBtn12.Enabled:=true;
BitBtn13.Enabled:=true;
BitBtn14.Enabled:=true;
BitBtn15.Enabled:=true;
ADOConnection1.Close;
DataSource1.DataSet.Close;
ADOTable1.Close;
ADOConnection1.Open;
DataSource1.DataSet.Open;
ADOTable1.Open;
exit;
end;
end;
if ((adotable1.State=dsEdit) or (ADOTable1.State=dsInsert))
then
begin
if (ADOTable1.MaxRecords=0)
then
begin
showmessage(‘Tidak jadi Update Data’);
BitBtn10.Enabled:=true;
BitBtn11.Enabled:=true;
BitBtn12.Enabled:=true;
BitBtn13.Enabled:=true;
BitBtn14.Enabled:=true;
BitBtn15.Enabled:=true;
ADOConnection1.Close;
DataSource1.DataSet.Close;
ADOTable1.Close;
ADOConnection1.Open;
DataSource1.DataSet.Open;
ADOTable1.Open;
end
else
begin
BitBtn10.Enabled:=true;
BitBtn11.Enabled:=true;
BitBtn12.Enabled:=true;
BitBtn13.Enabled:=true;
BitBtn14.Enabled:=true;
BitBtn15.Enabled:=true;
ADOConnection1.Close;
DataSource1.DataSet.Close;
ADOTable1.Close;
ADOConnection1.Open;
DataSource1.DataSet.Open;
adotable1.Open;
exit;
end ;
end;
end;