P11 & 12 Operasi DML pada Form Aplikasi (Project Aplikasi Rumah Sakit) A. Tujuan Mahasiswa dapat melakukan operasi Data Manipulation Language (DML) melalui form aplikasi Mahasiswa dapat membuat koneksi form aplikasi dengan database Mahasiswa dapat membuat sebuah project aplikasi rumah sakit yang terstruktur B. Pembahasan Project Aplikasi Rumah Sakit : Membuat form aplikasi Melakukan koneksi database dengan form aplikasi Melakukan operasi DML melalui form aplikasi 11.1. Membuat Project Aplikasi Rumah Sakit Pada project Aplikasi Rumah Sakit ini akan dibuat sebuah project yang terdiri dari beberapa form aplikasi yang akan dikoneksikan dengan database yang telah dibuat pada pertemuan sebelumnya yaitu db_rumahsakit.mdf, sehingga setelah dikoneksikan dapat dilakukan operasi DML (Data Manipulation Language) pada database melalui form aplikasi yang berupa proses simpan, hapus, edit. Langkah-langkah untuk membuat project Aplikasi Rumah Sakit dapat diperhatikan sebagai berikut : 1. Membuat Menu Utama Untuk membuat form menu utama, caranya adalah sebagai berikut : 1) Pada Visual Studio 2010, buat sebuah project baru dengan mengklik New Project, dan beri nama dengan Project Aplikasi Rumah Sakit. 2) Pada form 1, rancang atau desain sebagai form Menu Utama seperti pada tampilan dibawah ini : 1 Visual Basic.Net
Gambar 11. 1 Desain Form Menu Utama 3) Aturlah properties untuk form Menu Utama tersebut : Komponen/Objek Properties Values Form 1 Name frmmenuutama MENU UTAMA MenuStrip1 - ToolStripMenuItem1 File - Dokter - Pasien - Kamar - Obat - ToolStripMenuItem2 - ToolStripMenuItem3 - ToolStripMenuItem4 - ToolStripMenuItem5 Transaksi - Pembayaran - Penjualan Laporan About Close 2 Visual Basic.Net
2. Membuat Form Dokter Langkah-langkah untuk membuat form dokter yaitu sebagai berikut : 1) Klik menu Project klik Add Windows Form 2) Pada form 2 desain sebagai form Dokter dengan tampilan seperti dibawah ini : Gambar 11. 2 Desain Form Dokter 3) Aturlah properties untuk beberapa objek pada form Dokter tersebut : Komponen/Objek Properties Values Form 2 Name frmdokter DOKTER GroupBox1 Input Data Dokter Label1 Id_dokter Label2 Nama Label3 Alamat Label4 Telepon Label5 Spesialisasi Box1 - - 3 Visual Basic.Net
Box2 - - Box3 - - Box4 - - ComboBox1 Items Dokter Anak Dokter Gizi Dokter Kandungan Dokter THT Dokter Bedah Dokter Umum Button1 Name btnsimpan &Simpan Button2 Name btnedit &Edit Button3 Name btnhapus &Hapus Button4 Name btnexit &Exit DataGridView1 Name DGV SqlConnection1 ConnectionString db_rumahsakit.mdf Catatan : Untuk menampilkan Sql Connection dapat dilakukan langkah-langkah sebagai berikut : Pada bagian Toolbox pada tab Data klik kanan dan pilih Choose Items Setelah dialog Choose Toolbox Items ditampilkan, ketikkan kata kunci sql, dimana akan ditampilkan beberapa pilihan items, kemudian centanglah pada bagian SqlConnection. 4 Visual Basic.Net
Gambar 11. 3 Dialog Choose Toolbox Items SqlConnection akan ditampilkan pada bagian Toolbox pada tab Data, kemudian dapat dilakukan double klik pada objek SqlConnection tersebut dan akan tampil pada bagian bawah form (dapat diperhatikan pada gambar 11.2). Gambar 11. 4 Objek SqlConnection pada bagian Toolbox Selanjutnya objek SqlConnection yang terdapat pada bagian bawah form dapat ditandai dengan mengklik. Pada bagian properties connection string pilih new connection 5 Visual Basic.Net
Pada dialog Add Connection gunakan tombol Browse untuk mencari path penyimpanan database dan menandai database yang akan digunakan yaitu db_rumahsakit.mdf. Gambar 11. 5 Dialog Add Connection 4) Setelah melakukan koneksi dengan database, kemudian pada form Dokter dapat diisi dengan coding sebagai berikut. Sintaks koneksi : Imports System.Data.SqlClient Public Class frmdokter Dim conn As SqlConnection '(definisikan conn sebagai koneksi) Dim cmd As SqlCommand '(definisikan cmd sebagai command) Dim da As SqlDataAdapter '(definisikan da sebagai dataadapter) Dim ds As DataSet '(definisikan ds sebagai dataset) Dim rd As SqlDataReader '(definisikan rd sebagai datareader) Dim str As String '(definisikan str sebagai string koneksi) '(membuat koneksi) Sub Koneksi() str = "Data Source=.\SQLEXPRESS;AttachDbFilename=D:\PI\VB\Aplikasi\Database\db_Rumah Sakit.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" conn = New SqlConnection(str) If conn.state = ConnectionState.Closed Then conn.open() 6 Visual Basic.Net
Membuat beberapa Procesure pada Class Form (diketikkan dibawah sintaks koneksi diatas) : Sub TampilkanDataDokter() da = New SqlDataAdapter("select* from Tabel_Dokter", conn) ds = New DataSet da.fill(ds, "Tabel_Dokter") DGV.DataSource = ds.tables("tabel_dokter") DGV.ReadOnly = True Sub Kosongkan() Box1. = "" Box2. = "" Box3. = "" Box4. = "" ComboBox1. = "" Box1.Focus() Sintaks pada form Dokter Load : Private Sub frmdokter_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Koneksi() '(Lakukan koneksi ke database) '(Buatlah dataadapter baru dan lakukan query ke Tabel Dokter) da = New SqlDataAdapter("Select * from Tabel_Dokter", conn) ds = New DataSet '(ds dibuat dataset baru) ds.clear() '(dataset dikosongkan terlebih dahulu) da.fill(ds, "Tabel_Dokter") '(dataset diisi dengan dataset hasil query '(datagridview sumber datanya mengambil dari dataset Tabel Dokter) DGV.DataSource = (ds.tables("tabel_dokter")) Sintaks button Simpan : Private Sub btnsimpan_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.click If Box1. = "" Or Box2. = "" Or Box3. = "" Or Box4. = "" Or ComboBox1. = "" Then MsgBox("Data belum lengkap") Exit Sub Else Dim tabel_doktertambah As String = "insert into Tabel_Dokter (id_dokter, nama, alamat, telepon, spesialisasi) values " & _ "('" & Box1. & "', '" & Box2. & "', '" & Box3. & _ "', '" & Box4. & "', '" & ComboBox1. & "')" cmd = New SqlCommand(tabel_doktertambah, conn) cmd.executenonquery() Call Kosongkan() Call TampilkanDataDokter() Sintaks button Edit : Private Sub btnedit_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnedit.click If Box1. = "" And Box2. = "" And Box3. = "" And Box4. = "" Then MsgBox("Pilih data terlebih dahulu") 7 Visual Basic.Net
Exit Sub Else Dim tabel_dokteredit As String = "Update Tabel_Dokter set nama='" & Box2. & "', alamat='" & Box3. & "', telepon='" & Box4. & "', spesialisasi='" & ComboBox1. & "' where id_dokter='" & Box1. & "'" cmd = New SqlCommand(tabel_dokteredit, conn) cmd.executenonquery() Call Kosongkan() Call TampilkanDataDokter() Sintaks button Hapus : Private Sub btnhapus_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnhapus.click If Box1. = "" And Box2. = "" And Box3. = "" And Box4. = "" Then MsgBox("Pilih data terlebih dahulu") Exit Sub Else Dim tabel_dokterhapus As String = "Delete from Tabel_Dokter where id_dokter='" & Box1. & "'" cmd = New SqlCommand(tabel_dokterhapus, conn) cmd.executenonquery() Call Kosongkan() Call TampilkanDataDokter() Sintaks pada DataGridView1 (Double klik pada DataGridView1) dan diisi dengan sintaks berikut : Private Sub DGV_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellClick Dim i As Integer i = DGV.CurrentRow.Index With DGV.Rows.Item(i) Box1. =.Cells(0).Value Box2. =.Cells(1).Value Box3. =.Cells(2).Value Box4. =.Cells(3).Value End With Private Sub DGV_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellContentClick Sintaks button Exit : Private Sub btnclose_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnclose.click Close() 8 Visual Basic.Net
Catatan : Untuk mengisi sintaks koneksi yaitu : '(membuat koneksi) Sub Koneksi() str = "" conn = New SqlConnection(str) If conn.state = ConnectionState.Closed Then conn.open() Tanda kutip dua diisi dengan cara : - Masuk ke bagian form design dan tandai objek SqlConnection1 yang terletak di bawah form. - Pada bagian properties klik pada connection string kemudian tekan ctrl+a dan ctrl+c utuk mengcopy string koneksi. - Setelah string koneksi di copy kemudian dapat di-paste diantara tanda kutip dua seperti yang terdapat pada sintaks diatas. Untuk mengisi sintaks pada DataGridView1, caranya adalah sebagai berikut : - Pada form Dokter design, double klik pada DataGridView1. - Kemudian pada editor code yaitu pada bagian CellContentCklik ubah menjadi CellClick. - Pada DGV_CellClick isilah seperti pada sintaks DatagridView1 diatas. - Sintaks pada DGV_CellClick tersebut befungsi untuk menampilkan data pada form sesuai dengan data yang diklik pada tabel database. Gambar 11. 6 Mengubah CellContentClick 9 Visual Basic.Net
5) Simpanlah project dengan mengklik tombol Save All dan klik tombol Start Debugging untuk menjalankan form. Form yang sukses dieksekusi akan terlihat seperti pada tampilan berikut : Gambar 11. 7 Tampilan Form Dokter yang berhasil di eksekusi 6) Proses Simpan dapat dilakukan dengan mengisi Box pada id_dokter, nama, alamat telepon, dan memilih spesialisasi, kemudian mengklik tombol simpan, data yang berhasil disimpan akan ditampilkan pada tabel dalam DataGridView. 7) Prose Edit dan Hapus dapat dilakukan dengan mengklik salah satu data pada tabel dalam DatagridView yang akan ditampilkan pada masing-masing Box dan ComboBox, kemudian dapat dilakukan proses edit maupun hapus dengan mengklik salah satu tombol Edit atau Hapus. 10 Visual Basic.Net
Gambar 11. 8 Melakukan proses Edit atau Hapus data 3. Membuat Form Pasien Untuk membuat form Pasien, langkah-langkah adalah sebagai berikut : 1) Klik menu Project klik Add Windows Form 2) Desainlah form 3 sebagai form Pasien dengan tampilan seperti dibawah ini : 11 Visual Basic.Net
Gambar 11. 9 Desain Form Pasien 3) Aturlah beberapa objek yang diperlukan pada form Pasien sesuai dengan tampilan pada gambar 11.9 diatas dan berikan nilai properti untuk masing-masing objek. 4) Isilah sintaks untuk masing-masing event berikut : Sintaks koneksi : Imports System.Data.SqlClient Public Class frmpasien Dim conn As SqlConnection '(definisikan conn sebagai koneksi) Dim cmd As SqlCommand '(definisikan cmd sebagai command) Dim da As SqlDataAdapter '(definisikan da sebagai dataadapter) Dim ds As DataSet '(definisikan ds sebagai dataset) Dim rd As SqlDataReader '(definisikan rd sebagai datareader) Dim str As String '(definisikan str sebagai string koneksi) '(membuat koneksi) Sub Koneksi() str = "Data Source=.\SQLEXPRESS;AttachDbFilename=D:\PI\VB\Aplikasi\Database\db_RumahSa kit.mdf;integrated Security=True;Connect Timeout=30;User Instance=True" conn = New SqlConnection(str) If conn.state = ConnectionState.Closed Then conn.open() 12 Visual Basic.Net
Membuat beberapa Procesure pada Class Form (diketikkan dibawah sintaks koneksi diatas) : Sub TampilkanDataPasien() da = New SqlDataAdapter("select* from Tabel_Pasien", conn) ds = New DataSet da.fill(ds, "Tabel_Pasien") DGV.DataSource = ds.tables("tabel_pasien") DGV.ReadOnly = True Sub Kosongkan() Box1. = "" Box2. = "" Box3. = "" Box4. = "" Box1.Focus() Sintaks pada Form Pasien Load : Private Sub frmpasien_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Koneksi() '(Lakukan koneksi ke database) '(Buatlah dataadapter baru dan lakukan query ke Tabel Dokter) da = New SqlDataAdapter("Select * from Tabel_Pasien", conn) ds = New DataSet '(ds dibuat dataset baru) ds.clear() '(dataset dikosongkan terlebih dahulu) da.fill(ds, "Tabel_Pasien") '(dataset diisi dengan dataset hasil query '(datagridview sumber datanya mengambil dari dataset Tabel Dokter) DGV.DataSource = (ds.tables("tabel_pasien")) Sintaks pada button Simpan : Private Sub btnsimpan_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.click If Box1. = "" Or Box2. = "" Or Box3. = "" Or Box4. = "" Then MsgBox("Data belum lengkap") Exit Sub Else Dim tabel_pasientambah As String = "Insert into Tabel_Pasien (kode_pasien, nama_pasien, alamat, tanggal_masuk, telepon) values " & _ "('" & Box1. & "', '" & Box2. & "', '" & Box3. & "', '" & DateTimePicker1.Value & "', '" & Box4. & "')" cmd = New SqlCommand(tabel_pasientambah, conn) cmd.executenonquery() Call Kosongkan() Call TampilkanDataPasien() Sintaks pada button Edit : Private Sub btnedit_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnedit.click If Box1. = "" And Box2. = "" And Box3. = "" And Box4. = "" Then MsgBox("Pilih data terlebih dahulu") Exit Sub 13 Visual Basic.Net
Else Dim tabel_pasienedit As String = "Update Tabel_Pasien set nama_pasien='" & Box2. & "', alamat='" & Box3. & "', tanggal_masuk='" & DateTimePicker1.Value & "', telepon='" & Box4. & "' where kode_pasien='" & Box1. & "'" cmd = New SqlCommand(tabel_pasienedit, conn) cmd.executenonquery() Call Kosongkan() Call TampilkanDataPasien() Sintaks pada button Hapus Private Sub btnhapus_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnhapus.click If Box1. = "" And Box2. = "" And Box3. = "" And Box4. = "" Then MsgBox("Pilih data terlebih dahulu") Exit Sub Else Dim tabel_pasienhapus As String = "Delete from Tabel_Pasien where kode_pasien='" & Box1. & "'" cmd = New SqlCommand(tabel_pasienhapus, conn) cmd.executenonquery() Call Kosongkan() Call TampilkanDataPasien() Sintaks pada DataGridView1 (Double klik pada DataGridView1) dan diisi dengan sintaks berikut : Private Sub DGV_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellClick Dim i As Integer i = DGV.CurrentRow.Index With DGV.Rows.Item(i) Box1. =.Cells(0).Value Box2. =.Cells(1).Value Box3. =.Cells(2).Value DateTimePicker1.Value =.Cells(3).Value Box4. =.Cells(4).Value End With Private Sub DGV_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellContentClick Sintaks pada button Exit : Private Sub btnclose_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnclose.click Close() 14 Visual Basic.Net
Catatan : Untuk mengisi sintaks koneksi dan sintaks pada DataGridView dapat diikuti langkah-langkah yang sama pada Form Dokter. 5) Setelah form Pasien disimpan, kemudian dapat dijalankan dengan mengklik tombol Start Debugging sehingga hasil eksekusi dari form Pasien akan terlihat pada tampilan di bawah ini : 11.2. Evaluasi (Tugas 11.1) Gambar 11. 10 Hasil eksekusi form Pasien Berdasarkan Project Aplikasi Rumah Sakit diatas, buatlah : 1. Minimal 3 form aplikasi yaitu form Menu Utama, form Dokter, dan form Pasien. 2. Buatlah sintaks untuk masing-masing form tersebut. Catatan : Masing-masing form dipastikan sudah terkoneksi dengan data database. Tugas dikumpulkan dalam bentuk document dengan menampilkan desain form, hasil eksekusi form dan sintaks. 15 Visual Basic.Net