Maklumat

Tulisan-tulisan terkini dapat juga didapatkan di halaman Kompasiana di alamat https://kompasiana.com/didikaha

Khusus untuk konten-konten sastra seperti puisi, cerpen dan esai silahkan kunjungi http://blog.edelweis-art.com. Terima kasih (Penulis)

Jumat, Mei 29, 2009

Visual Basic 6.0: Cek Port Serial yang Sedang Aktif dan Bisa Digunakan

Adakalanya untuk aplikasi yang kita buat, memerlukan perangkat pendukung yang terhubung melalui port serial pada komputer, seperti perangkat modem dan atau ponsel untuk aplikasi sms server. Sebenarnya, untuk mengetahui apakah suatu perangkat sudah terhubung atau tidak, kita bisa "membacanya" dari Device Manager yang ada (klik start->Control Panel->System->Hardware->Device Manager atau klik start->run ketik devmgmt.msc lalu OK). Toh, pada kenyataannya, seringkali hal ini dirasa kurang praktis, terlebih jika penggunaan aplikasi, melibatkan operator atau orang yang tidak begitu familiar dengan sistem komputer.

Device Manager

Pada Visual Basic, persoalan ini bisa ditanggulangi dengan memanfaatkan kontrol MSComm, yang memang disediakan sebagai sarana komunikasi berbasis comm-port. Dengan kontrol ini, dimungkinkan terjadinya pengiriman data dari atau melalui suatu port serial ke aplikasi yang kita buat dan sebaliknya. Seperti misalnya membaca sms yang masuk ke ponsel dan sekaligus melakukan pengiriman sms dari aplikasi kita melalui ponsel tersebut, yang terhubung melalui suatu port serial.

Berikut adalah salah satu cara yang bisa kita gunakan untuk mengecek pada port yang mana suatu perangkat dihubungkan. Jika nantinya perangkat tersebut sudah digunakan untuk aplikasi yang lain, maka hasil yang ada adalah nihil, artinya perangkat tersebut tidak bisa digunakan untuk aplikasi kita. Sebaliknya, jika perangkat tersebut sudah terhubung secara benar dan masih free, akan dihasilkan output berupa nilai COM-nya, misal COM1, COM4 atau COM6. Basis penulisan menggunakan Visual Basic 6.0 dengan output berupa array yang akan ditampilkan pada combo-box.

Untuk menggunakan kontrol MSComm, terlebih dahulu kita harus memasukkannya ke Toolbox, karena secara default kontrol ini tidak ditampilkan di Toolbox.

Pertama, kita buka window Components. Ada beberapa cara untuk membukanya:
1. Klik menu Project->Components
2. Klik Ctrl+T
3. Klik kanan pada Toolbox, lalu pilih Components

Window Components

Selanjutnya akan terbuka window Components. Pada tab Control, cari dan centang Microsoft Comm Control 6.0, lalu klik OK. Nah, sekarang kontrol MSComm telah ditampilkan di Toolbox, dengan ikon berupa gambar telepon. Klik dan seret gambar telepon tersebut ke dalam area form. Pada penggunaannya, kontrol ini tidak akan ditampilkan saat aplikasi dijalankan, tidak seperti ComboBox, TextBox ataupun ButtonCommand. Jadi, tidak masalah mau menempatkan kontrol ini di mana saja.

Kontrol MSComm di Toolbox

Berikutnya, dikarenakan nantinya output akan ditampilkan pada ComboBox, kita perlu memasukkan kontrol ini pula ke dalam form.

Form

Setelah kontrol MSComm dan ComboBox masuk ke dalam form, sekarang kita buka editor Code. Untuk membukanya, ada beberapa cara:
1. Klik ganda pada sembarang area form atau klik ganda pada salah satu kontrol yang ada di form
2. Klik menu View->Code
3. Klik ikon View Code di pojok kanan atas window Project

Setelah editor Code terbuka, pada combo-box Object di bagian kanan atas editor, pilih form hingga pada kotak editor akan muncul:

Private Sub Form_Load()

* tulis kode perintah di sini

End Sub


Ketikkan kode perintah berikut di dalamnya:

    On Error Resume Next

Dim i As Integer

For i = 1 To 100
MSComm1.CommPort = i
MSComm1.PortOpen = True

If MSComm1.PortOpen Then
Combo1.AddItem "COM" & i
MSComm1.PortOpen = False
Else
End If
Next


Sekarang coba klik F5 untuk melihat preview aplikasi. Lihat pada combo-box. Kosong?
Tutup preview aplikasi. Sekarang kita sambungkan kabel data atau sejenisnya ke salah satu port serial. Klik lagi F5. Lihat pada combo-box. Bagaimana??



Penjelasan:

Metode yang kita lakukan adalah mengecek satu persatu port yang ada. Saat port tersebut ditemukan aktif dan masih free (belum dipakai aplikasi apapun), akan ditampilkan nilai COM-nya, sebaliknya, nilai tampilan adalah kosong.

Pertama, kita definisikan variable untuk nilai portnya. Kita gunakan variable i yang kita definisikan sebagai integer: Dim i As Integer

Nilai variable ini adalah dari 1 hingga 100. Sebenarnya tidak harus 100. Angka ini (100) hanya untuk memastikan kemungkinan keberadaan port yang aktif. Jika ragu atau tidak diperlukan, angka ini bisa ditambahkan, atau sebaliknya, dikurangi.

Kedua, dengan menggunakan perintah pengulangan For .. Next, kita lakukan pengecekan melalui perintah: MSComm1.CommPort = i dan MSComm1.PortOpen = True

Perintah MSComm1.CommPort = i menunjuk port mana yang akan dieksekusi (dimulai dari COM1 hingga COM100). Sementara perintah MSComm1.PortOpen = True untuk menguji apakah port tersebut aktif. Jika benar port tersebut aktif dan bisa digunakan, akan dilanjutkan dengan perintah Combo1.AddItem "COM" & i dan MSComm1.PortOpen = False. Sebaliknya, jika ternyata salah (error; port tersebut tidak aktif atau sedang aktif tapi telah digunakan oleh aplikasi lain), tidak ada tindak eksekusi apa-apa.

Perintah
Combo1.AddItem "COM" & i menyatakan untuk menampilkan port yang bersangkutan dalam daftar combo-box. Sementara perintah MSComm1.PortOpen = False adalah untuk mengakhiri uji koneksi terhadap port tersebut.

Agar proses pengujian keberadaan port aktif bisa terus dilakukan berulang hingga port terakhir, kita tambahkan perintah On Error Resume Next. Sebab jika tidak, misalkan ternyata COM1 tidak aktif maka proses akan terhenti hanya sampai pengujian port tersebut.

(Berbagai Sumber)