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

Senin, 02 Oktober 2017

Perulangan dan Percabangan C#



Flow Control
(Percabangan dan Perulangan)
Flow control adalah bagian yang sangat penting dan tidak bisa dipisahkan di dalam semua bahasa pemrograman karena memiliki fungsi dan tugas utama, yaitu mengatur bagaimana baris-baris akan dieksekusi. Pada dasarnya, baris-baris program akan dieksekusi secara sekuensial (berurutan dimulai dari baris paling atas, kemudian ke baris berikutnya). Dengan adanya flow control, kita bisa mengatur baris program dieksekusi, baik berulang-ulang meloncat, maupun berhenti. Selanjutnya adalah pembahasa berbagai flow control yang terdapat dalam bahasa pemrograman C#. Pembahasan meliputi hal-hal berikut:
1.       Kondisional  : if, if-else, Switch-Case
2.       Pengulangan : while, do-while, for
3.       Lain-lain : break, return, continue

©      If
                  Statement if digunakan untuk mengeksekusi sebuah blok program jika memenuhi kondisi tertentu. Umumnya, kondisi yang perlu terpenuhi harus bernilai true agar bisa mengeksekusi blok program. Berikut kita bisa melihat sintaks dan penggunaan if.

If (kondisi )
{
 ……………Statement……….
}
                 Kondisi merupakan ekspresi yang harus menghasilkan nilai bool (Boolean). Kemudian, jika kondisi bernilai true, maka statement di dalam blok akan dikesekusi, sedangkan jika kondosi bernilai false, statement di dalam blok tidak akan dieksekusi. Contoh dapat dilihat pada kode di bawah ini
                    Program diatas akan mengeksekusi blok if jika user memasukkan sebuah bilangan bulat, jika tidak maka tidak ada yang akan dieksekusi.


Outputnya :

If-else
                    Statement if-else digunakan untuk mengeksekusi blok program yang bisa menangani dua percabangan. Jika kondisi bernilai true, maka blok pertama yang akan dieksekusi, sedangkan jika kondisi bernilai false, maka blok kedua yang akan dieksekusi. Adapun struktur kode if-else dapat dilihat dibawah ini

if (kondisi)
{
…………..Statement1…………..
}
else
{
……………statement2…………
}
               Apabila kondisi bernilai true, maka statement1 akan dieksekusi, sedangkan bila kondisi bernilai false, yang akan dieksekusi adalah statement2. Berikutnya, kita dapat melihat contoh program penggunaan blok if-else
                 Program diatas akan mengeksekusi blok pertama jika user memasukkan bilangan genap, sedangkan jika user memasukkan sebuah bilangan ganjil maka blok kedua akan dieksekusi.

Outputnya:

Switch-case
                 Statement switch-case berfungsi mengeksekusi blok program dengan membandingkan nilai suatu variabel sebagai pilihan dalam menentukan blok yang akan dieksekusi. Contoh sintaks dapat dilihat dibawah ini.

switch (variabel)
{
case nilai1 :
{
…….statement1……
break;
}
case nilai2:
{
……….statement2…………
break;
}
case nilain:
{
………..statement3………….
break;
}
default:
{
………..statement default……….
break;
}
}

Contoh penggunaan kode switch case dapat dilihat pada contoh dibawah ini



                  Program diatas akan mengeksekusi blok program sesuai dengan masukkan dari bilangan bulan. Jika user memasukkan nilai 1, maka blok case 1 yang akan dieksekusi. Jika tidak ada nomor yang dimasukkan sesuai dengan nilai pada blok case, maka blok default yang akan dieksekusi.
Outputnya:

Operasi Pengulangan
©      While
                  Statement while digunakan untuk mengeksekusi baris program dalam sebuah blok secara berulang-ulang (looping). Blok akan dieksekusi selama kondisi bernilai true. Berikut adalah sintask dan penggunaan while.

while (kondisi)
{
……….statement………..
}
Berikut adalah contoh penggunaan while dalam program.
Program diatas akan mengeksekusi pemrograman visual sebanyak lima kali ke layar.


Outputnya:

Do-While
                     Statement do-while digunakan sama seperti while, yaitu untuk mengulang eksekusi baris program. Yang membedakan blok do-while dengan while adalah pada do-while pengecekan kondisi dilakukan di akhir blok sehingga blok minimal dieksekusi satu kali. Sintaks penggunaan do-while dapat dilihat dibawah ini
do
{
………..statement………..
}
while (kondisi)
penggunaan do-while dapat dilihat pada contoh program dibawah ini.

Outputnya:

For
                    Statement for digunakan untuk mengeksekusi blok program secara berulang-ulang dalam range tertentu. Contoh struktur sintaks for.

for (inisialisasi;terminasi;increment)
{
…….statement………
}
·           Inisialisasi merupakan ekspresi yang dieksekusi pertama. Di dalam inisialisasi, kita bisa melakukan  deklarasi variabel dengan memberikan nilai awal yang dibutuhkan sebuah range, misalnya int a=1;
·           Terminasi merupakan ekspresi yang menyatakan kapan sebuah blok program akan berhenti diulang adau dengan kata lain, nilai pengecekan untuk akhir range, misalnya i<10;
·           Increment merupakan ekspresi yang akan dieksekusi setelah selesai menjalankan satu blok program dan merupakan nilai penambahan dari nilai inisialisasi, misalnya i++;

Contoh penggunaan pengulangan for dapat dilihat pada kode program dibawah ini :

Outputnya:

referensi :
http://amiapriani.blogspot.co.id/2013/11/flow-control-percabangan-dan-perulangan.html