BAB IV IMPLEMENTASI SISTEM
4.3. Implementasi Program
4.3.1. Pembuatan Aplikasi Dalam Visual Basic 6.0
Sebelum membuat aplikasi terlebih dahulu merancang susunan
database yang akan digunakan. Database yang akan dipakai adalah Microsoft Access 2000. Aplikasi yang akan dibuat adalah aplikasi Sistem Informasi Geografi. Aplikasi SIG melibatkan entitas kecamatan, kelurahan, posko. Dalam mengolah data dalam database akan digunakan
perintah SQL (Structure Query Language). Dari ERD (Entity relationship Diagram) dapat disusun relasi antar tabel sebagai berikut :
Gambar 4.22. Gambar Rancangan Database
Setelah desaindatabase selesai, lalu merancang aplikasi yang akan dibuat dengan visual basic. Untuk membuat aplikasi SIG melibatkan beberapa
formyaitu :
Form Log In : untuk menentukan hak akses pengguna diijinkan apa tidak.
Form Utama : untuk tampilan utama program awal.
Input Data Kecamatan : untuk memasukkan data kecamatan
Input Data kelurahan : untuk memasukkan data kelurahan.
Input Data Posko : untuk memasukkan data posko.
Laporan-laporan : untuk menampilkan data yang akan diprint
About : untuk menampilkan informasi program.
b. Membuat module koneksi dengan database Kode program :
Public Conn As New ADODB.Connection Public Rs As New ADODB.Recordset Public StrConnect As String
Public StrSQL As String Public Sub Konek()
StrConnect = "Provider=Microsoft.Jet.OleDB.4.0;Data Source=" + App.Path + "\db1.mdb"
If Conn.State = adStateOpen Then Conn.Close
Set Conn = New ADODB.Connection Conn.Open StrConnect Else Conn.Open StrConnect End If End Sub c. Membuat Form
Terdapat dua jenisform, yaitu form-form yang hanya untuk melihat data, danform-formuntuk melakukan edit data.
1). form-form untuk melihat data, sebagai contoh kode program dari Form_LihatDataKecamatan.frm :
Sub RefreshTampilan() Call Konek
Adodc1.ConnectionString = StrConnect
Adodc1.RecordSource = "SELECT * FROM Kecamatan" Adodc1.Refresh
LblJumlah.Caption = "Jumlah Data : " & Adodc1.Recordset.RecordCount
Set DataGrid1.DataSource = Adodc1 End Sub
Sub TxtKeadaan(Stat As Boolean) 'TxtNamaKecamatan.Enabled = Stat 'DataGrid1.Enabled = Stat
TxtKlasifikasiKecamatan.Enabled = Stat End Sub
Private Sub CmdCari_Click()
If TxtNamaKecamatan.Text = "" Then
MsgBox " Nama Kecamatan Masih Kosong !" Else
StrSQL = "SELECT * From Kecamatan WHERE NamaKecamatan='" & TxtNamaKecamatan.Text & "'"
Set Rs = Conn.Execute(StrSQL) If Rs.EOF Then
MsgBox "Data dengan Nama Kecamatan """ + TxtNamaKecamatan.Text + """ Tidak Ada ! ", vbExclamation + vbOKOnly, "Peringatan"
TxtNamaKecamatan.SetFocus Else FTxtNamaKecamatan.Text = "" + Rs("NamaKecamatan") TxtNamaKecamatan.Text = "" + Rs("NamaKecamatan") 'TxtKode = "" + Rs("Kode")
TxtKlasifikasiKecamatan = "" + Rs("KlasifikasiKecamatan")
End If End If End Sub
Private Sub cmdKeluar_Click() Unload Me
End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If Adodc1.Recordset.BOF Or Adodc1.Recordset.EOF Then MsgBox "Sudah di Akhir atau Awal Data"
Else With Adodc1 FTxtNamaKecamatan.Text = .Recordset.Fields("NamaKecamatan") TxtNamaKecamatan.Text = .Recordset.Fields("NamaKecamatan") 'TxtKode.Text = .Recordset.Fields("Kode") TxtKlasifikasiKecamatan.Text = .Recordset.Fields("KlasifikasiKecamatan") End With End If End Sub
Private Sub Form_Load() Call TxtKeadaan(False) Call RefreshTampilan
TxtNamaKecamatan.TabIndex = 0 End Sub
2). Form-form untuk melakukan edit data, sebagai contoh kode program dari Form_MenuDataKecamatan.frm:
Sub RefreshTampilan() Call Konek
Adodc1.ConnectionString = StrConnect
Adodc1.RecordSource = "SELECT * From Kecamatan" Adodc1.Refresh
LblJumlah.Caption = "Jumlah Data : " & Adodc1.Recordset.RecordCount
Set DataGrid1.DataSource = Adodc1 End Sub
Sub TxtKeadaan(Stat As Boolean) TxtNamaKecamatan.Enabled = Stat
TxtKlasifikasiKecamatan.Enabled = Stat End Sub
Private Sub CmdCari_Click()
If TxtKodeKecamatan.Text = "" Then
MsgBox " KodeKecamatan Masih Kosong !" Else
StrSQL = "SELECT * From Kecamatan WHERE KodeKecamatan='" & TxtKodeKecamatan.Text & "'" Set Rs = Conn.Execute(StrSQL)
If Rs.EOF Then
MsgBox "Data dengan KodeKecamatan """ + TxtKodeKecamatan.Text + """ Tidak Ada ! ", vbExclamation + vbOKOnly, "Peringatan"
TxtKodeKecamatan.SetFocus Else FTxtKodeKecamatan.Text = "" + Rs("KodeKecamatan") TxtKodeKecamatan.Text = "" + Rs("KodeKecamatan") TxtKodePosko.Text = "" + Rs("KodePosko") TxtNamaKecamatan = "" + Rs("NamaKecamatan") TxtKlasifikasiKecamatan = "" + Rs("KlasifikasiKecamatan") CmdEdit.Enabled = True CmdHapus.Enabled = True CmdSimpan.Enabled = True CmdUpdate.Enabled = True End If End If End Sub
Private Sub CmdEdit_Click() Call TxtKeadaan(True)
CmdUpdate.Enabled = True End Sub
Private Sub CmdHapus_Click() Dim pesan As Integer
pesan = MsgBox("Apakah Anda yakin akan menghapus", vbQuestion + vbYesNo, "Konfirmasi")
If pesan = 6 Then
StrSQL = "DELETE FROM Kecamatan WHERE KodeKecamatan='" & FTxtKodeKecamatan.Text & "'" Conn.Execute StrSQL
Call RefreshTampilan End If
End Sub
Private Sub CmdSimpan_Click() If TxtKodeKecamatan.Text = "" Then
MsgBox "KodeKecamatan belum diisi", vbExclamation + vbOKOnly, "Informasi"
Else
StrSQL = "SELECT KodeKecamatan FROM Kecamatan WHERE KodeKecamatan='" & TxtKodeKecamatan.Text & "'" Set Rs = Conn.Execute(StrSQL)
If Not Rs.EOF Then
MsgBox "Data Sudah ada", vbInformation + vbOKOnly, "Information"
TxtKodeKecamatan.SetFocus Else
StrSQL = "INSERT INTO Kecamatan (KodeKecamatan, KodePosko, NamaKecamatan, KlasifikasiKecamatan) VALUES ('" & TxtKodeKecamatan.Text & "','" & TxtKodePosko.Text & "','" &
TxtNamaKecamatan.Text & "','" & TxtKlasifikasiKecamatan.Text & "')" Conn.Execute (StrSQL) RefreshTampilan End If End If End Sub
Private Sub CmdTambah_Click() TxtKodeKecamatan.Text = "" TxtKodeKecamatan.Text = "" TxtNamaKecamatan.Text = "" TxtKlasifikasiKecamatan.Text = "" Call TxtKeadaan(True) TxtKodeKecamatan.SetFocus CmdSimpan.Enabled = True End Sub
Private Sub CmdTutup_Click() Unload Me
End Sub
Private Sub CmdUpdate_Click()
StrSQL = "SELECT KodeKecamatan FROM Kecamatan WHERE KodeKecamatan='" & TxtKodeKecamatan.Text & "'" Set Rs = Conn.Execute(StrSQL)
If (TxtKodeKecamatan.Text <> FTxtKodeKecamatan.Text) And (Not Rs.EOF) Then
MsgBox "Data dengan KodeKecamatan " + TxtKodeKecamatan.Text + "Sudah ada !", vbInformation + vbOKOnly, "Information"
TxtKodeKecamatan.SetFocus Else
StrSQL = "UPDATE Kecamatan SET KodeKecamatan='" & _ TxtKodeKecamatan.Text & "',KodePosko='" & TxtKodePosko.Text & "',NamaKecamatan='" & TxtNamaKecamatan.Text & _
"',KlasifikasiKecamatan='" & TxtKlasifikasiKecamatan.Text & _
"' WHERE KodeKecamatan='" & FTxtKodeKecamatan.Text & "'"
Conn.Execute (StrSQL) Call RefreshTampilan End If
End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If Adodc1.Recordset.BOF Or Adodc1.Recordset.EOF Then MsgBox "Sudah di Akhir atau Awal Data"
Else With Adodc1 FTxtKodeKecamatan.Text = .Recordset.Fields("KodeKecamatan") TxtKodePosko.Text = .Recordset.Fields("KodePosko") TxtKodeKecamatan.Text = .Recordset.Fields("KodeKecamatan")
TxtNamaKecamatan.Text = .Recordset.Fields("NamaKecamatan") TxtKlasifikasiKecamatan.Text = .Recordset.Fields("KlasifikasiKecamatan") End With CmdEdit.Enabled = True CmdHapus.Enabled = True End If End Sub
Private Sub Form_Load() Call TxtKeadaan(False) Call RefreshTampilan CmdEdit.Enabled = False CmdHapus.Enabled = False CmdSimpan.Enabled = False CmdUpdate.Enabled = False TxtKodeKecamatan.TabIndex = 0 End Sub d. Membuat Laporan
Untuk membuat laporan, langkah pertama membuat data sumber untuk laporan (Data Enviroment). Yang berasal dari pilihan menu More ActiveX Designers dari Project. Untuk memastikan koneksidatabase berhasil, dites dulu dengan tombol Test Connection, jika Success berarti database telah terhubung. Kemudian tinggal membuat SQL Queries pada Command, dan mendesain format laporan dengan klik dandrag.
Gambar 4.23. Gambar Data Enviroment
e. Membuat Form Dan Menu Utama Yang Menyatukan Seluruh Form Desain Menu Utama :
Gambar 4.24. Gambar Desain Menu Utama Kode Program :
Private Sub Form_Active()
'menampilkan caption dan tanggal otomatis pad form menu
Me.Caption = ".::Program SIG Posko::.." End Sub
Private Sub cmd_login_Click() Form_Login.Show
Form_Utama.Enabled = True End Sub
Private Sub Form_Load() Call Konek
Call BukaDatabase MenuTdkAktif End Sub
Private Sub Image1_Click() Form_HubungPeta.Show
End Sub
Private Sub MnDataUser_Click() Form_User.Show
Private Sub MnAbout_Click() Form_About.Show
End Sub
Private Sub MnBackUp_Click() Form_BackUp.Show
End Sub
Private Sub MnExit_Click() Dim pesan As Integer
pesan = MsgBox("Anda yakin keluar ?", vbQuestion + vbYesNo, "Konfirmasi") If pesan = 6 Then Conn.Close Unload Me End If End Sub
Private Sub MnFileLogin_Click() Me.Enabled = False
Form_Login.Show
Form_Login.txtUser.SetFocus End Sub
Private Sub MnFilelogoff_Click()
'form menu utama tidak dapat digunakan Me.Enabled = False
'menampilkan form login Form_Login.Show
Form_Login.txtUser.SetFocus End Sub
Private Sub MnGantiPassword_Click() 'menampilkan form ganti password Form_GantiPassword.Show
'form utama tidak dapat digunakan Form_Utama.Enabled = False
End Sub
Private Sub MnInputDataKecamatan_Click() Form_MenuDataKecamatan.Show
End Sub
Private Sub MnInputDataKelurahan_Click() Form_MenuDataKelurahan.Show
End Sub
Private Sub mnInputDataPosko_Click() Form_MenuDataPosko.Show
End Sub
Private Sub MnLaporanDataKecamatan_Click() Dim de As DataEnvironment1
Set de = New DataEnvironment1
Set DataReportKecamatan.DataSource = de DataReportKecamatan.Show
Private Sub MnLaporanDataKelurahan_Click() Dim de As DataEnvironment1
Set de = New DataEnvironment1
Set DataReportKelurahan.DataSource = de DataReportKelurahan.Show
End Sub
Private Sub MnLaporanDataPosko_Click() Dim de As DataEnvironment1
Set de = New DataEnvironment1
Set DataReportPosko.DataSource = de DataReportPosko.Show
End Sub
Private Sub MnLihatDataKecamatan_Click() Form_LihatDataKecamatan.Show
End Sub
Private Sub MnLihatDataKelurahan_Click() Form_LihatDataKelurahan.Show
End Sub
Private Sub MnLihatDataPosko_Click() Form_LihatDataPosko.Show
End Sub
Private Sub MnLihatPeta_Click() Form_LihatPeta.Show
End Sub
Private Sub MnLihatPetaBantul_Click() 'Form_LihatPetaBantul.Show
FormPetaUser.Show End Sub
Private Sub MnUser_Click() 'menampilkan form input user Form_User.Show
'form utama tidak dapat digunakan Form_Utama.Enabled = False
End Sub
f. Membuat Form Log In Kode Program :
Public Status As String
Private Sub cmd_cancel_Click() 'menyembunyikan form login Me.Hide
'mengaktifkan form utama Form_Utama.Enabled = True Form_Utama.SetFocus
'menonaktifkan menu master, utility, laporan, logoff dan login Form_Utama.MnDataMaster.Enabled = True Form_Utama.MnInputDataKecamatan.Enabled = False Form_Utama.MnInputDataKelurahan.Enabled = False Form_Utama.MnInputDataPosko.Enabled = False Form_Utama.MnMenuPeta.Enabled = True 'Form_Utama.MnLihatPeta.Enabled = False Form_Utama.MnUtilitas.Enabled = False Form_Utama.MnLaporan.Enabled = False Form_Utama.MnFileLogin.Enabled = True Form_Utama.MnFileLogoff.Enabled = False End Sub
Private Sub cmd_ok_Click()
'mencari nama user yang diketik pada txtUser
StrSQL = "SELECT * FROM DataUser WHERE UserName='" & TxtUser.Text & "'"
Set Rs = Conn.Execute(StrSQL)
'Rs.User.Find "UserName='" & txtUser.text &"'",,adSearchForward,1
'jika nama user yang diketikkan pada txtUser tidak ditemukan, maka
If Rs.EOF Then
'menampilkan kotak pesan
MsgBox "User Anda tidak Di Kenali...!", vbCritical, "User Name"
'mengosongkan txtUser dan txtPassword TxtUser.Text = ""
TxtPassword.Text = "" 'memfokuskan pada txtUser TxtUser.SetFocus
'selain itu Else
'jika data yang di-input-kan pada txtPassword sama dengan record yang ada pada field password, maka:
If TxtPassword.Text = Rs!Password Then 'mengaktifkan dan menampilkan form utama Form_Utama.Enabled = True
Form_Utama.Show
'membuat variabel status untuk menampung record field statusUser
Status = Rs!statusUser
'memanggil prosedur hakAkses untuk seleksi status User
Call HakAkses
Form_Utama.MnFileLogoff.Enabled = True Form_Utama.MnFileLogin.Enabled = False 'form login tidak ditampilkan
Unload Me 'selain itu Else
'tampil kotak pesan
MsgBox "Password Yang Anda Masukkan Tidak Dikenali!", vbCritical, "Password"
TxtPassword.Text = "" TxtPassword.SetFocus End If
End If End Sub
Private Sub Form_Load() TxtUser.Text = "" TxtPassword.Text = "" Load Form_Utama Form_Utama.Show Form_Utama.Enabled = False End Sub Sub HakAkses() 'jika status
Select Case Status
'sama dengan administrator, maka : Case "ADMINISTRATOR"
'mengaktifkan menu form utama
Form_Utama.MnFileUtama.Enabled = True Form_Utama.MnDataMaster.Enabled = True Form_Utama.MnInputDataKecamatan.Enabled = True Form_Utama.MnInputDataKelurahan.Enabled = True Form_Utama.MnInputDataPosko.Enabled = True Form_Utama.MnLaporan.Enabled = True Form_Utama.MnAbout.Enabled = True Form_Utama.MnUtilitas.Enabled = True Form_GantiPassword.Enabled = True 'Form_Utama.MnLihatPeta.Enabled = True 'sama dengan user, maka:
Case "USER"
'menonaktifkan menu form utama
Form_Utama.MnFileUtama.Enabled = True Form_Utama.MnDataMaster.Enabled = False Form_Utama.MnLaporan.Enabled = False Form_Utama.MnFileUtama.Enabled = True Form_Utama.MnUtilitas.Enabled = False Form_Utama.MnDataMaster.Enabled = True Form_Utama.MnLihatDataKecamatan.Enabled = True Form_Utama.MnLihatDataKelurahan.Enabled = True Form_Utama.MnLihatDataPosko = True End Select End Sub
Private Sub TxtUser_KeyPress(KeyAscii As Integer) 'mengubah karakter menjadi huruf kapital
KeyAscii = Asc(UCase(Chr(KeyAscii))) 'jika menekan enter pada txtUser, maka: If KeyAscii = 13 Then
TxtPassword.SetFocus TxtPassword.SelStart = 0
TxtPassword.SelLength = Len(TxtPassword) End If
End Sub
Private Sub TxtPassword_KeyPress(KeyAscii As Integer) 'jika sedang aktif pada txtpassword, lalu menekan
tombol enter, maka: If KeyAscii = 13 Then
'menjalankan aksi tombol Ok cmd_ok_Click
End If End Sub