Jika Anda membuat aplikasi untuk beberapa user group atau user level. Misalnya aplikasi anda digunakan untuk mengolah data penjualan suatu barang dan di aplikasi anda tersebut misalnya terdapat beberapa modul/menu diantaranya input data barang, input data penjualan, input data pembelian, laporan barang masuk, laporan barang keluar, laporan rugi laba, administrasi user dan lain sebagainya.
Nah tidak semua orang/user tentunya mempunyai hak untuk mengakses semua modul/menu tersebut. Misalnya ada dua level user yaitu Administrator dan operator. Operator hanya bertugas untuk menginput data barang, input data pembelian, input data penjualan, laporan barang masuk dan laporan barang keluar. Untuk Laporan Keuangan Rugi Laba dan administrasi user hanya boleh diakses oleh Administrator yang mempunyai kewenangan penuh terhadap seluruh aplikasi. Untuk itu tentunya aplikasi anda membutuhkan sebuah validasi user yaitu lewat sebuah proses login.
berikut ini saya akan memberikan sebuah contoh pembuatan aplikasi untuk validasi login user berbasis databases di borland delphi. Disini saya menggunakan borland delphi versi 7.
Sebelum mulai dengan Delphi anda harus membuat dahulu sebuah database misalnya kita gunakan database Microsoft Access.
- Masuk ke Microsoft Access buat database baru : File | New | Blank Database. Simpan di folder C:\APP\Login dengan nama DelphiTutorial.mdb.
- Buat table baru : Insert | Table. Pada kotak dialog yang muncul pilih Design View klik ok.
Buat struktur tabel seperti dibawah ini :
Filed Name | Data Type | Size |
Username | Text | 30 |
Password | Text | 50 |
Status | Text | 1 |
Field Status digunakan untuk pengenalan level user (0 untuk operator dan 1 untuk administrator). Berikan primary key pada field Username dan simpan table dengan nama Login. Kemudian isikan beberapa data, contoh :
Username | Password | Status |
yana | belajar | 0 |
yanadoe | delphi tutor | 1 |
- Buat sebuah project baru di Delphi : File | New | Aplication
- Tambahkan dua buah komponen Edit dan dua buah komponen Button dan dua buah komponen Label
- Tambahkan sebuah form lagi : File | New | Form.
Set property tiap komponen sebagai berikut :
Nama Komponen | Nama Property | Nilai |
- Form1 | Name | FLogin |
- Form2 | Name | FMenu |
- Label1 | Name | Label1 |
Caption | Username | |
- Label2 | Name | Label2 |
Caption | Password | |
- Edit1 | Name | EUsername |
- Edit2 | Name | EPassword |
PasswordChar | * | |
- Button1 | Name | BtnOk |
Caption | Login | |
- Button2 | Name | BtnCancel |
Caption | Batal |
Sehingga tampilannya seperti ini
- Simpan project di C:\APP\Login dengan nama PLogin.dpr.
- Klik Flogin, tambahkan sebuah komponen AdoQuery (ada di tab ADO)
- Set Property Namenya : AQLogin
- Set Property ConnectionString : Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DelphiTutorial.mdb;Persist Security Info=False
- klik form Fmenu kemudian tambahkan komponen MainMenu.
- Dobel klik komponen MainMenu dan tambahkan satu menu dan beberapa submenu sehingga tampilannya seperti dibawah ini :
- dobel klik komponen BtnOk di form FLogin kemudian isikan kode berikut :
aqlogin.Close;
aqlogin.SQL.Text := 'select * from login where username = :un and password = :pw';
aqlogin.Prepared := true;
aqlogin.Parameters[0].Value := EUsername.Text;
aqlogin.Parameters[1].Value := EPassword.Text;
aqlogin.Open;
if aqlogin.RecordCount < 1 then // jika data tidak ada, tampilkan pesan error
Messagedlg('Username tidak dikenal',mterror,[mbok],0)
else if aqlogin.RecordCount > 0 then // jika data ada, cek status
begin
if aqlogin.FieldValues['status'] = '0' then // jika status 0, maka menu administrator disembunyikan
begin
fMenu.caption := 'Anda login sebagai Operator';
fmenu.Administrator1.visible := false;
end
else if aqlogin.FieldValues['status'] = '1' then
fMenu.caption := 'Anda login sebagai Administrator'
else
begin
Messagedlg('User level tidak jelas, login gagal',mterror,[mbok],0);
exit;
end;
end;
flogin.Hide;
fMenu.show;
application.Terminate;
Kode pada BtnOk akan memeriksa username dan password dengan data yang ada di tabel login. Jika data ada (login sukses) maka akan ditampilkan form FMenu. Main Form untuk project ini adalah Flogin jadi meskipun anda sudah menutup form FMenu dan seolah-olah aplikasi sudah tertutup, padahal sebenarnya aplikasi tersebut masih berjalan dikarenakan Flogin yang jadi Main Form belum tertutup. Untuk membuktikannya, klik kanan di taskbar dan pilih Task Manager. Klik pada tab Proses kemudian cari entry dengan nama Plogin.exe.
Untuk mengatasi masalah tersebut, klik di FMenu kemudian pada Object Inspector klik tab Events kemudian dobel klik pada event OnClose, lalu tambahkan kode berikut :
application.Terminate;
Dengan demikian aplikasi akan di terminate ketika anda menutup form Fmenu
.
3 comments:
mohon maaf, tapi ada kelamahan di tutorial anda
saat saya coba buat dan modifikasi sendiri (modifikasi nama form serta database yg diperlukan) terjadi hal yang aneh saat login
hal tersebut akibat dari kurangnya aksi pada baris sbb
if aqlogin.RecordCount < 1 then // jika data tidak ada, tampilkan pesan error
Messagedlg('Username tidak dikenal',mterror,[mbok],0)
yg terjadi adalah user masih tetap dapat login dgn privilege admin namun dgn tampilan user
mohon bantuannya untuk membuat aplikasi terminated saat user salah atau form otomatis melakukan reset form saat user salah
makasih banyak mas suya lynx atas masukannya. udah aku cek tadi, tapi aplikasi ini berjalan lancar aja, mungkin ada yg kelewat kali kodenya.
kalo buat reset textbox username dan password pakai ini aja
if aqlogin.RecordCount < 1 then // jika data tidak ada, tampilkan pesan error
begin
Messagedlg('Username tidak dikenal',mterror,[mbok],0);
eusername.Clear;
epassword.Clear;
eusername.setfocus;
{ kalau mau terminate applikasi
pakai : application.terminate }
Exit;
end;
mas q nyoba kok g bisa y setelah mengisi password dan saya klik ok ko' error salahnya di
prepared:=true;
mohon pencerahannya...
terimah kasih....
Post a Comment