BAB IV: HASIL DAN PEMBAHASAN
4.5. Program PC
4.5.1. Program PC pada Alat pemantau Ketinggian BBM
4.5.1.1. Menu Utama
Form Main akan muncul ketika pertama kali program dijalankan. Form ini merupakan menu utama yang terdiri dari jumlah inbox yang masuk, nomor pengirim, isi SMS, kesalahan yang terjadi (kesalahan nomor/format SMS), dan keterangan serta indikator ketinggian BBM. Tampilan form Main dapat dilihat pada Gambar 4.10.
Saat tombol Start ditekan, jika ada SMS masuk, maka textbox INBOX akan bernilai sesuai dengan jumlah SMS yang ada pada ponsel. Karena ada SMS masuk, nomor pengirim ditampilkan pada textbox SENDER dan isi SMS akan ditampilkan pada textbox TEXT pada menu utama. Jika nomor pengirim atau isi SMS tidak sesuai database, maka akan muncul keterangan ACCESS DENIED di sebelah kanan textbox SENDER dan textbox TEXT. Keterangan mengenai kesalahan nomor atau kesalahan format akan ditampilkan pada textbox ERROR. Selanjutnya keterangan kesalahan format/nomor pada textbox ERROR akan dikirimkan ke user seperti tampak pada Gambar 4.7.b dan 4.7.c. Tampilan Form Main pada saat ada kesalahan nomor akan seperti pada Gambar 4.11.
Gambar 4.10 Form Menu Utama
Tampilan Form Main pada saat ada kesalahan format, ditunjukkan pada Gambar 4.12. Jika nomor pengirim dan format SMS sesuai dengan database, alat akan menjalankan program pembacaan ketinggian BBM. Setelah menjalankan program pembacaan ketinggian BBM, informasi ketinggian BBM akan muncul di pada textbox FUEL. Kemudian isi dari textbox FUEL tersebut dikirimkan kepada user melalui SMS.
Gambar 4.13 menunjukkan tampilan form Main saat nomor dan format SMS sesuai dengan database.
Gambar 4.11. Tampilan Form Main Saat Nomor Tidak Terdaftar
Gambar 4.13. Tampilan Form Main Saat Nomor Terdaftar dan Format benar
Ketika nomor dan format SMS sudah sesuai dengan database, maka PC mengirim perintah yang diwakili oleh variabel “a” ke mikrokontroler. Proses pengiriman perintah dilakukan melalui kabel serial yang dihubungkan pada COM 2 PC. Port serial dibuka terlebih dahulu sebelum dilakukan proses pengiriman variabel agar data dapat diterima mikrokontroler. Proses membuka port serial dilakukan dengan syntax seperti tampak pada Gambar 4.14
Private Sub Bukaport() MSComm1.CommPort = 2 MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 1 MSComm1.DTREnable = True MSComm1.RTSEnable = True MSComm1.RThreshold = 1 MSComm1.PortOpen = True End Sub
Gambar 4.14 Subrutin Buka Port Serial
Pengaturan MSComm1.Settings ditentukan dengan baudrate 9600 bps, No Parity, 8 bit per 1 karakter, dan stop bit dalam 1 karakter. Setelah variabel terkirim ke mikrokontroler dan diproses untuk membaca ketinggian BBM, program menunggu
feedback dari mikrokontroler berupa variabel yang merepresentasikan ketinggian BBM. Variabel tersebut akan diproses oleh program dan keterangan mengenai ketinggian BBM akan ditampilkan pada form Main. Program untuk mengambil data variabel dapat dilihat pada Gambar 4.15. Proses selanjutnya adalah mengirim informasi ketinggian BBM ke user.
Proses pengiriman SMS ketinggian BBM ke user dapat dilihat pada program pada Gambar 4.16. Ketika PC menerima SMS, nomor pengirim akan disimpan pada textbox Text2.text. Nomor inilah yang digunakan untuk membalas SMS permintaan dari user. Sedangkan Text8.text berisi informasi BBM yang akan dikirimkan ke user. Setelah nomor pengirim dan isi SMS sudah disatukan, program akan melakukan esekusi pengiriman SMS balasan yang berisi informasi level BBM di BTS tersebut. Balasan dari alat dapat dilihat pada Gambar 4.7.a. Berdasarkan data-data hasil pengujian di atas dapat disimpulkan bahwa program berjalan dengan baik sesuai dengan perancangan.
Gambar 4.15. Subrutin Untuk Mengambil Data Variabel dari Mikrokontroler Private Sub MSComm1_OnComm()
Dim in_mikro As String
Select Case MSComm1.CommEvent Case comEvReceive
in_mikro = MSComm1.Input
Text7.Text = in_mikro ‘ input variabel dari mikrokontroler
If Text7.Text = "q" Then
Text8.Text = "BTS01,Fuel Level at 100%" ‘ text8.text = info level BBM yang dikirim ke user
Text9.Text = "100" ‘ text9.text = info level BBM yang dikirim ke OMC
………
ElseIf Text7.Text = "p" Then
Text8.Text = "BTS01,Fuel Level at 10%,Fuel LOW,Resupply NOW" Text9.Text = "10"
End If
kirim_sms_auto ‘ jalankan subrutin kirim sms otomatis
Text7.Text = ""
DELETE
Timer1.Enabled = True End Select
Gambar 4.16. Subrutin Kirim Informasi BBM ke user (Berdasarkan Permintaan)
Sedangkan proses pengiriman SMS ketinggian BBM secara otomatis ditunjukkan Gambar 4.17. Proses pengiriman pertama-tama dilakukan dengan membandingkan isi textbox text9.text yang berisi informasi level BBM dengan setpoint. Jika isi textbox text9.text sama dengan setpoint, maka program akan memeriksa variabel bantu yang berfungsi sebagai indikator apakah SMS sudah pernah dikirimkan. Jika variabel tersebut bernilai 1, maka SMS tidak akan dikirimkan lagi. Program hanya akan mengirimkan SMS jika variabel tersebut bernilai 0, yang berarti hanya 1x SMS untuk setiap setpoint. Hal ini dilakukan untuk menghindari SMS flooding pada sisi penerima. Karena itu dibutuhkan tombol Reset yang berfungsi untuk memberikan variabel sudah terkirim menjadi 0 kembali. Setelah teknisi melakukan pengisian BBM ulang, tombol Reset wajib ditekan agar program pengirim SMS ketinggian BBM otomatis dapat bekerja kembali. Tombol Exit digunakan untuk mengakhiri program. Tabel 4.1 menunjukkan hasil pengujian program. Berdasarkan data-data hasil pengujian di atas dapat disimpulkan bahwa program berjalan dengan baik sesuai dengan perancangan
Gambar 4.17. Subrutin Kirim Informasi BBM ke OMC (Otomatis) Private Sub kirim_sms_auto()
Dim kirim As String
If Text9.Text = "10" Then ‘ Text9.text berisi level BBM pada saat itu
If p = 0 Then
kirim = "INSERT INTO outbox (DestinationNumber,TextDecoded) VALUES" +
"('+6285729782919','" & Text9.Text & " ')" ‘ nomor tujuan OMC fix
DataEnvironment1.Connection1.Execute kirim, adCmdText
p = 1 ‘ p adalah variabel bantu agar sms dikirim 1x saja
End if
Elseif Text9.Text = "20" Then ………..
Private Sub kirim_sms_req() Dim kirim As String
kirim = "INSERT INTO outbox (DestinationNumber,TextDecoded) VALUES" + "('" & Text2.Text & "','" & Text8.Text & " ')"
DataEnvironment1.Connection1.Execute kirim, adCmdText End Sub