Index of /students/paper/skripsi/20403099

LAMPIRAN

L

L-1

Design Form Utama

Source Code Form Utama
Dim nid As NOTIFYICONDATA ' Variabel Tray Icon
Dim PjnHP As String
Dim PDU As String
Dim rPDU As String
Dim vPDU As String
Dim i As Integer
Dim j As Integer
Private Static Sub CommMicon_OnComm()
Dim Buffer As Variant
Dim Asap As String
Dim Suhu As String
Select Case CommMicon.CommEvent

Case comEvReceive
If CommMicon.InBufferCount = 4 Then
Buffer = CStr(CommMicon.Input)

L-2

If Mid(Buffer, 1, 1) = "O" Then
If Mid(Buffer, 2, 1) = "K" Then
Asap = Hex(Asc(Mid(Buffer, 3, 1)))
Suhu = CDec(Asc(Mid(Buffer, 4, 1)))
lblTemp.Caption = Suhu
If Asap = "FE" Then
imgAsap.Picture = LoadPicture(App.Path & "\asap.jpg")
imgApi.Picture = LoadPicture(App.Path & "\GmbrApi.jpg")
imgRoom.Picture = LoadPicture(App.Path & "\Warn.jpg")
lblWarn.Caption = "W A R N I N G"
Call sndplaysound(App.Path & "\Submarine red alert.wav", 0)
MsgBox lblWarn.Caption
Call Kirim_SMS
Else

imgApi.Picture = LoadPicture(App.Path & "\GmbrNoApi.jpg")
imgAsap.Picture = LoadPicture(App.Path & "\no asap.jpg")
imgRoom.Picture = LoadPicture(App.Path & "\Ok.jpg")
lblWarn.Caption = "A M A N"
End If
End If
End If
End If
End Select
End Sub
Private Sub Form_Load()
Call Module1.Buka
Timer1.Interval = 1000
tmrMicon.Enabled = False
tmrMicon.Interval = 100
Me.Icon = LoadPicture(App.Path & "\FMS.ico")
CommMicon.RThreshold = 1
CommMicon.SThreshold = 1
imgApi.Picture = LoadPicture(App.Path & "\GmbrNoApi.jpg")
imgAsap.Picture = LoadPicture(App.Path & "\no asap.jpg")

imgRoom.Picture = LoadPicture(App.Path & "\Ok.jpg")
lblWarn.Caption = "A M A N"
End Sub
Private Sub mnAbout_Click()
Load About
About.Show
End Sub

L-3

Private Sub mnClose_Click()
minimize_to_tray
End Sub
Private Sub mnExit_Click()
End
End Sub
Private Sub mnHP_Click()
Load PortHP
PortHP.Show
End Sub

Private Sub mnSensor_Click()
Load PortSensor
PortSensor.Show
End Sub
Private Sub mnTambah_Click()
Load frmPenerima
frmPenerima.Show
End Sub
Private Sub Timer1_Timer()
'status
StatusBar1.Panels(3).Text = Time
StatusBar1.Panels(3).ToolTipText = Date
End Sub
' Prosedur Mengirim SMS
Private Sub Kirim_SMS()
On Error GoTo EH
Dim waktu As Date
waktu = Now()
If rs.State adStateClosed Then rs.Close
rs.Open "SELECT * FROM TblPenerima", db, adOpenStatic, adLockOptimistic

For j = 1 To rs.RecordCount
PjnHP = "0" & Hex(Len(rs.Fields(1).Value))
If (Len(rs.Fields(1).Value) Mod 2 = 0) Then
PDU = rs.Fields(1).Value
ElseIf (Len(rs.Fields(1).Value) Mod 2 0) Then
PDU = rs.Fields(1).Value & "F"

L-4

End If
rPDU = ""
For i = 1 To Len(PDU) Step 2
vPDU = Mid(PDU, i, 2)
rPDU = rPDU & (Right(vPDU, 1) & Left(vPDU, 1))
'MsgBox rPDU
Next i
With commHP
.Output = "AT+CMGS =" & Val(49) + Len(rPDU) / 2 & Chr(13) & Chr(10)
Load frmProgress
frmProgress.Show

frmProgress.pbKirim.Max = 100
frmProgress.pbKirim.Min = 10
Do
DoEvents
.Output = "001100" & PjnHP & "81" & rPDU & "0000A7" & _
"2ED7B0DC9D761F43A110885A9693CBF4F27A9E062DCBE2F03A2C0FBB41E4
34485A6F87D1A0A09B1C7601" & Chr(26) & Chr$(13)
Buffer$ = Buffer$ & .Input
frmProgress.pbKirim.Value = Second(waktu)
Loop Until InStr(Buffer$, "CMGS=0") Or Now > DateAdd("s", 20, waktu)
If InStr(Buffer$, "OK") Then
MsgBox "Pesan Telah Terkirim"
Else
MsgBox "Pesan Gagal Terkirim"
End If
End With
rs.MoveNext
Next j
Exit Sub
EH:

MsgBox Err.Description, vbExclamation, "Kesalahan"
End Sub
' Prosedur Meminimize Tray
Sub minimize_to_tray()
Me.Hide
nid.cbSize = Len(nid)
nid.hwnd = Me.hwnd
nid.uId = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallBackMessage = WM_MOUSEMOVE
nid.hIcon = Me.Icon

L-5

nid.szTip = "Fire Monitoring System" & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End Sub
' Kondisi saat minimize tray icon
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y
As Single)

Dim msg As Long
Dim sFilter As String
msg = x / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
Me.Show ' menampilkan form
Shell_NotifyIcon NIM_DELETE, nid ' del tray icon
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Me.Show
Shell_NotifyIcon NIM_DELETE, nid
Case WM_RBUTTONDBLCLK
End Select
End Sub
' Form ketika unload
Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid ' del tray icon
If commHP.PortOpen = True Then commHP.PortOpen = False

If CommMicon.PortOpen = True Then CommMicon.PortOpen = False
End Sub
Private Sub tmrMicon_Timer()
'sensor
If StatusBar1.Panels(2).Text = "Microcontroller : Connect" Then
Empty_Buffer = CommMicon.Input
CommMicon.Output = "a"
End If
End Sub

L-6

Design Form Setting Mikrokontroller

Source Code Form Setting Mikrokontroller
Public Sub Micon_Connect()
On Error GoTo EH
If cmdOK.Caption = "Connect" Then
With MainForm.CommMicon
If .PortOpen = True Then .PortOpen = False

.CommPort = Right(cboPort.Text, 1)
.Settings = "9600,N,8,1"
If Not .PortOpen Then
.PortOpen = True
End If
.Output = "a"
Dim waktu As Date
waktu = Now()
Do
DoEvents
Buffer$ = Buffer$ & .Input
Loop Until InStr(Buffer$, "OK") Or Now > DateAdd("s", 5, waktu)
If InStr(Buffer$, "OK") Then
MsgBox "Terhubung Dengan Micon"
MainForm.StatusBar1.Panels(2).Text = "Microcontroller : Connect"
MainForm.tmrMicon.Enabled = True
Unload Me
Else
MsgBox "Port Tidak Terhubung" & vbCrLf & "Dengan MicroController",
vbInformation, "Kesalahan Setting"

MainForm.StatusBar1.Panels(2).Text = "Microcontroller : Disconnect"

L-7

If .PortOpen = True Then .PortOpen = False
End If
End With
cmdOK.Caption = "Disconnect"
cboPort.Enabled = False
ElseIf cmdOK.Caption = "Disconnect" Then
If MainForm.CommMicon.PortOpen = True Then
MainForm.CommMicon.PortOpen = False
cmdOK.Caption = "Connect"
'cboPort.Text = GetSetting(App.Title, "FMS", "Port", "COM1")
cboPort.Enabled = True
Else
Exit Sub
End If
Exit Sub
EH:
MsgBox Err.Description, vbExclamation, "Kesalahan"
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
Call Micon_Connect
End Sub
Private Sub Form_Load()
cboPort.AddItem "COM1"
cboPort.AddItem "COM2"
cmdOK.Caption = "Connect"
cboPort.Enabled = True
txtIrda.Text = "PIR AMN2111"
txtIrda.Locked = True
txtAsap.Text = "AF30"
txtAsap.Locked = True
txtSuhu.Text = "LM35DZ"
txtSuhu.Locked = True
End Sub

L-8

Design Form Setting HP

Source Code Setting HP
Public Sub HP_Connect()
On Error GoTo EH
If cmdOK.Caption = "Connect" Then
With MainForm.commHP
If .PortOpen = True Then .PortOpen = False
.CommPort = Right(cboPort.Text, 1)
.Settings = "9600,N,8,1"
If Not .PortOpen Then
.PortOpen = True
End If
.Output = "AT" & Chr(13) & Chr(10)
Dim waktu As Date
waktu = Now()
Do
DoEvents
Buffer$ = Buffer$ & .Input
Loop Until InStr(Buffer$, "OK") Or Now > DateAdd("s", 10, waktu)
If InStr(Buffer$, "OK") Then
MsgBox "Terhubung Dengan HP"
MainForm.StatusBar1.Panels(1).Text = "HP : Online"
Unload Me
Else

L-9

MsgBox "Port Tidak Terhubung" & vbCrLf & "Dengan Handphone",
vbInformation, "Kesalahan Setting"
MainForm.StatusBar1.Panels(1).Text = "HP : Offline"
If .PortOpen = True Then .PortOpen = False
End If
End With
cmdOK.Caption = "Disconnect"
cboPort.Enabled = False
ElseIf cmdOK.Caption = "Disconnect" Then
If MainForm.commHP.PortOpen = True Then MainForm.commHP.PortOpen =
False
cmdOK.Caption = "Connect"
cboPort.Enabled = True
Else
Exit Sub
End If
Exit Sub
EH:
MsgBox Err.Description, vbExclamation, "Kesalahan"
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
Call HP_Connect
End Sub
Private Sub Form_Load()
cboPort.AddItem "COM1"
cboPort.AddItem "COM2"
cboPort.AddItem "COM3"
cboPort.AddItem "COM4"
cboPort.AddItem "COM5"
cboPort.AddItem "COM6"
cmdOK.Caption = "Connect"
cboPort.Enabled = True
txtBaudrate.Text = "9600"
txtBaudrate.Locked = True
txtDataBits.Text = "8"

L-10

txtDataBits.Locked = True
txtParity.Text = "None"
txtParity.Locked = True
txtStopBits.Text = "1"
txtStopBits.Locked = True
End Sub
Design Form Penerima SMS

Source Code Form Setting Mikrokontroller
Dim Tambah As Byte
Private Sub KTbl(ByVal Kunci As Boolean)
cmdTambah.Enabled = Not Kunci
cmdEdit.Enabled = Not Kunci
cmdHapus.Enabled = Not Kunci
cmdSimpan.Enabled = Kunci
cmdBatal.Enabled = Kunci
mfMA.Enabled = Not Kunci
End Sub
Private Sub KText(ByVal Kunci As Boolean)
txtMA.Locked = Kunci
txtTelp.Locked = Kunci
End Sub

L-11

Private Sub Bersih()
txtMA.Text = ""
txtTelp.Text = ""
txtMA.SetFocus
End Sub
Private Sub Tampil()
Dim i As Byte
With mfMA
.Clear
.TextMatrix(0, 0) = "Nama"
.TextMatrix(0, 1) = "No HP"
.ColWidth(0) = 3000
.ColWidth(1) = 2000
For i = 0 To 1
.FixedAlignment(i) = 4
Next i
.ColAlignment(1) = 2
mfMA.Rows = 1
If rs.BOF And rs.EOF Then
mfMA.Enabled = False
mfMA.Rows = 2
Else
mfMA.Enabled = True
With rs
.MoveFirst
While Not .EOF
mfMA.AddItem ( _
.Fields(0).Value & vbTab & _
.Fields(1).Value)
.MoveNext
Wend
End With
End If
End With
End Sub
Private Sub cmdBatal_Click()
KTbl (False)
KText (True)
txtTelp.Enabled = True

L-12

Tambah = 0
End Sub
Private Sub cmdEdit_Click()
If txtTelp.Text "" Then
Call KTbl(True)
Call KText(False)
txtTelp.Enabled = False
txtMA.SetFocus
Tambah = 2
Else
MsgBox "Pilih dulu data dari tabel!", vbExclamation, "Edit"
End If
End Sub
Private Sub cmdHapus_Click()
Dim Tanya As String
If txtTelp.Text "" Then
Tanya = MsgBox("Yakin ingin hapus " & txtMA.Text & " ?", vbYesNo +
vbExclamation, "Hapus Data")
If Tanya = vbYes Then
SQL = "delete from TblPenerima where HP='" & txtTelp.Text & "'"
db.Execute SQL
If rs.State adStateClosed Then rs.Close
rs.Open "SELECT * FROM TblPenerima", db, adOpenStatic,
adLockOptimistic
Call Bersih
Call Tampil
End If
txtMA.SetFocus
Else
MsgBox "Pilih dulu data dari tabel!", vbExclamation, "Hapus"
End If
End Sub
Private Sub cmdSimpan_Click()
On Error GoTo EH
If txtTelp.Text "" Then
If Tambah = 1 Then
SQL = "insert into TblPenerima " & _
"values ('" & _

L-13

txtMA.Text & "','" & _
txtTelp.Text & "')"
ElseIf Tambah = 2 Then
SQL = "update TblPenerima set " & _
"Nama='" & txtMA.Text & "'," & _
"HP='" & txtTelp.Text & "'" & _
"where HP='" & txtTelp.Text & "'"
Else
Exit Sub
End If
db.Execute SQL
KTbl (False)
KText (True)
txtTelp.Enabled = True
If rs.State adStateClosed Then rs.Close
rs.Open "SELECT * FROM TblPenerima", db, adOpenStatic, adLockOptimistic
Call Tampil
Else
MsgBox "No HP harus diisi!", vbInformation, "Simpan Data"
End If
Exit Sub
EH:
MsgBox "No HP sudah terdaftar", vbExclamation, "Simpan Data"
txtTelp.SetFocus
End Sub
Private Sub cmdTambah_Click()
'rs.AddNew
Call KTbl(True)
Call KText(False)
Call Bersih
Tambah = 1
End Sub
Private Sub cmdTutup_Click()
Unload Me
End Sub
Private Sub Form_Activate()
txtMA.SetFocus
End Sub

L-14

Private Sub Form_Load()
If rs.State adStateClosed Then rs.Close
rs.Open "SELECT * FROM TblPenerima", db, adOpenStatic, adLockOptimistic
Call Tampil
Call KTbl(False)
Call KText(True)
End Sub
Private Sub mfMA_Click()
Dim Brs As Integer
With mfMA
Brs = .Row
txtMA.Text = .TextMatrix(Brs, 0)
txtTelp.Text = .TextMatrix(Brs, 1)
End With
End Sub
Source Code Module1.bas
'Sound
Declare Function sndplaysound Lib "winmm.dll" Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, ByVal _
uFlags As Long) As Long
'database
Public db As New ADODB.Connection
Public rs As New ADODB.Recordset
Public SQL As String
' Create an Icon in System Tray Needs
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uId As Long
uFlags As Long
uCallBackMessage As Long
hIcon As Long
szTip As String * 64
End Type

L-15

Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const WM_MOUSEMOVE = &H200
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203 'Double-click
Public Const WM_LBUTTONDOWN = &H201 'Button down
Public Const WM_LBUTTONUP = &H202 'Button up
Public Const WM_RBUTTONDBLCLK = &H206 'Double-click
Public Const WM_RBUTTONDOWN = &H204 'Button down
Public Const WM_RBUTTONUP = &H205 'Button up
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA"
(ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Public Sub Buka()
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\dbPenerima.mdb;" & _
"Persist Security Info=False"
db.Open
End Sub