Bagaimana Membuat Form Login dengan username dan password dari database Database yang digunakan dalam contoh ini adalah Ms.Access.
Sebenarnya logika sederhana nya adalah
membandingkan input dari user dengan data yang tersimpan pada database jika sama maka form utama muncul,jika salah Form Login akan mereset.
karena dari logika itulah pengimplementasian coding pada program tergantung dari programmer masing-masing.
*Sebelumnya buat database di Ms.Access dengan tabel seperti berikut
Nama Table:
login username password status admin 123456 admin
operator 123456 operator
user 123456 user
fajar delphi admin
tambahkan berapapun record yang anda mau.
simpan dengan nama data.mdb letakan satu folder dengan file exe.
*Buatlah Desgin Form seperti berikut:
*Tambah kan sebuah Data Module kira2 seperti screen shoot berikut:

disini saya tidak akan menjelaskan masalah pengkoneksian karena saya asumsikan anda sudah mampu mengkoneksikan database.
{Properties name dari masing2 component adalah sama seperti screen shoot data modul.} *Tambahkan sebuah Form baru dan design lah kira2 seperti berikut:
Ubah status Form2 menjadi available form (Project Options/Shift+Ctrl+F11).

*Now Lets Coding

,
Code pada Unit2/Form Login tambahkan sebuah variable string dan sebuah class procedure
:public
path:string;
class function Execute : word;
end;
Berikut adalah Code Implementasi dari Unit2/Form Login
implementation
uses modul, Unit1;//uses unit1(form utama dan unit data modul)
{$R *.dfm}
{ TForm2 }
class Function TForm2.Execute:word;
begin
with TForm2.Create(nil) do
result:=Showmodal;
end;
procedure TForm2.FormShow(Sender: TObject);
begin{pengkoneksian database}
dm.Con.LoginPrompt:=false;
dm.Con.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+path+'data.mdb;Persist Security Info=False';
dm.Con.Connected:=true;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
Form2:=nil;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin {bandingkan input user dengan data yang terdapat pada database}
with dm.Query do begin
Close;
SQL.Clear;
SQL.Text:='select * from login where username='+quotedstr(edit1.Text);
Open;
end;{Jika Username ditemukan atau tidak}
if dm.Query.RecordCount = 0 then //jika lenih dari 0 berarti username ditemukan
showmessage('username tidak ada') //jika tidak ditemukan
else begin{jika username ditemukan}
if dm.Query.FieldByName('password').AsString <> edit2.Text
then showmessage('pastikan username dan password benar')
else close;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;
end.
Code pada Unit1/Main Form langsung saja dari section implementation.
implementation
uses modul, Unit2;
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin {selalu memutuskan koneksi setiap program ditutup}
dm.Con.Connected:=false;
end;
procedure TForm1.FormShow(Sender: TObject);
begin{gak usah dijelasin anda pasti paham kan}
label1.Caption:='WELCOME '+dm.Query.fieldbyname('status').AsString;
end;
end.
Pada Unit DataModule karena ini sederhana tidak diperlukan coding.
Belum selesai boss,ini langkah terakhir..dari Unit Project anda
Begin
Application.Initialize;
Application.CreateForm(Tdm, dm);//unit datamodule dipindahkan ke atas
TForm2.Execute;// Procedure dari class TForm2 tadi di eksekusi sblm main form create
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Jalankan program.Jika ada pertanyaan silahkan trace sendiri

.