Pada pemrograman web dikenal cara pemrograman MVC atau Model View
Controller. Di pemrograman Desktop C#.NET juga dikenal model pemrograman OOP tersebut dengan bentuk class Entity Boundary Control. Misalnya ingin membuat aplikasi yang menampilkan data Buku, maka kita harus membuat Entity/Buku.cs, Control/BukuManager.cs dan Boundary/BukuUI
Pertama-tama pisahkan dahulu koneksi database di Class Connection.cs :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
namespace SIP
{
public class Connection
{
private static string con_str;
static Connection()
{
con_str = @"Data Source=DELL-PC\SQLEXPRESS;Initial Catalog=Perpustakaan_6035_6064;Integrated Security=True";
}
public static string CON_STR
{
set
{
con_str = value;
}
get
{
return con_str;
}
}
public static SqlConnection CON
{
get
{
return new SqlConnection(con_str);
}
}
}
}
Kemudian berikut ini contohnya. buat dahulu folder Entity untuk menempatkan file Entity/Buku.cs :
using System;
using System.Collections.Generic;
using System.Text;
namespace SIP.Entity
{
public class Buku
{
private string isbn;
private string judul;
private string pengarang;
private string penerbit;
private int tahun;
private string status;
public Buku()
{
isbn = "";
judul = "";
pengarang = "";
penerbit = "";
tahun = 0;
status = "";
}
public Buku(string noisbn, string jdl, string pengarangnya, string penerbitnya, int thn, string stat)
{
isbn = noisbn;
judul = jdl;
pengarang = pengarangnya;
penerbit = penerbitnya;
tahun = thn;
status = stat;
}
public string ISBN
{
get
{
return isbn;
}
set
{
isbn = value;
}
}
public string Judul
{
get
{
return judul;
}
set
{
judul = value;
}
}
public string Pengarang
{
get
{
return pengarang;
}
set
{
pengarang = value;
}
}
public string Penerbit
{
get
{
return penerbit;
}
set
{
penerbit = value;
}
}
public int Tahun
{
get
{
return tahun;
}
set
{
tahun = value;
}
}
public string Status
{
get
{
return status;
}
set
{
status = value;
}
}
}
}
Kemudian buat folder Control untuk menempatkan file Control/BukuManager.cs :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace SIP.Control
{
public class BukuManager
{
public BukuManager()
{
}
public bool addBuku(SIP.Entity.Buku buku)
{
SqlConnection con = Connection.CON;
try
{
con.Open();
SqlCommand sc = new SqlCommand("INSERT INTO BUKU VALUES('" + buku.ISBN + "','" + buku.Judul + "','" + buku.Pengarang + "','"+ buku.Penerbit + "','" + buku.Tahun + "','" + buku.Status + "')", con);
sc.ExecuteNonQuery();
return true;
}
catch (System.Data.SqlClient.SqlException e)
{
return false;
}
catch (Exception e2)
{
return false;
}
finally
{
con.Close();
}
}
public bool validateIsbn(string isbn)
{
SqlConnection con = Connection.CON;
try
{
con.Open();
SqlCommand sc = new SqlCommand("SELECT * FROM BUKU where ISBN= '" + isbn + "'", con);
SqlDataReader dr = sc.ExecuteReader();
return (dr.HasRows ? false : true);
}
catch (System.Data.SqlClient.SqlException e)
{
return false;
}
catch (Exception e1)
{
return false;
}
finally
{
con.Close();
}
}
public DataTable getAllBuku()
{
DataTable dt = new DataTable();
SqlConnection con = Connection.CON;
try
{
con.Open();
SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM BUKU", con);
ad.Fill(dt);
return (dt);
}
catch (System.Data.SqlClient.SqlException e)
{
return (null);
}
catch (Exception e2)
{
return (null);
}
finally
{
con.Close();
}
}
public bool updateBukuByIsbn(string isbnLama, SIP.Entity.Buku buku)
{
SqlConnection con = Connection.CON;
try
{
con.Open();
SqlCommand sc = new SqlCommand("UPDATE BUKU SET ISBN ='" + buku.ISBN + "', Judul='" + buku.Judul + "', Pengarang='" + buku.Pengarang + "', Penerbit='" + buku.Penerbit + "', Tahun='" + buku.Tahun+ "', Status='" + buku.Status + "' WHERE ISBN='" + isbnLama + "'", con);
sc.ExecuteNonQuery();
return true;
}
catch (System.Data.SqlClient.SqlException e)
{
return false;
}
catch (Exception e2)
{
return false;
}
finally
{
con.Close();
}
}
public bool deleteBukuByIsbn(string isbn)
{
SqlConnection con = Connection.CON;
try
{
con.Open();
SqlCommand sc = new SqlCommand("DELETE FROM BUKU WHERE ISBN = '" + isbn + "'", con);
sc.ExecuteNonQuery();
return true;
}
catch (System.Data.SqlClient.SqlException e)
{
return false;
}
catch (Exception e2)
{
return false;
}
finally
{
con.Close();
}
}
}
}
Setelah itu terakhir buat folder Boundary untuk menempatkan file Boundary/BukuUI.cs :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace SIP.Boundary
{
public partial class BukuUI : Form
{
string isbnLama;
public BukuUI()
{
InitializeComponent();
RefreshGrid();
isbnLama = "";
fillComboKota();
fillComboRole();
}
/*private void fillComboRole()
{
DataTable dt = new DataTable();
CSDS.Control.RoleManager roleManager = new CSDS.Control.RoleManager();
dt.Clear();
dt = roleManager.getAllRole();
comboRole.DataSource = dt;
comboRole.DisplayMember = "NAMAROLE";
comboRole.ValueMember = "IDROLE";
}
private void fillComboKota()
{
DataTable dt = new DataTable();
CSDS.Control.KotaManager kotaManager = new CSDS.Control.KotaManager();
dt.Clear();
dt = kotaManager.getAllKota();
comboKota.DataSource = dt;
comboKota.DisplayMember = "NAMAKOTA";
comboKota.ValueMember = "IDKOTA";
} */
private void RefreshGrid()
{
DataTable dt = new DataTable();
SIP.Control.BukuManager bukMan = new SIP.Control.BukuManager();
try
{
dt.Clear();
dt = bukMan.getAllBuku();
dataGridView1.DataSource = dt;
}
catch (System.Data.SqlClient.SqlException e1)
{
MessageBox.Show("Terjadi kesalahan pada Koneksi database" + e1.Message.ToString().Trim(), "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
catch (Exception e2)
{
MessageBox.Show("Terjadi kesalahan pada Koneksi database" + e2.Message.ToString().Trim(), "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
textISBN.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
textJudul.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
textPengarang.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
textPenerbit.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
textTahun.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
comboStat.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString();
isbnLama = textISBN.Text;
}
private void btnAdd_Click(object sender, EventArgs e)
{
SIP.Entity.Buku buku = new SIP.Entity.Buku();
SIP.Control.BukuManager bukMan = new SIP.Control.BukuManager();
if (textISBN.Text.Trim() != String.Empty && textJudul.Text.Trim() != String.Empty && textPengarang.Text.Trim() != String.Empty && textPenerbit.Text.Trim() != String.Empty && textTahun.Text.Trim() != String.Empty && comboStat.Text.Trim() != String.Empty)
{
if (bukMan.validateIsbn(textISBN.Text.Trim()))
{
buku.ISBN = textISBN.Text.Trim();
buku.Judul = textJudul.Text.Trim();
buku.Pengarang = textPengarang.Text.Trim();
buku.Penerbit = textPenerbit.Text.Trim();
buku.Tahun = int.Parse(textTahun.Text.Trim());
buku.Status = comboStat.Text.Trim();
if (bukMan.addBuku(buku))
{
MessageBox.Show("Data berhasil disimpan!", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
RefreshGrid();
}
else
MessageBox.Show("Data gagal disimpan", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
MessageBox.Show("ISBN '" + textISBN.Text.Trim() + "' sudah terdaftar di database, masukkan ISBN yang lain", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
MessageBox.Show("Masukkan data dengan benar!", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void btnEdit_Click(object sender, EventArgs e)
{
SIP.Entity.Buku buku = new SIP.Entity.Buku();
SIP.Control.BukuManager bukMan = new SIP.Control.BukuManager();
if (textISBN.Text.Trim() != String.Empty && textJudul.Text.Trim() != String.Empty && textPengarang.Text.Trim() != String.Empty && textPenerbit.Text.Trim() != String.Empty && textTahun.Text.Trim() != String.Empty && comboStat.Text.Trim() != String.Empty)
{
buku.ISBN = textISBN.Text.Trim();
buku.Judul = textJudul.Text.Trim();
buku.Pengarang = textPengarang.Text.Trim();
buku.Penerbit = textPenerbit.Text.Trim();
buku.Tahun = int.Parse(textTahun.Text.Trim());
buku.Status = comboStat.Text.Trim();
if (bukMan.updateBukuByIsbn(isbnLama, buku))
{
MessageBox.Show("Data berhasil diubah!", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
RefreshGrid();
}
else
MessageBox.Show("Data gagal diubah!", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
MessageBox.Show("Masukkan data dengan benar!", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void btnDelete_Click(object sender, EventArgs e)
{
SIP.Control.BukuManager bukMan = new SIP.Control.BukuManager();
if (bukMan.deleteBukuByIsbn(isbnLama))
{
MessageBox.Show("Data berhasil dihapus!", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
RefreshGrid();
}
else
MessageBox.Show("Data gagal dihapus!", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}