Jumat, 03 November 2017

Tutorial Mengkoneksi Mysql dengan Proyek C# di Visual Studio


Pertama, Download MySQLConnector 6.8.8 pada link ini 

Lalu Install MySQLConnector

Selanjutnya masuk ke Project c# yang ingin di koneksi kan dengan MySQL

Kemudian pada tab Solution Explorer, klik kanan pada reference, lalu pilih add reference, pilih tab browse lalu cari file MySql.Data.dll .




Kalau di komputer saya file tersebut adanya di : C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.8\Assemblies\v4.0\MySql.Data.dll



Nah kalau reference nya udah ditambah, bisa dilihat disini..



di c# itu reference namanya namespace cara panggilnya = using namanamespace, ibarat kalau di java itu class yg dipanggil setelah menulis syntax import namaclass

Contoh kode yang menggunakan reference diatas ada di link ini



BELAJAR C# - LATIHAN MEMBUAT FORM DGN DATA DARI MYSQL

Pada kesempatan kali ini novi akan membahas soal latihan c# di bawah ini.. Soal ini kemarin dijadikan soal UTS di kampus novi, mari kita bahas...

==============================================================================================================================================================================================================================

SOAL


1. Buatlah database dengan nama “dbuts”, kemudian buatlah tabel dengan nama “nasabah” dengan field seperti dibawah ini :
  1. id” type data integer autonumber
  2. “nim” type data varchar panjang 15
  3. “nama” type data varchar panjang 100
  4. “jenkel” type data varchar panjang 1
  5. “status” type data varchar panjang 1
  6. “tabungan” type data integer panjang 8
  7. “tagihan” type data integer panjang 8
  8. “deposito” type data integer panjang 8
  9. “hutang” type data integer panjang 8
  10. “total” type data integer panjang 8
  11. “keterangan” type data varchar panjang 50

2. Buatlah project pada visual studio 2010 dengan nama project menggunakan “nim” masing-masing mahasiswa. Dengan ketentuan sebagai berikut :


  1. Buatlah program menggunakan bahasa C#
  2. Buatlah modul untuk koneksi kedatabase
  3. Buatlah menu utama seperti gambar dibawah ini
  4. Apabila menu “NASABAH” di pilih maka akan muncul form seperti gambar dibawah ini 
  5. Apabila button simpan di pilihmaka akan menyimpan data kedatabase sesuai data yang diisikan dan menampilkan pesan “BERHASIL MENYIMPAN DATA” jika tidak “GAGAL MENYIMPAN DATA”
  6. Apabila data nim diisi dan ditekan “ENTER” jika ada data maka akan menampilkan data dan jika tidak ada data makan cursor akan mengarah ke text nama.
  7. Jika jenis kelamin yang dipilih “LAKI-LAKI” maka data yang disimpan adalah “L”, dan jika jenis kelamin yang dipilih adalah “PEREMPUAN” maka data yang disimpan adalah “P”
  8. Jika status yang dipilih “BEASISWA” maka data yang disimpan adalah “1”, dan jika status yang dipilih “NON BEASISWA” maka data yang disimpan adalah “2”
  9. Pada text Total uang = Uang Tabungan + 50% Uang Tagihan + Uang Deposito – Uang Hutang
  10. Pada text Keterangan berisi informasi dengan ketentuan :
    1. Jika Total Uang < 100jt, maka “Kredit Rumah”
    2. Jika Total Uang <=150jt, maka “Beli Tanah”
    3. Jika Total Uang > 150jt, maka “Beli Mobil”
==============================================================================================================================================================================================================================

JAWABAN

STRUKTUR DATABASE NYA...



==========================================================================

CLASS Koneksi.CS


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;   //Menggunakan Reference MySQL Connector [tutorial]
using System.Windows.Forms;

namespace _41814010070
{
    class Koneksi
    {
        public static MySqlConnection getConnection()A
        {
            MySqlConnection conn = new MySqlConnection("server=localhost; user=root; password=; database=dbuts;");
            try
            {
                conn.Open();
                Console.WriteLine("database ok");
            }
            catch (MySqlException e)
            {
                MessageBox.Show("error :" + e.Message);
            }
            return conn;
        }

        public static void Close()
        {
            if (getConnection() != null)
            {
                getConnection().Close();
            }
        }

    }
}

==========================================================================


FORM MENU UTAMA

Design Form nya...

MenuUtama.cs[design]

































Kode Program nya...

MenuUtama.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 _41814010070
{
    public partial class MenuUtama : Form
    {
        public MenuUtama()
        {
            InitializeComponent();
        }

        private void nASABAHToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FormNasabah frm = new FormNasabah();
            frm.MdiParent = this;
            frm.Show();
        }
    }
}
==========================================================================


FORM NASABAH

Design Form nya..

FormNasabah.cs[design]


FormNasabah.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;
using MySql.Data.MySqlClient;


namespace _41814010070
{
    public partial class FormNasabah : Form
    {
        public FormNasabah()
        {
            InitializeComponent();
        }

        private void tNIM_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                try
                {
                    //QUERY SELECT DAN EXECUTION SQL NYA - NOVI IRNAWATI 41814010070
                    string query = "select * from nasabah Where nim = '" + tNIM.Text + "'";
                    MySqlDataReader reader = null;
                    MySqlCommand command = new MySqlCommand(query, Koneksi.getConnection());
                    reader = command.ExecuteReader();

                    //READER DATA DARI SQL KE FORM - NOVI IRNAWATI 41814010070
                    while (reader.Read())
                    {
                        tNIM.Text = reader["nim"].ToString();
                        tNAMA.Text = reader["nama"].ToString();
                        String jenkel = reader["jenkel"].ToString();
                        if (jenkel == "L")
                        { rbLAKI.Checked = true; }
                        else if (jenkel == "P")
                        { rbPEREMPUAN.Checked = true; }
                        String status = reader["status"].ToString();
                        if (status.Contains("1") == true)
                        {
                            cbSTATUS.SelectedIndex = 0;
                        }
                        if (status.Contains("2") == true)
                        {
                            cbSTATUS.SelectedIndex = 1;
                        }
                        tTABUNGAN.Text = reader["tabungan"].ToString();
                        tTAGIHAN.Text = reader["tagihan"].ToString();
                        tDEPOSITO.Text = reader["deposito"].ToString();
                        tHUTANG.Text = reader["hutang"].ToString();
                        tTOTAL.Text = reader["total"].ToString();
                        tKETERANGAN.Text = reader["keterangan"].ToString();

                    }
                    Koneksi.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    tNAMA.Focus();
                }
            }

            else
            {
                //DO NOTHING - NOVI IRNAWATI 41814010070
            }
        }

        private void bSIMPAN_Click(object sender, EventArgs e)
        {
            //CEK KOLOM YANG MASIH KOSONG - NOVI IRNAWATI 41814010070
            if (tNAMA.Text == "" || tNIM.Text == "" || ((rbLAKI.Checked == false) && (rbPEREMPUAN.Checked == false)) || cbSTATUS.Text == "")
            {
                MessageBox.Show(" HARAP ISI KOLOM YANG MASIH KOSONG");  
            }
            else
            {
                //AMBIL NAMA NIM DARI TEXT BOX -  NOVI IRNAWATI 41814010070
                String nama = tNAMA.Text;
                String nim = tNIM.Text;

                //AMBIL ISI RADIO BUTTON - NOVI IRNAWATI 41814010070
                String jenkel = "";
                if (rbLAKI.Checked == true) { jenkel = "L"; }
                else if (rbPEREMPUAN.Checked == true) { jenkel = "P"; }
                else { jenkel = "-"; }

                //AMBIL ISI COMBO BOX - NOVI IRNAWATI 41814010070
                String status = "";
                if (cbSTATUS.Text.Equals("BEASISWA")) { status = "1"; }
                else if (cbSTATUS.Text.Equals("NON-BEASISWA")) { status = "2"; }
                else { status = ""; }

                //SUPAYA TEXT BOX HITUNGAN TIDAK NULL - NOVI IRNAWATI 41007081401
                if (tTABUNGAN.Text == "") { tTABUNGAN.Text = "0"; }
                if (tTAGIHAN.Text == "") { tTAGIHAN.Text = "0"; }
                if (tDEPOSITO.Text == "") { tDEPOSITO.Text = "0"; }
                if (tHUTANG.Text == "") { tHUTANG.Text = "0"; }

                //HITUNG TOTAL - NOVI IRNAWATI 41814010070
                int tabungan = int.Parse(tTABUNGAN.Text);
                int tagihan = int.Parse(tTAGIHAN.Text);
                int deposito = int.Parse(tDEPOSITO.Text);
                int hutang = int.Parse(tHUTANG.Text);
                int total = tabungan + (tagihan / 2) + deposito - hutang;
                tTOTAL.Text = total.ToString();

                //KONDISI UNTUK KETERANGAN - NOVI IRNAWATI 41814010070
                String keterangan = "";
                if (total < 100000000) { keterangan = "Kredit Rumah"; }
                else if (total <= 150000000) { keterangan = "Beli Tanah"; }
                else if (total > 150000000) { keterangan = "Beli Mobil"; }
                tKETERANGAN.Text = keterangan;

                //SQL QUERY DAN EXECUTION - NOVI IRNAWATI 41814010070
                String sql = "INSERT INTO nasabah (nim, nama, jenkel, status, tabungan, tagihan, deposito, hutang, total, keterangan) VALUES (@nim, @nama, @jenkel, @status, @tabungan, @tagihan, @deposito, @hutang, @total, @keterangan)";
                MySqlCommand command = new MySqlCommand(sql, Koneksi.getConnection());
                command.Parameters.AddWithValue("@nim", nim);
                command.Parameters.AddWithValue("@nama", nama);
                command.Parameters.AddWithValue("@jenkel", jenkel);
                command.Parameters.AddWithValue("@status", status);
                command.Parameters.AddWithValue("@tabungan", tabungan);
                command.Parameters.AddWithValue("@tagihan", tagihan);
                command.Parameters.AddWithValue("@deposito", deposito);
                command.Parameters.AddWithValue("@hutang", hutang);
                command.Parameters.AddWithValue("@total", total);
                command.Parameters.AddWithValue("@keterangan", keterangan);                
                int d = command.ExecuteNonQuery();
                if (d > 0)
                {
                    Koneksi.Close();
                    MessageBox.Show("BERHASIL INSERT DATA\n\nNAMA = " + nama + "\nNIM = " + nim + "\nJENIS KELAMIN = " + jenkel + "\nSTATUS = " + status + "\nTABUNGAN = " + tabungan + "\nTAGIHAN = " + tagihan + "\nDEPOSITO = " + deposito + "\nHUTANG = " + hutang + "\nTOTAL = " + total + "\nKETERANGAN = " + keterangan);
                }
                else
                {
                    MessageBox.Show("GAGAL INSERT DATA");
                }
            }
        }

        private void bUBAH_Click(object sender, EventArgs e)
        {
            //CEK KOLOM YANG MASIH KOSONG - NOVI IRNAWATI 41814010070
            if (tNAMA.Text == "" || tNIM.Text == "" || ((rbLAKI.Checked == false) && (rbPEREMPUAN.Checked == false)) || cbSTATUS.Text == "")
            {
                MessageBox.Show(" HARAP ISI KOLOM YANG MASIH KOSONG");
            }
            else
            {
                //AMBIL NAMA NIM DARI TEXT BOX -  NOVI IRNAWATI 41814010070
                String nama = tNAMA.Text;
                String nim = tNIM.Text;

                //AMBIL ISI RADIO BUTTON - NOVI IRNAWATI 41814010070
                String jenkel = "";
                if (rbLAKI.Checked == true) { jenkel = "L"; }
                else if (rbPEREMPUAN.Checked == true) { jenkel = "P"; }
                else { jenkel = "-"; }

                //AMBIL ISI COMBO BOX - NOVI IRNAWATI 41814010070
                String status = "";
                if (cbSTATUS.Text.Equals("BEASISWA")) { status = "1"; }
                else if (cbSTATUS.Text.Equals("NON-BEASISWA")) { status = "2"; }
                else { status = ""; }

                //SUPAYA TEXT BOX HITUNGAN TIDAK NULL - NOVI IRNAWATI 41007081401
                if (tTABUNGAN.Text == "") { tTABUNGAN.Text = "0"; }
                if (tTAGIHAN.Text == "") { tTAGIHAN.Text = "0"; }
                if (tDEPOSITO.Text == "") { tDEPOSITO.Text = "0"; }
                if (tHUTANG.Text == "") { tHUTANG.Text = "0"; }

                //HITUNG TOTAL - NOVI IRNAWATI 41814010070
                int tabungan = int.Parse(tTABUNGAN.Text);
                int tagihan = int.Parse(tTAGIHAN.Text);
                int deposito = int.Parse(tDEPOSITO.Text);
                int hutang = int.Parse(tHUTANG.Text);
                int total = tabungan + (tagihan / 2) + deposito - hutang;
                tTOTAL.Text = total.ToString();

                //KONDISI UNTUK KETERANGAN - NOVI IRNAWATI 41814010070
                String keterangan = "";
                if (total < 100000000) { keterangan = "Kredit Rumah"; }
                else if (total <= 150000000) { keterangan = "Beli Tanah"; }
                else if (total > 150000000) { keterangan = "Beli Mobil"; }
                tKETERANGAN.Text = keterangan;

                //SQL QUERY UPDATE DATA DAN EXECUTION - NOVI IRNAWATI 41814010070
                String sqlupdate = "UPDATE nasabah  SET nim = @nim, nama =@nama , jenkel = @jenkel, status = @status, tabungan = @tabungan, tagihan = @tagihan, deposito = @deposito, hutang = @hutang, total =@total, keterangan = @keterangan WHERE nim = '" + tNIM.Text + "'";
                MySqlCommand update = new MySqlCommand(sqlupdate, Koneksi.getConnection());
                update.Parameters.AddWithValue("@nim", nim);
                update.Parameters.AddWithValue("@nama", nama);
                update.Parameters.AddWithValue("@jenkel", jenkel);
                update.Parameters.AddWithValue("@status", status);
                update.Parameters.AddWithValue("@tabungan", tabungan);
                update.Parameters.AddWithValue("@tagihan", tagihan);
                update.Parameters.AddWithValue("@deposito", deposito);
                update.Parameters.AddWithValue("@hutang", hutang);
                update.Parameters.AddWithValue("@total", total);
                update.Parameters.AddWithValue("@keterangan", keterangan);
                int d = update.ExecuteNonQuery();
                if (d > 0)
                {
                    Koneksi.Close();
                    MessageBox.Show("BERHASIL UPDATE DATA\n\nNAMA = " + nama + "\nNIM = " + nim + "\nJENIS KELAMIN = " + jenkel + "\nSTATUS = " + status + "\nTABUNGAN = " + tabungan + "\nTAGIHAN = " + tagihan + "\nDEPOSITO = " + deposito + "\nHUTANG = " + hutang + "\nTOTAL = " + total + "\nKETERANGAN = " + keterangan);
                }
                else
                {
                    MessageBox.Show("GAGAL UPDATE DATA");
                }
            }
        }

        private void bHAPUS_Click(object sender, EventArgs e)
        {
            //QUERY HAPUS DATA DAN EKSEKUSINYA - 41814010070 NOVI IRNAWATI
            string sqldelete = "DELETE FROM nasabah WHERE nim = '" + tNIM.Text + "'";
            MySqlCommand hapus = new MySqlCommand(sqldelete, Koneksi.getConnection());
            hapus.ExecuteNonQuery();
            try
            {
                hapus.ExecuteNonQuery();
                tNAMA.Text = "";
                tNIM.Text = "";
                rbLAKI.Checked = false;
                rbPEREMPUAN.Checked = false;
                cbSTATUS.SelectedIndex = -1;
                cbSTATUS.Text = "";
                tTABUNGAN.Text = "";
                tTAGIHAN.Text = "";
                tDEPOSITO.Text = "";
                tHUTANG.Text = "";
                tTOTAL.Text = "";
                tKETERANGAN.Text = "";
                MessageBox.Show("BERHASIL HAPUS DATA");
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("GAGAL HAPUS DATA\n\n ERROR : " + ex.Message);
                tNAMA.Text = "";
                tNIM.Text = "";
                rbLAKI.Checked = false;
                rbPEREMPUAN.Checked = false;
                cbSTATUS.SelectedIndex = -1;
                cbSTATUS.Text = "";
                tTABUNGAN.Text = "";
                tTAGIHAN.Text = "";
                tDEPOSITO.Text = "";
                tHUTANG.Text = "";
                tTOTAL.Text = "";
                tKETERANGAN.Text = "";
            }
        }

        private void bBERSIH_Click(object sender, EventArgs e)
        {   
            // SUPAYA TAMPILAN DAN INPUT KOSONG SEPERTI SAAT INISIALISASI - 41814010070 NOVI IRNAWATI
            tNAMA.Text = "";
            tNIM.Text = "";
            rbLAKI.Checked = false;
            rbPEREMPUAN.Checked = false;
            cbSTATUS.SelectedIndex = -1;
            cbSTATUS.Text = "";
            tTABUNGAN.Text = "";
            tTAGIHAN.Text = "";
            tDEPOSITO.Text = "";
            tHUTANG.Text = "";
            tTOTAL.Text = "";
            tKETERANGAN.Text = "";

        }

        private void bKELUAR_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}