a. Membuat Class GolonganDAO
Untuk membuat class GolonganDAO, klik kanan pada folder DAO -> Add -> Class..., perhatikan gambar berikut :
Membuat Class GolonganDAO
Untuk tutorial kali ini saya menggunakan versi MySQL Connector/Net 6.7.4.
Silahkan download library tersebut kemudian lakukan instalasi.
Adapun langkah-langkah untuk menambahkan library tersebut kedalam project, klik kanan References -> Add Reference... :
Menambahkan Library MySql Connection
- Menambahkan namespace MySql.Data.MySqlClient dan AplikasiPayrollDAO.Model
namespace MySql.Data.MySqlClient dibutuhkan agar bisa menggunakan class-class untuk mengakses database MySQL sedangkan namespace AplikasiPayrollDAO.Model agar bisa mengakses class Golongan dari class GolonganDao.
- Menambah beberapa variabel pendukung seperti conn, strSql dan sebuah constructor
16 private MySqlConnection conn;17 private string strSql = string.Empty;1819 //constructor20 public GolonganDAO(MySqlConnection conn)21 {22 this.conn = conn;23 }
- Menambahkan method Save, Update dan Delete
103 public int Update(Golongan glg)104 {105 strSql = "UPDATE Golongan SET TJ_Suami_Istri = @1, TJ_Anak = @2, Uang_Makan = @3, Uang_Lembur = @4, Askes = @5 WHERE Golongan = @6";106107 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))108 {109 cmd.Parameters.AddWithValue("@1", glg.TJ_Suami_Istri);110 cmd.Parameters.AddWithValue("@2", glg.TJ_Anak);111 cmd.Parameters.AddWithValue("@3", glg.Uang_Makan);112 cmd.Parameters.AddWithValue("@4", glg.Uang_Lembur);113 cmd.Parameters.AddWithValue("@5", glg.Askes);114 cmd.Parameters.AddWithValue("@6", glg.Tk_Golongan);115116 return cmd.ExecuteNonQuery();117 }118 }119120 public int Save(Golongan glg)121 {122 strSql = "INSERT INTO Golongan (Golongan, TJ_Suami_Istri, TJ_Anak, Uang_Makan, Uang_Lembur, Askes) VALUES (@1, @2, @3, @4, @5, @6)";123124 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))125 {126 cmd.Parameters.AddWithValue("@1", glg.Tk_Golongan);127 cmd.Parameters.AddWithValue("@2", glg.TJ_Suami_Istri);128 cmd.Parameters.AddWithValue("@3", glg.TJ_Anak);129 cmd.Parameters.AddWithValue("@4", glg.Uang_Makan);130 cmd.Parameters.AddWithValue("@5", glg.Uang_Lembur);131 cmd.Parameters.AddWithValue("@6", glg.Askes);132133 return cmd.ExecuteNonQuery();134 }135 }136137 public int Delete(string Tk_Golongan)138 {139 strSql = "DELETE FROM Golongan WHERE Golongan = @1";140141 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))142 {143 cmd.Parameters.AddWithValue("@1", Tk_Golongan);144145 return cmd.ExecuteNonQuery();146 }147 }
- Menambahkan method GetAll dan GetByTkGolongan
25 private Golongan MappingRowToObject(MySqlDataReader dtr)26 {27 Golongan glg = new Golongan();2829 glg.Tk_Golongan = dtr["Golongan"] is DBNull ? string.Empty : dtr["Golongan"].ToString();30 glg.TJ_Suami_Istri = dtr["TJ_Suami_Istri"] is Nullable ? 0 : (int)dtr["TJ_Suami_Istri"];31 glg.TJ_Anak = dtr["TJ_Anak"] is Nullable ? 0 : (int)dtr["TJ_Anak"];32 glg.Uang_Makan = dtr["Uang_Makan"] is Nullable ? 0 : (int)dtr["Uang_Makan"];33 glg.Uang_Lembur = dtr["Uang_Lembur"] is Nullable ? 0 : (int)dtr["Uang_Lembur"];34 glg.Askes = dtr["Askes"] is Nullable ? 0 : (int)dtr["Askes"];3536 return glg;37 }3839 public Golongan GetByTkGolongan(string Tk_Golongan)40 {41 Golongan glg = null;4243 strSql = "SELECT * FROM Golongan WHERE Golongan = @1";4445 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))46 {47 cmd.Parameters.AddWithValue("@1", Tk_Golongan);4849 using (MySqlDataReader dtr = cmd.ExecuteReader())50 {51 if (dtr.Read())52 {53 glg = MappingRowToObject(dtr);54 }55 }56 }5758 return glg;59 }606162 public List<Golongan> GetAll()63 {64 List<Golongan> daftarGlg = new List<Golongan>();65 strSql = "SELECT Golongan, TJ_Suami_Istri, TJ_Anak, Uang_Makan, Uang_Lembur, Askes FROM Golongan ORDER BY Golongan";6667 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))68 {69 using (MySqlDataReader dtr = cmd.ExecuteReader())70 {71 while (dtr.Read())72 {73 daftarGlg.Add(MappingRowToObject(dtr));74 }75 }76 }7778 return daftarGlg;79 }
- Menambahkan method CheckRecord
81 public bool CheckRecords(string Tk_Golongan)82 {83 strSql = "SELECT * FROM Golongan WHERE Golongan = @1";8485 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))86 {87 cmd.Parameters.AddWithValue("@1", Tk_Golongan);8889 using (MySqlDataReader dtr = cmd.ExecuteReader())90 {91 if (dtr.HasRows)92 {93 return true;94 }95 else96 {97 return false;98 }99 }100 }101 }
b. Membuat Class JabatanDAO
Untuk membuat class JabatanDAO, klik kanan pada folder DAO -> Add -> Class..., perhatikan gambar berikut :
Membuat Class JabatanDAO
Kemudian lengkapi kode class JabatanDAO nya :.
- Menambahkan namespace MySql.Data.MySqlClient dan AplikasiPayrollDAO.Model
Tambahkan namespace MySql.Data.MySqlClient dan AplikasiPayrollDAO.Model. Serta jangan lupa untuk memberikan keyword public pada class ini.
- Menambah beberapa variabel pendukung seperti conn, strSql dan sebuah constructor
- Menambahkan method Save, Update dan Delete
22 public int Save(Jabatan jbt)23 {24 strSql = "INSERT INTO Jabatan (Kode_Jabatan, Nama_Jabatan, Gaji_Pokok, TJ_Jabatan) VALUES (@1, @2, @3, @4)";2526 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))27 {28 cmd.Parameters.AddWithValue("@1", jbt.Kode_Jabatan);29 cmd.Parameters.AddWithValue("@2", jbt.Nama_Jabatan);30 cmd.Parameters.AddWithValue("@3", jbt.Gaji_Pokok);31 cmd.Parameters.AddWithValue("@4", jbt.TJ_Jabatan);3233 return cmd.ExecuteNonQuery();34 }35 }3637 public int Update(Jabatan jbt)38 {39 strSql = "UPDATE Jabatan SET Nama_Jabatan = @1, Gaji_Pokok = @2, TJ_Jabatan = @3 WHERE Kode_Jabatan = @4";4041 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))42 {43 cmd.Parameters.AddWithValue("@1", jbt.Nama_Jabatan);44 cmd.Parameters.AddWithValue("@2", jbt.Gaji_Pokok);45 cmd.Parameters.AddWithValue("@3", jbt.TJ_Jabatan);46 cmd.Parameters.AddWithValue("@4", jbt.Kode_Jabatan);4748 return cmd.ExecuteNonQuery();49 }50 }5152 public int Delete(string Kode_Jabatan)53 {54 strSql = "DELETE FROM Jabatan WHERE Kode_Jabatan = @1";5556 using (MySqlCommand cmd = new MySqlCommand(strSql, Conn))57 {58 cmd.Parameters.AddWithValue("@1", Kode_Jabatan);5960 return cmd.ExecuteNonQuery();61 }62 }
- Menambahkan method GetAll dan GetByKodeJabatan
65 public Jabatan MappingRowToObject(MySqlDataReader dtr)66 {67 Jabatan jbt = new Jabatan();6869 jbt.Kode_Jabatan = dtr["Kode_Jabatan"] is DBNull ? string.Empty : dtr["Kode_Jabatan"].ToString();70 jbt.Nama_Jabatan = dtr["Nama_Jabatan"] is DBNull ? string.Empty : dtr["Nama_Jabatan"].ToString();71 jbt.Gaji_Pokok = dtr["Gaji_Pokok"] is Nullable ? 0 : (int)dtr["Gaji_Pokok"];72 jbt.TJ_Jabatan = dtr["TJ_Jabatan"] is Nullable ? 0 : (int)dtr["TJ_Jabatan"];7374 return jbt;75 }7677 public List<Jabatan> GetAll()78 {79 List<Jabatan> daftarJbt = new List<Jabatan>();80 strSql = "SELECT * FROM Jabatan ORDER BY Kode_Jabatan";8182 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))83 {84 using (MySqlDataReader dtr = cmd.ExecuteReader())85 {86 while (dtr.Read())87 {88 daftarJbt.Add(MappingRowToObject(dtr));89 }90 }91 }9293 return daftarJbt;94 }9596 public Jabatan GetByKodeJabatan(string Kode_Jabatan)97 {98 Jabatan jbt = null;99100 strSql = "SELECT * FROM Jabatan WHERE Kode_Jabatan = @1";101102 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))103 {104 cmd.Parameters.AddWithValue("@1", Kode_Jabatan);105106 using (MySqlDataReader dtr = cmd.ExecuteReader())107 {108 if (dtr.Read())109 {110 jbt = MappingRowToObject(dtr);111 }112 }113 }114115 return jbt;116 }
- Menambahkan method CheckRecord
118 public bool CheckRecords(string Kode_Jabatan)119 {120 strSql = "SELECT * FROM Jabatan WHERE Kode_Jabatan = @1";121122 using (MySqlCommand cmd = new MySqlCommand(strSql, conn))123 {124 cmd.Parameters.AddWithValue("@1", Kode_Jabatan);125126 using (MySqlDataReader dtr = cmd.ExecuteReader())127 {128 if (dtr.HasRows)129 {130 return true;131 }132 else133 {134 return false;135 }136 }137 }138 }
Alhamdulillah, akhirnya selesai juga postingan bagian 3 ini. Kita baru saja menyelesaikan pembuatan class GolonganDAO dan class JabatanDAO, sekarang tinggal bagaimana caranya menggunakan class Golongan, GolonganDAO, Jabatan dan JabatanDAO ini pada presentation layer. Insya Allah akan kita bahas pada postingan berikutnya.
Selamat MENCOBA...
Tidak ada komentar:
Posting Komentar