Form login ini berfungsi untuk membatasi user dalam menggunakan aplikasi yaitu yang terkait dengan pengelolaan data-data tertentu di dalam database. Disini ada 2 level user yaitu User Administrator dan User biasa (User). Dalam contoh kali ini apabila yang login adalah Administrator, maka semua menu akan aktif, akan tetapi kalau yang login adalah User biasa (User), maka menu Pegawai dan Petugas akan tidak aktif.
Untuk membuat fasilitas login ini, di dalam database “DB_PayrollDAO” buat tabel Petugas seperti berikut :
Kemudian buat class LoginDAO.cs, class Petugas.cs dan Form Login frmLogin.cs seperti gambar di bawah ini :
Untuk kode programnya silahkan ikuti seperti petunjuk di bawah ini.
Kode Program pada class Petugas.cs :
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace AplikasiPayrollDAO.Model
7 {
8 public class Petugas
9 {
10 private string kode_Petugas;
11 public string Kode_Petugas
12 {
13 get { return kode_Petugas; }
14 set { kode_Petugas = value; }
15 }
16
17 private string nama_Petugas;
18 public string Nama_Petugas
19 {
20 get { return nama_Petugas; }
21 set { nama_Petugas = value; }
22 }
23
24 private string password_Petugas;
25 public string Password_Petugas
26 {
27 get { return password_Petugas; }
28 set { password_Petugas = value; }
29 }
30
31 private string status_Petugas;
32 public string Status_Petugas
33 {
34 get { return status_Petugas; }
35 set { status_Petugas = value; }
36 }
37 }
38 }
Kode Program pada class LoginDAO.cs :
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 using MySql.Data.MySqlClient;
7 using AplikasiPayrollDAO.Model;
8
9 namespace AplikasiPayrollDAO.DAO
10 {
11 public class LoginDAO
12 {
13 private MySqlConnection conn;
14 private string strSql = string.Empty;
15
16 //constructor
17 public LoginDAO(MySqlConnection conn)
18 {
19 this.conn = conn;
20 }
21
22 //Buat Method MappingRowToObject
23 public Petugas MappingRowToObject(MySqlDataReader dtr)
24 {
25 Petugas lgn = new Petugas();
26
27 lgn.Kode_Petugas = dtr["Kode_Petugas"] is DBNull ? string.Empty : dtr["Kode_Petugas"].ToString();
28 lgn.Nama_Petugas = dtr["Nama_Petugas"] is DBNull ? string.Empty : dtr["Nama_Petugas"].ToString();
29 lgn.Password_Petugas = dtr["Password_Petugas"] is DBNull ? string.Empty : dtr["Password_Petugas"].ToString();
30 lgn.Status_Petugas = dtr["Status_Petugas"] is DBNull ? string.Empty : dtr["Status_Petugas"].ToString();
31
32 return lgn;
33 }
34
35 //Salin record berdasarkan Primary Key di dalam tabel Petugas ke dalam class Login.cs
36 public Petugas GetByKodePetugas(string Kode_Petugas)
37 {
38 Petugas lgn = null;
39
40 strSql = "SELECT * FROM Petugas WHERE Kode_Petugas = @1";
41
42 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))
43 {
44 cmd.Parameters.AddWithValue("@1", Kode_Petugas);
45
46 using (MySqlDataReader dtr = cmd.ExecuteReader())
47 {
48 if (dtr.Read())
49 {
50 lgn = MappingRowToObject(dtr);
51 }
52 }
53 }
54
55 return lgn;
56 }
57
58 //Cek tabel Petugas apakah terdapat record dengan Kode_Jabatan yang disebutkan
59 public char CheckRecord(string Kode_Petugas, string Password_Petugas)
60 {
61 char YN = 'N';
62 strSql = "SELECT * FROM Petugas WHERE Kode_Petugas = @1 AND Password_Petugas =@2";
63
64 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))
65 {
66 cmd.Parameters.AddWithValue("@1", Kode_Petugas);
67 cmd.Parameters.AddWithValue("@2", Password_Petugas);
68
69 using (MySqlDataReader dtr = cmd.ExecuteReader())
70 {
71 if (dtr.HasRows)
72 {
73 YN = 'Y';
74 }
75 else
76 {
77 YN = 'N';
78 }
79 }
80 }
81
82 return YN;
83 }
84 }
85 }
Kode Program pada class frmLogin.cs :
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9
10 using AplikasiPayrollDAO.DAO;
11 using AplikasiPayrollDAO.Model;
12 using AplikasiPayrollDAO.View;
13
14 namespace AplikasiPayrollDAO.View
15 {
16 public partial class frmLogin : Form
17 {
18 private LoginDAO lgnDAO = null;
19 private frmMenuUtama frmParent = null;
20
21 //untuk menampung return value operasi database
22 private char resultChr = 'N';
23
24
25 public frmLogin(frmMenuUtama frmMU, DBConnection conn)
26 {
27 InitializeComponent();
28
29 //Objek form menu utama
30 frmParent = frmMU;
31
32 //disable menu pada form menuutama
33 frmParent.DisEnbMenuItem(false, false, false, false, false, false, false, false, false, false, true, true);
34
35 //Buat objek lgnDAO untuk operasi database
36 lgnDAO = new LoginDAO(conn.GetConnection());
37 }
38
39 //Method untuk menghanlde MessageBox.show
40 private void msgInfo(string prompt)
41 {
42 MessageBox.Show(prompt, "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
43 }
44
45 //Method untuk mengosongkan input
46 private void ClearTextBox()
47 {
48 txtKodePetugas.Clear();
49 txtPassword.Clear();
50
51 txtKodePetugas.Focus();
52 }
53
54 private void btnBatal_Click(object sender, EventArgs e)
55 {
56 ClearTextBox();
57 }
58
59 private void btnTutup_Click(object sender, EventArgs e)
60 {
61 ClearTextBox();
62 this.Hide();
63 }
64
65 private void btnMasuk_Click(object sender, EventArgs e)
66 {
67 if (txtKodePetugas.Text == "" || txtPassword.Text == "")
68 {
69 msgInfo("Lengkapi terlebih dahulu Kode Petugas dan Password Petugas...");
70 }
71 else if (txtKodePetugas.Text.Length > 5 || txtPassword.Text.Length > 10)
72 {
73 msgInfo("Kode Petugas Maksimum 5 Karakter...\nNama Petugas Maksimum 10 Karakter ");
74 }
75 else
76 {
77 Petugas lgn = new Petugas();
78
79 lgn.Kode_Petugas = txtKodePetugas.Text;
80 lgn.Password_Petugas = txtPassword.Text;
81
82 //msgInfo("Cek Records");
83 resultChr = lgnDAO.CheckRecord(txtKodePetugas.Text, txtPassword.Text);
84
85 if (resultChr == 'Y')
86 {
87 lgn = lgnDAO.GetByKodePetugas(txtKodePetugas.Text);
88
89 //Informasi Panel
90 frmParent.statusStripPanel(lgn.Kode_Petugas, lgn.Nama_Petugas, lgn.Status_Petugas);
91
92 if (lgn.Status_Petugas == "Administrator")
93 {
94 //Setting Menu Administrator
95 frmParent.DisEnbMenuItem(true, true, true, true, true, true, true, true, true, true, false, true);
96 }
97 else
98 {
99 //Setting Menu User
100 frmParent.DisEnbMenuItem(true, true, true, true, false, false, true, true, true, true, false, true);
101 }
102
103 //Sembunyikan Form Login;
104 ClearTextBox();
105 this.Hide();
106 }
107 else
108 {
109 msgInfo("Periksa kembali Kode Petugas dan Password yang anda masukkan !!!");
110 }
111 }
112 }
113 }
114 }
Perbaikan dan Tambahan Kode Program class frmMenuUtama.cs :
Edit constructor frmMenuUtama :
Tambahkan Public Method seperti berikut :
39 //Setting Menu
40 public void DisEnbMenuItem(bool fil, bool gol, bool jab, bool pot, bool peg, bool pet, bool trans, bool lap, bool util, bool kel, bool mas, bool sel)
41 {
42 fileToolStripMenuItem.Enabled = fil;
43 golonganToolStripMenuItem.Enabled = gol;
44 jabatanToolStripMenuItem.Enabled = jab;
45 potonganToolStripMenuItem.Enabled = pot;
46 pegawaiToolStripMenuItem.Enabled = peg;
47 petugasToolStripMenuItem.Enabled = pet;
48
49 transaksiToolStripMenuItem.Enabled = trans;
50 laporanToolStripMenuItem.Enabled = lap;
51 utilityToolStripMenuItem.Enabled = util;
52
53 keluarToolStripMenuItem.Enabled = kel;
54 masukToolStripMenuItem.Enabled = mas;
55 selesaiToolStripMenuItem.Enabled = sel;
56 }
57
58 //informasi petugas
59 public void statusStripPanel(string panel1, string panel2, string panel3)
60 {
61 Panel1.Text = panel1 + " ";
62 Panel2.Text = panel2 + " ";
63 Panel3.Text = panel3 + " ";
64 }
Dan tambahkan Private Method seperti berikut :
85 private void loginToolStripMenuItem_Click(object sender, EventArgs e)
86 {
87 frmMasuk.Show();
88 }
89
90 private void keluarToolStripMenuItem1_Click(object sender, EventArgs e)
91 {
92 DisEnbMenuItem(false, false, false, false, false, false, false, false, false, false, true, true);
93 statusStripPanel("Kode", " Nama", "Status");
94 }
95
96 private void selesaiToolStripMenuItem_Click(object sender, EventArgs e)
97 {
98 this.Close();
99 }
Selesai sudah pembuatan fasilitas login untuk aplikasi payroll ini. Silahkan jalankan aplikasi yang sudah anda buat, namun sebelumnya jangan lupa untuk memasukkan 2 buah record ke dalam tabel Petugas, dimana 1 record berisi Status Pegawai = Administrator dan sebuah record lagi berisi Status Pegawai = User. Perhatikan gambar di bawah ini :
Untuk source code program dapat di download disini. Sekian dulu tutorial kali ini, mudah-mudahan bonus berikutnya bisa segera saya tulis. Selamat mencoba.
gan bisa minta source codenya yang sdah lengkap dengan tmbhan fitur lainnya ?
BalasHapus