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:
publicBerikut adalah Code Implementasi dari Unit2/Form Login
path:string;
class function Execute : word;
end;
implementationCode pada Unit1/Main Form
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.
langsung saja dari section implementation.
Pada Unit DataModule karena ini sederhana tidak diperlukan coding.
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.
Belum selesai boss,ini langkah terakhir..dari Unit Project anda
BeginJalankan program.Jika ada pertanyaan silahkan trace sendiri .
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.
Mas kalo misalkan mau buat databasae..
BalasHapusmisalnnya gini,
saya buat web ada
-masukan nama :_____________
-masukan Email:_____________
nah entar si nama dan emailnya pengen masuk ke database gmn tuh?>????
tolong yah
itu untuk php yah???saya disini belum membahas php,mungkin lain waktu saya bahas untuk php di web ini
BalasHapusProjectnya gan?
BalasHapusbingung ane ga ada gambarnya :D