• Tidak ada hasil yang ditemukan

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

Dokumen terkait