Perancangan Simulasi Traffic Light Menggunakan Visual Basic 6.0

LAMPIRAN LISTING PROGRAM

Rahman(frmpass.frm)

Private Sub Picture1_Click()
End Sub
Private Sub txtPass_KeyPress(KeyAscii As Integer)
Static Kesempatan As Integer
If KeyAscii 13 Then Exit Sub
With txtPass
If .Text = "admin" Then
Unload Me
frmUtama.Show
Else
MsgBox "Maaf Password yang anda masukkan
salah !!!", vbCritical, "NO COMENT"

Universitas Sumatera Utara

.Text = ""
.SetFocus

Kesempatan = Kesempatan + 1
If Kesempatan = 3 Then
MsgBox "MAAF!! ANDA TIDAK BERHAK
MENGGUNAKAN PROGRAM INI...", vbCritical, "PROGRAM
DITUTUP"
Kesempatan = 0: End
End If
End If
End With
End Sub

Universitas Sumatera Utara

frmUtama(formutama.frm)

Private Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value
As Integer)

Dim pantul As Integer
Dim idxLampuHijau As Integer
Private Sub LampuMati()
Dim ctl As Control

Universitas Sumatera Utara

Out &H378, 256
Out &H37A, 11
For Each ctl In Me.Controls
If TypeOf ctl Is Shape Then
If ctl.Name = "shpLampuMerah" Then
ctl.BackColor = RGB(70, 0, 0)
If ctl.Name = "shpLampuKuning" Then
ctl.BackColor = RGB(70, 70, 0)
If ctl.Name = "shpLampuHijau" Then
ctl.BackColor = RGB(0, 70, 0)
End If
Next
End Sub

Private Sub LampuMerahNyala(Index As Integer)
Select Case Index
Case 0
Out &H378, 1 + Val(Inp(&H378))
Case 1
Out &H378, 2 + Val(Inp(&H378))
Case 2
Out &H378, 4 + Val(Inp(&H378))
Case 3
Out &H378, 8 + Val(Inp(&H378))
End Select
shpLampuMerah(Index).BackColor = vbRed
End Sub
Private Sub LampuMerahMati(Index As Integer)
Select Case Index
Case 0
Out &H378, Val(Inp(&H378)) - 1
Case 1
Out &H378, Val(Inp(&H378)) - 2
Case 2

Out &H378, Val(Inp(&H378)) - 4
Case 3
Out &H378, Val(Inp(&H378)) - 8
End Select

Universitas Sumatera Utara

shpLampuMerah(Index).BackColor = RGB(50, 0, 0)
End Sub
Private Sub LampuKuningNyala(Index As Integer)
Select Case Index
Case 0
Out &H378, 16 + Val(Inp(&H378))
Case 1
Out &H378, 32 + Val(Inp(&H378))
Case 2
Out &H378, 64 + Val(Inp(&H378))
Case 3
Out &H378, 128 + Val(Inp(&H378))
End Select

shpLampuKuning(Index).BackColor = vbYellow
End Sub
Private Sub LampuKuningMati(Index As
Select Case Index
Case 0
Out &H378, Val(Inp(&H378)) Case 1
Out &H378, Val(Inp(&H378)) Case 2
Out &H378, Val(Inp(&H378)) Case 3
Out &H378, Val(Inp(&H378)) End Select

Integer)

16
32
64
128

shpLampuKuning(Index).BackColor = RGB(50, 50, 0)
End Sub
Private Sub LampuHijauNyala(Index As Integer)

ResetArahAnim
Select Case Index
Case 0
Out &H37A, 3
idxLampuHijau = 0
Case 1

Universitas Sumatera Utara

Out &H37A, 15
idxLampuHijau = 1
Case 2
Out &H37A, 9
idxLampuHijau = 2
Case 3
Out &H37A, 10
idxLampuHijau = 3
End Select
shpLampuHijau(Index).BackColor = vbGreen
tmrArah.Enabled = True

End Sub
Private Sub LampuHijauMati(Index As Integer)
tmrArah.Enabled = False
ResetArahAnim
Select Case Index
Case 0
Out &H37A, 11
Case 1
Out &H37A, 11
Case 2
Out &H37A, 11
Case 3
Out &H37A, 11
End Select
shpLampuHijau(Index).BackColor = RGB(0, 50, 0)
End Sub
Private Sub cmdExit_Click()
Unload Me
MsgBox "tanks you brooo....."
End Sub

Private Sub cmdRun_Click()
Dim intNum As Integer
LampuMati
tmrLampu.Interval = 1
tmrLampu.Enabled = True
End Sub

Universitas Sumatera Utara

Private Sub cmdStop_Click()
tmrArah.Enabled = False
LampuMati
tmrLampu.Enabled = False
End Sub
Private Sub ResetArahAnim()
With lblArahAnim(0)
.Move 0 - .Width, (picArah(0).ScaleHeight .Height) / 2
End With
With lblArahAnim(1)
.Move (picArah(1).ScaleWidth - .Width) / 2, 0 .Height

End With
With lblArahAnim(2)
.Move picArah(2).ScaleWidth + .Width,
(picArah(2).ScaleHeight - .Height) / 2
End With
With lblArahAnim(3)
.Move (picArah(3).ScaleWidth - .Width) / 2,
picArah(3).ScaleHeight + .Height
End With
End Sub
Private Sub Form_Load()
ResetArahAnim
LampuMati
blnHijau = True
blnKuning = False
blnMerah = False
pantul = 100
End Sub
Private Sub Form_Unload(Cancel As Integer)
LampuMati

End Sub

Private Sub lblLampuHijau_Click(Index As Integer)

Universitas Sumatera Utara

LampuMati
LampuHijauNyala Index
End Sub
Private Sub lblLampuHijau_DblClick(Index As Integer)
LampuHijauMati Index
End Sub
Private Sub lblLampuKuning_Click(Index As Integer)
LampuMati
LampuKuningNyala Index
End Sub
Private Sub lblLampuKuning_DblClick(Index As Integer)
LampuKuningMati Index
End Sub
Private Sub lblLampuMerah_Click(Index As Integer)

LampuMati
LampuMerahNyala Index
End Sub
Private Sub lblLampuMerah_DblClick(Index As Integer)
LampuMerahMati Index
End Sub
Private Sub tmrAnim_Timer()
With lblJudul
.Left = .Left + pantul
If .Left < 0 Then pantul = 100
If .Left > Me.ScaleWidth - .Width Then pantul = 100
End With
End Sub
Private Sub tmrArah_Timer()
With lblArahAnim(idxLampuHijau)
Select Case idxLampuHijau
Case 0
.Left = .Left + 20

Universitas Sumatera Utara

If .Left > picArah(idxLampuHijau).ScaleWidth
Then .Left = 0 - .Width
Case 1
.Top = .Top + 20
If .Top > picArah(idxLampuHijau).ScaleHeight
Then .Top = 0 - .Height
Case 2
.Left = .Left - 20
If .Left < 0 - .Width Then .Left =
picArah(idxLampuHijau).ScaleWidth
Case 3
.Top = .Top - 20
If .Top < 0 - .Height Then .Top =
picArah(idxLampuHijau).ScaleHeight
End Select
End With
End Sub
Private Sub tmrLampu_Timer()
Static Index As Integer
Static intLampu As Integer
Dim intNum As Integer
Select Case intLampu
Case 0 'Hijau
LampuMati
tmrLampu.Interval = Val(txtHijau(Index).Text) *
1000
LampuHijauNyala Index
For intNum = 0 To 3
If intNum Index Then LampuMerahNyala
intNum
Next
intLampu = 1
Case 1 'Kuning
LampuMati
tmrLampu.Interval = Val(txtKuning(Index).Text) *
1000
LampuKuningNyala Index
For intNum = 0 To 3

Universitas Sumatera Utara

If intNum Index Then LampuMerahNyala
intNum
Next
intLampu = 0
Index = Index + 1
If Index = 4 Then Index = 0
End Select
End Sub
Private Sub txtHijau_Change(Index As Integer)
With txtHijau(Index)
If IsNumeric(.Text) = False Then SendKeys vbBack:
Exit Sub
End With
End Sub
Private Sub txtKuning_Change(Index As Integer)
With txtKuning(Index)
If IsNumeric(.Text) = False Then SendKeys vbBack:
Exit Sub
End With
End Sub

Universitas Sumatera Utara