Senin, 11 Desember 2017

CRUD database dengan MySql

CRUD Database Dengan C# dan MySql

Tutorial untuk Create, Read, Update, Delete di Visual C# dengan MySql. Di C# sedikit berbeda dengan Netbeans, kalau Netbeans library MySQL sudah ada tanpa kita harus menginstall atau download librarynya, tetapi di C# kita perlu download dan instal sendiri librarynya.
Jangan lupa buka visual studionya yaa😊
1. Buat Project Baru (Visual C#, Windows Form Appication)

2. Buat Desain Form Sesuka anda, contohnya seperti ini :

3. Buat Class Modelnya, caranya : klik kanan pada project -> Add -> Class
Nama Class : Mahasiswa.cs
Berikut isinya :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LatihanDB
{
 class Mahasiswa
{
 private string nim, nama, fakultas;

public string Fakultas
 {
 get { return fakultas; }
 set { fakultas = value; }
 }
public string Nama
 {
 get { return nama; }
 set { nama = value; }
 }

public string Nim
 {
 get { return nim; }
 set { nim = value; }
 }  }   }

4. Add Library yang sudah diinstal diatas,
  • Klik kanana pada References
  • Add References
  • Pilih tab Browse
  • Cari file library (biasanya di C:\Program Files\MySQL\MySQL Connector Net 6.4.5\Assemblies\v4.0)
  • Pilih MySql.Data.dll dan MySql.Data.Entity.dll
  • OK



5.Buat Class Daonya : klik kanan pada project -> Add -> Class
nama kelasnya : MahasiswaDAO.cs
isinya sebagai berikut :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Data;

namespace LatihanDB
{ class MahasiswaDAO
 {  private MySqlCommand perintah = null;
 string konfigurasi = "Server=localhost;Port=3306;UID=root;PWD=;Database=dbpv";
 MySqlConnection koneksi = new MySqlConnection();

public MahasiswaDAO()
 {
 koneksi.ConnectionString = konfigurasi;
 }

public DataSet getData()
 {
 DataSet ds = new DataSet();
 try
 {
 koneksi.Open();
 perintah = new MySqlCommand();
 perintah.Connection = koneksi;
 perintah.CommandType = CommandType.Text;
 perintah.CommandText = "SELECT nim,nama,fakultas FROM tb_mhs";
 MySqlDataAdapter mdap = new MySqlDataAdapter(perintah);
 mdap.Fill(ds, "tb_mhs");
 koneksi.Close();
 }catch(MySqlException){
 }
 return ds;
 }
 public bool insertData(Mahasiswa m)
 {
 Boolean stat = false;
 try
 {
 koneksi.Open();
 perintah = new MySqlCommand();
 perintah.Connection = koneksi;
 perintah.CommandType = CommandType.Text;
 perintah.CommandText = "INSERT INTO tb_mhs VALUES ('"+m.Nim+"','"+m.Nama+"','"+m.Fakultas+"')";
 perintah.ExecuteNonQuery();
 stat = true;
 koneksi.Close();
 }
 catch (MySqlException) { }
return stat;
 }

public bool deleteData(string nim)
 {
 Boolean stat = false;
 try
 {
 koneksi.Open();
 perintah = new MySqlCommand();
 perintah.Connection = koneksi;
 perintah.CommandType = CommandType.Text;
 perintah.CommandText = "DELETE FROM tb_mhs WHERE nim='"+nim+"'";
 perintah.ExecuteNonQuery();
 stat = true;
 koneksi.Close();
 }
 catch (MySqlException) { }
 return stat;
 }
public bool updateData(Mahasiswa m, string nim){
 Boolean stat = false;
 try
 {
 koneksi.Open();
 perintah = new MySqlCommand();
 perintah.Connection = koneksi;
 perintah.CommandType = CommandType.Text;
 perintah.CommandText = "UPDATE tb_mhs SET nim='"+m.Nim+"', nama='"+m.Nama+"',fakultas='"+m.Fakultas+"' WHERE nim='"+nim+"'";
 perintah.ExecuteNonQuery();
 stat = true;
 koneksi.Close();
 }
 catch (MySqlException) { }
 return stat;
 } } }

6. Pada Form yang pertama kita buat tadi tambahkan Code sebagai berikut :
a. Buat methode seperti ini :
void lihatSemuaData()
 {
 DataSet data = md.getData();
 dataGridView1.DataSource = data;
 dataGridView1.DataMember = "tb_mhs";
 }

b. Pada event Form OnLoad (klik ganda pada form):
private void Form1_Load(object sender, EventArgs e)
 {
 lihatSemuaData();
 }

c. Pada Button Insert, Update, Delete klik ganda.

d. Berikut code pada Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LatihanDB
{
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }

MahasiswaDAO md = new MahasiswaDAO();

void lihatSemuaData()
 {
 DataSet data = md.getData();
 dataGridView1.DataSource = data;
 dataGridView1.DataMember = "tb_mhs";
 }

private void Form1_Load(object sender, EventArgs e)
 {
 lihatSemuaData();
 }

private void insertBtn_Click(object sender, EventArgs e)
 {
 Mahasiswa m = new Mahasiswa();
 m.Nim = nimTxb.Text;
 m.Nama = namaTxb.Text;
 m.Fakultas = fakultasTxb.Text;
 md.insertData(m);
 lihatSemuaData();
 }

string nim;
 private void updateBtn_Click(object sender, EventArgs e)
 {
 Mahasiswa m = new Mahasiswa();
 m.Nim = nimTxb.Text;
 m.Nama = namaTxb.Text;
 m.Fakultas = fakultasTxb.Text;
 md.updateData(m,nim);
 lihatSemuaData();
 }

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
 {
 nimTxb.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
 namaTxb.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
 fakultasTxb.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();

nim = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
 }

private void deleteBtn_Click(object sender, EventArgs e)
 {
 md.deleteData(nim);
 lihatSemuaData();
 }
 }
}
CATATAN :
– Code diletakkan sesuai Event
– Event bukan tulis secara manual, tetapi generate C# dengan melakukan klik ganda pada komponen
– Khusus untuk dataGridView1_CellEnter cara memeberi eventnya adalah :
a. klik kanan pada data gridview
b. pilih pada tab Events, yang icon nya gambar petir
c. Cari CellEnter dan klik ganda.
– Untuk nama variable disesuaikan ya

Array, Method dan Event dalam Bahasa Pemrograman C#

A. Array pada C#
Array merupakan variabel yang dapat menampung banyak nilai sekaligus. Array dideklarasikan dengan tipe data diikuti dengan sepasang kurung siku. Sebagai contoh :
int[] aAngka;
string[] aNama;
object[] aObjek;
Deklarasi array diatas hanya menghasilkan variabel array kosong. Untuk memberi nilai awal pada array, lakukan salah satu dari cara berikut :
int[] aAngka = new int[5];
string[] aNama = new string[] { "Joni", "Meri", "David" };
object[] aObjek = { 20.33, "Lorem ipsum", DateTime.Now, true, 'D' };
Contoh pertama membuat 5 int kosong, sedangkan contoh kedua membuat array dengan ukuran 3 dan langsung menugaskan nilai-nilai kepada elemen-elemen array tersebut. Contoh ke tiga menunjukkan versi lain dari contoh ke dua yang mengabaikan keyword "new". Contoh ke tiga juga menunjukkan bahwa kita dapat menugaskan nilai bertipe apa saja kepada suatu objek. Pada contoh ke tiga, kita menugaskan double, string, DateTime, bool dan char sekaligus ke dalam array object tersebut.
a. Mengakses elemen pada array
Ketika kita mendeklarasikan int[] aAngka = new int[5]; kita membuat 5 int sekaligus yang dapat diakses dengan variabel aAngka[0], aAngka[1], aAngka[2], aAngka[3] and aAngka[4]. Kita menyebut int-int ini sebagai elemen dari array, dan angka di dalam kurung siku sebagai index. Penting untuk diketahui bahwa index selalu dimulai dari 0 seperti dapat dilihat pada contoh. Berikut adalah sebuah contoh program yang menggunakan array:
double[] aBerat = new double[5];

for (int i = 0; i < aBerat.Length; i++) {
  string strBerat = Console.ReadLine();
  aBerat[i] = double.Parse(strBerat);
}
Console.WriteLine("----------------");
double total = 0;
for (int i = 0; i < aBerat.Length; i++) {
  total += aBerat[i];
}
Console.WriteLine("Rata-rata dari berat: " + (total / aBerat.Length));
Console.ReadKey();

b. Array multidimensi pada C#
Semua contoh di atas adalah contoh array satu dimensi. Untuk menggunakan array multidimensi, kita gunakan:

int[,] aTahun = new int[,] { { 2001, 2002, 2003 }, { 2005, 2006, 2007 } };
Console.WriteLine(aTahun[0, 2]); //Akan menampilkan 2003
Console.ReadKey();

c. Array bergerigi pada C#
Array bergerigi mirip dengan array multidimensi. Untuk menggunakan array bergerigi, kita lakukan:

int[][] aTahun = new int[][] { new int[] { 2003 }, new int[] { 2005, 2008, 2010 } };
Console.WriteLine(aTahun[1][2]); //Akan menampilkan 2010
Console.ReadKey();

B. Method pada C#
Method adalah sekumpulan pernyataan yang akan dijalankan ketika dipanggil. Untuk mendefiniskan suatu method pada C#:

[Access modifier] [tipe data] [nama method] (parameter1, parameter2, ...) 
{ //Kumpulan perintah 
}

Dari struktur di atas:
a. Access modifier, untuk saat ini, gunakan saja access modifier public.
b. Tipe data, bisa berupa void atau tipe data C# lainnya, termasuk enum atau class custom. Merupakan tipe data yang dihasilkan method.
c. Nama method, berupa suatu identifier yang valid.
d. Parameter, sekumpulan variabel pada method untuk berkomunikasi dengan program di luar method. Method juga bisa tidak memiliki parameter.
e. Kumpulan perintah, perintah perintah yang akan dijalankan ketika method dipanggil.

    Suatu method harus ditempatkan di dalam suatu class, Method adalah salah satu bentuk dari member suatu class. Suatu method dipanggiil / dijalankan dengan menuliskan namanya.

C. Event pada C#
       Event merupakan salah satu bagian komponen yang terdapat di dalam properties pada IDE Microsoft Visual C#. Tanpa adanya bantuan Event, mungkin program aplikasi yang kita buat tidak akan bisa berjalan. Lantas, apa sih sebenarnya Event itu ? Event adalah sebuah perintah atau kejadian yang akan di eksekusi oleh program saat algoritma baris code yang kita buat di jalankan oleh user. Sebenarnya tanpa di sadari, kita telah sering mengeksekusi sebuah event yang ada di dalam program aplikasi. Sebagai contoh, saat kita mengoperasikan Microsoft Word. Tentu semua tahu software yang satu ini. Pada saat kita membuka sebuah dokumen dan ingin menutup dokumen tersebut kadang muncul sebuah message window. "Do you want to save change........" Nah, itulah salah satu bentuk event yang tanpa disadari telah dijalankan oleh kita sebagai user. Contoh lain penggunaan event adalah saat kita hendak membuka dokumen itu sendiri, dengan menekan kombinasi tombol shortcut Ctrl+O atau melalui menu File --> Open, kita telah mengeksekusi sebuah perintah yaitu berupa event click. 

Berikut adalah beberapa event yang sering kita jumpai di dalam pemrograman C# ;
1. Event MouseClick
event ini akan di eksekusi ketika kita menekan sebuah objek
2. Event MouseHover
event ini akan terjadi ketika kita meletakkan cursor di atas objek
3. Event MouseLeave
event ini akan di eksekusi ketika cursor meninggalkan sebuah objek
4. Event MouseEnter
event ini akan langsung di eksekusi saat cursor mendekati sebuah objek
5. Event Load
event ini akan langsung di ekseskusi saat form pertama kali di debugging/di jalankan

Referensi:
https://icodeformoney.com/tuts/Array-pada-CSharp
https://icodeformoney.com/tuts/Method-pada-CSharp
http://ilmu-programming.blogspot.co.id/2012/05/mengenal-event-event-yang-ada-di-dalam.html