LISTING PROGRAM
Form Judul
Private Sub Command1_Click()
Load Form1
Form1.Show
End Sub
Private Sub Command2_Click()
End
End Sub
Form Menu Utama
Dim db As Database
Dim rsPlgn As Recordset
Dim rsPmkn As Recordset
Dim rsBln As Recordset
Dim arPakai(1 To 12) As Single
Dim Rata2 As Single
Dim j As Integer
Private Sub Command1_Click()
End
End Sub
Private Sub Command2_Click()
On Error GoTo X
rsPlgn.Seek "=", Combo1.Text
If rsPlgn.NoMatch Or Text1.Text = "" Then
MsgBox "ID Pelanggan salah atau belum diinput atau field Tahun kosong!",
vbCritical, "Hitung"
Combo1.SetFocus
Exit Sub
End If
For i = 1 To 12
arPakai(i) = 0
Next i
Form2.F.TextMatrix(0, 0) = "Bulan"
Form2.F.TextMatrix(0, 1) = "KwH (xi)"
Form2.F.TextMatrix(0, 2) = "xi-Rata2"
Form2.F.TextMatrix(0, 3) = "|xi-Rata2|"
Form2.F.TextMatrix(0, 4) = "(xi-Rata2)²"
rsBln.MoveFirst
For i = 1 To 12
Form2.F.TextMatrix(i, 0) = rsBln!Bulan
rsBln.MoveNext
Next i
rsPmkn.MoveFirst
n = 1
j = 0
If rsPmkn!Id = Combo1.Text And rsPmkn!Bulan = n And rsPmkn!Tahun =
Text1.Text Then
arPakai(n) = rsPmkn!Pakai
j = j + arPakai(n)
Form2.F.TextMatrix(n, 1) = arPakai(n)
n = n + 1
rsPmkn.MoveFirst
End If
rsPmkn.MoveNext
Wend
Rata2 = Round((j / UBound(arPakai)), 2)
Form2.F.TextMatrix(13, 1) = j
j1 = 0
For i = 1 To 12
arPakai(i) = Round((arPakai(i) - Rata2), 2)
j1 = j1 + Abs(arPakai(i))
Form2.F.TextMatrix(i, 2) = arPakai(i)
Next i
Form2.F.TextMatrix(13, 3) = j1
For i = 1 To 12
Form2.F.TextMatrix(i, 3) = Abs(arPakai(i))
Next i
j2 = 0
For i = 1 To 12
arPakai(i) = Round((arPakai(i) ^ 2), 2)
Form2.F.TextMatrix(i, 4) = Round(arPakai(i), 2)
Next i
Form2.F.TextMatrix(13, 4) = j2
SR = Round((j1 / 12), 2)
SS = Round((Sqr(j2 / 12)), 2)
Form2.Label1.Caption = "Rata-Rata pemakaian tenaga listrik per-bulannya ialah
sebesar" & " " & Rata2 & " " & "KwH"
Form2.Label2.Caption = "Fluktuasi pemakaian tenaga listrik per-bulan dari
simpangan rata-ratanya adalah sebesar" & " " & SR & " " & "KwH"
Form2.Label3.Caption = "Fluktuasi pemakaian tenaga listrik per-bulan dari
simpangan standarnya adalah sebesar" & " " & SS & " " & "KwH"
Unload Me
Load Form2
Form2.Show
Exit Sub
X:
If Err.Number = 3021 Then MsgBox "Data tidak ada atau belum setahun.", _
vbCritical, "Hitung"
Combo1.SetFocus
End Sub
Private Sub Command3_Click()
Unload Me
Load Form3
Form3.Show
Private Sub Command4_Click()
Unload Me
Load Form4
Form4.Show
End Sub
Private Sub Form_Activate()
Combo1.SetFocus
Text1.MaxLength = 4
End Sub
Private Sub Form_Load()
Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\PLN.mdb")
Set rsPlgn = db.OpenRecordset("TblPelanggan", dbOpenTable)
Set rsPmkn = db.OpenRecordset("TblPemakaian", dbOpenTable)
Set rsBln = db.OpenRecordset("TblBulan", dbOpenTable)
For i = 1 To rsPlgn.RecordCount
Combo1.AddItem rsPlgn!Id
rsPlgn.MoveNext
Next i
End Sub
Private Sub Form_Unload(Cancel As Integer)
rsPlgn.Close
rsPmkn.Close
rsBln.Close
db.Close
Form Input Pelanggan
Dim db As Database
Dim rsPlgn As Recordset
Private Sub MasukData()
rsPlgn!Id = Text1.Text
rsPlgn!Nama = Text2.Text
rsPlgn!Alamat = Text3.Text
rsPlgn!Lokasi = Text4.Text
rsPlgn!Tarif_Daya = Text5.Text
rsPlgn.Update
End Sub
Private Sub TampilData()
Text1.Text = rsPlgn!Id
Text2.Text = rsPlgn!Nama
Text3.Text = rsPlgn!Alamat
Text4.Text = rsPlgn!Lokasi
Text5.Text = rsPlgn!Tarif_Daya
End Sub
Private Sub Bersih()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text1.SetFocus
Private Sub Kunci()
Command3.Enabled = False
Command4.Enabled = False
End Sub
Private Sub Command1_Click()
On Error GoTo X
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or _
Text5.Text = "" Then
MsgBox "Masih ada field yang kosong!", vbInformation, "Tambah Pelanggan"
Text1.SetFocus
Else
rsPlgn.AddNew
Call MasukData
Call Bersih
Call Kunci
End If
X:
If Err.Number = 3022 Then MsgBox "Data sudah ada!", vbCritical, "Tambah
Pelanggan"
Text1.SetFocus
End Sub
Private Sub Command2_Click()
Unload Me
Load Form1
End Sub
Private Sub Command3_Click()
On Error GoTo X
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or _
Text5.Text = "" Then
MsgBox "Masih ada field yang kosong!", vbInformation, "Edit Pelanggan"
Text1.SetFocus
Else
rsPlgn.Edit
Call MasukData
Text2.SetFocus
MsgBox "Data berhasil di-edit", vbInformation, "Edit Data"
End If
X:
If Err.Number = 3021 Then MsgBox "Data belum diinput!", , "Edit Data"
Text2.SetFocus
End Sub
Private Sub Command4_Click()
Tanya = MsgBox("Yakin ingin dihapus?", vbExclamation + vbYesNo, "Hapus
Data")
If Tanya = vbYes Then
rsPlgn.Delete
Call Bersih
Call Kunci
Else
End If
End Sub
Private Sub Form_Activate()
Text1.SetFocus
Text1.MaxLength = 12
End Sub
Private Sub Form_Load()
Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\PLN.mdb")
Set rsPlgn = db.OpenRecordset("TblPelanggan", dbOpenTable)
Call Kunci
End Sub
Private Sub Form_Unload(Cancel As Integer)
rsPlgn.Close
db.Close
End Sub
Private Sub Text1_Change()
If Len(Text1.Text) < 12 Then Exit Sub
rsPlgn.Index = "IndexId"
rsPlgn.Seek "=", Text1.Text
If rsPlgn.NoMatch = True Then
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text2.SetFocus
Exit Sub
End If
Command3.Enabled = True
Command4.Enabled = True
Call TampilData
End Sub
Form Input Pemakaian
Dim db As Database
Dim rsPmkn As Recordset
Dim rsPlgn As Recordset
Private Sub Bersih()
Combo1.Text = "-Bulan-"
Combo2.Text = "-Id Pelanggan"
Text3.Text = ""
Text4.Text = ""
Combo2.SetFocus
End Sub
Private Sub MasukData()
rsPmkn!Id = Combo2.Text
rsPmkn!Bulan = Val(Mid(Combo1.Text, 1, 2))
rsPmkn!Tahun = Text3.Text
rsPmkn!Pakai = Text4.Text
rsPmkn.Update
Private Sub Kunci()
Command3.Enabled = False
Command4.Enabled = False
End Sub
Private Sub Bulan()
Combo1.AddItem "1 Januari"
Combo1.AddItem "2 Februari"
Combo1.AddItem "3 Maret"
Combo1.AddItem "4 April"
Combo1.AddItem "5 Mei"
Combo1.AddItem "6 Juni"
Combo1.AddItem "7 Juli"
Combo1.AddItem "8 Agustus"
Combo1.AddItem "9 September"
Combo1.AddItem "10 Oktober"
Combo1.AddItem "11 November"
Combo1.AddItem "12 Desember"
End Sub
Private Sub Combo1_Click()
Call Text3_Change
End Sub
Private Sub Combo2_Click()
Call Text3_Change
Private Sub Command2_Click()
Unload Me
Load Form1
Form1.Show
End Sub
Private Sub Command3_Click()
On Error GoTo X
rsPlgn.Index = "IndexId"
rsPlgn.Seek "=", Combo2.Text
If rsPlgn.NoMatch Then
MsgBox "ID Pelanggan salah atau belum diinput!", vbCritical, "Edit Data"
Combo2.SetFocus
Exit Sub
End If
Select Case Combo1.Text
Case "1 Januari"
Case "2 Februari"
Case "3 Maret"
Case "4 April"
Case "5 Mei"
Case "6 Juni"
Case "7 Juli"
Case "8 Agustus"
Case "9 September"
Case "11 November"
Case "12 Desember"
Case Else:
MsgBox "Field bulan kosong atau diganti dengan tulisan lain", vbCritical, _
"Bulan"
Combo1.SetFocus
Exit Sub
End Select
rsPmkn.Edit
Call MasukData
Text4.SetFocus
X:
If Err.Number = 3021 Then MsgBox "Data belum diinput!", , "Edit Data"
Text4.SetFocus
End Sub
Private Sub Command4_Click()
Tanya = MsgBox("Yakin ingin dihapus?", vbExclamation + vbYesNo, "Hapus
Data")
If Tanya = vbYes Then
rsPmkn.Delete
Call Bersih
Call Kunci
Else
Combo2.SetFocus
End If
Private Sub Form_Load()
Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\PLN.mdb")
Set rsPmkn = db.OpenRecordset("TblPemakaian", dbOpenTable)
Set rsPlgn = db.OpenRecordset("TblPelanggan", dbOpenTable)
Call Bulan
For i = 1 To rsPlgn.RecordCount
Combo2.AddItem rsPlgn!Id
rsPlgn.MoveNext
Next i
Call Kunci
End Sub
Private Sub Command1_Click()
On Error GoTo X
If Combo1.Text = "" Or Combo2.Text = "" Or Text3.Text = "" Or Text4.Text = ""
Then
MsgBox "Masih ada field yang kosong!", vbInformation, "Tambah Pemakaian"
Combo2.SetFocus
Else
rsPlgn.Index = "IndexId"
rsPlgn.Seek "=", Combo2.Text
If rsPlgn.NoMatch Then
MsgBox "Id Pelanggan salah atau belum ada!", vbInformation, "Tambah Pemakaian"
Exit Sub
End If
Select Case Combo1.Text
Case "1 Januari"
Case "2 Februari"
Case "3 Maret"
Case "4 April"
Case "5 Mei"
Case "6 Juni"
Case "7 Juli"
Case "8 Agustus"
Case "9 September"
Case "10 Oktober"
Case "11 November"
Case "12 Desember"
Case Else:
MsgBox "Field bulan kosong atau diganti dengan tulisan lain", vbCritical, _
"Bulan"
Combo1.SetFocus
Exit Sub
End Select
rsPmkn.AddNew
Call MasukData
Call Bersih
Call Kunci
End If
If Err.Number = 3022 Then MsgBox "Data sudah ada!", vbCritical, "Tambah
Pemakaian"
Combo2.SetFocus
End Sub
Private Sub Form_Activate()
Combo2.SetFocus
Text3.MaxLength = 4
End Sub
Private Sub Form_Unload(Cancel As Integer)
rsPmkn.Close
rsPlgn.Close
db.Close
End Sub
Private Sub Text3_Change()
If Len(Text3.Text) < 4 Then Exit Sub
rsPmkn.MoveFirst
For i = 1 To rsPmkn.RecordCount
If rsPmkn!Id = Combo2.Text And rsPmkn!Bulan = Val(Mid(Combo1.Text, 1, 2))
And _
rsPmkn!Tahun = Text3.Text Then
Text4.Text = rsPmkn!Pakai
Command3.Enabled = True
Command4.Enabled = True
End If
rsPmkn.MoveNext
Next i
Text4.Text = ""
Text4.SetFocus
End Sub
Form Tabel
Private Sub Command1_Click()
Unload Me
Load Form1
Form1.Show