PEMECAHAN MASALAH

Langkah pemecahan yang dilakukan adalah :
1. Menentukan Kontrol yang akan digunakan, yaitu :
TextBox, CommandButton, Label, Frame dan Timer
2. Menetukan Proses yang digunakan
• Biaya per Jam = 5000
• Biaya Tambahan (< 30 menit) = 10% * Biaya
• Lama Waktu = Waktu Akhir ) – Waktu Mulai
• Jam = Hour(Lama Waktu)
• Menit = Minute(Lama Waktu)
• Detik = Second(Lama Waktu )
• Harga Menit = Harga / 60
• Biaya = (Harga * Jam) + (harga Menit * Menit)
• Jika Jam = 0 And Menit < 31 Maka
Biaya = 0.5 * Harga
BiayaLain = BiayaTambahan
• Jika Menit > 30 Maka
BiayaLain = 0
• Total Biaya Pemakaian = Biaya + BiayaLain
Catatan :
Gunakan Kontrol untuk TextBox yang ketiga (TEXT3) dengan fasilitas Index kontrol dengan Nama TxtInfo.
Kode Program
Dim Jam, Menit, Detik As Integer
Dim awal, Akhir
Dim Harga, BiayaTambahan
Sub SizeAwal()
Form1.Height = 2320 : Form1.Width = 3255
End Sub
Sub SizeAkhir()
Form1.Height = 5325 : Form1.Width = 3255
End Sub
Sub InfoBiaya()
Harga = 5000 : BiayaTambahan = 0.1 * Harga
End Sub
Private Sub Command1_Click()
If Command1.Caption = "Login" Then
Command1.Caption = "Logout" : Timer1.Enabled = True : Timer1.Interval = 60
Jam = 0: Menit = 0: Detik = 0 : Text2.Text = Time
Else
Command1.Caption = "Login"
Timer1.Enabled = False : Timer1.Interval = 60
HargaMenit = Harga / 60
Biaya = (Harga * Jam) + (HargaMenit * Menit)
Label2.Caption = "0 Jam 0 Menit"
If Menit < 31 Then
Biaya = 0.5 * Harga : BiayaLain = BiayaTambahan
Else
BiayaLain = 0
End If
TxtInfo(0).Text = Text2.Text : TxtInfo(1).Text = Text1.Text
TxtInfo(2).Text = Format(BiayaLain, "#,###,###")
TxtInfo(3).Text = Format(Biaya + BiayaLain, "#,###,###")
SizeAkhir
End If
End Sub
Private Sub Command2_Click()
Retval = MsgBox("Apakah Akan Mencetak Lembar Pembayaran...?", & _
vbYesNo + vbDefaultButton2 + vbQuestion, "Cetak Lembar Pembayaran")
SizeAwal
If Retval = vbYes Then
Printer.KillDoc
Printer.Orientation = 1
Printer.FontName = "Courier"
Printer.FontBold = True
Printer.FontSize = 13
Printer.Print "MANDIRI RENTAL"
Printer.Print "Jl. Sukasari II 79"
Printer.Print "==================="
Printer.FontBold = False
Printer.FontSize = 11
Printer.Print "Mulai :" + TxtInfo(0).Text
Printer.Print "Akhir :" + TxtInfo(1).Text
Printer.Print "Lain-Lain (10%) Rp. " + TxtInfo(2).Text
Printer.Print "Biaya per Jam Rp. " + Format(Harga, "#,###,###.##")
Printer.Print
Printer.FontSize = 11
Printer.FontBold = True
Printer.Print "Total Biaya Rp. " + TxtInfo(3).Text
Printer.EndDoc
End If
End Sub
Private Sub Form_Load()
InfoBiaya
SizeAwal
Label1.Caption = "Waktu" : Label2.Caption = "0 Jam 0 Menit"
Label3.Caption = "Mulai" : Label4.Caption = "Akhir"
Label5.Caption = "Lain-Lain (10%)" : Label6.Caption = "Total Biaya"
Frame1.Caption = "" : Frame2.Caption = ""
Frame3.Caption = "Informasi Biaya"
Command1.Caption = "Login"
Command2.Caption = "Print"
Form1.Caption = "Biaya per Jam : Rp. " & Format(Harga, "#,###,###.##")
Text1.Text = Time
End Sub
Private Sub Timer1_Timer()
Dim LamaWaktu As Date
Text1.Text = Time
LamaWaktu = CDate(Text1.Text) - CDate(Text2.Text)
Jam = Hour(LamaWaktu)
Menit = Minute(LamaWaktu)
Detik = Second(LamaWaktu)
Label2.Caption = LamaWaktu
End Sub