Koneksi Sederhana Database dengan C# (Lihat, Tambah, dan Hapus Data)
Database merupakan suatu hal penting dalam membuat sebuah aplikasi, baik aplikasi berbasis desktop, maupun aplikasi berbasis web. Untuk pembahasan kali ini, akan digunakan database MySQL. Sehingga pastikan dahulu bahwa MySQL beserta editor-nya sudah terinstal dengan baik. Selain itu diperlukan connector untuk menghubungkan antara aplikasi yang akan dibangun dengan database yang dibuat. Connector dapat MySQL dapat di-download pada URL http://dev.mysql.com/downloads/connector/odbc/5.0.html. Setelah itu, instal connector tersebut. Dan jangan sampai tertinggal, editor C# sudah terinstal dengan baik. Aplikasi yang akan dibangun menggunakan perinsip Object Oriented Programming (OOP). Langkah: 1. Buatlah sebuah database dengan nama dbKaryawan (pada pembahasan ini dibuat dengan menggunakan editor HeidiSQL).
Gambar 1. Membuat Database dengan Nama dbKaryawan
2. Buatlah tabel dengan nama tKaryawan, dengan field NIP (varchar (9) PK), Nama (varchar (25)), Alamat (varchar (50)), dan NoTelp (varchar (15)),.
Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 1
Gambar 2. Membuat Tabel dengan Nama dbKaryawan
3. Isikan beberapa data.
Gambar 3. Mengisikan Data pada Tabel Karyawan
4. Selanjutnya buat aplikasi desktop pada editor C# (Visual Studio .Net 2005).
Gambar 4. Membuat Project Baru pada Editor C#
5. Tambahkan Referensi MySQL.Data.dll ke dalam aplikasi yang dibangun, dengan klik kanan pada project -> pilih Add Reference -> pada tab Browse cari MySQL.Data.dll pada folder instalasi. Misal: C:\Program Files\MySQL\MySQL Connector Net 5.0.9\Binaries\.NET 2.0
Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 2
Gambar 5. Menambahkan Driver MySQL.Data.dll dari Folder Instalasi
6. Setelah ditambahkan, pada project akan terdapat sebuah folder tambahan dengan nama References yang berisi driver untuk MySQL.
Gambar 6. Driver Telah Ditambahkan pada Project
7. Langkah selanjutnya adalah menambahkan sebuah kelas dengan nama Karyawan.cs sebagai entitas, atau model dari tabel yang digunakan. Jangan lupa tambahkan enkapsulasi dari atribut yang ada. Kode Program 1. Kelas Entitas Karyawan.cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
using System; using System.Collections.Generic; using System.Text; namespace Latihan_ODBC { class Karyawan { private String private String private String private String
NIP; Nama; Alamat; NoTelp;
public void setNip(String nip) { this.NIP = nip;
Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 3
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
} public String getNip() { return NIP; } public void setNama(String nama) { this.Nama = nama; } public String getNama() { return Nama; } public void setAlamat(String alamat) { this.Alamat = alamat; } public String getAlamat() { return Alamat; } public void setNoTelp(String telp) { this.NoTelp = telp; } public String getNoTelp() { return NoTelp; } } }
Baris 9 sampai 12 merupakan atribut yang dimiliki oleh entitas Karyawan, yang meliputi NIM, Nama, Alamat, dan NoTelp dengan tipe data String. Sedangkan baris 14 sampai 52 merupakan enkapsulasi dari atribut yang dimiliki oleh Karyawan. 8. Selanjutnya buat sebuah kelas dengan nama KaryawanDAO.cs yang merupakan kelas yang diciptakan untuk mengakses atau mengolah data dari database. a. Tambahkan perintah berikut pada kelas tersebut: Kode Program 2. Perintah Koneksi dengan MySQL 1 private MySql.Data.MySqlClient.MySqlCommand query = null; 2 String konf = "Server=localhost;Port=3306;UID=root;PWD=;Database=dbKaryawan"; 3 MySql.Data.MySqlClient.MySqlConnection kon = new MySql.Data.MySqlClient.MySqlConnection();
Pada baris 1 dideklarasikan atribut dengan nama query yang akan digunakan untuk mengakses dan mengolah data dari database. Kemudian pada baris 2 diciptakan variabel dengan nama konf bertipe data String untuk menampung konfigurasi server, port, user id, password, dan database yang akan digunakan dalam aplikasi. Selanjutnya pada baris 3 membuat object baru
Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 4
dengan nama kon dari kelas MySqlConnection yang terdapat pada package MySql.Data. b. Buat Constructor untuk KaryawanDAO, kemudian inisialisasi koneksinya. Kode Program 3. Constructor KaryawanDAO.cs 1 public KaryawanDAO() 2 { 3 kon.ConnectionString = konf; 4 }
Baris 3 merupakan inisialisasi koneksi yang telah dibuat pada Kode Program 2 yang diisikan dengan konfigurasi dengan nama konf. c. Buat sebuah fungsi dengan nama getData(), fungsi ini akan digunakan untuk mengambil semua data yang ada pada tabel Karyawan. Kode Program 4. Fungsi getData() 1 public DataSet getData() 2 { 3 DataSet ds = null; 4 try 5 { 6 ds = new DataSet(); 7 kon.Open(); 8 query = new MySql.Data.MySqlClient.MySqlCommand(); 9 query.Connection = kon; 10 query.CommandType = CommandType.Text; 11 query.CommandText = "SELECT NIP, Nama, Alamat, NoTelp from tKaryawan"; 12 MySql.Data.MySqlClient.MySqlDataAdapter data = new MySql.Data.MySqlClient.MySqlDataAdapter(query); 13 data.Fill(ds, "tKaryawan"); 14 kon.Close(); 15 } 16 catch(Exception e) 17 { 18 } 19 return ds; 20 }
Baris 3 merupakan pendeklarasian variabel ds yang bertipe data DataSet yang akan digunakan untuk menampung data yang diperoleh dari database. Baris ke 6 merupakan inisialisasi ds, sedangkan pada baris 7 merupakan perintah untuk membuka koneksi dengan database. Selanjutnya pada baris 8 merupakan penginisialisasian query dari MySqlCommand. Pada baris 9 merupakan perintah untuk mengkoneksikannya dengan database sesuai kon yang telah dibuat. Baris 10 merupakan tipe dari MySqlCommand yang digunakan, tipe yang digunakan adalah tipe text. Selanjutnya perintah pada baris ke 11 merupakan perintah untuk mengambil semua data dari tabel karyawan, diantaranya: nip, nama, alamat, dan no telp. Kemudian diciptakan sebuah object baru dengan nama data yang diisi dengan hasil eksekusi query yang telah dibuat. Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 5
Data yang diperoleh yang ditampung dalam variabel data diisikan ke dalam DataSet ds dari tabel karyawan, terlihat pada baris 13. Pada baris selanjutnya koneksi ditutup. Perintah pada baris 19 merupakan perintah untuk mengembalikan nilai data yang ditampung dalam ds. d. Lanjutkan dengan membuat sebuah fungsi bernama insertData() untuk menambahkan data pada tabel. Fungsi ini memerlukan sebuah parameter berupa Karyawan yang merupakan entitas dari tabel Karyawan. Kode Program 5. Fungsi insertData() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
public bool insertData(Karyawan k) { bool stat = false; try { kon.Open(); query = new MySql.Data.MySqlClient.MySqlCommand(); query.Connection = kon; query.CommandType = CommandType.Text; query.CommandText = "INSERT INTO tKaryawan VALUES('" + k.getNip() + "','" + k.getNama() + "','" + k.getAlamat() + "','" + k.getNoTelp() + "')"; query.ExecuteNonQuery(); stat = true; kon.Close(); } catch (Exception ex) { } return stat; }
Diperlukan sebuah parameter Karyawan karena akan menambahkan data karyawan. Baris 3 merupakan perintah untuk menciptakan sebuah object baru bertipe data boolean untuk memberikan informasi keberhasilan penambahan data pada tabel Karyawan yang diberi nama stat dengan inisialisai bernilai false. Sedangkan pada baris 6 sampai 10 seperti pada Kode Program 4, namun terdapat perbedaan pada baris 10. Baris tersebut diberikan perintah untuk menambahkan data berupa INSERT, semua data mengenai Karyawan ditambahkan ke dalam tabel Karyawan. Selanjutnya pada baris 11 dilakukan pengeksekusian query yang telah diberikan. Apabila eksekusi berhasil maka akan menjalankan perintah pada baris 12. Baris ini merupakan perintah untuk mengganti nilai dari variabel stat menjadi true. Kemudian pada baris 18, merupakan perintah untuk mengembalikan status keberhasilan dari penambahan data. e. Buat fungsi untuk menghapus data, diperlukan parameter untuk menghapus data tertentu. Parameter yang diperlukan hanya sebuah nip untuk menghapus data berdasarkan nip. Nama fungsi yang digunakan adalah deleteData().
Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 6
Kode Program 6. Fungsi deleteData() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
public bool insertData(Karyawan k) { bool stat = false; try { kon.Open(); query = new MySql.Data.MySqlClient.MySqlCommand(); query.Connection = kon; query.CommandType = CommandType.Text; query.CommandText = "DELETE FROM tKaryawan WHERE NIP = '" + nip + "'"; query.ExecuteNonQuery(); stat = true; kon.Close(); } catch (Exception ex) { } return stat; }
Seperti pada Kode Program 5, Kode Program ini memiliki perintah yang sama, hanya terdapat perbedaan pada baris 10. Baris 10 diisikan perintah untuk menghapus data dari tabel Karyawan berdasarkan nip, sesuai pada parameter. 9. Membuat User Interface untuk pengolahan data Karyawan. Tambahkan komponen-komponen pada Tabel 1: Tabel 1. Tabel Komponen yang Ditambahkan pada Form Utama Komponen
Jumlah Komponen
Nama
DataGridView
1
dgvKaryawan
Label
4
(terserah)
TextBox
4
txtNip, txtNama, txtAlmt, txtTelp
Button
2
btnSave, btnDel
User Interface dapat dibuat sesuai dengan keinginan, contoh Gambar 7. 10. Tambahkan kode program berikut untuk menjalankan a. Lakukan double klick pada Form yang ada. Kemudian buat sebuah fungsi dengan nama Binding(). Kode Program 7. Fungsi Binding() 1 2 3 4 5 6
public void Binding() { DataSet data = new KaryawanDAO().getData(); dgvKaryawan.DataSource = data; dgvKaryawan.DataMember = "tKaryawan"; }
Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 7
Baris 3 merupakan perintah untuk menciptakan sebuah object baru dengan nama data dari kelas DataSet. Data diisi dengan hasil pemanggilan fungsi getData() pada kelas KaryawanDAO. Kemudian pada baris 4, perintah tersebut merupakan perintah untuk menentukan DataSource yang akan ditampilkan pada dgvKaryawan. Sedangkan pada baris 5 merupakan perintah untuk menentukan DataMember dari dgvKaryawan. DataMember diisi dengan tKaryawan.
Gambar 7. Form Utama
b. Tambahkan Binding() pada fungsi yang telah ada sebelumnya. Dengan menambahkan fungsi ini, maka binding data akan dilakukan semenjak aplikasi dijalankan, dan langsung akan ditampilkan pada DataGridView.
Gambar 8. Penambahan Fungsi Binding() pada Form1_Load
c. Double klick pada btnDel, kemudian tambahkan perintah berikut Kode Program 8. Perintah Menghapus Data 1 2 3 4 5 6 7 8 9
if (new KaryawanDAO().deleteData(txtNip.Text)) { MessageBox.Show("Data Berhasil dihapus"); Binding(); } else { MessageBox.Show("Data Gagal dihapus"); }
Perintah utama terletak pada baris 1 yang merupakan pemanggilan fungsi deleteData pada kelas KaryawanDAO dengan parameter masukan dari user berupa nim. Kondisi digunakan untuk menampilkan pesan keberhasilan, jika kondisi dipenuhi maka akan menampilkan info bahwa data Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 8
berhasil dihapus dari database. Baris 4 merupakan perintah untuk memanggil fungsi Binding(), hal ini memberikan efek refresh pada tabel yang terdapat pada Interface. d. Double klick pada btnSave, kemudian tambahkan perintah berikut pada event yang button klick. Kode Program 9. Perintah Menambah Data 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Karyawan k = new Karyawan(); k.setNip(txtNip.Text); k.setNama(txtNama.Text); k.setAlamat(txtAlmt.Text); k.setNoTelp(txtTelp.Text); if (new KaryawanDAO().insertData(k)) { MessageBox.Show("Data Berhasil ditambahkan"); Binding(); } else { MessageBox.Show("Data Gagal ditambahkan"); }
Perlu diciptakan sebuah object baru dari kelas Karyawan, untuk menampung data karyawan yang akan ditambahkan ke dalam databsae. Hal ini terlihat pada baris 1 sampai 5. Setiap atribut diisikan data sesuai yang dimasukkan user. Baris 6 merupakan perintah untuk memasukkan data karyawan ke dalam database. Perintah insertData dipanggil dari kelas KaryawanDAO, jika memenuhi kondisi maka akan ditampilkan informasi berupa pesan bahwa data berhasil ditambahkan. Setelah selesai 10 langkah tersebut silakan jalankan program.
Gambar 8. Aplikasi Dijalankan
Selamat Mencoba GBU Tutorial Koneksi C# dengan MySQL Sederhana (Lihat, Tambah, dan Hapus) josako@bestfriends406
Page 9