Mungkin Sobat sudah membaca
postinganku tentang pembuatan pintu akses sederhana dan penambahan fitur
komunikasinya. Rasanya kurang lengkap kalau penambahan fasilitas tersebut tidak
dilengkapi dengan aplikasi yang bisa dijalankan di PC sehingga sobat bisa
melihat bagaimana panel dapat berinteraksi dengan PC.
Pada kesempatan ini, aku akan
memanfaatkan aplikasi Visual Basic untuk membuat aplikasi sistem manajemen
akses sederhana namun tidak menutup kemungkinan bisa dilakukan dengan aplikasi
Gambas bagi penggemar Linux. Keduanya hampir sama, yaitu sama-sama mengadopsi
format penulisan pemrograman Basic yang populer dan terus berkembang sesuai tuntutan
kebutuhan jaman.
Ayo kita mulai...
Pertama kita buka dulu aplikasi
Visual Basic. Penulis menggunakan Microsoft Visual Basic 6.0. Kita namai saja
project manajemen akses yang akan dibuat dengan nama prjAkses1.
Setelah itu pada forms yang akan
digunakan dinamai frmAkses1. Untuk Caption dapat diisi dengan “Manajemen Akses
Sederhana” sehingga nanti saat dibuka, pada jendela aplikasi kita akan muncul
nama itu.
Berikutnya adalah membuat sebuah
label dengan nama lblNomorUnit dengan caption “Nomor Unit :”. Kemudian di samping
label tersebut dibuatkan kotak teks (TextBox) dengan nama txtNomorUnit. Untuk properti
alignment kita pilih ‘2 – Center’ agar isi pada kotak teks nantinya ditengah
dan ubah isi dari txtNomorUnit.Text dengan 0 agar tampilannya menunjuk pada
alamat 0. Kemudian ubah properti MaxLength menjadi 2 saja.
Buatlah frame bernama fraTransaksi
yang akan menampilkan transaksi dengan caption dapat diisi “Transaksi On-Line”.
Di dalam kotak fraTransaksi kita masukkan TextBox dengan nama txtTransaksi yang
isi Text-nya juga dikosongkan. Ubah beberapa properti dari txtTransaksi yaitu
pada Locked diubah menjadi True agar tidak bisa mengubah isi kotak tersebut. MultiLine
juga diubah menjadi True agar dapat menampung data dan menampilkan dalam banyak
baris. Kemudian ScrollBars dipilih ‘2 – Vertical’.
Pada bagian paling bawah buatlah
dua buah CommandButton masing-masing bernama cmdPulseOpen dengan caption “PULSE
OPEN” dan cmdByPass dengan caption awal “BYPASS UNIT”
Nah pembuatan jendela tampilan
sudah selesai. Selanjutnya tinggal melengkapi beberapa hal lagi.
Kita perlu menambahkan sebuah
komponen untuk dapat menjalankan aplikasi komunikasi serial. Hal ini perlu
dilakukan karena biasanya pada kotak Component belum ada maka klik kanan pada
kotak Toolbox tabulasi General dan pilih Components lalu carilah ‘Microsoft
Comm Control 6.0’ dan kemudian klik Apply. Sekarang fasilitas komunikasi serial
sudah tersedia. Klik 2 kali kotak ikon bergambar telepon dan itu akan
memasukkannya pada bingkai kerja kita. Klik ikon bergambar telepon yang bernama
MsComm1 dan pindahkan ke tempat yang tidak menghalangi lembar kerja biasa aku
suka menaruhnya di pojok, lalu ubah Settings menjadi “1200,n,8,1”.
Hasil dari persiapan pembuatan
jendela aplikasi Manajemen Akses Sederhana dapat dilihat berikut ini:
Akhirnya kita harus menuliskan
beberapa perintah berkaitan dengan aplikasi yang akan dibuat. Hal pertama
adalah mendeklarasikan beberapa variabel yang akan digunakan. Kita setidaknya
memerlukan 2 buah variabel yaitu BufSerial dengan jenis data string dan Heksa
dengan jenis Long.
Dim BufSerial$, Heksa&
Kemudian pada saat
aplikasi dimulai, kita perlu memeriksa status gerbang serial yang digunakan.
Jika belum aktif maka perlu diaktifkan.
Private Sub Form_Load()
If
MSComm1.PortOpen = False Then MSComm1.PortOpen = True
End Sub
Perintah yang berkaitan dengan tombol perintah atau CommandButton dapat
dilihat berikut ini:
Private Sub cmdByPass_Click()
MSComm1.Output
= Chr$(txtNomorUnit.Text)
If
cmdByPass.Caption = "BYPASS UNIT" Then
MSComm1.Output
= "B"
cmdByPass.Caption = "UNBYPASS UNIT"
cmdPulseOpen.Enabled = False
txtTransaksi.Text = "ByPass Unit : " & txtNomorUnit.Text
& _
vbCrLf & txtTransaksi.Text
Else
MSComm1.Output = "U"
cmdByPass.Caption = "BYPASS UNIT"
cmdPulseOpen.Enabled = True
txtTransaksi.Text = "UnByPass Unit : " & txtNomorUnit.Text
& _
vbCrLf & txtTransaksi.Text
End If
End Sub
Pada kotak tombol BYPASS, saat tombol ini diklik maka kali pertama adalah
mengirim Nomor Unit kemudian memeriksa status Caption. Jika caption berisi
‘BYPASS UNIT’ maka perintah selanjutnya mengirim karakter ‘B’ ke perangkat
akses yang terhubung sesuai dengan alamat yang tercantum. Setelah itu mengubah
isi caption menjadi ‘UNBYPASS UNIT’ dan menonaktifkan tombol ‘PULSE OPEN’.
Aktifitas ini juga direkam dalam transaksi.
Sebaliknya jika caption pada cmdByPass berisi ‘UNBYPASS UNIT’ maka perintah
akan mengirim karakter ‘U’ kemudian mengaktifkan tombol ‘PULSE OPEN’ dan
aktifitas juga disimpan pada transaksi.
Private Sub cmdPulseOpen_Click()
MSComm1.Output
= Chr$(txtNomorUnit.Text)
MSComm1.Output
= "P"
txtTransaksi.Text = "Kirim Pulse Open : " &
txtNomorUnit.Text & _
vbCrLf & txtTransaksi.Text
End Sub
Sama halnya dengan perintah sebelumnya, pada klik cmdPulseOpen, hal pertama
adalah mengirim alamat nomor unit diikuti dengan pengiriman karakter ‘P’ dan
menyimpan transaksi.
Private Sub txtNomorUnit_Change()
If
txtNomorUnit.Text <> "0" Then
If
Val(txtNomorUnit.Text) = 0 Or Val(txtNomorUnit.Text) > 15 Then
txtNomorUnit.Text = ""
End If
End Sub
Pada kotak teks kita perlu untuk melakukan filtering di mana karakter yang
hanya dapat diterima adalah karakter berjenis angka dan nilai yang dapat
dimasukkan adalah antara 0 sampai dengan 15.
Bagian terakhir dari program kita adalah penangan data serial yang masuk.
Variabel yang dideklarasikan di awal digunakan di sini. Setiap byte dari data
serial yang diterima ditampung pada BufSerial. Jumlah banyaknya data dari
BufSerial diperiksa. Pertama, jika jumlahnya 2 atau lebih maka byte kedua yang
berisi kode akan diperiksa untuk kode ‘P’ atau Pulse Open yang berasal dari
perangkat akses. Jika kode sesuai maka data yang diterima akan dimasukkan dalam
transaksi.
Private Sub MSComm1_OnComm()
BufSerial =
BufSerial + MSComm1.Input
If
Len(BufSerial) >= 2 Then
If
Mid(BufSerial, 2, 1) = "P" Then
txtTransaksi.Text = "Pulse Door Open : " &
txtNomorUnit.Text & vbCrLf & txtTransaksi.Text
BufSerial = "": Exit Sub
End
If
End If
Perintah berikutnya adalah jika kode yang diterima bukanlah ‘P’ maka jumlah
data ditunggu hingga mencapai 5 untuk bisa diproses. Jika jumlahnya sudah
mencapai 5 maka pemeriksaan kode dilakukan untuk menentukan apakah transaksi
dari panel diterima atau ditolak.
If
Len(BufSerial) = 5 Then
If
Asc(Mid(BufSerial, 2, 1)) = 9 Then
Heksa = Asc(Mid(BufSerial, 5, 1))
Heksa = Heksa + (Asc(Mid(BufSerial, 4, 1)) * 256)
Heksa = Heksa + (Asc(Mid(BufSerial, 3, 1)) * 65536)
txtTransaksi.Text = "Kartu : " & Heksa & " Akses Diterima" & ", Unit : " & _
Asc(Left(BufSerial, 1)) & vbCrLf & txtTransaksi.Text
ElseIf Asc(Mid(BufSerial, 2, 1)) = 1 Then
Heksa = Asc(Mid(BufSerial, 5, 1))
Heksa = Heksa + (Asc(Mid(BufSerial, 4, 1)) * 256)
Heksa = Heksa + (Asc(Mid(BufSerial, 3, 1)) * 65536)
txtTransaksi.Text = "Kartu : " & Heksa & " Akses Ditolak" & ", Unit : " & _
Asc(Left(BufSerial, 1)) & vbCrLf & txtTransaksi.Text
End If
BufSerial = ""
End If
End Sub
Variabel Heksa digunakan untuk mengkonversikan bilangan heksadesimal yang
diterima dan mengubahnya menjadi desimal.
Penulis sempat mencoba menggunakan
aplikasi ini pada perangkat dengan nomor unit 3 dan hasilnya sebagai berikut:
Demikian aplikasi Manajemen Akses
Sederhana yang dibuat. Masih sangat sederhana dan ini merupakan SDK (source
Data Kit) dari perangkat akses sederhana yang dibuat. Jika sobat adalah seorang
Software Engineer maka aplikasi ini dapat dikembangkan jika perlu menggunakan
fitur database sehingga aplikasi bisa tampak lebih elegan.
Udah ya, makasih udah baca postingan aku. Semoga bisa bermanfaat,
sukur-sukur bisa diterapkan oleh sobat semua.
Salam....
Tidak ada komentar:
Posting Komentar