Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.
Class
MySQLConn.cs
Saya bagi menjadi beberapa bagian :
#1 - Membuat Database : https://youtu.be/Ho1fiH-N1gc
#2 - Membuat Desain : https://youtu.be/kcBhMA-MhrU
#3 - Simpan Data : https://youtu.be/9q_W6EVySdI
#4 - Tampil Data : https://youtu.be/EVPLgHOXPEQ
#5 - Ubah Data : https://youtu.be/tp6omIN86cw
#6 - Hapus Data : https://youtu.be/RKx2Qilj8og
Ada pertanyaan langsung di comment youtube.
Class
MySQLConn.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace Youtube.Class
{
abstract class MySQLConn
{
//Penggunaan ExecNonQuery untuk Insert, Delete dan Update
public abstract int ExecNonQuery(String query);
//Penggunaan ExecQuery untuk Select
public abstract DataTable ExecQuery(String query);
}
}
MySQLService.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing;using System.Data;using MySql.Data.MySqlClient;namespace Youtube.Class{class MySQLService : MySQLConn{private String strCon = "";private MySqlConnection sConn;private MySqlCommand sComm;private MySqlDataAdapter dtAdp;public String Query;public MySQLService(){strCon = Constr();sConn = new MySqlConnection(strCon);sComm = new MySqlCommand();dtAdp = new MySqlDataAdapter();}public String Constr(){String data;data = "datasource=localhost;port=3306;Initial Catalog='youtube';username=root;password=gizenzio";return data;}public void BukaKoneksi(){if (sConn.State == ConnectionState.Closed){try{sConn.Open();}catch (Exception){}}}public void TutupKoneksi(){sConn.Close();}public override int ExecNonQuery(String Query){int retVal = -1;try{BukaKoneksi();sComm.Connection = sConn;sComm.CommandText = Query;retVal = sComm.ExecuteNonQuery();}catch (Exception) { }finally{TutupKoneksi();}return retVal;}public override DataTable ExecQuery(String Query){DataTable retVal = new DataTable();try{BukaKoneksi();sComm.Connection = sConn;sComm.CommandText = Query;dtAdp.SelectCommand = sComm;dtAdp.Fill(retVal);}catch (Exception) { }finally{TutupKoneksi();}return retVal;}}}
Pengguna.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Youtube.Class{class Pengguna{private String id;private String nama;private String email;private String subscribe;public Pengguna(){id = "";nama = "";email = "";subscribe = "";}public String ID{set { id = value; }get { return id; }}public String NAMA{set { nama = value; }get { return nama; }}public String EMAIL{set { email = value; }get { return email; }}public String SUBCRIBE{set { subcribe = value; }get { return subcribe; }}}}
PenggunaService.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;namespace Youtube.Class{class PenggunaService : Pengguna{MySQLService mysql;DataTable dt;public PenggunaService(){mysql = new MySQLService();dt = new DataTable();}public void Hapus(String id){//Query Hapus Ke Database youtube table pengguna.mysql.Query = "DELETE FROM pengguna WHERE id = '" + id + "'";if (!(mysql.ExecNonQuery(mysql.Query) > 0)){throw new Exception("Terjadi kesalahan saat menghapus!");}}}}
Program.cs
using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace Youtube{static class Program{/// <summary>/// The main entry point for the application./// </summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new Form1());}}}
Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Youtube.Class;
namespace Youtube
{
public partial class Form1 : Form
{
//Memanggil atau menggunakan class yang telah dibuat
PenggunaService ps = new PenggunaService();
public Form1()
{
InitializeComponent();
}
private void tampilpengguna()
{
//Meenggunakan class untuk tampil ke datagridview
dgvselect.DataSource = ps.Tampil();
}
private void btnselect_Click(object sender, EventArgs e)
{
//Pada saat button menu select diklik panel insert tinggi menjadi 0 dan panel select menjadi 255
panelwelcome.Height = 0;
panelinsert.Height = 0;
panelupdate.Height = 0;
paneldelete.Height = 0;
panelselect.Height = 255;
//Button akan disable atau tidak bisa diklik
btnselect.Enabled = false;
//Button menu lainya akan aktif kecuali button menu select
btndelete.Enabled = true;
btninsert.Enabled = true;
btnupdate.Enabled = true;
}
private void btninsert_Click(object sender, EventArgs e)
{
//Pada saat button menu insert diklik panel select tinggi menjadi 0 dan panel insert menjadi 255
panelwelcome.Height = 0;
panelselect.Height = 0;
panelupdate.Height = 0;
paneldelete.Height = 0;
panelinsert.Height = 255;
//Button akan disable atau tidak bisa diklik
btninsert.Enabled = false;
//Button menu lainya akan aktif kecuali button menu insert
btnselect.Enabled = true;
btndelete.Enabled = true;
btnupdate.Enabled = true;
}
private void pictureBox2_Click(object sender, EventArgs e)
{
//Keluar atau menghentikan program berjalan
Environment.Exit(0);
}
private void btnsimpan_Click(object sender, EventArgs e)
{
//Set nama, nama, subscribe berdasarkan yang diinputkan ke Textbox
//Menyimpan data pengguna ke database youtube table pengguna
ps.NIM = txtnim.Text;
ps.NAMA = txtnama.Text;
ps.JURUSAN= txtemail.Text;
ps.SEMESTER = txtsubscriber.Text;
ps.Simpan();
//Jika simpan berhasil akan muncul MessageBox dan text akan terbersihkan.
//MessageBox.Show("Simpan Berhasil");
txtnim.Clear();
txtnama.Clear();
txtemail.Clear();
txtsubscriber.Clear();
//Tanpa Message Box hanya bermain text
btnsimpan.Text = "Simpan Berhasil";
//Jika button disimpan timer memulai
timer.Start();
//Meload datagridview setelah selesai menyimpan
tampilpengguna();
}
public int waktu
{
set;
get;
}
private void timer_Tick(object sender, EventArgs e)
{
if( waktu > 0 )
{
waktu = waktu - 1;
}
else
{
timer.Stop();
//Mengganti text btnsimpan yang tadinya Simpan berhasil menjadi Simpan.
btnsimpan.Text = "Simpan";
//Mengganti text btnupdate yang tadinya Simpan berhasil menjadi Update.
btnupdatepengguna.Text = "Update";
//Mengganti text btnhapus yang tadinya Simpan berhasil menjadi Hapus.
btnhapus.Text = "Hapus";
}
}
private void Form1_Load(object sender, EventArgs e)
{
//Form load data akan dipanggil pada saat Form muncul
tampilpengguna();
}
private void btnupdate_Click(object sender, EventArgs e)
{
//Pada saat button menu update diklik panel insert tinggi menjadi 0 dan panel select menjadi 255
panelwelcome.Height = 0;
panelinsert.Height = 0;
panelupdate.Height = 255;
panelselect.Height = 0;
paneldelete.Height = 0;
//Button akan disable atau tidak bisa diklik
btnupdate.Enabled = false;
//Button menu lainya akan aktif kecuali button menu update
btnselect.Enabled = true;
btninsert.Enabled = true;
btndelete.Enabled = true;
}
private void btnupdatepengguna_Click(object sender, EventArgs e)
{
//Set nama, nama, subscribe berdasarkan yang diinputkan ke Textbox
//Mengupdate data pengguna ke database youtube table pengguna
ps.NAMA = txtnamaupdate.Text;
ps.JURUSAN = txtemailupdate.Text;
ps.SEMESTER = txtsubscribeupdate.Text;
ps.Ubah(txtidupdate.Text);
//Jika ubah data berhasil
btnupdatepengguna.Text = "Update Berhasil";
txtidupdate.Clear();
txtnamaupdate.Clear();
txtemailupdate.Clear();
txtsubscribeupdate.Clear();
//timer berjalan
timer.Start();
//Datagridview mereload ulang
tampilpengguna();
}
private void dgvselect_CellClick(object sender, DataGridViewCellEventArgs e)
{
//Pada saat datagridview salah satu baris di klik maka value atau isinya akan muncul di textbox bagian update.
DataGridViewRow row = this.dgvselect.Rows[e.RowIndex];
//Value Tampil di Textbox Update
txtidupdate.Text = row.Cells[0].Value.ToString();
txtnamaupdate.Text = row.Cells[1].Value.ToString();
txtemailupdate.Text = row.Cells[2].Value.ToString();
txtsubscribeupdate.Text = row.Cells[3].Value.ToString();
//Value Tampil di Textbox Delete
txtidhapus.Text = row.Cells[0].Value.ToString();
txtnamahapus.Text = row.Cells[1].Value.ToString();
txtemailhapus.Text = row.Cells[2].Value.ToString();
txtsubscribehapus.Text = row.Cells[3].Value.ToString();
}
private void btnhapus_Click(object sender, EventArgs e)
{
//Hanya Text ID pengguna yang digunakan untuk menghapus
ps.Hapus(txtidhapus.Text);
//Jika hapus berhasil
btnhapus.Text = "Hapus Berhasil";
txtidhapus.Clear();
txtnamahapus.Clear();
txtemailhapus.Clear();
txtsubscribehapus.Clear();
//Waktu berjalan start
timer.Start();
//Reload datagridview
tampilpengguna();
}
private void btndelete_Click(object sender, EventArgs e)
{
//Pada saat button menu delete diklik panel insert tinggi menjadi 0 dan panel select menjadi 255
panelwelcome.Height = 0;
panelinsert.Height = 0;
panelupdate.Height = 0;
panelselect.Height = 0;
paneldelete.Height = 255;
//Button akan disable atau tidak bisa diklik
btndelete.Enabled = false;
//Button menu lainya akan aktif kecuali button menu delete
btnselect.Enabled = true;
btninsert.Enabled = true;
btnupdate.Enabled = true;
}
private void btnkeluar_Click(object sender, EventArgs e)
{
//Keluar dari program atau close
Application.Exit();
}
}
}
#1 - Membuat Database : https://youtu.be/Ho1fiH-N1gc
#2 - Membuat Desain : https://youtu.be/kcBhMA-MhrU
#3 - Simpan Data : https://youtu.be/9q_W6EVySdI
#4 - Tampil Data : https://youtu.be/EVPLgHOXPEQ
#5 - Ubah Data : https://youtu.be/tp6omIN86cw
#6 - Hapus Data : https://youtu.be/RKx2Qilj8og
Ada pertanyaan langsung di comment youtube.
Comments