Tutorial CRUD C# Sederhana dengan MySql – Studi Kasus Pendataan Nilai Siswa

Tutorial CRUD C# Sederhana dengan MySql – Studi Kasus Pendataan Nilai Siswa

Mengelola data merupakan hal yang penting dalam pengembangan aplikasi. Oleh karena itu, CRUD (Create, Read, Update, dan Delete) merupakan salah satu operasi dasar yang harus dikuasai oleh seorang developer. Pada artikel ini, kita akan membahas bagaimana membuat aplikasi sederhana menggunakan bahasa pemrograman C# dan database MySQL dengan studi kasus pendataan nilai siswa. Dalam tutorial ini, kita akan mempelajari cara membuat koneksi database, mengambil data, menambahkan data, mengubah data, dan menghapus data menggunakan C# dan MySQL. Mari kita mulai dengan pembahasan pertama, yaitu cara membuat koneksi database.

Membuat Database

Pertama-tama, sebelum kita dapat melakukan operasi CRUD pada data, kita perlu terlebih dahulu membuat database MySQL. saya anggap anda sudah memahami bagaimana cara membuat database di MySql, jika anda kesulitan bisa baca tutorial sebelumnya tentang cara membuat database mysql menggunakan XAMPP.

Untuk memudahkan anda dalam melakukan praktikum studi kasus ini, saya siapkan Query MySql untuk membuat database data_siswa beserta tabelnya, anda cukup copy query berikut kemudian eksekusi pada menu QUERY



--
-- Database: `data_siswa`
--

-- --------------------------------------------------------

--
-- Struktur dari tabel `guru`
--

CREATE TABLE `guru` (
  `id` int(4) NOT NULL,
  `nama` varchar(100) NOT NULL,
  `nip` varchar(25) NOT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data untuk tabel `guru`
--

INSERT INTO `guru` (`id`, `nama`, `nip`, `created_at`, `updated_at`) VALUES
(1, 'Moh. Shobirin', '19910810 2022122 1 013', NULL, NULL);

-- --------------------------------------------------------

--
-- Struktur dari tabel `mapel`
--

CREATE TABLE `mapel` (
  `id` int(4) NOT NULL,
  `nama_mapel` varchar(50) NOT NULL,
  `kode_mapel` varchar(10) NOT NULL,
  `guru_id` int(4) NOT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data untuk tabel `mapel`
--

INSERT INTO `mapel` (`id`, `nama_mapel`, `kode_mapel`, `guru_id`, `created_at`, `updated_at`) VALUES
(1, 'Produktif RPL', '001', 1, NULL, NULL);

-- --------------------------------------------------------

--
-- Struktur dari tabel `nilai`
--

CREATE TABLE `nilai` (
  `id` int(6) NOT NULL,
  `siswa_id` int(4) NOT NULL,
  `mapel_id` int(3) NOT NULL,
  `nilai` int(11) NOT NULL DEFAULT '0',
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `nilai`
--

INSERT INTO `nilai` (`id`, `siswa_id`, `mapel_id`, `nilai`, `created_at`, `updated_at`) VALUES
(1, 1, 1, 90, '2023-03-12 10:23:09', NULL);

-- --------------------------------------------------------

--
-- Struktur dari tabel `siswa`
--

CREATE TABLE `siswa` (
  `id` int(4) NOT NULL,
  `nama` varchar(150) NOT NULL,
  `jenkel` varchar(10) NOT NULL,
  `alamat` varchar(255) NOT NULL,
  `nohp` varchar(18) NOT NULL,
  `jurusan` varchar(15) NOT NULL,
  `email` varchar(20) NOT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `siswa`
--

INSERT INTO `siswa` (`id`, `nama`, `jenkel`, `alamat`, `nohp`, `jurusan`, `email`, `created_at`, `updated_at`) VALUES
(1, 'A. Syauqi A`la', 'Laki-laki', 'Lajuk Porong', '0812222222', 'RPL', 'syauqi@gmail.com', '2023-03-12 10:22:03', '2023-03-12 10:22:39');

-- --------------------------------------------------------

--
-- Struktur dari tabel `users`
--

CREATE TABLE `users` (
  `id` int(4) NOT NULL,
  `name` varchar(150) NOT NULL,
  `email` varchar(25) NOT NULL,
  `email_verified_at` timestamp NULL DEFAULT NULL,
  `password` varchar(255) NOT NULL,
  `level` varchar(15) NOT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `users`
--

INSERT INTO `users` (`id`, `name`, `email`, `email_verified_at`, `password`, `level`, `created_at`, `updated_at`) VALUES
(1, 'Admin', 'admin@gmail.com', '2023-03-11 17:00:00', 'Admin', 'admin', '2023-03-12 10:17:27', '2023-03-12 10:19:04');

-- --------------------------------------------------------

--
-- Stand-in struktur untuk tampilan `vnilai`
-- (Lihat di bawah untuk tampilan aktual)
--
-- --------------------------------------------------------

--
-- Struktur untuk view `vnilai`
--

CREATE VIEW vmapel as SELECT mapel.id, mapel.nama_mapel, mapel.kode_mapel, guru.nama from mapel INNER JOIN guru ON mapel.guru_id=guru.id; 
CREATE VIEW vnilai AS select nilai.id, `siswa`.`nama` AS `nama`,`siswa`.`jurusan` AS `jurusan`,`mapel`.`nama_mapel` AS `nama_mapel`,guru.nama as guru,`nilai`.`nilai` AS `nilai` from ((`nilai` join `mapel` on((`mapel`.`id` = `nilai`.`mapel_id`))) join `siswa` on((`siswa`.`id` = `nilai`.`siswa_id`))join guru on guru.id=mapel.id);
 --
-- Indexes for dumped tables
--

--
-- Indeks untuk tabel `guru`
--
ALTER TABLE `guru`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `mapel`
--
ALTER TABLE `mapel`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `nilai`
--
ALTER TABLE `nilai`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `siswa`
--
ALTER TABLE `siswa`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `users_email_unique` (`email`);

--
-- AUTO_INCREMENT untuk tabel yang dibuang
--

--
-- AUTO_INCREMENT untuk tabel `guru`
--
ALTER TABLE `guru`
  MODIFY `id` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `mapel`
--
ALTER TABLE `mapel`
  MODIFY `id` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `nilai`
--
ALTER TABLE `nilai`
  MODIFY `id` int(6) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `siswa`
--
ALTER TABLE `siswa`
  MODIFY `id` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `users`
--
ALTER TABLE `users`
  MODIFY `id` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
COMMIT;

Sehingga jika query tersebut berhasil dijalankan, akan menghasilkan struktur database seperti pada gambar berikut ini :

Membuat Project pada Aplikasi Visual Studio 

Membuat Project Baru Aplikasi Pendataan Nilai Siswa

Langkah pertama dalam membuat aplikasi WinForm adalah dengan membuat project baru di Visual Studio. Setelah membuka Visual Studio, pilih “Create a New Project”.

Kemudian pilih “Windows Forms App (.NET Framework)” dan beri nama project Anda.

Membuat Project Baru Tutorial Crud C#

Setelah itu, klik “Create” untuk membuat project baru.

Tutorial CRUD C#

Install MySQL Connector .Net menggunakan Nuget pada C#

Step 1: Buka NuGet Package Manager for Solution Klik kanan pada solusi (solution) Anda di Solution Explorer, dan pilih “Manage NuGet Packages for Solution”.

Install MySQL Connector .net Menggunakan Package Manager

Step 2: Cari MySql.Data Di dalam NuGet Package Manager for Solution, cari paket MySql.Data dengan menggunakan fitur pencarian yang tersedia.

Install-MySql-Connector C#

Step 3: Pilih Versi dan Install Pilih versi MySql.Data yang ingin Anda install dan klik tombol “Install” untuk memulai proses instalasi.

Install MySQL.Data di C#

Step 4: Memastikan Installasi Selesai Setelah proses instalasi selesai, pastikan referensi “MySql.Data” sudah ada di dalam proyek Anda dengan melihat bagian “References” di Solution Explorer.

Cek MySql.Data berhasil terinstall.

Jika MySql data sudah ada di references, artinya anda sudah berhasil install MySql Connector .Net pada Project anda.

Membuat Form untuk Aplikasi Pendataan Nilai Siswa

Untuk memudahkan anda membuat project ini, Desain terlebih dahulu semua Form dari Tabel Master dan Tabel Transaksi dari Database yang sudah dibuat.

Membuat Form Login

Desain Form Login C#

Membuat Form Dashboard

Buatlah Layout Form Baru dengan nama Dashboard, kemudian tambahkan komponen berikut ini ke dalam Form Dashboard

Form-Dashboard-Awal-C#

Sesuaikan Komponennya dengan tabel Properties berikut Sehingga tampilan Form Dashboard Tampak lebih cantik

Komponen Property Value
Panel1 Dock Top
Size 1000, 128
BackColor DarkBlue
Panel2 Dock Left
Size 255, 522
BackColor PowderBlue
Panel3 Dock Fill
BackgroundImage Gambar pilihan
BackgroundImageLayout Stretch
Panel4 Dock Left
BackgroundImage Logo Sekolah
BackgroundImageLayout Stretch
Button1 Name btSiswa
Text Siswa
TextAlign MiddleLeft
BackColor DeepSkyBlue
Font 12pt
Button2 Name btGuru
Text Guru
TextAlign MiddleLeft
BackColor DeepSkyBlue
Font 12pt
Button3 Name btMapel
Text Mapel
TextAlign MiddleLeft
BackColor DeepSkyBlue
Font 12pt
Button4 Name btNilai
Text Nilai
TextAlign MiddleLeft
BackColor DeepSkyBlue
Font 12pt
Button5 Name btLogout
Text Logout
BackColor Coral
Font 12pt
Label 1 Text Aplikasi Pendataan Nilai
Font 17pt
ForeColor Window
Form1 Text Dashboard – Aplikasi Pendataan Nilai
Size 1022, 706
WindowState Maximized
IsMdiContainer True

Jika Sudah sesuai, hasilnya akan tampak seperti gambar berikut ini

Anda boleh berkreasi sesuai dengan selera anda, saya yakin desain layout kalian jauh lebih bagus daripada yang saya contohkan. 🙂

 

Membuat Form Siswa

Selanjutnya kita tambahkan Form baru dengan nama Siswa, kemudian sesuaikan komponen pada Form Siswa sesuai Tabel Property berikut ini

Form Kelola Data Siswa C#

Komponen Property Value
Label1 Text Cari
Font 10pt
ForeColor RoyalBlue
Label2 Text Nama
Font 10pt
ForeColor RoyalBlue
Label3 Text Jenis Kelamin
Font 10pt
ForeColor RoyalBlue
Label4 Text Alamat
Font 10pt
ForeColor RoyalBlue
Label5 Text No HP
Font 10pt
ForeColor RoyalBlue
Label6 Text Email
Font 10pt
ForeColor RoyalBlue
Label2 Text Jurusan
Font 10pt
ForeColor RoyalBlue
Button1 Name btInsert
Text Insert
ForeColor White
BackColor DodgerBlue
Font 10pt
Button2 Name btUpdate
Text Update
ForeColor White
BackColor DodgerBlue
Font 10pt
Button3 Name btDelete
Text Delete
ForeColor White
BackColor DodgerBlue
Font 10pt
Button4 Name btCancel
Text Insert
ForeColor White
BackColor DodgerBlue
Font 10pt
TextBox1 Name txtcari
Font 10pt
TextBox2 Name txtnama
Font 10pt
TextBox3 Name txtalamat
Font 10pt
Multiline True
TextBox4 Name txtnohp
Font 10pt
TextBox5 Name txtemail
Font 10pt
TextBox6 Name txtjurusan
Font 10pt
CheckBox1 Name cbkelamin
Items Laki-Laki
Perempuan
DataGridView1 Name dgsiswa

Jika Sudah sesuai, hasilnya akan tampak seperti gambar berikut ini

Membuat Form Guru

Selanjutnya tambahkan Form baru dengan nama Guru, kemudian sesuaikan desainnya dengan Tabel Property Berikut ini

Komponen Property Value
Label1 Text Cari
Font 10pt
ForeColor RoyalBlue
Label2 Text Nama
Font 10pt
ForeColor RoyalBlue
Label3 Text NIP
Font 10pt
TextBox1 Name txtcari
Font 10pt
TextBox2 Name txtnama
Font 10pt
DataGridView1 Name dgguru
TextBox3 Name txtnip
Font 10pt
Membuat Form Mapel

Selanjutnya tambahkan Form baru dengan nama Mapel, kemudian sesuaikan desainnya dengan Tabel Property Berikut ini

Desain Form Mapel C#

Membuat Form Nilai

Yang terakhir tambahkan Form baru dengan nama Nilai, kemudian sesuaikan desainnya dengan Tabel Property Berikut ini

Desain From Nilai C#

LANJUTKAN BACA DI PAGE 2

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *