Anda di halaman 1dari 7

1

Modul Praktikum Visual I | Sistem Informasi | 2022

MODUL PRAKTIKUM XIII


Pemrogramman Database III

Tujuan :

• Mampu memahami object – object Disconected untuk melakukan pengolahan database


• Mampu menggunakan teknologi ADO.Net khususnya disconected object untuk
membuat aplikasi database sederhana

Materi :

• Pengantar Disconnected object


• Kontrol - kontrol di C#
• Object – Object Disconnected(Dataadapter, Dataset, Datatable, Datarow)

Persiapan

• Membaca buku literature, referensi atau dari sumber lain tentang Pemroggraman Database dan
C#
• Modul Praktikum V

Landasan Teori

DataAdapter
ADO.NET mempunyai dua cara untuk menerima data dari database yaitu menggunakan
DataReader yang kita gunakan pada bab sebelumnya. Sifat dari DataReader ini read-only,
forward-only dan fast-only. DataReader tidak dapat digunakan untuk tujuan mengupdate data.
Keuntungannya menggunakan DataReader adalah resource yang dipakai lebih sedikit. Berbeda
dengan Data Adapter di mana selalu dihubungkan dengan DataSet untuk mengatur data yang
ada di dalam memory. Data Adapter dapat digunakan untuk mengambil data dari database
kemudian ditampung di DataSet. DataSet ini disimpan di dalam memory dan dapat dimanipulasi
dari program, sehingga setelah DataSet terisi oleh data yang dibutuhkan resource untuk
koneksi database dibuang.
Berikut ini adalah contoh code untuk mengambil data menggunakan DataAdapter dan
menampungnya ke DataSet
SqlConnection conn As New SqlConnection(“…..connection string……”);
SqlDataAdapter da As New SqlDataAdapter (“select * from Customers”,conn);
Dataaset ds As New DataSet();
da.fill(ds);

I Ketut Dedy Suryawan S.Kom.,M.Kom


2
Modul Praktikum Visual I | Sistem Informasi | 2022

Untuk menampilkannya datanya kita dapat menggunakan DataGrid.


DataGridView1.DataSource = ds.Tables(0);

Setiap kita melakukan fill ke DataSet maka di dalamnya akan degenerate sebuah
DataTable. Bisa diambil kesimpulan bahwa dalam suatu DataSet di dalamnya terdiri dari
beberapa DataTable. Masing-masing DataTable tersebut data kita beri nama yang berbeda-
beda. DataSet disimpan di dalam memory dalam bentuk format XML. Selanjutnya aplikasi dapat
mengambil data, menambahkan data, mengubah data, dan menghapus data yang ada di dalam
DataSet. Tentunya prosesnya akan cepat karena data berada di dalam memory, bukan ke
database. Setelah proses selesai pada waktu yang diinginkan kita dapat melakukan operasi
Update untuk mengupdate semua perubahan yang telah dilakukan dalam DataSet, sehingga
data di database dan DataSet sinkron.

Update data menggunakan DataAdapter


DataAdapter dapat melakukan update ke database. Dengan kata lain DataAdapter juga dapat
melakukan insert,update dan delete. Untuk itu DataAdapter memiliki empat buah Command
yaitu SelectCommad, InsertCommand, UpdateCommand, dan DeleteCommand.

DataAdapter

SelectCommand Dataset
Database InsertCommand
UpdateCommand
DeleteCommand

Untuk menggenerate otomatis InsertCommand, UpdateCommand dan DeleteCommand kita


dapat menggunakan bantuan class SqlCommandBuilder dengan menerima parameter berupa
DataAdapter
SqlCommandBuilder cb = New SqlCommandBuilder(da);

Setelah itu kita dapat menggunakan method Update untuk melakukan Update data dari
DataSet ke database. Method update ini menggunakan parameter DataTable yang ingin
diupdate.
da.Update(dt)
Atau
da.Update(ds.Tables[“Pelanggan”]);

Pada saat method Update dipanggil maka semua DataRow pada DataTable akan dicek satu per
satu RowStatenya. Setiap DataRow memiliki RowState yang berbeda-beda. Pada awalnya
RowStatenya adalah Unchanged. Kemudian setelah data pada DataTable diubah maka
statusnya pun berubah-ubah ada yang Added, Modified, Deleted. Pada saat method update
DataAdapter akan mengecek statusnya masing-masing dan melakukan proses insert,update

I Ketut Dedy Suryawan S.Kom.,M.Kom


3
Modul Praktikum Visual I | Sistem Informasi | 2022

atau delete bila dibutuhkan disesuaikan dengan status rownya. Jika menemukan status Added
berarti DataAdapter akan menyuruh InsertCommand untuk melakukan proses insert ke
database demikian pula dengan yang lainnya. Setelah proses Update selesai dan tidak terjadi
masalah maka status pada masing-masing row akan kembali diset menjadi Unchanged.
Setiap data table menyimpan data original dan data current. Data original adalah data yang
sesuai dengan pertama kali DataTable tersebut difill oleh DataAdapter. Sedangkan data current
adalah data yang sedang digunakan atau dapat diubah-ubah.

Untuk mengembalikan data current menjadi data original dapat menggunakan method
RejectChanges. Maka semua data original akan dicopykan dan menimpa data current sehingga
data kembali seperti semula seperti saat pertama kali diload dari database. Kebalikan dari
method ini adalah AcceptChanges di mana semua status pada data current untuk
masingmasing DataRownya dijadikan Unchanged.
Pada saat melakukan perintah Update sebaiknya menggunakan Try-Catch karena pada saat
update dijalankan kemungkinan bisa terjadi Exception yang disebabkan oleh masalah
Concurrency. Ini disebut dengan DBConcurrencyException

Hal ini terjadi pada saat program disconnected data source di mana multiuser sedang berusaha
untuk mengupdate data yang sama. Karena sifatnya yang disconnected maka pengupdatean
data yang dilakukan oleh satu user tidak diketahui oleh user lain hingga user tersebut berusaha
mengupdate dan mendapatkan pesan error. Maka user tersebut harus merefresh kembali data
terakhir dari database dengan cara melakukan fill kembali pada DataTable.

Langkah – Langkah Praktikum

1. Buka project sebelumnya dan Tambahkan Form untuk maintenance data Jadwal

Textbox1

Combobox1

Textbox2
Combobox2

Textbox3
Combobox3

Button DataGridView1

I Ketut Dedy Suryawan S.Kom.,M.Kom


4
Modul Praktikum Visual I | Sistem Informasi | 2022

2. Lakukan pengaturan property pada form diatas


Komponen Properti Value
Form Name FrmTJadwal
Text Maintenance Data Jadwal
GroupBox1 Name Jadwal
Label1 AutoSize True
Text Id Jadwal
Label2 AutoSize True
Text Hari
Label3 AutoSize True
Text Jam
Label4 AutoSize True
Text Program
Label5 AutoSize True
Text Room
Label6 AutoSize True
Text Tutor
Button1 Text BtnSimpan
Button2 Text BtnHapus
Button3 Text BtnKeluar
ComboBox1 Items Mon
Tue
Wed
Thu
Fri
Sat
3. Ketik kode program dibawah ini. Potongan kode dibawah adalah method IsiGridView dimana
disini menggunakan cara yang berbeda dengan form Grade di modul sebelumnya yaitu
menggunakan DataAdapter dan DataSet sebagai sumber data untuk DataGridView

I Ketut Dedy Suryawan S.Kom.,M.Kom


5
Modul Praktikum Visual I | Sistem Informasi | 2022

4. Ketik kode program dibawah ini pada form_load. Potongan kode dibawah adalah untuk mengisi
combobox Program dan combobox Tutor dengan data dari tabel ms_program dan tabel ms_tutor
beserta pemanggilan method IsiGridView

I Ketut Dedy Suryawan S.Kom.,M.Kom


6
Modul Praktikum Visual I | Sistem Informasi | 2022

5. Pada tombol Simpan, ketik kode program dibawah ini. Potongan kode dibawah adalah alternatif
menyimpan data dengan menggunakan datatable, datarow, datacolumn dan
SqlCommandBuilder

6. Pada tombol Hapus, ketik kode program dibawah ini. Potongan kode dibawah adalah alternatif
menghapus data dengan menggunakan datatable, datarow, datacolumn dan
SqlCommandBuilder

I Ketut Dedy Suryawan S.Kom.,M.Kom


7
Modul Praktikum Visual I | Sistem Informasi | 2022

7. Tambahkan kode dibawah ini untuk menampilkan data jadwal setiap kali data jadwal_id
pada Textbox1 dirubah. Lalu tekan TAB.

8. Coba jalankan form Jadwal dan lakukan maintenance data jadwal seperti pada form Grade

I Ketut Dedy Suryawan S.Kom.,M.Kom

Anda mungkin juga menyukai