Pokok bahasan ini merupakan lanjutan dari pembahasan sebelumnya tentang Menghubungkan Aplikasi MFC dengan Database. Pada bagian ini kita akan mempelajari bagaimana membuat fungsi-fungsi dasar pengolahan data seperti penambahan data, penghapusan data dan edit data.
Untuk membuatĀ fungsi penambahan data, tambahkan tombol save dan cancel pada kotak dialog kemudian ubah properties visible menjadi false agar tombol-tombol tersebut tidak terlihat. Ubah juga properties disabled semua edit box menjadi true agar menjadi tidak aktif.
Gambar 1. Membuat tombol simpan
Buat variabel control tombol tersebut dan semua edit box dengan cara right-click pada masing-masing objek kemudian pilih add variable, misal pada contoh ini dibuat dengan nama: ctrl_btn_simpan, ctrl_edit_kode, ctrl_edit_buku dan ctrl_edit_stok.
Gambar 2. Membuat variabel control
Buka kotak dialog menu pada resource view dan tambahkan sub menu New Record pada menu Record.
Gambar 3. Menambah menu new record
Buat fungsiĀ untuk menu new record tersebut dengan cara right-click kemudian pilih add event handler. Pilih class view untuk menampung fungsi tersebut.
Gambar 4. Membuat fungsi dari menu new record
Isikan kode program pada fungsi tersebut seperti berikut:
void CLat_DatabaseView::OnRecordNewrecord()
{
//mengaktifkan edit box dan tombol simpan
ctrl_edit_kode.EnableWindow(true);
ctrl_edit_buku.EnableWindow(true);
ctrl_edit_stok.EnableWindow(true);
ctrl_btn_simpan.ShowWindow(true);
ctrl_btn_batal.ShowWindow(true);
//mengosongkan isi edit box
ctrl_edit_kode.SetWindowTextW(CString(""));
ctrl_edit_buku.SetWindowTextW(CString(""));
ctrl_edit_stok.SetWindowTextW(CString(""));
//set fokus pada edit box kode buku
ctrl_edit_kode.SetFocus();
//menambahkan data baru
m_pSet->AddNew();
}
Buat juga fungsi pada tombol simpan dan tambahkan kode program seperti berikut:
void CLat_DatabaseView::OnBnClickedButton1()
{
UpdateData();
if (m_pSet->Update())
AfxMessageBox(_T("Database updated!"));
else
AfxMessageBox(_T("Failed updating database!"));
// menyembunyikan kembali tombol
ctrl_btn_simpan.ShowWindow(false);
ctrl_btn_batal.ShowWindow(false);
//menonaktifkan edit box
ctrl_edit_kode.EnableWindow(false);
ctrl_edit_buku.EnableWindow(false);
ctrl_edit_stok.EnableWindow(false);
//menampilkan data terakhir
m_pSet->MoveLast();
}
Terakhir buat fungsi pada tombol cancel dan isikan kode program seperti berikut:
void CLat_DatabaseView::OnBnClickedButton2()
{
// menyembunyikan kembali tombol
ctrl_btn_simpan.ShowWindow(false);
ctrl_btn_batal.ShowWindow(false);
//menonaktifkan edit box
ctrl_edit_kode.EnableWindow(false);
ctrl_edit_buku.EnableWindow(false);
ctrl_edit_stok.EnableWindow(false);
//query ulang data
m_pSet->Requery();
UpdateData(false);
}
Apabila anda ingin menambahkan icon penambahan data pada toolbar maka tampilkan menu toolbar melalui resource view, kemudian buatlah icon baru untuk penambahan data tersebut, terakhir ubahlah nama id icon tersebut pada properties menjadi sama dengan id dari fungsi new record.
Gambar 5. Membuat ikon toolbar untuk menu new record
Fungsi selanjutnya yang akan kita buat adalah fungsi edit data. Buat sub menu edit record pada menu record kemudian buat fungsi untuk menu tersebut. Fungsi edit ini kurang lebih sama dengan fungsi tambah data dan menggunakan tombol-tombol yang sama (tombol save dan cancel). Untuk itu kita perlu suatu variabel untuk membedakan fungsi mana yang sedang kita gunakan. Buat variabel global pada class view dengan cara right-click pada kotak dialog kemudian buat variabel dengan tipe integer (pada contoh ini nama variabel: tombol). Selanjutnya isikan kode program berikut pada fungsi edit record:
void CLat_DatabaseView::OnRecordEditrecord()
{
//nilai tombol=2 untuk fungsi edit data
tombol=2;
//mengaktifkan edit box dan tombol
ctrl_edit_kode.EnableWindow(true);
ctrl_edit_buku.EnableWindow(true);
ctrl_edit_stok.EnableWindow(true);
ctrl_btn_simpan.ShowWindow(true);
ctrl_btn_batal.ShowWindow(true);
//edit data pada database
m_pSet->Edit();
}
Perhatikan bahwa untuk fungsi edit nilai variabel tombol kita isi dengan nilai 2, untuk itu isi nilai variabel tombol pada fungsi tambah dengan nilai 1.
void CLat_DatabaseView::OnRecordNewrecord()
{
//nilai tombol=1 untuk fungsi tambah data
tombol=1;
.
.
.
}
Ubah kode program untuk tombol save:
void CLat_DatabaseView::OnBnClickedButton1()
{
.
.
.
if(tombol==1)
m_pSet->MoveLast();//menampilkan data terakhir
else
return;//kembali ke kondisi sebelumnya
}
Dan pada tombol cancel:
void CLat_DatabaseView::OnBnClickedButton2()
{
.
.
.
if(tombol==1)
m_pSet->Requery();//query ulang data
else
return;//kembali ke kondisi sebelumnya
UpdateData(false);
}
Fungsi selanjutnya yang akan kita buat adalah fungsi hapus data. Tambahkan sub menu delete rocord pada menu record, kemudian buat fungsi pada menu delete record tersebut. Isikan kode program berikut pada fungsi tersebut:
void CLat_DatabaseView::OnRecordDeleterecord()
{
int Answer = MessageBox(_T("Apakah anda yakin untuk menghapus data ini?"),_T("konfirmasi"),MB_YESNO);
if( Answer == IDYES )
{
m_pSet->Delete();
m_pSet->Requery();
UpdateData(FALSE);
}
else
return;
}
Seperti pada fungsi new record, anda dapat menambahkan ikon pada fungsi delete record. Jalankan aplikasi untuk melihat apakah fungsi-fungsi di atas berjalan dengan baik.





