Skip to content

Instantly share code, notes, and snippets.

@f2face
Last active August 29, 2015 13:56
Show Gist options
  • Save f2face/8893505 to your computer and use it in GitHub Desktop.
Save f2face/8893505 to your computer and use it in GitHub Desktop.
[C#] Membuat class versi ane (contoh kasus: Customer)
/*--------------------------------------------------------
* [C#] Membuat class versi ane.
* by @f2face / Surya Oktafendri ~ 9 Februari 2014
--
* Misal :
Di database ente ada tabel "Customer" dengan atribut: no_customer, nama_customer, alamat_customer.
----------------------------------------------------------*/
class Customer
{
// definisikan variabel private (variabel yang cuma bisa diakses dari dalam class itu sendiri)
private int _id_cust; // variabel private untuk ID Customer
private string _nama_cust, _alamat_cust; // variabel private untuk Nama & Alamat Customer
// Definisikan variabel public (variabel yang bisa diakses dari luar class). Semua variabel public ini kita buat jadi read-only.
/*
* Variabel public ini kita buat supaya read-only dengan keyword "get".
* Dengan cara begini, ketika dipanggil, variabel public akan mengambil nilai dari variabel private di atas.
* Mengapa dibuat read-only? Supaya class-class lain cuma bisa baca, dan tidak bisa mengubah/nge-set nilainya.
*/
public int ID_Customer
{
get { return _id_cust; }
}
public string Nama_Customer
{
get { return _nama_cust; }
}
public string Alamat_Customer
{
get { return _alamat_cust; }
}
// Buat method/fungsi untuk membaca, menyimpan, ataupun menghapus data customer.
/*
Ane anggap ente udah ngerti koneksi database pake MySQL & MySQL Connector for .NET
(lihat postingan ane sebelumnya: https://gist.github.com/f2face/8848083)
*/
// Baca data customer berdasarkan ID-nya. Ini untuk membaca 1 data customer aja.
public Customer bacaDataCustomer(int ID_Cust)
{
try
{
Customer customer = new Customer(); // definisikan objek customer
using(MySqlConnection conn = new DBConnection().Buka_Koneksi()) // Buka dulu koneksi database-nya
{
using (MySqlCommand sql = new MySqlCommand("SELECT * FROM customer WHERE id_customer=@id_cust", conn)) // pake query select
{
sql.Parameters.Add("@id_cust", MySqlDbType.Int16).Value = ID_Cust; // parameter untuk id_customer
using (MySqlDataReader dr = sql.ExecuteReader()) // jalankan query-nya
{
if (dr.HasRows) // cek jika data customer yang dicari ada
{
while (dr.Read()) // baca data customer
{
// tampung datanya ke variabel private (karena variabel private bisa di-read & write. Kalo variabel public kan read-only, bro..)
customer._id_cust = int.Parse(dr[0].ToString());
customer._nama_cust = dr[1].ToString();
customer._alamat_cust = dr[2].ToString();
}
}
}
}
}
return customer; // return hasilnya
}
catch
{
throw; // ini untuk meng-handle error
}
}
// Baca SEMUA data customer.
public List<Customer> bacaDataCustomer()
{
try
{
List<Customer> list_customer = new List<Customer>(); // definisikan objek customer dalam bentuk list (karena datanya banyak)
using(MySqlConnection conn = new DBConnection().Buka_Koneksi())
{
using (MySqlCommand sql = new MySqlCommand("SELECT * FROM customer", conn))
{
using (MySqlDataReader dr = sql.ExecuteReader()) // jalankan query-nya
{
if (dr.HasRows)
{
while (dr.Read()) // baca data customer
{
Customer customer = new Customer(); // buat objek Customer
customer._id_cust = int.Parse(dr[0].ToString()); // tampung datanya
customer._nama_cust = dr[1].ToString();
customer._alamat_cust = dr[2].ToString();
list_customer.Add(customer); // masukkan data customer yang sudah dibaca ini ke dalam list.
}
}
}
}
}
return list_customer; // return hasilnya
}
catch
{
throw;
}
}
// Simpan data customer
public void simpanDataCustomer(int ID_Cust, string Nama_Cust, string Alamat_Cust)
{
try
{
using (MySqlConnection conn = new DBConnection().Buka_Koneksi())
{
using (MySqlCommand sql = new MySqlCommand("INSERT INTO customer(id_customer, nama_customer, alamat_customer) VALUES(@id_customer, @nama_customer, @alamat_customer)", conn))
{
sql.Parameters.Add("@id_customer", MySqlDbType.Int16).Value = ID_Cust;
sql.Parameters.Add("@nama_customer", MySqlDbType.VarChar).Value = Nama_Cust;
sql.Parameters.Add("@alamat_customer", MySqlDbType.VarChar).Value = Alamat_Cust;
sql.ExecuteNonQuery(); // eksekusi query-nya
}
}
}
catch
{
throw;
}
}
// Hapus data customer
public void hapusDataCustomer(int ID_Cust)
{
try
{
using (MySqlConnection conn = new DBConnection().Buka_Koneksi())
{
using (MySqlCommand sql = new MySqlCommand("DELETE FROM customer WHERE id_customer=@id_customer", conn))
{
sql.Parameters.Add("@id_customer", MySqlDbType.Int16).Value = ID_Cust;
sql.ExecuteNonQuery(); // eksekusi query-nya
}
}
}
catch
{
throw;
}
}
// Untuk edit data & hapus data secara massal, silakan ente kembangkan sendiri.
// Jangan malas mikir, teruslah belajar.
// Sebab, malas mikir adalah perbuatan menghina Tuhan, karena menyia-nyiakan otak yang telah diberikan oleh-Nya.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment