Anda di halaman 1dari 21

LAPORAN PRAKTIKUM KE-3 PEMROGRAMAN VISUAL 2

Disusun oleh :

Annisa Gatri Zakinah

12520241048

Kelas F-1

Pendidikan Teknik Informatika

Fakultas Teknik

Universitas Negeri Yogyakarta


2013

Pegawai.mdb Sintak Dim dbPegawai As Database Dim rsBiodata As Recordset Private Sub cmdBatal_Click() txtNip.Text = "" Kosongkan txtNip.SetFocus SetKondisi (False) cmdSimpan.Enabled = False cmdBatal.Enabled = False cmdUbah.Enabled = False End Sub Penjelasan dan Capture Mendeklarasikan dbPegawai sebagai database dan rsBiodata sebagai recordset Sintak untuk button Batal. Setelah button Batal diklik, textbox pada NIP dikosongkan, kursor diletakkan pada textbox NIP, nama, alamat,jenis kelamin, agama dikosongkan, objek pada SetKondisi bernilai False yang artinya tidak aktif, button simpan, button, batal dan button ubah juga bernilai false.

Private Sub cmdCek_Click() rsBiodata.Seek "=", txtNip.Text

Sintak untuk mencari atau mengecek nip yang telah dimasukkan. Setelah memasukkan nip, maka program akan

If nCek(txtNip.Text) <> 4 Then MsgBox "NIP yang Anda masukkan kurang dari atau lebih dari 4 digit!", vbCritical + vbOKOnly, "Perhatian" txtNip.SetFocus End If If rsBiodata.NoMatch Then

mengecek apakah nip yang dimasukkan ada dalam tabel pada database yang digunakan atau tidak. Jika nip yang dimasukkan kurang dari atau lebih dari 4 digit, maka akan keluar pesan kesalahan kemudian kursor akan diletakkan di textbox nip.

Kosongkan SetKondisi (True) cmdSimpan.Enabled = True cmdBatal.Enabled = True Else cmdHapus.Enabled = True cmdUbah.Enabled = True cmdSimpan.Enabled = True cmdBatal.Enabled = True cmdUbah.SetFocus txtNip.Text = rsBiodata!NIP txtNama.Text = rsBiodata!Nama txtAlamat.Text = rsBiodata!Alamat txtTglLahir.Text = rsBiodata!Tgl_Lahir If rsBiodata!Sex = True Then optPria.Value = True Else optWanita.Value = True End If Select Case rsBiodata!Agama Case "I" optIslam.Value = True Case "K" optKristen.Value = True Case "A" optKatolik.Value = True Case "H" optHindu.Value = True Case "B" optBudha.Value = True Jika hasil dari perbandingan tadi ada yang sama, berarti data ditemukan dan program akan menampilkan semua data yang ada dari nim tersebut kemudian mengaktifkan semua button yang ada. Setelah nip yang dimasukkan tadi dibandingkan dengan nip yang ada dalam database dan ternyata hasilnya tidak ada yang sama, maka setkondisi bernilai true yang artinya mengaktifkan kolom-kolom yang bisa diisi dan mengosonginya, selain itu button simpan, tutup, dan button batal bernilai true.

End Select End If End Sub

Private Sub cmdHapus_Click() If MsgBox("Anda yakin?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then rsBiodata.Delete End If End Sub

Sintak untuk menghapus data. Setelah memilih button hapus maka akan muncul pesan yang berisi pertanyaan apakah Anda yakin untuk menghapus data yang sedang aktif atau ditampilkan?

Jika user memilih Yes maka data yang sedang aktif akan dihapus, jika memilih tidak maka akan kembali ke form.

Private Sub cmdSimpan_Click() If nCek(txtNip.Text) = 0 Then MsgBox "Data NIP belum diisi!", vbCritical + vbOKOnly, "Perhatian" txtNip.SetFocus End If rsBiodata.Index = "NIP" rsBiodata.Seek "=", txtNip.Text

Sintak untuk menyimpan data yang telah dimasukkan atau diedit. Jika user memilih button Simpan tetapi textbox nip masih kosong, maka program akan menampilkan pesan peringatan.

If rsBiodata.NoMatch Then rsBiodata.AddNew Tampilkan

rsBiodata.Update Else rsBiodata.Edit Tampilkan rsBiodata.Update End If Kosongkan txtNip.Text = "" txtNip.SetFocus SetKondisi (False) cmdHapus.Enabled = False cmdSimpan.Enabled = False cmdBatal.Enabled = False cmdUbah.Enabled = False End Sub Jika nip yang dimasukkan kemudian setelah dibandingkan tidak terdapat nip yang sama dengan yang ada pada database, maka data yang dimasukkan tadi akan disimpan sebagai data yang baru pada database. Jika ternyata data yang akan disimpan sudah ada pada database, maka data yang masuk akan mengganti atau mengupdate data sebelumnya yang mempunyai nip yang sama. Setelah menyimpan data, program akan mengosongkan textbox nip, nama, alamat dan menonaktifkan teksbox tgl_lahir, option button jenis kelamin dan agama, semua button kecuali button tutup dan cek.

Private Sub cmdTutup_Click() If MsgBox("Anda yakin akan mengakhiri form ini?", vbQuestion + vbYesNo, "Konfirmasi") = vbYes Then Unload Me End If End Sub

Sintak untuk menutup form. Setelah memilih button tutup, maka akan ditampilkan pesan yang berisi pertanyaan apakah user akan menutup form yang sedang aktif atau tidak, jika memilih Yes maka user akan keluar dari form yang aktif, jika No maka user akan tetap berada pada form yang aktif.

Private Sub cmdUbah_Click() SetKondisi (True) txtNama.SetFocus cmdSimpan.Enabled = True End Sub

Sintak untuk mengubah data yang telah dimasukkan. Setkondisi bernilai true yang artinya diaktifkan. Kursor diletakkan pada textbox nama dan button simpan diaktifkan.

Private Sub Form_Load()

Sintak pada form.

Set dbPegawai = OpenDatabase(App.Path + "\Pegawai.mdb") Set rsBiodata = dbPegawai.OpenRecordset("Biodat a") rsBiodata.Index = "NIP" SetKondisi (False) cmdSimpan.Enabled = False cmdBatal.Enabled = False cmdUbah.Enabled = False cmdHapus.Enabled = False End Sub

Setiap kali form dijalankan, maka ini akan selalu dieksekusi terlebih dahulu. Membuka database dengan perintah Set dbPegawai = OpenDatabase(App.Path + "\Pegawai.mdb") dan menetapkan nama tabel yang digunakan pada database pegawai yaitu Biodata. Setkondisi bernilai false dan button simpan, batal, ubah, dan hapus bernilai false.

Private Sub Kosongkan() Dim tangal As Date txtNama.Text = "" txtAlamat.Text = "" txtTglLahir.Text = Date End Sub Private Sub SetKondisi(Logika As Boolean) txtNama.Enabled = Logika txtAlamat.Enabled = Logika txtTglLahir.Enabled = Logika optPria.Enabled = Logika optWanita.Enabled = Logika

Sintak untuk mengosongkan kolom-kolom untuk dapat diisi dengan data yang baru tanpa harus menghapusnya.

Sintak untuk men-setting kondisi (true atau false) pada setiap kolom termasuk option button sesuai keinginan dan keperluan dengan parameter Logika.

optIslam.Enabled = Logika optKristen.Enabled = Logika optKatolik.Enabled = Logika optHindu.Enabled = Logika optBudha.Enabled = Logika End Sub Private Sub Tampilkan() rsBiodata!NIP = txtNip.Text rsBiodata!Nama = txtNama.Text rsBiodata!Alamat = txtAlamat.Text rsBiodata!Tgl_Lahir = txtTglLahir.Text If optPria.Value = True Then rsBiodata!Sex = True Else rsBiodata!Sex = False End If If optIslam.Value = True Then rsBiodata!Agama = "I" ElseIf optKristen.Value = True Then rsBiodata!Agama = "K" ElseIf optKatolik.Value = True Then rsBiodata!Agama = "A" ElseIf optHindu.Value = True Then rsBiodata!Agama = "H" ElseIf optBudha.Value = True Then rsBiodata!Agama = "B" End If End Sub Function nCek(nKar As String) As Fungsi untuk menghitung karakter pada Sintak untuk menampilkan data yang ada pada database kedalam kolom-kolom yang ada pada form. Untuk kolom jenis kelamin dan agama yang menggunakan option button bisa dengan menggunakan kondisi ifElse untuk membandingkan antara data pada database dengan kondisi yang diberikan.

Integer nCek = Len(nKar) End Function

textbox.

Tugas3.mdb Sintak Dim dbKonsultasi As Database Dim rsKonsultasi As Recordset Penjelasan dan Capture Mendeklarasikan dbKonsultasi sebagai database dan rsKonsultasi sebagai recordset Private Sub cmdKeluhan_Click() cboMasalah.Enabled = True cmdSimpan.Enabled = True SetKondisi (False) txtSolusi.Enabled = False End Sub Sintak untuk button Edit Keluhan. Setelah memilih button edit keluhan maka combobox pada keluhan/masalah akan diaktifkan dan button simpan akan diaktifkan. Namun untuk mengaktifkan button Edit Keluhan, user harus mencari terlebih dahulu data mahasiswa berdasarkan nim.

Private Sub cmdSimpan_Click() If nCek(txtSolusi.Text) > 50 Then MsgBox "Karakter yang Anda masukkan lebih dari 50 Karakter!",

Sintak untuk menyimpan data. Jika jumlah karakter pada textbox solusi lebih dari 50 maka akan ditampilkan pesan kesalahan kemudian kursor akan

vbCritical + vbOKOnly, "Perhatian" txtSolusi.Enabled = True txtSolusi.SetFocus End If

diletakkan pada textbox solusi dan textbox solusi akan diaktifkan.

If nCek(txtNim.Text) = 0 Then MsgBox "Data NIM belum diisi!", vbCritical + vbOKOnly, "Perhatian" txtNim.SetFocus End If rsKonsultasi.Index = "NIM" rsKonsultasi.Seek "=", txtNim.Text Jika nim belum diisi maka akan muncul pesan kesalahan dan kursor akan diletakkan pada textbox nim.

If rsKonsultasi.NoMatch Then rsKonsultasi.AddNew Tampilkan rsKonsultasi.Update Else rsKonsultasi.Edit Tampilkan rsKonsultasi.Update End If Kosongkan txtNim.Text = "" txtNim.SetFocus SetKondisi (False) cboMasalah.Enabled = False txtSolusi.Enabled = False cmdHapus.Enabled = False cmdSimpan.Enabled = False cmdBatal.Enabled = False cmdUbah.Enabled = False Men-setting NIM sebagai index dan isi datanya pada txtNIM. Jika nim yang dimasukkan tidak ada yang sama dengan nim yang ada pada database, maka data yang diisi tadi akan dimasukkan sebagai data yang baru dengan memanggil konstruktor Tampilkan. Jika nim yang dimasukkan sama dengan salah satu nim yang sudah ada pada database maka data dari nim tadi akan disimpan sebagai data yang telah diupdate atau mengganti data sebelumnya. Setelah penyimpanan data selesai, pada form semua kolom akan dikosongkan kecuali kolom tanggal, kursor diletakkan

cmdKeluhan.Enabled = False cmdSolusi.Enabled = False End Sub

pada textbox NIM, dan semua button dinonaktifkan kecuali button cari dan keluar.

Private Sub cmdKeluar_Click() If MsgBox("Anda yakin akan mengakhiri form ini?", vbQuestion + vbYesNo, "Konfirmasi") = vbYes Then Unload Me End If End Sub

Sintak untuk keluar dari form yang sedang aktif. Setelah memilih button keluar, akan muncul pesan yang berisi pertanyaan. Jika memilih Yes maka akan keluar dari form, jika memilih No maka akan kembali ke form yang aktif.

Private Sub cmdSolusi_Click() txtSolusi.Enabled = True txtSolusi.SetFocus cmdSimpan.Enabled = True SetKondisi (False) cboMasalah.Enabled = False End Sub

Sintak untuk button Edit Solusi. Setelah button edit solusi dipilih, maka textbox solusi akan aktif, kursor diletakkan pada kolom solusi, dan button simpan akan diaktifkan. Namun untuk mengaktifkan button edit solusi, user perlu mencari dahulu nim yang akan diedit pada kolom solusi.

Private Sub cmdUbah_Click() SetKondisi (True) txtNama.SetFocus cmdSimpan.Enabled = True txtSolusi.Enabled = False cboMasalah.Enabled = False End Sub

Sintak untuk mengubah data yang telah disimpan di database. Setelah memilih button Ubah data, setkondisi bernilai true, kursor diletakkan pada textbox nama, dan button simpan akan diaktifkan. Ubah data ini khusus untuk mengedit data tanggal, nim, nama, kelas, program studi, nip, dan nama dosen PA.

Sedangkan untuk mengedit keluhan/masalah dan solusi bisa menggunakan button edit keluhan dan button edit solusi.

Private Sub Form_Load() Set dbKonsultasi = OpenDatabase(App.Path + "\Tugas3.mdb") Set rsKonsultasi = dbKonsultasi.OpenRecordset("Konsulta si") rsKonsultasi.Index = "NIM" SetKondisi (False) cboMasalah.Enabled = False txtSolusi.Enabled = False

Sintak pada form. Setiap kali form dijalankan, maka ini akan selalu dieksekusi terlebih dahulu. Membuka database dengan perintah Set dbKonsultasi = OpenDatabase(App.Path + "\Tugas3.mdb") dan menetapkan nama tabel yang digunakan pada database pegawai yaitu Konsultasi. Setkondisi bernilai false, combobox masalah dinonaktifkan, textbox solusi dinonaktifkan, dan semua button dinonaktifkan kecuali button cari dan

cmdSimpan.Enabled = False cmdBatal.Enabled = False cmdUbah.Enabled = False cmdHapus.Enabled = False cmdKeluhan.Enabled = False cmdSolusi.Enabled = False cboMasalah.AddItem "Nilai Belum Keluar" cboMasalah.AddItem "IPK Menurun" cboMasalah.AddItem "Terlambat Mengisi KRS" cboMasalah.AddItem "Belum Terealisasi Program Kunjungan ke Luar Negeri" cboMasalah.AddItem "Dosen Sering Tidak Masuk" cboMasalah.AddItem "(Masalah Baru)" End Sub Private Sub Kosongkan() Dim tangal As Date

keluar.

cboMasalah.AddItem untuk mengisi list dari combobox.

Untuk mengosongkan semua kolom yang ada kecuali kolom nim dan mengeset

txtNama.Text = "" txtKelas.Text = "" txtTanggal.Text = Date txtProdi.Text = "" txtNip.Text = "" txtNamaDosen = "" cboMasalah.Text = "" txtSolusi.Text = "" End Sub Private Sub SetKondisi(Logika As Boolean) txtNama.Enabled = Logika txtKelas.Enabled = Logika txtProdi.Enabled = Logika txtNip.Enabled = Logika txtNamaDosen.Enabled = Logika txtTanggal.Enabled = Logika End Sub Private Sub Tampilkan() rsKonsultasi!NIP = txtNip.Text rsKonsultasi!Nama = txtNama.Text rsKonsultasi!NIM = txtNim.Text rsKonsultasi!Kelas = txtKelas.Text rsKonsultasi!Prodi = txtProdi.Text rsKonsultasi!Nama_Dosen = txtNamaDosen.Text rsKonsultasi!Solusi = txtSolusi.Text rsKonsultasi!Tanggal = txtTanggal.Text rsKonsultasi!Keluhan = cboMasalah.Text End Sub Private Sub cmdBatal_Click()

tanggal sesuai tanggal hari ini (kapan program dijalankan).

Untuk mengubah-ubah kondisi beberapa kolom yang diinginkan dalam kondisi aktif atau tidak aktif.

Untuk menampilkan data yang tersimpan pada database ke dalam kolom-kolom dalam form yang ada.

Sintak untuk button Batal.

txtNim.Text = "" Kosongkan txtNim.SetFocus txtTanggal.Text = "" SetKondisi (False) cmdSimpan.Enabled = False cmdBatal.Enabled = False cmdUbah.Enabled = False cmdKeluhan.Enabled = False cmdSolusi.Enabled = False cmdHapus.Enabled = False End Sub Private Sub cmdCari_Click() rsKonsultasi.Seek "=", txtNim.Text

Setelah memilih button batal, maka semua kolom akan dikosongkan dan semua button akan dinonaktifkan kecuali button cari dan keluar.

Sintak untuk mencari data. Sebelum memilih button cari, user harus memasukkan nim yang akan dicari ke

If nCek(txtNim.Text) <> 11 Then MsgBox "NIM yang Anda masukkan kurang dari atau lebih dari 11 digit!", vbCritical + vbOKOnly, "Perhatian" txtNim.SetFocus End If

dalam textbox nim. Jika nim kurang dari atau lebih dari 11 digit, maka akan muncul pesan kesalahan dan kursor diletakkan pada kolom nim.

If rsKonsultasi.NoMatch Then MsgBox "Data yang Anda Cari tidak Jika nim yang dimasukkan sudah 11 digit, ditemukan!", vbOKOnly, "Perhatian" maka program akan membandingkannya Kosongkan SetKondisi (True) txtNama.SetFocus cmdSimpan.Enabled = True cmdBatal.Enabled = True cboMasalah.Enabled = True dengan nim yang sudah tersimpan di database, jika tidak ada yang sama maka data tidak akan ditampilkan, hanya tanggal dan nim yang tampil, dan button simpan, cari, batal, dan keluar akan diaktifkan.

Else cmdHapus.Enabled = True cmdUbah.Enabled = True cmdSimpan.Enabled = True cmdBatal.Enabled = True cmdKeluhan.Enabled = True cmdSolusi.Enabled = True cmdUbah.SetFocus txtNim.Text = rsKonsultasi!NIM txtNama.Text = rsKonsultasi!Nama txtKelas.Text = rsKonsultasi!Kelas txtProdi.Text = rsKonsultasi!Prodi txtNip.Text = rsKonsultasi!NIP txtNamaDosen.Text = rsKonsultasi!Nama_Dosen txtTanggal.Text = rsKonsultasi!Tanggal txtSolusi.Text = rsKonsultasi!Solusi cboMasalah.Text = rsKonsultasi!Keluhan End If End Sub Private Sub cboMasalah_Click() Dim Masalah As String Masalah = Sintak combobox Masalah. Di sini diberikan beberapa pilihan masalah/keluhan yang sudah terdapat Jika hasil dari perbandingan tadi ada yang sama, maka akan ditampilkan data dari nim yang dicari tersebut pada form.

cboMasalah.List(cboMasalah.ListIndex) solusinya dan akan muncul setelah user Select Case Masalah Case "Nilai Belum Keluar" txtSolusi.Text = "Tunggu Seminggu Lagi" Case "IPK Menurun" txtSolusi.Text = "Tingkatkan memilih salah satu dari pilihan yang ada. Jika user memilih pilihan (Masalah Baru) maka akan muncul solusi "(Belum Ada Jawaban!)" karena itu artinya user memasukkan keluhan/masalah sesuai keinginannya atau

Belajarmu." Case "Terlambat Mengisi KRS" txtSolusi.Text = "Hubungi di Bagian Jurusan." Case "Belum Terealisasi Program Kunjungan ke Luar Negeri" txtSolusi.Text = "Hubungi Bagian Jurusan." Case "Dosen Sering Tidak Masuk" txtSolusi.Text = "Lapor ke Bagian Jurusan." Case Else txtSolusi.Text = "(Belum Ada Jawaban!)" End Select End Sub Private Sub cmdHapus_Click() If MsgBox("Anda yakin?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then rsKonsultasi.Delete Kosongkan txtNim.Text = "" txtTanggal.Text = "" End If End Sub

tidak ada pada pilihan yang ada.

Sintak untuk menghapus data. Setelah memilih button hapus maka akan muncul pesan yang berisi pertanyaan apakah Anda yakin untuk menghapus data yang sedang aktif atau ditampilkan?

Jika Yes maka data yang sedang aktif akan dihapus, jika No maka user akan kembali ke form yang aktif. Kemudian setelah data dihapus, semua kolom akan

dikosongkan dan semua button akan diaktifkan.

Function nCek(nKar As String) As Integer nCek = Len(nKar) End Function

Fungsi untuk menghitung karakter yang telah dimasukkan user.