MODUL 4 Pemrograman ADO.NET : Disconnected Environtment TUJUAN : Mahasiswa mampu memahami dan menerapkan penggunaan sintak disconnected pada database, pada materi ini membahas koneksi secara terus-menerus ke database dengan menggunakan object connection, dataadapter dan dataset. Materi : Connection DataAdapter Dan Dataset Manipulasi Data Referensi : Deitel, 2002, Visual Basic.Net How To Program, Prentice Hall, New Jersey. Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN Veteran JAWA TIMUR Halaman 52
Aplikasi Tidak Terkoneksi Merupakan sebuah desain aplikasi yang melakukan pengambilan seluruh data dari database dan disimpan pada database lokal. Dengan demikian, transaksi yang terjadi dapat dilakukan secara lokal dan ditransfer ke database dalam bentuk batch. Umumnya aplikasi semacam ini digunakan untuk aplikasi-aplikasi mobile/web Based. Karena ada penggunaan database lokal, aplikasi tidak terkoneksi membutuhkan penyimpanan data lokal berupa DataSet. Salah satu cara untuk membuat DataSet adalah dengan mempopulasikan data melalui SqlDataAdapter. DataAdapter (Query, Connection) DataTable/Dataset Database Gambar 1. DataAdapter Pada Gambar 1 dapat dijelaskan bahwa melalui DataAdapter, data dapat dipopulasi untuk kemudian ditampung kedalam DataTable atau DataSet. 4.1 Object Connection Baik menggunakan disconnected maupun connected object Connection tetap dipakai, karena digunakan untuk membuka koneksi ke database. 4.2 DataAdapter Seperti yang terlihat pada Kode dibawah ini bahwa aplikasi tidak terkoneksi masih membutuhkan obyek koneksi (dalam hal ini adalah OracleConnection), sama seperti aplikasi terkoneksi. Perbedaannya adalah untuk aplikasi terkoneksi, setiap terjadi transaksi selalu melakukan cn.open() dan cn.close(). Sedangkan untuk aplikasi tidak terkoneksi, setiap terjadi transaksi tidak perlu melakukan cn.open() dan cn.close(). Untuk lebih jelasnya, buatlah tampilan seperti gambar dibawah ini : Object DataGridView Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN Veteran JAWA TIMUR Halaman 53
Masukkan sintak berikut ini kedalam kode anda : Imports System.Data.OracleClient Public Class mdl4 Dim cn As New OracleConnection Dim da As New OracleDataAdapter Dim ds As New DataSet Sub koneksi() cn = New OracleConnection("Data Source=orcl;Persist Security Info=True;User ID=hr;Unicode=True;password=hr;") Private Sub mdl4_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load koneksi() End Class Hasil ketika anda jalankan kode diatas adalah : Seperti yang telah disebutkan sebelumnya bahwa kekuatan aplikasi database terletak pada query, maka dalam aplikasi tidak terkoneksi masih dibutuhkan query sebagai bahasa native dalam database. Query ini nantinya menjadi salah satu parameter dalam pembangunan OracleDataAdapter. Dari contoh, pada pembangunan OracleDataAdapter, dibutuhkan dua parameter yaitu query dan koneksi, sama seperti OracleCommand. Perbedaannya adalah OracleCommand membutuhkan ExecuteReader (dan sejenisnya) sedangkan OracleDataAdapter membutuhkan metode Fill yang sekaligus berfungsi untuk menampung hasil query kedalam DataSet. Dalam kode diatas terdapat xxx, xxx ini berfungsi untuk memberikan nama kepada Dataset sehingga semua hasil dari query table akan ditampung terlebih dahulu di variable xxx, kemudian akan ditampilkan pada Object DataGridView1. Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN Veteran JAWA TIMUR Halaman 54
4.3 Manipulasi Data Dalam sub bab ini menjelaskan tentang bagaimana cara memasukkan data ke dalam table TblSatuan yang sudah pernah anda buat pada pertemuan ke 3, dengan menggunakan sintak disconnected. buatlah tampilan seperti dibawah ini, untuk memasukkan data kedalam tblsatuan : Sintak pada form load sama seperti diatas. Double klik pada object button simpan, dan masukkan kode berikut ini : Private Sub btnsimpan_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.click da = New OracleDataAdapter("insert into tblsatuan values ('" & no.text & "','" & Satuan.Text & "')", cn) MsgBox("data berhasil disimpan") ds.clear() hasil untuk sintak diatas adalah Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN Veteran JAWA TIMUR Halaman 55
Latihan 1. Buatlah tampilan form seperti berikut ini : untuk object Textbox yang ke 1 Setting Properties => Name = no; Font = 10Pt; untuk object Textbox yang ke 2 Setting Properties => Name = satuan; Font = 10Pt; untuk object Button yang ke 1 Setting Properties => Name = btnsimpan; Font = 10Pt; untuk object Button yang ke 2 Setting Properties => Name = btnubah; Font = 10Pt; untuk object Button yang ke 3 Setting Properties => Name = btnhapus; Font = 10Pt; untuk object DataGridView Setting Properties => Name = DataGridView1; Font = 10Pt; 2. Masukkan sintak untuk update dan delete (Sintak insert sudah anda lakukan pada sub bab 4.3 diatas), sebagai berikut : Sintak untuk update data, double klik pada button update : Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN Veteran JAWA TIMUR Halaman 56
Private Sub btnubah_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnubah.click da = New OracleDataAdapter("update tblsatuan set satuan='" & Satuan.Text & "' where no='" & no.text & "'", cn) MsgBox("data berhasil diubah") ds.clear() Sintak untuk Hapus data, double klik pada button Hapus : Private Sub btnhapus_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnhapus.click da = New OracleDataAdapter("delete tblsatuan where no='" & no.text & "'", cn) MsgBox("data berhasil dihapus") ds.clear() 3. tambahkan sintak berikut ini untuk membuat auto number, setelah melakukan insert, update dan delete. tambahkan dibawah kode DataGridView1.DataSource da = New OracleDataAdapter("select max(to_number(no))+1 from tblsatuan", cn) da.fill(ds, "xx1") no.text = ds.tables("xx1").rows(0).item(0).tostring 4. Sehingga sintak pada insert adalah sebagai berikut : Private Sub btnsimpan_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.click da = New OracleDataAdapter("insert into tblsatuan values ('" & no.text & "','" & Satuan.Text & "')", cn) MsgBox("data berhasil disimpan") ds.clear() no.text = "" Satuan.Text = "" da = New OracleDataAdapter("select max(to_number(no))+1 from tblsatuan", cn) da.fill(ds, "xx1") no.text = ds.tables("xx1").rows(0).item(0).tostring 5. Lakukan hal yang sama seperti poin 4 untuk update dan delete. Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN Veteran JAWA TIMUR Halaman 57
Pekerjaan Rumah (PR) & Catatan Tugas : 1. Ubahlah sintak pada latihan 3, menjadi sintak disconnected dan tampilan object listview diganti menjadi object datagridview. 2. Gunakan table TblBarang 3. Lakukan asistensi dan ttd asisten lab anda sebelum praktikum modul dimulai. Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN Veteran JAWA TIMUR Halaman 58
Jurusan Sistem Informasi, Fakultas Teknologi Industri, UPN Veteran JAWA TIMUR Halaman 59