Skip to content Skip to sidebar Skip to footer

C# - Cara Membuat Form One To Many Tanpa Input ID

C# - Cara Membuat Form One To Many Tanpa Input ID


Assalamu'alaikum wr.wb
Kita semua sebagai programmer pemula pasti pernah membuat aplikasi, aplikasi yang kita buat biasanya menggunakan database untuk menyimpan data. Tentu saja tujuan aplikasi adalah mempermudah pengguna untuk mengolah data. Dengan menggunakan aplikasi yang kita buat ini, kita selalu berharap agar masalah yang ada pada sebuah perusahaan baik perusahaan menengah kebawah maupun menengah keatas terselesaikan dengan aplikasi yang kita buat ini. Tujuan yang baik itu pasti akan menghasilkan yang baik pula.

Namun sering terjadi masalah dalam aplikasi itu. Terkadang aplikasi yang kita buat justru malah tidak memberikan kemudahan pada pengguna, lebih parahnya lagi menambah masalah baru yang harusnya tidak ada. Kita sebagai pembuat aplikasi itu adalah yang paling bertanggungjawab atas masalah itu. Karena itulah saya memposting artikel ini dengan tujuan anda mulai mengerti mengenai perkara yang satu ini.



Baca Juga


Bagi programmer pemula seperti kita, biasanya masalah yang paling mendasar adalah ID. ID adalah pembeda antar row. Biasanya berisi angka urut dan kombinasi - kombinasi seperti A0001, 2018.02.0001, A18001, dan masih banyak lagi. Seperti yang saya jelaskan sebelumnya, ID yang baik adalah ID yang menggunakan tipe data ringan. Pihak SQL Server sendiri sudah memberikan fitur autoincrement agar untuk mempermudah kita dalam masalah ID. Namun jika aplikasi yang kita buat digunakan untuk tugas kampus dan tidak untuk kerja nyata, itu tidaklah masalah. Berikut ini adalah masalah yang sering terjadi dalam pembuatan Form :


1. Membuat Database

Sebelum kita memulai untuk memecahkan masalah tentang ID ini, kita buat terlebih dahulu database yang akan kita gunakan sebagai penyimpanan data. Silahkan kunjungi artikel tutorial membuat database SQL Server untuk penjelasan yang lebih lanjut.  Pada artikel ini, saya hanya memberikan tentang script database yang digunakan saja. Berikut ini adalah script database yang digunakan :

Create Database db_kelas
Keterangan : Script diatal adalah script untuk membuat database dengan settingan default


Setelah kita membuat database, saatnya kita membuat tabel yang dibutuhkan, Pada contoh ini, tentu kita membuat tabel yang berelasi one to many saja. Karena masalah ini adalah yang paling sering ditemui oleh kita sebagai programmer pemula.

--tabel kelas
create table kelas(
id_kelas int identity primary key not null,
nama_kelas varchar(20) not null
)

--tabel mahasiswa
create table mahasiswa(
id_mahasiswa int identity primary key not null,
nama_mahasiswa varchar(50) not null,
id_kelas int foreign key references kelas(id_kelas)
)
Pada script diatas, kita menggunakan 2 buah tabel yang mana tabel itu berelasi one to many.


Contoh Database One To Many

Gambar diatas adalah hasil diagram dari script sebelumnya. Pada gambar tersebut, kita bisa mengetahui bahwa terdapat dua buah tabel, yaitu tabel kelas dan mahasiswa. Secara logis kita tahu jika dalam satu kelas, terdapat banyak mahasiswa. Karena itulah relasi dari kedua tabel ini adalah one to many.


2. Input Database Pada Tabel Kelas Dan Mahasiswa

Langkah ini masih berhubungan dengan database. Yaitu input data. Silahkan kunjungi artikel CRUD SQL Server untu penjelasan lebih lanjut. Pada artikel ini saya hanya memberikan contoh script untuk CRUD saja. Berikut ini adalah script untuk input data kelas dan mahasiswa.

--input kelas
insert into kelas (nama_kelas) values('D3MI 01'), ('D3MI 02')
Script ini adalah coding untuk input data kelas. Disini kita mengisi nama_kelas saja. Karena id_kelas sudah terinput otomatis.

Pada script diatas kita inputkan dua data yang diperlukan. Data yang kita inputkan itu akan tersimpan didalam tabel kelas. Sekarang, kita cek apakah data yang kita inputkan berhasil ataukah tidak.

Tabel Kelas

Gambar diatas adalah hasil SS dari tabel yang kita tampilkan. Data yang kita inputkan sudah tersimpan didalam tabel kelas sesuai dengan script yang kita inputkan tadi.


--input mahasiswa
insert into mahasiswa (nama_mahasiswa, id_kelas) values
('Hartono',1),
('Febri',1),
('Umam',2),
('Fafa',2)
Script ini adalah script untuk menginputkan data pada tabel mahasiswa. Disini kita inputkan nama_mahasiswa dan id_kelas saja karena id_mahasiswa sudah dibuat autonumber yang mana id itu akan terisi secara otomatis tanpa perlu kita menginputkan.

Tabel Mahasiswa

Gambar diatas adalah hasil dari script yang kita buat tadi. Data yang kita inputkan sudah tersimpan Pada tabel mahasiswa. Artinya proses input yang kita lakukan tadi sudah berhasil.


3. Masalah Dalam Pembuatan Form 

Setelah kita selesai dalam pembuatan database. Sekarang waktunya kita membuat form untuk mengolah data dari database yang sudah kita buat sebelumnya. Disini saya akan menjelaskan tentang cara membuat form untuk mengatasi masalah yang seringkali dihadapi oleh pemula seperti kita. Yaitu Form ID dengan relasi One To Many.

Penjelasan lebih lanjut tentang cara membuat form menggunakan visual studio, bisa dilihat disini. Pada artikel tersebut saya memberikan contoh pembuatan form dan program secara detail. Dan yang pasti lebih detail dari penjelasan di artikel ini.


1. Membuat Form One To Many

Pada form dengan desain inilah contoh pembuatan form one to many. Jadi kita membuat sebuah form dengan isi textbox untuk tabel pertama (dalam hal ini tabel kelas) lalu kita tambahkan datagrid untuk isi tabel kedua (tabel mahasiswa). Berikut ini adalah contohnya :


Form Kelas

Pada form diatas, terdapat label untuk id kelas dan textbox untuk nama_kelas. entitas yang diperlukan sesuai dengan field yang ada pada tabel. Lalu kita tambahkan datagridview sebagai isi dari data mahasiswa yang berada di kelas tersebut. Dalam form diatas, kita tambahkan sedikit program saja. Berikut ini adalah program yang dibutuhkan untuk form kelas.

frmKelas
        public DataGridView dgv()
        {
            return dgvMahasiswa;
        }
        public Label lbl()
        {
            return lblIdKelas;
        }

        public TextBox tb()
        {
            return txtKelas;
        }

Letakkan program dibawah constructor saja. Agar kita bisa mengedit dengan mudah.


2. Membuat Form Tanpa Input ID

Setelah kita membuat form kelas, tentu masih belum menyelesaikan masalah tentang input ID. Seperti yang saya sebutkan sebelumnya. Tutorial ini dibuat untuk membuat form tanpa input ID. Artinya ID akan terisi secara otomatis. Untuk mewujudkan hal tersebut, kita membuat form lagi dengan fungsi sebagai pencarian kelas.


Form Pencarian

Pada form diatas, kita akan mengisikan datagrid yang ada dengan data kelas pada databaes yang sudah kita buat tadi. Cara kerja form ini adalah dengan cara klik pada tombol sebelah id pada form pertama, lalu akan muncul data kelas pada datagrid di form cariKelas ini. Jika kita double klik pada row yang ada, maka data dari row tersebut akan berpindah pada frmKelas dan akan di tampilkan disana.

Disini kita masih membutuhkan frmKelas terlebih dahulu. frmKelas yang kita buat sebelumnya kita tambahkan dengan program dibawah ini. Caranya adalah dengan double klik tombol yang ada pada sebelah label IDKelas. Lalu akan muncul function baru. Tambahkan script berikut ini.

frmKelas
//Double klik pada tombol btnCariKelas yang terdapat di samping label IDKelas
private void btnCariKelas_Click(object sender, EventArgs e)
{
     FrmCariKelas cari = new FrmCariKelas(this);
     cari.ShowDialog();
}

Script diatas adalah script untuk menampilkan frmCariKelas yang mana form tersebut akan menjadi turunan bagi frmKelas (this). Biasanya akan muncul error. Ketikkan program dibawah ini pada frmCariKelas.

frmCariKelas
db_kelasEntities dk = new db_kelasEntities();
private FrmKelas frmKelas;
private int idKelas;

public FrmCariKelas(FrmKelas frmKelas)
   :this()
{
   this.frmKelas = frmKelas;
   dgvKelas.DataSource = dk.kelas.ToList();
}

Setelah kita mengettikan program diatas di frmCariKelas, maka error yang ada di frmkelas akan hilang. Hal ini karena kita membuat constructor baru yang terdapat parameter frmKelas untuk diikutkan ketika memanggil frmCariKelas.

Catatan : Tutorial ini dibuat dengan menggunakan entity framework. Untuk memanipulasi data dengan database, Tutorialnya bisa dilihat disini.

Lalu klik pada datagridview frmCariKelas, lalu pilih event - celldoubleClick. Event tersebut berfungsi untuk memberikan respon pada aplikasi ketika row pada datagrid di double klik. Tambahkan program berikut ini.

frmCariKelas
private void dgvKelas_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    dk = new db_kelasEntities();
    idKelas = Convert.ToInt16(dgvKelas[0, e.RowIndex].Value.ToString());

    frmKelas.dgv().DataSource = dk.mahasiswa.Where(u => u.id_kelas == idKelas).
                Select(u => new { u.id_mahasiswa, u.nama_mahasiswa }).ToList();

    frmKelas.lbl().Text = idKelas.ToString();
    frmKelas.tb().Text = dgvKelas[1, e.RowIndex].Value.ToString();
    this.Close();
}

Di tahap ini sebenarnya hanyalah mengirim data dari frmCariKelas ke frmKelas. Banyak sedikitnya tergantung jumlah data yang ingin kita kirimkan saja. Lalu datagridview pada frmKelas juga kita tambahkan melalui frm ini.


Penutup

Sebagai programmer, kita haruslah tahu mengenai masalah - masalah yang ada pada sebuah perusahaan. Tentulah kita harusnya mengetahui bagaimana pembuatan aplikasi yang baik dan benar agar tidak mempersulit pengguna. Jangan sampai aplikasi yang kita buat justru semakin menambah masalah pada sebuah perusahaan. Karena kitalah yang bertanggung jawab dalam masalah ini.

Demikian tutorial dari saya. Apabila ada kekurangan saya mohon maaf sebesar - besarnya. Semoga artikel ini bermanfaat untuk anda. Terimakasih telah berkunjung. Silahkan tinggalkan jejak di kolom komentar. Assalamu'alaikum wr.wb.

Bisa anda lihat videonya disini



Post a Comment for "C# - Cara Membuat Form One To Many Tanpa Input ID"