Last active
August 29, 2015 13:56
-
-
Save f2face/8893505 to your computer and use it in GitHub Desktop.
[C#] Membuat class versi ane (contoh kasus: Customer)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*-------------------------------------------------------- | |
* [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